LP3系列PLC具备完整的 MODBUS 协议通信功能,符合国际标准(RTU 模式,不支持 ASCII 模式)。用户可通过编写梯形图来实现LP3系列PLC同其它设备的通信。
MODBUS 串行链路协议是一个主从协议。在同一时间,总线上只能有一个主站,和一个或多个(最多 247 个)从站。MODBUS 通信总是由主站发起。当从站没有收到来自主站的请求时,不会发送数据, 从站之间不能互相通信。主站同时只能启动一个 MODBUS 事务处理。
主站用两种模式向从站发出 MODBUS 请求:
单播模式,主站寻址单个从站。从站接收并处理完请求之后,向主站返回一个报文。
在这种模式下,一个 MODBUS 事务处理包含两个报文:一个是主站的请求,另一个是从站的应答。每个从站必须有唯一的地址(1~247),这样才能区别于其它站并独立地被寻址。
广播模式,主站可以向所有的从站发送请求。
对于主站发送的广播请求从站不会应答返回;广播请求必须是写命令。所有设备必须接受广播方式的写命令。地址 0 被保留用来识别广播通信。
2、MODBUS主站配置
LP3系列PLC的所有串口(COM0/COM1)都支持 MODBUS 主站协议。
作为 MODBUS 的主站,LP3系列PLC的用户程序根据设备工艺要求,采用 MODBUS 指令对从站相关资源进行读入和写出。
通过串口初始化指令(UINIT)将串口 1 配置为 MODBUS 主站,才能与从站通信,关于 UINIT 指令的详细用法请参见 4.2.4 章节。
正常情况下,一般将串口 1 配置为 MODBUS 通信端口,串口 0 作为编程口使用,如果梯形图没有对两个串口进行配置,则都默认配置为编程口,在梯形图运行第一个扫描周期内,需对串口进行配置。特殊情况下的端口配置方法请参见 4.5.3 章节。
推荐参数配置:传输速率 9600 bps,无校验,数据长度 8 位,停止位 1 位。传输速率也可选择
19200 bps 和 38400 bps,但其它参数只能选择无校验,数据长度 8 位,停止位 1 位。
从站通信端口支持 MODBUS协议RTU 模式,从站与主站的通信参数(如波特率、数据位、校验位、停止位)必须保持一致
从站相关软元件资源的 MODBUS 通信地址必须明确
LP3系列PLC使用 MODBUS 协议时,需要对通信协议调度区进行配置。
通信协议调度区起始地址由串口初始化指令 UINIT 的操作元 D1 指定,指定调度区 D 寄存器的起始号,调度区将占用从起始号开始的 1 个D 寄存器,关于 UINIT 指令的详细使用说明请参见本章2.2节。
如 D1 = 7000,则 D7000 作为该串口的任务调度数据区被系统占用。
任务调度数据区占用的寄存器命名为 MODBUS 通信状态寄存器,其中 D0~15 位的定义如下:
D0 位—发送成功标志位,当一帧报文发送完成后,该位置 1,由用户程序复位。
D1 位—接收成功标志位,当一帧报文接收完成后,并且 CRC 检验正确,该位置 1,由用户程序复位。
D2 位—CRC 检验错误标志位,当一帧报文接收完成后,如果 CRC 检验错误,该位置 1,由用户程序复位。
D3~D15 位:系统保留
一般情况下,如果用户的 MODBUS 主站程序采用定时方式与其它从站轮流通信,则这三个状态标志位只用于观测 MODBUS 通信链路的状态,不参与程序控制。如果用户需要快速与其它从站进行通信, 主站程序可以采用查询方式,当查询到接收成功标志位置 1 时,可启动下一次 MODBUS 通信,并且用户程序需要立即复位接收成功标志位;查询方式下,启动 MODBUS 指令后,用户程序同时启动一个定时器作为接收超时检测,在该时间点到达之后,如果接收成功标志位未置 1,用户程序直接启动下一次 MODBUS 通信。
楼主最近还看过