S7-1200 作为Modbus RTU 主站 S7-1200 支持Modbus RTU 通信模式的模块可作为Modbus RTU 主站。以下以 CPU1215C DC/DC/DC 和CM1241 RS485 模块为例,介绍S7-1200 Modbus RTU 主站通信组态及编程步骤。 硬件和软件需求及所完成的通信任务: 硬件: ① CPU1215C DC/DC/DC (订货号: 6ES7 215-1AG31-0XB0) ② CM1241 RS485 (订货号:6ES7 241-1CH30-0XB0) ③ PS 307 电源(订货号:6ES7307-1KA02-0AA0) ④ PC(带以太网卡) ⑤ TP 以太网电缆 软件: ① STEP 7 Professional V11 SP2 UPD4+HSP ② ModSim(该软件是第三方软件,可以从 Internet 网络下载) 所完成的通信任务: 将Modbus RTU 从站ModSim 中Modbus 地址从40001 开始的5 个字中的数据,分别读取到Modbus RTU 主站CPU1215C 中地址从DB1.DBW0 开始的5 个字中。 1.组态Modbus RTU 通信模块 在硬件目录里找到“通信模块”→“点到点”→“CM1241(RS485)”,双击或拖拽此模块至CPU 左侧即可,如下图 1 所示: 图 1 组态通信模块 接下来,在“设备视图”中用鼠标选中CM1241(RS485)模块,在“属性”→“端口组态”中配置此模块硬件接口参数。如下图 2 所示: 以下以传输率=9.6Kbps,奇偶校验=无奇偶校验,数据位=8 位字符,停止位=1,其它保持默认设置为例。 图2 RS485 端口设置 最后在“硬件标识符”里确认一下硬件标识符为 271,如下图3 所示: 图3 硬件标识符 2.添加启动 OB 在项目树下选择“CPU1215C DC/DC/DC”→“程序块”→“添加新块”,在弹出的窗口中选择“OB 组织块”→ “Startup”,添加启动 OB 100,如下图4 所示: 图4 添加启动OB 3.调用MB_COMM_LOAD 指令 为使端口一启动就被设置为Modbus RTU 通信模式,可在OB 100 中调用“MB_COMM_LOAD”指令。调用“MB_COMM_LOAD”指令时会自动弹出创建相应背景数据块的界面,如下图5 所示: 图5 调用MB_COMM_LOAD 指令 点击“确认”为该指令创建背景数据块后,为各输入/输出引脚分配地址。尤其需注意 MB_DB输入引脚需指向“MB_MASTER”指令的背景数据块,如下图6 所示: 注意: “MB_COMM_LOAD”指令输入位“REQ”需使用上升沿触发。由于 OB 100 只在 S7-1200启动时执行一次,因此,此例中将“REQ”设为“TRUE”。 图6 MB_COMM_LOAD 指令 MB_COMM_LOAD 指令参数意义如下表1 所示: 引脚 说明 EN 使能端 REQ...