版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 功能指令功能指令(Function Instruction)又称为应用指令,它)又称为应用指令,它是指令系统中应用于复杂控制的指令。是指令系统中应用于复杂控制的指令。 功能指令包括功能指令包括: 5.3.1数学运算指令数学运算指令 5.3.2逻辑运算指令逻辑运算指令 5.3.3其他数据处理指令其他数据处理指令 5.3.4转换指令转换指令 5.3.5表功能指令表功能指令 5.3.6程序控制指令程序控制指令 5.3.7特殊指令特殊指令 这些功能指令实际上是厂商为满足各种客户的特殊需要这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的而开发的通用子程序通用子程序。 1. 加法运算指令加法运算
2、指令 加法指令是对加法指令是对有符号数有符号数进行相加操作。包括:整进行相加操作。包括:整数加法、双整数加法和实数加法。数加法、双整数加法和实数加法。 加法指令影响加法指令影响(置置1)的特殊存储器位:的特殊存储器位:SM1.0(结(结果为零);果为零);SM1.1(结果溢出);(结果溢出);SM1.2(结果为(结果为负)。负)。 使能流输出使能流输出ENO断开的出错(断开的出错(ENO=0ENO=0)条件:)条件:0006(间接寻址);(间接寻址);SM1.1(溢出)。(溢出)。 (1 1)整数加法指令:)整数加法指令:+I +I 使能输入有效时,将两个单字长(使能输入有效时,将两个单字长(
3、16位)的符号整位)的符号整数数IN1和和IN2相加,产生一个相加,产生一个16位整数结果位整数结果OUT。执。执行结果:行结果: IN1+IN2OUTIN1+IN2OUT。在语句表中,通常将在语句表中,通常将IN2IN2与与OUTOUT共用一个地址单元共用一个地址单元,执行结果:执行结果:IN1+OUTOUTIN1+OUTOUT。 指令格式:指令格式:+I IN1, OUT +I IN1, OUT 使能流输出使能流输出ENOENO断开的出错条件:断开的出错条件:00060006(间接寻址);(间接寻址);SM1.1SM1.1(溢出)。(溢出)。LD I0.1 /使能输入端使能输入端MOVW
4、VW0, VW4 /VW0VW4VW4+I VW2, VW4 /VW2+VW4VW4VW4IN2IN2与与OUTOUT不是同一地址单元不是同一地址单元(其他加法指令与此同)(其他加法指令与此同)(2)双整数加法指令)双整数加法指令:+D 使能输入有效时,将两个双字长(使能输入有效时,将两个双字长(32位)的符号整数位)的符号整数IN1和和IN2相加,产生一个相加,产生一个32位整数结果位整数结果OUT。 在语句表中,通常将在语句表中,通常将IN2IN2与与OUTOUT共用一个地址单元,执共用一个地址单元,执行结果:行结果:IN1+OUTOUTIN1+OUTOUT。指令格式:指令格式:+D IN
5、1, OUT +D IN1, OUT (3)实数加法指令:)实数加法指令:+R 使能输入有效时,将两个双字长(使能输入有效时,将两个双字长(32位)的实数位)的实数IN1和和IN2相加,产生一个相加,产生一个32位实数结果位实数结果OUT。 在语句表中,通常将在语句表中,通常将IN2IN2与与OUTOUT共用一个地址单元,执共用一个地址单元,执行结果:行结果:IN1+OUTOUTIN1+OUTOUT。 指令格式:指令格式:+R IN1, OUT 2. 减法运算指令减法运算指令 减法指令是对减法指令是对有符号数有符号数进行相减操作。包括:进行相减操作。包括:整数减法、整数减法、双整数减法和实数减
6、法。双整数减法和实数减法。这三种减法指令与所对应的加法指令这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。除运算法则不同之外,其他方面基本相同。 减法指令影响的特殊存储器位:减法指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢(溢出);出);SM1.2(负)。(负)。 使能流输出使能流输出ENO断开的出错条件:断开的出错条件:0006(间接寻址);(间接寻址);SM1.1(溢出)。(溢出)。 整数减法整数减法 双整数减法双整数减法 实数减法实数减法 程序实例:程序实例: 指令格式:指令格式:-I IN2, OUT /整数减法,整数减法,OUT-IN2OUT
7、 -D IN2, OUT /双整数减法双整数减法 -R IN2, OUT /实数减法实数减法 LD I0.0 /使能输入端使能输入端-I VW2, VW0 /整数减法整数减法 /VW0-VW2VW0VW0 表5.16 操作数执行前后的结果 操作数操作数地址单元地址单元 单元长度(字节)单元长度(字节) 运算前的值运算前的值运算后的值运算后的值IN1VW0260005000IN2VW2210001000OUTVW0260005000 在语句表中,在语句表中,通常将通常将IN1IN1与与OUTOUT共用一个地址单元共用一个地址单元,执,执行结果:行结果:OUT-IN2OUTOUT-IN2OUT。
8、3. 乘法运算指令乘法运算指令 乘法运算指令是对有符号数进行相乘运算。包乘法运算指令是对有符号数进行相乘运算。包括:括:整数乘法、完全整数乘法、双整数乘法和实数整数乘法、完全整数乘法、双整数乘法和实数乘法。乘法。 乘法指令影响的特殊存储器位乘法指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(负)。(负)。 使能流输出使能流输出ENO断开的出错条件断开的出错条件:0006(间接(间接寻址);寻址);SM1.1(溢出)。(溢出)。(1)整数乘法指令:)整数乘法指令:*I 使能输入有效时,将两个单字使能输入有效时,将两个单字长(长(16位)的位)的符号整数
9、符号整数IN1和和IN2相相乘,产生一个乘,产生一个16位整数结果位整数结果OUT。 语句表中通常语句表中通常IN2IN2与与OUTOUT公用一公用一个地址单元。个地址单元。 指令格式:指令格式:*I IN1, OUT 程序实例:程序实例: LD I0.0 /使能输入端使能输入端*I VW0, VW2 /整数乘法整数乘法 /VW0*VW2VW2VW2 (2)双整数乘法指令:)双整数乘法指令:*D 使能输入有效时,将两个双字长使能输入有效时,将两个双字长(32位)的符号整数位)的符号整数IN1和和IN2相乘,相乘,产生一个产生一个32位整数结果位整数结果OUT。 指令格式:指令格式:*D IN1
10、, OUT LD I0.0 /使能输入端使能输入端MOVD VD0,VD6 /VD0VD6VD6*D VD2, VD6 /双整数乘法双整数乘法 图5-36 双整数乘法例 程序实例:(程序实例:(IN2IN2与与OUTOUT不是公用一个地址单元时不是公用一个地址单元时) 使能输入有效时,将两个使能输入有效时,将两个双字长(双字长(32位)的符号整数位)的符号整数IN1和和IN2相乘,产生一个相乘,产生一个32位整数位整数结果结果OUT。 指令格式:指令格式:*R IN1, OUT (3 3)实数乘法指令:)实数乘法指令:* *R R 使能输入有效时,将两个单使能输入有效时,将两个单字长字长(16
11、位)的符号整数位)的符号整数IN1和和IN2相乘,产生一个相乘,产生一个32位双整数位双整数结果结果OUT。 指令格式:指令格式:MUL IN1, OUT 3232位位OUTOUT的低位字(的低位字(1616位)位)被用作乘数被用作乘数IN2IN2 (4 4)完全整数乘法指令:)完全整数乘法指令:MULMUL 4. 除法运算指令除法运算指令 除法运算指令是对有符号数进行相除操作。除法运算指令是对有符号数进行相除操作。包括:包括:整数除法、完全整数除法、双整数除法和实整数除法、完全整数除法、双整数除法和实数除法。这四种除法指令数除法。这四种除法指令与所对应的乘法指令与所对应的乘法指令除运除运算法
12、则不同之外,其他方面基本相同。算法则不同之外,其他方面基本相同。 除法指令影响的特殊存储器位:除法指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(负);(负);SM1.3(除数为(除数为0)。)。 使能流输出使能流输出ENO断开的出错条件断开的出错条件:0006(间接(间接寻址);寻址);SM1.1(溢出);(溢出);SM1.3(除数为(除数为0)。)。 指令格式:指令格式:/I IN2,OUT /I IN2,OUT /整数除法整数除法, OUT/IN2, OUT/IN2OUTOUT。 DIVDIV IN2,OUT / IN2,OUT /整数完全除法
13、整数完全除法 /D IN2,OUT /D IN2,OUT /双整数除法双整数除法 /R IN2,OUT /R IN2,OUT /实数除法实数除法IN1/IN2IN1/IN2OUTOUT,语句表中通常,语句表中通常OUTOUT与与INT1INT1公用一个地址单元。公用一个地址单元。程序实例:程序实例: 在在整数除法整数除法中,两个中,两个16位的整数相除,产生一个位的整数相除,产生一个16位的整数商,不保留余位的整数商,不保留余数。数。双整数除法双整数除法也同样过程,只是位数变为也同样过程,只是位数变为32位。位。 整数完全除法整数完全除法中,两个中,两个16位的符号整数相除,产生一个位的符号整
14、数相除,产生一个32位结果,其中,位结果,其中,低低16位为商,高位为商,高16位为余数。位为余数。32位结果的低位结果的低16位运算前被兼用存放被除数。位运算前被兼用存放被除数。 LD I0.0 /使能输入端使能输入端MOVW +12345, VW12 /12345VW12VW12MOVW +100, VW20 /100VW20VW20LD I0.1 /使能输入端使能输入端DIV VW20, VD10 /VW12/VW20VD10VD10 指令执行结果:指令执行结果:VW10VW10(高位)(高位)=45(=45(为余数为余数) )VW12VW12(低位)(低位)=123=123(为商)(为
15、商)VD10=45 123VD10=45 123VB10 VB11 VB12 VB13VB10 VB11 VB12 VB13 VD10 VD10 VW12 VW125. 增减指令增减指令 增、减指令,又称自增和自减,是对无符号或增、减指令,又称自增和自减,是对无符号或有符号整数进行有符号整数进行自动增加或减少一个单位自动增加或减少一个单位的操作,的操作,数据长度可以是字节、字或双字。数据长度可以是字节、字或双字。 使能流输出使能流输出ENO断开的出错条件:断开的出错条件:0006(间接(间接寻址);寻址);SM1.1(溢出)。(溢出)。(1)字节增和字节减指令:)字节增和字节减指令:INCB,
16、DECB 使能输入有效时,把一字节长的使能输入有效时,把一字节长的无符号无符号输入数输入数IN加加1或减或减1,得到一个,得到一个字节的无符号输出结果字节的无符号输出结果OUT。 指令格式:指令格式:INCB OUT;OUT+1OUT DECB OUT; OUT-1OUT (2)字增和字减指令:)字增和字减指令:INCW,DECW 使能输入有效时,把一字长的使能输入有效时,把一字长的有符号有符号输入数输入数IN加加1或减或减1,得到一个字长的得到一个字长的有符号有符号输出结果输出结果OUT。 指令格式:指令格式:INCW OUT; DECW OUT; (3)双字增和双字减指令:)双字增和双字减
17、指令:INCD,DECD 使能输入有效时,把一双字长的使能输入有效时,把一双字长的有符号有符号输入数输入数IN加加1或或减减1,得到一个双字长的有符号输出结果,得到一个双字长的有符号输出结果OUT。 指令格式:指令格式:INCD OUT; DECD OUT; 数学函数指令包括数学函数指令包括平方根、自然对数、指数、平方根、自然对数、指数、三角函数三角函数等几个常用的函数指令。等几个常用的函数指令。 运算输入输出数据都为实数。结果如果大于运算输入输出数据都为实数。结果如果大于32位二进制表示的范围,则产生溢出。位二进制表示的范围,则产生溢出。 数学函数指令影响的特殊存储器位:数学函数指令影响的特
18、殊存储器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(负)。(负)。 使能流输出使能流输出ENO断开的出错条件断开的出错条件:0006(间接(间接寻址);寻址);SM1.1(溢出)。(溢出)。 6.6.数学函数指令数学函数指令(1 1)平方根指令:)平方根指令:SQRT SQRT 把一个双字长(把一个双字长(3232位位)的实数的实数ININ开方,得到开方,得到3232位位的的实数结果实数结果OUTOUT。指令格式:指令格式:SQRT IN, OUTSQRT IN, OUT (2)自然对数指令:)自然对数指令:LN 把一个双字长(把一个双字长(32位)的位)的实数实数
19、IN取自然对数,得到取自然对数,得到32位位的实数结果的实数结果OUT。指令格式:指令格式:LN IN, OUT 当求解以当求解以1010为底的常用对数时,可用自然为底的常用对数时,可用自然对数除以对数除以ln10(=2.302585)ln10(=2.302585)。(3)指数指令:)指数指令:EXP 把一个双字长(把一个双字长(32位)的位)的实数实数IN取以取以e为底的指数,得到为底的指数,得到32位的实数结果位的实数结果OUT。指令格式:指令格式:EXP IN, OUT : 即正弦、余弦、正切指令。将把一个双字长(即正弦、余弦、正切指令。将把一个双字长(32位)的位)的实数实数弧度值弧度
20、值IN分别取正弦、余弦、正切,各得到分别取正弦、余弦、正切,各得到32位的实数位的实数结果结果OUT。 指令格式:指令格式:SIN IN, OUT; COS IN, OUT; TAN IN, OUT。(4 4)三角函数指令:)三角函数指令:SINSIN、COSCOS、TANTAN LD I0.0 /使能输入端使能输入端MOVR 3.14159,AC0 /3.14159AC0AC0/R 180.0, AC0 /3.14159/180.0AC0AC0*R 65.0, AC0 /65.0*AC0AC0AC0TAN AC0, AC1 /TAN(AC0AC0)AC1AC1 /计算结果为计算结果为TANT
21、AN(6565) /=2.1445=2.1445AC1AC1 /(AC1AC1)2.14452.1445 图5-38 求三角函数例 程序实例:(求程序实例:(求65的正切值)的正切值) 逻辑运算逻辑运算是对无符号数进行的逻辑处理,主要包是对无符号数进行的逻辑处理,主要包括逻辑与、逻辑或、逻辑异或和取反等运算指令。括逻辑与、逻辑或、逻辑异或和取反等运算指令。 按操作数长度可分为按操作数长度可分为字节、字和双字逻辑运算。字节、字和双字逻辑运算。操作数的数据类型分别为:操作数的数据类型分别为:B、W、DW。 逻辑运算指令影响的特殊存储器位逻辑运算指令影响的特殊存储器位:SM1.0SM1.0(零)。(
22、零)。 使能流输出使能流输出ENOENO断开的出错条件:断开的出错条件: 00060006(间接寻址)(间接寻址) 1. 逻辑与运算指令逻辑与运算指令 ANDB,字节,字节逻辑与指令。使能输入有效时,把两个字节的逻辑数逻辑与指令。使能输入有效时,把两个字节的逻辑数按按位求与位求与,得到一个字节长的逻辑输出结果,得到一个字节长的逻辑输出结果OUT。 ANDW,字,字逻辑与指令。使能输入有效时,把两个字的逻辑数按位求逻辑与指令。使能输入有效时,把两个字的逻辑数按位求与,得到一个字长的逻辑输出结果与,得到一个字长的逻辑输出结果OUT。 ANDD,双字,双字逻辑与指令。使能输入有效时,把两个双字的逻辑
23、数按逻辑与指令。使能输入有效时,把两个双字的逻辑数按位求与,得到一个双字长的逻辑输出结果位求与,得到一个双字长的逻辑输出结果OUT。指令格式:指令格式:ANDB IN1, OUT ANDW IN1, OUT ANDD IN1, OUT 2. 逻辑或运算指令逻辑或运算指令 ORBORB,字节逻辑或指令。使能输入有效时,把两个字节的逻辑数按字节逻辑或指令。使能输入有效时,把两个字节的逻辑数按位求或,得到一个字节长的逻辑输出结果位求或,得到一个字节长的逻辑输出结果OUTOUT。 ORWORW,字逻辑或指令。使能输入有效时,把两个字的逻辑数按位求字逻辑或指令。使能输入有效时,把两个字的逻辑数按位求或,
24、得到一个字长的逻辑输出结果或,得到一个字长的逻辑输出结果OUTOUT。 ORDORD,双字逻辑或指令。使能输入有效时,把两个双字的逻辑数按双字逻辑或指令。使能输入有效时,把两个双字的逻辑数按位求或,得到一个双字长的逻辑输出结果位求或,得到一个双字长的逻辑输出结果OUTOUT。 指令格式:指令格式:ORB IN1, OUT ORW IN1, OUT ORD IN1, OUT 3. 逻辑异或运算指令逻辑异或运算指令 XORB XORB,字节逻辑异或指令。使能输入有效时,把两个字节的逻辑数按,字节逻辑异或指令。使能输入有效时,把两个字节的逻辑数按位求异或,得到一个字节长的逻辑输出结果位求异或,得到一
25、个字节长的逻辑输出结果OUTOUT。 XORWXORW,字逻辑异或指令。使能输入有效时,把两个字的逻辑数按位求字逻辑异或指令。使能输入有效时,把两个字的逻辑数按位求异或,得到一个字长的逻辑输出结果异或,得到一个字长的逻辑输出结果OUTOUT。 XORDXORD,双字逻辑异或指令。使能输入有效时,把两个双字的逻辑数按双字逻辑异或指令。使能输入有效时,把两个双字的逻辑数按位求异或,得到一个双字长的逻辑输出结果位求异或,得到一个双字长的逻辑输出结果OUTOUT。 指令格式:指令格式:XORB IN1, OUT; XORW IN1, OUT; XORD IN1, OUT4. 取反指令取反指令 INVB
26、INVB,字节逻辑取反指令。使能输入有效时,把一个字节的逻辑数按,字节逻辑取反指令。使能输入有效时,把一个字节的逻辑数按位求反,得到一个字节长的逻辑输出结果位求反,得到一个字节长的逻辑输出结果OUTOUT。 INVWINVW,字逻辑取反指令。使能输入有效时,把一个字的逻辑数按位求,字逻辑取反指令。使能输入有效时,把一个字的逻辑数按位求反,得到一个字长的逻辑输出结果反,得到一个字长的逻辑输出结果OUTOUT。 INVDINVD,双字逻辑取反指令。使能输入有效时,把一个双字的逻辑数按双字逻辑取反指令。使能输入有效时,把一个双字的逻辑数按位求反,得到一个双字长的逻辑输出结果位求反,得到一个双字长的逻
27、辑输出结果OUTOUT。 指令格式:指令格式:INVB OUT INVW OUT INVD OUT 程程序序实实例:例: LD I0.0 /使能输入端使能输入端MOVB AC0, AC1 /AC0AC1AC1ANDB 255, AC1 /AC1的值和的值和255255 /作相与运算,即实现了作相与运算,即实现了AC0AC0和和255255 /相与的运算,结果放到相与的运算,结果放到AC1AC1中。中。LD I0.1 /使能输入端使能输入端MOVW LW10, LW30 /LW10LW30LW30ORW LW20, LW30 /进行或运算进行或运算 LD I0.2 /使能输入端使能输入端MOVD
28、 VD100, VD120 /LD100LD120LD120XORD VD110, VD120 /进行异或运算进行异或运算 LD I0.3 /使能输入端使能输入端MOVW VW10, VW20 / VW10VW20VW20INVW VW20 /进行取反运算进行取反运算 1. 单一传送指令单一传送指令 (1)字节传送指令:)字节传送指令:MOVB 使能输入有效时,把一个单字节使能输入有效时,把一个单字节无符号数据由无符号数据由IN传送到传送到OUT所指的字所指的字节存储单元。节存储单元。 指令格式:指令格式:MOVB IN, OUT (2)字传送指令:)字传送指令:MOVW 使能输入有效时,把一
29、个单字长使能输入有效时,把一个单字长有符号整数由有符号整数由IN传送到传送到OUT所指的字所指的字存储单元。存储单元。 指令格式:指令格式:MOVW IN, OUT (3)双字传送指令:)双字传送指令:MOVD 使能输入有效时,把一个双字使能输入有效时,把一个双字长有符号整数由长有符号整数由IN传送到传送到OUT所指所指的双字存储单元。的双字存储单元。 指令格式:指令格式:MOVD IN, OUT (4)实数传送指令:)实数传送指令:MOVR 使能输入有效时,把一个使能输入有效时,把一个32位位实数由实数由IN传送到传送到OUT所指的双字存所指的双字存储单元。储单元。 指令格式:指令格式:MO
30、VR IN, OUT (5)传送字节立即读指令:)传送字节立即读指令:BIR 使能输入有效时,立即读取使能输入有效时,立即读取实实际输入端际输入端IN一个字节的数值,并传一个字节的数值,并传送到送到OUT所指的字节存储单元。所指的字节存储单元。 指令格式:指令格式:BIR IN, OUT(6)传送字节立即写指令:)传送字节立即写指令:BIW 使能输入有效时,立即将使能输入有效时,立即将IN单单元的字节数据写到元的字节数据写到实际输出端实际输出端OUT所指的物理输出点。所指的物理输出点。 指令格式:指令格式:BIW IN, OUT 输入映象寄存器不更新输入映象寄存器不更新输出映象寄存器刷新输出映
31、象寄存器刷新(1)字节块传送指令:)字节块传送指令:BMB 使能输入有效时,把从输入字节使能输入有效时,把从输入字节IN开始开始的的N个字节型个字节型数据传送到从数据传送到从OUT开始的开始的N个个字节字节存储单元。存储单元。 指令格式:指令格式:BMB IN, OUT, N (2)字块传送指令:)字块传送指令:BMW 使能输入有效时,把从输入字使能输入有效时,把从输入字IN开始的开始的N个字型数据传送到从个字型数据传送到从OUT开始的开始的N个字存个字存储单元。储单元。 指令格式:指令格式:BMW IN, OUT, N (3)双字块传送指令:)双字块传送指令:BMD 使能输入有效时,把从输入
32、双字使能输入有效时,把从输入双字IN开始开始的的N个双字型数据传送到从个双字型数据传送到从OUT开始的开始的N个个双字存储单元。双字存储单元。 指令格式:指令格式:BMD IN, OUT, N N255N2552.2.块传送指令块传送指令 SWAP,字节交换指令。当使能字节交换指令。当使能输入有效时,将字型输入数据输入有效时,将字型输入数据IN高位高位字节字节与与低位字节低位字节进行交换,交换的结进行交换,交换的结果输出到果输出到IN存储器单元中。因此又可存储器单元中。因此又可称为半字交换指令,常用于有模拟量称为半字交换指令,常用于有模拟量输入输入/ /出的情况出的情况。 指令格式:指令格式:
33、SWAP IN 例如:例如: SWAP VW10SWAP VW103.3.字节交换指令字节交换指令 4. 存储器填充指令存储器填充指令 FILL,存储器填充指令。当使能存储器填充指令。当使能输入有效时,将输入有效时,将字型输入值字型输入值IN填充至从填充至从OUT开始的开始的N个字的存储单元中。个字的存储单元中。N为为字节型,可取字节型,可取1255的正数。的正数。 指令格式:指令格式:FILL IN, OUT, N 转换指令转换指令:指对操作数的类型进行转换,包括指对操作数的类型进行转换,包括数数据的类型转换据的类型转换、码的类型转换码的类型转换以及以及数据和码数据和码之间的之间的类型转换。
34、类型转换。LD I1.0 /使能输入端使能输入端BCDI AC0 /AC0中的中的BCDBCD码转换为码转换为 /整数整数图5-41 BCD码转换为整数例(1)BCD码到整数:码到整数:BCDI 使能输入有效时,将二进制使能输入有效时,将二进制编码的十进制数值编码的十进制数值IN转换成整数,转换成整数,并将结果送到并将结果送到OUT输出。输出。IN的有的有效范围是效范围是0至至9999。 指令格式:指令格式:BCDI OUT 程序实例:程序实例: 已知(已知(AC0AC0)=0001001000110100 (BCD=0001001000110100 (BCD码码1234)1234),程序运行
35、后:(程序运行后:(AC0AC0)=04D2=04D2 1.BCD1.BCD码与整数之间的转换指令码与整数之间的转换指令 使能输入有效时,将输入整使能输入有效时,将输入整数值数值IN转换成二进制编码的十进转换成二进制编码的十进制数,并将结果送到制数,并将结果送到OUT输出。输出。 指令格式:指令格式:IBCD OUT (2 2)整数到)整数到BCDBCD码:码:IBCDIBCD以上两条指令以上两条指令影响的特殊存储器位影响的特殊存储器位:SM1.6(SM1.6(无效无效BCD)BCD)使能流输出使能流输出ENOENO断开的出错条件:断开的出错条件: 00060006(间接寻址);(间接寻址);
36、 SM1.6(SM1.6(无效无效BCD)BCD)(1)字节到整数:)字节到整数:BTI 使能输入有效时,将字节型输入使能输入有效时,将字节型输入数据数据IN转换成整数类型(转换成整数类型(16位位),),并将结果送到并将结果送到OUT输出。字节型是输出。字节型是无符号的,所以没有符号扩展。无符号的,所以没有符号扩展。 指令格式:指令格式:BCDI IN, OUT 2.2.字节与字整数之间的转换指令字节与字整数之间的转换指令 使能输入有效时,将整数型输入数据使能输入有效时,将整数型输入数据IN转换成字节类型,转换成字节类型,并将结果送到并将结果送到OUT输出。输入数据超出字节范围(输出。输入数
37、据超出字节范围(0255)则)则产生溢出产生溢出 ,转换的数值太大不能在输出中表示。,转换的数值太大不能在输出中表示。 指令格式:指令格式:IBCD IN,OUT (2 2)整数到字节:)整数到字节:ITBITB (1)双整数到整数:)双整数到整数:DTI 使能输入有效时,将双整数型使能输入有效时,将双整数型输入数据输入数据IN转换成整数类型,并转换成整数类型,并将结果送到将结果送到OUT输出。输入数据输出。输入数据超出整数范围则产生溢出,超出整数范围则产生溢出, 转换转换的数值太大不能在输出中表示。的数值太大不能在输出中表示。 指令格式:指令格式:DTI IN,OUT 3.3.字型整数与双字
38、整数之间的转换指令字型整数与双字整数之间的转换指令(2)整数到双整数:)整数到双整数:ITD 使能输入有效时,将整数型输入数据使能输入有效时,将整数型输入数据IN转换成双整数类转换成双整数类型(型(符号进行扩展符号进行扩展),并将结果送到),并将结果送到OUT输出。输出。 指令格式:指令格式:ITD IN,OUT (1)实数到双整数)实数到双整数:ROUND,TRUNC 使能输入有效时,将实数型输入数据使能输入有效时,将实数型输入数据IN转换成双整数类转换成双整数类型,并将结果送到型,并将结果送到OUT输出。两条指令的区别是:输出。两条指令的区别是:前者前者小数小数部分四舍五入,而部分四舍五入
39、,而后者后者小数部分直接舍去。输入数据超出实小数部分直接舍去。输入数据超出实数范围则产生溢出。数范围则产生溢出。 指令格式:指令格式:ROUND IN, OUT TRUNC IN, OUT 4. 4. 双字整数与实数之间的转换指令双字整数与实数之间的转换指令(2)双整数到实数:)双整数到实数:DTR 使能输入有效时,将双整数型使能输入有效时,将双整数型输入数据输入数据IN转换成实数型,并将结转换成实数型,并将结果送到果送到OUT输出。输出。 指令格式:指令格式:DTR IN, OUT 以上两条指令影响的特殊存储器位:以上两条指令影响的特殊存储器位:SM1.1(SM1.1(溢出溢出) )使能流输
40、出使能流输出ENOENO断开的出错条件:断开的出错条件: 00060006(间接寻址);(间接寻址); SM1.1(SM1.1(溢出溢出) )使能流输出使能流输出ENOENO断开的出错条件断开的出错条件: 00060006(间接寻址);(间接寻址); SM1.1(SM1.1(溢出溢出) ) (1)编码指令)编码指令:ENCO 使能输入有效时,将字型输入数据使能输入有效时,将字型输入数据IN中中值为值为1的最低有效位的的最低有效位的位号位号编码成编码成4位位二进制二进制数数,输出到,输出到OUT所指定的所指定的字节单元的低字节单元的低4位位。即用半个字节来对一个字型数据即用半个字节来对一个字型数
41、据16位中的位中的1位有效位进行编码。位有效位进行编码。 指令格式:指令格式:ENCO IN, OUT (2)译码指令:)译码指令:DECO 使能输入有效时,根据字节型输入数据使能输入有效时,根据字节型输入数据IN的低的低4位所表示的位号将位所表示的位号将OUT所指定的字所指定的字单元的对应位置单元的对应位置1,其他位置,其他位置0。即对半个字。即对半个字节的编码进行译码来选择一个字型数据节的编码进行译码来选择一个字型数据16位位中的中的1位。位。 指令格式:指令格式:DECO IN, OUT 5.5.编码、译码指令编码、译码指令使能流输出使能流输出ENOENO断开的出错条件断开的出错条件:0
42、0060006(间接寻址)(间接寻址) 6. 段码(段码(SEG)指令)指令 SEG,七段码指令。使能输入七段码指令。使能输入有效时,将字节型输入数据有效时,将字节型输入数据IN的的低低4位有效数字位有效数字(160F)转换成七)转换成七段显示码,并将其输出到段显示码,并将其输出到OUT所指所指定的字节单元。定的字节单元。 指令格式:指令格式:SEG IN, OUT 7. ASCII码与十六进制数之间的转换指令码与十六进制数之间的转换指令 ATH,ASCII码到十六进制数指令。码到十六进制数指令。使能输入有效时,将使能输入有效时,将从从IN开始的开始的长度为长度为LEN的的ASCII码码转换为
43、十六进制数,并将结果送到转换为十六进制数,并将结果送到OUT开始的字节开始的字节进行输出。进行输出。ASCII字符串的最大长度为字符串的最大长度为255字符。字符。 HTA,十六进制数到,十六进制数到ASCII码指令。码指令。使能输入有效时,将从输入字节使能输入有效时,将从输入字节IN开始的十六进制数字转换成从开始的十六进制数字转换成从OUT开始的开始的ASCII字符。欲转换的十六进字符。欲转换的十六进制制数字位数由长度(数字位数由长度(LEN)指定)指定。可转换的最大十六进制数字位数为。可转换的最大十六进制数字位数为255。 有效有效ASCII字符是十六进制数值字符是十六进制数值30至至39
44、(09)和和41至至46(AF) 。 指令格式:指令格式:ATH IN, OUT, LEN HTA IN, OUT, LEN 应用举例:应用举例:LD I0.0 /使能输入端使能输入端ATH VB100, VB200, 3 /使能输入使能输入 /有效时,把从有效时,把从VB100开始开始 /的的3 3个个ASCIIASCII码转换成从码转换成从 /VB200VB200开始的十六进制数开始的十六进制数 X:X:表示未使用表示未使用指令指令ATHATH执行结果执行结果3 3VB100 VB101 VB102VB100 VB101 VB102VB200 VB201 VB202VB200 VB201
45、VB202(1)整数)整数到到ASCII码:码:ITA 使能输入有效时,将输入端(使能输入有效时,将输入端(IN)的有符号整)的有符号整数转换成数转换成ASCII字符串,转换结果存入以字符串,转换结果存入以OUT为起始为起始字节地址的字节地址的8个连续字节个连续字节的输出缓冲区中。的输出缓冲区中。 操作数操作数FMT(8个个ASCII码排列、分隔的格式码排列、分隔的格式)指指定定ASCII码字符串中分隔符的位置和表示方法码字符串中分隔符的位置和表示方法,即小,即小数点右侧的转换精度,以及是否将小数点显示为逗号数点右侧的转换精度,以及是否将小数点显示为逗号或点号。或点号。指令格式:指令格式:IT
46、A IN, OUT,FMT 8.8.整数、双字整数、实数转换为整数、双字整数、实数转换为ASCIIASCII码指令码指令 FMTFMT占用一个字节,高占用一个字节,高4 4位必须为位必须为0 0,低,低4 4位用位用cnnncnnn表示,表示,C C位位指定整数和小数之间的分隔符:指定整数和小数之间的分隔符:C C1 1,用逗号分隔,用逗号分隔,C C0 0,用小,用小数点分隔。输出缓冲器中小数点右侧的位数由数点分隔。输出缓冲器中小数点右侧的位数由nnnnnn域指定,域指定,nnnnnn域域的有效范围是的有效范围是0 05 5。指定小数点右侧的数字为。指定小数点右侧的数字为0 0会使显示的数值
47、会使显示的数值无小数点。对于大于无小数点。对于大于5 5的的nnnnnn数值为非法格式,此时无输出,用数值为非法格式,此时无输出,用ASCIIASCII空格(空格(0000000000000000)填充输出缓冲器。)填充输出缓冲器。 (2)双整数到)双整数到ASCII码:码:DTA 使能输入有效时,将输入端(使能输入有效时,将输入端(IN)的)的有符号双整数转换成有符号双整数转换成ASCII字符串,转换结字符串,转换结果存入以果存入以OUT为起始字节地址的为起始字节地址的12个连续个连续字节字节的输出缓冲区中。的输出缓冲区中。指令格式操作数指令格式操作数FMT与与ITA指令的指令的FMT定义相
48、同。定义相同。 指令格式:指令格式:DTA IN, OUT, FMT (3)实数到)实数到ASCII码:码:RTA 使能输入有效时,将输入端(使能输入有效时,将输入端(ININ)的实数转)的实数转换成换成ASCIIASCII字符串,转换结果存入以字符串,转换结果存入以OUTOUT为起始字为起始字节地址的节地址的n n(3 31515 )个连续字节的输出缓冲区中。)个连续字节的输出缓冲区中。 指令格式:指令格式:RTA IN, OUT, FMT 01100001 1. 填表、查表指令填表、查表指令 (1)表存数指令:)表存数指令:ATT (Add to table) 指令格式:指令格式:ATT
49、DATA, TABLEATT DATA, TABLE 表5.17 表中数据的存储格式单元地址单元地址单元内容单元内容说明VW2000005VW200为表格的为表格的首地址首地址,TL=5TL=5为为表格的最大填表数表格的最大填表数VW2020004数据数据EC=4EC=4(ECEC100100)为该表中的)为该表中的实际填表数实际填表数VW2042345数据数据0 0VW2065678数据数据1 1VW2089876数据数据2 2VW2106543数据数据3 3VW212*无效数据无效数据TLTL值由字传送指值由字传送指令令MOVW赋值。赋值。指令格式:指令格式:ATT DATA, TABLE
50、; 将将DATA填入到填入到TABLE表格表格。TABLE给出表格首地址给出表格首地址,新存的数据添加,新存的数据添加在表格在表格最后一个数据的后面最后一个数据的后面,每存入一个数据,每存入一个数据,实际填表数实际填表数EC自动加自动加1。LD I0.0 /LD I0.0 /使能输入端使能输入端ATT VW100, VW200 /ATT VW100, VW200 /向表中存数向表中存数/程序执行后的结果见下表程序执行后的结果见下表5-185-18图图5-43 5-43 表存数指令例表存数指令例VW212表5-18 ATT执行结果操作数操作数单元地址单元地址填表前内容填表前内容填表后内容填表后内
51、容注释注释DATAVW10012341234待填表数据待填表数据 TBLVW20000050005最大填表数最大填表数TLTLVW20200040005实际填表数实际填表数ECECVW20423452345数据数据0 0VW20656785678数据数据1 1VW20898769876数据数据2 2VW21065436543数据数据3 3*1234将将VW100VW100内容填入表中内容填入表中VW200已赋值已赋值0005(2)表查找指令:)表查找指令:FND? 通过表查找指令可以从字型数表中找出符合条件的通过表查找指令可以从字型数表中找出符合条件的数据所在数据所在的表中数据编号,的表中数据
52、编号,编号范围是编号范围是0 09999。 梯形图有梯形图有4 4个数据输入端:个数据输入端:TBLTBL表格的首地址,用以指明被访表格的首地址,用以指明被访问的表格;问的表格;PTNPTN是用来描述查表条件的是用来描述查表条件的进行比较的数据进行比较的数据;CMDCMD是比是比较运算符较运算符“?”的编码,它是一个的编码,它是一个1 14 4的数值,分别代表、的数值,分别代表、 运算符;运算符;INDXINDX用来指定表中符合查找条件的数据地址。用来指定表中符合查找条件的数据地址。 在语句表中运算符直接表示,而不用各自的编码。在语句表中运算符直接表示,而不用各自的编码。指令格式:指令格式:F
53、ND= TBL, PTN, INDXFND= TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX FND TBL, PTN, INDX 表查找指令执行之前,应先对表查找指令执行之前,应先对INDXINDX的内容清的内容清0 0(从表首开始查找)(从表首开始查找),当使能输入有效时,从当使能输入有效时,从INDXINDX开始搜索表开始搜索表TBLTBL,寻找符合由,寻找符合由PTNPTN和和CMDCMD所决定的条件所决定的条件的数据,如果没有发现符合条件的数据,则的数
54、据,如果没有发现符合条件的数据,则INDXINDX的的值等于值等于EC(EC(最大填表数最大填表数) )。如果找到一个符合条件的。如果找到一个符合条件的数据,则将该数据的数据,则将该数据的表中地址表中地址装入装入INDXINDX中。中。 表查找指令执行完成,找到一个符合条件的数表查找指令执行完成,找到一个符合条件的数据,据,如果想继续向下查找,必须先对如果想继续向下查找,必须先对INDXINDX加加1 1,以重,以重新激活表查找指令。新激活表查找指令。 从表中移出一个从表中移出一个字型数据字型数据可有两种方可有两种方式:式:先进先出先进先出式和式和后进先出后进先出式。式。 一个数据从表中取出之
55、后,表的实际一个数据从表中取出之后,表的实际表数表数EC值减值减1。 在梯形图中有在梯形图中有2个数据端个数据端: 输入端输入端TBL表格的首地址,用以指明表格的首地址,用以指明被访问的表格;被访问的表格; 输出端输出端DATA指明数值取出后要存放指明数值取出后要存放的目标单元的目标单元。 如果指令试图从空表中取走一个数值,如果指令试图从空表中取走一个数值,则特殊标志寄存器则特殊标志寄存器SM1.5置位。置位。 表取数指令影响的特殊存储器位:表取数指令影响的特殊存储器位:SM1.5(表空)。(表空)。 2.2.表取数指令表取数指令(1)先进先出指令:)先进先出指令:FIFO 当使能输入有效时,
56、从当使能输入有效时,从TBLTBL指明的表中指明的表中移出第一个字型数移出第一个字型数据据并将其输出到并将其输出到DATADATA所指定的字单元。所指定的字单元。 FIFOFIFO表取数时,移出的数据表取数时,移出的数据总是最先进入表中的数据总是最先进入表中的数据。每。每次从表中移出一个数据,次从表中移出一个数据,剩余数据依次上移一个字单元位置剩余数据依次上移一个字单元位置,同时同时实际填表数实际填表数ECEC会自动减会自动减1 1。指令格式:指令格式:FIFO TABLE, DATAFIFO TABLE, DATA (2)后进先出指令:)后进先出指令:LIFO 当使能输入有效时,从当使能输入
57、有效时,从TBLTBL指明的表中移出指明的表中移出最后一个字型最后一个字型数据数据并将其输出到并将其输出到DATADATA所指定的字单元。所指定的字单元。 LIFOLIFO表取数时,移出的数据是表取数时,移出的数据是最后进入表中的数据最后进入表中的数据。每。每次从表中取出一个数据,次从表中取出一个数据,剩余数据位置保持不变,实际填表数剩余数据位置保持不变,实际填表数ECEC会自动减会自动减1 1。指令格式:指令格式:LIFO TABLE, DATALIFO TABLE, DATA 1. 有条件结束指令有条件结束指令 END:有条件结束指令。不能直接连接在左侧母线上。:有条件结束指令。不能直接连
58、接在左侧母线上。指令根据前一个逻辑条件终止主用户程序条件结束指令用在指令根据前一个逻辑条件终止主用户程序条件结束指令用在无条件结束指令之前。无条件结束指令之前。 MEND:无条件结束指令。:无条件结束指令。用户程序必须以无条件结束用户程序必须以无条件结束指令结束主程序。指令结束主程序。直接连接在左侧母线上直接连接在左侧母线上。 STEP7-Micro/WIN32自动在主用户程序中增加无条件结束指令自动在主用户程序中增加无条件结束指令MEND。 结束指令只能在主程序中使用结束指令只能在主程序中使用,但不能在子程序或中断,但不能在子程序或中断程序中使用。程序中使用。 指令格式:指令格式:END M
59、END END END 2. 暂停指令暂停指令 STOPSTOP,暂停指令。,暂停指令。通过暂停指令可将通过暂停指令可将S7-200 CPUS7-200 CPU从从RUNRUN(运行)模式转换为(运行)模式转换为STOPSTOP(暂停)模式,中止程序执行。(暂停)模式,中止程序执行。 如果在如果在中断程序中执行中断程序中执行STOPSTOP(暂停)指令,中断程序立(暂停)指令,中断程序立即终止,并即终止,并忽略全部待执行的中断忽略全部待执行的中断,继续扫描主程序的剩余,继续扫描主程序的剩余部分,在当前主程序扫描结束时从部分,在当前主程序扫描结束时从RUNRUN(运行)模式转换至(运行)模式转换
60、至STOPSTOP(暂停)模式。(暂停)模式。 指令格式:指令格式:STOP STOP STOP 3. 监视定时器复位指令监视定时器复位指令WDR (看门狗复位)(看门狗复位) 系统监视定时器(系统监视定时器(WDT):): 为了避免出现程序死循环而为了避免出现程序死循环而引起的扫描周期过长,引起的扫描周期过长,PLC内部设置了系统监视定时器用于监内部设置了系统监视定时器用于监视扫描周期是否超时。视扫描周期是否超时。 WDT的设定值(的设定值(100300ms)一般大于程序的扫描周期,)一般大于程序的扫描周期,在正常的每个扫描周期中,在正常的每个扫描周期中,PLC都要对都要对WDT进行进行1次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国汽车头枕行业发展现状及销售策略分析报告
- 2024-2030年中国汽车EPS行业未来市场前景展望及投资策略研究报告
- 2024-2030年中国水家电行业营销模式及投资竞争力策略报告
- 2024-2030年中国水上游乐园市场竞争状况及经营效益预测报告版
- 2024-2030年中国氢氧化亚钴行业产量预测及投资风险研究报告
- 2022年大学护理学专业大学物理下册期末考试试题A卷-附解析
- 人教版四年级上册数学第一单元《大数的认识》测试卷含答案【达标题】
- 2022年大学预防医学专业大学物理下册开学考试试卷C卷-附解析
- 2022年大学法医学专业大学物理下册模拟考试试卷C卷-附解析
- 2022年大学轻工纺织食品专业大学物理二期中考试试题-附解析
- 民办非企业单位理事会制度
- 临床输血的护理课件
- 民生银行在线测评真题
- 人教版(PEP)小学六年级英语上册全册教案
- 大学美育学习通超星期末考试答案章节答案2024年
- 2024年人教版七年级上册地理期中测试试卷及答案
- 2024年英语专业八级汉译英试题真题
- 菜鸟驿站合伙合同范本
- 汽车保险与理赔-题库
- 脓毒血症指南
- DL∕T 1482-2015 架空输电线路无人机巡检作业技术导则
评论
0/150
提交评论