电气控制与PLC应用-基于S7-200 SMART PLC(第5版)课件 第5章 S7-200 SMART PLC指令系统与基本指令_第1页
电气控制与PLC应用-基于S7-200 SMART PLC(第5版)课件 第5章 S7-200 SMART PLC指令系统与基本指令_第2页
电气控制与PLC应用-基于S7-200 SMART PLC(第5版)课件 第5章 S7-200 SMART PLC指令系统与基本指令_第3页
电气控制与PLC应用-基于S7-200 SMART PLC(第5版)课件 第5章 S7-200 SMART PLC指令系统与基本指令_第4页
电气控制与PLC应用-基于S7-200 SMART PLC(第5版)课件 第5章 S7-200 SMART PLC指令系统与基本指令_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电气控制与PLC应用

—基于S7-200SMARTPLC(第5版)

(第5章)第5章S7-200SMARTPLC指令系统与基本指令

学习目标:

熟练掌握梯形图的编程方法,掌握基本指令和实际工程应用。通过对本章的学习,做到可以根据需要编制出结构较复杂的控制程序。第5章S7-200SMARTPLC的指令系统

教学内容:

5.1S7-200SMARTPLC编程基础

5.2S7-200SMARTPLC基本指令及编程方法

5.1S7-200SMARTPLC编程基础5.1.1编程语言西门子公司为S7-200SMARTPLC提供3种标准编程语言:梯形图(LAD)、功能块图(FBD)和语句表语言(STL)。梯形图是基于电路图的一种图形编程语言,功能块图是基于布尔代数中使用的图形逻辑符号来表示的一种编程语言,语句表语言是一种与汇编语言类似的助记符编程语言。为S7-200SMARTPLC创建程序块时,应选择该块要使用的编程语言。用户程序可以使用由任意或所有编程语言创建的程序块。5.1.1编程语言1、梯形图(LAD)沿用了继电器、触头、串/并联等类似的图形符号,并简化了符号,还向多种功能(如数学、定时器、计数器和移动等)提供功能框指令。是融逻辑操作、控制于一体,面向对象的、实时的、图形化的编程语言。图5-1梯形图语言的梯级5.1.1编程语言按自上而下、从左到右的顺序排列,最左边的竖线称为起始母线(也称左母线),然后按一定的控制要求和规则连接各个节点,最后以继电器线圈或功能框指令(或再接右母线)结束,称为一个逻辑行或一个“梯级”。

通常一个LAD程序段中有若干逻辑行(梯级),形似梯子,梯形图由此而得名。梯形图信号流向清楚、简单、直观、易懂,很适合电气工程人员使用。5.1.1编程语言1、梯形图(LAD)创建LAD程序段时应注意以下规则:①不能创建如图(a)所示可能导致反向能流的分支;②不能创建如图(b)所示可能导致短路的分支。图5-2错误的分支结构5.1.1编程语言2、功能块图(FBD)

类似于普通的逻辑功能图,它沿用了半导体逻辑电路的逻辑框图的表达方式,使用布尔代数的图形逻辑符号来表示控制逻辑,使用指令框来表示复杂的功能,有基本功能模块和特殊功能模块两类。

基本功能模块如AND、OR、XOR等,特殊功能模块如脉冲输出、计数器等。一般用一种功能方框表示一种特定的功能,框图内的符号表达了该功能块图的功能。5.1.1编程语言3、语句表语言(STL)

语句表(STL)是用助记符来表达PLC的各种控制功能的。

大多数PLC都有语句表编程功能,但各厂家生产的PLC语句表所用的助记符互不相同,不能兼容。

通常梯形图程序、功能块图程序、语句表程序可有条件的方便地转换。但是,语句表可以编写梯形图或功能块图无法实现的程序。5.1.2数据类型1、基本数据类型及数据类型检查(1)基本数据类型S7-200SMARTPLC的指令参数所用的基本数据类型有1位布尔型(BOOL)、8位字节型(BYTE)、16位无符号整数(WORD)、16位有符号整数(INT)、32位无符号双字整数(DWORD)、32位有符号双字整数(DINT)、32位实数型(REAL)、(1~255字节)字符串型(STRING)。

实数型(REAL)是按照ANSI/IEEE754—1985标准(单精度)的表示格式规定。5.1.2数据类型2、数据长度与数值范围表5-2常用的数据类型、长度及其范围数据类型符号位数取值范围举例布尔型BOOL11,0TRUE,FALSE或1,0字节型BYTE80~25516#12,16#AB有符号字节型BYTE8-128~12716#12,16#3A字型WORD1616#0000~16#FFFF16#ABCD,16#0001双字型DWORD3216#00000000~16#FFFFFFFF16#02468ACE有符号整型INT16-32768~32767123,-123有符号双整型DINT32-2147483648~2147483647123,-123单精度浮点数(实数)型REAL32±1.175495×10-38~±3.402823×103812.45,-3.4,-1.2E+3ASCII码字符串STRING1~255字节ASCII字符代码1~255字节

Hello,OK5.1.3存储器与地址

S7-200SMARTPLC的存储器分为程序区、系统区、数据区。程序区用于存放用户程序,存储器为EEPROM。

系统区用于存放有关PLC配置结构的参数,如PLC主机及扩展模块的I/O配置和编址、PLC站地址配置、保护口令设置、停电记忆保持区设置、软件滤波功能设置等,存储器为EEPROM。5.1.3存储器与地址数据区是CPU提供的存储器的特定区域,包括数字量输入映像寄存器(I)、数字量输出映像寄存器(Q)、标志存储器(M)、特殊存储器(SM)、变量存储器(V)、定时器存储器(T)、计数器存储器(C)、高速计数器存储器(HC)、模拟量输入存储器(AI)、模拟量输出存储器(AQ)、局部变量存储器(L)、顺序控制继电器存储器(S)、累加器(AC)。存储器为EEPROM和RAM。5.1.3存储器与地址1、数据区存储器的地址表示格式每个存储单元都有唯一的地址,可以依据存储器地址来存取数据。数据区存储器地址的表示格式有位、字节、字、双字地址格式。5.1.3存储器与地址●位地址格式:Ax.y

必须指定存储器区域标识符A、字节地址x及位号y。5.1.3存储器与地址●访问字节、字、双字地址格式:ATx

必须指定区域标识符A、数据长度T以及该字节、字或双字的起始字节地址x。

ATx:如用MB100、MW100、MD100

分别表示字节、字、双字的地址。MW100由MB100、MB101两个字节组成;MD100由MB100~MB103四个字节组成。多字节数据,低地址字节为数据高位、高地址字节为数据低位,顺序排列。5.1.3存储器与地址●其它地址格式

数据区存储器区域中,还包括定时器存储器(T)、计数器存储器(C)、累加器(AC)、高速计数器(HC)等,它们是模拟相关的电器元件的。地址格式为:Ay。Ay由区域标识符A和元件号y组成,例T24表示某定时器的地址,T是定时器的区域标识符,24是定时器号,同时T24又可表示此定时器的当前值。5.1.3存储器与地址2、数据区存储器区域(1)输入/输出映像寄存器(I/Q)①输入映像寄存器(I)

输入映像寄存器(I)也称为过程映像输入(I)。PLC的输入端子是从外部接收输入信号的窗口。每个输入端子与输入映像寄存器(I)的相应位相对应。输入点的状态在每次扫描周期开始(或结束)时进行采样,并将采样值存于输入映像寄存器,作为程序处理时输入点状态的依据。输入映像寄存器的状态只能由外部输入信号驱动,而不能在内部由程序指令来改变(特殊调试状态时可由指令改变)。输入映像寄存器(I)的地址格式为:

位地址:I[字节地址].[位地址],如I0.1。

字节、字、双字地址:I[数据长度][起始字节地址],如IB4、IW6、ID10。5.1.3存储器与地址②输出映像寄存器(Q)输出映像寄存器(Q)也称为过程映像输出(Q)。每个输出模块的端子与输出映像寄存器的相应位相对应。CPU将输出判断结果存放在输出映像寄存器中,在扫描周期的结尾,CPU以批处理方式将输出映像寄存器的数值复制到相应的输出端子上,通过输出模块将输出信号传送给外部负载。可见,PLC的输出端子是PLC向外部负载发出控制命令的窗口。输出映像寄存器(Q)地址格式为:

位地址:Q[字节地址].[位地址],如Q1.1。

字节、字、双字地址:Q[数据长度][起始字节地址],如QB5、QW8、QD11。5.1.3存储器与地址

在程序的执行过程中,对于输入或输出的存取通常是通过映像寄存器,而不是实际的输入、输出端子。S7-200CPU执行有关输入输出程序时的操作过程如图5-6所示。图5-6S7-200SMARTCPU输入、输出的操作5.1.3存储器与地址(2)位存储器(M)位存储器(M)也称内部全局标志位存储器(M)或称内部线圈,模拟继电器-接触器控制系统中的中间继电器,针对控制继电器及数据的位存储区(M存储器)用于存储操作的中间状态或其他控制信息。可以按位、字节、字或双字访问位存储区。M存储器允许读访问和写访问。位存储器(M)的地址格式为:

位地址:M[字节地址].[位地址],如M26.7。

字节、字、双字地址:M[数据长度][起始字节地址],如MB11、MW23、MD26。5.1.3存储器与地址(3)变量存储器(V)变量存储器(V)存放全局变量、存放程序执行过程中控制逻辑操作的中间结果或其他相关的数据。变量存储器是全局有效,全局有效是指同一个存储器可以在任一程序分区(主程序、子程序、中断例程)被访问。V存储器的地址格式为:

位地址:V[字节地址].[位地址],寻址范围为V0.0~V20479.7(取决于CPU型号)。字节、字、双字地址:V[数据长度][起始字节地址],如最大(取决于CPU型号)寻址为VB20479、VW20478、VD20476。5.1.3存储器与地址(4)局部变量存储器(L)局部变量存储器用来存放局部变量。某一局部变量存储器只能在某一程序分区(主程序或子程序或中断例程)中使用。

S7-200SMARTPLC提供64个字节局部变量存储器,局部变量存储器可用作暂时存储器或为子程序传递参数。可以按位、字节、字、双字访问局部变量存储器。可以把局部变量存储器作为间接寻址的指针,但是不能作为间接寻址的存储器区。5.1.3存储器与地址(4)局部变量存储器(L)局部变量存储器(L)的地址格式为:

位地址:L[字节地址].[位地址],寻址范围为L0.0~L63.7。

字节、字、双字地址:L[数据长度][起始字节地址],如最大寻址为LB63、LW62、LD60。5.1.3存储器与地址(5)顺序控制继电器存储器(S)用于顺序控制(或步进控制)。

顺控制继电器指令(SCR)基于顺序功能图(SFC)的编程方式。SCR指令提供控制程序的逻辑分段,从而实现顺序控制。顺序控制继电器存储器(S)的地址格式为:

位地址:S[字节地址].[位地址],寻址范围为S0.0~S31.7。

字节、字、双字地址:S[数据长度][起始字节地址],如最大寻址为SB31、SW30、SD28。5.1.3存储器与地址(6)特殊存储器(SM)是用户程序与系统程序之间的界面,为用户提供一些特殊的控制功能及系统信息,用户对操作的一些特殊要求也通过特殊存储器(SM)通知系统。SM0.0RUN监控,PLC在RUN方式时,SM0.0总为1;SM0.1初始脉冲,PLC由STOP转为RUN时,SM0.1接通一个扫描周期;SM0.3PLC上电进入RUN方式时,SM0.3接通一个扫描周期;SM0.5秒脉冲,占空比为50%,周期为1s的脉冲等。5.1.3存储器与地址(6)特殊存储器(SM)

SM区基于位存取,但也可以按字节、字、双字来存取数据。特殊存储器(SM)的地址表示格式为:

位地址:SM[字节地址].[位地址],寻址范围为V0.0~V2047.7。

字节、字、双字地址:SM[数据长度][起始字节地址],如最大寻址为VB2047、VW2046、VD2044。5.1.3存储器与地址(7)定时器存储器(T)定时器存储器地址表示格式为:T[定时器号],寻址范围为T0~T255。

每个定时器存储器单元包含三个核心参数,如T0单元中包含状态位(BOOL)、当前值(INT)和设定值(INT)三个参数,依据操作指令的不同指向对应的参数。5.1.3存储器与地址(8)计数器存储器(C)计数器存储器地址表示格式为:C[计数器号],寻址范围为C0~C255。

每个计数器存储器单元包含三个核心参数,如C0单元中包含状态位(BOOL)、当前值(INT)和设定值(INT)三个参数,依据操作指令的不同指向对应的参数。5.1.3存储器与地址(9)模拟量输入映像寄存器(AI)模拟量输入模块将外部输入的模拟信号的模拟量转换成1个字长的数字量,存放在模拟量输入映像寄存器(AI)中,供CPU运算处理。模拟量输入(AI)的值为只读值。

模拟量输入映像寄存器(AI)的地址格式为:AIW[起始字节地址],寻址范围为AIW0~AIW110。

模拟量输入映像寄存器(AI)的地址必须用偶数字节地址(如AIW0,AIW2,AIW4…)来表示。5.1.3存储器与地址(10)模拟量输出映像寄存器(AQ)

CPU运算的相关结果存放在模拟量输出映像寄存器(AQ)中,供D/A转换器将1个字长的数字量转换为模拟量,以驱动外部模拟量控制的设备。模拟量输出映像寄存器(AQ)中的数字量为只写值。

模拟量输出映像寄存器(AQ)的地址格式为:AQW[起始字节地址],寻址范围为AQW0~AQW110。

模拟量输出映像寄存器(AQ)的地址必须用偶数字节地址(如AQW0,AQW2,AQW4…)来表示。5.1.3存储器与地址(11)累加器(AC)累加器是用来暂时存储计算中间值的存储器,也可向子程序传递参数或返回参数。S7-200SMARTCPU提供了4个32位累加器。累加器的地址格式为:AC[累加器号],寻址范围为AC0~AC3。

累加器是可读写单元,可以按字节、字、双字存取累加器中的数值,由指令标识符决定存取数据的长度。5.1.3存储器与地址(12)高速计数器(HC)高速计数器用来累计高速脉冲信号。

高速计数器的当前值寄存器为32位(bit),读取高速计数器当前值应以双字(32位)来寻址。高速计数器的当前值为只读值。

高速计数器地址格式为:HC[高速计数器号],寻址范围为HC0~HC3。5.1.4寻址方式

1.立即寻址

指令中如何提供操作数或操作数地址,称为寻址方式。

S7-200SMARTPLC的寻址方式有:立即寻址、直接寻址、间接寻址。

立即寻址方式是,指令直接给出操作数,操作数紧跟着操作码,在取出指令的同时也就取出了操作数,立即有操作数可用,所以称为立即操作数或立即寻址。

CPU以二进制方式存储所有常数。指令中可用十进制、十六进制、ASCII码或浮点数形式来表示。表示格式举例如下:十进制常数:30112十六进制常数:16#42FASCII常数:‘INPUT’实数或浮点常数:+1.1E-10二进制常数:2#0101

1110

5.1.4寻址方式2.直接寻址

直接寻址方式是,指令直接使用存储器或寄存器的元件名称和地址编号,根据这个地址就可以立即找到该数据。操作数的地址应按规定的格式表示。指令中,数据类型应与指令标识符相匹配。不同数据长度的寻址指令举例如下:位寻址:ANDQ5.5字节寻址:ORBVB33,LB21字寻址:MOVWAC0,AQW2双字寻址:MOVDAC1,VD200

5.1.4寻址方式3.间接寻址

间接寻址方式是,指令给出了存放操作数地址的存储单元的地址(也称地址指针)。可作为地址指针的存储器有:V、L、AC(1∼3)可间接寻址的存储器区域有:I、Q、V、M、S、T(仅当前值)、C(仅当前值)、SM、AI和AQ。对独立的位或访问HC、L或AC存储区不支持间接寻址访问。

5.1.4寻址方式3.间接寻址

(1)建立指针间接寻址前,应先建立指针。指针为双字长,是所要访问的存储单元(最大为双字型32位)的物理地址。只能使用变量存储器(V)、局部存储器(L)或累加器(AC1、AC2、AC3)作为指针,AC0不能用作间接寻址的指针。

将所要访问的存储器单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:MOVD&VB200,AC1

5.1.4寻址方式MOVD&VB200,AC1“&”为地址符号,与单元组合表示所对应单元的32位物理地址,VB200只是一个直接地址编码,并不是它的物理地址。

指令中的第二个地址数据长度必须是双字长,如:AC、LD和VD。这里地址“VB200”要用32位表示,因而必须使用双字传送指令(MOVD)。指令中的&VB200如果改为&VW200或&VD200效果完全相同。因为具体的寻址范围取决于随后的间接存取指令类型。5.1.4寻址方式(2)间接存取依据指针中的内容值作为地址存取数据。使用指针可存取字节、字、双字型的数据。下面两条指令是建立指针和间接存取的应用方法:

MOVD&VB200,AC1MOVW*AC1,AC0

执行指令MOVW*AC1,AC0,把指针中的内容值(VB200)作为地址,由于指令MOVW的标识符是“W”,因而指令操作数的数据长度应是字型,把地址VB200、VB201处2个字节的内容(1234)传送到AC0。指针处的值(即1234),为字型数据,如图5-7所示,操作数(AC1)前面的“*”号表示该操作数(AC1)为指针。

5.1.4寻址方式图5-7

间接寻址

把VB200的地址送入AC1建立指针

把指针处的值送到AC0

本指令是MOVW,为字型长度,则AC0的高16位空闲未用;若是MOVD双字型指令,则将VB200∼VB203的内容(即12345678)送到AC0

这里给出的是起始字节地址,而并不表示数据长度(由随后间接存取指令类型决定)为字型。所以,如果改为&VB200或&VD200效果完全相同。5.1.4寻址方式(3)修改指针

存取连续地址的存储单元中数据时,通过修改指针可以非常方便地存取数据。

在S7-200SMARTPLC中,指针的内容不会自动改变,可用自增或自减等指令修改指针值。这样就可连续地存取存储单元中的数据。

图5-8中,加2指令“+D+2,AC1”,将AC1指针中的值(VB200)修改为VB202后,指针即指向新地址VB202。执行指令MOVW*AC1,AC0,这样就可在变量存储器(V)中连续地存取数据,将VB202、VB203二个字节的数据(5678)传送到AC0。

5.1.4寻址方式

修改指针值时,应根据存取的数据长度来进行调整。若对字节进行存取,指针值加1(或减1);若对字进行存取、或对定时器、计数器的当前值进行存取,指针值加2(或减2);若对双字进行存取,则指针值加4(或减4)。图5-8中,存取的数据长度是字型数据,因而指针值加2。

图5-8

修改指针

