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

Capture weight of a Mettler Toledo IND560 using TCP/IP

我正在尝试使用 C# 的 streamReader 和 streamWriter 类 从 IND560 捕获净重。似乎建立了连接,但无论我发送什么命令,我都会收到回复:83 命令无法识别。我在 IND560 的通信>模板>模板 1 的输出下看到命令 (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 的程序输出示例:

您需要为此目的使用读取命令(根据 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) 之前添加 "read"。

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

我建议为您的用户提供一个选项,将命令输入 "read" "write"、"help" 以及字段名称,以防您打算支持更多命令.