首页 理论教育 IEC 61131-3标准与传统PLC的指令操作区别及注意事项

IEC 61131-3标准与传统PLC的指令操作区别及注意事项

时间:2023-06-27 理论教育 版权反馈
【摘要】:下列程序有四条指令。⑦该指令没有操作数。表2-4 指令表编程语言的指令(续)使用时的注意事项如下:IEC 61131-3标准与传统PLC的指令操作的区别IEC 61131-3标准与传统PLC的指令操作有如下区别:1)传统PLC有三类存储器。

IEC 61131-3标准与传统PLC的指令操作区别及注意事项

指令表编程语言以一系列指令作为编程语言。与传统PLC的指令表编程语言比较,IEC61131-3标准的指令表编程语言更为简单,其原因是采用了修正符、函数和功能块,一些原来用指令执行实现的操作可通过修正符、函数、方法和功能块的调用方便地实现。

例2-1】指令的示例。

下列程序有四条指令。

978-7-111-59695-0-Chapter02-3.jpg

示例程序用于对某设备进行起动和停止控制。程序中,标号为START的指令读取PLC第1输入单元第1位信号(起动按钮),存放到当前结果存储器。第2行是第2个指令,用于将当前结果存储器内容和第10输出单元第1位信号(设备的自保信号)进行或逻辑运算,运算结果仍存放到当前结果存储器。第3行指令用于将当前结果存储器内容和第1输入单元第2位信号(停止按钮)取反后的结果进行与逻辑运算,结果仍存放到当前结果存储器。第4行指令用于将当前结果存储器存放的内容传送到第10输出单元的第1位存放。

1.操作符、修饰符和操作数

指令表编程语言的指令表由一系列指令序列组成。每个指令表示一个新行的开始。它由操作符(可带修饰符)和操作数组成。多于一个的操作数,可用逗号分隔。

操作数可以是文字、枚举值和变量的任意的数据表示。例如,LDA表示读取符号变量A所对应的数值,并送当前结果存储器。AND%IX1.3表示将当前结果存储器的内容与输入单元1的第3位进行与逻辑运算,结果送当前结果存储器。JMPABC表示当前结果存储器的计算值为布尔值1时,程序跳转到标号ABC的位置开始执行。RET是无操作数的操作符,当执行到该指令时,程序将返回到原断点后的指令处执行。断点是由于函数调用、功能块调用或中断子程序等造成的。

传统PLC中对数据存储单元地址的分类与标准的分类有所不同。首先,标准用%表示这些存储单元是直接表示变量的地址;用位置前缀表示输入(I)、输出(Q)和存储器(M)单元;用位(X)、字节(B)、字(W)、双字(D)和长字(L)表示数据存储单元的大小前缀。使用时应注意,传统PLC中,不同制造商产品的地址是不同的,例如,可以直接用0000表示存储器的位0000,也可用I1.0表示第1输入单元的第0位等。

可以在指令前面加一个标识符,称为标号,其后需跟一个冒号“:”。在指令之间可插入空行。

(1)操作符

IEC 61131-3标准对指令表编程语言的操作符进行简化,并规定如表2-2所示的操作符和修饰符。

2-2 指令表编程语言规定的操作符和修饰符

978-7-111-59695-0-Chapter02-4.jpg

(续)

978-7-111-59695-0-Chapter02-5.jpg

①除非另有说明,这些操作符应既可过载也可类型化。

②见本节用于修饰活动解释文字和表达式的求值。

③该指令的操作数应是BOOL数据。

④该操作的结果应是当前结果按位布尔的取反(1的补码)。

⑤JMP指令的操作数必须是一个指令要转移到该处能执行的标号。当JMP指令包含ACTION…END_ACTION结构时,操作数应是带同样结构的标号。

⑥该指令的操作数必须是一个被调用的功能块实例名。

⑦该指令没有操作数。

比较类操作符是将当前结果与比较操作的操作数比较,满足比较条件时,比较的结果为布尔值1。例如,当前结果为2#0000_0101,则比较指令GT%IB5执行时,如果%IB5字节的内容大于2#0000_0101,比较后的当前结果为BOOL#1。反之,比较后的当前结果为BOOL#0。

(2)当前结果

在指令表编程语言中,指令具有如下格式:

标号:操作符 操作数

指令中,操作符用于规定操作的方法,例如,和当前结果存储器进行或逻辑运算,和当前结果存储器进行与逻辑运算等。操作数是操作的对象,它是公用元素中定义的一个文本、一个枚举值或一个变量。

指令执行过程中,数据存取采用的方法是:

result:=result OP operand(当前结果:=当前结果操作符操作数)即正在求值的表达式的值用当前结果与操作符对操作数的操作来替代。

因此,在操作符规定的操作下,当前运算结果与操作数进行由操作符规定的操作运算。运算结果作为新的当前运算结果存放回当前结果存储器。

例2-2】当前结果的替代。

指令AND%IX1被解释为:当前结果:=当前结果AND%IX1。

指令GT%IW10的结果,如果当前结果大于输入字10的值,则为1,否则为0。

需注意,操作符与操作数之间至少需要有一个空格来分隔。标号与操作符之间是冒号。标号用于一些操作,例如,JMP操作的操作数表示跳转的目的地址。(www.xing528.com)

(3)修饰符

修饰符用于对操作符进行修饰。

修饰符圆括号“(”表示操作符的运算被延缓直到遇到右面的圆括号“)”。因此,传统PLC中的程序块操作,主控操作等都可采用该修饰符对实现。表2-3显示一个指令的圆括号序列的两个等效格式。

2-3 圆括号的两种表达格式

978-7-111-59695-0-Chapter02-6.jpg

注:在序号1中,LD操作符可被修饰或LD操作可用其他操作或相应的函数调用进行重复。

这两种格式都可解释为:当前结果:=当前结果AND(%IX1 OR%IX2)。

修饰符N表示操作数的按位布尔值取反(1的补数)。修饰符“C”表示相关指令仅在当前求值结果的值是布尔值1时才执行(如果操作符与N修饰符结合,则为布尔值0)。

例2-3】修饰符N的示例。

指令ANDN%IX2被解释为:当前结果:=当前结果AND NOT%IX2。

修饰符“C”表示相关指令仅在当前求值结果的值是布尔值1时才执行(如果操作符与N修饰符结合,则为布尔值0)。

2.指令

IEC 61131-3标准的指令表编程语言对传统指令表编程语言进行总结,取长补短,采用函数和功能块,使用数据类型的超载属性等,使编程语言更简单灵活,指令更精简。IEC 61131-3第三版增加方法的调用,扩展了面向对象的应用领域。

指令表编程语言简化的各类指令见表2-4。

2-4 指令表编程语言的指令

978-7-111-59695-0-Chapter02-7.jpg

(续)

978-7-111-59695-0-Chapter02-8.jpg

使用时的注意事项如下:

(1)IEC 61131-3标准与传统PLC的指令操作的区别

IEC 61131-3标准与传统PLC的指令操作有如下区别:

1)传统PLC有三类存储器。它们是输入输出存储器、当前结果存储器和堆栈。当执行LD指令时,CPU从操作数对应的输入存储器读取数据并存放到当前结果存储器。执行OUT输出指令时,将当前结果存储器的内容传送到操作数对应的输出存储器,即传统PLC的存储器是位存储器,只能存储位的内容。IEC 61131-3标准规定的存储器可以存储位、字节、字、双字、长字及字符等各种类型的数据或变量。

2)标准规定存储器存储数据类型可以不同,因此,连续的两个运算之间应注意数据类型的匹配。

3)标准规定当前结果存储器内的数据类型可以改变。标准并没有规定操作符组,不同编程系统可用不同方法实现操作符组。表2-5是能够改变当前结果存储器数据类型的操作符组。

2-5 能够改变当前结果存储器数据类型或数值的操作符组

978-7-111-59695-0-Chapter02-9.jpg

4)标准的算术运算类指令可适用于各种不同的数据类型,即具有过载属性。此外,当前结果存储器数据类型成为一般数据类型,因此,能适应各种算术运算需要。传统PLC对数据类型有严格规定,例如,单字或双字的加运算等。即双字运算时,需先进行有关高位字节清零等操作,使程序复杂化。

5)标准的DIV运算将商作为当前结果,而MOD运算将余数作为当前结果。传统PLC中,进行除法运算时,商和余数存放在不同数据存储单元地址。

6)传统PLC中,用CMP等比较类指令,它将比较结果存放在专用存储单元,用户根据该专用存储单元的状态(0或1)确定后续程序的执行。此外,只有大于、小于和等于等指令,没有大于或等于和小于或等于等指令,因此,要将有关指令的结果用或逻辑运算后才能实现大于或等于和小于或等于等指令。标准的比较运算类指令适用于对不同数据类型的变量比较,而不局限于单一位的比较,因此,应用范围大大扩展。

(2)S和R指令

S表示有条件的输出STC指令,R表示有条件输出STCN。因此,当前结果存储器为1时,S操作数指令执行设置输出操作数为1(置位)的操作。同样,R操作数指令执行设置输出操作数为0(复位)的操作,即置位取反的操作。

(3)跳转指令和跳转返回指令

跳转指令JMP是从主程序跳转到子程序的指令。子程序不能用跳转指令跳转到主程序,只能用返回指令RET返回。子程序开始标志是标号,子程序结束标志是RET指令。程序中标号具有唯一性。在子程序中,标号必须位于其第一行的首位,标号与其分隔号“:”之间应有空格。标号应是字母开始的标识符。标号的字符长度与系统有关。SFC编程语言中,在ACTION…END_ACTION结构内使用JMP指令时,操作数应是在同一结构中的一个标号。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