资讯 > 正文

如何实现自动化程序的自动生成?(上)

发布时间:2006-10-12 作者:华镕,施耐德电气中国公司

  如果我跟你说:自动化的控制程序可以自动生成,你可能会说:这是“天方夜谈”或者“痴人说梦”。其实,UAG (Unity应用生成器) 不光能够生成PLC中的逻辑控制程序(如:Unity Pro、Concept),还可以生成PC中的HMI人机界面监控程序(如:Monitor Pro、iFix),还可以生成基于网络(如:TCP/IP以太网、Modbus plus)的PLC之间和PLC与其他设备之间的通信程序。应该说:该软件完成了自动化系统中的各种编程要素:控制程序、监控程序和通信程序;而要强调的一点是:程序是由计算机自动生成的,不需要人工编制,所以大大提高了“编程”效率,提高了程序可靠性,节省了项目开发费用,缩短了项目的执行时间。

过程定义

  为了容易理解这一新款软件的精髓,我先概述一下我们要抓住的两大要点:
  1.面向对象编程的概念。在IT领域,很多人对面向对象的编程(OOP)并不陌生,简要概括这种编程的主要特点有两个:一个是封装,一个是继承;这也是编程技术在不断发展过程中而产生的新技术。我们这里所说的对象除了包括以上两个特征外,更强调对象的属性这一概念。我们这里的对象被称之为:智能控制对象(SCoD),它是构成控制程序最基本的单元。比如:阀门可以被视为一个智能控制对象,它具有很多的属性,包括了:逻辑控制属性(程序已经被封装在一个用户自定义功能块:DFB里了)、人机界面属性(阀门的外形图像,以及“开”“关”状态的颜色变化等动画)、报警属性、连锁属性等。就像一块集成电路,它有自己物理属性,比如:尺寸、管脚、功耗等,也有功能属性,如:CPU、图形解压、手机通信等。如果一个智能控制对象的DFB对应PLC中的逻辑程序、图形属性对应HMI中监控对象、通信属性对应网络上设备之间的数据交换,那么经过UAG的运算与发生(还要加上必要的参数和变量),就可以生成一个最基本控制元件的所有程序了!
  2.把工艺流程拆分成不同的对象。我们知道:自动化控制系统的对象千差万别,如何来描述一个自动化控制系统并不是一件很容易的事情,何况不同的行业还有不同的标准,很难一概而论。所以我们首先要把控制的对象进行定位,然后再对其进行分析,然后得出结论。UAG选择的自动化对象是连续的过程控制系统。工厂自动化控制系统通常分为两个大类:一类为连续的过程控制系统,多数为原材料的加工和生产,例如:冶金、石化、化工、水泥等的生产;另一类为离散的逻辑控制系统,多数为装配类的产品制造,例如:汽车、家电、通信产品和办公产品等。理论上讲:只要生产过程可以拆分成对象,就可以使用UAG。UAG主要选择过程控制的部分原因是ISA(仪表、系统和自动化协会)提出了S88标准,它从结构化的角度很好地描述了过程控制系统,正好满足了我们对工艺过程进行划分的需要。
  从上面的简单介绍,估计大家可以看出程序自动生成的端倪,我们只要找到正确的方向,那么程序的自动生成不是不可能,下面就按我们的既定方向前进吧!

