1.ISaGRAF简介
ISaGRAF为法国CJ International公司(1990年成立)所开发的符合国际标准IEC1131—3、具有独立于PLC硬件实现、包括逻辑控制的软件模型、数据模 型,图形化编程和文本语言结合的开关量逻辑处理,并集成了模拟信号处理功能的过程监控软件。IEC—1131为国际电工委员会制定的通用逻辑信号监控开发 标准,具有面向对象开放性特点,目前正广泛应用于各种型号的PLC的逻辑编辑和DCS分散控制系统。
IEC—1131包括五个部分,1131—1为关于通用逻辑编程的一般性描述和介绍,讨论逻辑编程的一些基本的概念、术语和定义;1131—2为通用逻辑 编程对硬件设备的要求和测试,包括机械和电气两大部分1131—3为适用于各种PLC的通用逻辑组态编程语言,IEC提供了五种语言参考标准,即 SFC(连续功能图)、FBD(功能块图)、LD(梯形图)、IL(指令表)和ST(组态文本)。IEC1131—4为关于PLC的选择、安装和维护的信息资料和用户指导手册;1131—5规定了逻辑控制设备与其它装置的通信联系规范。目前ISaGRAF运行版本为3.20版以上。ISaGRAF在世界各 地拥有广泛的用户,至1997年底止有86个国家在5000套系统上运行ISaGRAF,有50000多个正式版权的用户。美国的TranSyslnc公 司、德国和澳大利亚的IQ自动化公司、南韩的UNItop公司、日本的Komatsu公司和CJ Inermational一起,形成ISaGRAF的开发销售维护国际体系。
ISaGRAF由两大部分组成:在PIE等实时现场设备或I/O卡件上运行的“核心软件”和在以太网上运行的工作站软件平台。核心软件适用于各种C编译 器,可在16/32位的如68xxx,80xx6,i960等CPU中,通过OS9,MS-- DOS,VxWorks,WinNT,VRTX,PSOS,VMEexec,QNX,LynxOS,iRMX等操作系统运行;工作站的环境可以是各种MS —Windows系统,如Windows3.1,Win95,WindowsNT,OS/2等;工作站和核心软件间的连接通信可以采用MODBUS/以太 网/Netbios及Fip,Profibus.Canbus及LonTalk等网络结构。工作站上的ISaGRAF软件平台可给过程控制提供编程工具, 生成运行代码并进行仿真调试及进行项目的组织和管理等,软件平台包括采用面向对象技术的控制过程数据库、元件库、对数据库的各种处理运算及对控制系统的管理等。
控制过程数据库中存放着具有不同格式而相互连在一起的对象,元件库中存放着具有相同格式而无任何联系的各种对象。元件库中的大量的通用对象方便了用户的编程组态。如构建复杂模型,隐藏复杂模件的内部处理过程,跟踪过程控制与PLC和计算机的发展等。通过采用连续功能图(SFC),功能块图(FBD)或几等 编程语言,ISaGRAF生成独立于硬件的可执行代码,从工作站平台下装到现场设备后实现对过程设备的监测、控制和管理。
2.ISaGRAF 的变量和功能块
ISaGRAF中的变量由变量字典定义。变量没有物理地址,但可以有网络地址,并可以驻留内存中。变量可按类型分为布尔型、模拟型、时间型、信息型和功能块。变量也可按作用域分为全局型和局部变量两类。ISaGRAF的变量有内部、输入、输出、整型或实型(对模拟量)等属性。硬件设备I/O具有全局范围。 变量的名称可由16个字母和数宇组成的符号表示。
(1) 布尔型变量:
布尔型变量取值True及False·两种。
(2) 模拟型变量
模拟型变量的取值为32位带符号的整数,如123,——12,16#FCE,8#1756,2#010等;也可取32位带符号的浮点格式,如 123.0,1.765E+03等。变量值可以直接转换到各模拟I/O点,并可由点名表域C函数予以描述。
(3) 时间型变量
时间型变量的基本单位为1毫秒。用于t#1h450ms的格式来描述,且在范围0-t#23H59m59s999ms之内。时间变量由定时器实现启停控 制,时间变量值一般只能增加而不能下降。
(4) 信息变量
以单引号括住的任意字符串(除O外)都可以作为信息变量,最大长度为25个字符。
(5) 元件库
元件库由功能子程序和功能块子程序两大类构成。功能子程序(Functions)可以有多达31个的调用函数,但只能有一输出参数,返回值一般就是这个参 数值,且用该功能名来命名。功能块(F.Block)可以接受32个VO输人参数,可以有多个输出参数,且每一个功能块在使用中都应定义唯一的名字。功能 块可以由FBD、①、Sr及IL等写成,也可由C语言编写生成。
3.FBD编程简介
虽然梯形图(LD)编程具有直观的特点,但因ID只能用于布尔型,所以目前较常用的是FBD功能块编程。FBD可以采用布尔型和模拟型等变量,适用于广泛 的工业过程监控和管理,并且有大量的功能块库函数供编程使用。FBD编程中使用公用Common、全局Global和局部Local三种变量域。公用和全 局之间的区别是公用可以由任意程序调用,而全局变量只能由一个程序来调用。用ISaGRAF进行程序开发的步骤如下:第一步:建立程序组和选择实现方法 (SFC、FBD等);
第二步:定义程序结构,如主循环、主顺序结构、各功能块等;
第三步:定义变量,如全局变量、布尔变量、时间变量等;
第四步:设计程序,如编制非SFC程序代码,绘制FBD或ID图等;
第五步:连接输入和输出,如定义PLC I/O模件,将IlO变量与通道连接等;
第六步:运行代码生成,如进行编辑选项设置、生成列表、调试等;
第七步:仿真验证并下装运行。仿真功能可由ISaGRAF的模拟功能提供。ISaGRAF可提供模拟的I/O点信号。
ISaGRAF可以用图1的项目管理器来进行编程开发。选择creation可新建一个项目,选择procl进行该项目的编程管理。选择菜单条的EDIT 时打开项目编程管理窗口如图2所示。该图中示出了ISaGRAF程序组织运行的五个部分即Begin(开始)、Sequential(顺序执行)、 end(结束)、Functions(功能调用)、F.Blocks(功能块)。


