自定义功能块类型在电解槽联锁中的应用

2015-11-02 01:03赵洪娣
中国氯碱 2015年9期
关键词:功能块电解槽调用

赵洪娣

(唐山三友氯碱有限责任公司,河北 唐山 063305)

自定义功能块类型在电解槽联锁中的应用

赵洪娣

(唐山三友氯碱有限责任公司,河北 唐山 063305)

在ABBDCS中利用ST语言,设计实现了一种自定义功能块类型(R230I_P)。在介绍库和自定义功能块类型的基础上阐述了自定义功能块类型(R230I_P)的开发框架依次对其设计实现过程调试环节进行说明并将其投入到生产改造中的效果进行检验。结果表明,与传统组态方式相比大大提高了组态效率。

自定义功能块类型;功能块;电解槽联锁控制;DCS

目前,传统的DCS系统编程方式是工艺上增加1台设备便要在DCS系统中加入相应的控制程序,如果需要增加多台相同设备那么相应的控制程序也需要编写多次,这样不仅增加了程序的编写量,而且所用中间变量比较多,错误检查不明显,所需调试时间也比较长。为此,需要在DCS中研究一种新的组态方式来克服以上缺点。本文选择电解槽联锁回路逻辑算法,并在ABBCBM DCS系统中进行开发和应用。

1 库和电解槽联锁

1.1库的概念

控制编制器项目的3个主要部件之一是库,库包含类型定义或用来给予项目额外功能性的类型。在库中可以进行的类型定义有3个分类,即数据类型、功能块类型和控制模块类型,本文只对功能块类型进行应用。

在ABBCBM DCS软件中,库文件夹中有项目所使用的所有程序库。将1个库插入到项目,其类型可用于连接到应用程序。

在创建项目的时候,库文件夹中包括有系统文件夹和2个一直连接到项目的库——Basic语言库和图标库。还有许多可以插入的附加库。比如用户自定义库。

库中包含有类型定义,比如数据类型、功能和功能块类型以及可以在项目中使用的控制模块类型。这些库可用于连接到控制器,因此,可以再一个控制项目中有多个库。

(1)类型和实例

常常会碰到某个特定的对象在某个应用程序中被使用许多次的情况。一个对象类型被定义,然后每次使用该类型都会建立一个该类型的实例。在大多数情况下,类型和实例之间的链接被维持。因此,如果在将来该类型被修改,则该类型的所用实例均被改变。

例如本文所述公司有电解槽8台,但它们是相同的控制类型,在控制程序中,可以定义一个电解槽控制类型(R230I_P),然后只要在程序中需要一个,该类型的新实例即被建成。

(2)类型名称和实例名称

在说明功能块类型的实例时,要求给予实例一个名称,见表1。实例名称是R1,而它是R230I_P类型的。第二至第八个实例是相同类型R230I_P,但是实例名称为R2-R8。R1-R8继承的是R230I_P的特性。所以只要对R230I_P的一处进行更改就可以影响到R1-R8,而不用对R1-R8进行重复的更改。

(3)功能块类型

功能块为编程员提供额外的功能。ABB在标准库中提供大量的预先定义功能块。例如,在BasicLib库中,用于定时、数据转换、计数等等的功能块。当某个库被连接到某个应用程序时,该功能块的实例就可以在应用程序中的程序和控制模块中建立。

(4)库的连接

表1

在一个项目中可能有许多库而在一个项目中也可能有许多应用程序。按照应用程序的要求,每个应用程序可能有不同的库组连接。为了将某个库连接到一个应用程序,该库必须已经存在于项目中。

1.2电解槽联锁控制

本文以电解槽联锁控制为例,该控制逻辑把顺序控制与PID调节结合起来,当电解槽停以后,2个PID回路经过3个不同步骤进行调整,每个步骤时间不同、PID设定值不同,并且还要保证在3个步骤内,既能保证程序控制,又能让操作员手动干预PID调节。实现功能见图1。

图1 电解槽控制回路逻辑算法

2 电解槽联锁算法设计

在ABBAC800M DCS系统中,开发自定义功能块的基本步骤包括:定义模块参数、输入变量、输出变量、功能块;激活语言开发环境并编辑语言代码,生成目标代码并下装。此自定义功能块在开发设计时,要以系统自带的功能模块为基础,需要使用的系统自带功能块为RS功能块、TON功能块、TP功能块,把变量与上述功能块进行连接,从而形成新的自定义功能块,功能结构见图2。

2.1结构化正文(ST)

结构化正文(ST)是ABBDCS系统软件的5种组态软件之一,是一种高层次、小型、高度结构化的编程语言,并包含了为分配、功能、功能块调用、表达式、条件语句、重复操作等等的综合范围的结构,本文就选择结构化正文(ST)作为组态语言来实现电解槽联锁的算法。

图2 自定义功能块功能结构图

因为其逻辑和结构化布局,该程序编写简单并容易读取。语言的紧凑提供该代码的优秀的概观并在编辑程序中较少卷动。

功能块以类似的方式向变量说明,方法是给予其一个名称(实例名称),此名称被用来在代码中调用。在ST编辑程序中,必须在编辑程序的“功能块”说明标记中给出名称和类型。

2.2自定义功能块的编写

