1.1 组态软件的概念
持续更新iFIX学习(抄书)心得和大家分享,参考书籍《iFIX基础教程》翟天嵩主编.清华大学出版社,并非全抄,稍加修改
组态来源于英文单词Configuration,组态软件是一种通用数据采集和监控平台(Supervisory Control and Data Acquisition,SCADA)软件,主要用于构建人机界面环境。组态软件也称为HMI/MMI(Human Machine Interface/Man Machine Interface)软件,国内一般称为“组态软件”。
组态的概念是伴随着集散型控制系统(Distributed Control System)的出现而被广大的生产过程自动化技术人员所熟悉的。为了使用户在不需要编写代码程序的情况下,可以生成适合自己应用需求的系统,就需要专业的编程开发人员创建开发环境,把软件模块化、对象化。便于工程人员调用,从而获得用户要求的监控系统。
组态软件是在自动控制系统监控层一级的平台和开发环境下,用户无需编写计算机程序,使用灵活的组态方式,通过简单的类似“搭积木”的方式快速构建工业自动控制系统监控功能的、通用层次的软件工具。用户构建过程包括:选择控制系统的结构、选择数据采集模块的种类、选择信号的量程和转换、选择和配置各种控制策略、绘制操作员界面等。因此,使用组态软件开发监控系统具有时间短、效率高、可靠性好、不需要购买专用的工控系统、能适应不同的控制系统和不同控制场合的应用要求等优点。可以连接不同的控制系统,实现与控制系统之间的通信和数据交换,以图形、表格或实时曲线的方式直观地显示控制系统中的数据,并可以方便地对数据设置报警、保存等管理功能。
组态软件充分利用现代计算机所提供的强大运算处理、通信和图形处理能力,实现对生产过程和装备的监视及控制,能采集现场的各种信息,将信息以图形、动画等直观的形式显示出来,界面直接、形象、友好,管理功能强大。组态软件具有以下特点。
(1)开发周期短。通过应用组态软件,用户无需编写底层硬件的驱动程序,通过简单的组态就可实现所需要的功能,系统设计时间大大缩短,开发效率高。
(2)系统的稳定性高。由专业研发团队开发的组态软件经过众多用户的考验,比用户自行开发的软件稳定性高。
(3)成本和费用低。用户聘请专门的技术人员开发专用的软件,成本高;如果采用组态软件,一般的技术人员经过简单的培训就可以设计需要的系统。
(4)可扩展性高。在自动控制技术或自动化产品更新比较快的情况下,组态软件无需调整代码,灵活性更高。
1.2 组态软件的诞生和发展
1969年,PLC之父Dick Morley和他的团队冲刺了一年多,终于制成了模块化的数字式控制器(Modular Digital Controller),开创了PLC的新纪元。随后,他命名了最早生产PLC的Modicon公司。PLC的诞生是为了解决开关量逻辑控制-继电器控制,系统的状态靠现场状态指示灯来显示。后来,系统越来越大,监控不方便,就把现场的所有状态指示灯都接到控制室,做成模拟屏。模拟屏存在安装、调试、维护复杂等缺点。因此,很多PLC厂家和软件公司借鉴DCS系统,开始利用计算机开发监控软件,解决人机图形界面的问题。20世纪80年代中后期,个人计算机的普及和开放系统(Open System)概念的推广,为基于个人计算机的监控系统进入市场创造了条件。
对于计算机应用系统而言,硬件是其躯体,软件是其灵魂。这就是说,应用软件系统在计算机应用的各个领域起着举足轻重的作用。应用软件系统,特别是大规模应用软件系统的开发是一项综合性、智能型的系统工程。它不仅要求开发人员具有扎实的计算机方面的基础知识、基本技能与方法,而且要求开发人员具有相关应用领域的专业知识和一定的组织管理能力。传统的开发手段存在两个突出的问题。第一,开发周期长,需要软件专业人员的参与。要实现某一任务,都是通过编写程序(如使用BASIC、C、Fortran等)来实现的。编写程序不但工作量大、周期长,而且容易犯错误,不能保证工期。第二,可扩展性、灵活性差。被控对象稍有变动就必须修改源程序;已开发成功的工控软件又由于每个控制项目的不同而使其重复使用率很低。针对不同的生产工艺过程需要编制不同的控制软件。
如何通过建立并使用一定的工程原则来获得经济可靠的软件工具,努力摆脱开发人员的手工劳动,使软件系统开发直接面向用户需求来定制实现,使软件开发向自动化方向发展,是组态概念得以发展的推动力。组态软件的开发建立在开发经验和应用经验基础之上,经过更高层次的抽象使其面向一类对象,具有普遍应用性和适用性。虽然说组态就是不需要编写程序就能完成特定的应用,但是为了提供更强的灵活性,组态软件也提供了编程手段,一般都是内置编译系统,提供类BASIC、C语言,有的甚至支持VB。随着组态概念的发展,目前各大组态软件厂商一般都应用COM和DCOM组件技术来开发组态软件工具。
随着科学技术的不断进步,现代工业的生产技术、工艺过程日趋复杂,生产设备及装置的规模不断扩大,企业生产自动化程度要求也越来越高,如要求界面友好、易于操作、画面形象丰富、实时性好、开发周期短,便于修改、扩充、升级等。世界上第一个将组态软件作为商品进行开发、销售的专业软件公司是Wonderware公司,它于20世纪80年代末率先推出工控组态软件InTouch,此后工控组态软件不断发展壮大。同时期的产品,如Onspec、Paragon 500、早期的FIX等都运行在DOS,UNIX、VMS环境下,图形界面的功能不是很强,只具有简单的人机界面(MMI)、图库、绘图工具箱等基本功能。不过因为DOS具有很好的实时性,软件中通常包含着大量的控制算法。
20世纪90年代,随着微软的Windows3.0风靡全球,以Wonderware公司的InTouch为代表的人机界面软件开创了Windows下组态软件的先河,也是最早进入我国的组态软件,基于Windows 3.1的InTouch软件曾让我们耳目一新,目前InTouch已经推出了9.5版本。由于Windows 3.0不具备实时性,它与DOS环境下的组态软件相比,其最突出的特点是图形功能有了很大的增强。所以,20世纪80年代已成名的自动化软件公司在对于操作系统的支持上,或按兵不动,或将组态软件从DOS向OS/2移植,人们这样做的原因是,大家都认为工控软件必须具有很强的实时性和控制能力,必须运行在一个具备实时性的操作系统下,如DOS、OS/2、WinNT(1993年才推出)等。历史证明,在当时的硬件条件下,上位机做人机界面满足了用户的需求,Wonderware因而在不长的时间内成为全球著名的自动化软件厂商, Windows环境下的组态软件成为主流。而在20世纪80年代靠DOS版组态软件起家,后来向OS/2移植的公司基本上都没落了。在自动化软件供应商中,既包括专门从事监控软件研发的厂商,如GE Fanuc公司和Wonderware公司等,他们在市场上占领很大一部分份额;也包括自动化产品综合供应商,如Cimplicity和WinCC分别是GE Fanuc和Siemens公司的软件产品。以组态王、力控、MCGS为代表的国内软件生产商已经初具规模,依靠符合中国人使用习惯的组态方式和良好的售后服务,在我国市场上应用越来越多。其他常见的组态软件还有Rockwell的产品RsView、Citect的产品Citect软件等,表1.1列出了在国内市场上的主要组态软件产品。
表1.1 主要供应商及产品系列
公司名称 | 产品名称 | 产地 |
Wonderware | InTouch | 美国 |
GE | FIX,iFIX | 美国 |
Citect | Citect | 澳大利亚 |
Rockwell | RSview32 | 美国 |
亚控 | 组态王 | 中国 |
三维科技 | 力控 | 中国 |
昆仑通态 | MCGS | 中国 |
杰控 | FameView | 中国 |
紫金桥 | Real | 中国 |
世纪长秋 | 世纪星 | 中国 |
华富图灵开物 | ControX | 中国 |
九思易 | INSPEC | 中国 |
研华 | Genie | 中国台湾 |
Phoenix | VISU+ | 德国 |
Siemens | WinCC | 德国 |
National Instrument | Lab View.Lookout | 美国 |
Iconics | Genesis | 美国 |
PC Soft | WizCon | 以色列 |
AdAstrA | TRACE MODE | 俄罗斯 |
Broadwin | WebAccess | 美国 |
GE | Cimplicity | 美国 |
Entivity | Think&.Do | 美国 |
Grayhill | Paradym-31 | 美国 |
LABTECH | Labtech | 美国 |
USDATA | Factorylink IV | 美国 |
Automation | ONSPEC | 美国 |
TA Engincering | AIMAX-WIN | 美国 |
AzeoTech | AQFactory | 美国 |
随着国内计算机水平和工业自动化程度的不断提高,通用组态软件的市场需求日益增大。近年来,一些技术力量雄厚的高科技公司相继开发出了适合国内使用的通用组态软件。实时数据库、实时控制、SCADA、通信及联网、开放数据接口、对I/O设备的广泛支持已经成为组态软件的重要功能,随着组态思想的逐步深入和计算机技术的不断发展,监控组态软件将会不断被赋予新的内容。
20世纪80年代,Intellution公司以FIX组态软件起家,FIX 6.x软件提供给工控人员熟悉的概念和操作界面、完备的驱动程序。在iFIX中,Intellution提供了强大的组态功能,原有的Script语言改为VBA(Visual Basic For Application),并且在内部集成了微软的VBA开发环境、iFIX与Microsoft操作系统,网络进行了紧密的集成。
1.3 iFIX软件的诞生和发展
iFIX的前身是FIX,1984年在得克萨斯州休斯敦的ISA展览上,在自动扶梯下一个10英尺×10英尺的展台里,Intellution公司总裁Steve Rubin和他的两个工程师AlChisholm和Jim Welch介绍了FIX:全集成控制系统,是世界上第一个可配置的基于PC的HMI/SCADA软件程序。他们掀起了对自动化和过程控制的革命。iFIX组态软件就此诞生,它是一种基于DOS的系统。FIX的全称是Fully-Integrated Control System(全集成控制系统),“X”其实没有什么意义,只是为了凑成一个响亮好念的名字。1995年5月美国艾默生电气公司(Emerson)收购Intellution公司成为其旗下子公司,但仍然使用原公司品牌。2002年10月美国GE Fanuc公司又从艾默生公司手中收购Intellution,来填补其产品线,只保持了iFIX这个产品名称,Intellution品牌停止使用。2009年12月GE Fanuc公司解体,原Intellution公司产品归属GE公司,划分到GE-IP(GE智能平台)。
FIX最高版本为7.0,1998年后停止更新FIX;1998年,Intellution重新编写FIX内核,同时更名为iFIX,采用OPC、VBA等技术。iFIX的各种版本信息如表1.2所示。
表1.2 iFIX的各种版本信息
版本号 | 支持语言 | 支持操作系统 |
iFIX 1.0 | 英文版 | Windows NT |
iFIX 2.1 | 英文版 | Windows NT |
iFIX 2.2 | 英文版 | Windows NT |
iFIX 2.5 | 英文版 | Windows NT/2000 |
iFIX 2.6 | 英文/中文版 | Windows NT/2000 |
iFIX 3.0 | 英文/中文版 | Windows NT/2000/XP |
iFIX 3.5 | 英文/中文版 | Windows NT/2000/XP/2003 |
iFIX 4.0 | 英文/中文版 | Windows 2000/XP/2003 |
iFIX 4.5 | 英文/中文版 | Windows 2000/XP/2003/2008/Vista |
iFIX 5.0 | 英文/中文版 | Windows 2000/XP/2003/2008/Vista/7 |
iFIX 5.1 | 英文/中文版 | Windows 2000/XP/2003/2008/Vista/7 |
iFIX 5.1WOW | 英文/中文版 | Windows 764位系统 |
iFIX 5.5 | 英文/中文版 | Windows 8 64位系统 |
1.2 iFIX软件结构
1.2.1几个重要概念
1、过程硬件:指在现场进行数据采集的硬件产品。例如:PLC、智能仪表、变频器、OPC设备、分布式控制系统(DCS)、简单I/O设备等等。
2、SCADA(Supervisory Control And Data Acquisition)实现监视控制和数据采集,通过I/O驱动软件和过程硬件进行通信,建立并维护过程数据库。
3、过程数据库(Process Database,PDB)又称实时数据库,区别与关系型数据库的一种叫法,用于将各个不同驱动读取的数据集中,按照数据类型分类,监视数据值,并进行超出范围报警。
4、通道指设备的硬件接口。通道类型包括:串口通道、以太网通道、虚拟设备通道、OPC通道等。
5、节点(Node)即一台运行iFIX软件的计算机。下面说的节点类型也可以理解为iFIX的软件类型。节点按采集/显示功能分为三类:iClient,SCADA和HMI Park。
🔳SCADA节点。SCADA节点是指一个可以直接从过程硬件获取数据的节点。一个从过程硬件获取数据的节点称为SCADA服务器。SCADA服务器具有以下特点:(1)具有监视控制和数据采集(SCADA)功能;(2)可以通过I/O驱动和过程硬件进行通讯;(3)建立并维护过程数据库。
具有数据采集和网络管理功能而无图形显示功能的节点称为一个盲SCADA服务器(Blind SCADA)。也就是iFIX-Server版。
🔳iClient节点。iClient是不具有SCADA功能的节点,iClient不直接与过程硬件通信。该节点具有以下特点:(1)从SCADA节点获取数据;(2)可以显示图形、历史数据及执行报表。
这类节点有时称为VIEW和HMI(Human Machine Interface)节点,或人机接口节点。
🔳HMI Park节点。同时具有SCADA和iClient功能的节点称为HMI Park(也称为SCADA Park)。HMI Park节点具有以下特点:(1)通过I/O驱动软件和过程硬件进行通信,并显示图形、历史数据及执行报表;(2)也可通过网络从其他SCADA节点获取数据。
6、节点(Node)即一台运行iFIX软件的计算机。节点按物理分布分为三类:独立节点,网络节点(本地节点和远程节点)。
🔳独立节点。是指与网络中其他节点不进行通信的节点。独立节点必须具有SCADA和iClient功能。图1.2显示了一个iFIX分布式节点结构。
🔳本地节点。是指描述了本地正在工作的节点。
🔳远程节点。是指在一个分布式系统中,不同于本地节点的节点,也可以是通过Modem访问的节点。
7、节点(Node)即一台运行iFIX软件的计算机。节点按使用方式分为:只读节点,运行节点和开发节点。
🔳只读节点指不允许修改显示画面或过程数据库,也不允许修改过程设定值或报警确认的一类节点。
🔳运行节点指不允许修改显示画面或过程数据库,必须预先安装所有配置文件,不一定为只读方式。与之相对应的节点称为开发节点。
8、iFIX类型按现场的I/O点数分为:300点,900点和Unlimted(无限点)。
9、iFIX类型按功能分为标准版(Standard)、增强版(Plus)、专业版(profression)。
🔳标准版(Standard)
只具有基本功能,如工作台,VBA编程器等;没有网络功能,不能组成分布式结构;过程数据库中没有SQL块;同时很多数据控件不能使用,如VisiconX等。
🔳增强版(PLUS).
与标准版相比,过程数据库中有SQL块;可以使用数据控件:Visicon.SQL,ODBC等,同时具有网络功能,可以组成上文图一所示的分布式网络结构。
🔳专业版(Profression)
同增强版相比,专业版具有Auto Failover功能(即冗余功能)。
1.2.2 iFIX的结构
iFIX软件包含三大部分:驱动程序、实时数据库、画面编辑与画面运行。
1)驱动程序实现数据采集功能,驱动程序是iFIX和过程硬件之间连接的窗口。组态软件实现对现场设备的数据采集与控制,首先建立物理连接,其次组态软件按照一定的协议与现场设备进行通信.iFIX组态软件不能直接和设备建立连接,对支持的设备要有相关驱动程序,设备必须连接到相应通道上,一个通道可以挂接多个设备。
2)过程数据库(Process Database,PDB)又称实时数据库,区别与关系型数据库的一种叫法,用于将各个不同驱动读取的数据集中,按照数据类型分类,监视数据值,并进行超出范围报警。
3)画面编辑和画面运行显示现场的实时数据。
1. 过程数据和过程数据库
iFIX连接工厂中的过程硬件,从过程硬件中获取源数据。iFIX和过程硬件之间的接口称为I/O驱动器,每一个I/O驱动器支持指定的硬件。I/O驱动器功能包括:从I/O设备中读(写)数据(称为轮询polling),将数据输出至驱动器映像表(Driver Image Table,DIT)中的地址。驱动器映像表有时也称为轮询表(Poll表)。如图1.3所示,两个I/O驱动器将数据读入DIT,这种情况下,两种不同的过程硬件就有两个I/O驱动器。
I/O驱动器以轮询记录的格式收集数据,用PLC寄存器中的地址存储轮询记录。轮询记录可以是单个数据,也可以是一段数据。轮询记录的数据一般具有相同的类型。例如,20个连续的整数可以配置为一个轮询记录。驱动器映像表(DIT)是在SCADA服务器内存中存储I/O驱动器轮询记录数据的区域。I/O驱动器刷新驱动器映像表中的记录,每一个轮询记录有一个刷新率,刷新率称为轮询时间。
上图图1.3中扫描、报警和控制(Scan Alarm and Control,SAC)的功能有三个:从DIT中读取数据,将数据传至过程数据库PDB,数据超过报警设定值则报警。SAC从DIT中读取数据的速率称为扫描时间,可以使用任务控制程序(Mission Control)进行SAC监视。
过程数据库由数据库块组成。数据库块(Database block)又称为标签(Tag),是一个完成某个过程功能的指令单元。标签功能包括:将过程值与报警限进行比较,基于特殊的过程数据进行计算,将数据写入过程硬件。标签就像C语言中的子程序,可以实现某个功能。
数据源提供了数据信息标识的基本方法。调用语句为:SERVER.NODE.TAG.FIELD,其中SERVER代表OPC数据服务器的名称,NODE代表数据库所在的节点名,TAG代表数据库中的标签名称,FIELD代表标签中用到的某一具体参数信息(域名),FIELD的作用类似C程序中的变量。例如,FIX32.SCADA1.FLOW_IN.F_CV,表示FLOW_IN的当前值(F_CV),FLOW_IN驻留在SCADA1节点的PDB里,SCADA1的数据来自OPC服务器FIX32。使用数据源的名称可以从本地或远程节点浏览某一个参数的数据,如图1.4所示。
一般来说,标签中有三种类型的域(FIELD):数字数据类型、文本数据类型和图形数据类型。
🔳数字数据类型调用格式为F_*(F为浮点)。例如当前值为:F_CV。
🔳文本数据类型调用格式为A_*(A为ASCI)。例如,当前报警数据为:A_CUALM,描述数据为A_DESC。
🔳图形数据类型调用格式为T_*。例如,TDATA为从TR或ETR块中获取的数据。
一系列标签可以连接在一起形成链,链(Chain)可以完成监视或控制回路。
2.图形显示
数据一旦进入过程数据库,这些数据可以用图形方式进行显示。iFIX Workspace以运行模式提供HMI功能(人机接口功能),HMI可与图形显示结合使用。图形对象用于显示数据库值。图形对象包括:图表、数据和图形动画。图形对象可以显示报警信息、数据库信息和某标签的特殊信息。图1.5是一个使用数据链接的示意图。
iFIX的核心是数据流如图1.6所示,I/O驱动器从过程硬件的寄存器中读取数据,然后将该数据传入DIT,驱动器读取数据的速率称为Poll时间,SAC扫描DIT。SAC从DIT中读数,SAC把该数据传入过程数据库PDB,SAC读数的速率称为扫描时间,iFIX Workspace向PDB发出请求,图形显示中的对象显示PDB的数据,其他应用可向PDB请求数据。当然数据也可写入硬件,反顺序执行上述过程,可以完成该功能,数据从图形显示送入PDB,再传到DIT,I/O驱动器从DIT中取数,再写入PLC,双向数据流如图1.6所示。