4.ISaGRAF的运行
ISaGRAF的运行逻辑如图3,ISaGRAF运行时序框图如图4。ISaGRAF开始运行后即扫描输入变量,输入变量值在执行周期中保持不变。核心软件以同步方式运行。执行周期的长短设置取决于所执行程序段的复杂性、循环周期中待执行程序的尺寸大小、以及所处理的变量数目等。输出变量只在数值有改变时 才更新,程序运行期间核心软件采用内部变量。若实际大于设置的运行周期,则程序溢出。如图3主程序运行后进人初始状态,由运行条件触发后进人正常执行部 分,正常时序由停止运行条件返回初始状态,故障时程序进入限制部分,然后返回初始状态。若实际运行时间小于设置时间,则程序进入等待初始状态,待下一个周期到来再启动下一程序循环执行周期。在一个执行周期中可以设置断点进行调试。程序的组织结构如图5所示。其中main和P2称为主程序或父程序,可由 ISaGRAF自动启动运行。其下一级如SI,NP,IJ及P29等被称作孩儿(Child)程序。ISaGRAF规定孩儿程序只能由自己的父程序调用, 如P110孩儿程序不能由P2父程序调用(除非将P110设置为全局变量)。一个孩儿程序只能有一个父程序,而父程序只能控制自己的孩儿程序。 ISaGRAF也提供了子程序(Subprogram),子程序结构可以用于父程序和孩儿程序段中,子程序可以供主程序调用,且可以有多达31个调用参 数;只返回一个值(通常(Functions)及功能块程序(FunctionBlocks),这些功能(块)程序是通用的,不专用于特殊的主程序,它们位ISaGRAF程序段尾处。



5.ISaGRAF在MAXl000+PLUS分散控制系统的应用实现
MAXl000+PLUS分散控制系统在其组态工具MAXVlJE中集成了ISaGRAF,构成MCS公司的IEC1131—3 ToolSet。该TooLSet由向OInternational公司购买的ISaGRAF和MCS公司对其所做扩充构成。该ToolSet可提供对 IECll31--3五种程序语言的工作站图形组态功能,以及在分散处理单元DPU上的仿真调试和文本管理功能。扩充部分主要功能为:
(1) PIID和项目代号
数据标识FrlD(Pointldentifier)和项目代号(ItemNumber)是MAX系统利用ISaGRAF的两个基本术语和概念。PTID 和Item与MAX系统中的对象属性区别不大,其英语描述易于记忆。简单来说,PTID是对数据对象的唯一描述,而Item是对该对象特性的一种规定。
(a) PTID
PTID是对数据对象的唯一描述,如1# 槽/控制块对象,5#数据点/块,44#模入缓冲区等,都是FTID可描述的对象。FTID一般由DPU中双字节定义,其中高位字节定义I/0卡型号或点 的类型,低位字节点定义点的编号,如OX3000的高字节30表示DPU系统/硬件标志,低字节00表示运行状态(RIJNSTATE);
(b) ITEM
项号ITEM编号从0至255(即0x00至 0xFF),用以描述一个MAX对象的属性,如PID算法对象的PV值、信号极限值等(注意,此处将算法也看作一个对象)。例如0xA0项号,表示一个功能块的模拟输出属性,无论该功能块为数据计算功能块还是PID功能块均适用。
(2) MCS的扩充功能块
在MCS的逻辑控制中大量使用了扩充功能块,如GEF功能块C—g




