技术文章

当前页面: 首页 >技术文章 >【技术达人】霍尼韦尔PKS与西门子PLC基于Modbus协议通讯的探讨

【技术达人】霍尼韦尔PKS与西门子PLC基于Modbus协议通讯的探讨

2017/3/28 11:37:47

3 人气:340

  • 关键词: ModBus协议 PKS CP341
  • 摘要:通讯的实施是工业领域各控制系统稳定运行的基础,本文从公司控制系统应用的角度出发,主要提供了一种利用Siemens CP341模块实现MODBUS协议串口通讯的方法和设计思路,来解决公司使用Siemens S7 300/400系列PLC与霍尼韦尔 PKS 控制系统之间进行数据交换的问题,从而实现系统集成,并结合现场实际应用来证明这种协议通讯时的稳定性与可靠性。

1、引言

  我司的控制系统由多种控制系统组成,不仅有集控室的PKS系统,还有其他的辅助控制系统,例如输煤、包装、水处理、污泥脱水机的PLC控制系统等。我司的主导控制系统是霍尼韦尔公司的PKS控制系统,但随着煤气化装置不断的改进,增加了许多的包单元控制系统,这些包单元控制系统主要是西门子系列的PLC控制系统。包单元控制系统顾名思义是独立的控制系统,不能集中控制。基于此前提需要对包单元系统进行集中监控来降低操作强度,从而提高监控水平。

2、Modbus协议  

  所谓协议是主设备与从设备之间的通讯规则。若Modbus 协议置入通讯接口,则所有通讯都是透明的。要实现DCS 和PLC 的数据通信的各种功能只需要找出对应的功能码并且按照特定的帧格式去处理。可见, Modbus网络协议的存在使得PLC系统和DCS系统的通信非常方便, 这两种系统只要有串口通讯模块和相应的通讯协议就可以了。

  用户只需要根据功能码写出特定的信息格式, 而不需要在乎是什么系统。这就是为什么说所有通讯过程对于使用者而言都是透明的原因。

3、硬件设计

  控制系统与公司主控制系统PKS进行了改造,实现了以PKS为主站,PLC为从站的集成监控系统。接下来结合BGL气化炉PKS主控制系统与污泥脱水机PLC控制系统实例来进行探讨,同时通过输煤累计流量的实例提供一种高数据传输的处理技巧。

由于两个系统的CPU距离较远,所以在数据传输上采用光纤避免数据的丢包和干扰现象发生。主要涉及到的硬件有:CP341、光电转换器、光端盒、MOXA、DP电缆、单模光缆。

3.1 PLC硬件组态

  西门子PLC下位机编程软件用的是博途V12 ,首先进行硬件组态,在7槽添加CP 341 RS422/485卡件,如图3-2所示:

作为从站的PLC需要对数据交换的地址进行定义,这样才能和PKS控制系统的地址一一对应而进行数据的交换。我们在对卡件组态后需要对CP341卡件的属性进行设置,在这里要关注的是四个函数代码:

(1)FC01、05和15是第一组代码,其功能具备读写开关量的功能;

(2)FC02是第二组代码,其功能具备只读开关量的功能;

(3)FC03、06、16是第三组代码,其功能具备只读模拟量的功能;

(4)FC04是第四组代码,其功能具备读写模拟量的功能。

3.2 PKS硬件配置

PKS系统使用MOXA实现ModBus协议的通讯,通讯中主要的变量和控制信息由4~20mA传送,采用半双工的通信方式。须先在MOXA上进行配置Network seting后,再从IE浏览器的地址栏输入其IP来打开MOXA主页,从而更加方便地对其它项进行配置。

1)Network seting网络设置

IP address:IP地址(10.10.16.163)

Netmask   :掩码(255.255.255.0)

Gateway   :网关(10.10.16.254)

2)Serial set串口设置

Select port选择端口(2)

Baud rate波特率:(9600)

Data bit数据位:(8)

Stop bit停止位:(1)

Parity奇偶校验(Event偶校验)

Interface接口:(RS-485 2wire)

3)Op mode set输出模式设置

Select mode选择模式:(TCP Server)

4、程序设计

  程序的设计涉及到PLC和PKS两套系统通讯程序段的设计以及相互之间数据读写的地址定义的规划,最终实现主站对从站的监控作用。PLC通讯程序段的编写中最关键的是对MODB_341功能块的编写,其功能块的正常运行直接影响整条链路的数据交换。

4.1 MODB_341功能块的使用

图4-1是调用的MODB_341功能块,在这功能块每一个管脚的应用都很重要,具体功能见表4-1。CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK为1信号,否则CP_START_ERROR为1,同时可以从ERROR_NR察看错误信息,也可以在硬件组态中在线后的CP341的诊断缓冲区察看详细的错误信息。错误信息对照和处理方式可以参考《S7-300以用于PtP CP Modbus协议RTU格式S7的可装载驱动程序从站》的手册。

图4-1 MODB_341引脚图

