《第5章 数据处理、》由会员分享,可在线阅读,更多相关《第5章 数据处理、(56页珍藏版)》请在金锄头文库上搜索。
1、第5章 数据处理、运算指令及应用n n本章要点 数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训 算术运算、逻辑运算、递增/递减指令的介绍、应用及实训 表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍5.1 数据处理指令5.1.1 数据传送指令1. 字节、字、双字、实数单个数据传送指令MOVLADSTLMOVB IN,OUTMOVW IN,OUTMOVD IN,OUTMOVR IN,OUT【例5-1】将变量存储器VW10中内容送到VW100中。LD I0.1MOVW VW10, VW1002. 字节、字、双字、实数数据块传送指令BLKMOVLADSTLBMB IN,
2、OUT,NBMW IN,OUT,NBMD IN,OUT,N操作数及数据类型IN:VB, IB, QB, MB, SB, SMB, LB。OUT:VB, IB, QB, MB, SB, SMB, LB。数据类型:字节IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW。OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AQW。数据类型:字IN/ OUT :VD, ID, QD, MD, SD, SMD, LD。数据类型:双字N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节;数据范围:1-255功能
3、使能输入有效时,即EN=1时,把从输入IN开始的N个字节(字、双字)传送到以输出OUT开始的N个字节(字、双字)中【例5-2】程序举例:将变量存储器VB20开始的4个字节(VB20- VB23)中的数据,移至VB100开始的4个字节中(VB100-VB103)。 LD I0.0BMB VB20 ,VB100, 4程序执行后,将VB20VB23中的数据30、31、32、33送到VB100VB103。执行结果如下:数组1数据 30 31 32 33数据地址 VB20 VB21 VB22 VB23块移动执行后:数组2数据 30 31 32 33数据地址 VB100 VB101 VB102 VB103
4、5.1.2 字节交换、字节立即读写指令1. 字节交换指令:字节交换指令用来交换输入字IN的最高位字节和最低位字节。 LADSTL功能及说明SWAP IN功能:使能输入EN有效时,将输入字IN的高字节与低字节交换,结果仍放在IN中IN:VW, IW, QW, MW, SW, SMW, T, C, LW, AC。数据类型:字【例5-3】字节交换指令应用举例LD I0.1SWAP VW50程序执行结果:指令执行之前VW50中的字为:D6 C3指令执行之后VW50中的字为:C3 D62. 字节立即读写指令LADSTL功能及说明BIR IN,OUT功能:字节立即读 IN: IBOUT:VB, IB, Q
5、B, MB, SB, SMB, LB, AC。数据类型:字节BIW IN,OUT功能:字节立即写IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量OUT:QB 数据类型:字节字节立即读指令(MOV-BIR)读取实际输入端IN给出的1个字节的数值,并将结果写入OUT所指定的存储单元,但输入映像寄存器未更新。字节立即写指令从输入IN所指定的存储单元中读取1个字节的数值并写入(以字节为单位)实际输出OUT端的物理输出点,同时刷新对应的输出映像寄存器。 5.1.3 移位指令及应用举例1. 左、右移位指令LADSTLSLB OUT,NSRB OUT,NSLW OUT,NSRW
6、OUT,NSLD OUT,NSRD OUT,N说明:在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。如:MOVB IN,OUTSLB OUT,N 2. 循环左、右移位指令LADSTLRLB OUT,NRRB OUT,NRLW OUT,NRRW OUT,NRLD OUT,NRRD OUT,N在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。如:MOVB IN,OUTSLB OUT,N【例5-4】程序应用举例,将AC0中的字循环右移2位,将VW200中的字左
7、移3位。 【例5-5】用I0.0控制接在Q0.0Q0.7上的8个彩灯循环移位,从右到左以0.5s的速度依次点亮,保持任意时刻只有一个指示灯亮,到达最左端后,再从右到左依次点亮。LD SM0.1 /首次扫描时MOVB 1, QB0 /置8位彩灯初态LD I0.0 /T37产生周期为 AN T37 0.5s的移位脉冲 TON T37, +5 LD T37 /每来一个脉冲RLB QB0, 1 彩灯循环左移1位 3. 移位寄存器指令(SHRB)SHRB DATA,S-BIT,N(1)移位寄存器指令SHRB将DATA数值移入移位寄存器。EN为使能输入端,连接移位脉冲信号,每次使能有效时,整个移位寄存器移
8、动1位。DATA为数据输入端,连接移入移位寄存器的二进制数值,执行指令时将该位的值移入寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向,移位寄存器的最大长度为64位,N为正值表示左移位,输入数据(DATA)移入移位寄存器的最低位(S_BIT),并移出移位寄存器的最高位。(2)DATA和S-BIT的操作数为I, Q, M, SM, T, C, V, S, L 。数据类型为:BOOL变量。N的操作数为VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型为:字节。【例5-6】移位寄存器应用举例。LD I0.0EUSHRB I0.1, M10.0,
9、 +4【例5-7】用PLC构成喷泉的控制。用灯L1L12分别代表喷泉的12个喷水注。(1)控制要求:按下起动按钮后,隔灯闪烁,L1亮0.5秒后灭,接着L2亮0.5秒后灭, 接着L3亮0.5秒后灭,接着L4亮0.5秒后灭,接着L5、L9亮0.5秒后灭,接着L6、L10亮0.5秒后灭,接着L7、L11亮0.5秒后灭,接着L8、L12亮0.5秒后灭,L1亮0.5秒后灭,如此循环下去,直至按下停止按钮。如图5-8所示。(2)I/O分配 输入 输出(常开)起动按钮:I0.0 L1:Q0.0 L5、L9: Q0.4(常闭)停止按钮:I0.1 L2:Q0.1 L6、L10:Q0.5 L3:Q0.2 L7、L
10、11:Q0.6 L4:Q0.3 L8、L12:Q0.7分析:应用移位寄存器控制,根据喷泉模拟控制的8位输出(Q0.0Q0.7),须指定一个8位的移位寄存器(M10.1M11.0),移位寄存器的S-BIT位为M10.1,并且移位寄存器的每一位对应一个输出。T38构成0.5s产生一个机器扫描周期脉冲的脉冲发生器第八个脉冲到来时M11.0置位为1,同时通过与T37并联的M11.0常开触点使M10.0置位为1T37(M10.0)延时0.5s导通一个扫描周期第八个脉冲到来时M11.0置位为1,同时通 过 与 T37并 联 的 M11.0常 开 触 点 使M10.0置位为15.1.4 转换指令n n转换指
11、令是对操作数的类型进行转换,并输出到转换指令是对操作数的类型进行转换,并输出到指定目标地址中去。转换指令包括数据的类型转指定目标地址中去。转换指令包括数据的类型转换、数据的编码和译码指令以及字符串类型转换换、数据的编码和译码指令以及字符串类型转换指令。指令。n n不同功能的指令对操作数要求不同。类型转换指不同功能的指令对操作数要求不同。类型转换指令可将固定的一个数据用到不同类型要求的指令令可将固定的一个数据用到不同类型要求的指令中,包括字节与字整数之间的转换,整数与双整中,包括字节与字整数之间的转换,整数与双整数的转换,双字整数与实数之间的转换数的转换,双字整数与实数之间的转换,BCD,BCD
12、码与码与整数之间的转换等。整数之间的转换等。1. 字节与字整数之间的转换LADSTLBTI IN,OUTITB IN,OUT操作数及数据类型IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, 数据类型:字节OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC,数据类型:整数IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量,数据类型:整数OUT:VB, IB, QB, MB, SB, SMB, LB, AC, 数据类型:字节功能及说明BTI指令将字节数值(IN)转换成整数值,并将结果置入O
13、UT指定的存储单元。因为字节不带符号,所以无符号扩展ITB指令将字整数(IN)转换成字节,并将结果置入OUT指定的存储单元。输入的字整数0至255被转换。超出部分导致溢出,SM1.1=1。输出不受影响2. 字整数与双字整数之间的转换LADSTLITD IN,OUTDTI IN,OUT操作数及数据类型IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, 数据类型:整数OUT:VD, ID, QD, MD, SD, SMD, LD, AC,数据类型:双整数IN:VD, ID, QD, MD, SD, SMD, LD, HC, AC,常量,数据类型:双
14、整数OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC, 数据类型:整数功能及说明ITD指令将整数值(IN)转换成双整数值,并将结果置入OUT指定的存储单元。符号被扩展DTI指令将双整数值(IN)转换成整数值,并将结果置入OUT指定的存储单元。如果转换的数值过大,则无法在输出中表示,产生溢出SM1.1=1,输出不受影响3. 双整数与实数之间的转换LADSTLDTR IN,OUTROUND IN,OUTTRUNC IN,OUT功能及说明DTR指令将32位带符号整数IN转换成32位实数,并将结果置入OUT指定的存储单元 ROUND指令按小数部分四舍五入的原则,将实数
15、(IN)转换成双整数值,并将结果置入OUT指定的存储单元TRUNC(截位取整)指令按将小数部分直接舍去的原则,将32位实数(IN)转换成32位双整数,并将结果置入OUT指定存储单元4. BCD码与整数的转换LADSTLBCDI OUTIBCD OUT功能及说明BCD-I指令将二进制编码的十进制数IN转换成整数,并将结果送入OUT指定的存储单元。IN的有效范围是BCD码 0至9999I-BCD指令将输入整数IN转换成二进制编码的十进制数,并将结果送入OUT指定的存储单元。IN的有效范围是0至9999LAD和STL指令中,IN和OUT的操作数地址相同。若IN和OUT操作数地址不是同一个存储器,对应
16、的语句表指令为: MOV IN OUT BCDI OUT 5. 译码和编码指令LADSTLDECO IN,OUTENCO IN,OUT操作数及数据类型IN:VB, IB, QB, MB, SMB, LB, SB, AC, 常量。数据类型:字节OUT:VW, IW, QW, MW, SMW, LW, SW, AQW, T, C, AC。数据类型:字IN:VW, IW, QW, MW, SMW, LW, SW, AIW, T, C, AC, 常量。数据类型:字OUT:VB, IB, QB, MB, SMB, LB, SB, AC。数据类型:字节功能及说明译码指令根据输入字节(IN)的低4位表示的输
17、出字的位号,将输出字的相对应的位,置位为1,输出字的其他位均置位为0编码指令将输入字(IN)最低有效位(其值为1)的位号写入输出字节(OUT)的低4位中【例5-8】译码编码指令应用举例。 LD I1.0DECO AC2, VW40 /译码ENCO AC3, VB50 /编码若(AC2)=2,执行译码指令,则将输出字VW40的第二位置1,VW40中的二进制数为2#0000 0000 0000 0100;若(AC3)=2#0000 0000 0000 0100,执行编码指令,则输出字节VB50中的码为2。6. 七段显示译码指令LADSTL功能及操作数SEG IN,OUT功能:将输入字节(IN)的低
18、四位确定的16进制数(16#0F),产生相应的七段显示码,送入输出字节OUTIN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。OUT:VB, IB, QB, MB, SMB, LB, AC。IN/OUT的数据类型:字节【例5-9】编写显示数字0的七段显示码的程序。 LD I0.1SEG 0, AC1程序运行结果为AC1中的值为16#3F(2#0011 1111)。 7. ASCII码与十六进制数之间的转换指令LADSTLATH IN,OUT,LENHTA IN,OUT,LEN操作数及数据类型IN/ OUT:VB, IB, QB, MB, SB, SMB, LB。数据
19、类型:字节LEN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型:字节。最大值为255功能及说明ASCII至HEX(ATH)指令将从IN开始的长度为LEN 的ASCII字符转换成十六进制数,放入从OUT开始的存储单元HEX至ASCII (HTA)指令将从输入字节(IN)开始的长度为LEN的十六进制数转换成ASCII字符,放入从OUT开始的存储单元5.1.5 天塔之光的模拟控制实训1. 实训目的(1)掌握移位寄存器指令的应用方法(2)用移位寄存器指令实现天塔之光控制系统(3)掌握PLC的编程技巧和程序调试的方法图5-15 天塔之光控制示意图2. 控制要求如图5-
20、15所示的天塔的灯光,可以用PLC控制灯光的闪耀移位及时序的变化等。控制要求如下:按起动按钮,L12L11L10L8L1L1、L2、L9L1、L5、L8L1、L4、L7L1、L3、L6L1L2、L3、L4、L5L6、L7、L8、L9L1、L2、L6L1、L3、L7L1、L4、L8L1、L5、L9L1L2、L3、L4、L5L6、L7、L8、L9L12L11L10 循环下去,直至按下停止按钮。3. I/O分配 输入 输出起动按钮:I0.0 L1:Q0.0 L4 Q0.3 L7:Q0.6 L10 Q1.1停止按钮:I0.1 L2:Q0.1 L5 Q0.4 L8:Q0.7 L11 Q1.2L3:Q0.
21、2 L6 Q0.5 L9:Q1.0 L12 Q1.34. 程序设计分析:根据灯光闪亮移位,分为19步,因此可以指定一个19位的移位寄存器(M10.1M10.7,M11.0M11.7,M12.0M12.3),移位寄存器的每一位对应一步。而对于输出,如:L1(Q0.0)分别在“5、6、7、8、9、10、13、14、15、16、17”步时被点亮,即其对应的移位寄存器位“M10.5、M10.6、M10.7、M11.0、M11.1、M11.2、M11.5、M11.6、M12.0、M12.1”置位为1时,Q0.0置位为1,所以需要将这些位所对应的常开触点并联后输出Q0.0,以此类推其他的输出。移位寄存器移
22、位脉冲和数据输入配合的关系如图5-16所示。参考程序如图5-17所示。图5-16 移位寄存器移位脉冲和数据输入配合的关系5.2 算术运算、逻辑运算指令5.2.1 算术运算指令整数与双整数加减法指令格式LADSTLMOVW IN1,OUT+I IN2,0UTMOVW IN1,OUT-I IN2,0UTMOVD IN1,OUT+D IN2,0UTMOVD IN1,OUT+D IN2,0UT功能IN1+IN2=OUTIN1-IN2=OUTIN1+IN2=OUTIN1-IN2=OUT如指定INI=OUT,则语句表指令为:+I IN2,OUT;如指定IN2=OUT,则语句表指令为:+I IN1,OUT。
23、在整数减法的梯形图指令中,可以指定IN1=OUT,则语句表指令为:-I IN2,OUT。 【例5-11】求5000加400的和,5000在数据存储器VW200中,结果放入AC0。 LD I0.0 MOVW VW200, AC0 /VW200AC0+I +400, AC0 /VW200+400=AC02. 整数乘除法指令MOVW IN1,OUT*I IN2,0UTMOVW IN1,OUT/I IN2,0UTMOVD IN1,OUT*D IN2,0UTMOVD IN1,OUT/D IN2,0UTMOVW IN1,OUTMUL IN2,OUTMOVW IN1,OUTDIV IN2,OUTIN1*IN
24、2=OUTIN1/IN2=OUTIN1*IN2=OUTIN1/IN2=OUTIN1*IN2=OUTIN1/IN2=OUT【例5-12】乘除法指令应用举例LD I0.0MUL AC1 VD100DIV VW10 VD200注意:因为VD100包含:VW100和VW102两个字,VD200包含:VW200和VW202两个字,所以在语句表指令中不需要使用数据传送指令。3. 实数加减乘除指令MOVD IN1,OUT+R IN2,0UTMOVD IN1,OUT-R IN2,0UTMOVD IN1,OUT*R IN2,0UTMOVD IN1,OUT/R IN2,0UTLD I0.0+R AC1, VD10
25、0/R VD100, AC04. 数学函数变换指令SQRT IN,OUT LN IN,OUT EXP IN,OUT SIN IN,OUT COS IN,OUT TAN IN,OUT 三角函数指令:将一个实数的弧度值IN分别求SIN、COS、TAN,得到实数运算结果,从OUT指定的存储单元输出。例如:求23=EXP(3*LN(2)=8;27的3次方根=271/3=EXP(1/3*LN(27)=3。操作数及数据类型:实数【例5-14】求45正弦值 LD I0.1MOVR 3.14159, AC1/R 180.0, AC1*R 45.0, AC1SIN AC1, AC0分析:先将45转换为弧度:(3
26、.14159/180)*45,再求正弦值。 5.2.2 逻辑运算指令ANDB IN1,OUTANDW IN1,OUTANDD IN1,OUTORB IN1,OUTORW IN1,OUTORD IN1,OUT XORB IN1,OUTXORW IN1,OUTXORD IN1,OUT INVB OUTINVW OUTINVD OUT 【例5-15】逻辑运算编程举例/字节与操作LD I0.0ANDB VB1, VB2/字或操作MOVW VW100, VW300ORW VW200, VW300/双字异或操作XORD AC0, AC1/字节取反操作MOVB VB5, VB6INVB VB6运算过程如下:
27、VB1 VB2 VB20001 1100 WAND 1100 1101 0000 1100VW100 VW200 VW3000001 1101 1111 1010 WOR 1110 0000 1101 1100 1111 1101 1111 1110VB5 VB60000 1111 INV 1111 00005.2.3 递增、递减指令 递增字节(字、双字)和递减字节指令在输入字节(字、双字) 上加1或减1,并将结果置入OUT指定的变量中。递增和递减字节运算不带符号。INCB OUT DECB OUT INCW OUT DECW OUT INCD OUT DECD OUT 说明:(1)EN采用一
28、个机器扫描周期的短脉冲触发;使ENO = 0的错误条件:SM4.3(运行时间),0006(间接地址),SM1.1溢出)(2)影响标志位:SM1.0 (零),SM1.1(溢出),SM1.2(负数)。(3)在梯形图指令中,IN和OUT可以指定为同一存储单元,这样可以节省内存,在语句表指令中不需使用数据传送指令。5.2.4 运算单位转换实训n n1. 1. 实训目的实训目的n n(1 1)掌握算术运算指令和数据转换指令的应用。)掌握算术运算指令和数据转换指令的应用。n n(2 2)掌握建立状态表调试程序的方法及学会数据)掌握建立状态表调试程序的方法及学会数据块的使用。块的使用。n n(3 3)掌握在
29、工程控制中,进行运算单位转换的的)掌握在工程控制中,进行运算单位转换的的方法及步骤。方法及步骤。n n2. 2. 实训内容实训内容n n将英寸转换成厘米,已知将英寸转换成厘米,已知VW100VW100的当前值为英寸的当前值为英寸的计数值,的计数值,1 1英寸英寸=2.54=2.54厘米。厘米。n n3. 3. 写入程序、编译并下载到写入程序、编译并下载到PLCPLC分析:将英寸转换为厘米的步骤为:将VW100中的整数值英寸双整数英寸实数英寸实数厘米整数厘米。 /(VD4)=2.54 LD SM0.1MOVR 2.54, VD4/ 将计数器数值(英寸)载入AC1LD I0.0ITD VW100
30、AC1/ 将数值转换为实数DTR AC1 VD0 MOVR VD0 VD8/ 乘以2.54(转换为厘米)*R VD4 VD8 / 将数值转换回整数ROUND VD8 VD12 思考题试用带参数的子程序实现“英寸转换为厘米”,并将其导出。新建一个项目,导入该子程序,并将10英寸转换为厘米,看看转换结果如何?5.2.5控制小车的运行方向实训n n1.1.实训目的实训目的n n(1 1)掌握数据传送指令和比较指令的实际运用方法。)掌握数据传送指令和比较指令的实际运用方法。n n(2 2)学会用)学会用PLCPLC控制小车的运行方向。控制小车的运行方向。n n2.2.实训内容实训内容n n设计一个自动
31、控制小车运行方向的程序,如图设计一个自动控制小车运行方向的程序,如图5-245-24所示。控制要求如下:所示。控制要求如下:n n(1 1)当小车所停位置限位开关)当小车所停位置限位开关SQSQ的编号大于呼叫位置按钮的编号大于呼叫位置按钮SBSB的编号时,小的编号时,小车向左运行到呼叫位置时停止。车向左运行到呼叫位置时停止。n n(2 2)当小车所停位置限位开关)当小车所停位置限位开关SQSQ的编号小于呼叫位置按钮的编号小于呼叫位置按钮SBSB的编号时,小的编号时,小车向右运行到呼叫位置时停止。车向右运行到呼叫位置时停止。n n(3 3)当小车所停位置限位开关)当小车所停位置限位开关SQSQ的
32、编号等于呼叫位置按钮的编号等于呼叫位置按钮SBSB的编号时,小的编号时,小车不动作。车不动作。3.I/O分配表及外部接线图起动按钮SB0:I0.0呼叫按钮SB1:I0.1呼叫按钮SB2:I0.2呼叫按钮SB3:I0.3呼叫按钮SB4:I0.4呼叫按钮SB5:I0.5停止按钮SB6:I0.61#位置SQ1 I1.11#位置SQ2 I1.21#位置SQ3 I1.31#位置SQ4 I1.41#位置SQ5 I1.5小车右行KM1:Q0.0小车左行KM2:Q0.14.参考程序分析:当按钮接通或行程开关被压下时将呼叫按钮号和行程开关的位号用数据传送指令分别送到字节VB1和VB2中,按下起动按钮后,用比较指
33、令将VB1和VB2进行比较,决定小车左、右行或停止,当按下停止按钮,小车停止,VB1、VB2清零。5.3 表功能指令数据表是用来存放字型数据的表格,如图5 - 2 7所示。表格的第一个字地址即首地址,为表地址,首地址中的数值是表格的最大长度(TL),即最大填表数。表格的第二个字地址中的数值是表的实际长度(EC),指定表格中的实际填表数。每次向表格中增加新数据后,EC加1。从第三个字地址开始,存放数据(字)。表格最多可存放100个数据(字),不包括指定最大填表数(TL)和实际填表数(EC)的参数。要建立表格,首先须确定表的最大填表数。 / 输入表格的最大填表数LD SM0.1MOVW +6, V
34、W200确定表格的最大填表数后,可用表功能指令在表中存取字型数据。表功能指令包括填表指令,表取数指令,表查找指令,字填充指令。所有的表格读取和表格写入指令必须用边缘触发指令激活。5.3.1 填表指令(1) DATA为数据输入端,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, *VD, *LD, *AC;数据类型为:整数。(2)TBL为表格的首地址,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, , *LD *AC;数据类型为:字。(3)指令执行后,新填入的数据放在表格中最后一个数据的后面,E
35、C的值自动加1 【例5-16】填表指令应用举例。将VW100中的数据1111,填入首地址是VW200的数据表中。 LD I0.0ATT VW100, VW2005.3.2 表取数指令先进先出指令(FIFO):移出表格(TBL)中的第一个数(数据0),并将该数值移至DATA指定存储单元,表格中的其他数据依次向上移动一个位置。FIFO TBL,DATA 后进先出指令(LIFO):将表格(TBL)中的最后一个数据移至输出端DATA指定的存储单元,表格中的其他数据位置不变。LIFO TBL,DATA 【例5-17】表取数指令应用举例。从图5-30的数据表中,用FIFO,LIFO指令取数,将取出的数值分
36、别放入VW300,VW400中,程序及运行结果如图5-31所示。LD I0.1FIFO VW200, VW300LIFO VW200, VW4005.3.3 表查找指令表格查找(TBL-FIND)指令在表格(TBL)中搜索符合条件的数据在表中的位置(用数据编号表示,编号范围为099)。其指令格式如图5-32所示。FND= TBL,PATRN,INDXFND TBL,PATRN,INDXFND TBL,PATRN,INDXTBL:为表格的实际填表数对应的地址(第二个字地址),即高于对应的“增加至表格”、“后入先出”或“先入先出”指令TBL操作数的一个字地址(两个字节)。数据类型:字。PTN:是用
37、来描述查表条件时进行比较的数据。数据类型:整数。INDX:搜索指针,即从INDX所指的数据编号开始查找,并将搜索到的符合条件的数据的编号放入INDX所指定的存储器。数据类型:字。CMD:比较运算符,其操作数为常量14,分别代表 =、。数据类型:字节 【例5-18】查表指令应用举例。从EC地址为VW202的表中查找等于16#2222的数。程序及数据表如图5-33所示。LD I0.1FND= VW202,16#2222,AC1为了从表格的顶端开始搜索,AC1的初始值=0,查表指令执行后AC1=1,找到符合条件的数据1。继续向下查找,先将AC1加1,再激活表查找指令,从表中符合条件的数据1的下一个数
38、据开始查找,第二次执行查表指令后,AC1=4,找到符合条件的数据4。继续向下查找,将AC1再加1,再激活表查找指令,从表中符合条件的数据4的下一个数据开始查找,第三次执行表查找指令后,没有找到符合条件的数据,AC1=6(实际填表数)。5.3.4 字填充指令字填充(FILL)指令用输入IN存储器中的字值写入输出OUT开始N个连续的字存储单元中。N的数据范围:1255。其指令格式如图5-34所示。 FILL IN,OUT,N【例5-19】将0填入VW0VW18(10个字)。程序及运行结果如图5-35所示。LD I0.1FILL +0, VW0, 10可以看出程序运行结果将从VW0开始的10个字(20个字节)的存储单元清零。