我正在尝试通过 modbusTCP 或 modbus 串行与 modbus 从站通信。制造商。(partlow) 有一个 ASCII 通信手册 ( http://www.partlow.com/uploadedFiles/Downloads/1160%20ASCII%20Comms%20Manual.pdf ),看起来它不同于标准的通信方法 ( http://en .wikipedia.org/wiki/Modbus)。许多现有的代码都设置为与线圈的普通 modbus 寻址等一起工作,在这些地方(至少对我而言)似乎与这些人不同。
那么,通过 ruby 或 perl,我如何发送十六进制数据?我可能一切都很好,但是,如果我将“0DFA”写入串行端口......可以吗?还是我需要先将其转换为较低层,还是以某种方式表示?
一直在做这件事,可能把自己搞混了(让事情变得比现在更复杂)但是,我正在尝试与这个仪表建立通信,我可以看到 TX 活动指示灯闪烁但没有 RX,这表示我的数据格式错误...
一直在解决这个问题(和一些 perl 片段在这里和那里,试图找到有用的东西): http ://www.messen-und-deuten.de/modbus.html
我正在通过终端服务器进行通信,该服务器接受 modbusTCP(此脚本使用),但我无法将 comm 手册中的内容应用于上面的代码,以正确格式化数据包。