西门子串口通讯06CP4412在TIA博途环境中做Modbus主站通讯.docx
《西门子串口通讯06CP4412在TIA博途环境中做Modbus主站通讯.docx》由会员分享,可在线阅读,更多相关《西门子串口通讯06CP4412在TIA博途环境中做Modbus主站通讯.docx(13页珍藏版)》请在冰豆网上搜索。
西门子串口通讯06CP4412在TIA博途环境中做Modbus主站通讯
西门子串口通讯-CP441-2在TIA博途环境中做Modbus主站通讯
1.
硬件列表
2.
组态和配置
1)
新建项目
2)
创建CPU400站点
3)
组态CP441-2
4)
设置协议ModbusMaster
3.
编写通信程序
1)
逻辑地址的填写
2)
调用通信功能块
3)
创建通信数据块DB块
4.
设备连接
5.
通信测试
1)
设置调试软件ModSim32
2)
CP441-2与调试软件测试通信数据
1CP441接口选型
CP441通讯模块可根据实际应用选择不同接口类型的子模块,从而实现与一个或多个通讯伙伴的通讯。
只有CP441-2可装载Modbus协议通信,CP441-2(2个可选子模块接口),子模块接口类型共分为3种。
订货号
接口类型
注释
6ES7963-1AA10-0AA0
RS232C
9针D型针接头
6ES7963-2AA10-0AA0
20mATTY
9针D型孔接头
6ES7963-3AA10-0AA0
RS422/485
15针D型孔接头
2硬件列表
设备名称
设备型号
RACK-400
6ES7400-1JA01-0AA0
PS407
6ES7407-0KA02-0AA0
400CPU
6ES7416-3ER05-0AB0
CP441-2
6ES7441-2AA05-0AE0
(Interface1:
RS422/485)
(Interface2:
RS232C,本例使用接口)
应用CP441-2进行MODBUS协议通信时需要有Dongle的支持。
在使用之前先将Dongle安装在CP441-2模块的背面的Dongle插槽中,Dongle和CP441-2插入Dongle的位置,如下图所示。
图1
3组态和配置
1、打开软件TIAPORTALSTEP7V13,点击项目->新建...创建一新项目,项目名称为441-2_modbusM。
图2
2、用鼠标点击“添加新设备”,选择SIMATICS7-400->CPU->CPU416-3PN/DP->6ES7416-3ER05-0AB0。
图3
3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU416-3PN/DP已经存在,但是可能RACK型号与实际一致,CPU的插槽位置也不对,这里需要手动做调整。
图4
点击CP441-2模板,在选件目录中,选择“通信模块->点到点->PtP接口”,为CP441-2模块指定接口类型。
本例中第一个接口选择RS422/RS485,第二个接口选择RS232C接口,本例对第二个接口作设置和编程。
图5
4、双击CP441-2模板,进入CP441-2的属性框,配置CP441-2参数。
图6
5、本例使用第二个接口,在IF963RS232中点击“协议”,在“协议”选项中选择“Modbus主站”。
配置modbus通信参数,设定的通信参数要和通讯伙伴的相同。
传输率(通信波特率):
9600bps,数据位:
8位,停止位:
1位,奇偶校验:
无,其他的参数都采用默认设置。
图7
配置完成ModbusMaster协议后,点击“点到点接口”,再点击“连接到新的子网”,新建一条PtP子网,本例新建的子网名称为PTP_2。
图8
6、如果选用的是RS422/485接口时,设置与RS232基本相同,只是还需要设置接口类型,如下图所示。
图9
7、进入网络视图,点击“连接”,看到之前图3-8创建的2个ptp连接,其中PTP_2子网的连接本地ID是16#1001(在本例中),这在编写通信程序会使用到。
图10
点击上图中的“属性”,进入PTP_2连接的属性,将连接路径修改成“3:
本地<->伙伴”。
图11
8、设备组态,进入CPU的属性,勾选始终存储器。
这在编写通信程序会使用到。
图12
4编写通信程序
1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3的使用参见手册“S7串行通信模板ModbusRTU主站可装载驱动的操作说明”6.3章节的说明;如下图所示,接受数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为401。
图13
图14
2、进入主程序OB1,从通信->S7通信,调用发送功能块BSEND和接收功能块BRCV。
BSEND的背景数据块为DB1,BRCV的背景数据块为DB2。
图15
CP441-2的发送功能块BSEND的参数设置见下表。
管脚
解释描述
REQ
发送请求位,上升沿触发,本例使用M0.5,为时钟存储器的位,见图12
R
取消通讯
ID
LocalID号,在PtP连接属性中获得,本例为16#1001,见图10。
R_ID
用于在同一连接中不同块的区分,使用ModbusRTU通讯时此值的取值范围是0-255,本例使用的是DW#16#1。
SD_1
数据发送区,本例使用DB10。
也可使用其它地址和数据类型进行访问,具体信息可参考Step7SFB12在线帮助。
LEN
发送的数据量,以字节为单位。
DONE
发送完成位,任务完成且无错误时置1
ERROR
错误位,有错误时置1
STATUS
状态字,标示错误代码,具体信息可参考模块在线诊断内容。
CP441-2的接收功能块BRCV的参数设置见下表。
管脚
解释描述
EN_R
接收使能位,为1时允许接收,本例使用M20.0
ID
LocalID号,在PtP连接属性中获得,本例为16#1001,见图10。
R_ID
用于在同一连接中不同块的区分,使用ModbusRTU通讯时此值的取值范围是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通信测试
前面使用TIAStep7软件已经将通信CP341的通信工作做完,下面进行通信测试。
这里使用串口通讯测试软件ModSim32软件来测试CP341和计算机的通信,步骤如下
1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。
图16
2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和CP441-2的参数相同。
图17
3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。
图18
4、首先将硬件配置和程序下载到CPU416-3PN/DP中,时钟脉冲信号M0.5从0跳变成1时,CP441-2将数据发送出去。
图19
5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。
在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。
图20