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

硬件及软件列表

组态和配置

编写通信程序

设备连接

手册下载

硬件及软件列表

设备名称
设备型号

PS 307

6ES7 307-1EA00-0AA0

CPU 315-2DP

6ES7 315-2AG10-0AB0

MMC

6ES7 953-8LG11-0AA0

CP341

6ES7 341-1AH01-0AE0

Dongle

6ES7 870-1AB01-0YA0

应用CP341进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP341模块的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下图所示:

图1

注意:STEP7 V5.X软件上,必须安装如下软件包才可进行后续的组态配置。

组态和配置

1、打开上面创建的项目ptp,用鼠标右键点击项目名称,选择Insert New Object-> SIMATIC 300 Station,更改站的名称为CP341 Modbus-S。

图2

2、双击Hardware进入硬件配置画面,插入RACK、CPU315-2DP、CP341。

图3

3、 双击CP341模板,点击Parameter...,配置CP341参数。在Protocol选项中选择MODBUS Slave。

图4

4、双击Protocol下的信封图标,配置MODBUS Slave参数,点击MODBUS-Slave按钮。

图5

5、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。

图6

6、FC02读取输入数据位的状态,地址对应如上文所述。

图7

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

图8

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

图9

9、设置写参数的限制值。

图10

10、如果选用的是RS422/485接口的CP341时,还需要设置接口类型,如下图所示,其它参数均采用默认设置。

图11

11、配置完成后保存时会提示是否装载驱动。

图12

12、此时必须连接到实际的PLC,点击Yes按钮装载驱动,装载时CPU必须为STOP模式。驱动装载完成后,如果再次装载,STEP7会提示Driver already exists,配置完成后点击“编译保存”按钮保存编译硬件组态,并确认没有错误。

图13

编写通信程序

1、将FB7,FB8添加到程序Blocks中,方法为双击OB1,打开OB1编程画面,从库Libraries->CP PtP->CP341中调用发送程序块FB8和接收程序块FB7,然后再从OB1中删除。因为MODBUS从站通讯要用到这两个功能块。

2、调用MODBUS从站功能块FB80,位置在Libraries->Modbus->Modbus ->FB80。分配背景数据块DB80,将参数LADDR设为硬件组态中的起始逻辑地址256。

图14

2、调用MODBUS从站功能块,设置参数。

图15

LADDR

硬件组态中的起始逻辑地址,本例中为256

START_TIME

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

START_TIME

超时初始化时间值,本例中为1s

OB_MASK

外设访问错误屏蔽位,本例中为M100.0

CP_START

FB初始化始能位,本例中为M100.1

CP_START_FM

CP_START初始化的上升沿位,本例中为M100.2

CP_START_NDR

从CP写操作位,本例中为M100.3

CP_START_OK

初始化成功标志,本例中为M100.4

CP_START_ERROR

初始化失败标志,本例中为M100.5

ERROR_NR

错误号,本例中为MW102

ERROR_INFO

错误信息,本例中为MW104,可以查看Modbus Slave 手册第10章

 

3、创建FC03,06,16功能代码通讯数据块DB1。

图16

4、创建FC04功能代码通讯数据块DB2。

图17

设备连接

本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口,具体的电缆连接方法请查看CP341手册B章节连接电缆部分(见:手册、文档和软件链接部分)。

如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器。

通信测试

前面使用Step7 V5.5软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件Modscan32软件来测试CP341和计算机的通信,步骤如下

1、首先将硬件配置和程序下载到CPU315-2DP中。在计算机上打开MODBUS主站仿真软件Modscan32。

图18

2、点击Modscan32上的Connection->Connect,显示画面如下,选择计算机和CP341相连的COM口COM1,设好波特率,数据位,停止位,校验方式,如下图:

图19

3、设置完成,点击OK,显示画面如下。

图20

4、数据显示区的10个地址的数据对应CPU中DB1的前10个字(Word)的数值(DBW0–DBW10分别为1-10 ),如下图。

图21

5、其它数据的读取,只需更改访问的数据类型,此处不再介绍。

6、但要说明一下对于浮点数的显示,PLC中浮点数的高16位和低16位与Modscan32显示的相反,即PLC中浮点数的高16位对应Modscan32显示浮点数的低16位,PLC中浮点数的低16位对应Modscan32显示浮点数的高16位,可在程序中做一下处理,如下图:

图22

此时Modscan32显示的浮点数40001对应MD200的浮点数值,但MODBUS地址对应DB1.DBD0。

图23

手册下载

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

CP341使用手册

MODBUS RTU从站手册