实际中使用得*多的是PLC 基于Modbus RTU 主站协议通信,变频器、伺服驱动器、磁翻板液位计、流量计、智能仪表和其他PLC等设备作 Modbus RTU从站
主站协议的初始化和执行时间
主站协议在每次扫描时都需要用少量的时间来执行初始化主设备指令 MBUS CTRL。首次扫描时 MBUS CTRL指令初始化 Modbus主站的时间约为1。1lms,以后每次扫描时需要约0。41ms的时间来执行 MBUS CTRL指令
主站向 Modbus从站发送请求消息(简称为请求),然后处理从站返回的响应消息(简称为响应)。 MBUS MSG指令执行请求时,扫描时间将会延长。大多数时间用于计算请求和响应的 Modbus CRO。(PLC的正确学习方法经验)对于请求和响应中的每个字,扫描时间会延长约1。85ms。*大的求响应(读取或写入120个字)使扫描时间延长约222ms
MBUS_CTRL指令
MBUS_CTRL指令用于初始化、监视或禁用 Modbus通信。每个扫描周期都应执行该指令,否则 Modbus主站协议将不能正确工作。调用 MBUS CTRL指令时,将会自动添加几个受保护的用于 Modbus通信的子程序和中断程序
输入参数Mode(模式)用来选择通信协议,Mode为1时分配 Modbus协议并启用该协议;Mode为0分配PPI协议并禁用 Modbus协议
Baud(波特率)可以设为1200bit/s、2400bits、4800bit/s、9600bit/s 19200bits38400bit/s、57600bits或115200bis
Parity(奇偶校验)应与 Modbus从站设备的奇偶校验方式相同。数值0、1、2分别对应无奇偶校验、奇校验和偶校验
参数 Timeout(超时)是等待从站作出响应的时间(1~32767ms),典型值为1000(1s)。
MBUS INIT指令
MBUS INIT指令如果被成功地执行,输出位Done(完成)为ON
Eror(错误)输出字节包含指令执行后的错误代码(见S7-200的系统手册或指令的在线帮助),为0表示没有错误
图6-25中的 MBUS CTRI指令设置端口0的波特率为19200bits,无奇偶校验,超时时间为1s
MBUS MSG指令用于向 Modbus从站发送请求消息,以及处理从站返回的响应消息EN输入和输入参数 First(首次)同时接通时, MBUS MSG指令向 Modbus从站发送主站请求。发送请求、等待响应和处理响应通常需要多个PLC扫描周期。EN输入必须接通才能启用请求的发送,并且应该保持寺接通状态,直到Done(完成)位被置位。
Slave是 Modbus从站的地址(0~247),地址0是广播地址,只能用于写请求。S7-200Modbus从站库不支持广播地址
参数RW(读写)为0时为读取,为1时为写入。数字量(或称离散量)输出(线圈)和保持寄存器支持读请求和写请求。数字量输入(触点)和输入寄存器仅支持读请求
参数Adr(地址)是起始的 Modbus地址。 Modbus主站指令支持的 Modbus地址见表6-12,地址中包含了地址区的信
息。实际的有效地址范围取决于从站设备支持的地址。参数 Count(计数)用于设置请求中要读取或写入的数据元素的个数(位数据类型的位数或字数据类型的字数)。MBUS MSG指令*多读取或写入120个字或1920个位(240B的数据)。实际的上限与从站有关