- {{item.name}}
CP441作主站(Master)的Modbus RTU通讯(STEP7)
- 0
- 7
CP441作主站(Master)的Modbus RTU通讯(STEP7)
硬件及软件列表
组态和配置
编写通信程序
设备连接
通信测试
手册下载
硬件及软件列表
设备名称 | 设备型号 |
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
手册下载
更详细的资料请参看如下手册:
剩余80%未阅读,请登录查看大全章节内容
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
{{item.nickName}}