PLC编程实用指南(第2版)
上QQ阅读APP看书,第一时间看更新

1.2 PLC程序语言

关键词:PLC程序语言、IEC 61131 PLC国际标准、GB/T 15969、指令表(IL)、结构化文本语言(ST)、梯形图(LD)、功能块图(FBD)、连续功能块图(CFC)、顺序流程图(SFC)、SAMA图、数控用G语言

PLC程序要用编程语言表达。传统PLC编程语言只有两种,指令表(Instruction List,IL)及梯形图(Ladder Diagram,LD有的称梯形逻辑图,ladder logic diagram,LLD)。而今PLC在各个自动化领域应用的不断推进,为便于各类型的工程技术人员都能使用PLC,PLC厂商都增加了它的编程语言。国际电工委员会也制定与几次修订了PLC编程语言国际标准。1993年,作了全面修订后称之为IEC 61131-3的修订版。我国在1995年11月发布了GB/T 15969-1/2/3/4标准,与IEC 61131-1/2/3/4等同。

该标准推荐了6种编程语言。除了指令表及结构化文本(Structured Text,ST)为文字语言,还有梯形图、功能块图(Function Block Diagram,FBD)、连续功能图(Continuous Function Chart,CFC)及顺序功能图(Sequential Function Chart,SFC)等图形语言。

所推荐的编程语言有如下优点:

开放性,能最大限度地运行于不同制造商的PLC;

灵活性,一个程序的不同部分可使用不同语言;

先进性,支持结构化程序开发、复杂的过程控制及结构化数据;

可靠性,有很强的错误检查和纠正能力。

目前IEC 61131-3编程语言,不仅用于PLC,而且还用于集散型控制系统、工业控制计算机、数控系统和远程终端单元。

如果所有PLC厂商都使用这样的编程语言,那好处将会多多。可减少培训、调试、维护和咨询的浪费;可使高水平软件重复使用;可减少编程中的误解和错误;可连接来自不同程序、项目、公司、地区或国家的部件等。

然而,由于这个标准的建立是在PLC已广泛使用之后,加上它不是强制性标准,所以,有些老的PLC厂商多还是在原来语言的基础上,作了扩展,并没有完全采用这个标准。如日产PLC多数就没有采用功能块图语言。再就是,即使语言名称相同,但细节还是有不少差异的。

倒是我们国产PLC,如和利时公司的LM、LK系列机,是在有了标准之后才开发的。没有与原有PLC的兼容问题,所以能全面采用这个标准。再就是瑞士ABB公司的PLC也使用标准规定的6种语言编程。

除了以上这6种语言,还有欧姆龙的系统流程语言,过程控制常用的SAMA图(ScientificApparatus Makers Association)语言及数控用G(代码)语言。这些在PLC编程中也有所应用。

再就是,有的PLC也可用计算机的高级语言编程。如GE PLC就可用C语言编程。它的一个C程序块就是用该公司提供的C语言编程工具(Programming Toolkit)编写,并编译为扩展名为EXE(对它的90-70、90-30系列机)或gefiel(对它的PAC机)可执行文件。然后再导入相应的工程软件中,作为程序块供其他用LD、ST、FBD或IL编写的程序块调用。总之,只要有相应的编辑软件与编译系统,用什么语言都可编程。

1.2.1 指令表

指令表也叫助记符。有的称布尔助记符(Boolean Memonic),也叫列表,是基于字母符号的一种低级文本编程语言。类似计算机的汇编语言,它用拼音文字(可用多国文字)的缩写及数字代表各相应指令。西门子称之为STL语言。这个语言在欧洲很常用。绝大多数PLC都使用有这种助记符指令。

指令表语言是由一系列指令组成的语言。每条指令在新一行开始,指令由操作符和紧随其后的操作数组成,操作数是指在IEC61131-3的“公共元素”中定义的变量和常量。有些操作符可带若干个操作数,这时各个操作数用逗号隔开。指令前可加标号,后面跟冒号,在操作数之后可加注释。

