1.2PLC功能指令
1.2.1 功能指令的基本格式
在许多新的小型PLC和各种大型PLC中,功能指令采用了计算机通用的助记符形式。本节主要介绍FX系列PLC功能指令的格式。
FX系列PLC功能指令的格式采用梯形图和指令助记符相结合的形式,如图1-2-1所示。
图1-2-1PLC功能指令
1)功能指令助记符
从图1-2-1中给出的几条功能指令可以看到,功能指令主要由功能指令助记符和操作元件两大部分组成,如图1-2-2所示。
图1-2-2 功能指令的组成
FX系列PLC的功能指令按功能号编排,每条功能指令都有一个指令助记符。功能指令助记符在很大程度上反映该指令的功能特征。在图1-2-1所示的梯形图中,助记符为MOV的功能指令的功能号为FNC12,这是一条传送指令。助记符为MEAN的功能指令的功能号为FNC45,这是一条取平均值指令。
2)功能指令的操作元件
有的功能指令只需要指定功能编号,如图1-2-1(a)所示,这是一条警戒时钟功能指令,程序中只要标出功能号FNC07即可。但大部分功能指令在指定功能编号的同时,还需指定操作元件。
操作元件分为以下几种:
(1)源操作元件,用[S]表示。在图1-2-1(c)中,功能指令MOV的源操作元件是K100,该功能指令将100这个常数传送到数据寄存器D10中。若用变址功能时,源操作元件表示为[S·]形式。有时源操作元件不止一个,可用[S1·]、[S2·]、[S3·]表示。
(2)目标操作元件,用[D]表示。在图1-2-1(c)中,功能指令MOV的目标操作元件是数据寄存器D10。若使用变址功能时,目标操作元件表示为[D·]形式。目标操作元件不止一个时,用[D1·]、[D2·]、[D3·]表示。
(3)其他操作元件n或m用来表示常数。常数前冠以K表示是十进制数,常数前冠以H表示十六进制数。如图1-2-1(c)中源操作元件是K100,表示是十进制数100。
其他操作元件也可以作为源操作元件或目标操作元件的补充说明,如图1-2-1(b)所示,功能指令的作用是:将D0、D1和D2三个数据寄存器中的数据取平均值后,存放到由地址D4Z指定的数据寄存器中。D0是源操作元件的首地址,K3是源操作的补充说明,指定取值个数,即取D0、D1和D2三个数据寄存器中的数值。
源操作元件和目标操作元件需要注释的项目较多时,可采用n1、n2、n3的形式。
1.2.2 功能指令的规则
1)指令执行形式
FX系列PLC的功能指令有连续执行型和脉冲执行型两种形式。
图1-2-1(a)所示的功能指令为连续执行型。当常开触点X0闭合时,该条传送指令在每个扫描周期都被重复执行。
图1-2-3所示的功能指令为脉冲执行型,助记符后面的符号(P)表示脉冲执行,该条传送指令仅在常开触点X0由断开转为闭合时被执行。
图1-2-3 脉冲执行型指令
对不需要每个扫描周期都执行的指令,用脉冲执行方式可缩短程序处理时间。
2)数据长度
功能指令可处理16位和32位数据。
(1)16位数据。FX系列PLC中数据寄存器D、计数器C0~C199的当前值寄存器存储的都是16位数据,如图1-2-4所示,数据寄存器D0共16位,每位都只有“0”或“1”两个数值。
图1-2-4 16位数据
如图1-2-1(a)和图1-2-3所示两个梯形图中,功能指令传送的数据都是16位数据。
(2)32位数据。在FX系列PLC中,相邻两个数据寄存器可以组合起来,存储32位数据,如图1-2-5所示。
图1-2-5 32位数据
在FX系列PLC中,C200~C234为32位双向计数器,其当前值寄存器为32位寄存器,可作为32位数据寄存器使用。
功能指令中符号(D)表示处理的是32位数据。在如图1-2-6所示的梯形图中,常开触点X0由断开变为闭合时,将D0和D1中的32位数据传送到D10和D11中,其中,D1是高16位,D0是低16位。D1中内容传送到D11中,D0中内容传送到D10中。
图1-2-6 32位数据传送梯形图
处理32位数据时,用元件号相邻的两元件组成元件对。元件对的首元件建议统一用偶数编号,以避免错误。
脉冲执行符号(P)和32位数据符号(D)可以同时使用。
3)位元件
处理数据的元件为字元件,如数据寄存器D、定时器T和计数器中当前值寄存器等。
处理闭合和断开状态的元件为位元件,如输入继电器X、输出继电器Y、辅助继电器M和状态继电器S等。但由位元件组合,也可以构成字元件,进行数据处理。位元件的组合由Kn加首元件来表示。
每4个位元件为一组,组合成一个单元。如KnM0中,n为单元组数,M0为由位元件组合构成字元件的首元件编号。例如K4M0表示由M0~M15组成的16位字元件,最低位是M0,最高位是M15。K8M0表示由M0~M31组合成的32位字元件,最高位是M31,最低位是M0。
由位元件组合而成的字元件格式还有K3X0,K2Y10,K1S10等。
在进行16位数据操作时,参与操作的位元件由Kn中的n指定,n=1~3。如果n=1时,则参与操作的位元件只有4位;如果n=2时,则参与操作的位元件只有8位;如果n=3时,则参与操作的位元件只有12位。这时不足部分的高位均进行零处理。这意味着只能处理正数(符号位为“0”表示正数)。同样,在进行32位数据操作时,Kn中n=1~7,不足部分的高位均进行零处理。
被组合的位元件的首元件编号可以任选,但为避免混乱,建议采用0结尾的元件,如M0、M10、M20等。
4)变址寄存器
FX系列PLC内部有两个变址寄存器V与Z,都是16位数据寄存器,可像其他的数据寄存器一样进行数据的读写。变址寄存器在传送、比较等功能指令中,用来修改操作对象的元件号。例如,在图1-2-7所示的梯形图中,如果V=20,Z=25,则D5V与D25是指同一个数据寄存器(5+20=25),D10Z与D35是指同一个数据寄存器(10+20=35)。该功能指令执行的操作是将D25中的数据传送到D35中。
图1-2-7 变址寄存器梯形图
可以用变址寄存器进行变址操作的元件有输入继电器X、输出继电器Y、辅助继电器M、状态继电器S、分支指令用指针P和由位元件组合而成的字元件首地址,例如KnM10Z,但应注意,n不能用变址寄存器改变其值,即不允许出现K1ZM10。
对32位指令,V、Z是自动组对使用的,V作为高16位,Z作为低16位。32位指令用到变址寄存器中,只需指定Z,即Z就代表了V和Z的组合。
某些情况下使用变址寄存器V和Z,将使程序简化,编程灵活。
1.2.3 FX系列PLC功能指令一览表
FX系列PLC功能指令一览表见表1-2-1,具体的指令功能介绍可从网络上下载《FX编程手册》参考。
表1-2-1 FX系列PLC功能指令一览表
续表
续表
续表