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

1. 硬件列表

2. 组态和配置

   1) 新建项目

   2) 创建CPU300站点

   3) 组态ET200S

   4) 设置协议Modbus Master

3. 编写通信程序

   1) 逻辑地址的填写

   2) 调用通信功能块

   3) 创建通信数据块DB块

4. 设备连接

5. 通信测试

   1) 设置调试软件ModSim32

   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_modbusM。

图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。双击以太网接口,进入以太网接口属性界面,分配IP地址,新建一个子网“PN/IE_1”。

图3 组态硬件

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

图4 网络配置ET200S站

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

图5 Profinet网络配置

如需离线修改该设备名称,可以进入ET200S模块的属性-〉以太网地址。

图6 离线修改ET200S的设备名称

如ET200S的实际设备名称与组态设置的不一致,也可以在线修改。右击网络“PN/IE_1”,点击“分配设备名称”,在线修改ET200S的设备名称。

图7 在线修改ET200S的设备名称

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

图8 组态ET200S

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

图9 1SI_1选择Modbus Master协议

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

图10 报文设置

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

图11 接口设置

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

图12 模块地址分配

3 编写通信程序

1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“Simatic ET200S 串行接口模块” 3.5章节的说明;如下图所示,接收数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为401。

图13 新建发送数据块

图14新建接收数据块

2、进入主程序OB1,从通信->通信处理器->ET200S串行接口,调用发送功能块S_SEND和接收功能块S_RCV。S_SEND的背景数据块为DB1,S_RCV的背景数据块为DB2。

图15 调用发送接收功能块

ET200S的发送功能块S_SEND的参数设置见下表。


管脚

解释描述

REQ

发送数据触发位,上升沿触发,本例中为M0.5,见图14。

R

取消通讯,本例中不用。

LADDR

硬件组态中的起始逻辑地址,本例中为292,见图12。

DB_NO

发送数据块号,本例中为10(DB10)。

DBB_NO

发送数据的起始地址,本例中为0(DB10.DBB0)。

LEN

发送数据的长度,本例中为MW12,本例中MW12赋值为6。

COM_RST

如果为1,重新启动FB,本例中为M10.1。

DONE

发送完成位,发送完成且没有错误时为TRUE。

ERROR

错误位,为TRUE说明有错误。

STATUS

状态字,标识错误代码,查看ET200S串行模块手册获得相应的说明。

ET200S的接收功能块S_RCV的参数设置见下表。


管脚

解释描述

EN_R

使能接收位,本例中为M20.0,常闭点, 始终保持接收状态。

LADDR

硬件组态中的起始逻辑地址,本例中为292,见图12。

DB_NO

发送数据块号,本例中为11(DB11)。

DBB_NO

发送数据的起始地址,本例中为0(DB11.DBB0)。

COM_RST

如果为1,重新启动FB,本例中为M20.2。

NDR

接收完成位,接收完成并没有错误为TRUE。

ERROR

错误位,为TRUE说明有错误。

LEN

接收数据的长度,只显示一个扫描周期,即:只有在接收到数据的当前周期,此值不为0。

STATUS

状态字,标识错误代码,查看ET200S串行模块手册获得相应的说明。

图16 CPU时钟存储器设置

4 设备连接

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

10302

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

5 通信测试

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

1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。

图18 新建从站测试项目

2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和ET200S的参数相同。

图19 设置从站端口

3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。

图20 从站03功能码设置数据

4、首先将硬件配置和程序下载到CPU315-2PN/DP中,时钟脉冲信号M0.5从0跳变成1时,ET200S将数据发送出去。

图21 ET200S的 03功能码发送数据

5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。

图22 ET200S的 03功能码接收数据