IL是所谓面向累加器(Accu)的语言,即每条指令使用或改变当前Accu内容。IEC61131-3将这一Accu标记为“结果”。通常,指令总是以操作数LD(“装入Accu命令”)开始。

表1-1所示为4个厂商用这个语言写出的功能相同的程序。

表1-1 助记符(或STL)语言程序

978-7-111-39745-8-Chapter02-12.jpg

这里列了5条指令。除第5条外,其他几条都含有三个部分:

指令地址:这里的第一条,为0,标志该指令存于PLC程序存储区的位置。一般讲,指令总是从0地址的指令开始顺序执行,一直执行到最后一条指令为止。所以,确定指令的地址是重要的。不过,由于编程工具及编程软件的发达,在送入指令时,这个地址多是自动生成的。

操作码:这里的第一条为LD,用它告知PLC应该进行什么操作,是PLC指令的核心,是必不可缺的。其他几个地址的指令码各家的拼写不同,但含义相同。

操作数:是操作码操作的对象。各厂商PLC操作数的拼写多不相同。如这里的第一条操作数,有的为000.00,有的为X000,有的为I0.0,有的为%IX0.0。指令有无操作数,以及有多少操作数,视操作码而定。如这里的第五条END指令,它只是表示程序到此结束,就没有操作数。

西门子、和利时程序不用END指令表示程序结束,后面无指令即表示程序的结束,系统会自行处理。

指令表语言容易记忆、便于操作,还便于用简易编程器编写程序,与其他语言多有一一对应关系,有些其他语言无法表达的程序,用它都可表达。是PLC编程最基本的语言。但是,指令表语言转换为其他语言非常困难。除非指令表操作符的使用范围及书写格式受到严格的限制,才有可能实现转换。此外,用助记符语言编的程序,可读性较差。所以,目前已不常用。有的公司编程软件,如AB公司的RSLogix5000,现在已不使用了。

1.2.2 结构化文本语言

结构化文本语言是基于文本的高级编程语言。它与BASIC语言、PASCAL语言或C语言等高级语言相类似。只是为了PLC应用方便,在语句的表达及语句的种类等方面都做了简化。

ST语言没有单一的指令,只有由一组指令构成的含义完整的各种语句。具体语句有:赋值语句、条件语句、选择语句、循环语句及其他语句。实质上讲,它也是PLC指令系统的一部分。

1.赋值语句

其格式为

变量A:=表达式;(∗这是注解∗)

它有被赋值变量(变量A)、赋值符号(:=)、表达式、结束分号(;)及注解组成。注解不是必要的,而其他则不可缺少。其含义是,进行表达式运算,运算结果赋值给被赋值变量。而表达式则是由变量、运算符及括号组成。表1-2为ST语言使用的运算符。

表1-2 ST语主使用的运算符

978-7-111-39745-8-Chapter02-13.jpg

此外,系统还提供有初等数学函数,可在表达式中使用。这些函数见表1-3。

表1-3 ST语言使用的初等数学函数

978-7-111-39745-8-Chapter02-14.jpg

提示:不同品牌PLC的ST语言所提供的函数、运算符可能略有不同。

以下就是ST语言的赋值语句。它把一组变量进行逻辑运算,然后再赋值给变量“work”。

978-7-111-39745-8-Chapter02-15.jpg

这里“work”、“start”及“stop”为布尔变量。使用之前一般要先定义。在“(∗”与“∗)”之间为程序注解。它表达的就是以前介绍过的起、保、停(电路)逻辑。

2.条件语句

ST语言有“假如、那么”语句。可用于逻辑处理。有多种格式。如上述work赋值也可用条件语句实现。即

978-7-111-39745-8-Chapter02-16.jpg

3.Case(选择)语句

其格式为

978-7-111-39745-8-Chapter02-17.jpg

上述语句的含义为,当整形变量值为1,执行语句1。当整形变量值为2,执行语句2……余类推。如果没有合适的值,则执行语句m。

4.循环语句

