海川化工论坛-800F系统IO软冗余 联系客服

发布时间 : 星期日 文章海川化工论坛-800F系统IO软冗余更新完毕开始阅读

二、 AO810(TU810)接4-20mA输出信号的IO软冗余 1. 硬件线路

对于4-20mA输出的电流信号,当互为冗余的2个通道都正常时,每个通道各输出50%

的电流,其中一个通道发生故障,则由另外一个正常的通道承担100%的电流输出。为了防止通道间的电流反灌,在每个通道的输出端接一个单向导通的二级管。如下图所示:

24V+ 24V-

4-20mA 模件1

4-20mA 模件2

图4. 4-20mA输出信号软冗余IO接线图

2. 硬件结构组态

在CBF中插入AO810模件(可以在同一个I/O站,也可以在不同的I/O站),为了在0%时两个AO通道各输出2mA,需要设置冗余通道的信号类型为0-20mA:

拆分IO通道并连接变量,AO810的输出数据有16个字节,代表8个通道的过程数据(每个通道占2个字节),输入数据有一个字节Byte0,为通道状态,有8个标志位,分别代表8个模拟量输出通道的状态,正常情况下为“0”,故障状态下为“1”。

AO通道值I/O编辑

AO通道状态字节I/O编辑

3. 自定义AO软冗余功能块

插入一个用户自定义功能块类,命名为AOR,定义功能块的输入输出引脚: 名称 ST1 ST2 IN AO AO1 AO2 EC 数据类型 BOOL BOOL REAL REAL INT INT INT 存储类型 VAR_IN VAR_IN VAR_IN VAR_DPS VAR_OUT VAR_OUT VAR_OUT 说明 模件1的IO通道状态 模件2的IO通道状态 模拟量输出值0-100% 模拟量输出转换值5659.0-28480.0 模件1的IO通道输出值 模件2的IO通道输出值 故障代码(0-无故障,1-模件1通道故障,2-模件2通道故障,3-两个模件通道均有故障) 编写自定义功能开程序代码:

程序中用到一个量程转换功能块,将0-100%的信号转换到5659.0-28480.0,对应于AO

模件通道输出4-20mA(AO通道在硬件结构中设置信号类型为0-20mA)。

当互为冗余的2个模件都正常时,ST1=0,ST2=0,两个模件的IO通道AO1和AO2各

输出过程变量的50%,如果其中一个模件出现故障(ST1或ST2为1),则出现故障的模件通道输出为对应1mA的值,另一个正常模件的通道输出为过程变量的100%。如下表所示:

通道1状态 ST1 0 1 0 1 通道2状态 ST2 0 0 1 1 通道1输出 AO1 50% 1mA 100% 1mA 通道2输出 AO2 50% 100% 1mA 1mA 故障代码 EC 1 2 3 4 4. AO软冗余用户程序 在前面插入的用户任务下调用AO冗余自定义功能块,编写AO软冗余的FBD程序。

先用两个解包Byte到Bool的二进制数据转换功能块(UPBYBO)将两个模块的状态字节

拆成每个通道的状态位,再调用自定义功能块(AOR),连接模拟量输出过程变量AOR1_IN和互为冗余的两个AO通道的变量AO1_CH1,AO2_CH1以及相应的状态标志位AO1_ST1,AO2_ST1。

5. AO软冗余测试

将冗余的AO输出信号接入一个4-20mA的AI模件通道,在DigiVis上组态一个趋势曲线显示,当拆下一个AO模件和重新装上后的曲线显示如下图所示:

拆一个AO

恢复拆下的AO

从上图可以看出,当拆下一个AO时,曲线缓慢下降,最大降幅约3%,从开始下降到重新恢复到原始输出,所用时间约2s。当恢复拆下的AO后,曲线缓慢上升,最大升幅约3%,从开始上升到重新恢复到原始输出,所用时间也是2s左右。