MODBUS 协议在HMI中如何应用?

MODBUS 协议在HMI中如何应用?

                                                            MODBUS 协议在HMI中如何应用?

  在人机界面设计应用中,经常碰到需要与自行设计的单片机控制板通讯的情况。在这应用环境下MODBUS 协议是 HMI 与设备间实现主从通信模式中的一种方式。

下面单片机(以下称为 MCU)和 HMI 通过 MODBUS 协议( RTU 传输模式)通信,来介绍如何使用MODBUS 协议实现 HMI 与 MCU 间通信。

HMI 与 MCU 间通过 MODBUS 协议通信主要有下面两种主从方式

6   MODBUS 协议通信的两种主从方式

主/从

使用通讯协议

优点

缺点

HMI 作主设备

MCU 作从设备

Modbus RTU

HMI 直接访问 MCU 映射出来的

0X,1X,3X,4X 寄存器。

MCU 作为从设备,必须不断响应 HMI的查询,CPU 占用率高;MCU 须采用中断方式响应,编程相对困难。

MCU 作主设备

HMI 作从设备

Modbus RTU Slave

MCU 作为主设备,可以主动发起通讯,不必占用过多 CPU 时间。HMI 本地地址 LW,LB 被映射为4X,0X 寄存器,由 MCU 写入或读取。

HMI 组态上 LW 数据被修改时,必须通过 MCU 的定期查询才能被读出,实现起来不方便。MCU 只能访问 HMI 本地字(LW),本地位(LB)

   

 HMI 作主,MCU 作从使用 Modbus RTU 协议HMI 作MCU 作主就不做说明了):

MCU 与 HMI 使用标准的 Modbus RTU 协议进行通信,HMI 为主控端, MCU 为从属端,在 MCU 中,需要编写通信中断服务程序,处理来自 HMI 的通讯请求。MCU 须支持标准 Modbus RTU 协议,同时 MCU 须映射出 0X,1X,3X,4X 寄存器(其中 0X,1X 为位寄存器;3X,4X 为字寄存器)

通讯的推荐参数为 19200,8 数据位,1 停止位,无校验位。协议支持除 7 数据位之外的所有设置组合。波特率范围1200-115200。

通讯处理流程

首先,HMI 发送一个请求给 MCU, MCU 接受请求之后,给 HMI 回复一个响应。MCU 能访问 HMI 中 4X,3X,0X,1X 寄存器,地址范围均为 1~65535。

HMI 上电通讯处理流程 HMI 上电后

(1)如果组态工程页面中没有放置任何元件,则 HMI 不会对外发送任何通讯数据包

    2)如果组态工程页面中放置了元件,且这些元件地址类型均为本地类型(LW,RW,RWI,LB,RB,RBI,LW.B),

HMI 不会对外发送任何通讯数据包

3)如果组态工程页面中放置了元件,且这些元件地址类型不为本地类型,为 0X,1X,3X,4X,则 HMI 不断扫描

组态页面的这些寄存器,不断对外发送通讯数据包

4)当使用定时器元件进行位元件批量写(连续地址传输个数大于 1)的时候,HMI 所发数据包中会封装功能码:

0x0F

5)当使用定时器元件进行字元件批量写(连续地址传输个数大于 1)的时候,HMI 所发数据包中会封装功能码:0x10

 

6)使用配方元件进行下载操作(即把 HMI 中本地字寄存器 RW 数据下载到 MCU 相应寄存器中)。

暂时没有评论

真实

多重认证,精挑细选的优质资源 优质老师。

安全

诚实交易,诚信为本。

保密

所有交易信息,都为您保密。

专业

10年专业经验,10年来帮助无数学子。