循环语句可使一些语句重复执行。有FOR loop、WHILE loop及REPEAT loop,与计算机高级编程语言循环语句相当。

5.其他语句

包括EXIT语句(与IF语句配合,可根据条件终止重复语句执行)、RETURN语句(用以结束本功能块,返回调用它的主程序)、功能块调用语句等。

提示:如同其他语言,同样为ST语言,各PLC厂商的细节,不完全一样。

结构化文本语言功能比图形语言强,可读性比指令表语言好。用它编写复杂的程序,既方便,又易读,是很有发展前途的PLC编程语言。它也是计算机编程人员的偏爱。但是,结构化文本语言对编程人员的计算机的技能要求较高,而且不如图形语言直观。所以,目前用得还不大普及。如欧姆龙PLC只是在自编功能块的程序中可使用它。

1.2.3 梯形图

梯形图来源于美国,是一种基于梯级的图形符号布尔语言。它通过连线,也称链接元素,把PLC指令、功能及功能块的梯形图符号连接在一起,以表达所调用PLC指令、功能或功能块,以及它们执行的前后顺序。

1.梯形图元素

根据编程标准规定,梯形图的语言元素有连线、触点、线圈以及功能或功能块。只是不同的PLC其含义不完全相同。特别是传统的PLC也没有这么多元素。

(1)连线。有左右垂直母线以及水平链路、垂直链路。左右垂直母线画在梯形图左右两侧,称电源柱,也称电力轨线。左侧垂直母线名义上为功率流起点。水平链路、垂直链路也就是梯形图内部的小横、竖线。功率流从左向右通过内部小横、竖线,经触点流向相关的线圈、功能、功能块。最终到达右侧的电力轨线,也即功率流的终点。

(2)触点。有常开触点、常闭触点、正转换感应触点及负转换感应触点等。具体功能见有关指令说明。在梯形图中它用水平链路、垂直链路相互连接,最终连接到左垂直母线。并为连接在其后的线圈、功能或功能块的执行建立逻辑条件。

(3)线圈。有正常线圈、反向线圈、设置(锁存)线圈、复位(取消锁存)线圈、正转换感应线圈、负转换感应线圈及暂停线圈等。线圈通常跟在触点或功能和功能块后面,但个别PLC(如施耐德)在它们后面也可以连接触点。线圈也是梯形图程序的输出。同样的逻辑条件,不同线圈有不同的输出。具体输出情况见有关指令说明。

(4)功能及功能块。除了线圈,可产生输出的还有功能及功能块。它的调用还可运用EN/ENO机制,即在所调用功能或功能块的输入加EN端,输出加ENO端。当此功能或功能块无误运行,则EN=ENO;否则EN≠ENO。用此可方便应对调用出错。

2.梯形图梯级

有了水平链路、垂直链路,即可把若干个梯形图相关图形元素,即指令,连成一个梯级(Rung,有的称节,有的称为Network)。它是一组前后连贯,能代表一个完整逻辑含义的梯形图指令集。是设计梯形图程序的基本单位。

梯形图的各个梯级则由垂直母线连接成连通的整体(但有的厂商母线不是连通的)。从而构成完整的PLC梯形图程序。只是为了方便,有时右垂直母线可以省略。这样的图形类似于梯子,梯形图也因此而得名。

3.梯形图特点

梯形图语言与电气原理图相对应,与原有继电器逻辑控制技术相一致,易于被电气技术人员使用。与原有的继电器逻辑控制技术不同的是,梯形图中的功率流(Power Flows)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念相区别。

提示:梯形图的左母线好像电气原理图的电源线一样,一般不直接与输出类指令(相当于电气原理图的负载)相连,中间总要有能建立逻辑条件的一些指令(相当于电气原理图的控制元件)。但有的PLC也允许这么做。

用梯形图符号编的PLC程序,很像电气原理图。图1-4a为电气原理图,图1-4b为梯形图,可知它们是何等的相似。图1-4b为施耐德公司Naza PLC用的梯形图,图上既注有直接地址(如%Q0.4),又注有符号地址(如M1),很便于理解。