使用S88标准带来的益处

  历史
  UAG项目开始于一个客户项目,时间是1999年,项目的愿景为:
  ■ 在执行自动化控制系统项目时,实现应用程序的自动开发;
  ■ 这种模式尽可能适用于所有的工厂。比如:使用相同的自动化技术,为类似的过程控制问题,提供相同的自动化解决方案;
  ■ 开发一种全新的软件工具,能够满足不同的工艺要求;
  ■ 开发一种集成工具,使得用户能够很好地分析和理解他的过程需求,能够开发不同的过程对象来满足这一需求;
  ■ 能够使一个团队共享项目的数据和信息,共同参与定义和构建这个项目;
  ■ 使用"单一数据库"的方法,自动同步PLC程序修改和SCADA/HMI系统变更;
  ■ 过程工程师和工艺工程师是这个软件的主要用户,他们不必了解软件和编程工具本身的具体内容。
  期望的收益和成就是:
  ■ 节省PLC的编程时间;
  ■ 节省HMI/SCADA的组态时间;
  ■ 减少应用系统调试和调整的工作量;
  ■ 在后续的自动化控制系统的构建中,量高质优;
  ■ 在项目的整个寿命周期中,全面节省成本。

  原则
  当今用于过程控制系统的工具,绝大多数是编程工具,它是由应用软件专家所开发的。相对于这种方法所带来的一个问题就是:工艺工程师不理解这一应用软件;而他们不得不定义一套规范给应用软件工程师,这种规范通常用标准操作流程(SOP)来描述,或者使用管道与仪表图(P&ID)来绘制,而那些应用软件工程师也不理解工艺工程师的需求。可以看到:老软件系统本身,已经造成了软件工程师与工艺工程师的隔阂,不利于自动化项目的顺利实施。而UAG是以工艺工程师为使用对象的软件工具,摒弃了各行业人员沟通不畅的问题。
  UAG软件是一个过程应用工具,希望可以让工艺工程师或者熟悉过程的工程师来使用,UAG的设计遵从了以下标准:
  ISA 88 批处理控制标准:用于连续过程控制的相关标准。
  优秀自动化制造规范(GAMP):应用工程的相关标准。

  方法
  使用UAG首先解决了的问题是:UAG已经把工艺设计方法和过程生成工具合为一体。
  一个过程通常定义为:一个化工、物理、或生物行为的序列,比如材料或者能量的转换、传送、或者存储,参看下图。因此,过程的描述是基于对过程中材料或能量的分析(比如:甜菜、垃圾、水、蒸气、蜜糖,等)和材料或能量发生的变化(传送、洗涤、切割、加热、存储,等)。
  一个工厂自动化的整体描述包含了不同位置的PLC设备、监控计算机(HMI)和电气设备、机械设备。在UAG软件中,过程被描述成一种具有功能的“语言”,使得不同行业的人员都可以理解,他们包括了:过程工程师、自动化工程师、电气技术员、操作员和维护人员等。
  开发一个过程控制系统的第一步,就是要定义每个设备需要实现工艺过程的功能,为了使用UAG完成这一过程的描述,需要遵从一种应用方法的标准,比如:优秀自动化制造规范(GAMP),最低的要求为:
  ■ 标准操作流程(SOP);
  ■ 管道与仪表图(P&ID);
  ■ 过程的布置图
  传统的编程工具需要进一步的规范用于开发,比如:用户要求规格书(URS)和功能设计规格书(FDS),这些说明书会大大增加现场人员与施工人员的工作量,也大大滞后了项目的开展进度。与传统的方法不同,UAG工作于功能层,所以大大省去了准备URS和FDS说明书的工作。同样显著的结果是:UAG大大减少了不同行业工程师工作于同一项目中,对过程和功能定义理解的分歧。
  因此,UAG提供了:
  ■ 一种提高解决方案质量的方法,加快了过程验证的进度;
  ■ 在系统设计阶段,使用一种功能“语言”描述过程;
  ■ 一本用于安装和调试阶段的说明书;
  ■ 用于操作、维护和检测错误的说明书;
  ■ 由于对控制系统更改而向用户告知的一个程序。
  使用UAG,过程得到了很好的定义,应用是结构化的、单一数据库的系统,所有参与者的工作流程是一致的,大家可以共享一样的信息,不会因为使用过时数据而造成编译错误所带来的问题。
  更有甚者,UAG的数据库允许而且支持对定义和结构的改变,这就从设计方法上支持了你对项目不断改进,与时俱进。

  标准化
  标准化意味着:一种语言的词汇和语法能够被不同行业的人员使用(工艺工程师、自动化工程师、维护工程师...)。
  使用UAG用户化的功能,从一个应用过程的系统层到设备层,在过程的寿命周期里,都允许用户对它进行管理和升级。这种语言在所有层中,必须强制执行,在整个项目中没有例外。

  数据库
  传统的控制系统,数据通常都放在两个不同的层面上,过程控制逻辑层面和图形监控系统层面。
  从历史上看,两个系统是由两组不同的人员分别建立的,比如说:PLC系统是由电气人员开发调试,而HMI/SCADA 系统是由计算机人员开发调试。然后通过某种网络(以前都是采用自有协议)把PLC 系统和HMI系统连接到一起,构成一种分布式系统。所以PLC和HMI有各自的数据库,虽然通信可以更新某些数据,但不是所有数据。因为某些PLC 数据不必在HMI 中显示,也就不必送到计算机上;而HMI 做的一些运算也没必要把中间结果送给PLC。这样做的结果也就产生了一个事实:两个数据库不一致。这就会带来一个问题:PLC 增加一个变量,HMI 并不知道,除非在HMI 也增加一个标签,而这个过程并不简单。如此一来,增加一个变量要进行两次数据输入,工作量大,还容易出错。另外,PLC 系统的特点集中在能够在线方便对控制逻辑进行灵活修改,而忽略了与HMI的同步。
  有些DCS(人们常说的集散控制系统)虽然提供了系统数据的一致性,但因为仪表系统(DCS)和电气系统(PLC)也来自不同厂家,或是收购关系,或是伙伴关系,所以数据的一致性是有限的,不是完全的。
  UAG保持了传统PLC 在控制逻辑动态更改的灵活性同时,还可以支持任何一种HMI 系统,通过智能控制对象中PLC和HMI 的捆绑,确保它们数据库的一致性。数据库一致性的重要性在于:在项目的生命周期之中,无论是设计、实施、调试、应用、维护各个阶段,不管是PLC控制逻辑方面的更改,还是HMI监控图形方面的更改,都会因为数据库的单一性而通知对方,保证了项目整体的集成性和完整性,从而也保证了项目执行过程中的可管理性和项目的完成质量。

  ISA 88
  用户指出:在批处理项目中使用ISA88标准是非常重要的,它可以大大提高制造系统的柔性;还有的用户补充道:它的重要性还体现在能够减少新产品投放到市场的时间;还有的益处体现在:提高产品质量的一致性、减少工程费用、提高生产效率、以及减少维护和操作费用。
  不仅如此,它的益处还体现在从工厂到工厂的应用工程进行转移的一致性,项目容易通过审核与验收。FDA检查员已经在公司的所有制造企业,开始要求或强迫执行这一最佳的规范标准。不遵从标准就会明显地减少产量、降低质量、增加宕机。
  为了描述工厂中的完整的自动化系统,必须按下列步骤定义每一个位置:
  物理模型:描述在自动化系统中使用的物理设备。
  拓扑模型:描述和配置所有的PLC、IO、监控系统和PLC与其他设备的通信。

