您当前的位置:五五电子网电子知识plc技术PLC入门IEC 1131-3标准 正文
IEC 1131-3标准

IEC 1131-3标准

点击数:7434 次   录入时间:03-04 12:03:42   整理:http://www.55dianzi.com   PLC入门

  五、 IEC 软件模型的优点 IEC 软件模型具有如下优点: 1.在一台PLC中同时装载、启动和执行多个独立的程序:IEC 1131-3标准允许一个“配置”内有多个“资源”,每个“资源”能够支持多个程序,这使得在一台PLC中可以同时装载、启动和执行多个独立的程序,而传统的PLC程序只能同时运行一个程序。 2.实现对程序执行的完全控制能力:IEC1131-3标准的这种“任务”机制,保证了PLC系统对程序执行的完全控制能力。传统PLC程序只能顺序扫描、执行程序,对某一段程序不能按用户的实际要求定时执行,而IEC 1131-3 程序允许程序的不同部分在不同的时间、以不同的比率并行执行,这大大地扩大了PLC的应用范围。 3.IEC软件模型能够适应很广范围的不同的PLC结构:IEC软件模型是一个国际标准的软件模型,它不是针对具体的PLC系统,而是具有很强的适用性。 4. IEC软件模型既能适合小型的PLC系统,也可适合较大的分散系统。 5. IEC软件支持程序组织单元的重用特性:软件的重用性是IEC软件的重要优点。 6. IEC软件支持分层设计:一个复杂的IEC软件通常可以通过一层层的分解,最终分解为可管理的程序单元。

  六、通讯模型根据不同的通讯要求,IEC 1131标准规定了以下四种通讯模型: 1.内部通讯:在程序、功能块和功能内部之间可以互相连接以形成一个网络,数据信息可以通过这个内部的网络进行通讯。 2.局变量通讯:全局变量可以被用来在功能块与其它的程序组织单元之间交换数据信息。 3. 外部变量通讯:IEC 1131的第五部分定义了一个通讯功能块家族来通过一个网络来交换数据。 4.使用存取路径通讯:存取变量提供了一种方法用于从远程设备存取特定的变量。丁一在IEC 1131的第五部分的通讯功能块还能读写远程配置中的ACCESS变量。 IEC 1131标准规定的这四种通讯模型,使得不但在IEC编程系统内部的通讯灵活、便捷,而且还有效地支持了IEC编程系统的功能扩展对通讯提出的要求,使得新一代编程系统可以更有效地适应未来对网络、现场总线、远程通讯等新技术发展的要求。七、公共元素公共元素描述了IEC 1131-3五种编程语言、IEC 软件模型及通讯模型中需用到的全部公共编程元素的变量和数据类型,给出了如何命名这些软件元素、声明变量、变量及数据类型的初始化等规则,是实现IEC 1131-3编程系统不可缺少的有机组成部分。八、结论 IEC 1131-3软件是一个功能强大、设计思想和技术先进并能很好地适应未来发展的编程系统。

  IEC 1131-3 的编程语言(一):文本化语言 IEC 1131-3国际标准的编程语言包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD - Function Block Diagram)、顺序功能图(SFC - Sequential Function Chart)。文本化编程语言包括:指令表(IL-Instruction List)和结构化文本 (ST-Strutured Text)。IEC 1131-3的编程语言是IEC工作组对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程语言标准,它不但适用于PLC系统,而且还适用于更广泛的工业控制领域;IEC 1131-3 的编程工具提供对现场总线系统的支持,并对现场总线装置的软件设计产生了很大影响。本专题将分两部分介绍IEC 1131-3的编程语言,本文是IEC 1131-3编程语言的第一部分,重点介绍IEC 1131-3的两种文本化编程语言;第二部分重点介绍IEC 1131-3的两种三种图形化编程语言,将在下一篇文章作介绍。

