modbus

 《MODBUS通讯协议中文版.pdf》
 
RS485是一个物理接口,简单的说是硬件。
MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途);所谓协议,也可以理解为上面有人说的“语言”吧,简单的说是软件。
MODBUS协议又分MODBUS RTU,MODBUS ASCII和后来发展的MODBUS TCP三种模式:其中前两种(MODBUS RTU,MODBUS ASCII)所用的物理硬件接口都是串行(Serial)通讯口(RS232,RS422,RS485)。而MODBUS TCP模式,该模式的硬件接口就是以太网(Ethernet)口了,也就是我们电脑上一般用的网络口了。

#modbus 异常代码

ILLEGAL_FUNCTION = 1  功能代码不合法
ILLEGAL_DATA_ADDRESS = 2  数据地址不合法
ILLEGAL_DATA_VALUE = 3  数据值不合法
SLAVE_DEVICE_FAILURE = 4 slave设备失败
COMMAND_ACKNOWLEDGE = 5  命令已收到
SLAVE_DEVICE_BUSY = 6    slave设备忙
MEMORY_PARITY_ERROR = 8 内存奇偶误差

#supported modbus 功能代码
READ_COILS = 1 读线圈
READ_DISCRETE_INPUTS = 2 读离散输入
READ_HOLDING_REGISTERS = 3  【读乘法寄存器】
READ_INPUT_REGISTERS = 4  读输入寄存器
WRITE_SINGLE_COIL = 5  写单一线圈
WRITE_SINGLE_REGISTER = 6  写单一寄存器
WRITE_MULTIPLE_COILS = 15 写多个线圈 【强制多点线圈】
WRITE_MULTIPLE_REGISTERS = 16  写多寄存器 【写乘法寄存器】

#supported block types 支持的块类型
COILS = 1   线圈
DISCRETE_INPUTS = 2  离散输入(数字量输入)
HOLDING_REGISTERS = 3  乘法寄存器
ANALOG_INPUTS = 4 模拟量输入

modbus slave:  http://blog.csdn.net/ab_2016/article/details/77854386 

========================================================================

根据 从机地址,功能码,数据地址,读取数据个数,计算得到crc

 

 =============杨更更 modbus软件开发实战指南

=============协议=====

 

slave 地址范围: 

 

 

 

 

 

 

 

 

判断是不是异常

 

posted on 2017-12-31 17:58  我和你并没有不同  阅读(2996)  评论(0编辑  收藏  举报