西门子串口通讯05-CP441-2在Step7环境中做Modbus主站通讯

西门子串口通讯05-CP441-2在Step7环境中做Modbus主站通讯
v—x---公–众--号:工控自动化老王
1.安装Dongle
Dongle的安装位置参考下图 :
在这里插入图片描述
2 组态和配置
1、打开创建好的项目ptp,插入一个新的SIMATIC 400 Station,更改站名为CP441-2 modbus Master,双击Hardware进入硬件组态画面,插入RACK、PS、CPU、CP441-2,具体步骤如下图:
在这里插入图片描述
2、CP441-2模板,点击Parameter配置CP441-2参数,在Protocol 中选择MODBUS Master。
在这里插入图片描述
3、Protocol 下的信封图标,配置Modbus master参数,点击Modbus-master 按钮,设置通讯速率、报文信息等基本参数,其它可选择默认参数配置。
在这里插入图片描述
4、配置完成后点击OK并保存,关闭对话框,和用CP441-2做ASCII,通讯时一样,要为所使用的接口新建PtP,连接并记录Local ID(Hex) 连接号。
在这里插入图片描述
5、通过“保存编译”保存编译组态信息,如果没有错误,选中CPU进行组态信息的整体下载,并使用“激活连接状态”在线查看连接状态,直到“connection status” 的显示绿色三角形,说明连接正确建立。
6、CP441做MODBUS通讯时,还要更改CPU属性中的“Startup”参数。
在这里插入图片描述
“Monitoring Time for”à“Transfer of parameters to modules(100ms)” 设置为最小为3000(=300s)的值,这样做是为了保证有足够长的时间将使用的加载协议驱动下载到CP卡中。
3 编写通信程序
1、打开OB1,与做ASCII通讯时一样从库中调用SFB12、SFB13,并分配背景数据块,SFB12 背景数据块为DB12,发送数据的数据块为DB1。
在这里插入图片描述
2、调用发送功能块。使用的从站地址为5,功能码为FC01,起始地址为0,读16个输出位的状态。当使用不同的功能码进行通讯时请求报文的定义请参考MODBUS MASTER手册第五章节Function code 的相关说明。
在这里插入图片描述
3、Modbus RTU通讯中使用SFB12 的补充说明如下,其余参数与CP441 ASCII通讯时含义相同,可参考上文设置。
R_ID
用于在同一连接中不同块的区分,使用Modbus RTU通讯时此值的取值范围是0-255,本例使用的是DW#16#1。
LEN
取值范围取决于所使用的功能码,可参考下表。
功能码 16 长度(以字节为单位)
01 6
02 6
03 6
04 6
05 6
06 6
07 2
08 6
11 2
12 2
15 〉6
16 〉6
4、FB13背景数据块为DB13,并创建接收数据的DB块DB2。
在这里插入图片描述
5、调用接收功能块
在这里插入图片描述
SFB13中“R_ID”的设置必须与成对调用的SFB12中的“R_ID”一致,用来激活接收信息的程序,所以此处必须设置为DW#16#1。可在MW20中查看接收数据的长度信息。
4 设备连接
本文档使用的CP441-2的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP441-2和计算机的串口,具体的电缆连接方法请查看CP441手册附录B Connnecting cables。
如果使用的CP441-2是RS485接口的模块,需要使用RS232C/RS485转换器。
5 通信测试
前面使用Step7 V5.5软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件modbus slave软件来测试CP341和计算机的通信,步骤如下
1、同样使用Modbus slave 测试软件,连接设置请参考上文CP341测试的操作步骤,从站的设置如下图所示。
在这里插入图片描述
2、在Step7变量表中设置M8.0为TRUE,使能接收,手动触发M0.0以产生上升沿,使能发送,可看到数据通讯结果如下图所示。
在这里插入图片描述
3、测试不同的功能码时相应的修改主站发送的数据请求报文即可。
在这里插入图片描述
在这里插入图片描述

posted @ 2020-05-25 09:03  工控自动化老王  阅读(416)  评论(0编辑  收藏  举报