发表于:2017/8/2 14:40:05
#0楼
传统的plc编程语言只有两种,指令表(IL)及梯形图(LD),有的称梯形逻辑图(LLD)。而今为便于各类型的工程技术人员都能使用PLC,PLC厂商都增加了它的编程语言。国际电工组织也制定与几次修订了plc编程语言国际标准。并在1993年做了全面修订后称之为IEC 61131-3的修订版。我国在1995年11月发布了GB/T 15969-1/2/3/4标准,与IEC 61131-1/2/3/4等同。该标准推荐了6种编程语言,除了指令表及结构化文本(ST)为文字语言,还有梯形图、功能块图(FBD)、连续功能图(CFC)及顺序功能图(SFC)等图形语言。
不同型号的PLC编程软件对编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)编程语言都以支持。
目前,IEC 61131-3编程语言不仅用于PLC,而且还用于集散型控制系统、工业控制计算机、数控系统和远程终端单元。
由于这个标准的建立是在PLC已广泛使用之后,加上它不是强制性标准,所以,有些老的PLC厂商还是在原来语言的基础上做了扩展,并没有完全采用这个标准。再就是,即使语言相同,但细节还是有不少差异。
倒是国产PLC,如和利时公司的LM、LK系列机,是在有了标准之后才开发的,能全面采用这个标准。再就是ABB公司的PLC也使用标准规定的6中语言编程。
下面就给大家简要介绍一番:
1.指令表(IL)
指令表语言是PLC编程最基本的语言。但是,用它编的程序,可读性较差,目前已不常用。故不在此做介绍。
指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。
指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。其特点与梯形图语言基本一致。
2.结构化文本语言(ST)
ST语言与BASIC语言、PASCAL语言或C语言等类似。它没有单一的指令,只有由一组指令构成的含义完整的各种语句。具体语句有赋值语句、条件语句、选择语句、循环语句及其他语句(EXIT语句、RETURN语句、功能块调用语句等)。
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。
结构化文本编程语言采用计算机的描述方式来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C
语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。直观性和操作性较差。
不同品牌PLC的ST语言所提供的函数、运算符可能略有不同。
ST语言功能比图形语言强,但不如图形语言直观,目前用的还不大普及。如欧姆龙plc只是在自编功能块的程序中才可使用它。
同样为ST语言,各PLC厂商的细节不完全一样。
3.梯形图(LD)
梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。
梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。
梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。
梯形图的左母线好像电气原理图的电源线一样,一般不直接与输出类指令(相当于电气原理图的负载)相连,中间总要有能建立逻辑条件的一些指令(相当于电气原理图的控制元件)。但有的PLC也允许这么做。
用梯形图符号编的PLC程序,很像电气原理图。如上图所示。图b为施耐德公司Naza PLC用的梯形图。
下图所示为与IL语言程序对应的梯形图程序
关于梯形图的文章有很多,在此不再赘述。
4.功能块图(FBD)
FBD语言(一种对应于逻辑电路的图形语言),与电子线路图中的信号流图非常相似。FBD广泛地用于过程控制。
FBD语言是以功能模块为单位,描述控制功能。特别是控制规模较大、控制关系较复杂的系统,用它表达将更为方便。
目前,PLC厂商推出一些高功能及高性能的硬件模块的同时,多提供与其有关的功能块图程序,这为用户使用这些硬件及进行编程提供了很大方便。
FBD语言占用内存较大,执行时间较长,因此,这种语言多只在大、中型可编程序控制器和集散控制系统的编程和组态中采用。
功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。
功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
5.连续功能图(CFC)
CFC与FBD类似,也是按需要选用种种功能块。所不同的是,它更灵活,块的位置可任意摆放,特别有信号反馈时,画起来更方便。
为了块的执行有明确的顺序,它的每个块的右上角都标有序号。但在实际表达时,这个标号也可选择不显示。
FBD及CFC语言在dcs系统编程中用得较多。此外,由于这两种语言差别不大,有时,仅使用FBD语言。因而,有的也把IEC 61131-3自动化编程语言说成5种。
6.顺序功能图(SFC)
SFC语言以描述控制程序的顺序为特征,以图形方式,简单、清楚地描述系统的所有现象,并能对系统中存有的像死锁、不安全等反常现象进行分析和建模,并可在此基础上编程。所以,得到了广泛的应用。
其实,SFC语言仅仅是一种组织程序的图形化方式。其实际使用要与其它语言配合,否则无法实现其功能。所以,严格地讲,它不能算是完整的编程语言。
1)组成
步(Step)
用方框表示,分有初始步、活动步、不活动(休止)步三种。一个步是否为活动步,即是否处于激活状态,则取决于上一步及与其相应的转移。
动作(Action)
动作是步的组成部分,一个步含有一个或多个动作,用一个附加在步上的矩形框来表示。每一动作中的程序代码都可以用IEC的任一语言如ST、FBD、LD或IL来编写。每一动作还有一个修饰词(Qualifier),用来确定步激活时其动作什么时候执行或终止。
有向连线
从上到下、从左到右的步间连线。也可用加箭头做非上下、左右的步间连线。
转移
在有向连线上的垂直短线。与转移相关的逻辑条件,用文字、布尔代数表达式、图形符号标注在转移短线旁。
2)SFC转移规则
步的转移指的是有向连线相连的前后步激活状态的转换。
步间转移的规则是:
①步间的转移逻辑条件为真;
②被转移步的前一步是活动的。
不满足此两条件,将不转移。
为了启动顺序功能流程图程序的执行,总是要指定一个初始步,其标志为S0,是程序运行开始时被激活的那个步。有个这个初始步,则随着相应转移逻辑条件满足,流程图中步的激活状态将逐步转换,直至最后一步被激活,或根据有向线指定路线不停地循环转换。
3)SFC主要形式
根据结构的不同,可分为以下几种形式:单序列控制、并行序列控制、分支结构序列、转移序列等。
下图所示为一段SFC语言编写的程序。
同样称SFC语言,但有的是合乎标准的,如欧姆龙CJ2所用的,其Action有以上修饰词。有的没有,使用时要看具体软件的说明。
顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统的规模校大,程序关系较复杂的场合。
顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。
不同型号的PLC编程软件对编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)编程语言都以支持。
目前,IEC 61131-3编程语言不仅用于PLC,而且还用于集散型控制系统、工业控制计算机、数控系统和远程终端单元。
由于这个标准的建立是在PLC已广泛使用之后,加上它不是强制性标准,所以,有些老的PLC厂商还是在原来语言的基础上做了扩展,并没有完全采用这个标准。再就是,即使语言相同,但细节还是有不少差异。
倒是国产PLC,如和利时公司的LM、LK系列机,是在有了标准之后才开发的,能全面采用这个标准。再就是ABB公司的PLC也使用标准规定的6中语言编程。
下面就给大家简要介绍一番:
1.指令表(IL)
指令表语言是PLC编程最基本的语言。但是,用它编的程序,可读性较差,目前已不常用。故不在此做介绍。
指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。
指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。其特点与梯形图语言基本一致。
2.结构化文本语言(ST)
ST语言与BASIC语言、PASCAL语言或C语言等类似。它没有单一的指令,只有由一组指令构成的含义完整的各种语句。具体语句有赋值语句、条件语句、选择语句、循环语句及其他语句(EXIT语句、RETURN语句、功能块调用语句等)。
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。
结构化文本编程语言采用计算机的描述方式来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C
语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。直观性和操作性较差。
不同品牌PLC的ST语言所提供的函数、运算符可能略有不同。
ST语言功能比图形语言强,但不如图形语言直观,目前用的还不大普及。如欧姆龙plc只是在自编功能块的程序中才可使用它。
同样为ST语言,各PLC厂商的细节不完全一样。
3.梯形图(LD)
梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。
梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。
梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。
梯形图的左母线好像电气原理图的电源线一样,一般不直接与输出类指令(相当于电气原理图的负载)相连,中间总要有能建立逻辑条件的一些指令(相当于电气原理图的控制元件)。但有的PLC也允许这么做。
用梯形图符号编的PLC程序,很像电气原理图。如上图所示。图b为施耐德公司Naza PLC用的梯形图。
下图所示为与IL语言程序对应的梯形图程序
关于梯形图的文章有很多,在此不再赘述。
4.功能块图(FBD)
FBD语言(一种对应于逻辑电路的图形语言),与电子线路图中的信号流图非常相似。FBD广泛地用于过程控制。
FBD语言是以功能模块为单位,描述控制功能。特别是控制规模较大、控制关系较复杂的系统,用它表达将更为方便。
目前,PLC厂商推出一些高功能及高性能的硬件模块的同时,多提供与其有关的功能块图程序,这为用户使用这些硬件及进行编程提供了很大方便。
FBD语言占用内存较大,执行时间较长,因此,这种语言多只在大、中型可编程序控制器和集散控制系统的编程和组态中采用。
功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。
功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
5.连续功能图(CFC)
CFC与FBD类似,也是按需要选用种种功能块。所不同的是,它更灵活,块的位置可任意摆放,特别有信号反馈时,画起来更方便。
为了块的执行有明确的顺序,它的每个块的右上角都标有序号。但在实际表达时,这个标号也可选择不显示。
FBD及CFC语言在dcs系统编程中用得较多。此外,由于这两种语言差别不大,有时,仅使用FBD语言。因而,有的也把IEC 61131-3自动化编程语言说成5种。
6.顺序功能图(SFC)
SFC语言以描述控制程序的顺序为特征,以图形方式,简单、清楚地描述系统的所有现象,并能对系统中存有的像死锁、不安全等反常现象进行分析和建模,并可在此基础上编程。所以,得到了广泛的应用。
其实,SFC语言仅仅是一种组织程序的图形化方式。其实际使用要与其它语言配合,否则无法实现其功能。所以,严格地讲,它不能算是完整的编程语言。
1)组成
步(Step)
用方框表示,分有初始步、活动步、不活动(休止)步三种。一个步是否为活动步,即是否处于激活状态,则取决于上一步及与其相应的转移。
动作(Action)
动作是步的组成部分,一个步含有一个或多个动作,用一个附加在步上的矩形框来表示。每一动作中的程序代码都可以用IEC的任一语言如ST、FBD、LD或IL来编写。每一动作还有一个修饰词(Qualifier),用来确定步激活时其动作什么时候执行或终止。
有向连线
从上到下、从左到右的步间连线。也可用加箭头做非上下、左右的步间连线。
转移
在有向连线上的垂直短线。与转移相关的逻辑条件,用文字、布尔代数表达式、图形符号标注在转移短线旁。
2)SFC转移规则
步的转移指的是有向连线相连的前后步激活状态的转换。
步间转移的规则是:
①步间的转移逻辑条件为真;
②被转移步的前一步是活动的。
不满足此两条件,将不转移。
为了启动顺序功能流程图程序的执行,总是要指定一个初始步,其标志为S0,是程序运行开始时被激活的那个步。有个这个初始步,则随着相应转移逻辑条件满足,流程图中步的激活状态将逐步转换,直至最后一步被激活,或根据有向线指定路线不停地循环转换。
3)SFC主要形式
根据结构的不同,可分为以下几种形式:单序列控制、并行序列控制、分支结构序列、转移序列等。
下图所示为一段SFC语言编写的程序。
同样称SFC语言,但有的是合乎标准的,如欧姆龙CJ2所用的,其Action有以上修饰词。有的没有,使用时要看具体软件的说明。
顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统的规模校大,程序关系较复杂的场合。
顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。