在项目的库目录下,新建一个库文件,名称为Customer,在Customer目录下,新建一个自定义功能块类型,弹出新建功能块设置对话框,输入新建功能块类型的名字为“R230I_P”,点击确定按钮,打开编辑器,进入编辑界面开始编程。在电解槽逻辑算法中需要引用许多参数、系统自带功能块,如RS块、TP块、电解槽运行状态等,因此要在参数列表(见表2)和功能块列表(见表3),声明参数和使用的系统自带功能块。功能块参数(表2)有2个方向:In和Out。输入、输出参数用值来传递,在功能块的执行前后分别拷贝每个变量值。简单来说,输入参数在功能块执行之前拷贝变量值到功能块去执行,输出参数在功能块执行完毕之后拷贝变量值,传递给功能块外的变量。

表2 参数列表 

表3 功能块列表

根据图2所示,利用ST语言编写自定义功能块程序,主要包括:

(1)TP块的调用 。调用格式:功能块名称(输入:=参数名称或功能块名.参数),如功能块TP1连接:TP1(IN:=IN1);

(2)RS的调用。调用格式:功能块名称(设置:=参数名称或功能块名.参数,复位:=参数名称或功能块名.参数);如功能块RS_1连接:RS_1(Set:=TP1. Q,R1:=Ton2.Q)

(3)TON的调用。调用格式:功能块名称(输入:=参数名称或功能块名.参数);如功能块TON1连接:TON1(IN:=RS1.Q);

根据以上调用方式,图2程序代码如下:

TP1(IN:=IN1);

RS_1(Set:=TP1.Q,

R1:=Ton2.Q);

TON1(IN:=RS1.Q);

RS_2(Set:=TON1.Q,

R1:=Ton2.Q);

TON2(IN:=RS_2.Q);

TP2(IN:=IN1

OUT:=>OUT1);

TP3(IN:=IN1

OUT:=>OUT2);

TP4(IN:=TON1.Q

OUT:=>OUT3);

TP5(IN:=TON1.Q

OUT:=>OUT4);

TP6(IN:=TON2.Q

OUT:=>OUT5);

TP7(IN:=TON2.Q

OUT:=>OUT6)。

2.3自定义功能块的调用

选中此次使用的应用程序下面的连接库文件夹,右击选择“连接库”;从下拉式明细表中选择要连接的库“Customer”,然后点击“OK”。

首先,在应用程序编辑器中对用到的变量、功能块进行声明,本次改造8台电解槽,需要声明8个功能块类型为“R230I_P”的功能块(R1-R8),声明表格见表3,并将8台电解槽的停止信号连入功能块中,以电解槽R1为例,功能块调用格式为:

R1(IN:=A2L4,A2L4为第一台电解槽的状态信号;

OUT1=>OUT1,OUT1~OUT6为中间变量

OUT2=>OUT2,

OUT3=>OUT3,

OUT4=>OUT4,

OUT5=>OUT5,

OUT6=>OUT6)。

对每台电解槽的FICZA-231,FICZA-232流量进行语句编写,选择ST编程方式,电解槽I槽FICZA-232I为例,程序段如下。

ifOUT1=1 then

MA_FICZA232I:=0;

SP_FICZA232I:=43;

end_if;

ifOUT3=1 then

MA_FICZA232I:=0;

SP_FICZA232I:=0;

end_if;

ifOUT5=1 then

MA_FICZA232I:=0;

SP_FICZA232I:=43;

end_if;

电解槽I槽FICZA-231I程序段如下:ifOUT2=1 then

MA_FICZA231I:=0;

SP_FICZA231I:=42;

end_if;

ifOUT4=1 then

MA_FICZA231I:=0;

SP_FICZA231I:=42;

end_if;

ifOUT6=1 then

MA_FICZA231I:=0;

SP_FICZA231I:=9;

end_if。

3 结束语

本文详细介绍了自定义功能块在电解槽联锁中的应用,以及在ABBAC800M DCS系统中设计和实现的全过程,并成功应用到实际改造中。结果表明与传统组态方式相比,调试时间缩短为原来的1/8,程序集成化高,减少系统负荷,大大提高了运行速度,系统稳定性增加。从此次改造中可以看出,此种组态方式应用于多台相同设备且控制要求相同时,还是非常成功的。

Application of a custom function block type in theelectrolyzer interlock

ZHAOHong-di
(Tangshan Sanyou Chlor-alkaliCo.,Ltd.,Tangshan 063305,China)

The use of ST language in the ABB DCS,to design a custom function block type(R230I_P). Based on introducing the library and custom function block type,firstelaborated the custom function block type(R230I_P)development framework,and then the design and realization process are introduced,and the debugging are explained respectively.Finally,the transformation of inputs into the production,test its effects.The results show that,compared with the traditional configuration way can greatly improve the configuration efficiency.

custom function block type;function block;electrolysisgroove interlocking control;DCS

TM762

B

1009-1785(2015)09-0032-04

2015-03-05

猜你喜欢
功能块电解槽调用
碱性电解槽成本最低
扩大电解槽规模可将绿氢成本降低15%
微重力水电解槽两相热流动与水量分配数值模拟
核电项目物项调用管理的应用研究
具有复合内抽芯机构的电解槽盖模具设计与工艺优化
基于IEC61131-3标准运动控制器的设计与应用*
基于PLCopen的六轴工业机器人运动控制功能块设计
系统虚拟化环境下客户机系统调用信息捕获与分析①
自定义功能块编程在反渗透膜自动清洗设备中的应用
Ovation系统FIRSTOUT和FIFO跳闸首出比较