设备名称 |
设备型号 |
RACK |
6ES7400-1JA01-0AA0 |
PS407 4A |
6ES7407-0DA02-0AA0 |
CPU414-3PN/DP |
6ES7414-3EM06-0AB0 |
CP441-2 |
6ES7441-2AA03-0AE0 |
Dongle | 6ES7870-1AA01-0YA0 |
RS422/485接口 |
6ES7963-3AA00-0AA0 |
将Dongle插入CP441中,如下图所示。
图1
注意:STEP7 V5.X软件上,必须安装如下软件包才可进行后续的组态配置。
PTP协议软件包:SIMATIC S7-CP PtP Param V5.1+SP15,安装此驱动软件后才能给串行通信模板分配参数,并可以在STEP7中集成通信编程所需要使用的功能块。
Modbus主站驱动:用于Modbus主站时,需要安装此驱动软件包,安装驱动前必须先安装PTP协议软件包。
Modbus从站驱动:用于Modbus从站时,需要安装此驱动软件包,安装驱动前必须先安装PTP协议软件包。
1、打开创建项目设置项目名称:CP443-2 Modbus-M,用鼠标右键点击项目名称,选择Insert New Object-> SIMATIC 400 Station,双击Hardware进入硬件配置画面,插入RACK、PS407 4A 、CPU414-3PN/DP、CP441-2。如下图所示。
图2
2、双击CP441-2模块,进入属性配置窗口,选择Basic Parameters标签,进行接口配置,本文接口1、2,分别配置了RS422/485。
图3
3、 选择General标签,在Interface处添加一个PTP连接。
图4
4、返回Basic Parameters标签界面,点击"Parameters..."配置CP441-2参数,在Protocol 中选择Modbus Master。
图5
5、选择Protocol信封图标,进入协议参数配置对话框,点击Modbus-Master标签,设置通讯速率、报文信息等参数,其他可选择默认参数配置。
图6
6、点击Interface标签,按照现场实际选择接口,本文选择RS485接口。配置完成后点击OK保存配置。
图7
7、在硬件组态画面中,点击“”图标,打开网络组态,进入网络配置界面。选中站点CPU,右击插入新连接。
图8
8、选择连接对象为“Unspecified”未指定,连接类型选为“Point-to-Point Connection“。点击OK确认。
图9
9、进入PTP连接属性对话框,注意Local ID(HEX),后面编程时需要使用,每个连接分配不同Local ID,可以手动修改,范围W#16#1000- W#16#1400。“Communication Direction“选择双向通讯。点击OK确认组态,编译无误后下载。
图10
10、可以通过查看连接状态,直到”Connection status“显示图标下图Set up,说明连接正确建立
图11
11、注意:CP441做Modbus通讯时,需要更改CPU传送参数到模块的时间,最小为3000(=300s),来保证有足够长的时间将使用的加载协议驱动下载到CP卡中。
图12
1、打开编程界面,从库中“Libraries-Standard Library-System function blocks”调用SFB12 BSEND,为其分配背景数据块DB12,调用SFB13 BRCV,为其分配背景数据块DB13。
图13
2、创建发送数据块DB1,根据不同的功能码创建SEND源区域的结构,本文示例03功能码,参考Modbus Master手册 6.3 Function Code 03 -读输出寄存器部分的说明。
图14
3、调用发送功能块,设置参数。
图15
SFB12 BSED的参数设置如下:
数据类型 |
注释 |
|
REQ |
BOOL |
发送请求位,上升沿触发,本例使用M0.0 |
R |
BOOL |
取消通讯 |
ID |
WORD |
Local ID号,在PTP连接属性中获得,16进制 |
R_ID |
DWORD |
用于同一连接中不同块的区分,R_ID 取值范围0-255。 即对多个 BSEND 进行编程时,您必须使用不同的 R_ID |
SD_1 |
ANY |
数据发送区,本例使用的DB区,发送数据为6个字节,也可使用其他地址和数据类型进行访问,具体信息可参考SFB12在线帮助。 |
LEN |
WORD |
发送源DB数据长度,以字节为单位计数 |
DONE |
BOOL |
发送完成位,任务完成且无错误时置1 |
ERROR |
BOOL |
错误位,有错误时置1 |
STATUS |
WORD |
状态字,表示错误代码,具体信息可参考模块在线诊断内容或CP441手册第八章节诊断信息。 |
4、创建接收数据指令块DB2,长度可以根据实际需求设置或者设定比较大的数据区域。
图16
5、调用接收功能块,设置参数。
图17
SFB13 BRCV的参数设置如下:
名称 |
数据类型 |
注释 |
EN_R |
BOOL |
接收使能位,为1时允许接收,本例使用M0.5 |
ID |
WORD |
Local ID号,在PTP连接属性中获得,16进制 |
R_ID |
DWORD |
设置与成对调用的SFB12一致 |
RD_1 |
ANY |
数据接收区,本例使用的DB2 |
LEN |
WORD |
接收数据的长度存储区,以字节为单位 |
DONE |
BOOL |
发送完成位,任务完成且无错误时置1 |
ERROR |
BOOL |
错误位,有错误时置1 |
STATUS |
WORD |
状态字,表示错误代码,具体信息可参考模块在线诊断内容或CP441手册第八章节诊断信息。 |
本文使用的是RS485接口,通过将485接口转化232到USB连接计算机的接口,需要使用RS232C/RS485转换器(需要选购第三方设备)。
具体的电缆连接方法请查看:串口接线
这里使用串口通信测试软件Modbus Slave软件来测试CP441-2和计算机的通信,步骤如下:
1、安装Modbus Slave测试软件,安装完成后,在桌面上生成图标,双击此图标,打开Modbus slave测试软件,如图所示。
图18
2、点击Register later按钮,不注册此软件,可以使用30天,但每次只能使用15分钟,网上下载的软件,没有注册码。然后点击菜单Connection->connect配置串口参数,要和CP441的参数相同。
图19
3、点击OK按钮,然后选择菜单Setup->Slave Definition...设定通讯数据,因为CP441使用的是功能码3,所以选择03 Holding Register,CP441访问的从站地址为2,Slave ID设为2,起始地址从有16#40偏移所以这里填写64,长度2,如下图所示。
图20
4、在调试助手中设置地址64到65 的数据分别16#55 、16#66,然后在Step7变量表中设置M0.5为TRUE,使能接收,然后将M0.0置成 TRUE(上升沿触发),可以监控到读取到DB2.DBW0到DB2.DBW4的值为16#55到16#66,如下图。
图21
更详细的资料请参看如下手册: