- {{item.name}}
组态安全逻辑
- 0
- 71
1. CFC全局设置
要求:除特殊要求外,安全系统的逻辑通常采用“负逻辑”,即正常生产时,安全型的开关量输入和开关量输出是1的状态,这样可以在断线、CPU断线、模板故障时能将系统切换到安全状态。本例中的F_DO输出为了仿真,故障时输出为1是为了表示F_DO动作,触发了安全联锁。
首先将PCS7切换到工厂视图,在Reactor层级下面插入“Acknowledgment”“Agitation”“FGS”“LEVEL”“Pressure”层级,在“Agitation”下面插入HS_103和SIF_Agitation两个CFC。
图3- 1 层级概览
需要设置OB块运行组数量的阈值,每个OB里运行组的数量超限后会生成警告,系统默认设置为 50,建议将该设置更改为 250。保留给用户使用的FC起始编号要设置为0,具体的DB和FC编号区间要考虑实际的需要,注意这个区间是用户手动生成的FC程序和DB块的范围,CFC编译时生成的DB和FC不会占用这个区间。
图3- 2 CFC全局设置
F 为了方便找到组态安全逻辑里用到的各种功能块,下面简单一下F Library V1.3各个分组里的功能。
图3-3 F SYSTEM 用户块分类
2. 组态搅拌器SIF回路
在项目工厂视图里打开刚插入的CFC HS_103 ,在CFC里拖入安全驱动块F_CH_DI,本例中先找到库里的S7 F System lib V1.3,找到F_User Block里的F_CH_DI驱动块,用鼠标左键将它插入到CFC SIF Agitation里,方法如下所示:
用户程序都要用F-User组里的块,F-Control blocks里的块是系统调用的。
注:每个安全模板的通道都要用一个驱动块,安全模板不支持用I8.0, Q32.0直接读写I/O。
图3-4 插入驱动块
拖入F_CH_DI后,鼠标右键点击VALUE引脚,在快捷菜单里选择“互连到地址”。
图3-5互连到IO地址
接下来,在地址列表里选择I16.0,双击这一行后系统就会自动连好地址,如下所示:
图3-6 列表里选择符号地址
接下来,组态一个最简单的逻辑,将F_CH_DI的Q输出连接到CH_DO块的输入,以实现当I16.0急停按钮=1时,F_CH_DO输出也是1,这样搅拌器的联锁解除,在按下急停后,QN=1接到Q32.0输出声光报警提示操作人员。
图3-7简单CFC安全逻辑
3.组态标准程序部分
接下来,要实现在画面上显示马达的状态,需要在CFC里调用一个马达块,由于安全程序执行的是简单、高效、直接有效的安全逻辑,而马达的启停属于DCS标准功能,因此F Library里并没有马达块,需要从PCS 7的APL库里调用。
注:这个马达块只是显示功能,因此可以用标准程序。
为了使安全程序和标准程序得到更好的隔离,建议把二者放在不同的OB里。为了实现在层级里插入CFC后能自动插入到OB34或者OB35,需要提前调整CFC的默认插入点,方法是在CFC里点击“安全顺序”按钮,在合适的位置点击鼠标右键,选择“在此之后做为插入位置”调整插入点的方法见图
如果觉得调整插入点麻烦,也可以把标准程序和安全程序都插入到默认的OB35,再手动从运行顺序里把标准程序所在的运行组挪到OB34里的方法。
图3-8 调整CFC插入点
在HS103这个CFC里依次插入MotL马达块和Intlk04联锁块,并把后者的OUT输出连接到马达的Protect保护引脚。由于马达没有运行信号反馈,本例中把Start输出接到了FbkRun引脚。
图3-9 插入标准程序
接下来,要把马达的启动命令接入到安全逻辑。由于标准程序与 F 程序使用不同的数据格式,它们之间不能直接连线,数据交换必须使用专门的转换块,这些块都在F Library里的Convert组里,如下所示:
图3-10转换块
本例中使用F_BO_FBO块把标准的BOOL量转成安全BOOL量,转换后的结果用一个F_AND4与门接到F_CH_DO的输入端“I”,完成后的CFC组态如下所示:
图3-11跨CFC之间连线
为了实现在急停按下后使马达切换到停机状态,需要将急停按钮的输入做为马达块的联锁。F_CH_DI驱动块除了Q安全输出外,还有Q_DATA引脚做为标准输出,Q_DATA不需要转换块直接连接到标准CFC块的输入引脚,连线如下所示(不同CFC之间的引脚可以直接连线):
图3-12 安全与非安全块互连
如果需要标准用户程序进一步处理来自 F 程序的数据,例如,用于在 PCS 7 OS 上监视,则必须在用户程序中互连用于 F_Fdatatype_data type 数据转换的块,以便将 F 数据类型转换为标准数据类型。
4.组态其它SIF回路
1)组态液位联锁SIF
前边已经介绍了组态一个安全逻辑的基本用法,简单重复的部分不再敖述。
先用一个F_CH_DI取来I16.1液位OK信号,后边由两个F_CH_DO输出给安全继电器或者电磁阀,当液位正常时,Q32.4和Q32.4都输出高电平。液位SIF属于紧急停车安全功能,通常采用“负逻辑”,这样做的优点在于:当断线或者模板、CPU故障后安全DO模板输出变为安全状态0,虽然这会导致安全系统误动,但是不至于使系统失去保护。
图3-13 液位联锁安全程序
接下来,在SIF_Level层级下插入CFC XV121 ,在里边插入阀门块和intlk04块,将LS_100的Q_DATA连接到联锁块的IN01。Q_DATA是C_CH_DI块的标准输出,所以可以直接相连。
图3-14液位SIF非安全组态
同样的方法插入XV131并与XV121同样的接线,这样做的目的是可以在画面上显示阀门的动作。
接下来,在液位不正常时,操作员需要收到报警信息,要把液位的信息传到上位机,由于MonDiL块的IN引脚是结构体类型,需要调用APL库里结构体转换块,另外把QBAD也接入到开关量监视块的CSF端,当通道有故障时也会生成相关的消息。
图3-15液位联锁报警组态
至此,液位的安全回路组态完毕。
2)组态压力联锁SIF
要实现压力SIF的安全功能,需要用两个F_CH_AI驱动块,并将它的V和QBAD分别接到F1OO2AI选举功能块的对应输入,F1OO2AI会根据信号状态、二者的差值来输出不同的值,本例里使用二者最大值输出,设置差值为5,如果二者的差值大于5且持续1秒钟,那么引脚DIS会等于1,去触发开阀的安全功能。关于F1OO2AI的说明,可以在CFC里点中这个块,按下F1打开它的帮助。
F_CH_AI功能能实现量程转换、旁路、钝化和去钝化、关联钝化、故障处理功能。该功能块默认SUBS_ON值为0,在断线、模板故障时V输出为最后一次有效值,配合DCS功能块的报警功能,让操作员及时看到并处理,这样可以防止安全系统误动,在低要求模式下可提高系统的可用性。如果希望这种情况下需要马上停车,那么可以把SUBS_ON设置为1,同时把SUBS_V设置为停车联锁值。
图3-16 F_CH_AI主要引脚介绍
由于实现的是安全功能, 所以在F-DO安全模板失电时阀门要自动打开,因此在F_CH_DO前边加了取反功能块,正常时输出1到阀门,阀门的选择也要选择“失电打开”型,将开阀的信号接到阀门功能块的OpenForce引脚,这是因为OpenForce具有最高优先级。
F_CH_AI的量程转换功能需设置量程的上下限值VLARANGE和VHRANGE,改量程的步骤见下图,双击VHRANGE量程上限引脚,从窗口里双击DATA并从弹出的窗口时迈入 为20。
图3-17改安全引脚值
如果要更改 F 数据类型的块连接的值(默认),则只能更改 DATA 元素。
不得更改 PAR_ID 及 COMPLEM 的值。
如果在执行安全程序期间检测到安全数据格式的错误,则会触发 F-STOP。
接下来参考下图,组态安全逻辑,两个F_CH_AI的V输出和QBAD经F_1OO2AI表决后,将高限输出OUT_MAX用于高限判断,同时判断两个输入的偏差是否大于5.0,二者经一个安全的或门后,取反后接到安全阀的F_CH_DO,注意过压安全阀的选型需要失电打开型,这样能保证安全系统失效时阀门自动打开。
压力和阀门的状态要在画面上显示,因此通过转换块转换后,把逻辑结果接入到阀门块上。
图3-18 压力SIF组态
注意:在安全CFC里可以插入标准的灰色功能块,但是它们不能在同一个运行组里。推荐安全和标准程序不同的CFC里,下图的例子也是允许的,因为这个CFC里标准和安全功能块分别在不同的运行组里。
图3-19安全和非安全程序同在一个CFC
安全功能做完后,接下来需要把两个压力实时显示在画面上,为此需要用转换块和结构体转换块来实现,具体的步骤不再详述,参考下图:
图3-20压力显示组态
3)FGS气体检测SIF
气体检测SIF属性FGS(火灾和气体检测)功能,它的要求与紧急停车逻辑不同,气体检测通常都是采用正逻辑,即正常时信号通常是0,在检测到故障时输出1,这就要求F-DI模板具有断线检测功能,这也是本例里专门用一个F_NAMUR卡的原因。
图3-21 Namur卡件接传感器
安全逻辑参考下图,这里只是演示一下安全功能块和标准程序功能块可以在一个CFC里,还是建议二者分别放在不同的CFC里。
图3-22 FGS组态
剩余80%未阅读,请登录查看大全章节内容
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
{{item.nickName}}