978-7-111-39745-8-Chapter02-18.jpg

图1-4 电气原理图梯形图对比

图1-5所示为与表1-1对应的梯形图程序。图1-6所示为监控时看到PLC控制情况。图1-6a表示10.00点已工作。图1-6b表示Q0.0点已工作。图1-6c表示Y000点已工作。图1-6d表示%QX0.0已工作。

978-7-111-39745-8-Chapter02-19.jpg

图1-5 与表1-1对应的梯形图程序

978-7-111-39745-8-Chapter02-20.jpg

图1-6 监控时梯形图程序

978-7-111-39745-8-Chapter02-21.jpg

图1-7 同是实现增计数功能但梯形图表示不同

4.梯形图问题

梯形图程序表达的指令顺序,一般为先上后下,先左后右。即图上方、左方的梯形图指令、功能及功能块先执行,而下方、右方的梯形图指令、功能及功能块后执行。但用它表达的顺序关系,不如用助记符或ST语言清楚,弄不好,易出现歧义。图形过分复杂时,还容易出错。所以,有的PLC程序如不能用梯形图表达时,最终多还是要用助记符或ST语言表达。

再就是,用梯形图编程,要用图形编程器(或带有图形编程能的简易编程器),或用个人计算机、并配置相应的编程软件。

此外,尽管已有标准对梯形图语言做过规定,但由于它是PLC的传统编程语言,由于历史原因,不同厂商PLC的梯形图符号,以至于相同PLC,但编程软件版本不同也还有不少差别。如三菱PLC梯形语言,使用GX-work2编程软件就有简单梯形图语言及结构化梯形图语言可选。简单梯形图语言是用触点及线圈构成梯形图。结构化梯形图语言则增加功能及功能块的调用。同样可实现的功能,其图形符号及指令数量都不完全相同。图1-7所示为同是调用增计数指令,实现的功能基本相同,但梯形图的表示却不同。

从图1-7a、b可知,它把计数器当做线圈看待,只是加有计数值设定(如该图K5)。线圈名为C1,即它的内部器件(计数器)。而图1-7c、d则为调用计数功能块。用所定义名为C_1的结构,而不用计数器这个内部器件。

提示:为了衔接本书大部分三菱PLC程序仍使用简单梯形图编程。

最后是,梯形图语言不便于数据封装;不易于程序重用;不支持数据结构编程;程序执行不够灵活,执行算术操作的也有局限性。正是以上梯形图语言的这些局限性,所以,近来才开发有其他的一些编程语言。

1.2.4 功能块图

PLC还用有功能块图(FBD)语言。它是一种对应于逻辑电路的图形语言。与电子线路图中的信号流程图非常相似,在程序中,它可看作两个过程元素之间的信息流。FBD广泛地用于过程控制。

图中功能块有输入端、输出端。如图1-8所示,为和利时PLC用的功能块程序。这里有两个功能块,一为逻辑“OR”功能块,另一为“AND”功能块。前者的输出作为后者的输入。

978-7-111-39745-8-Chapter02-22.jpg

图1-8 功能块图

图1-8的“OR”块类似于逻辑电路的“或门”,含义为逻辑或。“AND”块类似于逻辑电路的“与门”,含义为逻辑与。该图“OR”块有两个输入,一个为%IX0.0,另一为%Q0.0。“OR”的输出直送给“AND”块。“AND”块的两个输入。一来自“OR”块,另一来自%I0.1的非(这里的小圆圈为逻辑非之意)。AND功能块的输出为%Q0.0。显然,图1-8表达的操作数间逻辑关系,与本书第1章的图1-4程序相似,也是起、保、停逻辑。

功能块图语言是用图形化的方法,以功能模块为单位,描述控制功能。逻辑关系清晰,便于理解。特别是控制规模较大、控制关系较复杂的系统,用它表达将更为方便。

此外,一些含有标准功能的程序,用功能块语言则更便于调用。目前,PLC厂商推出一些高功能及高性能的硬件模块的同时,多提供与其有关的功能块图程序,这为用户使用这些硬件模块及进行编程提供了很大方便。

功能模块图语言占用内存较大,执行时间也较长,因此,这种设计语言多只在大、中型可编程序控制器和集散控制系统的编程和组态中采用。欧姆龙PLC即使为大、中型机也不用这种语言。但提供有供梯形图语言使用的系统功能块。

1.2.5 连续功能图

连续功能图与功能块语言类似。也是按需要选用种种功能块。每个功能块也有输入、输出。块间的联系也用连线。所不同的是,它更灵活,块的位置可任意摆放,特别有信号反馈时,画起来更方便。

为了块的执行有明确的顺序,它的每个块的右上角都标有序号。而这个标注,在功能图语言中是没有的。只是它在实际表达时,这个标号也可选择不显示。

978-7-111-39745-8-Chapter02-23.jpg

图1-9 连续功能图程序

图1-9所示为和利时PLC用的连续功能图程序。也是起、保、停逻辑。这里的功能块就是随意摆放的。它的输出%QX0.0以反馈的形式作为功能块OR的输入。但它有标号。所以,肯定是先“或”、后“与”,再输出,不会有歧义。

提示:功能块图及连续功能图语言在DCS系统编程中用的较多。此外,由于这两种语言差别不大,有时,仅使用功能块图语言。因而,有的也把IEC 61131-3自动化编程语言说成5种,而不是6种。

1.2.6 顺序功能图

顺序功能图来源于佩特利(Petri)网,是IEC61131-3图形化语言中的一种,以描述控制程序的顺序为特征。具有图形表达方式,能简单、清楚地描述系统的所有现象,并能对系统中存有的像死锁、不安全等反常现象进行分析和建模。并可在此基础上编程。所以,得到了广泛的应用。

其实,顺序功能图语言仅仅是一种组织程序的图形化方式。其使用要与其他语言配合,否则无法实现其功能。所以,严格地讲,它不能算是完整的编程语言。

1.顺序功能图组成

由步、有向线、转移等组成。每个步含有相应的动作。而步间的转换靠其间的转移条件实现。

(1)步(Step)。是系统工作顺序组成部分,用方框表示。分有初始步、活动步、不活动(休止)步三种。初始步,与系统初始状态对应的步。活动步,正处于工作阶段。不活动步,处于等待工作阶段。一个步是否为活动步,即是否处于激活状态,则取决于上一步及与其相应的转移。

(2)动作(Action)。是步的组成部分,一个步含有一个或多个动作,用一个附加在步上的矩形框来表示。每一动作中的程序代码都可以用IEC的任一语言如ST、FBD、LD或IL来编写。每一动作都有一个修饰词(Qualifier),用来确定步激活时其动作什么时候执行。具体修饰词有:

N(非存储类型):步变激活时动作执行,不活动步时动作终止。

S(置位,存储):步变激活时动作执行启动,步变为不活动步时动作继续,直至动作被复位。

R(复位):终止被S、SD、SL、DS起动的动作。

L(时间限制):步激活动作起动,至步不活动或设定时间到。

D(时间延迟):步激活时延迟定时器起动,延迟结束步仍活动,动作起动至步不活动止。

P(脉冲):步活动时,起动执行一次动作。

SD(存储与时间延迟):延迟后动作起动,直至复位。

DS(延迟与存储):延迟后步仍活动,动作起动,直至复位。

SL(存储与时间限制):步活动时起动动作,直至设定时间到或复位。

(3)有向连线。从上到下、从左到右的步间连线,或非前两方向则加箭头的步间连线。

(4)转移。有向连线上与其垂直的短线。与转移相关的逻辑条件,用文字、布尔代数表达式、图形符号标于转换短线旁。

2.顺序功能流程图步转移规则

