1、什么是modbus通信协议 |
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 |
|
2、通信方式 |
Modbus设备可分为主站(poll)和从站(slave)。主站只有一个,从站有多个,主站向各从站发送请求帧,从站给予响应。在使用TCP通信时,主站为client端,主动建立连接;从站为server端,等待连接。 · 主站请求:功能码+数据 · 从站正常响应:请求功能码+响应数据 · 从站异常响应:异常功能码+异常码,其中异常功能码即将请求功能码的最高有效位置1,异常码指示差错类型 |
3、数据读写 |
3.1 主机对从机写数据 |
如果单片机接收到一个报文那么就对报文进行解析执行相应的处理,如上面报文: 01 06 00 01 00 17 98 04 从机地址 功能号 数据地址 数据 CRC校验 假如本机地址是 1 ,那么单片机接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则结果是: HoldDataReg[1] = 0x0017; MODBUS主机就完成了一次对从机数据的写操作,实现了通讯。 |
3.2 主机对从机读数据 |
主机进行读HoldDataReg[1] 操作,则报文是: 01 03 00 01 00 01 D5 CA 从机地址 功能号 数据地址 读取数据个数 CRC校验 那么单片机接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则结果是:返回信息给主机,返回的信息也是有格式的: 返回内容: 01 03 02 0017 F8 4A 从机地址 功能号 数据字节个数 两个字节数据 CRC校验 MODBUS主机就完成了一次对从机数据的读操作,实现了通讯。 |
4、modbus rtu功能码 |
最常用功能码: |
5、modbus网关 |
仰科modbus网关可以作为主站采集从站设备数据,也可以作为modbus从站,把数据发送给主站。只需简单配置,就可以实现modbus设备的采集和转发。可覆盖多种应用场景,满足客户需求。 |
|
|
|
|
|
|