把指针增加两次,指向下一个字

把AC1(VW202)所指向的字数值送到AC0

5.1.5用户程序结构

用户程序可分为三个程序分区:主程序、子程序(可选)和中断程序(可选)。主程序(MAIN):是用户程序的主体。CPU在每个扫描周期都要执行一次主程序指令。子程序:是程序的可选部分,只有当主程序调用时,才能够执行。合理使用子程序,可以优化程序结构,减少扫描时间。中断程序:是程序的可选部分,只有当中断事件发生时,才能够执行。中断程序可在扫描周期的任意点执行。

5.2基本指令及编程方法S7-200SMARTPLC有8种基本指令,包含:位逻辑指令;定时器与计数器指令;比较指令;数学运算指令;逻辑运算指令;

传送指令;移位指令;

转换指令;5.2.1位逻辑指令1.标准触点指令

标准触点指令有LD、LDN、A、AN、O、ON、NOT、=指令(语句表)。这些指令对存储器位在逻辑堆栈中进行操作,如果数据类型是输入继电器I或输出继电器Q,则从存储器或映像寄存器存取数值。标准触点指令中如果有操作数,则为BOOL型,操作数的编址范围可以是:I、Q、V、M、SM、S、T、C、L。

5.2.1位逻辑指令(1)装载指令:LD

在梯形图中,每个从左母线开始的单一逻辑行、每个程序块(逻辑梯级)的开始、指令盒的输入端都必须使用LD或LDN这两条指令。以常开触点开始时用LD指令,以常闭触点开始时则用LDN指令。本指令对各类内部编程元件的常开触点都适用。指令格式:LDbit;例:LDI0.2(2)装载非指令:LDN

每个以常闭触点开始的逻辑行都使用这一指令,各类内部编程元件的常闭触点都适用。指令格式:LDNbit;例:

LDNI0.25.2.1位逻辑指令(3)与指令:A

即串联一个常开触点。指令格式:Abit;例:

AM2.4(4)与非指令:AN即串联一个常闭触点。指令格式:ANbit;例:

ANM2.4(5)或指令:O即并联一个常开触点。指令格式:Obit;例:

OM2.65.2.1位逻辑指令(6)或非指令:ON即并联一个常闭触点。指令格式:ONbit;例:

ONM2.6(7)输出指令:=将逻辑运算结果输出到指定存储器位或输出继电器对应的映像寄存器位,以驱动本位线圈。指令格式:=bit;例:

=Q2.65.2.1位逻辑指令LDI0.0 //装入常开触点OI0.1 //或常开触点AI0.2//与常开触点=Q0.0 //输出至线圈LDNI0.0//装入常闭触点ONI0.1//或常闭触点ANI0.2 //与常闭触点=Q0.1//输出至线圈=Q0.2 //输出至线圈程序实例:仔细比较不同编程语言的区别与联系。

5.2.1位逻辑指令LDI0.0OI0.1AI0.2=Q0.0 LDNI0.0ONI0.1ANI0.2=Q0.1=Q0.20 程序实例:仔细比较不同编程语言的区别与联系。

5.2.1位逻辑指令2.正负跳变指令

正负跳变指令在梯形图中以触点形式使用。用于检测脉冲的正跳变(上升沿)或负跳变(下降沿),利用跳变让能流接通一个扫描周期,常用此脉冲触发内部继电器线圈。(1)正跳变指令:EU

正跳变触点检测到脉冲的每一次正跳变后,产生一个微分脉冲。指令格式:EU(无操作数)

返回5.2.1位逻辑指令(2)负跳变指令:ED

负跳变触点检测到脉冲的每一次负跳变后,产生一个微分脉冲。指令格式:ED(无操作数)正、负跳变触点指令编程举例如图5-12所示。

图5-12

正、负跳变触点指令编程一个扫描周期长度

5.2.1位逻辑指令3.置位和复位指令

置位即置1,复位即置0。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。这两条指令在使用时需指明三点:操作性质、开始位和位的数量。各操作数类型及范围如表5-9所示。

表5-3

置位和复位指令操作数类型及范围

操作数范围

类型

位bitI,Q,V,M,SM,S,T,C,LBOOL型

数量NIB,QB,VB,MB,SMB,SB,LB,AC,*VD,*AC,*LD,常数BYTE型(最大255)5.2.1位逻辑指令(1)置位指令:S

将位存储区的指定位(位bit)开始的N个同类存储器位置位。指令格式:Sbit,N;例:

SQ0.0,

1(2)复位指令:R

将位存储区的指定位(位bit)开始的N个同类存储器位复位。当用复位指令时,如果是对定时器T位或计数器C位进行复位,则定时器或计数器位被复位,同时,定时器或计数器的当前值被清零(对减计数器例外)。指令格式:Rbit,N;例:

RQ0.2,

35.2.1位逻辑指令置位和复位指令应用编程序举例如图5-13所示。

图5-13置位复位指令5.2.1位逻辑指令4.立即操作指令

立即指令允许对输入和输出点进行快速和直接存取。当用立即指令读取输入点的状态时,相应的输入映像寄存器中的值并未发生更新;用立即指令访问输出点时,访问的同时,相应的输出寄存器的内容也被刷新。只有输入继电器I和输出继电器Q可以使用立即指令。5.2.1位逻辑指令(1)立即触点指令在每个标准触点指令的后面加“I”。指令执行时,立即读取物理输入点的值,但是不刷新相应映像寄存器的值。这类指令包括:LDI、LDNI、AI、ANI、OI和ONI。下面以LDI指令为例。指令格式:LDIbit(bit只能是I类型)例:

LDII0.25.2.1位逻辑指令(2)立即输出指令(3)立即置位指令

=I,立即输出指令。指令执行时,将新值立即写入物理输出和相应的输出映像寄存器。指令格式:=Ibit(bit只能是Q类型)例:

=IQ0.2SI,立即置位指令。指令执行时,将指令指定位(bit)开始的N个(最多255)物理输出点立即置位,同时刷新相应的输出映像寄存器。指令格式:SIbit,N;例:

SIQ0.0,

25.2.1位逻辑指令(4)立即复位指令RI,立即复位指令。指令执行时,将指令指定位(bit)开始的N个(最多255)物理输出点立即复位,同时刷新相应的输出映像寄存器。指令格式:RIbit,N;例:RIQ0.0,1表5-4

立即置位和立即复位指令操作数类型及范围

