Modbus通信案例解析
存储区,存储区代码、范围,为了便于记忆,可将输入线圈1区看成是I区,输出线圈0区看成是Q区;
地址模型分为长地址模型是6位和短地址模型是5位
1区:【类似线圈输入I点 只读】:10001~19999;
0区:【类似线圈输出Q点 可读可写】:00001~09999;
3区:【类似AIW模拟量 只读】:30001~39999;
4区:【类似V区 可读可写】:40001~49999;
功能码
1、读取 0 1 3 4区都是可以读取的;
2、写入0 4区可以写入;
协议分类
ModbusRTU协议和ModbusASCII协议在串口上运行的,ModbusTCP协议在以太网口上运行的。
ModbusRTU也可以在以太网上运行,它主要应用在串口服务器上,如仪表是485 modbus RTU通讯的串口,想接入到以太网中,就需要串口服务器【它走的是透传,也可以串口服务器自己处理,就是把串口的报文传过去】。
报文实战
主站从站,是很容易弄混淆的,一般来说进行通讯是要采集数据的,谁主动谁就主站,谁被动谁就是从站。服务器端是作为从站,客户端是主作为主站;
Modbus RTU 0x06功能码写单个字
0x06功能码一次只能写单个字
Modbus RTU 0x10功能码写连续多个字
0x06功能码一次可以写连续多个字,前提条件是地址是连续的才可以。如果地址是不连续的就写不了了。对前6个字节时行CRC校验就可以了。
Modbus RTU 0x03功能码读连续多个字
CRC校验的低位在前,高位在后;返回的具体数据为两个为一组,即两个字节为一组,高位在前,低位在后;
Modbus RTU 0x05功能码写单个位
0x05功能码是写单个位,是位操作。
Modbus RTU 0x0F功能码连续写多个位
0x0F是连续写多个位的位操作。
Modbus RTU 0x01功能码连续读多个位
0x01功能码是连续读多个位的位操作;
RS485接口
RS485接口通常使用两根线,传输距离1200米左右,一根用于发送数据(TXD),另一根用于接收数据(RXD)。在A和B两格线之间的电压差,逻辑1=+2V~+6V;逻辑0=-6V~-2V;
Modbus Poll软件下载