1356384907
级别: 探索解密
精华主题: 0
发帖数量: 81 个
工控威望: 196 点
下载积分: 627 分
在线时间: 54(小时)
注册时间: 2009-07-05
最后登录: 2021-04-24
查看1356384907的 主题 / 回贴
楼主  发表于: 2010-01-31 13:21



安全型可编程逻辑控制器(PLC)是为特殊用途的机器设备而设计的,用于关键型控制和安全型应用。这些控制器通常是安全仪表系统(SIS)的一部分,用在检测具有潜在危险的流程工业环境中。一旦检测出危险,SIS的应用程序能自动作用,把流程切换到安全状态。谈到这里,用户可能会有一系列的问题:常规PLC已经成功地使用了这么多年了,与安全PLC相比有什么不同?为什么在关键型控制和安全型应用中,不能使用常规的PLC?


一、综述


一台安全PLC采用了特殊的设计,能够实现两个重要目标:
1.系统不会失效(采用冗余的工作方式),即使元件的失效不可避免;
2.失效是在可预测的范围内,一旦失效,系统将进入安全模式。


在设计安全PLC时,要考虑到很多因素,需要很多的特殊设计。比如:一台安全PLC更强调内部诊断,结合硬件和软件,可以让设备随时检测自身工作状态的不适;一台安全PLC具有的软件,要使用一系列的特殊技术,能确保软件的可靠性;一台安全PLC具有冗余功能,即使一部分失效,也能够维持系统运行;一台安全PLC还具有外加的安全机制,不允许通过数字通信接口随便读写内部的数据。


安全PLC与常规PLC的不同还在于:安全PLC需要得到第三方专业机构的安全认证,满足苛刻的安全性和可靠性国际标准。必须彻底地采用系统方法,来设计和测试安全PLC。德国的TUV专家和美国的FM专家会提供对安全PLC设计和测试过程的、第三方独立的确认和验证,


特殊的电子线路,细致的诊断软件分析,再加上对所有可能失效进行测试的完整性设计,确保了安全PLC具有测定99%以上的内部元件潜在危险失效的能力。一种失效模式、影响和诊断分析(FMEDA)方法一直指导着设计,这种方法会指出每个元件是怎样引起系统失效,并且告诉你系统应该如何检测这个失效。TUV的工程师会亲自执行失效测试,把它作为他们认证过程的一个部分。


严格的国际标准软件应用于安全PLC。这些标准需要特殊技术,避免复杂性。更进一步的分析和测试,细致地检查操作系统的任务交互操作。这种测试包括实时的交互操作,比如多任务(当使用时)和中断。还需要进行一种特殊的诊断,被称为“程序流控制”和“数据确认”。程序流检查能确保基本功能能按正确的顺序执行,数据确认使所有的关键数据在存储器里进行冗余存储,并且在使用前进行有效性测试。在软件开发过程中,一个安全PLC需要附加的软件测试技术。为了核实数据完整性检查,必须执行一系列“软件失效注入”测试,也就是人为对程序进行故意破坏,来检查PLC的响应是否运行在预计的安全方式。软件的设计和测试带有详细的文件资料,这样第三方的检查员就能够明白PLC的运行原理,而多数软件开发没有使用这种规范的操作流程,这也正好说明为什么众多的垃圾软件会出现那么多的臭虫而无法发现了。


二、举例


下面试通过某公司的一款安全PLC,来更具体地说明安全PLC与常规PLC的区别。


2.1安全PLC与常规PLC的CPU的差别


常规PLC内部CPU的数量有一个或多个,它或它们的作用是:执行用户的程序、进行I/O的扫描和系统的诊断。但用户的程序通常就进行一次处理,多个CPU的功能是把程序中的逻辑运算、算数运算、通信功能等分担实现,也就是协作处理。


而安全PLC的CPU至少有两个或多个,两个CPU的功能是:分别对同一个用户程序各自执行一次,然后再把两个结果放在一起进行比较,如果比较的结果是一致的,就输出这个结果,如果是不一致的,选择安全的结果输出。由此看出,这才是安全PLC与常规PLC最大的不同:冗余+比较。


2.2安全PLC内部CPU的结构


安全PLC包含2个处理器,每个处理器在自己的存储器区中,执行它们自己的安全逻辑,然后在每个周期的结尾和对方的结果进行比较,每个处理器有它自己独立的停机通道,如果检测到结果的不同或有失效成分,它能够实现系统停机,切到安全状态。这种双处理结构被称为内部的二选一结构。


下图表示了这种安全PLC的内部结构:










安全PLC通常都有两个处理器,同时进行解码和执行。这种差异性提供了失效检测的下列优点:
◎两个可执行码独自生成,编译的差异性使得在代码生成时,容易检测系统失效。
◎两个生成码由不同的处理器执行,因此,CPU能够在代码执行时,检测出系统失效和PLC的随机失效。
◎两个独立的存储器区用于两个处理器,因此,CPU能够检测出RAM的随机失效,而这在每个扫描周期的全部RAM检查时测不出来。


