首页 理论教育 比较指令与传输指令:功能与应用的区别

比较指令与传输指令:功能与应用的区别

时间:2023-06-15 理论教育 版权反馈
【摘要】:比较指令包括数值比较和字符串比较两类,都属于逻辑运算类指令。图5-93比较指令的LAD指令格式图5-93中IN1、IN2为输入的两个操作数,指令名称可以为以下名称:1.数值比较指令比较结果为真时,使能流通过,否则切断能流。无论是否有能流,比较指令都将执行。

比较指令与传输指令:功能与应用的区别

比较指令包括数值比较和字符串比较两类,都属于逻辑运算类指令。比较指令只是作为条件来使用,并不对存储器中的具体单元进行操作。对梯形图指令来说,就是接通或切断能流;对语句表语言来说,就是根据条件对栈顶实施置1或置0的操作。

比较指令的LAD指令格式如图5-93所示。

图5-93 比较指令的LAD指令格式

图5-93中IN1、IN2为输入的两个操作数,指令名称可以为以下名称:

1.数值比较指令

比较结果为真时,使能流通过,否则切断能流。

比较的运算有:IN1=IN2(等于);IN1>=IN2(大于等于);IN1<=IN2(小于等于);IN1>IN2(大于);IN1<IN2(小于);IN1<>IN2(不等于)。

STL指令格式:LDB=IN1,IN2

       AB=IN1,IN2

       OB=IN1,IN2

IN1,IN2的取值类型:单字节无符号数、有符号整数、有符号双字、有符号实数

IN1,IN2的数据类型要匹配。

IN1,IN2的取值范围:

BYTE IB QB,VB,MB,SMB,SB,LB,AC,∗VD,∗LD,∗AC及常数;

INT IW,QW,VW,MW,SMW,SW,LW,TC,AC,AIW,∗VD,∗LD,∗AC及常数;

DINT ID,QD,VD,MD,SMD,SD,LD,AC,HC,∗VD,∗LD,∗AC及常数;

REAL ID,QD,VD,MD,SMD,SD,LD,AC,HC,∗VD,∗LD,∗AC及常数。

2.字符串比较指令

字符串比较指令用于比较两个ASCII码字符串。

如果比较结果为真,使能流通过,允许其后续指令执行,否则切断能流。

能够进行的比较运算有:IN1=IN2(字符串相同);IN1<>IN2(字符串不同)。

其STL格式:LDS=IN1,IN2;

AS=IN1,IN2;

OS=IN1,IN2

LDS<>IN1,IN2;

AS<>IN1,IN2;

OS<>IN1,IN2。

当比较结果为真时,将栈顶数值置1,否则置0。

IN1,IN2的取值范围:VB、LB、∗VD、∗LD、∗AC。

无论是否有能流,比较指令都将执行。如果没有能流输入,输出为0;如果有能流输入,则能流输出的情况取决于比较指令的执行结果。结果为真,允许能流通过;结果为假,不允许能流通过。

3.传输指令

S7-200提供了多种方式的数据传输指令,可以灵活方便地对存储器中各个位置的值以不同的方式进行修改。

指令介绍:

(1)字节、字、双字和实数传输指令。其LAD指令格式如图5-94所示。

图5-94 传输指令的LAD指令格式

指令名称可以是MOV_B、MOV_W、MOV_D、MOV_R,分别表示进行字节传输、字传输、双字传输、实数传输。

其STL格式:MOVBIN,OUT

MOVWIN,OUT

MOVDIN,OUT

MOVRIN,OUT

指令功能:将操作数IN中指明的存储区中的值传输到OUT指明的存储区中。当需要使用指针时,可以使用双字传输指令创建一个指针。

ENO=0的错误条件:0006(间接寻址错)。

IN取值范围:

BYTE IB,QB,VB,MB,SMB,SB,LB,AC,∗VD,∗LD,∗AC及常数;

INT IW,QW,VW,VW,SMW,SW,LW,TC,AC,AIW,∗VD,∗LD,∗AC及常数;

DINT ID,QD,VD,MD,SMD,SD,LD,AC,HC,∗VD,∗LD,∗AC及常数;

REAL ID,QD,VD,MD,SMD,SD,LD,AC,HC,∗VD,∗LD,∗AC及常数。

OUT取值范围:

BYTE IB,QB,VB,MB,SMB,SB,LB,AC,∗VD,∗LD,∗AC及常数

INT IW,OW,VW,MW,SMW,SW,LW,TC,AC,AIW,∗VD,∗LD,∗AC及常数;

DINT ID,QD,VD,MD,SMD,SD,LD,AC,HC,∗VD,∗LD,∗AC及常数;

REAL ID,QD,VD,MD,SMD,SD,LD,AC,HC,∗VD,∗LD,∗AC及常数。

(2)字节立即传输指令。

字节立即传输指令包括字节立即读指令和字节立即写指令两种。

指令名称可以是MOV_BIR、MOV_BIW,分别表示进行字节立即读、字节立即写。字节立即传输指令是立即I/O指令功能的扩展,允许以字节为单位在I/O点和存储器之间进行数据传输。

STL指令格式:BIR IN,OUT

       BIW IN,OUT

字节立即读指令(BIR)读物理输入IN,并将结果存入OUT中,但过程映像寄存器并不刷新。字节立即写指令(BIW)从存储器IN读取数据,写入物理输出OUT,同时刷新相应的输出过程映像区。

使ENO=0的出错条件:0006(间接寻址错);不能访问扩展模块。

IN BYTE IB,∗AC,∗VD,∗LD。

OUT BYTE IB,QB,VB,MB,SMB,SB,LB,AC∗,VD,∗LD,∗AC。

字节立即写指令操作数的取值范围:

