ET200S作从站的Modbus RTU通讯(TIA)

1. 硬件列表

2. 组态和配置

   1) 新建项目

   2) 创建CPU300站点

   3) 组态ET200S

   4) 设置协议Modbus Slave

3. 编写通信程序

   1) 逻辑地址的填写

   2) 调用通信功能块

   3) 创建通信数据块DB块

4. 设备连接

5. 通信测试

   1) 设置调试软件Modscan32

   2) ET200S与调试软件测试通信数据

1 硬件列表

设备名称

设备型号

PS 307

6ES7 307-1EA01-0AA0

CPU 315-2PN/ DP

6ES7 315-2EH14-0AB0

MMC

6ES7 953-8LG30-0AA0

ET200S接口模块

6ES7 151-3BA60-0AB0

PM-E电源模块

6ES7 138-4CA01-0AA0

ET200S 1SI串口模块

6ES7 138-4DF11-0AB0

2 组态和配置

1、打开软件TIA PORTAL STEP7 V13,点击项目->新建...创建一新项目,项目名称为ET200S_modbusS。

图1 新建项目

2、用鼠标点击“添加新设备”,选择SIMATIC S7-300->CPU->CPU 315-2PN/DP->6ES7 315-2EH14-0AB0。

图2 添加站点CPU 315-2PN/DP

3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 315-2PN/DP已经存在,只需要插入PS307。

图3 组态硬件

4、点击“网络视图”,可以看到新生成的子网“PN/IE_1”,从选件目录中找到正确的ET200S接口模块型号,将它拖拽到网络视图中。

图4 网络配置ET200S站

5、点击“未分配”,选择IO控制器“PLC_1.PROFINET接口_1”,为ET200S分配好IO控制器,同时自动为ET200S的以太网接口分配好一个IP地址,注:此时给ET200S分配了一个设备名称为“IO device_1”,且离线和在线的设备名称一定要一致,下面介绍如何修改设备名称。

如需要修改ET200的离线和在线的设备名称,可以参见“2.1.2 ET200S 使用 TIA Step7 V13 进行 Modbus Master 通讯”中的图6和图7。

图5 Profinet网络配置

6、双击“IO device_1”,进入ET200S组态界面,将电源模块PM-E和ET200S 1SI串口模块组态到1、2槽。

图6 组态ET200S

7、双击1SI_1串口通讯模块,进入属性框,协议选择“Modbus Slave”,波特率为9600,地址区为32字节。

图7 1SI_1选择Modbus Slave协议

8、点击“报文”,进行报文设置,停止位:1,奇偶校验:无。

图8 报文设置

9、点击“接口”,接口选择“半双工(RS-485两线制模式)”,接收线路初始状态选择“信号R(A)0V/信号R(B)5V”。

图9 接口设置

10、点击“I/O地址”,记住输入和输出的起始地址,这在后面的通讯编程中需要用到。

图10 模块地址分配

3 编写通信程序

1、双击“添加新块”,创建数据块DB10,如下图所示,按照图中所示,设置各个变量的启动值。注:有关每个变量的含义,可以参考手册“SIMATIC ET200S 串行接口模块”的3.6.3章节和3.6.18章节

举例说明:F01_MOD_STRT_ADR_1表示设置功能码01、05、15的Modbus起始地址,本例中设置为16#0,即表示00001;F01_MOD_END_ADR_1表示设置功能码01、05、15的Modbus终止地址,本例中设置16#ff,即表示为00256;F01_CNV_TO_FLAG_A表示设置PLC的M地址的起始地址,本例设置为16#0,即表示M0.0,说明M0.0与00001是对应关系,往下依次类推。

举例说明:FC03_06_16_DB_NO表示设置与功能码03、06、16的Modbus地址对应的DB 块,本例中设置16#B,即表示DB11,说明DB11.DBW0与40001是对应关系,往下依次类推。

再创建2个数据块,如下图所示,DB11(命名FC03、06、16)、DB12(命名FC04),这2个数据块都创建1个数据类型Array的变量,数组元素的数据类型为Word,数量为200。注:DB11的数据变量用于功能码030616DB12的数据变量用于功能码04。用于下面的测试。

图11 新建3个数据块

2、进入主程序OB1,从通信->通信处理器->ET200S串行接口,调用能块S_MODB。

图12 MODBUS Slave功能块

关于功能块S_MODB的管脚说明,请见表2。

LADDR

硬件组态中的起始逻辑地址,本例中为292,见图4-10

START_TIMER

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

START_TIME

超时初始化时间值,本例中为S5t#5s

DB_NO

地址映射DB块,本例中为DB10

OB_MASK

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

CP_START

FB初始化始能位,该位需要置1。本例中为M200.1

CP_START_FM

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

CP_START_NDR

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

CP_START_OK

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

CP_START_ERROR

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

ERROR_NR

错误号,本例中为MW202

ERROR_INFO

错误信息,本例中为MW204,可以查看“Simatic ET200S串行接口模块”手册,第3章节

表2 ET200S功能块S_MODB的参数设置表

4 设备连接

以RS485的方式接线为例说明,ET200S 模块按照RS485的接线方式连接到电脑的RS232口,连接示意图如下。

图13 硬件结构和接线示意图

5 通信测试

1、将项目程序在线,本示例中手动将M200.1(即:CP_START)置1,M200.2(即:CP_START_FM)和M200.4(即:CP_START_OK)也会为1。

图14 CP_START管脚置1情况

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

图15 打开Modscan32软件

3、点击Modscan32上的Connection->Connect,显示画面如下,选择计算机和ET200S相连的COM口COM1,设好波特率,数据位,停止位,校验方式,注:这些设置要与1SI_1的设置一致,如下图。

图16 Modscan32通信参数设置

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

图17 Modscan32操作界面

5、数据显示区的10个地址的数据对应CPU中DB11和DB12的前5个字的数值,如下图,给这5个字赋值。

图18 DB11和DB12数据赋值监控

6、Modscan32软件界面03的地址40001~40005分别显示1~5的数据,04的地址30001~30005分别显示11~55的数据。

图19 Modscan32软件03功能码通信

图20 Modscan32软件04功能码通信