这里我们接着引出安全PLC与常规PLC第二个最大的不同:随时+步步进行诊断和检测。这种检测有的是通过自身信息进行的,称为自检;还有的通过对方的信息进行检测,称为互检。后面我们还会提到更多的检测。


2.3安全PLCCPU中的检测


时钟测量:在处理器电路中,有两个不同的振荡器交叉检查它们的行为,每个处理器使用一个时钟检查另外一个是否运行。如果在一个确定的周期里,检测到对方没有运行,CPU就会进入安全状态。固件每秒钟会检查两个振荡器的精度。


监视时钟:一个硬件和一个固件的监视时钟检查PLC的活动和执行用户逻辑的执行时间。这和常规的PLC系统是相同的。


序列检查:序列检查监视CPU操作系统不同部分的执行。


存储器检查:所有静态存储器区,包括Flash存储器和RAM,使用循环冗余码(CRC)进行检测,并且双码执行。动态存储器区由双码执行保护,周期性进行检测。在冷启动时,这些检测重新进行初始化。


从上面的分析可以看出,安全PLC的诊断和检测比常规的PLC的检测要多很多,所以相对来说,硬件和软件的设计更复杂。当然,检测和诊断的范围也更广范,更细致。


2.4安全PLCI/O诊断概述


上面我们对安全PLC的CPU的情况进行了一个简单的分析,下面我们再来看看安全输入/输出模块的情况。


所有安全I/O模块都要执行以下两个诊断功能:
◎更多的系统层面的诊断,包括了:RAM测试、ROM测试、以及
◎根据模块的类型不同,现场层面的诊断,


下面的表格列出了安全I/O模块的现场诊断情况:













还有,安全PLC要对安全CPU和安全I/O之间的通信进行诊断,比如使用CRC校验。因此,不仅要检查接收的数据是否等于发送的数据,而且要检查数据变化。为了解决扰动问题,比如EMC的影响,它可能瞬间破坏你的数据,所以你需要对每个模块,配置一个很大的连续CRC错误诊断。


上电时诊断:在上电时,I/O模块执行扩展的自检程序,如果测试出现错误,模块被认为不健康,输入输出全部置为0。


运行时的诊断:在系统运行时,I/O模块执行自检程序,输入模块检验是否能够从传感器读取整个范围的数据,输出模块对它们的开关执行脉冲测试,周期小于1ms,在数字量输入和数字量输出模块,上电自检失效和模块没有接到外部的24V电源时,模块不工作。


过压诊断:因为电子元件,从理论上说,电源电压超过了最大值时,它们不应该工作,所以I/O模块必须对来自背板的电源电压进行监视。


下表描述了对电源电压的监视:










电源监视
来自背板总线的电压,理论上的最大值为18.5V。有两个过压检测器,每个处理器系统有一个。每个监测器能够处理可能出现的过压,用断开电源开关和触发复位块的方法。复位块用于管理电源的接通和断开,并且停止两个处理器运行。如果背板电源电压还在升高,限制器块会对电子元件提供保护。
在现场侧的电源信息,由直流-到-直流的转换器生成。有两个过压和欠压监测器,每个处理器系统有一个。如果两个隔离的直流-到-直流转换器生成一个电源到现场侧电子元件的失效信号,监测器通过隔离器发送失效信号至处理器。

在运行时,当一个现场的输入电源电压达到60V。有2个过压和欠压监测器,每个处理器系统提供1个,以同样方式监视直流-到-直流转换器。一旦失效,监测器会发出失效信号,对用户逻辑的状态位设置,警告系统可能出现了输入不一致。





2.5安全PLC的安全模拟量输入模块


接地断线检测:安全模拟量输入模块具有监视接地失效(漏电流)的功能。外接线一端通常要连接到中性地,在接地端子与中性地之间可以接入一个分流电阻(比如250欧姆),那么模拟量输入的漏电流就可以通过这个电阻上的电压,检测出来。











内部诊断:现场侧包括了8个隔离独立的输入通道,每个输入具有2个相同的电路构成,每个电路的微处理器通过驱动它的模拟量-数字量转换器、再经过隔离器得到输入值。另外,当进行诊断时,微处理器还驱动它的数字量-模拟量转换器并且把它置成高阻抗(非干涉)或者低阻抗,强迫做为模拟量-数字量转换器的输入。


模拟量输入模块执行:
◎短期间的自检。使用常规的、周期的差异值检测,判断内部是否失效。
◎长期间的自检。使用每个通道的健康状态来核实内部是否失效。


现场电源监督:没有电源监督,这个功能由模拟量-数字量转换器检测期间,对模拟量-数字量转换器和数字量-模拟量转换器提供的根据它们电源电压的值来实现。