ISA 88

  物理模型
  UAG使用了ISA中的术语。在ISA88标准,批处理控制“部分1:模型和术语”中,给出了ISA88的结构模型,如下图。使用UAG的用户可以把他的工艺流程按自己的定义分解到对应的任务,从下至上地应用执行。ISA88标准采用了一种六层结构,来表示企业的整体的自动化设备情况,设计者可以方便的定义站点(Site)的自动化设备,一线到多线表示了“一个与多个组成”相关,比如:一个个体(Unit)包含多个设备(Equipment)。
  区域(Areas)、过程单元(Process Cells)和个体(Units)把工厂分为不同部分完成不同的任务。

  UAG采用的物理模型
  设备模块(Equipment Modules)
  设备模块集合了一组控制模块(Control Modules),它们结合了必要的物理过程和控制设备,执行限定的过程行为。设备的例子有:传送带或反应釜。它可以是一个独立使用的资源或者是一个共享使用的资源。设备模块从功能上被定义成:完成有限的任务。
  控制模块(Control Modules)
  控制模块通常用于定义传感器、执行器和调节控制设备,从控制的角度来看,它是操作的一个单一点。控制模块在现实世界中可以是一个设备,比如:马达、阀门、温度变送器,等等;或者是一种控制功能,比如:PID回路、定时器、计数器。
  智能控制对象(ScoD)
  控制对象由可以复用对象的实例所构成,一个控制对象描述了一个对象的过程和自动化任务所赋予全部属性:PLC逻辑、操作员界面的图形、电气和机械参数、以及维护和诊断的功能。
  控制对象将继承该类型的所有属性,而且可以按照所要执行的特殊任务,可以对实例的参数和属性进行更改,UAG为用户提供了方便的修改方法,用户可以基于缺省值对参数进行更改。所以系统具有非常好的灵活性。
  控制对象类型的定义和部署是在类型库(ScoD库)里完成。UAG软件本身已经随带了一个标准的控制对象类型库,可供用户使用。而用户也可以使用附带的工具,按应用行业的不同,开发自己的智能控制对象库。
  这意味着,用户在自己的SCoD库内集成了与过程相关的专业和技术知识,并在所有的 UAG应用程序中反复使用。
  拓扑模型
  拓扑模型描述了PLC和HMI所需要的控制过程。PLC需要指定所使用的硬件资源,控制系统的硬件包括了CPU、基架和I/O模块,以及网络与通信的配置。监控系统基于客户机/ 服务器结构,包括了数据服务器和操作员站,完整的HMI应用会把所有功能分配给不同的控制领域、不同的操作员站和不同的工艺流程。
  UAG中的拓扑模型
  在一个协同控制环境中,UAG可以用在整个过程控制中,对拓扑结构进行监视和管理。拓扑结构视图包含所有带有输入/输出点的设备以及这些设备之间的通信通道。
  UAG支持:
  ■  施耐德的自动化平台:
  a. 使用Unity Pro的Modicon Quantum,Premium以及Atrium。
  b. 使用Concept的Modicon Quantum和Momentum。
  ■  SCADA系统 (Monitor Pro,iFix或者通用HMI软件),Magelis面板。
  ■  以太网TCP/IP和Modbus Plus通信网络。
  ■ 第三方设备。
  对网络配置、PLC应用和他们的输入/输出、和其他设备的拓扑结构模型,都可以直接在UAG中生成。

相关文章:如何实现自动化程序的自动生成(下)?

标签:自动化程序,控制程序,UAG

相关文章