CP441作从站(Slave)的Modbus RTU通讯(STEP7)

硬件及软件列表

组态和配置

编写通信程序

设备连接

通信测试

手册下载

硬件及软件列表

设备名称
设备型号

RACK

6ES7400-1JA01-0AA0

PS407 4A

6ES7407-0DA02-0AA0

CPU414-3PN/DP

6ES7414-3EM06-0AB0

CP441-2

6ES7441-2AA03-0AE0

Dongle 6ES7 870-1AB01-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-S,用鼠标右键点击项目名称,选择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 Slave。

图5

5、选择Protocol信封图标,进入协议参数配置对话框,点击Modbus-Slave标签,设置通讯速率、报文信息等参数,协议参数地址本例设置为2。

图6

6、进入功能码配置界面,FC01,05,15:读取、强制输出位的状态;左边的地址为信息传送地址,右边对应西门子的PLC地址区,即左边地址从0~100对应Modbus地址区为00001~00101,对应西门子数据区为M0.0~M12.4;101~200对应Modbus 地址区为00102~00201,对应西门子数据区为Q0.0~Q12.3;从地址201~300,301~400对应Modbus 地址区为00202~00301,00302~00401,对应西门子数据区为Timer,Counter。

图7

7、FC02读取输入数据位的状态,地址对应如下。

图8

8、FC03,06,16组态输出寄存器数据区,对应西门子数据区为DB块。

图9

9、FC04组态输入寄存器数据区,对应西门子数据区同样是DB块

图10

10、设置功能码FC05 06 15 16写参数的限制值。

图11

11、选用RS422/485接口时,还需要设置接口类型,如下图所示,其他参数默认即可。

图12

12、在硬件组态画面中,点击“”图标,打开网络组态,进入网络配置界面。选中站点CPU,右击插入新连接。

图13

13、选择连接对象为“Unspecified”未指定,连接类型选为“Point-to-Point Connection“,点击OK确认。

图14

14、进入PTP连接属性对话框,注意Local ID(HEX),后面编程时需要使用,每个连接分配不同Local ID,可以手动修改,范围W#16#1000- W#16#1400。“Communication Direction“选择双向通讯。点击OK确认组态,编译无误后下载。

图15

15、可以通过查看连接状态,直到”Connection status“显示图标下图Set up,说明连接正确建立。

图16

16、注意:CP441做Modbus通讯时,需要更改CPU传送参数到模块的时间,最小为1000(=100s),来保证有足够长的时间将使用的加载协议驱动下载到CP卡中。

图17

编写通信程序

1、双击OB1,打开编程界面,从库中Libraries-Modbus调用FB180,为其分配背景数据块DB180。

图18

2、新建数据块FC 03 06 16, FC04功能码通讯数据区DB1,DB2,本例建50个WORD数据结构。

图19

图20

3、指令块参数设置 。

图21

FB80 的参数设置如下:

名称

数据类型

注释

ID

INPUT/INT

Local ID号,在PTP连接属性中获得,16进制

START_TIMER

START_TIMER

初始化超时定时器,本例中为T1

START_TIME

INPUT/S5TIME

初始化超时时间值,本例为5S

START_TIMER

START_TIMER

通讯状态读取定时器,本例中T2

START_TIME

INPUT/S5TIME

通讯状态读取时间,本例为2S

OB_MASK

INPUT/BOOL

IO访问错误屏蔽位,本例使用M300.0
0:不屏蔽IO访问错误
1:屏蔽IO访问错误,并使报警延时

CP_START

INPUT/BOOL

FB初始化使能位,本例使用M300.1

CP_START_FM

INPUT/BOOL

CP_START初始化的上升沿位,本例使用M300.2

CP_NDR

OUTPUT/BOOL

CP写操作位,本例M300.3

CP_START_OK

OUTPUT/BOOL

初始化成功完成位,本例M300.4

CP_START_ERROR

OUTPUT/BOOL

初始化错误标志,本例M300.5

ERROR_NR

OUTPUT/WORD

错误号,本例MW302

ERROR_INFO

OUTPUT/WORD

错误信息,本例MW304,诊断信息可参考手册

设备连接

本文使用的是RS485接口,通过将485接口转化232到USB连接计算机的接口,需要使用RS232C/RS485转换器(需要选购第三方设备)。

具体的电缆连接方法请查看:串口接线

通信测试

这里使用串口通信测试软件ModSCAN软件来测试CP441-2和计算机的通信,步骤如下:

1、在计算机上打开软件ModSCAN32,选择菜单栏连接设置-连接,设置连接参数,选择对应的串口,设置波特率、数据位、停止位、校验方式、通讯协议。设置完成,点击OK,监视控制画面。

图22

2、将程序块引脚CP_START置1,CP_START_OK和CP_START_FM也会为1,主站设置功能码03,起始地址40001,长度4,读取Modbus从站寄存器数据。

图23

手册下载

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

CP441使用手册

Modbus RTU从站手册