工控网首页
>

应用设计

>

西门子modbus转profinet通讯与网关配置对比

西门子modbus转profinet通讯与网关配置对比

本例是客户现场改造项目,对比西门子modbus转profinet转换模块配置方法。

这是客户原本的用法

案例背景:一套以西门子S7_1200PLC作为控制器的控制系统(带HMI面板),与一套加湿器控制系统(单片机)进行Modbus RTU通讯,读取和写入加湿器数据,并通过控制面板进行显示和设置加湿器参数,以及通过HMI面板手动控制加湿机的充水、排水、加湿和停机。(与除湿机的通讯只是该项目中的一部分,这里只介绍与加湿机的通讯部分,其他控制部分未说明)加湿器的参数如下图

1.png 

注:PLC的控制系统作为主站,加湿器控制系统为从站

1. 硬件及软件需求

硬件:CPU 1215C AC/DC/Rly(订货号:6ES7 215-1BG40-0XB0)

CM 1241 (RS422/485)(订货号:6ES7 241-1CH32-0XB0)

HMI面板KTP1200Basic PN(订货号:6AV2 123-2MB03-0AX0)

屏蔽电缆(用于通讯)

注:本项目采用RS485接线方法, 3号针脚--RS485信号 B(+) ;8号针脚--RS485信号A(-);5号针脚--接屏蔽等电位点。

软件:博途V15(或其他)

 

2. 硬件组态

①通讯模块组态:设置好传输率=9.6Kbps、奇偶校验、数据位和停止位,其它保持默认。

启用PLC系统时钟

2.png 

3.png 

②设备和网络组态:添加HMI面板,并组态网络连接。

4.png 

3.数据发送和接受缓冲区设置

①根据加湿机系统的点数表找到需要的参数,加湿机的点数表需提供地址、变量名、功能码、数据类型等,本项目需用到的参数我已飘绿并进行了标注说明。下面介绍如何使用这些变量。

5.png 

6.png 

②创建数据发送和接收缓冲区

在软件中单独创建一个DB数据块,用来作为数据发送和接收的缓冲区。

 

7.png 

缓冲区如何设置?举一个例子(其他按照该方法操作即可)

加湿机充水阀、排水阀状态参数如下:

名称

地址

功能码

数据类型

充水阀状态

10001

02(读取输入位)

Bool

排水阀状态

10002

02(读取输入位)

Bool

DB块中建立数组名Read_DI_Array,数据类型为Bool型。

注:数组长度要大于读取参数数量,这里设置数组长度为6(0~5)

到这里,所有的前期工作已经完成,到了进行软件编程的环节。

4.软件编程

① 创建一个FB数据块作为Modbus通讯程序块,然后在Main[OB1]组织块中调用该程序块。

② 调用MB_COMM_LOAD指令,会自动生成背景数据块。对每个通讯端口进行组态。

8.png 

程序快几个主要端口引脚组态说明:

REQ:连接系统时钟的首次循环变量地址%M1.0 (FirstScan(1))。

PORT:连接通信的通信模块的硬件标识符,在PLC变量表里的系统变量里找到。

9.png 

MB_DB:连接参数在这里必须与 Modbus_Master的MB_DB参数相连。

波特率BAUD、奇偶校验PARITY和前面设置一样。

③ 调用Modbus_Master指令

MB_ADDR:加湿机从站地址为1。

DTAA_ADDR:数据起始地址

DATA_LEN:访问的数据位数或字的个数

DATA_PTR:在前面建立的数据发送接收缓冲区,在这里将用到。表示指向要进行数据写入或数据读取的标记或数据块地址。

 10.png 

对加湿机参数数据位、字的读取和写入,该项目中使用到了多个Modbus_Master指令,一定要采集用轮询的方式。否则读写的数据会报错。

可以看到,用此种方式配置modbus通讯非常繁琐,并且一旦通讯出现问题查找起来非常不便。所以客户选择使用网关进行modbus转profinet通讯。方法如下:

打开博图软件,导入网关gsd文件。 

 

 11.png

 

在硬件目录中选择对应的modbus转profinet网关。

12.png 

设置网关的ip地址和设备名称

13.png 

 

添加modbus'转profinet网关的输入输出总长度

14.png 

下载配置到PLC

配置网关步骤

点击新建图标,选择PN2MM

 

15.png 

设置网关的IP地址和设备名称(要和PLC组态保持一致)

16.png 

17.png 

 

设置网关的485参数

18.png 

根据之前参数可知波特率为9600,奇校验数据位8,停止位1

根据之前的配置网关做如下选择(校验位在不是无的状态下选择9)

19.png 

单击右键插入从站站号

20.png 

Node处插入命令根据从站手册选择所需功能码地址区

21.png

 

 

例如我们要读取水位状态和系统运行状态两个参数,那么可以得知地址区是3区对应功能码04

22.png 

那么对应的要选择Read Input Registers即04功能码读输入寄存器

23.png 

起始地址为30003-30004,但是因为网关寄存器地址是从0开始所以实际的寄存器地址要减一

30002-30003,此处填写2即可,因为地址是连续的所以读取寄存器数量为2个

24.png 

内存映射地址:对应在PLC的IQ地址区显示位置,如我们的I地址是从68开始那么映射地址为0代表寄存器数据会显示在IW68和IW70两处

字节交换:类似于PLC程序中的swap功能,可根据需求使用。

命令状态字:监控从站在线状态,默认关闭

无响应命令动作:分为保持和清零,是从站超时掉线后对最后一次数据的处理。

以上就是两种modbus通讯对比。后者更为简单便捷,免去大量的编程工作。

 

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

开疆智能Modbus转Profibus网关

开疆智能KJ-PBG-006/Modbus TCP转Profibus网关

开疆智能KJ-PNG-103型协议转换网关

开疆智能CANopen转Profinet网关

开疆智能KJ-PNG-101型协议转换网关