0

当我编写软件来控制 Zaber 设备时,我有时会遇到我不理解的奇怪行为。通常它是由我的脚本或其他软件中的错误引起的,有时是硬件问题,例如串口连接松动。

如何准确查看我的软件发送的命令以及设备的响应方式?我想要一种可以搜索的日志文件,以查看导致错误的原因。

大多数情况下,我使用 C# 在 Zaber 控制台中编写脚本,但我也使用 Zaber 仪器驱动程序编写 LabVIEW VI。

4

1 回答 1

2

有几种技术可以查看从 Zaber 设备发送和接收的原始数据。有些仅限于某些操作系统,有些仅适用于某些软件。大多数选项都涉及查看原始数据,因此请查看用户手册以获取有关消息格式命令编号列表的详细信息。

下面,我将尝试列出一些选项并告诉您它们何时可用。

Zaber 控制台日志窗口

仅在 Zaber 控制台中,仅在 Windows 上。

如果您使用的是 Zaber 控制台脚本或插件,这是最简单的技术。右上角的窗口会为您记录所有请求和响应。如果您在问题发生前清除窗口,然后立即停止脚本,您可能会发现更容易追踪问题。一个缺点是没有显示一些损坏的消息,您只会看到部分数据包超时错误。如果您想要的消息从顶部滚动出来,请在高级选项卡上更改日志大小。

波特蒙

仅在 32 位 Windows 上。

Portmon是一个很棒的工具,我很遗憾它从未升级到 64 位 Windows。如果您仍在运行 32 位版本的 Windows,那么值得一试。我发现最新版本 3.03 对我不起作用,但 3.02 仍然适用。如果正式版不行,那么搜索“portmon 3.02”通常会找到一些带有旧版本的网站。

  • 在 3.02 版中,打开计算机菜单并选择连接本地。
  • 从 Capture 菜单中,选择 Ports: COM1 或您要连接的任何串行端口。确保您的软件当前已关闭,否则 Portmon 将无法连接到串行端口。有时在使用 Portmon 后,您必须重新启动计算机以使其释放串行端口。
  • 从 Edit 菜单中,选择 Filter/Highlight... 并将 Include 设置为IRP_MJ_READ;IRP_MJ_WRITE
  • 在选项菜单上,启用显示十六进制和时钟时间。
  • 尝试从您的软件发送一些命令,然后查看 Portmon 窗口。扩大“其他”列后,您应该会看到类似的内容。

波特蒙截图

在屏幕截图中,您可以看到正在发送的两个命令(每个命令 1 个 6 字节的块)和返回的两个响应(每个响应 6 个 1 字节的块)。请记住,显示器使用的是十六进制数字,因此第一个命令是十六进制 14 或十进制 20(绝对移动)。

HHD 串行监视器

我为 Portmon 找到的最佳替代品是HHD Serial Monitor。它不是免费的,但有试用期,而且许可证非常便宜。我认为它可能比 Portmon 更强大,但它并不容易使用。

以下是我发现对记录 Zaber 设备命令有用的设置。安装并启动 Device Monitoring Studio 后,我在端口列表中单击要监视的串行端口。这将打开一个可用视图列表,然后我双击请求视图。在右侧,我单击“开始”按钮。这将打开请求视图,然后单击“完成”选项卡。

现在,当我向设备发送一些命令时,我看到了数据的十六进制和文本显示的读写请求。这是上面的 Portmon 屏幕截图的等价物。

HHD 串行监视器屏幕截图

同样,第一个命令是 14 十六进制或 20 十进制(绝对移动)。

NI Spy 或 NI I/O 跟踪

可用于 LabVIEW

这个选项不那么容易阅读,但它带有 LabVIEW,您可以阅读有关如何启动它的文档。这是 NI Spy 工具的屏幕截图。我认为它带有旧版本的LabVIEW。

NI Spy 截图

于 2012-10-17T22:47:57.803 回答