TIA Portal V13 SP1 版本开始软件中提供了两个版本的 Modbus RTU 指令集,如下图(软件版本:TIAPortal V17):
image-20240603135512944
两个版本主要区别如下:
- 早期版本的 Modbus RTU 指令集(上图中 MODBUS (V2.2))仅可通过主机架 CM1241通信模块或 CB1241 通信板进行 Modbus RTU 通信。 主要用于早期项目和 V4.0 之前版本的CPU。(本期内容不作介绍)
- 新版本的 Modbus RTU 指令集(上图中 MODBUS (V5.0)扩展了 Modbus RTU的功能,该指令集除了支持主机架 CM1241 通信模块、CB1241 通信板,还支持 PROFINET 或PROFIBUS 分布式 I/O 机架上的点对点通信模块实现 Modbus RTU 通信。建议 V4.0 以后的 CPU 和串口模块使用该版本指令集。(适用于程序指令V3.0及以后)
程序指令V5.0硬件要求:
- S7-1200 CPU 的固件版本不能低于 V4.1
- CM1241 通信模块不能低于 V2.1
- CB1241 没有要求
- 分布式上的串口模块包括:
- ET200SP 的 CM PtP
- ET200MP 的 CM PtP RS232 HF
- ET200MP 的 CM PtP RS422/485 HF
新版本 Modbus RTU 指令集所支持的点对点模块如下图所示:
image-20240603140456893
新版本 Modbus RTU 指令集中包含 Modbus RTU 主站指令和从站指令。
image-20240603140646952
二 | S7-1200 Modbus RTU CB1241 硬件组态 |
本文以 CPU1214C + CB1241(RS485)模块为例,介绍新版本 Modbus RTU 指令主从通信的编程步骤。 CB1241和CM1241 (RS485)硬件组态有略微差别,软件编程都是一致的;
CB1241 (RS485)硬件组态步骤:
设备组态,添加CB1241,打开设备视图,添加S7-1200CPU,并在硬件目录里找到“通信板”→“点到点”→“CB1241(RS485)”,拖拽此模块至 CPU 本体,如下图:
image-20240603142322953组态通讯参数,波特率、奇偶校验、数据位、停止位。(通讯参数需主站与从站必须一致)
image-20240603142833148注:对于CM1241/CB1241 ,当用于 Modbus 通信时,此处设置的停止位无效, 需要在“Modbus_Comm_Load” 指令的背景 DB 的静态变量中修改 “STOP_BITS”
在系统常数中查看硬件标识符(一般从269开始),该参数在程序编程中会被使用,如下图
image-20240603143115588
CM1241 (RS422/485)硬件组态步骤:
设备组态,添加CB1241,打开设备视图,添加 S7-1200CPU,并在硬件目录里找到“通信模块”→“点到点”→“CM1241(RS422/485)”,拖拽此模块至 CPU 左侧,如下图:
image-20240603143722204在模块属性,端口组态中配置模块硬件接口,通讯参数,波特率、奇偶校验、数据位、停止位。(通讯参数需主站与从站必须一致)
image-20240603144733597注:对于CM1241/CB1241 ,当用于 Modbus 通信时,此处设置的停止位无效, 需要在“Modbus_Comm_Load” 指令的背景 DB 的静态变量中修改 “STOP_BITS”
在系统常数中查看硬件标识符(一般从269开始),该参数在程序编程中会被使用,如下图
image-20240603144815858注:由于已经配置了CB1241,新插入的CM1241硬件地址为270;