当我编写软件来控制 Zaber 设备时,我有时会遇到我不理解的奇怪行为。通常它是由我的脚本或其他软件中的错误引起的,有时是硬件问题,例如串口连接松动。
如何准确查看我的软件发送的命令以及设备的响应方式?我想要一种可以搜索的日志文件,以查看导致错误的原因。
大多数情况下,我使用 C# 在 Zaber 控制台中编写脚本,但我也使用 Zaber 仪器驱动程序编写 LabVIEW VI。
有几种技术可以查看从 Zaber 设备发送和接收的原始数据。有些仅限于某些操作系统,有些仅适用于某些软件。大多数选项都涉及查看原始数据,因此请查看用户手册以获取有关消息格式和命令编号列表的详细信息。
下面,我将尝试列出一些选项并告诉您它们何时可用。
仅在 Zaber 控制台中,仅在 Windows 上。
如果您使用的是 Zaber 控制台脚本或插件,这是最简单的技术。右上角的窗口会为您记录所有请求和响应。如果您在问题发生前清除窗口,然后立即停止脚本,您可能会发现更容易追踪问题。一个缺点是没有显示一些损坏的消息,您只会看到部分数据包超时错误。如果您想要的消息从顶部滚动出来,请在高级选项卡上更改日志大小。
仅在 32 位 Windows 上。
Portmon是一个很棒的工具,我很遗憾它从未升级到 64 位 Windows。如果您仍在运行 32 位版本的 Windows,那么值得一试。我发现最新版本 3.03 对我不起作用,但 3.02 仍然适用。如果正式版不行,那么搜索“portmon 3.02”通常会找到一些带有旧版本的网站。
IRP_MJ_READ;IRP_MJ_WRITE
在屏幕截图中,您可以看到正在发送的两个命令(每个命令 1 个 6 字节的块)和返回的两个响应(每个响应 6 个 1 字节的块)。请记住,显示器使用的是十六进制数字,因此第一个命令是十六进制 14 或十进制 20(绝对移动)。
我为 Portmon 找到的最佳替代品是HHD Serial Monitor。它不是免费的,但有试用期,而且许可证非常便宜。我认为它可能比 Portmon 更强大,但它并不容易使用。
以下是我发现对记录 Zaber 设备命令有用的设置。安装并启动 Device Monitoring Studio 后,我在端口列表中单击要监视的串行端口。这将打开一个可用视图列表,然后我双击请求视图。在右侧,我单击“开始”按钮。这将打开请求视图,然后单击“完成”选项卡。
现在,当我向设备发送一些命令时,我看到了数据的十六进制和文本显示的读写请求。这是上面的 Portmon 屏幕截图的等价物。
同样,第一个命令是 14 十六进制或 20 十进制(绝对移动)。
可用于 LabVIEW
这个选项不那么容易阅读,但它带有 LabVIEW,您可以阅读有关如何启动它的文档。这是 NI Spy 工具的屏幕截图。我认为它带有旧版本的LabVIEW。