IEC61131-3标准
该国际标准的制定,是IEC工作组在合理地吸收、借鉴世界范围的各可编程序控制器(PLCs)厂家的技术、编程语言、方言等的基础之上,形成的一套新的国际编程语言标准 。IEC 61131-3国际标准随着可编程序控制器(PLCs)技术、编程语言等的不断进步也在不断地进行着补充和完善。
61131-3国际标准得到了包括有美国AB公司、德国西门子公司等世界知名大公司在内的众多厂家的共同推动和支持,它极大地改进了工业控制系统的编程软件质量及提高了软件开发效率;它定义的一系列图形化语言和文本语言,不仅对系统集成商和系统工程师的编程带来很大的方便,而且对最终用户同样会带来很大的方便;它在技术上的实现是高水平的,有足够的发展空间和变动余地,使得能很好地适应发展。IEC 61131-3标准最初主要用于可编程序控制器(PLCs)的编程系统,但它目前同样也适用于过程控制领域、分散型控制系统、基于控制系统的软逻辑、SCADA等。61131-3国际标准正在受到越来越多的国外公司、厂商的重视和采用,61131-3国际标准因其具有的诸多优点,也正在受到越来越多的国内公司、厂商的重视和采用。
IEC 61131国际标准包括8部分:Part 1: 综述;Part 2: 硬件;Part 3: 可编程语言;Part 4: 用户导则;Part 5: 通信;Part 6:现场总线通信;Part 7:模糊控制编程;Part 8:编程语言的实施方针。IEC 61131-3是IEC 61131中最重要、最具代表性的部分。IEC 61131-3国际标准将是下一代PLC的基础。IEC 61131-5是IEC 61131的通信部分,通过IEC 61131-5,可实现可编程序控制器与其它工业控制系统,如机器人,数控系统,现场总线等的通信。
采用IEC 61131-3国际标准的优点:
因采用一致的IEC 61131-3国际标准编程,各个PLC厂家的编程系统都是统一的,因而,对用户来说具有如下优点:
减少了人力资源,如培训、调试、维护和咨询的浪费
高水平软件再使用性,它聚焦于解决控制中的问题
减少了编程中的误解和错误
适用于宽环境范围的编程技术:通用的工业控制
连接来自不同程序、项目、公司、地区或国家的部件
IEC 61131-3标准包括两部分:编程和变量。编程部分描述了两个重要模型:IEC 软件模型和通讯模型。变量定义了编程系统中需要的的数据类型。
IEC61131-3是当今世界第一个为工业自动化控制系统的软件设计提供标准化编程语言 的国际标准。此前,国际上没有出现过有实际意义、为制定通用的控制语言而开展的标准化 活动。这显然是注意到由于DCS等以数字技术为基础的控制装置在发展进程中过于专有化,给用户带来的大量不便。这个标准将现代软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合,又对当代种类繁多的工业控制器中的编程概念及语言进行了标准化。它为可编程控制器软件技术的发展,乃至整个工业控制软件技术的发展,起着举足轻重的推动作用。可以说,没有编程语言的标准化便没有今天 PLC走向开放式系统的坚实基础。为了使标准的规定适用于广泛的应用范围,又能为 PLC制造厂商所接受和支持,IEC61131-3规定了二大类编程语言即文本化编程语言和图形化编程语言。前者包括指令清单语 言(IL)和结构化文本语言(ST);后者则有梯形图语言(LD)和功能块图语言(FBD)。在 标准的文本中没有把顺序功能图(SFC)单独列入编程语言,而是将它在公用元素中予以规范。这就是说,不论在文本化语言中,或者在图形化语言中,都可以运用 SFC的概念、句法 和语法。但习惯上也把它叫做另一种编程语言。
这五种编程语言都是依据工业控制的基本元器件及由其构成的网络或电路,采用某种在计算机上仿真它们的工作原理和功能而形成的。梯形图(LD)语言是将并行动作的机电元件(诸如继电器触点和线圈、定时器、计数器等)网络加以模型化。功能块图(FBD)语言 则是将并行动作的电子元件(诸如加法器、乘法器、移位寄存器、逻辑运算门等)的网络予以模型化。而结构化文本(ST)语言将典型的信息处理任务(如在通用的高级语言 Pascal 中的使用数值算法)予以模型化。指令表(IL)语言却是将汇编语言中控制系统的低层编程 予以模型化。顺序功能图(SFCs)将时间驱动和事件驱动的顺序控制设备和算法模型化。 值得注意的是,IEC 61131-3 允许在同一个 PLC中使用多种编程语言,允许程序开发人员对每一个特定的任务选择最合适的编程语言,还允许在同一个控制程序中其不同的程序模 块用不同的编程语言编制。这些规定妥善继承了 PLC发展历史中形成的编程语言多样化的现实,又为 PLC软件技术的进一步发展提供了足够的空间。
IEC61131-3的程序组织单元POU(program-organization-unit)分为三种:程序(Program)、功能块(function block)和功能(function)。
程序是软件POU中最高级的组成成分,它能调用功能块和功能,访问PLC信息,实现复杂、实时的控制。
功能块概念是IEC 61131-3标准编程系统的一个重要的特征。任何功能块可以用其它的更小的更易管理的功能块来编程,这样就可以由许多的功能块创建一个有层次的结构合理的程序。IEC 61131-3还允许程序设计人员利用现有的功能块和其它的软件元件生成新的功能块。
功能也是IEC 61131-3标准中的一个重要概念,但在软件模型中未表现出来,它常常使人们与功能块混淆。功能是一些在程序执行过程中的软件元件,这些软件元件对一系列特定的输入值会产生相应的输出结果,如算术功能COS(),SIN()等。IEC 61131-3标准中有大量的用于处理不同数据类型的功能。
POU类型 关键字 含义
程序 PROGRAM 主要程序:分配I/O、全局变量和访问路径
功能块 FUNCTION_BLOCK 具有输入输出的块,是最常使用的POU
功能 FUNCTION 用于基本操作,具有一个返回值
功能:能够被指定参数,但是没有静态变量(不保存),也就是说,对于相同的输入,必有相同的输出。它可能有多个输入,但只有一个返回值。
功能块:能够被指定参数,并有静态变量。对于相同的输入,其输出被其内部变量和外部变量所影响。输入输出数量没有限制。
程序:为最高的组织单元,能访问PLC的I/O信息,并使他们访问到其他的POUs。
非常重要而有趣的是功能、功能块可以嵌套定义:
第一层:IEC61131-3中已经定义了数十个功能以及数个功能块。
第二层:PLCopen在此基础上定义了数十个用于运动控制的功能块,如单轴控制MC_Velocity,多轴控制的MC_Camin等,包米勒支持绝大多数的运动控制功能块。
第三层:包米勒在PLCopen定义的运动控制功能块的基础上根据不同的应用开发了一系列功能块,它们被封装在库中,在用户需要的时候调用。比如飞剪相关的功能块位于flyingcut库中,用户定义相应的输入输出来调用它。
第四层:在包米勒的编程软件中,用户仍然可以将前述的所有功能块组合起来,做成新的功能块。这种自定义功能块是非常有趣的。
IEC61131-3国际标准的编程语言包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD - Function Block Diagram)、顺序功能图(SFC - Sequential Function Chart)。文本化编程语言包括:指令表(IL-Instruction List)和结构化文本 (ST-Strutured Text)。
1 梯形图(LD-Ladder Diagram)
梯形图是IEC61131-3的三种图形化编程语言的一种,它可被用来描叙功能,功能块和程序即程序组织单元(POU-Porgramm Orgnization Unit)的行为,以及顺序功能图(SFC - Sequential Function Charts)中的行为和转移。
2 顺序功能流程图(SFC-Sequential Function Chart)
顺序功能流程图是IEC61131-3三种图形化语言中的一种,是一种强大的描述控制程序的顺序行为特征的图形化语言,可对复杂的过程或操作由顶到底地进行辅助开发。SFC允许一个复杂的问题逐层地分解为步和较小的能够被详细分析的顺序。
3 功能块图(FBD-Function Block Diagram)
功能块图用来描述功能、功能块和程序的行为特征,还可以在顺序功能流程图中描述步、动作和转变的行为特征。功能块图与电子线路图中的信号流图非常相似,在程序中,它可看作两个过程元素之间的信息流。功能块图普遍地应用在过程控制领域。
功能块用矩形块来表示,每一功能块的左侧有不少于一个的输入端,在右侧有不少于一个的输出端,功能块的类型名称通常写在块内,但功能块实例的名称通常写在块的上部,功能块的输入输出名称写在块内的输入输出点的相应地方。
4 指令表(IL-Instruction List)
IEC61131-3的指令表(IL-Instruction List)语言是一种低级语言,与汇编语言很相似,是在借鉴、吸收世界范围的PLC厂商的指令表语言的基础上形成的一种标准语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描动作和转变的行为。
指令表语言能用于调用,如有条件和无条件地调用功能块和功能,还能执行赋值以及在区段内执行有条件或无条件的转移。指令表语言不但简单易学,而且非常容易实现,可不通过编译和连编就可以下载到PLC。IEC61131-3的其它语言如功能块图、结构化文本等都可以转换为指令表语言。
5 结构化文本(ST)
结构化文本(ST)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。
结构化文本(ST)语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本(ST)非常适合应用在有复杂的算术计算的应用中。
结构化文本(ST)程序格式自由,可以在关键词与标识符之间任何地方插入制表符、换行字符和注释。对于熟悉计算机高级语言开发的人员来说,结构化(ST)语言更是易学易用。此外,结构化文本(ST)语言还易读易理解,特别是用有实际意义的标识符、批注来注释时,更是这样。
61131-3国际标准得到了包括有美国AB公司、德国西门子公司等世界知名大公司在内的众多厂家的共同推动和支持,它极大地改进了工业控制系统的编程软件质量及提高了软件开发效率;它定义的一系列图形化语言和文本语言,不仅对系统集成商和系统工程师的编程带来很大的方便,而且对最终用户同样会带来很大的方便;它在技术上的实现是高水平的,有足够的发展空间和变动余地,使得能很好地适应发展。IEC 61131-3标准最初主要用于可编程序控制器(PLCs)的编程系统,但它目前同样也适用于过程控制领域、分散型控制系统、基于控制系统的软逻辑、SCADA等。61131-3国际标准正在受到越来越多的国外公司、厂商的重视和采用,61131-3国际标准因其具有的诸多优点,也正在受到越来越多的国内公司、厂商的重视和采用。
IEC 61131国际标准包括8部分:Part 1: 综述;Part 2: 硬件;Part 3: 可编程语言;Part 4: 用户导则;Part 5: 通信;Part 6:现场总线通信;Part 7:模糊控制编程;Part 8:编程语言的实施方针。IEC 61131-3是IEC 61131中最重要、最具代表性的部分。IEC 61131-3国际标准将是下一代PLC的基础。IEC 61131-5是IEC 61131的通信部分,通过IEC 61131-5,可实现可编程序控制器与其它工业控制系统,如机器人,数控系统,现场总线等的通信。
采用IEC 61131-3国际标准的优点:
因采用一致的IEC 61131-3国际标准编程,各个PLC厂家的编程系统都是统一的,因而,对用户来说具有如下优点:
减少了人力资源,如培训、调试、维护和咨询的浪费
高水平软件再使用性,它聚焦于解决控制中的问题
减少了编程中的误解和错误
适用于宽环境范围的编程技术:通用的工业控制
连接来自不同程序、项目、公司、地区或国家的部件
IEC 61131-3标准包括两部分:编程和变量。编程部分描述了两个重要模型:IEC 软件模型和通讯模型。变量定义了编程系统中需要的的数据类型。
IEC61131-3是当今世界第一个为工业自动化控制系统的软件设计提供标准化编程语言 的国际标准。此前,国际上没有出现过有实际意义、为制定通用的控制语言而开展的标准化 活动。这显然是注意到由于DCS等以数字技术为基础的控制装置在发展进程中过于专有化,给用户带来的大量不便。这个标准将现代软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合,又对当代种类繁多的工业控制器中的编程概念及语言进行了标准化。它为可编程控制器软件技术的发展,乃至整个工业控制软件技术的发展,起着举足轻重的推动作用。可以说,没有编程语言的标准化便没有今天 PLC走向开放式系统的坚实基础。为了使标准的规定适用于广泛的应用范围,又能为 PLC制造厂商所接受和支持,IEC61131-3规定了二大类编程语言即文本化编程语言和图形化编程语言。前者包括指令清单语 言(IL)和结构化文本语言(ST);后者则有梯形图语言(LD)和功能块图语言(FBD)。在 标准的文本中没有把顺序功能图(SFC)单独列入编程语言,而是将它在公用元素中予以规范。这就是说,不论在文本化语言中,或者在图形化语言中,都可以运用 SFC的概念、句法 和语法。但习惯上也把它叫做另一种编程语言。
这五种编程语言都是依据工业控制的基本元器件及由其构成的网络或电路,采用某种在计算机上仿真它们的工作原理和功能而形成的。梯形图(LD)语言是将并行动作的机电元件(诸如继电器触点和线圈、定时器、计数器等)网络加以模型化。功能块图(FBD)语言 则是将并行动作的电子元件(诸如加法器、乘法器、移位寄存器、逻辑运算门等)的网络予以模型化。而结构化文本(ST)语言将典型的信息处理任务(如在通用的高级语言 Pascal 中的使用数值算法)予以模型化。指令表(IL)语言却是将汇编语言中控制系统的低层编程 予以模型化。顺序功能图(SFCs)将时间驱动和事件驱动的顺序控制设备和算法模型化。 值得注意的是,IEC 61131-3 允许在同一个 PLC中使用多种编程语言,允许程序开发人员对每一个特定的任务选择最合适的编程语言,还允许在同一个控制程序中其不同的程序模 块用不同的编程语言编制。这些规定妥善继承了 PLC发展历史中形成的编程语言多样化的现实,又为 PLC软件技术的进一步发展提供了足够的空间。
IEC61131-3的程序组织单元POU(program-organization-unit)分为三种:程序(Program)、功能块(function block)和功能(function)。
程序是软件POU中最高级的组成成分,它能调用功能块和功能,访问PLC信息,实现复杂、实时的控制。
功能块概念是IEC 61131-3标准编程系统的一个重要的特征。任何功能块可以用其它的更小的更易管理的功能块来编程,这样就可以由许多的功能块创建一个有层次的结构合理的程序。IEC 61131-3还允许程序设计人员利用现有的功能块和其它的软件元件生成新的功能块。
功能也是IEC 61131-3标准中的一个重要概念,但在软件模型中未表现出来,它常常使人们与功能块混淆。功能是一些在程序执行过程中的软件元件,这些软件元件对一系列特定的输入值会产生相应的输出结果,如算术功能COS(),SIN()等。IEC 61131-3标准中有大量的用于处理不同数据类型的功能。
POU类型 关键字 含义
程序 PROGRAM 主要程序:分配I/O、全局变量和访问路径
功能块 FUNCTION_BLOCK 具有输入输出的块,是最常使用的POU
功能 FUNCTION 用于基本操作,具有一个返回值
功能:能够被指定参数,但是没有静态变量(不保存),也就是说,对于相同的输入,必有相同的输出。它可能有多个输入,但只有一个返回值。
功能块:能够被指定参数,并有静态变量。对于相同的输入,其输出被其内部变量和外部变量所影响。输入输出数量没有限制。
程序:为最高的组织单元,能访问PLC的I/O信息,并使他们访问到其他的POUs。
非常重要而有趣的是功能、功能块可以嵌套定义:
第一层:IEC61131-3中已经定义了数十个功能以及数个功能块。
第二层:PLCopen在此基础上定义了数十个用于运动控制的功能块,如单轴控制MC_Velocity,多轴控制的MC_Camin等,包米勒支持绝大多数的运动控制功能块。
第三层:包米勒在PLCopen定义的运动控制功能块的基础上根据不同的应用开发了一系列功能块,它们被封装在库中,在用户需要的时候调用。比如飞剪相关的功能块位于flyingcut库中,用户定义相应的输入输出来调用它。
第四层:在包米勒的编程软件中,用户仍然可以将前述的所有功能块组合起来,做成新的功能块。这种自定义功能块是非常有趣的。
IEC61131-3国际标准的编程语言包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD - Function Block Diagram)、顺序功能图(SFC - Sequential Function Chart)。文本化编程语言包括:指令表(IL-Instruction List)和结构化文本 (ST-Strutured Text)。
1 梯形图(LD-Ladder Diagram)
梯形图是IEC61131-3的三种图形化编程语言的一种,它可被用来描叙功能,功能块和程序即程序组织单元(POU-Porgramm Orgnization Unit)的行为,以及顺序功能图(SFC - Sequential Function Charts)中的行为和转移。
2 顺序功能流程图(SFC-Sequential Function Chart)
顺序功能流程图是IEC61131-3三种图形化语言中的一种,是一种强大的描述控制程序的顺序行为特征的图形化语言,可对复杂的过程或操作由顶到底地进行辅助开发。SFC允许一个复杂的问题逐层地分解为步和较小的能够被详细分析的顺序。
3 功能块图(FBD-Function Block Diagram)
功能块图用来描述功能、功能块和程序的行为特征,还可以在顺序功能流程图中描述步、动作和转变的行为特征。功能块图与电子线路图中的信号流图非常相似,在程序中,它可看作两个过程元素之间的信息流。功能块图普遍地应用在过程控制领域。
功能块用矩形块来表示,每一功能块的左侧有不少于一个的输入端,在右侧有不少于一个的输出端,功能块的类型名称通常写在块内,但功能块实例的名称通常写在块的上部,功能块的输入输出名称写在块内的输入输出点的相应地方。
4 指令表(IL-Instruction List)
IEC61131-3的指令表(IL-Instruction List)语言是一种低级语言,与汇编语言很相似,是在借鉴、吸收世界范围的PLC厂商的指令表语言的基础上形成的一种标准语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描动作和转变的行为。
指令表语言能用于调用,如有条件和无条件地调用功能块和功能,还能执行赋值以及在区段内执行有条件或无条件的转移。指令表语言不但简单易学,而且非常容易实现,可不通过编译和连编就可以下载到PLC。IEC61131-3的其它语言如功能块图、结构化文本等都可以转换为指令表语言。
5 结构化文本(ST)
结构化文本(ST)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。
结构化文本(ST)语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本(ST)非常适合应用在有复杂的算术计算的应用中。
结构化文本(ST)程序格式自由,可以在关键词与标识符之间任何地方插入制表符、换行字符和注释。对于熟悉计算机高级语言开发的人员来说,结构化(ST)语言更是易学易用。此外,结构化文本(ST)语言还易读易理解,特别是用有实际意义的标识符、批注来注释时,更是这样。


小胡