基于国产PLC 的分布式I/O 冗余方法研究*

2021-04-24 11:36刘雪飞苏师师韩庆敏吴云峰
电子技术应用 2021年4期
关键词:断线组态分布式

刘雪飞 ,苏师师 ,蒯 亮 ,韩庆敏 ,王 帅 ,吴云峰

(1.中国电子信息产业集团有限公司第六研究所,北京 102209;2.中软信息系统工程有限公司,北京 102209)

0 引言

可编程逻辑控制器(Programmable Logic Controller,PLC)与分布式I/O 协同工作[1],广泛应用于石油、高铁、电力等工业环境下的自动化控制系统中[2]。国产超御PLC 分布式I/O(EtherCAT 从站)负责在现场准备编码器和执行器数据,使得数据可以通过EtherCAT 总线发送至控制CPU。恶劣的环境、系统本身的干扰扰造成采集环节出现问题[3],即使CPU 进行何种冗余方式[4],此时都无济于事,结果导致系统部分功能失效或引发控制系统故障等事故。目前提高可靠性的方案主要是通过CPU、核心设备双备份冗余技术[5-6];应用硬件、软件抗干扰措施[7],定期进行检测和维护;或者根据信号类型的不同选取“与”或“或”这种比较简单的I/O 冗余模块间的冗余策略确保PLC 控制系统安全可靠地运行[8-10]。上述冗余机制简单,但安全系数不高;模块间I/O 冗余,当某一通道级故障发生时,整个模块采集数据不可信任,造成硬件资源的浪费;数据自身的不准确、采集模块的故障都将影响冗余机制本身的可靠性。

针对该情况,本文对控制系统基本结构充分了解熟悉、对主要硬件故障现象认真分析后[11-12],综合运用各种故障处理方法,对冗余理论分析提出了基于国产PLC的分布式I/O 冗余方法,通过提高现场数据的准确性,进而提高控制系统的健壮性,保障自动化系统运行通畅。

1 冗余技术理论分析

可靠度是指系统无故障正常工作状态的概率R(t),它是规定时间t 的函数。F(t)表示失效分布函数,则有[13]:

故障率λ(t)与可靠度之间的基本关系为:

其中,f(t)为失效密度函数。

电子产品及控制设备的失效分布大致服从参数为λ的指数分布。并联的主备冗余系统平均故障时间MTBF为:

式(3)表明冗余度越高,可靠性相应越高,同时对硬件资源需求也越大。

3 选2 表决冗余系统平均故障时间MTBF:

由式(3)和式(4),结合经济实用性综合考虑,本文选择主备冗余方案。

2 分布式I/O 冗余方案

分布式I/O 冗余依据故障自诊断,是基于通道级冗余的方式,即模块上出现通道级故障后,只会钝化该通道,其他通道工作正常;模块上出现模块级故障后,钝化整个模块,所有通道停止工作。

2.1 冗余技术

根据冗余通道对是否在同一模块分为图1 所示的模块间通道冗余、图2 所示的模块内不同通道冗余。

图1 模块间通道冗余架构

图2 模块内通道冗余架构

不同模块间通道冗余,相同通道序号才可构成冗余通道对,例如,I/OA_0 与I/OB_0 构成冗余通道对,I/OA_1与I/OB_1 构成冗余通道对,依次类推。

同一模块内可配置任意两通道构成冗余通道对,例如,I/OA_0 与I/OA_9 构成冗余通道对。

2.2 故障检测技术

输人单元常见的故障就是输电线路的信号输人与外部开关的信号不匹配,容易出现混乱的情况、特定点信号时有时无等[14],表现为输出信号时有时无、特定点信号不稳定以及PLC 输出信号与外接设备工作不统一。可发现,故障的发生是不可预见的,但是可以防御或在故障发生时提供解决方案。

为了降低故障影响,冗余技术必须包含高精确的故障在线检测技术,发现故障、定位故障、隔离故障并能有效进行故障报警。常见的系统故障查找方法有:直接检查法(简易故障诊断法)、折半查找法、对比替换法、逻辑分析法、仪器专项检测法、智能诊断法等[15]。下文介绍了本文国产化I/O 从站采用的故障检测技术。

2.2.1 断线诊断

每个通道都有一个特定的GPI/O 管脚来监测是否发生了断线,断线诊断模块通过读取GPI/O 采集值来判断是否发生了断线。

首先判断某通道的断线诊断功能是否已经使能,如果使能则接下来根据特定GPI/O 管脚的值判断是否发生了断线故障,如果发生了故障则发送紧急报文将通道号和故障状态告知主站;然后如果该通道是从断线故障中恢复成正常状态,则也发送紧急报文将故障恢复告知主站。断线诊断流程如图3 所示。