一、结构化文本(ST)结构化文本(ST)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。结构化文本(ST)语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本(ST)非常适合应用在有复杂的算术计算的应用中。结构化文本(ST)程序格式自由,可以在关键词与标识符之间任何地方插入制表符、换行字符和注释。对于熟悉计算机高级语言开发的人员来说,结构化文本(ST)语言更是易学易用。此外,结构化文本(ST)语言还易读易理解,特别是当用有实际意义的标识符、批注来注释时,更是这样。

   1.1 操作符结构化文本(ST)定义了一系列操作符用于实现算术和逻辑运算,如逻辑运算符:AND,&,XOR,OR; 算术运算符:<, >, <=, >=, =, <>, +, -, MOD, / 等,此外,还定义了这些操作符的优先级。如下是操作符预算的两个例子: Start := Oilpress AND Stream AND Pump; V : = K*(-W*T)

  1.2 赋值语句 结构化文本(ST)程序既支持很简单的赋值语句,如 X:=Y, 也支持很复杂的数组或结构赋值,如Profile[3]:=10.3+SQRT((Rate+2.0)), Alarm.TimeOn:=RCT1.CDT。

  1.3在程序中调用功能块在结构化文本(ST)程序中可以直接调用功能块。功能块在被调用以前,输入参数被分配为缺省值;在调用后,输入参数值保留为最后一次调用的值。功能块调用的格式如下: FunctionBlockInstance( InputParameter1:=ValueExpression1, InputParameter2:=ValueExpression2, …); ValueExpression1……ValueExpressionN是符合功能块数据类型输入变量,InputParameter1……InputParameterN功能块的输入参数。FunctionBlockInstance是要调用的功能块。

  1.4结构化文本(ST)程序中的条件语句条件语句的功能是,某一条件满足时执行相应的选择语句。结构化文本(ST)有如下的条件语句: l IF …THEN…ELSE条件语句该选择语句依据不同的条件分别执行相应THEN及ELSE语句。该条件语句可以嵌套入另一条件语句中,以实现更复杂的条件语句。条件语句的格式如下: IF<boolean expression_r> THEN <statements1…> ELSE < statements2…> END_IF; “boolean expression_r”可以是“true”或“false”,根据“true”或“false”的情况,程序执行相应的statements1或statements2语句。 l CASE 条件语句该选择语句的执行方向取决于CASE语句的条件, 并有一返回值。实例见最后的应用举例。该条件语句的格式如下: CASE<integer expression_r >OF < integer selector value1> : < statements1…> < integer selector value2> : < statements2…> …… ELSE < statements …> END_CASE; “integer expression_r”可以是一个数值,根据数值的不同执行相应的statements1或statements2等语句。

  1.5 结构化文本(ST)程序中的迭代语句迭代语句适用于需要一条或多条语句重复执行许多次的情况,迭代语句的执行取决于某一变量或条件的状态。应用迭代语句应避免迭代死循环的情况。 l FOR…DO 该迭代格式语句允许程序依据某一整型变量迭代。该迭代格式语句格式如下: FOR <initialize iteraion variable> TO <final value expression_r> BY <increment expression_r> DO <statements…> END_FOR “initialize iteraion variable”是迭代开始的计数值,“final value expression_r” 迭代结束的计数值。迭代从“initialize iteraion variable”开始,每迭代一次,计数值增加“increment expression_r”,计数值增加到“final value expression_r”,迭代结束。结构化文本(ST)程序中还有其它的迭代语句,如WHILE … DO,REPEAT … UNTIL等,迭代原理与FOR…DO 格式基本相同。此外,结构化文本(ST)的迭代语句中还有EXIT,RETURN两种格式,分别用于程序的返回和退出。

  1.6 编程举例:用结构化文本(ST)程序编功能块本程序是一用结构化文本(ST)程序编功能块的例子。该实例描述的是如何用功能块控制箱体中的流体,箱体可以通过阀门被注满和倒空,如图所示,箱体的重量由一个称重单元监视。功能块通过比较两个输入值FullWeight和EmptyWeight以确定箱体是满的还是空的。图一 水箱控制及功能块示意图 该功能块提供了一个“Command”输入,该输入有四种状态,1.给箱体加水;2. 保持不变;3.起动“Stirrer”;4. 清空箱体。实现该功能块算法的结构化文本(ST)程序如下: (*箱体状态*) TYPE_T_STATE: (FULL,NOT_FULL,EMPTIED);END_TYPE; (*阀门状态*) TYPE_T_VALVE: (OPEN,SHUT);END_TYPE; FUNCTION_BLOCK TankControl VAR_IN (**) Command:SINT; Weight :REAL; FullWeight,EmptyWeight : REAL; END_VAR VAR_OUT (**) FillValve :T_VALVE:=SHUT; EmptyValve :T_VALVE:=SHUT; StirSpeed :REAL:=0.0; END_VAR VAR State :=T_STATE :=EMPTYIED; END_VAR

  二、指令表(IL-Instruction List) IEC 1131-3的指令表(IL-Instruction List)语言是一种低级语言,与汇编语言很相似,是在借鉴、吸收世界范围的PLC厂商的指令表语言的基础上形成的一种标准语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描动作和转变的行为。指令表语言能用于调用,如有条件和无条件地调用功能块和功能,还能执行赋值以及在区段内执行有条件或无条件的转移。指令表语言不但简单易学,而且非常容易实现,可不通过编译和连编就可以下载到PLC。IEC 1131-3的其它语言如功能块图、结构化文本等都可以转换为指令表语言。2.1指令表语言结构指令表语言是由一系列指令组成的语言。每条指令在新一行开始,指令由操作符和紧随其后的操作数组成,操作数是指在IEC 1131-3的“公共元素”中定义的变量和常量。有些操作符可带若干个操作数,这时各个操作数用逗号隔开。指令前可加标号,后面跟冒号,在操作数之后可加注释。 IL是所谓面向累加器(Accu)的语言,即每条指令使用或改变当前Accu内容。IEC 1131-3将这一Accu标记为“结果”。通常,指令总是以操作数LD(“装入Accu命令”)开始。指令表程序如下所示:

上一页  [1] [2] [3] [4]  下一页


本文关键字:暂无联系方式PLC入门plc技术 - PLC入门