操作数范围

类型

位bitQBOOL型

数量NIB,QB,VB,MB,SMB,SB,LB,AC,*VD,*AC,*LD,常数BYTE型(最大128)5.2.1位逻辑指令应用举例:

LDI0.0//装入常开触点=Q0.0//输出触点,非立即

=IQ0.1//立即输出触点

SIQ0.2,1//从Q0.2开始的1个触点被立即置1

LDII0.0//立即输入触点指令

=Q0.3//输出触点,非立即图5-14

立即指令程序5.2.1位逻辑指令图5-15立即指令时序图

条件:I0.0在上一扫描周期某时跳变。Q0.0在本周期输出刷新时置1;Q0.1与Q0.2在本周期立即指令执行时置1;Q0.3在上一周期立即指令执行时置1。5.2.1位逻辑指令5.取反指令

NOT,取反指令,无操作数,取反能流输入的状态。能流到达取反触点时,能流就停止;能流未到达取反触点时,该触点提供能流。应用举例:5.2.1位逻辑指令6.空操作指令

NOP,空操做指令。使能输入有效时,执行空操作指令。空操做指令不影响用户程序的执行,操作数N为0~225的常数。应用举例:LDI0.0//使能输入NOP30//空操作指令,标号5.2.1位逻辑指令7.双稳态触发器指令

SR为置位优先指令,RS为复位优先指令。SR和RS指令分配位S和S1为置位输入,1表示优先;分配位R和R1为复位输入,1表示优先;指令框上方的输出位(bit)为待置位或复位的地址;可选的分配位OUT反映bit位的信号状态。分配位S、S1、R、R1、bit和OUT的数据类型都为布尔型。SR和RS指令不适用于STL程序。5.2.1位逻辑指令7.双稳态触发器指令

应用举例。5.2.1位逻辑指令8.STL逻辑堆栈指令

S7-200SMART有一个32位的逻辑堆栈。STEP7-Micro/WINSMART程序编辑器使用逻辑堆栈将LAD和FBD程序的图形I/O程序段转换为STL程序,得出的STL程序在逻辑上与原LAD或FBD图形程序相同,并且可作为程序表执行。对于LAD和FBD编程,会自动生成STL逻辑堆栈指令,且用户不需要使用逻辑堆栈指令。组合逻辑过于复杂,无法轻易用LAD或FBD程序解决问题时,可通过STL程序调用逻辑堆栈指令解决。5.2.1位逻辑指令(1)与装载指令(2)或装载指令

与装载指令ALD对堆栈第0层和第1层的值进行逻辑与运算,结果置于栈顶,并将堆栈中的其余各级依次上弹一级,堆栈深度减一。ALD指令可用于将并联电路块进行串联连接。或装载指令OLD对堆栈第0层和第1层的值进行逻辑或运算,结果置于栈顶,并将堆栈中的其余各级依次上弹一级,堆栈深度减一。OLD指令可用于将串联电路块进行并联连接。5.2.1位逻辑指令ALD指令和OLD指令的操作过程如图所示。图中,“iv0”至“iv31”用于标识逻辑堆栈0至31层的初始值,“x”表示未知。5.2.1位逻辑指令(3)逻辑进栈指令(4)逻辑读栈指令

逻辑进栈指令LPS,用于复制栈顶值并将该值推入栈顶,原堆栈中各层栈值依次下压一级,栈底值被推出并丢失。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。逻辑读栈指令LRD,将堆栈第1层的值复制到栈顶。不执行进栈或出栈,但原栈顶值被新的复制值取代。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。5.2.1位逻辑指令(5)逻辑出栈指令(6)装载堆栈指令

逻辑出栈指令LPP,将栈顶值弹出,原堆栈中各级栈值依次上弹一级,原堆栈第1层的值成为新的栈顶值。在梯形图中的分支结构中,用于将LPS指令生成的一条新母线进行恢复。应注意,LPS与LPP指令必须配对使用。装载堆栈指令(LDSN,N=0~31),复制堆栈中的第N层的值到栈顶,原堆栈中各级栈值依次下压一层,栈底值丢失。5.2.1位逻辑指令LPS、LRD、LPP、LDS指令的操作过程如图所示。5.2.1位逻辑指令(7)AENO指令AENO指令,在LAD或FBD功能框ENO位的STL表示中使用。AENO指令对ENO位和栈顶值执行逻辑与运算,结果置于栈顶,产生的效果与LAD/FBD功能框的ENO输出相同。5.2.1位逻辑指令8.STL逻辑堆栈指令

应用示例:将LAD程序段转换为STL程序,如图所示。5.2.2定时器与计数器指令1.定时器指令

S7-200SMART提供3种定时指令:TON(接通延时)、TONR(保持型接通延时)和TOF(断开延时),分辨率有3个等级:1ms、10ms和100ms,分辨率如表所示由定时器号确定。5.2.2定时器与计数器指令定时器指令操作数有3个:编号、预设值和使能输入。1)编号:用定时器的名称和它的常数编号(最大255)来表示,即Txxx,如:T4。T4不仅仅是定时器的编号,它还包含两方面的变量信息:定时器位和定时器当前值。定时器位:定时器位与时间继电器的输出相似,当定时器的当前值达到预设值PT时,该位被置为“1”。定时器当前值:存储定时器当前所累计的时间,它用16位有符号整数来表示,故最大计数值为32767。2)预设值PT:数据类型为INT型。3)使能输入(只对LAD和FBD):BOOL型。可以用复位指令来对3种定时器复位,复位指令的执行结果是:使定时器位变为OFF:定时器当前值变为0。

5.2.2定时器与计数器指令(1)接通延时定时器指令:TON

用于单一间隔定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位为ON,当前值连续计数到32767。使能输入断开,定时器自动复位,即定时器位OFF,当前值为0。填“计定时器号”,如:T35指令格式:TONTxxx,PT例:TONT120,8填“预设值”,如:1005.2.2定时器与计数器指令(2)保持型接通延时定时器指令:TONR

用于对许多间隔的累计定时。上电周期或首次扫描,定时器位OFF,当前值保持。使能输入接通时,定时器位为OFF,当前值从0开始累计计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器位ON,当前值连续计数到32767。

填“计定时器号”,如:T31TONR定时器只能用复位指令进行复位操作,使当前值清零。指令格式:TONRTxxx,PT;例:TONRT20,63填“预设值”,如:1005.2.2定时器与计数器指令(3)断开延时定时器指令:TOF

