陈朝权,吴文虎
(西南化工研究设计院有限公司,成都 610225)
变压吸附(PSA,Pressure Swing Adsorption)是一种新型气体吸附分离技术,广泛应用于石油、石化、冶金、化工等各个行业。西南化工研究设计院公司是国内变压吸附技术的开创者和引领者,其变压吸附装置的规模和数量一直处于国内领先地位。
石油、石化、冶金、化工的大型联合装置一般采用全厂统一的大型DCS进行自动化控制,变压吸附装置作为联合装置的一个单元,同其它工艺单元共用DCS集散控制系统进行监控。
大型变压吸附装置控制时序复杂,自动化控制程度高,在DCS上的编程组态工作,一般由变压吸附装置供应商的自控工程师负责完成。因此,在工作实践中,使用了多种国内和国外主流品牌DCS进行编程组态工作,随编程组态工作的深入和程序版本的不断优化,现对以下3种DCS功能块的扫描规则和执行顺序进行深入地学习了解,梳理总结,方便指导今后编程组态工作。
图1 CS3000 DCS输入处理规则[1]Fig.1 CS3000 DCS input processing rules[1]
横河CENTUM CS3000 DCS进入中国较早,应用很广泛。通过对横河CENTUM CS3000 DCS控制站(FCS)中控制器输入处理、运算处理、输出处理过程的学习了解,发现其具有很强的代表性。DCS控制器CPU有很多系统工作要处理,本文主要讨论其中功能块的扫描规则和执行顺序。功能块按扫描时间分为高速处理、中速处理、基本周期处理;按执行条件分为触发执行和周期连续执行。实际中,高速处理、中速处理很少,重点分析基本扫描周期下周期连续执行情况。
如图1所示,控制器有过程控制输入映像区,在基本扫描周期进行批量更新(没有高中速度功能块情况下)。基本周期处理功能块在开始执行时,首先读取控制器过程控制输入映像区数据。
如图2所示,控制器有过程控制输出映像区,在基本扫描周期功能块处理结束后写过程控制输出映像区,在基本扫描周期所有功能块都处理结束后,针对有改变的数据,过程控制输出映像区批量输出。
图2 CS3000 DCS输出处理规则[1]Fig.2 CS3000 DCS output processing rules[1]
图3 CS3000 DCS功能块处理规则[1]Fig.3 CS3000 DCS function block processing rules[1]
如图3所示,CENTUM CS3000 DCS功能块是放在控制图中组织的,控制图默认树形结构,编号从DR0001~DR0128,其中包含了高速、中速功能块的控制图优先处理。如没有高速、中速功能块,按基本扫描周期从上到下顺序进行控制图处理,即图中a、b、c、d 顺序处理。控制图内的功能块按其在控制图中统计列表中从上到下排列顺序执行,即图中1、2、3、4 顺序处理。其中,用高级语言编程的顺序控制功能块(SFC),可以调用自定义子程序SEBOL,SFC块在基本扫描周期空闲时间执行自定义子程序SEBOL。如空闲时间不足,全部扫描处理自定义子程序SEBOL,没处理完的子程序SEBOL将忽略,当第二个基本扫描周期开始时,再从头执行。
I/A Series DCS控制站的处理能力因芯片的型号而异,其基本处理周期(BPC=Basic Process Cycle),一般默认是0.5s。基本处理周期是指再次处理同一个模块间隔的时间。本节同样主要分析其功能块的扫描规则和执行顺序。
图4 I/A Series DCS功能块处理规则[2]Fig.4 I/A Series DCS function block processing rules[2]
如图4所示,系统的功能块是放在Compound(组合控制块)中,在组态软件中也是树形结构从上到下排列,在基本扫描周期,从第一个Compound开始从上往下逐个执行Compound。当一个BPC到了,它就回到第一个模块再依次运行一遍,而不管上一次是否还有来不及运行的模块Compound。在Compound的功能块,按列表目录的顺序从上到下执行。如CPU负荷大,存在Compound的功能块有不执行的情况发生。
其处理周期必须小于或等于它所包含的所有模块中的最小处理周期,以使所有模块都能得到处理。一般取默认值 "1", 即它所在的控制处理机的基本处理周期。在Compound中的功能块按执行顺序编号进行顺序处理,一般默认编号以添加功能块的先后顺序形成。
指定该组合模块的运行时间是否要延迟几个基本处理周期,如果CPU的基本处理周期是0.5s,Compound的处理周期是1s,可以选择0或1相位来分散CPU负荷,但1相位的要延时1个基本处理周期,要比基本扫描周期长,才能选择相位。
它是一种特殊的功能块,有执行语句长度设定,超过设定条数中断执行,在下一扫描周期继续原位置执行。在设定条数内,如果扫描周期到,未执行完也中断执行,在下一扫描周期原位置执行。
DeltaV DCS控制站系统组态时也有一个基本扫描周期,默认1s。其MODUL(控制策略模块)有扫描速率参数设定,缺省扫描速率为1,每次基本扫描时执行1次,如果是3,每3次基本扫描时执行一次。
图5 DeltaV DCS功能块处理规则[3]Fig.5 DeltaV DCS function block processing rules[3]
如图5所示,系统的功能块是放在MODUL(控制策略模块)中,MODUL在组态软件中也是树形结构分厂区从上到下排列,同样扫描速率的MODUL执行先后顺序并不是组态软件显示排列从上到下,是已按下装到控制器中的排列顺序执行,不能调整顺序。
1)通过以上DCS的功能块扫描规则和执行顺序分析可以看出,其三者有些相似之处。如横河的控制图(DR0001),艾默生的控制策略模块(MODUL),福克斯波罗的组合功能块(COMPAND)都可以理解成是基本功能块的“容器”,功能块在“容器”中通过连线实现数据传递,通过不同功能块实现算法逻辑处理,功能块在“容器”中的执行顺序可按默认顺序执行,也可以编辑执行顺序。“容器”可以在基本扫描周期执行,也可以比基本扫描周期慢。常规功能块模板搭建仪表回路、调节阀、控制阀、马达等,默认都是基本扫描周期定期连续执行的。
2)扫描规则和执行顺序分析,他们的不同之处也很多。“容器”的执行顺序就不同,横河控制图(DR0001~0128)和福克斯波罗的组合功能块(COMPAND)从上到下执行,福克斯波罗的组合功能块(COMPAND)还能直接调整上下顺序,而横河控制图(DR0001~0128)顺序不能变,只能调整控制图中所包含的内容。艾默生的控制策略模块(MODUL)执行顺序资料不明确,可通过改变扫描系数,改变模块(MODUL)执行的优先级,并且其控制策略模块(MODUL)中的功能块(BLOCK)执行顺序可调整。
3)三种DCS高级语言编程部分。横河的顺控功能块(SFC),福克斯波罗的独立运行块(IND)都是由手动或自动触发运行,优先级比周期定期执行功能块低。在一个基本扫描周期执行不完的情况下,横河的顺控功能块(SFC)中包含的子程序SEBOL被忽略不执行;福克斯波罗的独立运行块(IND),一个基本扫描周期执行不完的情况下,被中断,并在下一个基本扫描周期中断位置继续执行;艾默生的动作块(ACTIVE)也可以执行高级语言编程,但优先级和其它常规功能块一样,定期连续执行,一个基本扫描周期执行完毕,但其大小有限制,不能嵌套调用子程序。
通过横河 CENTUM CS3000 DCS,福克斯波罗 I/A Series DCS,艾默生 DeltaV DCS三种DCS功能块扫描规则和执行顺序的对比分析,更能深刻地理解这三种主流DCS功能块扫描规则和执行顺序的相似处和不同之处,对于今后进行这三种DCS编程组态、系统维护以及分析查找问题上都有重要的帮助作用。
在高级语言编程的功能块中,为保证在数据读取一致性和程序运算处理正确性上,其基本扫描周期的空闲时间要足够,才能保证全部顺控功能块在基本扫描周期都能执行。实际功能块运算处理时,DCS中建立的全局变量统一更新和传递,在程序块中使用局部临时变量时,运算开始就已统一读入已传递的全局变量等数据。这样,不仅减少了高级语言功能块的扫描执行时间,也对在执行时效性要求不高的基本扫描控制时,不用特别关注其执行顺序,系统也能保证其逻辑运算的正确性与统一性。