最近拿到一个需求,需要根据协议将设备和一个基于moubus协议编写的程序通讯.看到协议里有一个地方看不太懂。
想来请教一下关于使用过这个协议的朋友。是TCP/IP模式的.如下图
这个03 06 16功能码指的是什么??如果我从设备获取数据以后该如何转换?有没有相关资料。
------解决思路----------------------
modbus协议分为modbus rtu和modbus tcp,是不同的
可以分别用这两个作为关键字去搜索,有详细的介绍
------解决思路----------------------
另,modbus RTU用于串口通信,采用CRC-16校验
modbus TCP前面追加6字节作为数据包的头部,而没有校验
------解决思路----------------------
Modbus是标准的工业通信协议。
03,06,16都是操作功能码。通过功能码区分,避免误操作。
1、首先你要向数据发送端索取一份叫点表的配置表。
2、根据点表,以及Modbus规范编写程序。下载Modbus模拟程序。进行测试。
3、最后和对方进行联调。
如果对方设备你已经可以直接连接。你可以使用Modbus客户端,根据点表直接读取设备上的数据。也方便你的调试
------解决思路----------------------
你可以到这儿下载:http://download.csdn.net/detail/cxm446749608/3104835 Modbus协议中文版【完整版】
------解决思路----------------------
直接下一个NModbus,然后就可以用ReadInputRegister()了
------解决思路----------------------
modbus协议是施耐德制定的标准工业通信协议
3楼所说的"点表",在施耐德PLC里叫做地址表,有的设备厂家把它叫通信协议,或者通信规约
总之就是告诉你设备里都有什么信息,每个信息占几个字节,什么类型的,起始地址是什么寄存器