西门子串口通讯06-CP441-2在TIA博途环境中做Modbus主站通讯

西门子串口通讯-CP441-2在TIA博途环境中做Modbus主站通讯
v—x—公–众–号:工控自动化老王

  1. CP441接口选型
    CP441通讯模块可根据实际应用选择不同接口类型的子模块,从而实现与一个或多个通讯伙伴的通讯。只有CP441-2可装载Modbus协议通信,CP441- 2 (2个可选子模块接口),子模块接口类型共分为3种。
    订货号 接口类型 注释
    6ES7963-1AA10-0AA0 RS232C 9针D型针接头
    6ES7963-2AA10-0AA0 20mA TTY 9针D型孔接头
    6ES7963-3AA10-0AA0 RS422/485 15针D型孔接头
    2 .安装Dongle
    应用CP441-2进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP441-2模块的背面的Dongle插槽中,Dongle和CP441-2插入Dongle的位置,如下图所示。
    在这里插入图片描述
  2. 组态和配置
    1、打开软件TIA PORTAL STEP7 V13,点击项目->新建…创建一新项目,项目名称为441-2_modbusM。
    在这里插入图片描述
    2、用鼠标点击“添加新设备”,选择SIMATIC S7-400->CPU->CPU 416-3PN/DP->6ES7 416-3ER05-0AB0。
    在这里插入图片描述
    3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 416-3PN/DP已经存在,但是可能RACK型号与实际一致,CPU的插槽位置也不对,这里需要手动做调整。
    在这里插入图片描述
    点击CP441-2模板,在选件目录中,选择“通信模块->点到点->PtP接口”,为CP441-2模块指定接口类型。本例中第一个接口选择RS422/RS485,第二个接口选择RS232C接口,本例对第二个接口作设置和编程。
    在这里插入图片描述
    4、双击CP441-2模板,进入CP441-2的属性框,配置CP441-2参数。
    在这里插入图片描述
    5、本例使用第二个接口,在IF963 RS232中点击“协议”,在“协议”选项中选择“Modbus主站”。配置modbus通信参数,设定的通信参数要和通讯伙伴的相同。传输率(通信波特率):9600bps,数据位:8位,停止位:1位,奇偶校验:无,其他的参数都采用默认设置。
    在这里插入图片描述
    配置完成Modbus Master协议后,点击“点到点接口”,再点击“连接到新的子网”,新建一条PtP子网,本例新建的子网名称为PTP_2。
    在这里插入图片描述
    图8
    6、如果选用的是RS422/485接口时,设置与RS232基本相同,只是还需要设置接口类型,如下图所示。
    在这里插入图片描述
    7、进入网络视图,点击“连接”,看到之前图3-8创建的2个ptp连接,其中PTP_2子网的连接本地ID是16#1001(在本例中),这在编写通信程序会使用到。
    在这里插入图片描述
    点击上图中的“属性”,进入PTP_2连接的属性,将连接路径修改成“3:本地<->伙伴”。
    在这里插入图片描述
    8、设备组态,进入CPU的属性,勾选始终存储器。这在编写通信程序会使用到。
    在这里插入图片描述
    4 编写通信程序
    1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“S7串行通信模板Modbus RTU主站可装载驱动的操作说明” 6.3章节的说明;如下图所示,接受数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为401。
    在这里插入图片描述
    在这里插入图片描述
    2、进入主程序OB1,从通信->S7通信,调用发送功能块BSEND和接收功能块BRCV。BSEND的背景数据块为DB1,BRCV的背景数据块为DB2。
    在这里插入图片描述
    CP441-2的发送功能块BSEND 的参数设置见下表。
    管脚 解释描述
    REQ
    发送请求位,上升沿触发,本例使用M0.5,为时钟存储器的位,见图12
    R
    取消通讯
    ID
    Local ID号,在PtP连接属性中获得,本例为16#1001,见图10。
    R_ID
    用于在同一连接中不同块的区分,使用Modbus RTU通讯时此值的取值范围是0-255,本例使用的是DW#16#1。
    SD_1
    数据发送区,本例使用DB10。 也可使用其它地址和数据类型进行访问,具体信息可参考Step7 SFB12在线帮助。
    LEN
    发送的数据量,以字节为单位。
    DONE
    发送完成位,任务完成且无错误时置1
    ERROR
    错误位,有错误时置1
    STATUS
    状态字,标示错误代码,具体信息可参考模块在线诊断内容。

CP441-2的接收功能块BRCV 的参数设置见下表。
管脚 解释描述
EN_R
接收使能位,为1时允许接收,本例使用M20.0
ID
Local ID号,在PtP连接属性中获得,本例为16#1001,见图10。
R_ID
用于在同一连接中不同块的区分,使用Modbus RTU通讯时此值的取值范围是0-255,本例使用的是DW#16#1。
RD_1
数据接收区,本例使用DB11。
LEN
接收数据的长度存储区,以字节单位
NDR
接收完成位,接收无错误完成时为1
ERROR
错误位,为1时说明有错误
STATUS
状态字,标示错误代码,具体信息可参考模块在线诊断内容。
5 设备连接
若使用的是RS422/485接口,需购买一个RS232转RS485的接口转换器,连接CP441-2的RS485和计算机的RS232接口,电缆连接方法请参看手册“点对点链接CP441安装和参数分配”(见:第2章节),附录:B 连接电缆。
本例中使用的是RS232,只需购买一个RS232的电缆,直接连接CP441-2的RS232和计算机的RS232接口。
6 通信测试
前面使用 TIA Step7 软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件ModSim32软件来测试CP341和计算机的通信,步骤如下
1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。
在这里插入图片描述
2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和CP441-2的参数相同。
在这里插入图片描述
3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。
在这里插入图片描述
4、首先将硬件配置和程序下载到CPU 416-3PN/DP中,时钟脉冲信号M0.5从0跳变成1时,CP441-2将数据发送出去。
在这里插入图片描述
5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。
在这里插入图片描述

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