用于断开后的单一间隔定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为ON,当前值为0。当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。填“计定时器号”,如:T35指令格式:TOFTxxx,PT;例TOFT35,6填“预设值”,如:1005.2.2定时器与计数器指令LDI0.0//使能输入

TONT35,+4//通电延时定时器,延时时间为40ms

LDI0.0//使能输入

TONRT2.+10//保持性接通延时定时器,

//延时时间为100ms

LDI0.0//使能输入

TOFT36,+3//断电延时定时器,延时时间为30ms

应用举例:5.2.2定时器与计数器指令

上述梯形图程序中输入输出执行时序关系如图所示。

返回5.2.2定时器与计数器指令2.时间间隔指令

开始时间间隔指令BGN_ITIME,在输入EN为“1”时,读取内置1ms双字计数器的当前值,并将该值存储在OUT中。STL指令格式:BITIMOUT例:BITIMVD05.2.2定时器与计数器指令2.时间间隔指令

计算时间间隔指令CAL_ITIME,在输入EN为“1”时,计算内置计数器当前值与输入IN中提供时间的时间差,将差值存储在OUT中。STL指令格式:CITIMIN,OUT例:CITIMVD0,VD4时间间隔指令的最大计时间隔为或49.7天。根据BITIM指令的执行时间,CAL_ITIME指令会自动处理在最大间隔内发生的1ms定时器的翻转。5.2.2定时器与计数器指令2.时间间隔指令

应用举例BGN_ITIME指令捕获I0.0的接通时刻,将该值存储在VD100;CAL_ITIME指令计算I0.0的接通时长,将该值存储在VD104。5.2.2定时器与计数器指令3.计数器指令

计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。计数器与定时器的结构和使用基本相似,编程时输入它的预设值PV(计数的次数),计数器累计它的脉冲输入端电位上升沿(正跳变)个数,当计数器达到预设值PV时,发出中断请求信号,以便PLC作出相应的处理。计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。指令操作数有5方面:编号、预设值、脉冲输入、装载输入、复位输入。5.2.2定时器与计数器指令1)编号:用计数器名称和它的常数编号(最大255)来表示,即Cxxx,如:C6。C6不仅仅是计数器的编号,它还包含两方面的变量信息:计数器位和计数器当前值。计数器位:表示计数器是否发生动作的状态,当计数器的当前值达到预设值PV时,该位被置为“1”。计数器当前值:存储计数器当前所累计的脉冲个数,它用16位符号整数(INT)来表示,故最大计数值为32767。2)预设值PV:数据类型为INT型。3)脉冲输入:BOOL型。

4)装载输入:与脉冲输入同类型和范围。5)复位输入:与脉冲输入同类型和范围。5.2.2定时器与计数器指令(1)增计数器指令:CTU首次扫描,计数器位为OFF,当前值为0。每个加计数CU输入的上升沿,CTU指令计数器从当前值开始加计数。当前值大于或等于预设值时,计数器位Cxxx为ON。当前值达到32767时,停止计数。复位输入R接通或对Cxxx地址执行复位指令,计数器自动复位,即计数器位为OFF,当前值为0。指令格式:CTUCxxx,PV;例:CTUC20,35.2.2定时器与计数器指令(1)增计数器指令:CTU应用实例:5.2.2定时器与计数器指令(1)增计数器指令:CTU应用实例:5.2.2定时器与计数器指令(2)减计数器指令:CTD首次扫描,定时器位为OFF,当前值为0。装载输入LD接通,计数器位为OFF,用预设值PV装载当前值。装载输入LD断开时,在每个减计数CD输入的上升沿,CTD指令从计数器当前值开始减计数。当前值为0时,计数器停止,计数器位为ON。指令格式:CTDCxxx,PV;例:CTDC1,45.2.2定时器与计数器指令(2)减计数器指令:CTD应用实例:5.2.2定时器与计数器指令(2)减计数器指令:CTD应用实例:5.2.2定时器与计数器指令(3)增减计数器指令:CTUD两个脉冲输入端:CU输入端用于加计数,CD输入端用于减计数。首次扫描,定时器位为OFF,当前值为0。CU输入的每个上升沿,计数器当前值增加1个单位;CD输入的每个上升沿,计数器当前值减小1个单位;当前值>=预设值时,计数器位为ON。5.2.2定时器与计数器指令(3)增减计数器指令:CTUD增减计数器计数到32767(最大值)后,下一个CU输入的上升沿将使当前值跳变为–32768(最小值);反之,当前值达到–32768时,下一个CD输入的上升沿将使当前值跳变为32767。对Cxxx地址执行复位指令,计数器自动复位,即计数器位为OFF,当前值为0。指令格式:CTUDCxxx,PV;例:CTUDC2,45.2.2定时器与计数器指令(3)增减计数器指令:CTUD应用实例:5.2.2定时器与计数器指令(3)增减计数器指令:CTUD应用实例:5.2.3比较指令1.比较数值指令

比较数值指令可以对两个数据类型相同的数值IN1和IN2进行比较,支持字节、整数、双整数和实数数据类型。对于LAD:比较结果为TRUE时,比较指令将接通触点。对于STL:比较结果为TRUE时,以LD、A、O开始的比较指令分别装载二进制数值1到逻辑栈顶、将二进制数值1与栈顶值进行“与”运算或者“或”运算。比较运算符有:==(STL为=)、>=、<=、>、<和<>(<>表示不等于)。5.2.3比较指令1.比较数值指令

比较数值指令可以对两个数据类型相同的数值IN1和IN2进行比较,支持字节、整数、双整数和实数数据类型。对于LAD:比较结果为TRUE时,比较指令将接通触点。对于STL:比较结果为TRUE时,以LD、A、O开始的比较指令分别装载二进制数值1到逻辑栈顶、将二进制数值1与栈顶值进行“与”运算或者“或”运算。比较运算符有:==(STL为=)、>=、<=、>、<和<>(<>表示不等于)。5.2.3比较指令(1)字节比较

字节比较用于比较两个字节型数值IN1和IN2的大小,字节比较是无符号的。比较式可以是LDB、AB或OB后直接加比较运算符构成,如:LDB=、AB<>、OB>=等。指令格式例:LDB=VB10,VB12AB<>MB0,MB1OB<=AC1,1165.2.3比较指令(2)整数比较

