3.2 A系列PLC的主要软件资源
3.2.1 A系列PLC的指令结构及数据处理
(1)指令结构
各种型号的PLC,其指令形式和指令功能都大同小异,这里仍以应用较广、功能较强的三菱A系列PLC为例,来讲述PLC指令的结构和分类。了解了指令的结构后,对学习指令的编程将大有帮助。
三菱A系列PLC的指令包括顺控指令、基本指令和应用指令三大类。无论是哪一类指令,其结构均由指令和软元件组成,“指令”表示要实现的功能,“软元件”(也称“操作数”)表示指令要用到的数据。按照指令和软元件的不同组合,A系列PLC的指令结构可分为以下几类。
①纯指令结构 这种结构只有指令部分,没有软元件部分,例如END、FEND、ANB、ORB等。它主要用于控制程序的执行,执行时保留软元件的状态。
②“指令+软元件”结构 按照指令的不同功能来操作软元件。例如:语句“LD X2”,即为此结构,其中,LD为指令部分,X2为软元件。
③“指令+源软元件(S)+目标软元件(D)”结构 用目标软元件和源软元件进行运算(具体进行什么运算,根据所用指令的功能来定),运算结果存入目标软元件中。例如:语句“+K100 D0”即为此结构,其中“+”为指令部分,表示进行16位二进制加法运算,“K100”为源软元件(S),“D0”为目标软元件(D)。语句“+K100 D0”表示将十进制整数100所对应的二进制数,与数据寄存器D0中的数进行加法运算后,再将运算结果存入D0中。
④“指令+源软元件1(S1)+源软元件2(S2)+目标软元件(D)”结构 用源软元件S1和源软元件S2进行运算(具体进行什么运算,根据所用指令的功能来定),运算结果存入目标软元件D中。例如:语句“*K100 D0 D10”即为此结构,其中“*”为指令部分,表示进行16位二进制乘法运算,“K100”为源软元件1(即S1),“D0”为源软元件2(即S2),D10为目标软元件(即D)。语句“*K100 D0 D10”,表示将十进制整数100所对应的二进制数,与数据寄存器D0中的数进行乘法运算后,再将运算结果存入数据寄存器D10中。
⑤其他结构 除上面介绍的四种基本的指令结构外,将①~④种结构进行组合,还可得到其他不同的指令结构。
在第③、④两种指令结构中,均有源软元件(即源数据)和目标软元件(简称目标)。源数据(S)用于操作运算,它既可是常数,也可是位软元件或字软元件。
当源数据为常数时,用来指定进行操作运算的数据值,这个值只能在写程序时确定,程序运行时不能进行修改。
当源数据为位软元件或字软元件时,用来指定存储数据的软元件地址编号。因此在操作运算初始化之前,必须向指定的软元件中存入数据。程序运行时可对指定软元件中的数据进行修改。
目标(D)用来存储操作运算的执行结果,对于要存储数据的软元件必须在目标软元件中加以指定。当指令结构为“指令+源软元件(S)+目标软元件(D)”时,在操作开始之前,必须将用于操作的数据存入目标软元件中(因为目标软元件的数据要参与运算),否则,会出现操作错误。
另外,本节介绍的指令符号均以16位指令为基础,每条指令也只在前面的执行条件为ON时才执行(没有执行条件的指令除外)。若在指令助记符的第一个字符前加“D”,则表示该指令为32位指令;若在指令的末尾加“P”,则表示该指令只在前面的执行条件发生正跳变(从OFF到ON的上升沿)时才执行。例如:指令“+”,表示16位二进制加法运算;指令“D+”,表示32位二进制加法运算;而指令“D+P”,则表示32位二进制数加法运算指令,且该指令仅在前面的执行条件由断(OFF)变为通(ON)的上升沿时,才被执行。
(2)数据处理
1)操作数中软元件的表达方式 操作数中的软元件有以下几种。
①位软元件:X、Y、M、L、S、B、F。
当使用顺控指令时,不能指定超过1位的位处理。例如:LD X1或OUT Y10等。
②常数K、H,或指针P、I,或嵌套级N。
对于16位指令,可处理的十进制数据范围为:-32768~32767(用十六进制数表示为8000H~7FFFH。对于32位指令,可处理的十进制数据范围为:-2147483648~2147483647(用十六进制数表示为80000000H~7FFFFFFFH)。
③字软元件:T、C、D、W、R、A0、A1、Z、V。
④用位软元件的位数(即“数字规格”)指定的字。例如,“K1 X0”表示将X0作为低位(起始位)的“X3~X0”的4位数据。“K4M10”表示将M10作为低位的“M25~M10”的16位数据。“K8M100”表示将M100作为低位的“M131~100”的32位数据。这里对于软元件的首地址(如上例中的X0、M10、M100)没有限制。可见,指定的字的位数为K后面的数字乘4。对于16位指令,K后面的数字设定范围为1~4;对于32位指令,K后面的数字设定范围为1~8。故称“K□”为“数字规格”。可见,对于16位指令,其数字规格为K1~K4;对于32位指令,其数字规格为K1~K8。
2)不同长度数据之间的传送 对于字软元件和位指定软元件之间的数据传送,当数据长度不同时,可按如下规则进行操作。
①“从长到短”的传送:忽略长位数据的高位。
②“从短到长”的传送:长位数据的高位为0。用图形表示见图3-54。
图3-54 长短不同数据的传送