iFIX实现现代生产过程控制的策略(转载) 点击:3134 | 回复:2



中国工控网

    
  • 精华:141帖
  • 求助:0帖
  • 帖子:163帖 | 91回
  • 年度积分:0
  • 历史总积分:1543
  • 注册:2020年3月27日
发表于:2003-06-18 11:19:00
楼主
本文作者代伟先生,原上海工业自动化仪表研究所系统工程总部工程师。 关键词:iFIX 控制 随着信息时代的飞速发展,现代工业企业对生产的管理要求也不断提高,要求不单局限于通常意义上的对生产现场状态的监视和控制,同时要求把现场信息和管理信息如产品质检标准、设备管理信息、设备维修标准等结合起来,通过对这些信息的综合处理,形成一个意义更广的工业过程控制系统,即综合监视管理系统。对于其中的监视状态和数据处理结果,要求能通过Intranet甚至Internet进行访问,而在传统的监控上又对设计提出了控制方式灵活、设计快速、扩展方便等要求。Intellution公司为了满足现代企业管理的要求,早在1998年就推出以iCore为核心的现代控制方案——iFIX Dynamics系列。下面结合工程应用从两个方面的要求,就iFIX的解决策略进行阐述。 一 实现控制方式灵活、设计快速的要求 iFIX最显著的结构特点是它完全基于对象,这个对象的含义很广泛,包括组成组态部件的最小单元,以及对这些最小单元的组态策略,而每一个对象都有自己的多种属性,最为灵活的是这些属性可以通过VBA在运行时进行改变。iFIX在以下几个方面可以实现控制方式灵活、设计快速的要求。 1. 可以形成全局性的组态方案,方便设计和修改 iFIX提供一个全局性的组态策略,设计人员可以在做细致的组态工作时直接调用全局策略,不必在每一个控制对象组态时重复去做。就拿工业现场阀门的颜色状态显示来说,一般阀门的状态信号有阀门打开(MV101IO)、阀门关闭(MV101IC)、阀门出错(MV101IE),操作人员通过阀门的前景颜色的变换来反应阀门的无到位状态、阀门打开、阀门关闭、阀门故障(已确认)、阀门开状态故障(未确认)、阀门关状态故障(未确认)、无到位状态故障(未确认)7种状态。设计人员可以在控制阀门前景颜色的数据源表达式中输入M101IO.F_CV*1+M101IC.F _CV*2+M101IE.F_CV*4+M101IE.F_ NALM*8,当该表达式的值发生了变化,其状态也跟着变化,因此,根据其值的变化给出不同的前景颜色,如表所示。
这样可在全局性组态方案中组建公用策略,并将其命名为ThresholdFM。 组态时,直接调用公共的方案:user.ThresholdFM,这样可以减少很大一部分的工作,使组态时间大大减少,同时当用户的颜色显示要求变化时,设计人员只需要改变全局方案,并不改变组态画面,方案更灵活。这种全局性的策略在iFIX中对其可动态变化的属性都实用。 2. 有效的查找替换功能 iFIX提供了功能强大的查找替换功能,可以对对象的属性、组态、脚本编辑等信息中的内容进行查找替换。一般的工业控制系统,其设备类型不多,每一种设备的控制方式大都相同,这样只需要对每一类设备建立一个完整(包含动态颜色变化、旋转、运动以及VBA编辑)的组态样本,形成自己的图库,细致组态时就只需要调用这些样本,在设计时加以全面考虑,对调用的样本进行简单的查找替换,就可以把样本组态变为实际组态。如上述阀门,我们对其前景颜色进行了组态,再加上一些VBA脚本,如Mousedown事件发生时,打开其公用操作窗体,传递自己的信息到公用窗体显示。包含这样多的组态信息,一般对于一个设备需要5~10min,但如果用查找替换功能,5s就可以完成,比如该阀门为MV101,对于MV102、MV103…只需从自制图库中引入样本,对其进行查找MV101,并替换为MV102、MV103…就可以把样本中属性、组态、脚本编辑中所有MV101变为MV102、MV103…这些阀门的组态工作也就完成了,而且方便快速。对于多条生产线来说,这种功能的优点更为突出,比如一号生产线的设备命名中包含10(MV101),二号生产线的设备命名中包含20(MV201),依此类推,只要先组态好第一条生产线,然后建立副本,对整个副本进行查找10,替换为20、30,第二、第三条生产线的组态工作就在十几秒钟内完成。这种功能除了减少工作量、缩短设计时间以外,还避免了人为重复性工作带来的错误,工程准确性大大提高。很多监控软件也具有查找替换功能,但能做到这一步的还只有iFIX。 3. 组态数据源可变带来异常灵活的控制策略 传统的监控设计是当画面的一个物体在设计时即指定了监视现场对象状态,运行后这个物体的动态就只能反映设计时指定的对象状态,但现在大多数监控软件都能使画面上的物体所反映的现场设备动态可变,其通常的做法是变址,用一个指针变量组态,运行时改变这个变量的指向,Intouch、Cimplicity都是如此,iFIX 2.1版本中推出了Tag Group功能,其目的也是为了解决这个数据源可变的问题。但是这种变址的方法在设计上有很大的局限性,同时又大大增加了工作量,我们这里要讨论的是另外一种更好的方法:直接改变数据源Data Source,这是Dynamics一直就有但很少使用的方法。就如前面所说,iFIX是完全基于对象的,这个对象包含组态策略,组态策略有一个属性为source,即前面举例中的数据源表达式,source属性通过VBA可以在运行时进行修改。例如,在一个工程控制中,同类设备的控制策略是相同的,这样对于设备的操作就不必为每一个设备建立一个操作框,而只需用上述办法,建立一个公用操作框。 对该设备进行操作时: (1)把该设备的标号传送给全局变量,打开操作框: Private Sub七号气动蝶阀2_Click() user.sbclass.CurrentValue=False user.sbname.CurrentValue=Ctank.七号气动蝶阀2.Name user.sbnamber.CurrentValue=Ctank.七号气动蝶阀2.Description OpenPicture"poeratorbos.grf", 10, 10 End Sub (2)在操作框内通过这个全局变量把该设备的状态信息传给组态策略的source,达到控制的转移,其初始化程序如下: Private Sub CFixPicture _Activated() operatorbox.AlwaysOnTop=True operatorbox.txbname.Text=user.sbname. CurrentValue Dim strzd As String, strsd As String, strrun As String, strjt As String, strmcc As String Dim strdk As String, strgb As String, strerrv As String Dim errnum As String, strerr As String strzd="fix32.fix." & user.sbnumber. CurrentValue & "I0.f_cv" strjt="fix32.fix." & user.sbnumber. CurrentValue & "I2.f_cv" strdk="fix32.fix." & user.sbnumber. CurrentValue &"I1.f_cv" strsd="fix32.fix." & user.sbnumber. CurrentValue & "O1.f_cv" strrun="fix32.fix." & user.sbnumber. CurrentValue & "I1.f_cv" strgb="fix32.fix." & user.sbnumber. CurrentValue & "I2.f_cv" strerr="fix32.fix." & user.sbnumber. CurrentValue & "I4.f_cv" strmcc="fix32.fix." & user.sbnumber. CurrentValue & "I3.f_cv" ysdvisible.Source=strsd xdvisible.Source=strsd xsdenable.Source=strzd ysdenable.Source=strzd xsdBColor.Source="not" & strzd ysdBColor.Source="not" & strzd dkBColor.Source="not" & strzd & "and not" & strdk gbBColor.Source="not" & strzd & "and not" & strgb qdBColor.Source="not" & strzd & "and not" & strrrun tzBColor.Source="not" & strzd & "and" & strrun ctmtext.Source=strzd & "*2+"strsd & "*1" err text.Source=strzd & "*2+"strmcc & "*1" runtext.Sou



瑞雪

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2001年12月08日
发表于:2002-01-19 20:09:00
1楼
你很厉害,有这么多东西给我们看!

php

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2002年1月23日
发表于:2002-01-23 17:12:00
2楼
哪位大虾有用excel和access做报表的例子请给我发一个,谢谢。

热门招聘
相关主题

官方公众号

智造工程师