设备名称 |
设备型号 |
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 |
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
更详细的资料请参看如下手册: