使用Zaber设备诊断通信问题

时间:2012-10-17 22:47:58

标签: c# labview zaber

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

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

通常,我使用C#在Zaber Console中编写脚本,但我也使用Zaber仪器驱动程序编写LabVIEW VI。

1 个答案:

答案 0 :(得分:2)

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

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

Zaber控制台日志窗口

仅限Zaber控制台,仅限Windows。

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

Portmon

仅适用于32位Windows。

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

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

Portmon screenshot

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

HHD串行监视器

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

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

现在,当我向设备发送一些命令时,我会看到使用十六进制读取和写入请求以及数据的文本显示。这相当于上面的Portmon截图。

HHD Serial Monitor screenshot

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

NI Spy或NI I / O Trace

可用于LabVIEW

此选项不易阅读,但它附带LabVIEW,您可以阅读the documentation如何启动它。这是NI Spy工具的屏幕截图。我认为它带有旧版本的LabVIEW。

NI Spy screenshot