CP441作主站(Master)的Modbus RTU通讯(TIA)

硬件列表

组态和配置

编写通信程序

设备连接

通信测试

手册下载

硬件列表

设备名称
设备型号

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

手册下载

更详细的资料请参看如下手册:

CP441使用手册

Modbus RTU主站手册