设备名称 |
设备型号 |
RACK |
6ES7400-1JA01-0AA0 |
PS407 4A |
6ES7407-0DA02-0AA0 |
CPU414-3PN/DP |
6ES7414-3EM06-0AB0 |
CP441-2 |
6ES7441-2AA04-0AE0 |
Dongle | 6ES7870-1AA01-0YA0 |
RS422/485接口 |
6ES7963-3AA00-0AA0 |
应用CP441进行 Modbus协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP441模块的背面的Dongle插槽中。如下图所示。
图1
1、打开TIA PORTAL,本文使用TIA PORTAL V16,新建项目,鼠标点击“添加新设备”,参考下图路径选择CPU,本文使用414-3PN/DP。
图2
2、进入设备视图,导轨RACK和CPU已经存在,可能RACK型号与实际不一致且CPU的插槽位置也不对,这时需要手动调整与实际匹配进行,再依次添加PS407、CP441-2以及模板接口配置。如下图所示。
图3
3、双击CP441-2模板,进入CP441-2的属性框,配置CP441-2参数。如下图所示。
图4
4、本例使用第一个接口IF396 RS422/485,在属性-IF396 RS422/485-协议,选择“Modbus主站”,配置Modbus通信参数,设置传输率、字符帧等参数,与伙伴配置相同,协议参数默认即可。如下图所示。
图5
5、接口参数,本文接口为485接口,按照实际设置,其他默认即可。如下图所示。
图6
6、点击进入网络视图,点击连接,可以看到2个PTP连接,点击接口1PTP_1子网,点击属性,查看连接属性设置界面。
图7
1、双击OB1,打开编程界面,从通信-S7通信,调用发送功能块BSEND和接收功能块BRCV,按照系统默认分配背景DB。
图8
2、创建发送数据块DB1,根据不同的功能码创建SEND源区域的结构,本文示例16功能码,参考Modbus Master手册 6.12 Function Code 16-预设多个寄存器部分的说明。
图9
3、发送指令块设置参数 。
图10
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,长度可以根据实际需求设置或者设定比较大的数据区域。
图11
5、发送指令块设置参数 。
图12
SFB13 BRCV的参数设置如下:
管脚 |
数据类型 |
注释 |
EN_R |
BOOL |
接收使能位,为1时允许接收,本例使用M0.4 |
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测试软件,如图所示。
图13
2、点击Register later按钮,不注册此软件,可以使用30天,但每次只能使用15分钟,网上下载的软件,没有注册码。然后点击菜单Connection->connect配置串口参数,要和CP441的参数相同。
图14
3、点击OK按钮,然后选择菜单Setup->Slave Definition...设定通讯数据,因为CP441使用的是功能码16,所以选择03 Holding Register,CP441访问的从站地址为2,Slave ID设为2,起始地址从有16#60偏移所以这里填写96,预设4个寄存器参数,如下图所示。
图15
4、将发送指令块REQ触发点M0.0置成 TRUE(上升沿触发),可以监控到将发送DB中DB3.DBW6到DB3.DBW12的值发送给Modbus RTU从站,如下图。
图16
更详细的资料请参看如下手册: