如何测试 COM/串行端口上的通信?

如何测试 COM/串行端口上的通信?

我们有一个带有 COM 端口的 OHAUAS defender 5000 系列型号 T51P 称重秤。如果我们将其连接到 PC,我们应该能够通过向计算机发送命令来获取计算机上的重量。

有没有办法测试一下?我试过命令行 echo "LP" > com1,但没有任何效果。一个监听这个端口的小型 C# 应用程序似乎不断接收十六进制数(2 位数字然后按 Enter),但是通过这个应用程序发送命令不会产生可读的结果。

但是,当我确实在端口上监听时,echo“LP”>com1 命令会出现不可用的错误,因此在 cmd 中发送该命令是有效的。

有谁知道在 com 端口上测试发送和接收的简单方法吗?

编辑:

型号为 OHAUAS defender 5000 系列 - T51P

使用超级终端给我以下结果。 arduino 也发生了同样的情况,发送“P”命令没有返回任何数据。

编辑2:

我发现秤上的“打印按钮”具有与“P”命令相同的功能。如果我按下按钮,我会得到“随机数据”,如果我在应用程序上使用文本模式,这些数据将转换为问号和重量的一部分。我连续按下按钮 6 次,得到的结果如 ?????????? 或 2??????? 或 ???.04???A? 或 ??????????KG 这些结果结合起来显示它试图发送 2.04KG 的重量。现在,是否有一个合乎逻辑的理由来解释为什么只发送(或接收)了这些数据的一部分?

超级终端

答案1

您可以下载适合您的平台并打开应用程序并转到工具串行监视器。它将监听配置的串行端口。(您不需要 arduino 即可工作。)

来自他们的网站:

问:如何使用超级终端检查通信?

答:超级终端是与 Windows 捆绑在一起的终端程序。

要设置超级终端以用于 Ohaus 天平,请执行以下步骤。为了便于说明,我们做了以下假设。1. 计算机使用 Com1 2. 天平波特率设置为 2400 3. 天平数据位设置为 7 4. 天平停止位设置为 2 5. 天平奇偶校验位设置为无 6. 天平中的握手已关闭

打开程序并输入连接名称。您可能希望保存设置以备将来使用。按 OK 在下一个屏幕中单击“使用以下方式连接”框的向下旋转按钮,然后选择您的计算机使用的 COM 端口。

单击“确定”后,将显示 COMx 属性框。(显示哪个 COM 端口取决于上一步中的设置。)

设置参数以匹配天平中的参数。请参阅天平的使用手册。通常的默认值是 2400 波特、7 个数据位、无奇偶校验、2 个停止位和无握手。完成后按应用,然后按 OK。

将显示终端屏幕。

从菜单栏中选择CALL,选择断开连接。屏幕左下方的“已连接”将变为“已断开连接”。

从菜单栏中选择文件,然后选择属性。

选择“设置”选项卡。

检查 Windows 键和 Del。

在框底部单击 ASCII 设置。

勾选前两个框,然后在接下来的两个框中输入 11。

单击“确定”两次。

从呼叫菜单中选择呼叫。

终端屏幕左下方显示“呼叫”。

现在,您已准备好与天平通信。测试连接的最佳方法是按下天平上的打印键。天平的说明书中列出了其他命令。

该网站还提供了一些其他信息:

如何让我的 Defender 5000 指示器 (T51P 或 T51XW) 打印而不插入额外的换行符?我使用的是带有预印标签的标签打印机,其他所有标签都浪费了。答:您可以通过进入 Print1 或 Print2 下的菜单并将格式设置为 Single 来执行此操作。问:好的,现在我正在打印单个标签,但信息太多。我仍然在使用 T51P。答:再次进入 Print1 或 Print 2 菜单。您也可以关闭所需的所有标题和 GLP 信息。您还可以关闭毛重、净重和皮重打印,只保留结果。您还可以选择将结果设置为 NUM,仅将其打印为数字。这将消除计量单位。问:我使用的是 7000 系列 Defender 指示器 (T17P),我无法清除累加器。我已按照手册中的说明进行操作,但无法清除。答:按住“信息”按钮,直到显示屏显示“StatS”。然后按“CLR”按钮清除累加器。

取自:http://us.ohaus.com/us/en/home/support/faq.aspx#S16

答案2

验证您是否配置了正确的串行端口设置。

我最近制作了一个应用程序来从中读取重量值OHAUS Defender 3000,这些是正确的参数:

//OHAUS Defender 3000                        
_serialPort = new SerialPort(cbxPorts.Text);                        
_serialPort.BaudRate = 9600;                        
_serialPort.Parity = Parity.None;                        
_serialPort.DataBits = 7;                        
_serialPort.StopBits = StopBits.One;                        
_serialPort.Handshake = Handshake.XOnXOff;

答案3

测试端口的一种实用方法com是使用terminal emulator。您可以使用许多可用的端口(putty并且TeraTerm被广泛使用)。您需要将其设置为使用串行连接,然后设置连接参数:com数字;速度(波特率)、奇偶校验、数据位、停止位 -这些必须与您的设备设置相匹配(您需要从手册中获取此信息)。连接后,您将能够输入命令并查看设备输出。
您也可以从发送命令cmd,但您将看不到响应(在 cmd 窗口中,当然设备可能/应该以某种方式对其做出反应),并且您还需要确保波特率/数据/奇偶校验/停止(最低限度)设置正确 - 这是通过mode命令完成的。

重申:串行参数(速度、数据位、奇偶校验、停止、可能的握手)在两端(秤和 PC)必须相同,否则它们将无法相互理解

答案4

有手册可在线获取。(一般来说,在谷歌上搜索“討厭手册”,其中討厭是型号,这是查找产品手册的好方法。)它记录了命令行和秤提供的数据。它还解释了如何配置设备 COM 端口。您需要使用与终端程序的通信设置相匹配的设置。

相关内容