MODbus 通讯帧的结构

在使用MODbus通讯协议时,用什么编写程序时需要了解通讯帧的结构?

上图 a初始化,怎么向Modbus寄存器40001写入1142?用什么编程软件?

不太清楚你这个是跟什么通讯.
不过无论跟什么通讯,你就依据他的格式发送编码即可. 跟你使用的变成软件没有关系.
比如初始化, 你向他的寄存器地址写入对应的数据,但是要按照他的格式编码即可. 帧结构就是编码方式.
最后用软件编码成字节发给寄存器即可.追问

这是PLC跟ABB变频器的通讯,就是不明白如何向他的寄存器写入对应的数值,用软件编码发送,是MODbus调试软件吗?

追答

我之前做过跟三菱PLC的通讯.
寄存器写入数值很简单, 文件中一定会给你寄存器的地址(看上面的就是40001),和指令,以及指令格式(也就是帧的结构),我不太清楚你的全文档时如何描述的.

拿你给出的片段来说:
1:站地址 就是 你要写入或者读取的地址.
2:他的帧结构中一定会有一个所谓的功能码或者命令码之类的. 也就是文件会告诉你什么样的编码是写入命令,或者读取命令.
3:帧结构中也告诉你了要写入或者读取的数据放在功能码后面.
剩下你要做的仅仅按照他的要求进行十六进制编码,然后一般是转换成bytes发送. 整个程序比较麻烦的就是编码工作了,因为有些还需要你将数据做倒序编码写入等.

建议做法:
将编码单独做成动态链接库文件. 然后的你程序再调用你的dll即可.这样方便将来维护更新.
Modbus只是一种串行通信协议而已. 要写这个程序,用任何编程语言都可以的,只要你的设备或者计算机可以运行即可. 比如你通过计算机发送命令给PLC, 那在计算机上你可以用VB,C++,JAVA等等都是可以的.

温馨提示:答案为网友推荐,仅供参考
相似回答