高级指令是PLC的指令系统中功能较强的指令。FP1系列PLC的高级指令功能号分散在F0~F355的范围内,每一条指令一般由功能号、助记符和操作数三部分构成,如图3-1所示。
高级指令的功能号为该指令的编号,用来输入指令;操作数为指令中参与运算的参数或参数的存储单元地址,一般分为源操作数S(Source)和目的操作数D(Destination)两种,对应的源操作数和目的操作数的个数(一个、两个、三个或没有)和类型取决于具体的指令,详细内容参见各条高级指令的具体说明。
图3-1 高级指令的一般格式
FP1系列PLC的高级指令分为数据传送、二进制(Binary)算术运算、BCD码(Binary Coded Decimal)算术运算、逻辑运算、数据比较、数据转换、数据移位、可逆计数、双向移位、数据循环移位、位操作、特殊指令、高速计数器和脉冲输出控制指令等12类。
数据传送指令(F0~F17)包括单字/双字传送、二进制/十六进制(Hcxadecimal)传送、块传送、数据复制以及数据交换等指令,如表3-1所示。
表3-1 数据传送指令
(续)
1.F0(MV)
F0(MV)是16位数的传送指令,其功能是将16位二进制常数或16位数据存储单元中的数据传送到另一个16位数据存储单元中,指令格式及操作数范围如表3-2所示。当触发信号使X1接通后,将十六进制常数H3456传送到DT1中。
表3-2 指令格式及操作数范围①
①表中S的参数没有限制表示该指令中的源操作数可以是输入/输出继电器(X/Y/WX/WY)、内部继电器(R/WR)、定时/计数器的设定值/当前值存储单元(SVn/EVn)、索引寄存器(IX/IY)、十进制(K)/十六进制(H)/浮点型(f)常数和索引修正值等8种操作数中的任意一种,D的参数为除常数的WX以外的操作数表示该指令中的目的操作数为8种操作数中除常数和WX以外的6种。16位数据是指16位二进制数或一个字单元,32位数据是指32位二进制数或两个字单元,后面类似的说明意义与此相同,不再重复说明。
【例3-1】编程实例
当X4接通时,下面的程序将计数器C100的设定值存储单元SV100中的数据传送到数据寄存器DT2中,如图3-2所示。
2.F1(DMV)
该指令为32位数的传送指令,功能是将32位二进制常数或32位数据存储单元中的数据传送到另一个32位数据存储单元中,指令格式及操作数范围如表3-3所示。
图3-2 实例梯形图
表3-3 指令格式及操作数范围
当触发信号使X2接通时,内部继电器WR1、WR0中的数据分别传送到数据存储器DT1、DT0中。低16位存储单元为(S,D)时,高位就自动指定为(S+1,D+1)。
【例3-2】 当X1接通时,下面的指令将H12345678传送到数据寄存器DT5、DT4中,即指令执行后。DT4=H5678,DT5=H1234,如图3-3所示。
3.F2(MV/)
该指令为16位数的求反传送指令,功能是将16位二进制常数或16位数据存储单元中的数据取反后传送到另一个16位数据存储单元中,指令格式及操作数范围如表3-4所示。
图3-3 实例梯形图
表3-4 指令格式及操作数范围
当触发信号使X0接通时,输入继电器WX1中的数据求反后传送到WR0中。
【例3-3】 若WR1=H1234,则X1闭合时,下面的指令将WR1中的16位数取反后传送到数据寄存器DT5中,即指令执行后,DT5=HEDCB,如图3-4所示。
4.F3(DMV/)
该指令为32位数的求反传送指令,其功能是将32位二进制常数或32位数据存储单元中的数据取反后传送到另一个32位数据存储单元中,指令格式及操作数范围如表3-5所示。
图3-4 实例梯形图
表3-5 指令格式及操作数范围
当触发信号使X0接通时,输入继电器WX2、WX1中的数据求反并传送到内部继电器WR1、WR0中。
【例3-4】 编程实例
若WR0=H2345,WR1=H6789,则X1闭合时,下面的指令将WR1、WR0中的32位数取反后分别传送到数据寄存器DT6、DT5中,即指令执行后,DT5=HDCBA,DT6=H9876,如图3-5所示。
5.F5(BTM)
该指令为位传送指令,功能是将S中的任意一位传送到D中的任意一位,传送的位地址由n设定,指令格式及操作数范围如表3-6所示。
图3-5 实例梯形图
表3-6 指令格式及操作数范围
当触发信号X0接通时,数据寄存器DT0中第4位数据被传送到DT1的第14位上。源存储单元和目的存储单元所指定的位地址由n来设定,n的设定格式如图3-6所示。(www.xing528.com)
当指定的位地址都是0,即H000时,可缩写为H0。
图3-6 n的设定格式
6.F6(DGT)
该指令为十六进制数的传送指令,其功能是将一个16位常数或存储单元中的十六进制数的若干位(1~4位)传送到另一个16位存储单元的指定位中。每一个单元为4位十六进制数,地址为D3~D0,指令格式及操作数范围如表3-7所示。
表3-7 指令格式及操作数范围
当触发信号X0接通时,数据寄存器DT100的第0位十六进制数将被传送到输出字继电器WY0的第0位。16位数据的十六进制位的规定如表3-8所示。
表3-8 十六进制位的规定
源存储单元和目的存储单元所指定的位地址由n来设定,n的设定格式如图3-7所示。
当指定的位地址都为0,即H000时,可缩写为H0。
【例3-5】 程序实例
图3-7 n的设定格式
若WR1=H89EF,DT5=H1234,则X1闭合时,下面的指令将WR1中4位十六进制数的D2、D3位分别传送到数据寄存器DT5中的D1、D2位,D0、D3位保持不变即指令执行后,DT5=H1894,如图3-8所示。
【例3-6】 编程实例
若WR1=H4567,DT5=HABCD,则X1闭合时,下面的指令将WR1中4位十六进制数的D1、D2、D3、D0位分别传送到数据寄存器DT5中的D2、D3、D0、D1位。即指令执行后,DT5=H5674,如图3-9所示。
图3-8 实例梯形图
图3-9 实例梯形图
7.F10(BKMV)
该指令为数据块传送指令,其功能是将指定的存储单元中的数据块(从源存储单元的首地址S1到末地址S2的数据)传送到另一个指定的存储单元开始的存储区中,指令格式及操作数范围如表3-9所示。
表3-9 指令格式及操作数范围
当触发信号使X1接通时,该指令将WR3~WR8的连续6个单元的数据块分别传送到DT2开始的6个单元(DT2~DT7)中。需要注意的是,指令中的源操作数S1和S2必须是同类型的存储单元,且S1≤S2。
8.F11(COPY)
该指令为数据复制指令,其功能是将指定的一个常数或存储单元中的数据复制到另一个指定的存储单元开始的存储区中(从目的存储单元的首地址D1到末地址D2),指令格式及操作数范围如表3-10所示。
表3-10 指令格式及操作数范围
当触发信号使X1接通时,该指令将DT3中的数据分别复制到WR1开始的4个单元(WR1~WR4)中。
需要注意的是,指令中的目的操作数D1和D2必须是同类型的存储单元,且D1≤D2。
9.F15(XCH)
该指令是16位数据交换指令,功能是将两个16位数据存储单元中的数据互相交换,指令格式及操作数范围如表3-11所示。
表3-11 指令格式及操作数范围
当触发信号使X1接通时,继电器WR1中的数据与DT0中的数据互相交换。
需要注意的是,如果指令前面是保持型的触发信号,则在每一个扫描周期该指令都执行一次,所以通常要在触发信号后加上前沿或后沿微分指令,这样才能得到预期的结果。
10.F16(DXCH)
该指令为32位数据交换指令,功能是将两个32位数据存储单元中的数据互相交换,指令格式及操作数范围如表3-12所示。当触发信号使X1接通时,内部继电器WR1、WR0中的数据分别与DT1、DT0中的数据互相交换。
表3-12 指令格式及操作数范围
11.F17(SWAP)
该指令为16位数据高/低字节互换指令,功能是将由D指定的16位数据存储单元的高字节(高8位)和低字节(低8位)互换,指令格式及操作数范围如表3-13所示。
表3-13 指令格式及操作数范围
若DT1=H1234,当触发信号使X1接通时,DT1中的高字节和低字节数据互相交换,即指令执行一次后,DT1=H3412。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。