图3 断线诊断流程图

断线检测电路包括滤波单元、电压比较单元和报警单元,其中,电压比较单元包括:电压比较器、第一电阻、第二电阻、第三电阻、第一电容。滤波单元与分布式I/O模块的通道连接,滤波单元用于将分布式I/O 模块的通道在发生断线故障或未发生断线故障时产生的不同电压信号发送至电压比较器的异相输入端,该电压比较器根据该电压信号判断分布式I/O 模块的通道是否发生故障,并在发生故障时输出一启动信号至报警单元,以使该报警单元执行相应的报警动作。断线监测电路如图4 所示。

图4 断线检测电路

2.2.2 信号变化监测及上报

在获取了采集值后,通过监测输入信号的变化来判断是否发生了信号上升沿或下降沿。如果上一次采集值为0,本次采集值为1,则发生了上升沿变化;如果上一次采集值为1,本次采集值为0,则发生了下降沿变化。

首先判断系统状态是否处于SafeOP 态或OP 态,如果是则接下来需要判断通道的上升沿/下降沿监测功能是否已使能,如果使能就可以开始判断是否发生了上升沿/下降沿,如果发生则发送紧急报文将监测到信号变化的通道号告知主站。

2.2.3 输出回采诊断

通过回采特定的GPI/O 管脚值并与输出指令值进行比较,即采用标准信号来检测是否正常。

首先判断某通道的输出回采诊断功能是否已经使能,如果使能则接下来通过比较指令值和回采值判断通道是否发生输出异常故障,如果发生了故障则发送紧急报文将通道号和故障状态告知主站;如果该通道是从输出异常故障中恢复成正常状态,则也发送紧急报文将故障恢复告知主站。

2.3 分布式I/O 冗余

用户在上位机组态时,根据实际应用将所组态冗余通道对配置,生成配置文件。配置文件中包含了冗余通道对信息、冗余策略。

I/O 冗余机制的执行在PLC 控制器中进行。PLC 系统的I/O 冗余管理软件采集EtherCAT 主站刷新的I/O信号、现场诊断数据,然后结合用户组态的冗余策略实现分布式I/O 冗余机制。I/O 冗余流程如图5 所示。

图5 I/O 冗余流程

2.3.1 数字量输入模块

数字量输入模块冗余策略,超出预设差异时间,冗余通道对仍存在差异,此时,有效值(用户组态值)的产生策略主要有3 种:或操作(or)、与操作(and)以及最近有效值(last valid value),即用户组态值会有3 种。数字量输入模块有效值产生有如下4 种情况:

(1)冗余通道对输入值相同(无差异),有效值即为通道的采集值。

(2)冗余通道对输入值首次存在差异,将被标记并开始差异计时。在差异时间期间,最近的匹配值(非差异值)为有效值。该步骤将重复直到在差异时间内数值再次匹配或超出差异时间。

(3)差异时间到后,通道不会立即被钝化。在信号跳变前,根据用户组态值输出冗余结果。如果输入数值中仍然存在差异,则需要执行冗余策略,同时产生一个错误,将错误报告上去。差异分析时仍需要检测数字量输入模块的“持续1”和“持续0”错误。持续1 错误表示输入上持续为数值1,持续0 错误表示输入持续为0。例如,这可能引起L+或M 短路。

(4)信号跳变后,钝化信号未跳变的模块,即刻起有效值恒为未被钝化通道的采集值。

2.3.2 模拟量输入模块

计算容差阈值,组态为测量范围最终数值的百分比,如果两个模拟值都在容差阈值内,则视它们相等。允许两个通道出现差异的最大阈值,即相对偏差,取值范围为0~20%。AI 通道值的相对偏差为两个通道差值除以通道量程。

有效值的产生策略,对于模拟量,可选择的冗余策略主要有两种:二者之间的较大值、二者之间的较小值。即用户组态值为lower value、higher value。

有效值是指两个模拟量输入数值中最终输入到用户程序中被应用的数值。有效值的产生有如下3 种情况:

(1)系统将检查这两个模拟值是否在组态的容差阈值内。冗余通道对输入值差异在容差阈值之内,有效值根据冗余策略选择二者之间的较大值或较小值。

(2)冗余通道对输入值出现差异(相对偏差超过容差阈值)且未达到预设差异时间,有效值为开始出现差异时刻,根据冗余策略选取的输入值,该有效值一直保持到差异达到最大差异时间。