在这里要强调一下LADDR,它是硬件组态中CP341的起始逻辑地址,寻找这个地址是在硬件组态中找到CP341卡件后在属性中的I/O地址中看到的的起始地址。

表4-1 引脚功能表

4.2 数据交换程序地址的规划

当通讯模块编写完成后需对数据交换地址进行定义,然后调用地址内的数据参与逻辑运算及程序的编写。

数据交换方式分为数字量只读、数字量读写、模拟量只读、模拟量读写四种数据交换方式;只读的定义是指PKS读PLC的数据;读写的定义是指PKS不仅可以读PLC的数据,也可以向PLC写数据。(注:PKS为主站,PLC为从站)

在气化PKS系统与污泥脱水机PLC系统数据交换中模拟量只读数据调用的数据块是DB11,数据类型为real;模拟量读写数据调用的数据块是DB8,数据类型为real;数字量只读数据调用地址段为M210.0~M212.4;数字量读写数据调用地址段为M213.0~M213.7。详见图4-2。

图4-2 DB模块图

4.3 QuickBuilder组态

4.3.1 创建通道

创建通道时主要配置参数如下:

Type:通道类型Modbus Channel

Name:通道名(WN_CHANNEL)

Port Type:端口类型(Terminal Server)         

Protocol:协议(ModbusRTU)

Terminal ServerTCP Host Name:

MOXA的IP地址(10.10.16.163)

Terminal ServerTCP Port No.:

MOXA端口号(4002)

其中TerminalServer TCP Port No取决于通讯所用MOXA的哪个端口,使用第一个端口则为4001,使用第二个端口则为4002,共四个端口可供选用。

4.3.2 激活通道

打开Station,点击Configure菜单下System Hardware\ControllerInterfances\Channels,点击WN_CHANNEL后,勾选Enable并观察%Errors,若低于0且MOXA Port 2状态灯为橙色不断地闪烁,则说明通道创建并连接成功。若MOXAPort 2状态灯一直为橙色不闪烁,则说明信号线接反了。

4.3.3 创建控制器

创建控制器时主要配置参数如下:

Type:控制器类型(Modbus Controller)

Name:控制器名(WN_CON01)

Channel Name:通道名(WN_CHANNEL)

Data Table:数据类型(Holding Register)

PLC Station ID:PLC从站地址(2)

4.3.4 创建点 

Quick Builder可创建以下三种用途的点:仅从PLC读取数据;从PLC读取数据并写入CM;从CM读取数据并写入PLC。后两种情况,需使用算法Algo 68-Action Value Transportion,PV与SP量程必须一致,且扫描周期不能为0。另外从PLC读取数据并写入CM,SP DestAddress不填;从CM读取数据并写入PLC,SP Dest Address必须与SP Source Address一致。

5、高数据传输的处理

以输煤皮带累计流量为例,因输煤上煤量较大,皮带秤累积量也会很大,而16位整型数据格式的最大数据范围为0~65535,故不能满足实际应用,则采用32位整型数据格式进行通讯。

Modbus协议是以字为单位的,一个地址占一个字,即一个16位寄存器。16位整型数据只需一个地址,32位整数由2个16位寄存器整合而成,需要2个连续地址,且有高低位之分,PLC、DCS组态必须一致。通常组态指定奇数地址,默认使用+1地址,因此+1地址不可再次指定。若再次指定,通讯数据交叉,造成SCADA点的SP值会不断地漂动。

PLC用整型INT接收数据,再根据奇数地址和+1地址整合出32位整数。而INT的范围是-32768~32767,不能接收32768~65535区间的数据,组态时要扩大INT范围至0~65535,与Modbus一致。

5.1 数据传输方法

整合值计算方法:高位×65536+低位

1)奇数地址传送低位,+1地址传送高位

2)奇数地址传送高位,+1地址传送低位

5.2 扩大PLC整型INT范围

PLC基本数据类型INT的范围-32768~32767是不能改变的。Modbus通讯时16位寄存器的范围是0~65535,会造成INT不能接收32768~65535区间的数据,在该区间的数据会减去65536后显示为负值。所以通过判断接收值的正负而间接扩大INT的范围至0~65535:如果接收值为正数,则为真实值;如果接收值为负数,则加上65536后变为Modbus所传送的真实值。

例如:

1)低位值小于或等于32767

将138465用40003地址加U32B数据格式传送,而138465=2×65536+7393,则40003地址传送低位7393,40004地址传送高位2。

2)低位值大于32767

将237635用40003地址加U32B数据格式传送,而237635=3×65536+41024,41024=65536-24512,则40003地址传送低位-24512,40004地址传送高位3。

6、结束语

  此种方案自投入使用以来一直都很稳定.由此可见,利用CP341通讯模块和PLC软件实现SIMATIC PLC与其他设备Modbus组网通讯,是一种行之有效的方法,具有广泛的应用价值。


若您已是认证注册用户,请登录下载,否则请登录后通过用户认证或者免费注册
审核编辑(王静)
文章来源:技术达人第一期活动

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般