一、 Genius模块化冗余(GMR)系统的启动
- 当PLC初始化时,GMR软件自动阻止应用程序运行直至初始化完成。它同时禁用PLC向Genius输出模块输出。如果禁用输出功能未能成功完成,GMR软件会设置“GMR系统初始化错误”标签,同时GMR软件让PLC处于停止模式。
- 每个PLC有自己的身份辨识,PLC A,PLC B。对于每个PLC,包含于GMR软件组态的总线控制器须有同样的总线地址:30,31。每个PLC检查自身的GMR组态确保上述(总线地址设置)已完成。如果完成了,PLC A设定为所有的总线控制器地址为31,PLC B设定为所有的总线控制器地址为30.如果PLC检测到控制器地址设置错误,它会在PLC错误表上加入不合法的公共地址,同时停止PLC运行。
- 在初始化过程中,每个PLC和GMR I/O模块及其他PLC中的总线控制器通信,如果通信过程有任何失败,GMR软件自动设置状态量%M12234为ON,这个中间变量强调在启动过程中系统是否失败。
- 当每个PLC启动时,它首先检测是否有其他PLC正在线上运行且输出指令。线上运行表示其他PLC正在运行它内部的应用(控制)程序,同时该PLC的输出功能是激活的。如果已经有PLC正在运行,初始化的PLC读取该PLC的初始化数据(%M和%R),并将所读数据存放于一个可组态的寄存器内存上。读取上述数据可能需要花费数个CPU扫描周期。数据以每次最高64个字(每字两字节)传送,为减少总体时间,数据通过多个BUS分开传递,故这个总体时间的长短取决于数据的长度和可用的控制总线数量。
- 每个PLC将它的初始GMR组态校验总数与其他的PLC数据对比,如果它们不一致,PLC停止。如果成功初始化后,当应用程序运行时,PLC会持续对比该PLC所含的程序校验总数与初始的程序校验总数,如果它们不匹配,PLC会按照组态决定是否停止运行或者保持运行。
- 如果已经有一个PLC在线上,初始化的PLC会同步PLC的初始化数据(%M和%R),每个PLC仅读取一次数据。如果在线的PLC的数据在初始化的PLC读取对应数据后发生变化,相关的改变不会被提示。为了减少连续改变的数据比如计时器和计数器间的差别,这些数据应该被存放到已组态的%R内存区域的最顶部区域。这样该部分%R初始化数据被最后复制。
- 当PLC完成了数据的初始化,GMR软件清除禁用状态标签(%M12231)(置零),PLC开始执行应用程序。
- 当连续控制标签被用户的应用程序设置,PLC开始从应用程序向Genius模块发送输出数据。
- 如果第八步中的输出与Genius模块当前的输出状态一致,该输出被这些模块采纳。如果一个模块判定有个PLC的输出与block的当前输出不一致,输出模块在输出策略中不使用该不一致数据。模块继续忽略该不一致输出直至它们满足模块表决输出或者通过设置强制登陆命令(%M12263)输出。
总之,启动需要多个PLC扫描周期的时间完成。必须在所有的初始化被成功启动后饮用程序才执行。
二、GMR启动阶段激活输出
当%M12257被设置为1,每个PLC开始发送输出数据。当第一个PLC开始发送数据,它的输出与每个输出已经组态的默认状态对比。当每个PLC(PLCA、B)开始发送输出,在每个输出模块组中它的输出与已经被表决的输出状态进行对比。
如果PLC输出的状态与任何输出模块原有数据不一致,状态量%M12240(LOGONFT)被设为1。输出模块会忽略新的输出数据直至以下两个条件之一被满足:
1 表决的输出状态与所有的输出模块中的状态一致;
2 应用程序被设置为“Force PLC Logon(强制PLC登录)”
三、GMR PLCs系统间的通信
在Genius总线上全局变量会按一定规则自动广播,这使得GMR系统中不同的PLC间可靠的交换信息。GMR系统软件使用Genius全局变量在PLC间交换信息。应用程序同样能够通过全局变量将一个GMR型PLC中的数据传递至另一个PLC。
在90-70系列的Genius系统中,全局变量是指通过PLC总线控制器每隔一总线扫描周期自动广播一次的数据。全局变量消息由两部分组成,第一部分为8个字(word)的%R寄存器数据。全局变量消息最长可以达到64个字,即56个额外的字可以被压缩机控制应用程序使用。消息可是是一个GMR型PLC想与其它PLC共享的任何数据。例如,PLC想发送一个非GMR设备的、当前时间给其他PLC。
3.1 发送和接受应用程序中的全局变量
GMR PLC使用Genius全局变量内存(%G,%GA,%GB)用于应用全局变量。为了发送数据到其他PLC,在每个PLC中的应用程序必须将数据存放于%G0001到%G0896的地址中。
每个GMR型PLC自动读取应用程序的Genius全局数据,该数据从它的%G内存变换出来复制到它的%R内存。然后,每个Genius总线的扫描周期,PLC广播系统全局数据及应用全局数据到两个公共总线bus a和bus b。使用两条总线提供冗余以防一条总线或总线控制器不可得,如果一个PLC与其他PLC在两条总线上都失去通信,则该PLC的全局数据保持在最后的状态。GMR软件会在PLC错误表上显示通信失去连接。
- 输入数据处理
在输入扫描中,已经被GMR组态成被表决的离散输入量被放置在标签为A、B、C的区域。其他离散模块(那些被声明为非表决或者处于非GMR总线上的)获得的数据被放置在标签为非表决输入区域。通过GMR输入表决逻辑获得的表决结果放置在离散输入表的顶部,标签为Voted Inputs。最后,被用于禁止输出故障诊断的通断值被放置在标签为Reserved inputs区域。
离散表决:
三个离散通道输入:三选二机制。出现通道异常情况下,引入两个状态量,如果只有两个好的输入通道可用,双冗余状态量(duplex state)被使用,如果只有一个输入通道可用,则引入默认状态。如果三通道中有一个通道失效,则GMR软件使用组态中的已设定的双重表决值来替代第三个实际输入,再进行三选二;如果三通道中有两个通道失效,表决不进行,是第三个通道的值还是默认的状态被选用,取决于GMR软件中为输入组组态好的表决适应模式。具体为采用3-2-1-0表决模式时,GMR软件采用1选1模式,即提供给应用程序的输入量为第三个通道的值。采用3-2-0表决方式,则选用默认量为该输入应用程序使用值。
两个离散通道输入:在两通道输入组,GMR软件使用该组组态双冗状态作为第三个输入,再进行三选二表决。如果一个通道失效,则表决不进行,是激活通道的值还是默认的状态被选用,取决于GMR软件中为输入组组态好的表决适应模式。具体为采用3-2-1-0表决模式时,选激活通道值,采用3-2-0表决方式,则选用默认量。
单个离散通道输入:对于一个非表决的输入组,实际输入可直接提供给应用程序使用。对于一个有表决的输入组,表决模式应设置为3-2-1-0.
Block 1
NO. | Tag name | Description | Slot | Channel | Address | safety barrier | Terminal Block |
1 | XS-126 | COMMON TRIP FROM ESD SYSTEM | B1 | 1 | I2049 | SD80 | TB17/35,36 |
2 | SPARE |
| B1 | 2 | I2050 | SD81 | TB11/115,116 |
3 | HS-003 | EMERGENCY SHUNDOWN | B1 | 3 | I2051 | SD82 | TB10/13,14 |
4 | XSHH-101A | MACHINE COMMON RADIAL VIBRATION TRIP | B1 | 4 | I2052 |
| FROM BN |
5 | ZSHH-102 | MACHINE COMMON RADIAL VIBRATION TRIP | B1 | 5 | I2053 |
| FROM BN |
6 | SPARE | SPARE CONTACT1 BN | B1 | 6 | I2054 |
| FROM BN |
7 | SPARE | SPARE CONTACT1 BN | B1 | 7 | I2055 |
| TB26/3,4 |
8 | SPARE | SPARE CONTACT1 BN | B1 | 8 | I2056 |
| SD37/5-4,5 |
9 | SPARE | SPARE CONTACT1 BN | B1 | 9 | I2057 |
| SD38/5-4,5 |
10 | PB1 | HORN SILENCE | B1 | 10 | I2058 |
| BUTTON |
11 | HS-003 | EMERGENCY SHUNDOWN | B1 | 11 | I2059 |
| BUTTON |
12 | SPARE |
| B1 | 12 | I2060 | SD83 | TB10/55,56 |
13 | SPARE |
| B1 | 13 | I2061 | SD84 | TB11/117,118 |
14 | SPARE |
| B1 | 14 | I2062 | SD85 | TB11/119,120 |
15 | HS-002 | COMPRESSOR STOP | B1 | 15 | I2063 | SD86 | TB10/9,10 |
16 | SPARE |
| B1 | 16 | I2064 | SD87 | TB10/54,55 |
Block2
NO. | Tag name | Description | Slot | Channel | Address | safety barrier | Terminal Block |
17 | XS-137 | TIME SYNCRONIZATION | B2 | 1 | I2065 | SD88 | TB17/23,24 |
18 | SPARE |
| B2 | 2 | I2066 | SD89 | TB22/49,50 |
19 | XS-157 | FAULT CONVERTER | B2 | 3 | I2067 | SD90 | TB17/27,28 |
20 | XS-136 | PURGE REQUEST | B2 | 4 | I2068 | SD91 | TB17/21,22 |
21 | SPARE |
| B2 | 5 | I2069 | SD92 | TB17/29,30 |
22 |
| ALARM PRESSURIZED CONTACT | B2 | 6 | I2070 | SD93 | TB11/101,102 |
23 |
| INTERMEDIATE PRESSURE CONTACT | B2 | 7 | I2071 | SD94 | TB11/104,105 |
24 |
| MOTOR INTERLOCK CONTACT | B2 | 8 | I2072 | SD95 | TB11/107,108 |
25 |
| MANUAL OVERRIDE | B2 | 9 | I2073 | SD96 | TB11/111,112 |
26 | ZSL-205 |
| B2 | 10 | I2074 | SD97 | TB22/9,10 |
27 | ZSL-206 |
| B2 | 11 | I2075 | SD98 | TB22/11,12 |
28 | ZSL-207 |
| B2 | 12 | I2076 | SD99 | TB22/13,14 |
29 | SPARE |
| B2 | 13 | I2077 | SD100 | TB11/121,122 |
30 | SPARE |
| B2 | 14 | I2078 | SD101 | TB11/123,124 |
31 | SPARE |
| B2 | 15 | I2079 |
| TB17/31,32 |
32 | SPARE |
| B2 | 16 | I2080 |
|
|
模拟量的输入表决(潜江为Block5、6、7)方式与上述离散数字量类似,不同之处是三选二选取的是中间值,异常情况下,双冗余状态量为最低值、最高值或平均值,默认状态为保持最后值,最小值或最高值。不再赘述.
Input Block:Block5、6、7
NO. | Tag name | Description | Slot | Channel | Address | safety barrier | Terminal Block |
1 | PIT-160 | PCL503 COMPRESSOR PRIMARY VENT PRESSURE | B5 | 1 | AI1025 | SD103 | TB05/15,16 |
2 | PIT-161 | PCL503 COMPRESSOR PRIMARY VENT PRESSURE | B5 | 2 | AI1026 | SD104 | TB05/17,18 |
3 | PIT-162 | PCL503 COMPRESSOR PRIMARY VENT PRESSURE | B5 | 3 | AI1027 | SD105 | TB05/19,20 |
4 | PIT-163 | PCL503 COMPRESSOR PRIMARY VENT PRESSURE | B5 | 4 | AI1028 | SD106 | TB05/21,22 |
5 | PIT-164 | PCL503 COMPRESSOR PRIMARY VENT PRESSURE | B5 | 5 | AI1029 | SD107 | TB05/13,14 |
6 | PIT-165 | PCL503 COMPRESSOR PRIMARY VENT PRESSURE | B5 | 6 | AI1030 | SD108 | TB05/25,26 |
7 | PIT-354 | LUBE OIL HEADER PRESSOR | B6 | 1 | AI1031 | SD109 | TB06/3,4 |
8 | PIT-355 | LUBE OIL HEADER PRESSOR | B6 | 2 | AI1032 | SD110 | TB06/5,6 |
9 | PIT-356 | LUBE OIL HEADER PRESSOR | B6 | 3 | AI1033 | SD111 | TB06/7,8 |
10 | PIT-255 | PCL503 COMPRESSOR AIR INLET PRESSURE | B6 | 4 | AI1034 | SD112 | TB05/27,28 |
11 | PIT-256 | PCL503 COMPRESSOR AIR INLET PRESSURE | B6 | 5 | AI1035 | SD113 | TB05/29,30 |
12 | PIT-257 | PCL503 COMPRESSOR AIR INLET PRESSURE | B6 | 6 | AI1036 | SD114 | TB05/31,32 |
13 | PDIT-201 |
| B7 | 1 | AI1037 | SD62 |
|
从上表可看出,压缩机驱动端、非驱动端主泄漏压力、润滑油油头和干气密封隔离气压力模拟量冗余特点为:传感器三倍冗余,GMR输入Block单倍冗余,PLC双重冗余,在GMR程序内进行三选二表决,严格意义上输入Block需要三倍冗余,整个系统的冗余程度才能达到严格意义上的3级安全完整性等级(SIL)。
五、离散输出数据处理
对于离散输出量,GMR系统软件不起冗余表决作用,而在相应的模块进行表决。Genius模拟量输出模块不支持冗余表决。和输入类似,GMR软件在output表中使用独立的区域存储非表决输出、表决输出和表决输出的拷贝。对双冗余ESD PLC系统,当离散输出都为1时,block选取自身已设置的双冗状态为第三个输出,3选2进行表决(见下图)。Block3&4所有通道双冗状态皆为OFF(0)状态,默认状态同样为0。常见的离散输出故障有:无负载、短路、过载、过热、开关失效。需要特别之处的,当任一PLC输出为0,都会导致模块输出为0,继而触发ESD泄压跳车联锁。
双PLC在线,双冗余状态为0时模块表决输出逻辑示意图
单PLC在线模块表决输出逻辑示意图
I-Block Output Group: Block3&Block4
NO. | Tag name | Description | Slot | Channel | Address | safety barrier | Slot | Channel | Address | Terminal Block |
1 | SPARE |
| B3 | 1 | Q1 | KA65 | B4 | 1 | Q1 |
|
2 |
| SAFETY RELAY RESET | B3 | 2 | Q2 | KA66 | B4 | 2 | Q2 |
|
3 |
| COMMON TRIP | B3 | 3 | Q3 | KA67 | B4 | 3 | Q3 |
|
4 |
| COMMON TRIP | B3 | 4 | Q4 | KA68 | B4 | 4 | Q4 |
|
5 | XS-172 | MOTOR INTERLOCK CONTACT | B3 | 5 | Q5 | KA69 | B4 | 5 | Q5 | TB22/115,116 |
6 | SPARE |
| B3 | 6 | Q6 | KA70 | B4 | 6 | Q6 | TB07/5,6 |
7 | SPARE |
| B3 | 7 | Q7 | KA71 | B4 | 7 | Q7 | TB07/7,8 |
8 | XS-131 | TRIP WITH VENT | B3 | 8 | Q8 | KA72 | B4 | 8 | Q8 | TB17/19,20 |
9 | XS-128 | COMMON TRIP | B3 | 9 | Q9 | KA73 | B4 | 9 | Q9 | TB17/5,6 |
10 | SPARE |
| B3 | 10 | Q10 | KA74 | B4 | 10 | Q10 | TB07/9,10 |
11 | SPARE |
| B3 | 11 | Q11 | KA75 | B4 | 11 | Q11 | TB07/11,12 |
12 | SPARE |
| B3 | 12 | Q12 | KA76 | B4 | 12 | Q12 | TB07/13,14 |
13 | XS-202 | PRESSURIZED ESD TO CONTROL PLC | B3 | 13 | Q13 | KA77 | B4 | 13 | Q13 | TB10/50,51 |
14 | XS-203 | DEPRESSURIZED ESD TO CONTROL PLC | B3 | 14 | Q14 | KA78 | B4 | 14 | Q14 | TB10/57,58 |
15 | SPARE |
| B3 | 15 | Q15 | KA79 | B4 | 15 | Q15 |
|
16 | HS-003 | LAMP TO CONTROL SYSTEM | B3 | 16 | Q16 | KA80 | B4 | 16 | Q16 |
|
当压缩机控制应用程序执行后,GMR软件处理离散输出数据的方式如下:
- 应用程序将输出存储至离散输出表。在GMR组态中被包含的模块数据被放置在表的顶部。应用程序输出给冗余模块的数据被标签为逻辑输出(logic outputs),这些数据之后放置的是非表决输出数据。
- GMR软件复制这些逻辑输出并将其放置到输出表的底部。这些数据,被称为物理输出(physical outputs),作为被输出模块接收的输出数据一部分。
- 在一个CPU扫描周期内对输出扫描过程中,CPU发送非表决数据和物理输出到Genius模块。
六、GMR系统中的PLC和I/O故障表
GMR系统中的PLC和I/O故障表工作模式和非GMR系统一致。错误能够在编程软件中在线或监视状态中被显示。
清除一个GMR系统中故障列表的方法如下,
清除单个PLC的故障列表:在至少一个PLC扫描周期内将参考变量%M12259设为1。
清除所有PLC的故障列表:在任何单个PLC中以至少一个PLC扫描周期的时间将%M12264设为1。
清除所有PLC中I/O和对应的故障触点的故障列表:在任何单个PLC中以至少一个PLC扫描周期的时间将%M12258设为1。