当今的冶金、石化、化工、电力、水泥、汽车、制药、食品与饮料等工业的自动化系统,几乎毫无例外的采用分布式控制系统。随着电子技术、通讯技术和软件技术的发展,分布式系统也发生了很大的变化,下面就这个题目进行一些探讨。
集中式系统
早期的仪表控制系统和电气控制系统都是集中式的,原因是工业化大规模生产线还未形成,控制的物理面积比较小,所以没有这种需求。设备的控制都是独立的,控制系统都安装在设备附近,输入/输出的走线距离,通常不会超过二十米,而且设备与设备之间、设备与车间/厂级之间也没有通信要求,设备与操作人员通过按钮、指示灯来进行交互,功能比较简单,设备的加工和制造的产品,属于“大批量,少品种”的状态。因此,自动化的控制水平处于初级阶段。
图1:典型远程输入/ 输出系统
分布式系统输入/输出系统
随着流水线、自动线、生产线的发展和扩大,对自动化控制系统的要求也随之提高。因为原来的输入、输出的走线距离为十几米、几十米,后来的要求提高到上百米,甚至几百米,所以带来的问题有两个:一是输入、输出的距离过远,信号衰减过大,导致了误动作,甚至无法工作(现在的接线距离通常限制在四百
为了解决上述问题,自动化制造厂家推出了结构称为远程输入/输出系统(Remote Input/Output System),它的特点是CPU机架与输入/输出模块(输入/输出机架)先进行物理上的分离,也就是用于远程输入/输出点的输入/输出模块不再安装于本地机架,而是安装于远程机架。本地机架与远程机架采用远程通讯电缆来连接,远程机架的输入/输出模块再连接周围的输入/输出点。这样就把原先的并行电缆,改变成现在的串行电缆(远程电缆),减少了接线成本。(理论上讲,把并行连接改为串行连接,系统的可靠性是下降了,这也是结构变化所要付出的代价吧)
我们要知道,这种结构上的变化是有技术含量的。因为远程输入模块在了输入信号后,要经过处理,先把它们转换成数字信号,再把它们变成一种数据帧,常被称之为某种特定的“协议”,具有规定的格式,然后经过远程分站模块、远程通讯电缆,到远程主站模块,传送到CPU站进行处理,处理后的结果再经过远程主站模块、远程电缆,传回给远程分站模块,经“翻译”后,由远程站上的输出模块输出给执行机构。
我们即得益于远程系统,也受制于远程系统。远程系统中的远程主站模块、远程电缆、远程分站模块成了整个系统的软肋,所以要格外重视。我们考虑问题的原则是:担心哪部分弱,容易出问题,就加强哪部分的实力。比如说:担心远程主站出问题,我们就对主站模块做冗余;担心电缆出问题,就对电缆进行冗余;担心分站出问题,就对分站模块冗余。应该说这种系统都是可以实现的,考虑到系统的造价问题,很多厂家采取了折衷的方案:远程主站、远程分站各为一个模块,但有单口和双口之分,用于连接一根或两根远程电缆,实现了电缆冗余。
冗余的电缆也有不同的工作方式,无外乎有以下几种方式:两缆同时工作,把信号比较后,再进行输出;两缆同时工作,仅取一个信号进行输出;两缆一用一备,直到用的一根出了问题,才进行切换;两缆一用一备,按时间间隔进行切换。用与备的切换完全由系统控制,自动进行,用户一般无需任何操作。至于厂家采用哪种方式,即要考虑实现的技术难度,也要考虑实现的商业成本。各自都有各自的道理,这就是一种选择吧,也是一种差异化竞争。总之,对于用户而言,双缆总是比单缆要可靠性高,心里觉着塌实。
以上谈的是硬件部分,下面再说说软件部分。因为工业现场的环境比较恶劣,比如:灰尘、震动、冲击、电压波动等,最大影响就是来自现场的大设备,如:大电机的启动和停止,会带来一系列的连锁反应:接触器的吸合与断开,软驱动器启动和停止,变频器的运行和停止。还有一些高压、中压开关柜的运行等,都带有很强的电气干扰和电磁辐射。而它们通常也都与自动化系统的控制柜放在一起,而它们非常容易对低电平的通讯信号产生影响。因此,抗干扰就成了工业通讯要解决的首要难题。
为了解决现场的干扰问题,除了在物理上要采用带屏蔽的电缆、屏蔽线单端接地、信号线两端加接终端电阻、动力线与信号线分开布线或者保持一定的间隔、自动化系统与其他系统分开接地外,还要在通信的协议上下功夫。前面提到:远程协议都有规定的帧格式,而其中的一部分就是要对传送数据的周期性进行检验,确保传输的过程准确无误,这部分内容被称为FCS(Frame Check Sequence)-帧检测序列,它是一种检测算法,专门用于通讯数据的检查。常用的算法有两种:循环冗余码校验(CRC:Cyclic Redundancy Check) ,和纵向冗余码校验(LRC:Longitudinal Redundancy Check),有8位、16位和32位之分,位数越多,校验能力就越强。
校验的基本原理是:发送数据之前,在发送端系统要对传送的数据帧中的数据进行计算,比如CRC的运算,把得出的结果放在FCS段,使之成为一个数据帧进行传送;数据经过传送,并被目的站接收后,在接收站对接收数据帧的数据进行运算,当然是和出发时的相同运算,得出的结果再和接收数据帧中的FCS内容进行比较,如果一致则说明传输无误,这一帧的传送任务完成,进行下一步的工作;如果不一致,则说明传输有误,告诉传送源请求数据重发。发送端通常会有一个重发的次数限制,比如3次,如果连续发生错误就说明线路有严重故障,甚至已经断开,系统会停止再试,马上向CPU和上位机操作员报警。
集散控制系统
在过程控制行业,也称为仪表控制行业,也从分立的仪表控制发展到了集成的控制系统,被称之为dcs(Distributed Control System)系统。我国在引进这种技术时,为了阐述分散控制、集中管理这个理念,把它翻译成:集散控制系统,而不是分布式控制系统。但我们从英文的
什么是分布的真正含义呢?从概念上说,所谓分布就是要分散危险,也就是说,不能因为系统中的某个元件或部件出问题,而造成整个系统的瘫痪。从结构来看,就是把控制系统比较重要的部分,如CPU,分散到几个CPU来实现;如存储器,分散到多个模块执行;如总线,变成冗余的网络进行;如操作系统,变成基于实时网络、多任务操作系统。
下面就对比我们非常熟悉的PC机,来理解DCS系统的结构。当老师介绍PC机的构成时,可以知道是由中央处理器(CPU),内部存储器(RAM),外部存储器(硬盘),内部总线(ISA,VESA,PCI等)和输入设备(键盘、鼠标、光驱、摄像头等),输出设备(显示器、打印机、绘图仪等)等构成;而DCS系统就是把上述的部件,变成网络中的一个节点单元(每个都相当于独立运行的PC机),来分散风险。
比如:DCS系统中的过程控制器和逻辑控制器,相当于两个CPU,分别完成仪表控制和电气控制;应用数据管理器相当于内部存储器;历史数据管理器相当于外部存储器;操作员站和工程师站相当于部分输入/输出单元;而所有的节点单元都通过实时的局域控制网络――相当于PC内部在线,连接在一起,构成了基本的DCS系统。可以看出:DCS系统是PC经过放大了的系统。但从系统的实现上,发生了质的变化:不因为某个节点单元发生故障,而造成整个系统的失效。不像我们的PC机:经常死机,需要重新驱动!
DCS系统不光分散了危险,也分散了CPU的负载。PC机中的所有工作都由一个CPU来做,而DCS系统中,则由多个CPU来实现,从而降低了每个CPU的工作量。应该说,这也是非常有意义的,因为CPU的负载超过某个值时,如80%,可能会造成过热、死机等问题,就是说:具有发生故障的潜在可能性。这也就是为什么很多游戏玩家,用“极品飞车”来测试CPU的性能,实际上,这是一种超负荷测试,来检验CPU的能力。从另外一个角度来说,仅仅使用集成度和时钟频率来提高CPU的性能的方法,遇到了物理和材料方面的极限,所以,无论是英特尔,还是AMD都采用双核与多核技术来提高CPU的性能。这也从反方向证明了:通过多CPU的方法可以提高整个系统能力。
图2:典型的DCS 结构
现场总线系统
前面介绍了远程输入/输出系统的基本概念和结构,如果再仔细分析就会发现,虽然系统解决了本地到远程的接线问题,可到了远程机架,还是采用传统的机架、传统的模块、传统的并行接线。我们会问:有没有可能从根本上改变传统的接线方式?有没有不用并行连接,而只用串行连接的传感器/执行器?这个答案就是:使用现场总线!
现场总线的历史可以追溯到上世纪的八十年代,由于工业自动化界缺少IT界类似于IBM和微软、英特尔这样的重量级大腕,一时间,现场总线的种类多如牛毛,有点象春秋战国时代的封建诸侯,各自为政,多达数十种,就连IEC通过的品种也有十八类。比如常用的有:Asi,Can,Modbus,InterBus,Profibus,FF,HART等。
图3:Asi 典型配置
现场总线对于工业控制和自动化的最大贡献是:它彻底颠覆了传统的接线方式,并把智能分配给了传感器和执行器。
第一,前面提到,传统的接线方式是并行的,而现场总线一律采用串行方式。只是考虑对传统接线方式的兼容,才允许在某些节点上,可以转成并行方式接线。从拓扑结构上看,有些现场总线除了支持总线方式之外,还支持树形、星形、环形和混合形的方式。从距离上看,从100米到1000米、数千米不等;从速度上说,低的有9600波特率,高
第二,传感器和执行器的智能化。现场总线不光能够传送传统的物理量的值,如:离散量、模拟量、脉冲量等,还可以传送传感器和执行器的状态量。应该说:这是一次质的飞跃!因为这是一个从前非现场总线不可能完成的任务!
试想一下,很多传感器装在平常人难于触及的地方,如:烟囱、地下、核实施等,如果传感器能够自己主动把运行状态告知控制系统,那真是现场维护人员的喜讯,大大减少了系统维护的费用。具了解,某个厂家的变送器的诊断参数多达37个,什么断线啦、温度超限啦、元件虚焊啦,统统一网打尽。可以说,只要你关心的问题,它们全都包括。使用这种变送器的用户,是否会因为这种产品的功能而爽呆了呢?
智能传感器的出现,也为维护人员对设备的维护,由被动转为了主动。试举一例来说明之。每种传感器都是有寿命的,比较重要的参数是:产品的电气寿命和机械寿命,一来这两个参数是不一样的;二来到了寿命不一定这个传感器就不能用了,可能还能持续一段时间,但具有潜在失效的可能性。传统的维护方法有两种,一种为:直到该传感器
我们再来看看什么是主动的维护方法。充分利用传感器的智能——处理器和存储器,对其状态进行监视。讲一个最简单的方法,传感器不是有使用寿命吗?比如说明书上标注的是:20万次。那就对它的使用次数进行计数,快要达到这个次数时,如18万次,就马上提醒维护人员,告诉他们赶快更换这个传感器,否则要发生故障了。这样就可以把故障处理在它可能发生之前!当然了,即使故障由于其他的原因发生了,那么查找起来也比传统的传感器容易的多,因为它的故障状态已经显示在操作员的屏幕上了。
全分布式系统
前面介绍的分布式输入/输出系统,由于历史的原因,主站节点单元都放于环境较好的主机房里,通常还带有空调系统,确保室内的温度。这主要担心CPU是有源元件,集成度不高,容易出问题。而输入/输出从站节点单元位于较为恶劣的现场,考虑的是输入/输出模块大多数为无源的电阻、电容等元件构成,所以抗干扰的能力比较强,这就组成了传统的远程输入/输出的系统结构。
图4:典型全分布式方案
今天再看这种系统结构,也还是有很大的问题:第一,过分倚赖远程网络,所有的输入信号不管是否使用,不管时间长短,不管是否变化,每个扫描周期都要通过网络送向主站;而经过运算的结果,再通过网络,送向远程分站,线路繁忙,效率低下。第二,过分倚赖主站CPU的作用,所有的运算都由它来完成,负担较重,负载较大,而且一旦出现问题(包括CPU、网络),因为这是一种主从结构,分站是波动的接受方,所以即使知道也无能为力,只能听天由命。
为了克服上述问题,全分布式系统更多地强调平衡、和谐和主动。改变的方式如下:在远程分站,把通讯适配器改换成一个小CPU,把原来远程主站单元向远程分站发送数据的单向传送,变为既可以主站往分站送,又可以分站单元往主站发送的双向通讯。另外,分站的CPU也可以运行一些程序,分担主站CPU的负载。
这种结构的优点是:
■ 远程分站的CPU可以分担主站CPU的部分工作,这个百分比可以由用户来决定。比如:主站CPU和分站CPU各自执行50%的程序。这样就降低了主站CPU的负载。在最糟糕的情况,如主CPU停机或者远程通讯完全中断时,分站CPU承担所有工作,系统仍然可以正常运行。
■ 因为有了分站CPU,分站的处理能力加强,可以按照应用需求减少远程网络的传送数据,因为不是每个数据,每个扫描周期都要传送给主站单元。比如:有些数字量在扫描周期里没有变化,对程序没有影响,就不用传送;有些模拟量变化非常缓慢,我们可以给它们设置一个死区,在这个区域内,我们认为它没有变化,所以也不用传送。这样就降低了网络的负载。
■ 原来的结构,分站因为没有CPU,完全处于被动,状态是主站发,分站收,是一种单向通讯。用现在的新结构,除了原来的方式外,还可以增加分站主动向主站发送或索要信息,构成了一个反向通讯。这样分站就增加了主动性,可以根据主站、网络的情况,决定自己做什么工作,做多少工作,使得整个控制系统更加趋于平衡。运行更加趋于合理。
■ 在设备冗余的主站系统中,主站CPU进行切换时,如果没有分站的CPU,可能会发生两种情况:有扰动切换和无扰动切换。这种扰动是由于分布式网络运行周期与主站CPU
从以上分析可以看出,从集中式I/O到分布式I/O(远程I/O),从集中式CPU到本地分布式CPU(dcs),从远程嵌入式CPU(现场总线),到远程分布式CPU(新分布式系统),有着一种符合其规律的发展过程,这也是伴随着芯片制造技术的提高,分站CPU抗干扰能力的增强,以及处理器价格的降低带来结果。因此我们的项目设计人员、项目执行人员、项目咨询人员和最终使用人员,应该与时俱进,转变固有概念,把自动化系统构建的更为高效,更为合理,更为平衡,更为和谐。