此次讲解以项目为例,主要阐述关于SIEMENS S7-1500PLC 实现 Modbus-RTU 通信的配置步骤、程序编写及注意事项,详细的系统配置如下图 。
图 1 实例系统构成
该实例中, Modbus-RTU 主站为安装在 S7-1500 主机架上的 CM PtPRS422/485 HF ,Modbus-RTU 从站模块(站地址为 2)为安装在 ET 200SP 分布式 IO 上的 CM PtP ,接口类型为 RS485 ,通信波特率为 9600bit/s ,无奇偶校验。
该实例所用的软件及硬件
SIMATIC 部件
硬件组态步骤
按照系统配置图,首先组态 S7-1516 CPU 主机架,在主机架上配置点对点通信模块,并将该模块的协议设置为 “Modbus ”,如下图 2 。
图 2 S7-1500 CPU 主机架点对点通信模块组态
然后激活 CPU 的“系统和时钟存贮器功能”,如下图 3 。(本例程中使用了CPU 首次扫描位来实现 Modbus 的初始化,使用 CPU 的时钟信号来控制发送频率,该方法供参考。)
图 3 激活 CPU 的系统和时钟存储器
然后组态 ET 200SP 分布式 IO 站,并在该分布式 IO 上组态点对点通信模块,并将该模块的通信协议设置为 “Modbus ”,如下图 4。
图 4 ET200 SP 分布式 IO 站点对点模块组态,至此硬件配置已完成。
软件编写
S7-1500 实现 Modbus-RTU 功能,需要调用以下指令,见下表 3,其中 “Modbus_Comm_Load ”指令用于通信模块的组态, “Modbus_Master ” 指令和“Modbus_Slave ” 指令分别实现 Modbus 主站通信和 Modbus 从站通信“Modbus_Comm_Load ”指令和 “Modbus_Master ”/ “ Modbus_Slave ”指令是通过 “Modbus_Comm_Load ”指令的 “MB_DB ”参数来实现关联的。
表 3. Modbus-RTU 相关指令