CP441作为(Slave)的Modbus RTU通信(TIA)

硬件列表

组态和配置

编写通信程序

设备连接

通信测试

手册下载

硬件列表

设备名称
设备型号

RACK

6ES7400-1JA01-0AA0

PS407 4A

6ES7407-0DA02-0AA0

CPU414-3PN/DP

6ES7414-3EM06-0AB0

CP441-2

6ES7441-2AA04-0AE0

Dongle 6ES7 870-1AB01-0YA0

RS422/485接口

6ES7963-3AA00-0AA0

应用CP441进行 Modbus协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP441模块的背面的Dongle插槽中,如下图所示。

图1

组态和配置

1、打开TIA PORTAL,本文使用TIA PORTAL V16,新建项目,鼠标点击“添加新设备”,参考下图路径选择CPU,本文使用414-3PN/DP。

图2

2、进入设备视图,导轨RACK和CPU已经存在,可能RACK型号与实际不一致且CPU的插槽位置也不对,这时需要手动调整与实际匹配进行,再依次添加PS407、CP441-2以及模板接口配置,如下图所示。

图3

3、双击CP441-2模板,进入CP441-2的属性框,配置CP441-2参数。如下图所示。

图4

4、本例使用第一个接口IF396 RS422/485,在属性-IF396 RS422/485-协议,选择“Modbus从站”,配置Modbus通信参数,设置传输率、字符帧等参数,与伙伴配置相同,协议参数修改从站地址,本文为2,其他默认即可。如下图所示。

图5

5、进入功能码配置界面,FC01,05,15:读取、强制输出位的状态;分4个范围,每个范围前2行地址为信息传送地址,后2行对应西门子的PLC地址区,即第1范围从0~15对应Modbus地址区为00001~00016,对应西门子数据区(标记F.)为M0.0~M1.7;第2范围从16~31对应Modbus地址区00017~00032,对应西门子数据区(输出Q.)为Q0.0~Q1.7;第3范围从地址32~64,对应Modbus地址区00033~00065,对应西门子数据区(时间T.)为T0~T2;第4范围地址80~0112对应Modbus地址区00081~00113,对应西门子数据区(计数器C.)为C0~C2。

图6

6、FC02读取输入数据位的状态,第1范围从0~15对应Modbus地址区10001~10016,对应西门子数据区(标记F.)为M2.0~Q3.7;第2范围从地址16~31,对应Modbus地址区10017~10032,对应西门子数据区(输入I.)为I0.0~I1.7。

图7

7、FC03,06,16组态输出寄存器数据区,对应西门子数据区为DB块,即Modbus保持寄存器地址区地址40001,对应西门子DB块地址DB1.DBW0,依次类推。

图8

8、FC04组态输入寄存器数据区,对应西门子数据区同样是DB块,即Modbus输入寄存器地址区地址30001,对应西门子DB块地址DB2.DBW0,依次类推。

图9

9、设置功能码FC05 06 15 16写参数的限制值。

图10

10、接口参数,本文接口为485接口,按照实际设置,其他默认即可。如下图所示。

图11

11、点击进入网络视图,点击连接,可以看到2个PTP连接,点击接口1PTP_1子网,点击属性,查看连接属性设置界面。

图12

编写通信程序

1、双击OB1,打开编程界面,从通信-通信处理器-Modbus Slave(RTU),调用功能块MODB_441,按照系统默认分配背景DB。

图13

2、新建数据块FC 03 06 16, FC04功能码通讯数据区DB1,DB2,本例建50个WORD数据结构。

图14

3、指令块MODB_441参数设置 。

图15

MODB_441的参数设置如下:

名称

数据类型

注释

ID

INPUT/INT

Local ID号,在PTP连接属性中获得,16进制

START_TIMER

START_TIMER

初始化超时定时器,本例中为T1

START_TIME

INPUT/S5TIME

初始化超时时间值,本例为5S

START_TIMER

START_TIMER

通讯状态读取定时器,本例中T2

START_TIME

INPUT/S5TIME

通讯状态读取时间,本例为2S

OB_MASK

INPUT/BOOL

IO访问错误屏蔽位,本例使用M100.0
0:不屏蔽IO访问错误
1:屏蔽IO访问错误,并使报警延时

CP_START

INPUT/BOOL

FB初始化使能位,本例使用M100.1

CP_START_FM

INPUT/BOOL

CP_START初始化的上升沿位,本例使用M100.2

CP_NDR

OUTPUT/BOOL

CP写操作位,本例M100.3

CP_START_OK

OUTPUT/BOOL

初始化成功完成位,本例M100.4

CP_START_ERROR

OUTPUT/BOOL

初始化错误标志,本例M100.5

ERROR_NR

OUTPUT/WORD

错误号,本例MW102

ERROR_INFO

OUTPUT/WORD

错误信息,本例MW104,诊断信息可参考手册

设备连接

本文使用的是RS485接口,通过将485接口转化232到USB连接计算机的接口,需要使用RS232C/RS485转换器(需要选购第三方设备)。

具体的电缆连接方法请查看:串口接线

通信测试

这里使用串口通信测试软件ModSCAN软件来测试CP441-2和计算机的通信,步骤如下:
1、在计算机上打开软件ModSCAN32,选择菜单栏连接设置-连接,设置连接参数,选择对应的串口,设置波特率、数据位、停止位、校验方式、通讯协议。设置完成,点击OK,监视控制画面。

图16

2、将程序块引脚CP_START置1,CP_START_OK和CP_START_FM也会为1,主站设置功能码03,起始地址40001,长度4,读取Modbus从站寄存器数据。

图17

 

手册下载

更详细的资料请参看如下手册:

CP441使用手册

Modbus RTU从站手册