(3)如果在预设差异时间内的出现下面两种特殊情况,将做对应处理:如果在差异时间内差异被中止,系统将重新开始分析冗余输入信号;在差异时间内,如果出现两路信号反转并且继续超过阈值,则重新进入新的差异时间计时,且当前超过容差阈值这一刻的采样值按照用户配置/组态选择(lower or higher)选取有效值为“最近有效值”,该“最近有效值”一直保持到差异时间到或者小于容差阈值,或者再次出现反转且继续超阈值的情况。

差异时间内出现反转情况如图6 所示。

图6 差异时间内出现反转情况

最近的有效值指:当超过容差阈值时,以差异时间开始计时那一刻的采样,按照用户配置/组态选择(lower or higher),选取的有效值为最近有效值(the most recent valid value)。

冗余通道对差异时间达到预设差异时间,未被选为有效值的模块将会被钝化掉,即超过设定差异时间后,如果还有输入数值的差异说明有通道出现故障,将有一个通道会被钝化掉。此后,有效值恒为未被钝化的模块的输入值。如果两个通道中的最大值被组态为标准值,该数值将被用于进一步程序执行,其他通道被钝化。如果设定了最小值,该模块将最小值用于过程而具有最大值的通道被钝化。

2.3.3 数字量输出模块

通过并联两个数字量输出(2 选1 组态),可以实现执行器的冗余控制。

同一模块DO,任意两个通道可组成冗余通道对。不同模块之间,同一通道号可组成冗余通道对。组成通道级冗余时,通道故障状态与工作状态的关系见表1。

表1 单个DO 模块的通道冗余工作状态

相同的DO 模块才能组成冗余对,不同型号的DO模块不能组成冗余对,不同版本的DO 模块不能组成冗余对。

2.3.4 模拟量输出模块

只有电流输出型模拟量输出模块可以进行冗余操作,量程为4~20 mA。

冗余通道对都正常工作时,两个通道各输出一半值。如果其中一个通道出现故障,则故障会被检测出来,另一个通道就会输出完整的值。这样,因错误而在输出模块上引起的电涌不会太高。当两个通道都钝化时,两个通道各输出一半值。

通道故障与其工作状态见表2。

表2 单个AO 模块通道冗余工作状态

相同的AO 模块才能组成冗余对,不同型号的AO模块不能组成冗余对,不同版本的AO 模块不能组成冗余对。

3 软件配置

3.1 I/O 冗余总体设置

通过自主研发的PLC 编程工具SC-ProSys,对构成I/O 模块冗余对的每个通道单独设置冗余条件以及冗余策略等配置信息,编译时将配置信息写入配置文件,在线下装给控制器,控制器根据用户I/O 冗余配置信息,对相关冗余通道的数据刷新执行相应的冗余操作。

用户可选择通道冗余是否使能。

图7 冗余参数配置

3.2 通道冗余参数配置

以自主研制AI 模块进行实验,冗余参数的配置是指配置好模块对之后,配置冗余结果变量、差分时间等参数。

勾选通道00 的冗余使能;在硬件配置中双击第一个槽位的AI(NT3009)和第二个槽位的AI(NT3009),勾选通道诊断;配置冗余结果变量。在AI 模块所属任务1 中创建一个任务变量p1,p1 数据类型与AI 模块通道类型匹配,在冗余界面中配置有效值变量;配置差异时间,范围为任务周期~30 000 ms,修改差异时间为200;配置容差阈值,范围为0~20%,修改容差阈值为20;配置差异反应,选项包括:高值/低值,选择高值;冗余配置完成,点击编译,提示编译通过。参数配置如图7 所示。

4 结论

本文简单介绍了冗余的基本概念,重点提出了分布式I/O 冗余技术方案,并将该方案应用于国产超御PLC。通过实验验证,该方案与现有技术相比,有如下优点:集成于国产CPU 中实现,应用于国产自主I/O 从站;冗余时只需要用户配置;I/O 从站模块的接线方式与非冗余模式没有任何区别,使用户对从站模块的使用非常容易;支持通道级冗余、模块级冗余;用户根据现场实际情况选择冗余方式;考虑了采集模块硬件故障、电源故障、断线故障;可提高PLC 控制系统可靠性。相比于单纯提升数据采集模块可靠性的方式,分布式I/O 双机冗余方式可以使整个控制系统最大限度地消除异常故障的影响,将控制系统的可用性提高了一个数量级。

猜你喜欢
断线组态分布式
断线的珍珠
基于PLC及组态技术的恒温控制系统开发探讨
一起10kV开关控制回路断线故障分析及回路完善
分布式光伏热钱汹涌
基于PLC和组态的智能电动拧紧系统
分布式光伏:爆发还是徘徊
断线的风筝
PLC组态控制在水箱控制系统的应用
铸造行业三维组态软件的应用
基于DDS的分布式三维协同仿真研究