丁 为
(中国石化上海石油化工研究院,上海 201208)
DCS在化工装置中应用广泛[1],JX-300XP是SUPCON WebField控制系统成功经验的集成,是全数字化、结构灵活且功能完善的开放式DCS,它不仅提供了功能块图(SCFBD)及梯形图(SCLD)等组态工具。[2,3],还提供了开发复杂高级控制算法诸如模糊控制的类C语言编程环境SCX,规模变换灵活,可以实现从一个单元的过程控制到全厂范围的自动化集成,王君红等在JX-300XP中利用SCX语言,设计了一种基于免疫系统存储记忆原理的智能控制算法[4];云苏和等运用Modbus通信协议实现了JX-300XP和S7-300PLC的通信[5]
JX-300XP在上海石油化工研究院的评价装置中也成功应用。现以顺序控制、分程控制、流量积算和比值控制4个典型程序的设计为例,介绍JX-300XP在评价装置DCS程序设计中的应用。
上海石油化工研究院的评价装置主要用于对新开发的产品、原料或技术进行指标考察和评估,因此工艺流程完整而且复杂,工艺流程每一步的执行都有严格的约束条件,在这种情况下,顺控程序便成为评价装置最常用的控制模式。
顺控程序是针对顺序控制系统编写的程序,按照生产工艺预先规定的顺序在各输入信号的作用下,根据内部状态和时间顺序,各执行机构自动有序地进行操作[6,7]。顺控程序的设计相对复杂[8]。在JX-300XP中,可以采用梯形图和功能块图相结合的方式,在图形编程环境的LD段落中进行编写,使设计层次分明。
典型的顺控程序监控组态界面如图1所示,典型的顺控程序不仅包括必要的执行步骤(如准备→进料→反应→出料),还包括程序启停、步号设定、单步时间设定、运行时间累积及暂停时间累积等。
图1 典型的顺控程序监控组态界面
在SUPCON DCS的编程界面中,点击“文件—新建程序段—梯形图”,在“段类型”中选择“程序”,点击“确定”即可[9],如图2所示。
图2 新建程序段
步选择程序如图3所示,其中START为布尔变量,对应图1中的“启动”按钮;STEP为有符号整型变量,表示当前要执行的步,对应图1中的“设定步”;P12_2~P12_5为等于比较模块,两值相等则输出为1;STEP1~STEP4为布尔变量。该段程序的功能是:当“启动”按钮按下,即START=1时,程序根据STEP的值,选择相应的步执行,如,如果STEP=1则STEP1=1,程序执行第一步。
图3 步选择程序
步执行程序如图4所示,PAUSE为布尔变量,对应图1中的“暂停”按钮;P13_59模块为顺控程序第一步要执行的内容;P13_50模块为两个布尔变量的“或”门;P13_44为计数器CTU模块。该段程序的功能是:当设定步为1,且不处于暂停状态,即STEP1=1且PAUSE=0时,顺控程序执行第一步的内容,同时对第一步的运行时间进行累积。时间累积程序的设计思路:由于CTU模块最大计数值为32 767,因此当程序运行在第一步,即STEP=1且计数值RUNTIME1<32767时,每经过一个CPU扫描周期(0.5s),RUNTIME1值增加1;当计数值RUNTIME1=32767时,CTU模块的Q端输出为1,即CLEAR=1,此时CTU模块的复位端R=1,CTU模块复位,累积时间清零;当程序没有运行在当前步时,该步所运行的累积时间也要清零。综合上述两项,P13_49模块的输出端和常开触点CLEAR采用P13_50模块相“或”后接入CTU模块的复位端R。
图4 步执行程序
其他步执行程序的设计以此类推。
步转移程序的设计如图5所示,RUN_MIN1为组态界面中第一步的设定运行时间,以分钟为单位;RUNTIME1为第一步程序的实际执行时间,以0.5s为单位;P13_61为整数型乘法模块,P13_62为整数型大于比较模块,P13_63为整数型赋值模块。该段程序的设计思路:将组态界面中第一步设定时间(RUN_MIN1)和第一步实际运行时间(RUNTIME1)作比较,若实际运行时间达到设定时间,则将程序向下一步转移;由于两个参数单位不一致,因此将RUN_MIN1乘以120,转换成以0.5s为单位的值后再与RUNTIME1进行比较。
图5 步转移程序
其他步转移程序的设计以此类推。要注意的是,若编写的是最后一步转移程序,当实际运行时间达到设定运行时间后,需将程序跳转到第一步,即把“1”值赋给STEP,以实现顺控程序的循环运行。
运行时间转换程序的设计如图6所示,P17_2为整型转浮点型模块,P17_3为浮点数除法模块;RUN_MIN11对应监控界面上用于显示第一步运行时间的变量。由于RUN_MIN11的显示是以分钟为单位,而RUNTIME1是以0.5s为单位的整型数,因此RUNTIME1必须先转换为浮点数,再除以120,才能得到RUN_MIN11的值。
图6 运行时间转换程序
其他运行时间转换程序的设计以此类推。
暂停时间累积程序的设计如图7所示,当“暂停”按钮按下,即PAUSE=1时,CTU模块开始对暂停时间进行累积,周期为0.5s;当计数值P_TIME>32767时,RESET置1,CTU模块复位,计数值清零。P13_13和P17_14模块则将计数值P_TIME转换为以分钟为单位的值在界面上显示,转换原理如图6所示。
图7 暂停时间累积程序
评价装置复杂多变的工艺特性及其特殊的安全要求往往需要通过调节阀的分程控制来实现,分程控制使一个调节器同时控制两个或两个以上的调节阀,每个调节阀可根据工艺要求在调节器输出的一段信号范围内动作[10]。
分程控制的特点是[11]:改善调节品质,优化调节阀的工作条件;满足开停车时小流量和正常生产时大流量的要求,使之都能有较好的调节质量;满足正常生产和事故状态下的稳定性和安全性。
在JX-300XP中,分程控制程序的设计需用到单回路调节模块BSCX,该模块是对在自定义回路中声明的单回路进行定义,确定它的输入输出,组成一个控制回路。BSCX模块如图8所示,PV为半浮点型,是测量值;N为无符号整型,是回路序号;SwAM为布尔型,是手/自动开关;SV为半浮点型,是内给定值;MV为半浮点型,是输出阀位。
图8 BSCX模块
分程控制程序的设计如图9所示,实现的功能是:当MV的输出为0%~A%时,控制V1的开度从0%~100%;当MV的输出为A%~100%时,控制V2的开度从0%~100%。其中,P4_15、P4_19为乘法模块;P4_16和P4_20分别为大于比较模块和小于比较模块;P4_18为减法模块;P4_17和P4_21为选择模块。
图9 分程控制程序
该程序的设计需要注意:第一方面是对控制每个阀门动作的调节模块所输出的信号范围,编程时需要将其转换为0%~100%,也就是说,当阀门输出信号范围的分界点为A%时,P4_15、P4_18和P4_19模块的输入参数应分别为1/A%、A%和1/(1-A%),比如,当A=20且MV=10%时,根据图9运算关系得出V1=50%,V2=0%;当A=20且MV=60%时,根据图9运算关系得出V1=100%,V2=50%,这样便达到分程控制的要求。第二个方面是BSCX模块中的PV、SV、MV的数据类型均是半浮点型,因此选用的运算模块也必须是半浮点型。半浮点数是JX-300XP设计的一个特点,相对于32浮点数而言可节省一半的存储空间[12]。
分程控制程序的执行通常需要和顺控程序相结合,在顺控程序中主要进行BSCX模块手动/自动选择和目标值的设置工作。具体程序设计如图10所示,其中P14_14和P14_15分别是布尔型赋值模块和半浮点型赋值模块,P14_14通过给g_bsc[N].SwAM赋值为ON将BSCX模块设为自动模式;P14_15是将目标设定值赋给BSCX模块。需要注意:g_bsc[N]中参数N表示组态时所建立的回路编号,范围是0~31;执行分程控制前,BSCX模块必须设为自动模式;C/D=(测量值-测量下限)/量程,是无因次化处理后的半浮点数。
图10 BSCX模块手动/自动、目标值设置
流量积算在评价装置中不可或缺,主要用于对现场液体及气体等通过某一管道的瞬时流量在一定时间内进行累积。流量积算程序的设计根据流量计测量范围的不同一般分为测量下限为0和测量下限非0两种。
对于下限为0的累积对象,积算程序的设计相对简单,如图11所示,P19_1为累积模块,其中y与accum使用同一变量,此变量以x即FI1.PV每秒的速度递增,accum和x的量纲必须一致,x为半浮点型数据。FIQ1表示累积流量值,FI1.PV为瞬时流量值的半浮点数表示形式。
图11 流量累积程序1
实际设计中可能会有流量计的测量范围是A~B且A>0的情况,对此类流量值的累积,必须先将其测量范围换算为0~B才能进行(换算公式[FI1.PV·(B-A)+A]/B)。程序如图12所示。
图12 流量累积程序2
需要注意的是,由于FI1.PV是无因次化处理后的半浮点数,故必须转换为浮点数后再进行换算,换算完成后再将结果重新转换为半浮点数参与流量累积。
比值控制程序的设计如图13、14所示。评价
图13 BSCX模块手/自动设置
装置在工艺上对物料配比有严格规定,比例一旦失调将影响生产或造成事故。实现两个或两个以上参数符合一定比例关系的控制系统即为比值控制系统。
图14 比值控制回路
图13中,BSCX模块被设置为自动状态,这是比值控制程序运行的必要条件,该步通常可放在顺控程序中执行,利用MOVE模块将BSCX的参数g_bsc[N].SwAM赋值为ON即可。
图14中,参数x表示FIC1和FIC2按照x∶1的进料比例控制,A和B分别表示FIC1和FIC2的量程。由于FIC1.PV为半浮点数,因此同样需要转换为浮点数后参与运算,运算完成后再重新转换为半浮点数赋给BSCX模块的SV引脚,作为设定值输入。
以上4个例子代表性地体现了JX-300XP在评价装置DCS程序设计中的具体应用,这些程序经过上海石油化工研究院评价装置的充分验证,运行稳定可靠,完全满足控制要求,且易于调试和维护。JX-300XP为设计人员提供了功能强大的高级语言程序设计平台[13]。在理解和掌握这些设计思路和实现方法的基础上,针对不同的控制对象和控制要求,可进行灵活调整;同时,这些思路和方法对于其他型号的DCS设计同样具有借鉴意义。
[1] 王胜潮,张允站,李小平,等.FCC装置沉降器直接耦合式旋风分离技术的应用[J].化工机械,2014,41(1):114~116.
[2] 秦绪香,吴智贤.基于JX-300XP DCS的催化裂解装置两机组改造[J].化工自动化及仪表,2011,38(6):747~750.
[3] 柳玉松.JX-300X在磷酸一铵装置中的应用[J].石油化工自动化,2003,39(5):66~67.
[4] 王君红,刘宝,瞿虎,等.免疫智能控制算法在JX-300 DCS中的应用[J].化工自动化及仪表,2009,36(3):73~75.
[5] 云苏和,陈健,刘彦芳,等.JX-300XP和S7-300PLC的数据通信[J].化工自动化及仪表,2011,38(8):1023~1024.
[6] 黄静雯.大型化工装置控制系统设计[J].石油化工自动化,2013,49(7):10~13.
[7] 黄步余.分散型控制系统在工业过程控制中的应用[M].北京:中国石化出版社,1994.
[8] 唐玉玲.延迟焦化过程间歇操作顺序控制系统开发[J].自动化仪表,2013,34(5):36~39.
[9] 浙江中控技术有限公司培训中心.WebField JX-300XP教材[M].杭州:浙江中控技术股份有限公司,2009.
[10] 雷军霞,王赟.分程控制在DeltaV系统中的应用[J].化工自动化及仪表,2013,40(8):1068~1069.
[11] 陆德民,张振基,黄步余.石油化工自动控制设计手册[M].北京:化学工业出版社,2000.
[12] 朱国良,孙志明,鲍峰.DCS图形化编程教程[M].杭州:浙江中控技术股份有限公司,2006:30~37.
[13] 王德康,王为民,裘坤,等.集散控制系统嵌入式实时高级语言的设计与实现[J].化工自动化及仪表,2001,28(1):41~46.