
(施耐德电气(中国)投资有限公司,北京 100016)
华 镕 男,现任施耐德电气(中国)投资有限公司工业自动化部产品推广经理。 5 五种IEC语言
Unity Pro有五种语言可以对Atrium、Premium、M340以及Quantum自动化平台进行编程。三种图形设计语言包括梯形图 (LD)、功能块图 (FBD) 、顺序功能图(SFC)或者Grafcet;两种文本设计语言包括结构化文本 (ST)、 指令表 (IL)。
对于这五种语言来说,用户可以使用与IEC 61131-3标准兼容的指令集来建立应用程序,这些应用程序可以在不同的平台上运行。Unity Pro软件还对标准指令集进行了扩展。因为这些扩展指令是针对Atrium/Premium/M340和Quantum PLC的,所以它们能支持更复杂应用程序的开发,以最大限度地挖掘和利用这些平台的特性。
5.1 五种语言通用的功能
这五种语言的编辑器都提供了友好的用户界面,可进行写操作、读操作以及对程序进行分析:
(1)指令表 (IL)和结构化文本 (ST)的文本编辑器支持:
● 在插入或者覆盖模式下,输入文本。
● 使用协助对话框,对变量、功能、功能块或赋值指令进行输入。
● 对输入数据进行检查,检测是否有语法或语义错误。检查的结果会通过红色的波浪状下划线或者相关文本颜色来告知用户。
● 用一套颜色系统,在读操作中将文本 (黑色)和运算符 (红色),语言关键字 (蓝色)以及程序注释文字 (绿色)区分开来。
(2)用于梯形图(LD)语言,功能块图 (FBD)语言和顺序功能图(SFC)语言功能的图形编辑器:
● 一套通过鼠标或者键盘,对各种图形符号进行直接访问的图形元素 。
● 一个弹出菜单,可以通过点击鼠标右键进入。
(3)没有数量和长度限制的注释文字。这些注释文字可以作为文本对象被放在任何单元中(图形语言) 或者表达式中的任何位置(文本语言)。
(4)协助性数据输入功能有:
● 访问DFB功能库,变量编辑器或者用来输入注释文字的文本对象。
● 对变量参考表进行初始化。
● 对所选变量的动态数据表进行初始化。
● 显示和修改所选变量的属性。
● 在不使用数据编辑器的情况下,以实时方式创建变量。
(5)“剪切”,“复制”,“粘贴”,“删除”,“移动”,等等。
(6)在文本行内或者页边设置书签,以便于用户可以:
● 在重要的程序段内很容易地确定行的位置 。
● 在编辑器内通过书签,标签或者行号和列号来进行浏览。
5.2 梯形图 (LD) 语言 每一个用梯形图语言编写的程序段或者子程序都由一系列的栏位组成,它们由PLC按照顺序执行。每个栏位由触点、连线、线圈、操作模块、EF/EFB/DFB功能块、转移、子程序调用等图形对象(置于以行和列方式排列的单元内)所组成。

图1 梯形图语言结构程序
5.2.1 程序结构 (程序段或者子程序)
每一个梯形图语言程序段都可能会包含以下内容:
(1)11到64列 (其数量由用户设定);
(2)最多2000行 (程序段内所有的栏位) ;
(3)“混合显示”模式支持对用于栏位变量的注释文字,地址和符号进行不加限制的显示。

图2 在梯形图语言编辑器内的工具栏
5.3 功能块图(FBD)语言, 用于Unity Pro大型和超大型版本
功能块图语言是一种图形设计语言,它基于连接带有变量或参数的功能块来组成。该语言尤其适合于用来编制过程控制的应用程序。