整数比较用于比较两个单字长整数值IN1和IN2的大小,整数比较是有符号的。比较式可以是LDW、AW或OW后直接加比较运算符构成,如:LDW=、AW<>、OW>=等。指令格式例:LDW=VW10,VW12AW<>MW0,MW4OW<=AC2,11605.2.3比较指令(3)整数比较

整数比较用于比较两个单字长整数值IN1和IN2的大小,整数比较是有符号的。比较式可以是LDW、AW或OW后直接加比较运算符构成,如:LDW=、AW<>、OW>=等。指令格式例:LDW=VW10,VW12AW<>MW0,MW4OW<=AC2,11605.2.3比较指令(2)双字整数比较

双字整数比较用于比较两个双字长整数值IN1和IN2的大小,双字整数比较是有符号的。比较式可以是LDD、AD或OD后直接加比较运算符构成,如:LDD=、AD<>、OD>=等。指令格式例:LDD=VD10,VD14AD<>MD0,MD8OD<=AC0,11600005.2.3比较指令(4)实数比较

实数比较用于比较两个双字长实数值IN1和IN2的大小,实数比较是有符号的。比较式可以是LDR、AR或OR后直接加比较运算符构成,如:LDR=、AR<>、OR>=等。指令格式例:LDR=VD10,VD18AR<>MD0,MD12OR<=AC1,1160.4785.2.3比较指令1.比较数值指令

指令操作数的寻址范围应用实例一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。灯L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。5.2.3比较指令1.比较数值指令

应用实例LDI0.0 //增计数出入端LDI0.1 //减计数出入端LDI0.2 //复位出入端CTUDC30,10000//增减计数,预设值为10000//比较计数器C30当前值是否大于VW20中的值LDW>C30,VW20=Q0.0 //输出//比较计数器C30当前值是否大于VW30中的值LDW>C30,VW30=Q0.1 //输出5.2.3比较指令2.比较字符串指令

比较字符串指令可以比较两个ASCII字符串IN1和IN2是否相等。对于LAD:比较结果为TRUE时,比较指令将接通触点。对于STL:比较结果为TRUE时,以LD、A、O开始的比较指令分别装载二进制数值1到逻辑栈顶、将二进制数值1与栈顶值进行“与”运算或者“或”运算。5.2.3比较指令2.比较字符串指令

比较式可以是LDS、AS或OS后直接加比较运算符构成,如:LDS=、LDS<>、AS=、OS<>等。指令格式:LDS= IN1,IN2AS= IN1,IN2OS= IN1,IN2LDS<> IN1,IN2表

比较字符串指令操作数类型和范围5.2.3比较指令2.比较字符串指令

比较式可以是LDS、AS或OS后直接加比较运算符构成,如:LDS=、LDS<>、AS=、OS<>等。指令格式:LDS= IN1,IN2AS= IN1,IN2OS= IN1,IN2LDS<> IN1,IN2比较字符串指令操作数类型和范围如果比较中使用了常数,则它必须为顶部参数IN1。5.2.4数学运算指令1.加法运算指令

加法指令是对有符号数进行相加操作,包括:整数加法、双整数加法和实数加法。在LAD和FBD中以指令盒形式编程,执行结果为:IN1+IN2=OUT。在STL中执行结果为:IN1+OUT=OUT。5.2.4数学运算指令5.2.4数学运算指令5.2.4数学运算指令1.加法运算指令

整数加法指令将两个单字长(16位)的整数IN1和IN2相加,产生一个16位整数结果OUT。双字整数加法指令将两个双字长(32位)的整数IN1和IN2相加,产生一个32位整数结果OUT。实数加法指令将两个双字长(32位)的实数IN1和IN2相加,产生一个32位实数结果OUT。5.2.4数学运算指令1.加法运算指令

加法指令实例LDM0.0MOVWVW0,VW4+IVW2,VW4 LDM0.1+R3.14,VD10 5.2.4数学运算指令2.减法运算指令

减法指令是对有符号数进行相减操作,包括:整数减法、双整数减法和实数减法。在LAD和FBD中以指令盒形式编程,执行结果为:IN1-IN2=OUT。在STL中执行结果为:OUT-IN1=OUT。5.2.4数学运算指令2.减法运算指令

整数减法指令将两个单字长(16位)的整数IN1和IN2相加,产生一个16位整数结果OUT。双字整数减法指令将两个双字长(32位)的整数IN1和IN2相加,产生一个32位整数结果OUT。实数减法指令将两个双字长(32位)的实数IN1和IN2相加,产生一个32位实数结果OUT。5.2.4数学运算指令2.减法运算指令

减法指令实例实例操作数LDI0.0-IVW2,VW0 5.2.4数学运算指令3.乘法运算指令

乘法指令是对有符号数进行相乘操作,包括:整数乘法、双整数乘法、实数乘法、整数相乘产生双整数。在LAD和FBD中,以指令盒形式编程,执行结果为:IN1*IN2=OUT。在STL中执行结果为:IN1*OUT=OUT。5.2.4数学运算指令3.乘法运算指令

整数乘法指令将两个单字长(16位)的整数IN1和IN2相乘,产生一个16位整数结果OUT。双字整数乘法指令将两个双字长(32位)的整数IN1和IN2相乘,产生一个32位整数结果OUT。实数乘法指令将两个双字长(32位)的实数IN1和IN2相乘,产生一个32位实数结果OUT。整数相乘产生双整数指令将两个单字长(16位)的整数IN1和IN2相乘,产生一个32位整数结果OUT。5.2.4数学运算指令3.乘法运算指令

乘法指令实例LDM0.2MOVDVD0,VD8*DVD4,VD65.2.4数学运算指令4.除法运算指令

除法指令是对有符号数进行相除操作,包括:整数除法、双整数除法、实除乘法、带余数的整数除法。在LAD和FBD中,以指令盒形式编程,执行结果为:IN1/IN2=OUT。在STL中执行结果为:OUT/IN1=OUT。5.2.4数学运算指令4.除法运算指令

整数除法指令将两个单字长(16位)的整数IN1和IN2相除,产生一个16位整数结果OUT,不保留余数。双字整数除法指令将两个双字长(32位)的整数IN1和IN2相除,产生一个32位整数结果OUT,不保留余数。实数除法指令将两个双字长(32位)的实数IN1和IN2相除,产生一个32位实数结果OUT。带余数的整数除法指令将两个单字长(16位)的整数IN1和IN2相除,产生一个32位结果OUT,其中,高16位为余数,低16位为商。5.2.4数学运算指令4.除法运算指令