步的转移指的是有向线相连的前后步激活状态的转换,即原休止的(后)步激活,而原激活的(前)步休止。步间转移的规则是:①步间的转移逻辑条件为真;②被转移步的前一步是活动的。不满足此两条件,都将不能转移。为了启动顺序功能流程图程序的执行,总是要指定一个初始步,其标志为S0,是程序运行开始时被激活的那个步。有了这个初始步,则随着相应转移逻辑条件满足,流程图中步的激活状态将逐步转换,直至最后一步被激活,或根据有向线指定路线不停地循环转换。

3.顺序功能流程图主要形式

根据结构的不同,顺序功能流程图可分为以下几种形式:单序列控制、并行序列控制、分支结构序列、转移序列等。

图1-10所示为一段“顺序功能图语言”编写的程序。

图中S0(起始步)、S1、S2、S3为步,t1、t2、t3、t4、t5为“转移”。“转移”的条件是位逻辑值。为1转换,进入(激活)下一步,而原来步的激活则终止。为0不转换,停留在所在步,执行所在步的程序。图中t1条件为梯形图编程,t2为逻辑图编程。图中S0步转换到S1、S2是分支结构,到底转换到哪个步,要依逻辑条件t1(转换到步S1条件)、t4(转换到步S2条件)哪个先满足确定。而S1、S2转换S3是逻辑或,执行S1步及t2为1,则从S1转换到S3,执行S2步及t5为1,则从S2转换到S3。S3往下转换,则由逻辑条件t3确定。至于在各个“步”中含有多少动作,以及各动作的程序代码是什么,即PLC要做什么,可用不同语言编写。这里略。

978-7-111-39745-8-Chapter02-24.jpg

图1-10 顺序功能图程序

总之,功能表图编程语言的特点是:

(1)以功能为主线,条理清楚,便于对程序操作的理解和沟通;

(2)对大型的程序,可分工设计,采用较为灵活的程序结构,可节省编程时间和调试时间;

(3)常用于系统的规模较大、程序关系较复杂的场合;

(4)只有在已“激活”的步中指令才被扫描,而在未“激活”的步中的指令的则不予扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。

提示:表面上看,顺序功能图语言与梯形图语言的步进指令有点类似。但前者的内涵要丰富得多。

提示:同样称SFC语言,但有的是合乎标准的,称IEC标准语言。其Action有以上修饰词。有的做了简化,一个Step仅一个Action,而且也没有什么修饰词,更便于使用。多数编程软件可在使用标准SFC与简化SFC之间做选择。

1.2.7 系统流程语言

以上介绍的PLC编程语言虽是国际标准语言,还是太专业了,不易被非专业人员接受。还应当有类似计算机可视化或组态软件那样的语言。欧姆龙公司C1000F、C120F等机型用的系统流程语言就是这样的语言。

系统流程语言所定义的指令也是告知PLC该做什么及怎样去做的图形符号,但不与电气硬件符号与规则相关联,也不与计算机的逻辑符号相关联。

系统流程语言只与说明系统工作的流程图(Flow chat)相关联。故可很容易为熟悉系统,但不懂电气、又不懂得计算机的技术人员所接受。

1.编程过程

(1)画出过程流程图(Process flow chat),说明控制系统任务及可编程序控制器作用。

(2)画简化流程图(General Flow chat),明了、简单地说明控制动作执行顺序。

(3)画详细流程图(detailed Flow chat),把简化流程图细化,目的是能依此编写指令。这相当于梯形图语言的梯形图。

(4)编写指令。在详细流程图的基础上进行。要编写指令码与数据(地址)。这个工作,相当于从梯形图到语句表的翻译工作。

2.实例说明

用PLC控制机械手工作,其工作情况如图1-11所示。

(1)工作过程。起动→臂转到位置A→取工件→臂转到位置B→放工件→臂再到位置A→……如此不断重复着。

(2)画简化流程图。用流程图表达这个过程,如图1-12所示。

978-7-111-39745-8-Chapter02-25.jpg

图1-11 机械手工作概况

