代码之家  ›  专栏  ›  技术社区  ›  JimmyNeutron

使用TCP/IP捕获Mettler Toledo Ind560的重量

  •  0
  • JimmyNeutron  · 技术社区  · 6 年前

    我尝试使用C的streamreader和streamwriter类从IND560中捕获净重。似乎已经建立了连接,但无论我发送的命令是什么,我都会得到一个回复:83命令无法识别。我在IND560中的communications>template>output for template1下看到命令(wt0111)。

    下面的代码是如果有人有任何建议,以帮助我前进,这将是非常感谢!

    static void writeToStream(string cmd)
        {
            if (tcpClient.Connected)
            {
                Console.WriteLine("Sending CMD: {0}\\n", cmd);
                // tried with appending a \r, \n, and \r\n same result: 83 command not found
                clientStreamWriter.Write(cmd + '\n');
    
                clientStreamWriter.Flush();
    
            }
    
        }
    

    下面是显示响应83的程序输出示例:

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Anu Viswan    6 年前

    为此,您需要使用read命令(根据 link here )

    Format: read SDV#1 SDV#2
    Example 1: read wt0101 wt0103
    Response 1: 00R003~ 17.08~lb~ 
    

    所以,在你的情况下

    read wt0101
    read wt0111
    

    在您的情况下,您需要在字段ID(WT0101)之前预先“读取”。

    if (tcpClient.Connected)
    {
      Console.WriteLine("Sending CMD: {0}\\n", cmd);
      clientStreamWriter.Write($"read {cmd}" + '\n');
      clientStreamWriter.Flush();
    }
    

    我建议为您的用户提供一个选项来输入命令“读”、“写”、“帮助”以及字段名,以防您打算支持更多的命令。