带余数的整数除法指令实例LDSM0.1MOVW5,VW60MOVW3,VW62LDM0.3MOVWVW60,VW66DIVVW62,VD64//DIV执行后余数存于VD64,商存于VD665.2.4数学运算指令5.递增和递减指令

递增和递减指令对输入IN值加1或减1后将结果输出到OUT,数据长度支持字节、字或双字。在LAD和FBD中,以指令盒形式编程,自增指令执行结果为:IN1+1=OUT,自减指令执行结果为:IN1-1=OUT。在STL中,自增指令执行结果为:OUT+1=OUT,自减指令执行结果为:OUT-1=OUT。字节递增或递减运算为无符号运算,字递增或递减运算为有符号运算,双字递增或递减运算为有符号运算。5.2.4数学运算指令5.递增和递减指令

5.2.4数学运算指令6.数学函数指令

数学函数指令包括平方根、自然对数、指数、三角函数等常用的函数指令。5.2.4数学运算指令(1)平方根指令:SQRTSQRT计算实数IN的平方根,产生实数结果OUT。执行结果:指令格式:SQRTIN,OUT(2)自然对数指令:LNLN对实数IN取自然对数,产生实数结果OUT。执行结果:指令格式:LNIN,OUT5.2.4数学运算指令(3)自然指数指令:EXPEXP执行以e为底以实数IN为幂的指数运算,产生实数结果OUT。执行结果:指令格式:EXPIN,OUT5.2.4数学运算指令(4)三角函数指令:SIN、COS、TAN正弦SIN、余弦COS、正切TAN指令的输入IN以弧度为单位,将实数弧度值IN分别取正弦、余弦、正切,各得到实数结果OUT。指令格式:SININ,OUTCOSIN,OUTTANIN,OUT5.2.4数学运算指令(4)三角函数指令:SIN、COS、TAN指令实例:计算65°的正切值。LDM1.0MOVR3.14159,AC2/R180.0,AC2*R65.0,AC2TANAC2,VD8//计算结果为TAN(65°)=2.1445→AC1//VD8=2.14455.2.5逻辑运算指令逻辑运算是对无符号数进行的逻辑处理,主要包括逻辑与、逻辑或、逻辑异或和取反等运算指令。按操作数长度可分为字节、字和双字逻辑运算。5.2.5逻辑运算指令逻辑运算是对无符号数进行的逻辑处理,主要包括逻辑与、逻辑或、逻辑异或和取反等运算指令。按操作数长度可分为字节、字和双字逻辑运算。5.2.5逻辑运算指令字节与、字与和双字与指令对两个输入值IN1和IN2的相应位执行逻辑与运算,并将计算结果装载到分配给OUT的存储单元中。在LAD和FBD中执行结果为:IN1ANDIN2=OUT。在STL中执行结果为:IN1ANDOUT=OUT。字节或、字或和双字或指令对两个输入值IN1和IN2的相应位执行逻辑或运算并,将计算结果装载到分配给OUT的存储单元中。在LAD和FBD中执行结果为:IN1ORIN2=OUT。在STL中执行结果为:IN1OROUT=OUT。5.2.5逻辑运算指令字节异或、字异或和双字异或指令对两个输入值IN1和IN2的相应位执行逻辑异或运算,并将计算结果装载到存储单元OUT中。在LAD和FBD中执行结果为:IN1XORIN2=OUT。在STL中执行结果为:IN1XOROUT=OUT。字节取反、字取反和双字取反指令对输入IN执行按位求反操作,并将结果装载到存储单元OUT中。5.2.5逻辑运算指令指令实例LDSM0.1MOVB2#10110011,VB0MOVB2#11000101,VB1LDM0.0MOVBVB0,VB10ANDBVB1,VB10 5.2.5逻辑运算指令指令实例LDM0.0MOVBVB0,VB11ORBVB1,VB11LDM0.0MOVBVB0,VB12XORBVB1,VB12LDM0.0MOVBVB0,VB13INVBVB135.2.6传送指令1.字节、字、双字和实数传送

使能输入有效时,字节、字、双字和实数传送指令将数据值从源操作数IN传送到新存储单元OUT。5.2.6传送指令1.字节、字、双字和实数传送

使能输入有效时,字节、字、双字和实数传送指令将数据值从源操作数IN传送到新存储单元OUT。5.2.6传送指令2.字节立即传送

包含字节立即读取指令BIR和字节立即写入指令BIW。使能输入有效时,BIR指令立即读取物理输入IN的数据,并传送到OUT指定存储单元,但不更新过程映像寄存器。指令格式:BIRIN,OUTIN的寻址范围:IB、*VD、*LD、*AC。OUT的寻址范围:IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC。5.2.6传送指令2.字节立即传送

使能输入有效时,BIW指令从存储器地址IN读取数据,并将其写入OUT指定的物理输出及相应过程映像寄存器。指令格式:BIWIN,OUTIN的寻址范围:IB、VB、QB、MB、SMB、SB、LB、AC、*VD、*LD、*AC和常数。OUT的寻址范围:QB、*VD、*LD、*AC。5.2.6传送指令3.字节交换

使能输入有效时,字节交换指令SWAP将字型输入数据IN的高位字节与低位字节进行交换,交换的结果输出到IN存储器单元。IN的寻址范围:IW、QW、VW、MW、SMW、SW、T、C、LW、AC、*VD、*LD、*AC。指令格式:SWAPIN(交换后的结果存放在IN中)5.2.6传送指令4.块传送

字节块传送、字块传送、双字块传送指令将已分配数据值块从源存储单元(起始地址IN和连续地址)传送到新存储单元(起始地址OUT和连续地址)。参数N分配要传送的字节、字或双字数据数量,取值范围是1到255。存储在源单元的数据值块不变。5.2.6传送指令4.块传送

5.2.6传送指令4.块传送

指令实例LDM0.1BMBVB0,VB20,155.2.7移位指令1.移位指令

移位指令根据所移位的数据长度可分为字节型、字型、双字型。5.2.7移位指令1.移位指令

指令将输入IN的位值左移或右移N位,对移出后的空位补零后将结果装载到分配给OUT的存储单元中。字节移位操作是无符号操作。字和双字移位操作使用有符号数据时,符号位也被移位。5.2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论