IN BYTE IB,QB,VB,MB,SMB,SB,LB,AC∗,VD,∗LD,∗AC及常数。

OUT BYTE QB,∗VD,∗LD,∗AC。

(3)块传输指令。

块传输指令的LAD指令格式如图5-95所示。(www.xing528.com)

图5-95 块传输指令的LAD指令格式

字节块(BLKMOV_B)、字块传输(BLKMOV_W)和双字块传输(BLKMOV_D)指令可传输指定数量的数据到一个新的存储区,数据的起始地址为IN,数据长度为N字节、字或者双字,新块的起始地址为OUT。

例如:当指令名称是BLKMOV W时表示进行字块传输。

其STL指令格式:BMB IN,OUT,N

        BMW IN,OUT,N

        BMD IN,OUT,N

操作数IN的取值范围:

BYTE IB,QB,VB,MB,SMB,SB,LB,∗VD,∗LD,∗AC;

WORD QW,VW,SMW,SW,LW,T,C,AC,AIW,∗VD,∗LD,∗AC及常数;

INT QW,VW,SMW,SW,LW,T,C,AC,AIW,∗VD,∗LD,∗AC及常数;

DINT ID,QD,VD,MD,SMD,SD,LD,∗VD,∗LD,∗AC。

操作数OUT的取值范围:

BYTE IB,QB,VB,MB,SMB,SB,LB,∗VD,∗LD,∗AC;

WORD IW,QW,VW SMW,SW,LW,T,C,AC,AIW,∗VD,∗LD,∗AC及常数;

INT IW,QW,VW,SMW,SW,LW,T,C,AC,AIW,∗VD,∗LD,∗AC及常数;

DINT ID,QD,VD,MD,SMD,SD,LD,∗VD,∗LD,∗AC。

操作数的取值范围:

BYTE IB,QB,VB,MB,SMB,SB,LB,AC,∗VD,∗LD,∗AC及常数。

ENO=0的错误条件:0006(间接寻址错),0091(操作数超出范围)。

(4)传输指令举例。

如图5-96所示为一个块传输指令的梯形图程序。该程序将VB20开始的4个字节放到VB100开始的存储区域,其所占空间大小不变。

图5-96 传输指令的应用

4.定时器指令

由于现场设备动作速度比较缓慢且存在差异,高速的PLC在控制这些设备时需要使用定时器,以使设备协调地运行。

定时器指令的LAD指令格式如图5-97所示。

图5-97 定时器指令的LAD指令格式

定时器分为接通延时定时器(TON),有记忆的接通延时定时器(TONR)和断开延时定时器(TOF)三种。

IN:表示输入的是一个位值逻辑信号,起着一个输入端的作用。

Txxx:表示定时器的编号。

PT:定时器的初值。

定时器工作方式及类型拓展资源如表5-7所列。

表5-7 定时器工作方式及类型拓展资源

指令举例:如图5-98所示为一个使用定时器指令的LAD程序。在程序中的定时器为TON定时器,其初值为10。当I0.0有效时,定时器开始计时;I0.0无效时,定时器被复位。

图5-98 定时器指令的使用

5.计数器指令

1)指令介绍

计数器指令的LAD指令格式如图5-99所示。

图5-99 计数器指令的LAD指令格式

计数器名称可以是CTU、CTD、CTUD,它们分别表示递增计数器、递减计数器、递增/递减计数器。

Cxxx:计数器编号。程序可以通过计数器编号对计数器位或计数器当前值进行访问。

CU:递增计数器脉冲输入端,上升沿有效。

CD:递减计数器脉冲输入端,上升沿有效。

R:复位输入端。

LD:装载复位输入端,只用于递减计数器。

PV:计数器预置值。

STL指令格式:CTU Cxxx,PV

      CTUD Cxxx,PV

      CTD Cxxx,PV

操作数的取值范围:

Cxxx:WORD 常数。

CU,CD,LD,R:BOOL能流。

PV:INT VW,IW,QW,MW,SW,SMW,LW,AIW,T,C,AC,∗VD,∗AC,∗LD及常数。

递增计数器指令(CTU)在每一个CU输入的上升沿(从OFF到ON)递增计数,当计数当前值(Cxxx)大于或等于预置计数值(PV)时,计数器位被置位。计数继续进行,一直到最大值32 767时停止计数。当复位输入端(R)置位时,计数器被复位。

递减计数器指令(CTD)在每一个输入CD的上升沿进行递减计数。当计数当前值(Cxxx)减为0时,计数器位被置位,并停止计数。当装入(LD)输入时,计数器将预设值(PV)装入计数器,同时复位计数器位,可以开始计数。

递增/递减计数器指令(CTUD)在每一个CU输入的上升沿递增计数;在每一个CD输入的上升沿递减计数。当计数当前值(Cxxx)大于或等于预置计数值(PV)时,计数器被置位。计数继续进行,计数器的当前值从-32 767~32 767可循环往复地变化。当复位输入端(R)置位时,计数器被复位。

S7-200提供了C0~C255共256个计数器,每一个计数器都具有三种功能。由于每个计数器只有一个当前值,因此不能将一个计数器号当做几个类型的计数器来使用。在程序中,既可以访问计数器位(表明计数器状态),也可以访问计数器的当前值,它们的使用方式相同,都以计数器加编号的方式访问,可根据使用的指令方式的不同由程序确定。

2)计数器指令举例

如图5-100、图5-101所示为使用计数器指令的LAD程序。图5-100、图5-101中,程序中的两个计数器分别为递减计数器和递增/递减计数器,其初值分别为3和4。LAD程序的下方为程序对应的时序图。

图5-100 计数器指令应用

图5-101 计数器指令应用

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

我要反馈