图3 功能块图语言程序
5.3.1 程序结构 (程序段或者子程序)
图形设计语言FBD支持三种功能块:
● 基本块 (EF)
● 基本功能块 (EFB),根据它们的应用类型,被划分为不同的库
● 派生功能块 (DFB),和基本功能块具有同样的结构,不过是由用户使用ST,IL,LD 或者FBD语言编写的。
在同一个程序段内,可以通过特定的功能块来调用子程序。也可以跳转到一个功能块实例。
一个在FBD语言中编写的程序段包含了相当于具有30列和24行的网格信息。功能块位于这些网格上,最小步长为一列的十分之一和一行的十分之一(称为网点)。

图4
5.4 顺序功能图 (SFC)和Grafcet语言
顺序功能图 (和Grafcet)语言可以用来描述自动化系统的顺序流程,使用简单的方框图。这种格式包括了步和转移。
SFC语言处理图表的方式与Grafcet语言并不相同:
● SFC在一个图中只能授予一个令牌。
● Grafcet在一个图表中可以授予多个令牌。 Unity Pro软件有一个用于这两种语言的编辑器。该编辑器带有在应用程序设置中对行为进行定义的选项 (工具/项目设置/语言扩展菜单)。
5.4.1 程序结构 (主任务程序段)

图5 顺序功能图SFC
SFC语言只用在属于主任务的程序段。每一个SFC程序段由一个主流程图程序段步和用于每一个宏步的子程序段组成。该图的内容包括:
● 宏步,它是一个独立步,步中含有一系列步和转移(建立一个多层体系图结构) 。
● 步。
● 在步和转移之间的转移,以及定向连接 。 对应于步和转移的动作和转移条件,可以是以下两种情况:
● 集成到步或者宏步中,在这种情况下,动作或者转移由一个单一的参数来进行定义 。
● 用特定的程序段来处理,在这种情况下,需要执行专门的程序(需要用梯形图,功能块图,结构化文本或者指令表语言进行编程)。
为了检查PLC已经成功地执行了扫描,可以将活动时间(最小,最大)与每一个步相关联。这些时间由用户进行设定。

图6 SFC语言程序结构
5.4.2 程序结构 (在主任务中的程序段)
对于每一个SFC程序段来说,图形编辑器针对以下几个方面所能提供的最大数量为:
● 一个包含32列以及200行,或者6400个单元的网格。步,转移或者跳转分别需要一个单元。
● 1024个步 (宏步以及在宏步中的步)。
● 可以分配给同一个步的动作为20个。
● 在同一时间内激发的步为100个。
● 在同一时间内激发的动作为100个。

图7 SFC图形页面
为了容易地建立基本的流程图,可以先在图形页面中建立“n”个串行步以及“m”个并行步。 然后利用对话框为步(活动时间,动作)和转移(与转移条件相连接的变量)等分配相关联的属性。
5.5 结构化文本(ST)语言
结构化文本语言是一个复杂的算法类型语言,它尤其适合于完成复杂的算术运算,桌面操作,消息管理等方面的功能。

图8 结构化文本
5.5.1 程序结构 (程序段或子程序)
结构化文本语言用于在结构图的基础上,对分析进行直接转换编程。它包含很多表达式,这些表达式由一系列逐行排列的指令构成。对一个指令行所能包含的字符数没有限制 (唯一的限制是针对Premium和Quantum平台的可用程序内存,TSX P57 10...40处理器是一个例外,针对它的内存限制是64Kb)。程序段的长度只受制于应用程序所用内存的容量。
可以直接从工具栏内调用四种预先格式化的表达式结构:
● 有条件的动作: IF...THEN...ELSIF...THEN...ELSE...END-IF;
● 迭代的有条件动作:WHILE...DO...END_WHILE; REPEAT...UNTIL...END_REPEAT;
● 重复的动作: FOR...TO...BY...DO...END_FOR;
● 选择性动作: CASE...OF...ELSE...END_CASE。

图9 ST编辑器
在这些表达式中所使用的操作数为位变量,字变量或者连接到功能块的变量。为了使这些表达式便于读出,语言中使用了不同的颜色,以区分对象,语言关键字和程序注释文字。
作者信息:
华 (施耐德电气(中国)投资有限公司,北京 100016)
|