1—LS3检查工件抓取 2—LS1顺时针转 3—PB1起动按钮 4—LS2逆时针转 5—传送带A 6—传送带B

978-7-111-39745-8-Chapter02-26.jpg

图1-12 工作过程示意图

(3)画详细流程图。把图1-12的流程细化,用符号表示,标以操作数,即为详细流程图。

操作数根据动作而定。如起动,它是输入动作,其操作数即为起动按钮接到PLC的输入点。如点号为0000,则起动的操作数为0000。再如臂转动从B到A,它是输出动作,若这个动作的电磁阀线圈接到PLC的输出点,点号为0200,则这个动作的操作数为0200等。

动作则用符号表示,输入动作这里用AND,输出用OUT。因为输入条件有个是否具备的问题。条件不具备,就要等待。故等待也是动作,其符号用WAIT。

图1-13中未解释的还有LBL0为标号0,为指令在图或程序中的位置标识。JMP为跳转,执行它,要求PLC跳转去执行标号指定的指令。OUT之后再加NOT,表示输出动作禁止。与原梯形图的OUT-NOT含义相同。

此外,详细流程图还要把一些动作分解开。如臂转到位置A,分解成向位置A转动及等待是否到位置A两步。事实上,PLC对动作的准确控制也要有这两步。

详细流程图的一个步,用一个框表示。框中的符号为动作,数字为点号。

978-7-111-39745-8-Chapter02-27.jpg

图1-13 详细流程图

(4)编写指令。有了详细流程图,即可编写PLC的指令表。表1-4即为与图1-9对应的指令表。

表1-4 指令表

978-7-111-39745-8-Chapter02-28.jpg

把表中的语句通过编程器(与梯形图语句用的编程器不同)送入PLC,再运行程序,如其他条件也具备,即可使PLC进行上述动作的控制。只要起动条件具备,机械手将不停地从A处取工件放到B处。若起动条件不具备,则机械手停止在B处。

由于系统流程语言有等待指令,其执行程序不同于梯形图语言。如本程序用了多个等待,这里的第一个等待条件不满足,即0000不为ON,则PLC就不执行后继指令,只在①处循环等待。0000 ON后,执行②,继而执行③,并又在③处等待。它的程序不是周而复始地不断执行着,而是用到哪个指令就执行哪个指令。

3.系统流程语言特点

(1)较容易理解,不懂得电路的人,也可理解。尽管这里介绍的只是几个最简单的指令。

(2)对输入的响应比梯形图语言快。因为梯形图语言中的指令,有用、无用都要执行。而系统流程语言则需要时才执行,总的执行指令的周期短。

只是使用这种语言的欧姆龙PLC,目前还很少进入中国市场。可能今后会有所变化。

1.2.8 SAMA图及G编程语言

SAMA图语言是Scientific Apparatus Makers Association(SAMA)科学仪器制造商协会开发的一种工程组态图。包含各种图形符号(功能模块)和连接线(通常情况下,模拟量为实线,逻辑量为虚线)。

SAMA图使用各种图符,如加、减、乘、除、微分、积分、或门、与门、切换、最大值、最小值、上限幅、下限幅等,表达控制系统的运算与控制处理。图1-14所示为它的常用图形符号。

978-7-111-39745-8-Chapter02-29.jpg

图1-14 SAMA图形符号

978-7-111-39745-8-Chapter02-30.jpg

图1-14 SAMA图形符号(续)

SAMA图在DCS中用得很多。欧姆龙的回路控制模块使用的编程语言也与此类似。集成在CX-one中的CX-Process Tool软件就是用这个语言编程。

此外,还有数控用G(代码)语言。在欧姆龙PLC调用运动模块的时候也会用到它。集成在CX-one中的CX-Motion软件就是用这个语言编程。

本节已介绍了很多编程语言。其实,不管用什么语言编程,一般讲,同一公司的产品,几种语言的程序多都有对应关系。利用所提供的编程软件多都可从一种语言的程序,转换成另一种语言的程序。所以,本书使用的主要是梯形图语言。