- {{item.name}}
CP441作从站(Slave)的Modbus RTU通讯(TIA)
- 1
- 374
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
手册下载
更详细的资料请参看如下手册:
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错


西门子官方商城




{{item.nickName}}