《精品培训课件第四讲.pptx》由会员分享,可在线阅读,更多相关《精品培训课件第四讲.pptx(153页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本章学习目的l位操作类指令,主要是位操作及运算指令,与时也包含与位操作密切相关的定时器和计数器指令等。l运算指令,包括常用的算术运算和逻辑运算指令。l其他数据处理类,包括数据的传送、移位、填充和交换等指令。l 表功能指令,包括对表的存取和查找指令。l 转换指令,包括数据类型转换、码转换和字符转换指令。返回本章首页第1页/共153页4.1位操作类指令 4.1.1指令使用概述 4.1.2基本逻辑指令 4.1.3复杂逻辑指令 4.1.4定时器指令 4.1.5计数器指令 4.1.6比较 返回本章首页第2页/共153页4.1.1指令使用概述 1.主机的有效编程范围存储器的存储容量及各编程元件的有效编程范
2、围如右表4.1所示。第3页/共153页许多指令中含有操作数,操作数的有效编址范围如表4.2所示。第4页/共153页(1)指令例整数加法+I,整数加法指令。使能输入有效时,将两个单字长(16位)的 符 号 整 数 IN1和 IN2相 加,产 生 一 个 16位 整 数 结 果 输 出(OUT)。在LAD和FBD中,以指令盒形式编程。指令盒的执行结果:IN1+IN2=OUT在STL中,执行结果:IN1+OUT=OUTIN1和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VW、IW、QW、MW、SW、SMW、LW、
3、T、C、AC、*VD、*AC和*LD。第5页/共153页本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)使能流输出ENO断开的出错条件:SM1.1(溢出);SM4.3(运行时间);0006(间接寻址)指令格式:+IIN1,OUT第6页/共153页例:+IVW0,VW4本指令在梯形图和语句表中的编程如图4.1所示。图4.1整数加法第7页/共153页3.梯形图的基本绘制规则(1)Network(2)能流/使能(3)编程顺序(4)编号分配(5)内、外触点的配合(6)触点的使用次数(7)线圈的使用次数(8)线圈的连接 返回本节第8页/共153页4.1.2基本逻辑指令 基
4、本逻辑指令在语句表语言中是指对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。一般来说,语句表语言更适合于熟悉可编程序控制器和逻辑编程方面有经验的编程人员。用这种语言可以编写出用梯形图或功能框图无法实现的程序。选择语句表时进行位运算要考虑主机的内部存储结构。第9页/共153页可编程序控制器中的堆栈与计算机中的堆栈结构相同,堆栈是一组能够存储和取出数据的暂时存储单元。堆栈的存取特点是“后进先出”,S7-200可编程序控制器的主机逻辑堆栈结构如表4.3所示。第10页/共153页1.标准触点指令标准触点指令(1)LD:装入常开触点(LoaD)(2)LDN:装入常闭触点(L
5、oaD Not)(3)A:与常开触点(And)(4)AN:与常闭触点(And Not)。(5)O:或常闭触点(Or)(6)ON:或常闭触点(Or Not)(7)NOT:触点取非(输出反相)(8)=:输出指令 第11页/共153页在语句表中,LD、LDN、A、AN、O、ON、NOT这几条指令的执行对逻辑堆栈的影响分别如表4.4、表4.5其后的说明。第12页/共153页表4.5指令AI0.2的执行第13页/共153页程序实例:本程序段用以介绍标准触点指令在梯形图、语句表和功能块图3种语言编程中的应用,仔细比较不同编程工具的区别与联系。其梯形图和语句表程序结构如图4.2所示。图4.2标准触点LAD和
6、STL例第14页/共153页本程序对应的功能框图如图4.3所示。在功能框图中,常闭触点的装入和串并联用指令盒的对应输入信号端加圆圈来表示。程序执行的时序图如图4.4所示。图4.3标准触点FBD例2.正负跳变指令 第15页/共153页图4.4时序图第16页/共153页负跳变触点检测到脉冲的每一次负跳变后,产生一个微分脉冲。指令格式:ED (无操作数)应用举例:图4.5是跳变指令的程序片断。图4.6是图4.5指令执行的时序。第17页/共153页图4.5跳变应用第18页/共153页图4.6时序第19页/共153页(1)S,置位指令(2)R,复位指令 置位即置1,复位即置0。置位和复位指令可以将位存储
7、区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。这两条指令在使用时需指明三点:操作性质、开始位和位的数量。各操作数类型及范围如表4.6所示。3.置位和复位指令置位和复位指令第20页/共153页(1)S,置位指令 将位存储区的指定位(位bit)开始的N个同类存储器位置位。用法:Sbit,N例:SQ0.0,1第21页/共153页(2)R,复位指令 将位存储区的指定位(位bit)开始的N个同类存储器位复位。当用复位指令时,如果是对定时器T位或计数器C位进行复位,则定时器位或计数器位被复位,同时,定时器或计数器的当前值被清零。用法:Rbit,N例:RQ0.2,3应用举例:图4.7
8、为置位和复位指令应用程序片断。第22页/共153页图4.7置位复位第23页/共153页本程序对应的时序图如图4.8所示。图4.8时序图第24页/共153页4.立即指令(1)立即触点指令(2)=I,立即输出指令(3)SI,立即置位指令(4)RI,立即复位指令 第25页/共153页(1)立即触点指令在每个标准触点指令的后面加“I”。指令执行时,立即读取物理输入点的值,但是不刷新对应映像寄存器的值。这类指令包括:LDI、LDNI、AI、ANI、OI和ONI。下面以LDI指令为例。用法:LDIbit例:LDII0.2注意:bit只能是I类型。第26页/共153页(2)=I,立即输出指令用立即指令访问输
9、出点时,把栈顶值立即复制到指令所指出的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。用法:=Ibit例:=IQ0.2注意:bit只能是Q类型。第27页/共153页(3)SI,立即置位指令用立即置位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也被刷新。用法:SIbit,N例:SIQ0.0,2注意:bit只能是Q类型。SI和RI指令的操作数类型及范围如表4.7所示。第28页/共153页(4)RI,立即复位指令用立即复位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即复位
10、,同时,相应的输出映像寄存器的内容也被刷新。用法:RIbit,N例:RIQ0.0,1应用举例:图4.9为立即指令应用中的一段程序,图4.10是程序对应的时序图。第29页/共153页图4.9立即指令程序第30页/共153页图4.10时序图返回本节第31页/共153页4.1.3复杂逻辑指令 1.栈装载与指令 2.栈装载或指令 3.逻辑推入栈指令 4.逻辑弹出栈指令 5.逻辑读栈指令 6.装入堆栈指令 第32页/共153页1.栈装载与指令 ALD,栈装载与指令(与块)。在梯形图中用于将并联电路块进行串联连接。在语句表中指令ALD执行情况如表4.8所示。第33页/共153页OLD,栈装载或指令(或块)
11、。在梯形图中用于将串联电路块进行并联连接。在语句表中指令OLD执行情况如表4.9所示。2.栈装载或指令 第34页/共153页LPS,逻辑推入栈指令(分支或主控指令)。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。注意:使用LPS指令时,本指令为分支的开始,以后必须有分支结束指令LPP。即LPS与LPP指令必须成对出现。在语句表中指令LPS执行情况如下表4.10所示。3.逻辑推入栈指令 第35页/共153页4.逻辑弹出栈指令 LPP,逻辑弹出栈指令(分支结束或主控复位指令)。在梯形图中的分支结构中,用于将LPS指令生成一条新的母线进行恢复。注意
12、:使用LPP指令时,必须出现在LPS的后面,与LPS成对出现。在语句表中指令LPP执行情况如下表4.11所示。第36页/共153页5.逻辑读栈指令 LRD,逻辑读栈指令。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。在语句表中指令LRD 执行情况如表4.12所示。第37页/共153页6.装入堆栈指令 LDS,装入堆栈指令。本指令编程时较少使用。指令格式:LDSn(n为08的整数)例:LDS4指令LDS4 在语句表中执行情况如下表4.13所示。第38页/共153页应用举例:图4.11是复杂逻辑指令在实际应用中的一段程序的梯形图。图4.11复杂逻辑指令的应用返回本节
13、第39页/共153页4.1.4定时器指令 系统提供3种定时指令:TON、TONR和TOF。精度等级:S7-200定时器的精度(时间增量/时间单位/分辨率)有3 个等级:1ms、10ms和100ms,精度等级和定时器号关系如表4.14所示。第40页/共153页指令操作数 1)编号:2)预设值PT:3)使能输入(只对LAD和FBD):第41页/共153页1.接通延时定时器 TON,接通延时定时器指令。用于单一间隔的定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位ON,当前值连续计数到32767。使能输入断开
14、,定时器自动复位,即定时器位OFF,当前值为0。指令格式:TONTxxx,PT例:TONT120,8第42页/共153页2.有记忆接通延时定时器 TONR,有记忆接通延时定时器指令。用于对许多间隔的累计定时。上电周期或首次扫描,定时器位OFF,当前值保持。使能输入接通时,定时器位为OFF,当前值从0开始计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器位ON,当前值连续计数到32767。TONR定时器只能用复位指令进行复位操作。指令格式:TONRTxxx,PT例:TONRT20,63第43页/共153页3.断
15、开延时定时器断开延时定时器TOF,断开延时定时器指令。用于断开后的单一间隔定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为ON,当前值为0。当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。指令格式:TOFTxxx,PT例:TOFT35,6第44页/共153页4.应用举例应用举例例1:图4.12是介绍3种定时器的工作特性的程序片断,其中T35为通电延时定时器,T2为有记忆通电延时定时器,T36为断电延时定时器。第45页/共153页图4.
16、12定时器特性第46页/共153页本梯形图程序中输入输出执行时序关系如图4.13所示。图4.13定时器时序第47页/共153页例2:用TON构造各种类型的时间继电器触点。有的厂商的PLC只有TON定时器,因此,在这种情况下可以利用TON来构造断电延时型的各种触点。图4.14是用TON构造TOF作用的触点。其时序图与TOF的时序完全相同。图4.15用通电延时定时器与输出继电器组成带瞬动触点的定时器。图4.16是利用常开触点实现通电和断电都延时的触点作用。本程序实现的功能是:用输入端I0.0控制输出端Q0.0,当I0.0接通后,过3个时间单位Q0.0端输出接通,当I0.0断开后,过6个时间单位Q0
17、.0断开。第48页/共153页图4.14定时器应用第49页/共153页图4.14定时器应用第50页/共153页图4.15定时器应用第51页/共153页图4.16定时器应用返回本节第52页/共153页4.1.5计数器指令 1.概 述 2.增计数器 3.增减计数器 4.减计数器 5.应用举例 第53页/共153页1.概述 计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。指令操作数有4方面:编号、预设值、脉冲输入和复位输入。第54页/共153页图4.18电机顺序起动第55页/共1
18、53页2.增计数器 CTU,增计数器指令。首次扫描,定时器位OFF,当前值为0。脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32767停止计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。指令格式:CTUCxxx,PV例:CTUC20,3程序实例:图4.19为增计数器的程序片断和时序图。第56页/共153页第57页/共153页图4.19增计数程序及时序第58页/共153页3.增减计数器 CTUD,增减计数器指令。有两个脉冲输入端:CU输入端用于递增计数,CD输入端用于递减计数。指令格式:CTUDCxx
19、x,PV例:CTUDC30,5程序实例:如图4.20所示为增减计数器的程序片断和时序图。第59页/共153页图4.20增减计数程序及时序第60页/共153页4.减计数器 CTD,增减计数器指令。脉冲输入端CD用于递减计数。首次扫描,定时器位OFF,当前值为等于预设值PV。计数器检测到CD输入的每个上升沿时,计数器当前值减小1个单位,当前值减到0时,计数器位ON。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值复位为预设值,而不是0。指令格式:CTDCxxx,PV例:CTDC40,4程序实例:图4.21为减计数器的程序片断和时序图。第61页/共153页第62页/共153页图4
20、.21减计数程序及时序第63页/共153页5.应用举例 1)循环计数。以上三种类型的计数器如果在使用时,将计数器位的常开触点作为复位输入信号,则可以实现循环计数。2)用计数器和定时器配合增加延时时间,如图4.22所示。试分析以下程序中实际延时为多长时间。第64页/共153页第65页/共153页图4.22计数器应用例返回本节第66页/共153页4.1.6比较 1.字节比较 2.整数比较 3.双字整数比较 4.实数比较 5.应用举例 第67页/共153页1.字节比较 字节比较用于比较两个字节型整数值IN1和IN2的大小,字节比较是无符号的。比较式可以是LDB、AB或OB后直接加比较运算符构成。如:
21、LDB=、AB、OB=等。整数IN1和IN2的寻址范围:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。指令格式例:LDB=VB10,VB12AB MB0,MB1OB=AC1,116第68页/共153页2.整数比较 整数比较用于比较两个一字长整数值IN1和IN2的大小,整数比较是有符号的(整数范围为16#8000和16#7FFF之间)。比较式可以是LDW、AW或OW后直接加比较运算符构成。如:LDW=、AW、OW=等。整数IN1和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。指令格式例:LDW=VW1
22、0,VW12AWMW0,MW4OW=AC2,1160第69页/共153页3.双字整数比较 双字整数比较用于比较两个双字长整数值IN1和IN2的大小,双字整数比较是有符号的(双字整数范围为16#80000000和16#7FFFFFFF之间)。指令格式例:LDD=VD10,VD14AD MD0,MD8OD=HC0,*AC0第70页/共153页4.实数比较 实数比较用于比较两个双字长实数值IN1和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E+38,正实数范围为+1.175495E-38和+3.402823E+38)。比较式可以是LDR、AR或OR后直
23、接加比较运算符构成。指令格式例:LDR=VD10,VD18AR MD0,MD12OR*AC1,VD100第71页/共153页5.应用举例 控制要求:一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。本控制系统的程序如图4.23所示。程序执行时序如图4.24所示。第72页/共153页图4.23程序举例第73页/共153页图4.24时序图返回本节第74页/共153页4.2运算指令 4.2.1 加法 4.2.2减法 4
24、.2.3乘法 4.2.4除法 4.2.5 数学函数指令 4.2.6增减 4.2.7 逻辑运算 返回本章首页第75页/共153页4.2.1 加法 1.整数加法+I,整数加法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相加,产生一个16位整数结果OUT。第76页/共153页图4.25整数加法例第77页/共153页2.双整数加法+D,双整数加法指令。使能输入有效时,将两个双字长(32位)的符号双整数IN1和IN2相加,产生一个32位双整数结果OUT。在 LAD和 FBD中,以 指 令 盒 形 式 编 程,执 行 结 果:IN1+IN2=OUT。在STL中,执行结果:IN1+O
25、UT=OUT。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。指令格式:+DIN1,OUT例:+DVD0,VD4第78页/共153页+R,实数加法指令。使能输入有效时,将两个双字长(32位)的实数IN1和IN2相加,产生一个32位实数结果OUT。在 LAD和 FBD中,以 指 令 盒 形 式 编 程,执 行 结 果:IN1+IN2=OUT。OUT的 寻 址 范 围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)。返回本节第79页/共153页4.
26、2.2减法 减法指令是对有符号数进行相减操作。包括:整数减法、双整数减法和实数减法。这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。第80页/共153页在 LAD和 FBD中,以 指 令 盒 形 式 编 程,执 行 结 果:IN1-IN2=OUT。在STL中,执行结果:OUT-IN2=OUT。指令格式:-IIN2,OUT(整数减法)-DIN2,OUT(双整数减法)-RIN2,OUT(实数减法)例:-IAC0,VW4返回本节第81页/共153页4.2.3乘法*I,整数乘法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相乘,产生一个16位整数结果OUT。
27、指令格式:*IIN1,OUT例:*IVW0,AC01.整数乘法 第82页/共153页2.完全整数乘法 MUL,完全整数乘法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相乘,产生一个32位双整数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:IN1*IN2=OUT。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负);SM1.3(被0除)。指令格式:MUL IN1,OUT例:MUL AC0,VD10 第83页/共153页3.双整数乘法*D,双
28、整数乘法指令。使能输入有效时,将两个双字长(32位)的符号整数IN1和IN2相乘,产生一个32位双整数结果OUT。在STL中,执行结果:IN1*OUT=OUT。IN1和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负);SM1.3(被0除)。指令格式:*DIN1,OUT例:*DVD0,AC0第84页/共153页4.实数乘法实数乘法*R,实数乘法指令。使能输入有效时,将两个
29、双字长(32位)的实数IN1和IN2相乘,产生一个32位实数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:IN1*IN2=OUT。在STL中,执行结果:IN1*OUT=OUT。IN1和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负);SM1.3(被0除)。指令格式:*RIN1,OUT例:*RVD0,AC0返回本节第85页/共153页4.2.4除法 在 LAD和
30、FBD中,以 指 令 盒 形 式 编 程,执 行 结 果:IN1/IN2=OUT。在STL中,执行结果:OUT/IN2=OUT。指令格式:/I IN2,OUT(整数除法)DIV IN2,OUT(整数完全除法)/DIN2,OUT(双整数除法)/RIN2,OUT(实数除法)第86页/共153页例:DIVVW10,VD100/IVW20,VW200两条指令的编程及执行情况比较如图4.26所示。图4.26除法指令应用第87页/共153页对于除法指令:对于完全除法指令:返回本节第88页/共153页4.2.5 数学函数指令 1.平方根 2.自然对数 3.指数 4.正弦、余弦、正切 第89页/共153页1.
31、平方根 SQRT,平方根指令。把一个双字长(32位)的实数IN开平方,得到32位的实数结果。在LAD和FBD中,以指令盒形式编程,执行结果:SQRT(IN)=OUT。在STL中,执行结果:SQRT(IN)=OUT。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出和非法值);SM1.2(负)。使能流输出ENO断开的出错条件:SM1.1(溢出);SM4.3(运行时间);0006(间接寻址)。指令格式:SQRTIN,OUT例:SQRTVD0,AC0第90页/共153页2.自然对数 LN,自然对数指令。将一个双字长(32位)的实数IN取自然对数,得到32位的实数结果。应用实例:求以10为底
32、的50(存于VD0)的 常 用对数,结果放到AC0。本运算程序如图4.27所示。图4.27自然对数的应用第91页/共153页3.指数 EXP,指数指令。将一个双字长(32位)的实数IN取以e为底的指数,得到32位的实数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:EXP(IN)=OUT。在STL中,执行结果:EXP(IN)=OUT。指令格式:EXPIN,OUT例:EXPVD0,AC0 第92页/共153页4.正弦、余弦、正切 SIN、COS、TAN,即正弦、余弦、正切指令。将一个双字长(32位)的实数弧度值IN分别取正弦、余弦、正切,各得到32位的实数结果。如果已知输入值为角度,
33、要先将角度值转化为弧度值,方法:使用(*R)MUL_R指令用角度值乘以/180即可。第93页/共153页例:TANVD0,AC0应用实例:求COS160o的值。如图4.28所示。图4.28三角函数应用例返回本节第94页/共153页4.2.6增减 1.字节增和字节减 2.字增和字减 3.双字增和双字减 4.应用实例 第95页/共153页1.字节增和字节减 INCB,字节增指令。使能输入有效时,把一字节长的无符号输入数(IN)加1,得到一字节的无符号输出结果OUT。DECB,字节减指令。使能输入有效时,把一字节长的无符号输入数(IN)减1,得到一字节的无符号输出结果OUT。第96页/共153页2.
34、字增和字减 第97页/共153页3.双字增和双字减 INCD,双字增指令。使能输入有效时,把双字长(32位)的有符号输入数(IN)加1,得到双字长的有符号输出结果OUT。DECD,双字减指令。使能输入有效时,把双字长的有符号输入数(IN)减1,得到双字长的有符号输出结果OUT。第98页/共153页4.应用实例 控制要求:食品加工厂对饮料生产线上的盒装饮料进行计数,每24盒为一箱,要求能记录生产的箱数。程序及说明:程序如图4.29所示。图4.29增减指令的应用返回本节第99页/共153页4.2.7 逻辑运算 1.字节逻辑运算 2.字逻辑运算 3.双字逻辑运算 第100页/共153页1.字节逻辑运
35、算 字节逻辑运算包括字节与、字节或、字节异或、字节取反。第101页/共153页2.字逻辑运算 字节逻辑运算包括字节与、字节或、字节异或、字节取反。第102页/共153页3.双字逻辑运算 字逻辑运算包括双字与、双字或、双字异或、双字取反。返回本节第103页/共153页4.3其他数据处理指令 4.3.1传送类指令 4.3.2移位指令 4.3.3字节交换指令 4.3.4填充指令 返回本章首页第104页/共153页4.3.1传送类指令 1.单一传送(1)MOVB,字节传送指令(2)BIR,传送字节立即读指令(3)BIW,传送字节立即写指令(4)MOVW,字传送指令(5)MOVD,双字传送指令(6)MO
36、VR,实数传送指令 2.块传送(1)BMB,字节块传送指令(2)BMW,字块传送指令(3)BMD,双字块传送指令 第105页/共153页1.单一传送(1)MOVB,字节传送指令使能输入有效时,把一个单字节无符号数据由IN传送到OUT所指的字节存储单元。IN的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式:MOVBIN1,OUT例:MOVBVB0,QB0第106页/共153页(2)BIR,传送字节立即读指令使能输入有效时,立即读取单字节物理输入区数据IN
37、,并传送到OUT所指的字节存储单元。IN的寻址范围:IBOUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式:BIRIN1,OUT例:BIRIB0,VB10第107页/共153页2.块传送 指令可用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字块。三条指令中N的寻址范围都是:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。使ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址);0091(数超界)。返回本节第108页/共153页4.3.2移位指令 1.左移和右移 2.循环左
38、移、循环右移 3.寄存器移位 第109页/共153页(1)字节左移和字节右移SLB和SRB,字节左移和字节右移。使能输入有效时,把字节型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字节存储单元。最大实际可移位次数为8。1.左移和右移 第110页/共153页以第一条指令为例,指令执行情况如表4.16所示。表表4.16指令指令SLB执行结果执行结果第111页/共153页SLW和SRW,字左移和字右移。指令盒与字节移位比较,只有名称变为SHR_W和SHR_W。使能输入有效时,把字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字存储单元。最大实际可移位次数为16。指令格式:SL
39、WOUT,N(字左移)SRWOUT,N(字右移)例:SLWMW0,2SRWLW0,3以第二条指令为例,指令执行情况如表4.17所示。第112页/共153页第113页/共153页(3)双字左移和双字右移SLD和SRD,双字左移和双字右移。指令盒与字节移位比较,只有名称变为SHL_DW和SHR_DW,其他部分完全相同。使能输入有效时,把双字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的双字存储单元。最大实际可移位次数为32。指令格式:SLDOUT,N(双字左移)SRDOUT,N(双字右移)例:SLDMD0,2SRDLD0,3第114页/共153页2.循环左移、循环右移 循环左移和循环右
40、移根据所循环移位的数的长度分别又可分为字节型、字型、双字型。循环移位特点:移位数据存储单元的移出端与另一端相连,同时又与SM1.1(溢出)相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存储单元。例如在循环右移时,移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。第115页/共153页循环移位的类型(1)字节循环左移和字节循环右移(2)字循环左移和字循环右移(3)双字循环左移和双字循环右移 表表4.18指令指令RRW执行结果执行结果第116页/共153页SHRB,寄存器移位指令。该指令在梯形图中有3个数据输入端:DATA为数值输入,将该位
41、的值移入移位寄存器;S_BIT为移位寄存器的最低位端;N指定移位寄存器的长度。每次使能输入有效时,整个移位寄存器移动1位。移位特点:移位寄存器长度在指令中指定,没有字节型、字型、双字型之分。可指定的最大长度为64位,可正也可负。3.寄存器移位 第117页/共153页表表4.19指令指令SHRB执行结果执行结果返回本节第118页/共153页4.3.3字节交换指令 SWAP,字节交换指令。使能输入有效时,将字型输入数据IN的高字节和低字节进行交换。本指令只对字型数据进行处理,指令的执行不影响的特殊存储器位。使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。指令格式:SW
42、AP IN(字节交换)例:SWAP VW10以第本指令为例,指令执行情况如表4.20所示。返回本节第119页/共153页4.3.4填充指令 FILL,存储器填充指令。使能输入有效时,用字型输入数据IN填充从输出OUT所指的单元开始的N个字存储单元。填充指令只对字型数据进行处理,N值为字节型,可取从1255的整数。指令的执行不影响的特殊存储器位。使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址);0091(操作数超界)。指令格式:FILLIN,OUT,N(填充指令)例:FILL10,VW100,12本条指令的执行结果是:将数据10填充到从VW100到VW122共12个字
43、存储单元。返回本节第120页/共153页4.4表功能指令 4.4.1表存数指令4.4.2表取数指令 4.4.3表查找指令 返回本章首页第121页/共153页表只对字型数据存储,表的格式例如表4.21所示。第122页/共153页4.4.1表存数指令 ATT,表存数指令。该指令在梯形图中有2个数据输入端:DATA为数值输入,指出将被存储的字型数据或其地址;TBL表格的首地址,用以指明被访问的表格。当使能输入有效时,将输入字型数据添加到指定的表格中。表存数特点:表存数时,新存的数据添加在表中最后一个数据的后面。每向表中存一个数据,实际填表数EC会自动加1。第123页/共153页表4.22指令ATT执
44、行结果 返回本节第124页/共153页4.4.2表取数指令 1.FIFO,先进先出指令 2.LIFO,后进先出指令 第125页/共153页1.FIFO,先进先出指令 当使能输入有效时,从TBL指明的表中移 出 第 一 个 字 型 数 据 并 将 其 输 出 到DATA所指定的字单元。FIFO表取数特点:取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数EC会自动减1。指令格式:FIFO TBL,DATA例:FIFO VW100,AC0如果仍是对表4.21存取,则指令执行情况如表4.23所示。第126页/共153页表4.23指令FIF
45、O执行结果 第127页/共153页2.LIFO,后进先出指令 当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元。LIFO表取数特点:取数时,移出的数据是最后进入表中的数据。每次从表中取出一个数据,剩余数据位置保持不变,实际填表数EC会自动减1。指令格式:LIFO TBL,DATA例:LIFO VW100,AC0如果仍是对表4.21存取,则指令执行情况如表4.24所示。第128页/共153页表表4.24指令指令LIFO执行结果执行结果返回本节第129页/共153页4.4.3表查找指令 FND?,表查找指令。通过表查找指令可以从字型数表中找出符合条件的数据
46、所在的表中数据编号,编号范围为099。在梯形图中有4个数据输入端:TBL表格的首地址,用以指明被访问的表格;PTN是用来描述查表条件时进行比较的数据;CMD是比较运算符“?”的编码,它是一个14的数值,分别代表=、运算符;INDX用来指定表中符合查找条件的数据的地址。第130页/共153页表表4.25表查找指令执行结果表查找指令执行结果返回本节第131页/共153页4.5转换指令 4.5.1数据类型转换 4.5.2编码和译码 4.5.3七段码 4.5.4字符串转换 返回本章首页第132页/共153页4.5.1数据类型转换 1.字节与整数(1)字节到整数(2)整数到字节 2.整数与双整数(1)双
47、整数到整数(2)整数到双整数 3.双整数与实数(1)实数到双整数(2)双整数到实数 4.整数与BCD码(1)BCD码到整数(2)整数到BCD码 5.程序实例 第133页/共153页1.字节与整数(1)字节到整数BTI,字节转换为整数指令。使能输入有效时,将字节输入数据IN转换成整数类型,并将结果送到OUT输出。字节型是无符号的,所以没有符号扩展。使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。指令格式:BTIIN,OUT例:BTIVB0,AC0第134页/共153页(2)整数到字节ITB,整数转换字节指令。使能输入有效时,将整数输入数据IN转换成字节类型,并将结果
48、送到OUT输出。输入数据超出字节范围(0255)则产生溢出。移位指令影响的特殊存储器位:SM1.1(溢出)。使能流输出ENO断开的出错条件:SM1.1(溢出);SM4.3(运行时间);0006(间接寻址)。指令格式:ITBIN,OUT例:ITBAC0,VB10第135页/共153页2.整数与双整数整数与双整数(1)双整数到整数DTI,双整数转换为整数指令。使能输入有效时,将双整数输入数据IN转换成整数类型,并将结果送到OUT输出。输入数据超出整数范围则产生溢出。移位指令影响的特殊存储器位:SM1.1(溢出)。使能流输出ENO断开的出错条件:SM1.1(溢出);SM4.3(运行时间);0006(
49、间接寻址)。指令格式:DTIIN,OUT例:DTIAC0,VW20第136页/共153页(2)整数到双整数ITD,整数转换为双整数指令。使能输入有效时,将整数输入数据IN转换成双整数类型(符号进行扩展),并将结果送到OUT输出。使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。指令格式:ITDIN,OUT例:ITDVW0,AC0第137页/共153页3.双整数与实数双整数与实数(1)实数到双整数第138页/共153页(2)双整数到实数DTR,双整数转换实数指令。使能输入有效时,将双整数输入数据IN转换成实型,并将结果送到OUT输出。使能流输出ENO断开的出错条件:S
50、M4.3(运行时间);0006(间接寻址)。指令格式:DTRIN,OUT例:DTRAC0,VD100第139页/共153页4.整数与整数与BCD码码(1)BCD码到整数BCDI,BCD码转换为整数指令。使能输入有效时,将BCD码输入数据IN转换成整数类型,并将结果送到OUT输出。输入数据IN的范围为09999。指令格式:BCDIOUT例:BCDIAC0 第140页/共153页(2)整数到BCD码IBCD,整数转换为BCD码指令。使能输入有效时,将整数输入数据IN转换成BCD码类型,并将结果送到OUT输出。输入数据IN的范围为09999。指令格式:IBCDOUT例:IBCDAC0第141页/共1