主题:【原创】漫谈工业过程控制系统 -- 晨枫
红花哪能没有绿叶衬呢?老同学在西西河里设坛子讲先进控制方法和软件,我就来助兴扯一扯常见的工业过程控制系统吧。
常见的工业控制系统有分布式控制系统(Distributed Control System,简称DCS)、可编程序逻辑控制器(Programmable Logic Controller,简称PLC)、容错控制器(Fail Safe Controller,简称FSC)、多功能控制器(Multifunctional Controller,简称MFC)等。FSC就是特别可靠的PLC,使用起来也特别麻烦;MFC是专用于强电系统(输变电、大功率电机、变频电机等)的PLC;所以粗粗归类,也就是PLC和DCS两大类。
在谈PLC和DCS之前,应该指出,还有一类系统通常不作为工业过程控制问题考虑,那就是像导弹控制、汽车发动机控制、洗衣机控制、电热咖啡壶控制等,这些控制问题一般使用专用的控制系统,和被控制对象紧密结合,通常称为嵌入式系统(embeded control system),不在这篇小文的范围内。
控制问题分两大类:连续控制和断续控制(也叫开关控制)。汽车的方向盘就是连续控制的一个例子,司机连续地恰到好处地转动方向盘以控制方向;电饭煲的温度控制就是断续控制的一个例子,只有开和关两个位置,按下开关后,温度上升到一定的时候,自动断电;温度下来了,又自动加电保温。稍微复杂一点的断续控制可以是多位控制,除了全开、全关两个位置外,中间还可以有一个甚至多个渐进的半开位置。一般来说,DCS适合连续过程控制,像化工、发电、冶金、造纸的工艺过程,PLC适合断续过程控制,像各种机电设备。这是由不同的历史背景导致的。在还没有计算机的远古时代,连续控制的PID是用气动或者电动调节器(行话叫单元仪表)实现的,连锁保护则是用继电器实现的。前者控制阀门或者变频电机连续变化,达到精确控制。后者则是自动化的开关控制,用于在某一事件触发下,自动执行一系列动作。复杂一点的继电器控制还有延时,可以执行一系列步骤,每一步可以包含一定的延时,传统上用凸轮实现。复杂继电器控制还可以包含滞环(也叫死区)等比较“反动”的功能。在很长的时间里,单元仪表和继电器之间是井水不犯河水,老死不相往来,直到数字式计算机的出现。
冯·诺依曼同学发明二进制计算机的概念,成功地打破了连续变量和离散变量的界限,这是计算机控制可以实现连续的PID控制和离散的继电器控制的基础。PID在本质上是一个数学计算,计算机的计算能力强大,做PID当然不在话下。事实上,即使不太先进的计算机也可以以一当百,一台计算机巡回扫描,把百十个PID回路吃下来不成问题。计算机还可以实现更先进的数学控制方法,如最优控制、自适应控制、模型预估控制等,用软件“连接”串级、前馈、分程、比例、超驰控制回路也比单元仪表时代拖电线容易得太多,很快就在工业界得到极大的欢迎。计算机控制用显示屏代替动辄几十米长的仪表板,也使超大型的控制系统得以实用化。早年的计算机控制系统大多采用大型计算机,如IBM的AIX系统,最不济也是DEC的PDP11,或者后来的VAX。但是集中的大型计算机是计算机控制系统可靠性的薄弱环节,一旦这台大型计算机出故障,整个系统就当掉了。
为了提高计算机控制系统的可靠性,人们做了很多努力。冗余计算机是最早的解决方案,但微机的出现,在根本上解决了计算机控制系统的可靠性问题。微机的成本低,体积小,于是分散到很多基本控制单元但又通过网络连接的所谓集散控制系统就应运而生了,这就是今天的DCS。DCS的基本单元具有基本的I/O和控制功能,即使和网络断开,也能保证基本的控制功能。但和网络相连,就可以实现更强大的控制和管理功能。这就使所谓“集散”的缘由。
二十多年前,Honeywell首先吃DCS的螃蟹,以至于至今TDC(意为Total Distributed Control,也是Honeywell的DCS系统的商品名)还在某些圈子里作为DCS的代名词。Honeywell在75年用Motorolla 6800作为CPU,自己开发了实时操作系统RTOS,采用双重冗余的轮询(polling)总线结构,推出了第一代DCS:TDC2000。80年代初,TDC2000升级到TDC3000,CPU改用Motorolla 68000,直到几年前推出的以EitherNet为基础的Experion之前,基本结构一直不变,只是CPU升级到68040了。
Honeywell的Experion系统结构示意图,最下层是物理控制层,往上是人机界面,再往上是高级控制层,最上层和办公网络相连
Emerson的Delta V,大体上意思差不多,当然细节有很大的不同
Honeywell之后,很多公司相继开发DCS,但大浪淘沙之后,留存下来的不多。现在主要的有Honeywell的Experion,Emerson的Delta V,ABB的Symphony,日本横河的Centum等几家。
在结构上,DCS可以用两大类通信协议:轮询和中断。轮询由中心控制单元轮流查询所有子系统,不管有没有数据更新,到时候就来问一遍,所以不管什么时候,系统的通信流量都很高,但是恒定。中断方式正好相反,子系统自己先检查一下,如果数据没有变化,就不上网要求更新,直到数据有变化,再上网“打一个招呼”。这个方式的平时通信流量较低,所以网路带宽要求较低。但是生产过程发生异常时,大量警报数据蜂拥而来,如果带宽不够,就会发生通信阻塞的问题。所以,中断和轮询到最后对带宽的要求是一样的,因为谁也不能承担生产过程异常时通信阻塞的后果。
在安装上,传统上DCS一般把现场的变送器(传感器)的信号线分别直接拉到中心控制室地下的DCS机房,通过barrier(不能翻译成堡垒吧?用来屏蔽信号的)引进DCS的端子板。输出到调节阀的信号线也是一样处理。这些信号线的工业标准是4-20毫安。对于不大重要的次要信号,或者仅用于监视而不做控制的信号,有时也用多点切换装置(multiplexer,简称MUX),在现场连很多信号线到MUX,但从MUX就拉一根线进DCS,节约施工和维护成本。最新的DCS也可以用现场总线连接,把变送器和调节阀像USB总线装置一样挂上去,plug and play,大大简化仪表的安装工作。由于信号完全是数字的,也容易引入自检功能。
在使用上,DCS一般使用组态(configuration)来编程,指定回路的结构和参数。有的系统的组态参数很全,基本上所有功能都有了,只需要用户选择就可以。有些系统的组态参数比较基本,需要用户自编功能然后调用。两种不同的做法各有好处,前者相当于用MATLAB做计算,比较方便可靠,但系统资源浪费较大,很多组态参数经常用不到,浪费了;后者相当于用C语言写程序,比较灵活经济,但用户的编程工作量大,编程质量全看用户的水平了。
DCS最大的优点是模块化,不光可以在系统内部自由增减模块,还可以通过EitherNet和OPC挂上外部模块,或者用于与上级的办公网络连接,或者用于挂上高级功能模块。这个模块化的功能不可小看,最典型的高级模块有海量数据记录系统(data historian)、先进控制系统(如DMC、Pavilion、RMPCT等)、控制系统性能监测和自动整定等,当然还包括更常见的网络管理模块如防火墙、文件服务器等。
由于网络技术的发展和DCS对网络的连接能力,DCS已经从早年的控制系统发展到工厂管理的重要手段,生产管理(产能和品种)、根据市场和原料情况的实时最优化、仪器仪表甚至机械设备的自检和故障预测、控制系统警报管理、操作记录和日志(log book)等都成为DCS的职责,DCS也作为生产过程的黑匣子,用于事故分析和过程优化。早年一两个人就可以管理的系统,现在要一个多专业的部门才能管理。
计算机控制系统也可以实现继电器控制,用IF……THEN……实现开关控制比用硬件容易多了,硬件的延时继电器更是麻烦。由于早年计算机还是稀罕物件,可靠性又不大高,所以继电器控制得以继续发展。但通过硬接线来改变继电器控制实在麻烦。汽车工业每年要换型,为此不胜其烦,在68年提出对可编程序控制器的要求,第一个吃螃蟹的是Bedford,这就是现在的Modicon。其他主要的PLC厂家还有Allen Bradley(现属Rockwell)、GE Fanuc、Siemens等。
在接线上,PLC和DCS一样,也可以按传统的分别拉线的方法,或者用现场总线。不过DCS的现场总线通常按Foundation Fieldbus的标准,PLC的现场总线通常按Profibus的标准,两者并不兼容。PLC通常用直观的ladder logic编程,也有用专用语言编程的。相比之下,DCS要实现逻辑功能,也是通过组态,但十分不直观,使用别扭,容易出错。
早年的PLC主要是用于嵌入式系统,但PLC的吸引力很快为工业界所注意,通用的网络化的PLC应运而生。现代的PLC早已超出开关控制的范围,具有一定的PID和像OPC那样的通信能力,甚至可以进行一些科学计算。另一方面,DCS也在不断增强开关控制的能力。由于计算机技术的趋同和连续/开关控制能力界限的模糊,DCS和PLC的界限开始模糊了。
从原理或者系统结构上来说,PLC和DCS没有原则性的差别,但两者截然不同的背景使两者有很不同的特点。由于用于连续控制的缘故,DCS的回路功能很强。DCS的很大一部分“力气”用于回路的初始化上,这是连续控制的一个独特问题。试想一个串级回路,副回路需要处于串级状态,主回路才能“指挥”副回路。但很多时候由于种种原因,副回路需要处于自动状态,也就是说,操作工直接设定副回路的设定值,主回路被“架空”了。这也不是问题,问题出在副回路恢复到串级状态的瞬间,主、副回路之间如何协调。副回路脱开时,主回路的输出没有地方去了,只有悬在那里不动。但一段时间后,副回路的设定值已经变了,主回路的输出没有,如果硬性连接,就会造成不必要的扰动,这里面怎么协调就是一个初始化的问题。由于主、副回路的控制算法都是多种多样,协调机制的排列组合很多,这就大大增加了控制算法的复杂性。被悬空的主回路还有积分饱和的问题,由于副回路不再听指挥,主回路实际上处于失控状态,设定值和测量值总也碰不到一起,积分控制作用就只有不断爬升,一直到100%或者0%。这在主、副回路恢复串级状态时也要造成麻烦。这只是冰山一角,还有各种手动超越控制功能、警报处理功能、本地串级/远程串级、脱网备份模式(shed mode)等。然而,以开关控制为主的PLC就没有这些问题,开关控制没有初始化的问题,手动超越控制也要简单得多。现代PLC可以做PID,但功能上远不如DCS,互连组态能力也相对有限,更加适于“孤儿”PID,而不是作为大型复杂控制系统一部分的PID。打一个不恰当的比方,DCS和PLC好比CPU里CISC和RISC的差别,不能说谁好谁不好,只是不同而已。或者说像高档PC机和PlayStation3之间的差别,前者通用性强,后者用其所长的话则是非常厉害。
由于这些差别,DCS通常远比PLC要复杂。系统复杂性首先在成本上体现出来。DCS虽然是模块化的,可大可小,但基本架子在那里,还是很昂贵的,只有大型装置才用得起,也才有必要用。PLC相对比较便宜,中小工厂或许PLC就足够了。出于成本的原因,大型工厂也常常是DCS和PLC混用,不但用PLC的开关控制能力,也用PLC负责一些次要的工段和装置。
系统的复杂性也在采样速度上体现出来,DCS的采样速度一般较慢,1秒是常规的,1/4秒就是很快的了。这对连续控制来说不是太大的问题,调节阀的反应速度没有那么快,大型过程的温度、压力、液位、流量等参数的变化也没有那么快,1秒足够了。然而,对于设备保护或者安全连锁来说,1秒就太长了,需要降到毫秒级,这就是PLC的用武之地了。
DCS适合于随时增减和修改回路。调整参数不需要把回路停下来,增减回路也只需要停下局部的回路,其他回路继续运转。DCS拥有很强大的先进控制算法的支持,包括自带的系统内的支持和第三厂家的支持。很多以先进控制为生的公司的产品基本上支持所有主要的DCS,但罕有支持PLC的。PLC也可以增减回路或者修改参数,但要繁琐得多,有时需要停下整个系统、重新上载整个组态文件才行。这不是PLC的设计缺陷,而是设计思想所致。DCS本来就是为随时修改系统设计的,在设计和结构上也为此付出代价。PLC则是安全系统,弄好了就不能太随便就更改的,这样也增加了系统的可靠性和响应速度。像FSC这样变态的,不把整个系统停下来,再闯三关过六码头,根本不可能改变任何参数或者组态。
DCS和PLC的另一个差别是人机接口。DCS都有很完善的人机接口,包括显示屏和键盘,可以显示图形和字符,并输入操作指令。过去是专用的,现在就用通用的PC了。新一代的DCS甚至可以包括头盔显示器、像iPod那样的袖珍人机接口等。DCS人机接口既是组态或系统维护的窗口,也是操作工的使用窗口。PLC则有点像“发射后不管”的导弹,组态好了就不用管它,要管也没法管,因为安全连锁都是在瞬间完成,再强的操作工也不可能中途干预,所以通常只有组态和维护的接口,没有操作窗口。组态和维护窗口用于操作和监控那是不可能的,使用太别扭了,没有专门训练连进都进不去。在实用中,PLC一般是挂在DCS或者SCADA(下面要谈到)上,借用它们的人机接口显示操作监控信息。
但PLC也有PLC独特的优点。由于PLC基本上还是开关控制,控制逻辑的测试比较容易,甚至有测试模式和工作模式,用完全相同的组态在测试模式下测试,可以假想性地触发各种条件,观察系统的反应,然后做相应的调试。完全满意后,改到工作模式就行了。在测试的时候,同一控制逻辑的老版本可以平行运行,保证生产过程的继续。这在DCS上就是不可能的了。DCS的控制输出是连续的,除了接上一套过程仿真系统,不可能作这样的测试,因为不可能知道被控变量是怎么反应的。而且DCS也没有什么工作模式和测试模式之分,组好态了就是工作模式。所以即使有仿真系统,要么仿真系统和真实系统各有一套DCS,要么就要建立一套平行的组态,很是麻烦。
PLC会取代DCS吗?DCS会取代PLC吗?随着计算机技术的发展,看来两者不是取代,而是融合。Emerson的Delta V是DCS,但在一开始就考虑到了PLC的功能,所以PLC功能十分强大。在现场总线问题上,Delta V也是两者通吃,FF和Profibus都兼容,估计可能还是要通过某种适配器或者转接装置。Honeywell也是一样,新的Experion系统中的基本单元C100/200/300系列索性由Rockwell下属的Allen Bradley设计,当然也是从一开始就考虑了PLC的功能。未来可能不再有DCS和PLC之分了,只是在同一个网络上挂上的不同模块而以。
除了DCS和PLC外,还有一种重要的工业监控系统称为SCADA,全称为Supervisory Control And Data Acquisition,意为监控与数据采集。这是专用于远程监控的系统,比如天然气管道、无人值守的油井等。在结构上,SCADA有较完善的人机接口和低速远程数据传送网路,甚至是无线链路,在网路的那一头则是现场的PLC或者RTU(Remote Terminal Unit,和现场PLC对应的连续控制装置)。SCADA的重点在于数据采集,而不在于控制。中心控制室的操作工可以看到远方的低速采样实时数据,也可以偶尔改动控制参数,但基本上是依靠PLC或者RTU执行就地控制,有点“将在外君命有所不受”的意思。SCADA比DCS便宜,用于小规模的工业控制也是可以的,像天然气管线上低温分离乙烷和其他高碳组分的天然气处理厂,但用于大规模的工业过程,还是小马拉大车了,就好像用低档PC和家庭版Windows XP做工业规模的服务器一样力不从心。
现场总线(Field Bus)无疑是DCS和PLC问世后工业控制系统中最重要的动向之一。现场总线在概念上和PC世界的USB相仿,现场的变送器和调节阀可以像“一串蟹”一样挂上去,可以plug and play。数字化的信号传输使自检变得很方便,这对施工和维护是非常重要的。通过现场总线,现场装置可以就地组成PID回路,只向DCS或者PLC报告“高层次”的参数。然而,现场总线也有一些问题。一是可靠性问题。如果很多现场装置都挂在一根现场总线上,万一挂了,那就毁了一大片,这在很多工业领域里是不可接受的。为了缓解这个问题,必须限制在同一现场总线上挂靠的装置数量,这就限制了现场总线的优越性。但是现场还是有那么多变送器,为了降低“一损俱损”的风险,只能往同一地方拉几根现场总线,分散挂靠,但这进一步限制了现场总线的优越性。第二个问题是带宽问题,实时系统的特点就是实时,等不得的。众多现场装置共用一条总线,数据传输率还必须保证,同样只能限制挂靠装置的数量。可恨的是,即使今天计算机高度发达,数字装置的速度还是比不上同等技术的模拟装置,这样对带宽的要求更高。第三个问题是数字信号传输特有的。高频数字信号传输对屏蔽和抗aliasing(译名是什么?)很苛刻,这就是为什么在家庭影院里,三色的component缆拉几十米都没有问题,但HDMI缆就只有2米的距离,再长就要加中继放大器了。对于现场总线来说,这要求限制长度,或者使用中继放大器,削弱了施工、维修方便的优点。第四个是现场总线特有的。现在有好多现场总线的标准,在不同标准之间衔接很是啰嗦,有时也为此被迫在同一地方拉几根不同标准的现场总线,“一串蟹”就变成一捧花了。还有的问题比较琐碎,模拟信号用万用表就能测试,现场总线必须用专用设备;数字设备的标准变化很快,未来技术的兼容性是一个问题,相比之下,4-20毫安的模拟信号标准已经用了至少50年了,数字系统的标准罕有超过10年儿不变的,但工业控制系统的寿命经常超过20-30年。
和现场总线相容的现场装置可以自带PID,这在现场总线之前就可以实现,现在数字化的现场装置也多得是,自带PID是小菜一碟,无所谓特别大的优点。DCS的特点是“电子吸尘器”,现场所有的信息都想知道。这样一来,现场总线依然要把测量值和自检信息送回DCS,加上现场的PID本身多出来的设定值、输出值、控制器模式、PID参数、初始化信息等,通信量实际上是更大了,而不是更小了。现场总线装置的PID不会超过PLC的水平,所以和SCADA的情况一样,对于“孤儿”PID回路没有问题,用于大型一体化的控制系统,还是力不从心。
本帖一共被 3 帖 引用 (帖内工具实现)
鲜花已经成功送出。
此次送花为【有效送花赞扬,涨乐善、声望】
[返回] [关闭]
收起来慢慢消化,再谢晨枫兄好文
惊喜:所有在本帖先送花者得【通宝】一枚
恭喜:你意外获得【西西河通宝】一枚
谢谢:作者意外获得【西西河通宝】一枚
鲜花已经成功送出。
此次送花为【有效送花赞扬,涨乐善、声望】
真是有工程师的风采。我还在想一直没收到你的回信,想再写一条,这里已经回答了。润树老大的我也是反复读了,收益良多啊。
我做化工自控这么多年,感觉一直是浮在上面的,没有把根扎下去。工厂也经常去,有时一呆也是十天半月,但因为都是做APC的项目,厂里面的很多东西还是不懂。比如紧急停车系统也是冗余的,我就不知道。另外为了和工厂里的同事搞好关系,他们职责范围内的东西,像DCS与APC的接口等,我是故意不去插手。这也是有失有得吧。
里面提到的修改参数和回路,参数指的是控制的时候使用的那些参数,还是工艺参数的设定值?
要是工艺参数的话,如果一些工艺参数需要经常调整,比如新工艺试验厂试车的时候,很多工艺参数实际上都是根据模型推测的,现场需要调整,那么是不是DCS就有很大优势了?
DCS可以随时修改工艺设定值或PID参数,增减回路稍微麻烦一点,但也只影响局部回路;有的PLC可以随时修改参数,有的需要reload,增减“回路”几乎肯定要全体reload,不是小事一桩。
就PLC而言,即使可以随时修改参数,也不是在操作工面板上进行,而是要把仪表工拖出来。大量调试的话不大方便。
“上面”的人和“下面”的人确实有这个协调关系的问题。这牵涉到自控的人员组织问题,比较大的公司通常都有集中的APC组,到各个工厂巡回支持。工厂的搞具体的人则配合。但这样做,工厂的人常常干劲不大,“活都是我的,功劳都是你的”。我们这里“前重后轻”,人员大多直接压到第一线,“中央工作组”很小,更多的是行政、财务上的协调,基本上靠工厂里的人做。两种模式各有各的好处,我们也开始向集中化的模式转了,不过下面阻力很大。
本来想在贴出来的时候给你发一个短信,结果忘了。抱歉。希望能够回答你的一些问题。
还有一个:就人员组织而言,和控制系统相关的人有好几拨:
1、控制工程师,负责回路设计、整定,人机界面,先进控制算法等,一般背景在化工厂里就是受过自控训练的化学工程师(国内就是化工自动化专业),其他类推。电工背景的控制工程师在化工厂里不是太受欢迎,不是排外,而是“语言不通”。对过程的理解是成功的过程控制的关键。
2、DCS administrator,负责DCS的维护、升级等
3、DCS hardware,一般是仪表工里轮流,负责具体的硬件维护,小一点的系统2和3可以合并
4、PLC,负责PLC的编程和软硬件维护,一般也是在仪表工里轮流,有的地方规模较小,可以和1合并
5、控制系统里IT那一摊,一般是IT背景的人,负责EitherNet、防火墙、各种服务器、挂靠在DCS上和控制有关的计算机、和办公网络的连接
我的一个每天一起工作的同事名字就叫Lance,真巧。
这里面的内容仔细掰掰值至少7、8门培训课,每一门都是1个星期,6000美刀呢。自我吹嘘就不算了,真有具体问题的话,欢迎提出来,很多东西我也是不懂装懂,但我可以去问真懂的。
我做的就是PLC,也负责人机界面的设计
公司什么项目都接,都是用SIMATIC S7编程,然后调试,最近的项目是空气压缩机,貌似还有大型油轮。。。
其实DCS我比较熟,PLC我是不大懂的,属于常在河边走的那种,哪天艾MM教教我们PLC吧。Siemens的PLC好用吗?北美有,但不是太多,主要的还是Allen Bradley和Modicon。