永宏高级应用指令.doc
178页第7章:高级篇应用指令•流程控制指令一(FUN22)7-2• 数学运算指令(FUN23〜33)7-3〜7-48•逻辑运算指令(FUN35〜36)7-19〜7-20•比较指令(FUN37)7-21• 搬移指令一(FUN40〜50)7-22〜7-32• 位移/旋转指令(FUN51〜54)7-33〜7-36• 数码变换指令(FUN55〜64)7-37〜7-51• 流程控制指令二(FUN65〜71)7-52〜7-59• I/O指令一(FUN74~86)7-60〜7-73• 积算型定时器指令(FUN87〜89)7-74〜7-75• 监控定时器指令(FUN90〜91)7-76〜7-77• 高速计数器/定时器指令(FUN92〜93)7-78〜7-79• 报表打印指令(FUN94)7-80•缓升/缓降指令(FUN95)7-817-82• 列表指令(FUN100〜门4)7-83〜7-101•矩阵指令(FUN120〜130)7-102〜7-"3• I/O指令二(FUN139)7-114-7-115• NC定位控制指令(FUN140〜143)7-116-7-119•中断控制指令(FUN145〜146)7-120-7-121• 通讯指令(FUN150〜151)7-122〜7-123• 搬移指令二(FUN160〜162)7-424〜7-429• 浮点运算指令(FUN200〜213)7-430〜7-143流程控制指令一FUN22QFOR与NEXT循环的跳出指令FUN22gBREAK(BREAK)BREAK阶梯图符号(-22P.执行控制一en・Break(冨指令)由0」4时,将跳出该FOR与NEXT•当执行控制"EN"=1或'ENf构成的循环程序。
• 在FOR与NEXT指令所构成的循环程序内,如果需要提前跳出该循环,则可使用本指令而不必等到指定的循环次数执行完毕才能跳出该循环• 本指令必须使用在FOR与NEXT指令所构成的循环内ENRST70FORD10EN17.CMPSa:D100Sb:ROVa=bM2004)-a>b一7-#-a
D:存放结果(商)的起头缓存器号码Sa,Sb,D可结合V、Z.P0〜P9作间接寻址应用\范rf\INfl\数\HRORSRRORDRXRRD1R3839R39041R3967R39681R4167R5000IR8071DOID4095V、ZP0-P9SaOOOoOOSbOOOoOODOOOfo*Oo-ERR-除数为0•当除算控制"EN"=1或UEN「(同指令)由0-1而、'U/S"二0时,本指令将以正负数(Sign)运算法则将Sa除以Sb所得的商存到D去,同时如果商为0,则FOO设为仁如果除数Sb二0则错误旗号FO1设为1且本指令不执行•当除算控制”EN"=1或"ENt"(国指令)由0-1而”U/S"=1时,本指令将以正整数(Unsign)运算法则将Sa除以Sb所得的商存到D去,同时若商为0,则FOO设为1,若除数Sb=0则错误旗号FO1设为1且本指令不执行•本指令为48位运算,所以Sa,Sb,D都占用连续三个缓存器xoHHEN?-23P.DIV48Sa:R0ISb:R3-U/S•D:RdERR-•左图程序范例将R0开始到R2组成的48位被除数除以R3〜R5组成的除数所获得的商存入R6〜R8的48位缓存器中。
7-#数学运算指令M1「24P.SUMTFENT-s:RON:6D:R100R0二0030HR10031HR2R3R4R50032H0033H0034H0035H9R100=012FHFUN24aa总和计算FUN24QBSUM(SUM)SUMS:来源缓存器的起头号码N:欲总和的缓存器个数(由S开始连续N个)D:存放结果(总和)的缓存器号码S,N,D可结合V.Z>P0〜P9作间接寻址应用\范fl\数\WXWYWMWSTMRCTRHRIRORSRRORDRKXRwxoWX24OWYO1WY240WMO1WM1896wso1WS984TO1T255CO1C255RO1R3839R38401R3903R39041R3967R39681R4167R5000IR8071DOID40951I511V、ZP0-P9sOOOOOOOOOOOOONOOOOOOOOOOOOOoDOOOOOOOO• 当运算控制吒N"胡或、'EN「(凰指令)由时,将S开始的连续N个16位或32位(凰指令)缓存器作加法运算,得出总和,并将结果存入D所指定的缓存器• 当N的值为0或大于511时,运算不执行通讯端口4或通讯端口2用来当作泛用ASCII通讯接口,如要通讯对象的数据错误检验方式为总和(Check-Sum厂检验,则可使用此指令来产生总和值或利用此指令计算总和值并比对看是否数据有误。
〈范例1〉由0FF-0N时,计算16位总和•左图范例是将R0开始的6个缓存器以16位方式计算总和值,并将结果存入R100缓存器O*OO7-#数学运算指令7-#数学运算指令M1今R101〜R100=00A5009BH〈范例2〉M10N时,计算32位总和•左图范例是将DRO开始,以32位方式计算总和值,并将结果存入DR100(32位)缓存器内R[〜RO=00310030H'R3〜R2=00330032H•R5〜R4=00410039H.FUN25回国MEAN取平均值(MEAN)FUN25回谢MEANS:来源缓存器的起头号码N:要平均的缓存器个数(由S开始连续N个)D:存放结果(平均值)的缓存器号码S,N,D可结介V、Z、P0-P9作间接寻址应用\范I罚1\WXWYWMWSTMRCTRHRIRORSRRORDRKXRWX0WX240WY01WY240WM01WM1896WS01WS984TO1T255CO1C255RO1R3839R38401R3903R39041R3967R39681R4167R5000IR8071DOID40952I256V、ZP0-P9SOOOOOOOOOOOOONOOOOOOOOOOOOOODOOOOOOOO*OO• 当运算控制UENZ,=1或"ENV(冨指令)由0-1时,将S开始的连续N个46位或32位(回指令)的数值相加再除以N,所得的平均值(舍弃余数)存入D所指定的缓存器。
• 以缓存器内容当N值时,若缓存器内容值不是2〜256,则N值错误”ERR"设为1,且本指令不执行•左图范例为求从R0开始连续3个46位缓存器的平均值,再将结果存在16位缓存器R10中s(N=3)“RO123123+9+788R19R2788卩X0=丁3=306(余数2舍弃)DR10306\范H\数\WXWYWMWSTMRCTRHRIRORSRRORDRKXRWX01WX240WY01WY240WM01WM1896WS01WS984TO1T255coC255RD1R3839R38401R3903R39041R3967R39681R4167R50001R8071DOD409516或32位正数V、ZPO-P9SOOOOOOOOOOOoOODOOOOOOOO*OfoOFUN26UgSORT取平方根值(SQUAREROOT)FUN2693SORT阶梯图符号J-26DP.SQRT—运算控制一EN・S:~ERR—Sfl错误D:S:求平方根的来源数值或其缓存器号码D:存放结果(平方根值)的缓存器号码S,D可结合V、Z、P0〜P9作间接寻址应用• 当运算控制胡或「(凰指令)由0-1时,将S值或S所指定的缓存器内容值取平方根值(舍弃小数点以后的位数)后存入D所指定的缓存器内。
XO26DP.SQRTH—ent」S:ERR2147483647D:R0• 当S值为缓存器内容值,而值为负数,则S值错误旗号"ERR”设为1,且本指令不执行•左图程序范例是将常数值2147483647取其平方根值,再将结果存到DRO(R1.R0)去常数2147483647卩XO=丁R1RO46340R1R0147483647=46340.95t小数点以后舍弃7-#数学运算指令7-#数学运算。





