上午9时50分自动化技术研究所黄志昌17功能指令及应用熟练掌握基本逻辑指令、顺序步进指令后,再掌握功能指令,编起程序来就变化无穷,随心所欲,得心应手。上午9时50分自动化技术研究所黄志昌2功能指令分类:①程序流控制②传送与比较③算术与逻辑运算④移位与循环移位⑤数据处理⑥高速处理⑦方便命令⑧外部输入输出处理⑨外部设备通信⑩实数处理⑾点位控制⑿实时时钟共250条指令FUNC00~FUNC249上午9时50分自动化技术研究所黄志昌3功能指令分类:功能指令的组成:助记符+操作数(元件)上午9时50分自动化技术研究所黄志昌47.1功能指令通则7.1.1功能指令的表现形式1、功能指令按功能号编排。(FNC00一FNC246)每条功能指令都有一助记符。2、在编程时用“HELP”键,可显示功能号与对应助记符的清单。3、在读出程序时,功能号与助记符同时显示。上午9时50分自动化技术研究所黄志昌57.1功能指令基本规则[S.]指取值首元件[D.]指定计算结果存放地址n指定取值个数上午9时50分自动化技术研究所黄志昌67.1功能指令通则[S.]指取值首元件[D.]指定计算结果存放地址n指定取值个数上午9时50分自动化技术研究所黄志昌77.1功能指令通则[S]:(SOURSE)源操作数。使用变址功能时,表达为[S.]。源不止一个时,可用[S1.]、[S2.]表示。[D]:(DESTINATION)目标操作数。使用变址功能时,表达为[D.]。目标不止一个时,用[D1.]、[D2.]表示。m,n:其他操作数。常常用来表示数制(十进制、十六进制等)或作为源和目标的补充注释。需注释的项目多时也可采用m1、m2,等形式。上午9时50分自动化技术研究所黄志昌87.1功能指令通则功能指令的功能号和助记符占1个程序步;操作数占2或4个程序步,取决于指令是16bit还是32bit的。某些功能指令在整个程序中只能出现一次,即使用跳转指令使其分处于两段不可能同时执行的程序中也不允许。但可利用变址寄存器多次改变其操作数。上午9时50分自动化技术研究所黄志昌9(D)MOV、FNC(D)12、FNCl2(D)。处理32bit数据时,首元件建议统一用偶数编号。用元件号相邻的两元件组成元件对。32bit计数器(C200~C255)不能用作16bit指令的操作数。7.1.2数据长度及指令的执行方式16bit和32bitDouble双字32bit数据上午9时50分自动化技术研究所黄志昌107.1功能指令通则助记符后附的(P)符号表示脉冲执行。(P)和(D)可同时使用,如(D)MOV(P)脉冲执行功能指令仅在X0由OFF变为ON时执行。在不需要每个扫描周期都执行时,用脉冲执行方式可缩短程序处理周期。1、脉冲执行/连续执行上午9时50分自动化技术研究所黄志昌117.1功能指令通则连续执行功能指令。当X1为ON状态时上述指令在每个扫描周期都被重复执行。1、脉冲执行/连续执行•某些指令,例如XCH、INC、DEC等,用连续执行方式时要特别留意。这些指令用“!”号标示。•注意:当X0和X1为OFF状态时,上述两指令不执行。目标元件的内容不变化,除非另行指定。上午9时50分自动化技术研究所黄志昌127.1功能指令通则7.1.3位元件和字元件位元件的组合位元件组合成字元件。每四个位元件组合为一个基本单元,KnM0中的n是组数。16bit数操作时为K1~K4。32bit数操作时为K1~K8。只处理ON/OFF状态的元件,称为位元件。例如X、Y、M和S处理数字数据的元件,称为字元件。例如T、C和D,上午9时50分自动化技术研究所黄志昌137.1功能指令通则32bit数操作时为K1~K8。K2M0:代表由M0~M7组成2个4bit组当一个16bit的数据传送到K1M0、K2M0或K3M0时,只传送相应的低bit数据,较高bit的数据不传送,32bit数据传送时也一样。由X4~X13组成的2位BCD码数,转换成二进制码送到D0,在做16bit数操作时,参与操作的位元件数由K1、K2、K3来指定,高位(不足部分)均作0。即只能处理正数(符号位为0)。在做32bit数操作时也一样。上午9时50分自动化技术研究所黄志昌147.1功能指令通则由X4~X13组成的2位BCD码数转换成二进制码送到D0上午9时50分自动化技术研究所黄志昌157.1功能指令通则由X4~X13组成的2位BCD码数转换成二进制码送到D0K1X0K1X4K1X10K1X14K2Y10K2Y20K2Y30K3M0K3M12K3M24K3M36...K4S16K4S32K4S48...被组合的位元件的首元件号可以是任意的,但为避免混乱建议采用以0结尾的元件(如X0,X10,X20,…)。以D1开始的数据寄存器串即是指D1,D2,D3,…。用位元件组合的字作为字串处理,其指定格式如下:上午9时50分自动化技术研究所黄志昌167.1功能指令通则元件按4个为一组(二-十进制的一位)连续编号。如果K2Y0用在32bit操作中时,高16bit作“00”处理。要获得32bit数据需用K8Y0上午9时50分自动化技术研究所黄志昌177.1.4整数与实数在PLC中整数的表示及运算采用BIN码格式,可以用16bit或32bit元件来表示整数;最高bit为符号bit,•0表示正数,1表示负数。负数以补码方式表示。•整数可表示的范围:16bit时为-32768~+32767,32bit时为-2147483648~+2147483647。1、整数上午9时50分自动化技术研究所黄志昌187.1.4整数与实数2.实数的浮点格式上午9时50分自动化技术研究所黄志昌197.1.4整数与实数3、实数的科学记数格式这种方法来表示实数也需占用32bit,即两个字元件。通常也用数据寄存器对(例如D1,D0)来存放科学记数式实数。序号小的数据寄存器(D0)存放尾数,序号大的数据寄存器存放以10为底的指数。科学格式实数=尾数×10指数D0×10(D1)上午9时50分自动化技术研究所黄志昌207.1.4整数与实数3、实数的科学记数格式尾数范围:±(1000~9999)或0;指数范围:-41~+35。注意,尾数应以4位有效数字(不带小数)表示,例如2.34567×1052345×102,在上例中即(D0)=2345,(D1)=2。上午9时50分自动化技术研究所黄志昌217.1.5变址寄存器(V、Z)从KnY到V、Z都可作为功能指令的目标元件。在[D.]中的点(.)表示可以加入变址寄存器。变址寄存器在传送、比较指令中用来修改操作对象的元件号。其操作方式与普通数据寄存器一样。上午9时50分自动化技术研究所黄志昌227.1.5变址寄存器(V、Z)对32bit指令,V作高16bit,Z为低16bit。32bit指令中用到变址寄存器时只需指定Z,这时Z就代表了V和Z。上午9时50分自动化技术研究所黄志昌237.1.5变址寄存器(V、Z)K10送到V0,K20送到Z0,所以(V0)、(Z0)的内容分别为10、20。。V和Z可使编程较简化上午9时50分自动化技术研究所黄志昌247.1.5变址寄存器(V、Z)•(D5V0)+(D15Z0)→(D40Z0)•即(D15)+(D35)→(D60)V0已由MOV指令指定为“0”。在32位指令中,V、Z自动组对使用。(D1,D0)+(D3,D2)→(D25,D24)上午9时50分自动化技术研究所黄志昌257.1.6功能指令简表程序流控制FNCNO指令助记符功能00CJ条件跳转0lCALL转子程序02SRET子程序返回03IRET中断返回04EI允许中断05DI禁止中断06FEND主程序结束07WDT警戒时钟08FOR循环区起点09NEXT循环区终点上午9时50分自动化技术研究所黄志昌267.1.6功能指令简表10CMP比较11ZCP区间比较12MOV传送13SMOV移位传送14CML取反传送15BMOV块传送16FMOV多点传送17XCH交换18BCDBCD变换19BINBIN变换传送与比较上午9时50分自动化技术研究所黄志昌277.1.6功能指令简表四则与逻辑运算20ADDBIN加法21SUBBIN减法22MULBIN乘法23DIVBIN除法24INCBIN加l25DECBIN减126WAND字与27WOR字或28WXOR字异或29NEG求补上午9时50分自动化技术研究所黄志昌287.1.6功能指令简表循环移位、移位30ROR循环右移3lROL循环左移32RCR带进位循环右移33RCL带进位循环左移34SFTR右移位35SFTL左移位36WSFR字右移37WSFL字左移38SFWRFIFO写入39SFRDFIFO读出上午9时50分自动化技术研究所黄志昌297.1.6功能指令简表数据处理41DECO解码42ENCO编码43SUMON总数44BONON位数判别45MEAN平均值46ANS报警器置位47ANR报警器复位48SQR开平方49FLT整数一实数变换上午9时50分自动化技术研究所黄志昌307.1.6功能指令简表高速处理50REF刷新5lREFE刷新和滤波时间调整52MTR矩阵输入53HSCS高速计数器置位54HSCR高速计数器复位55HSZ高速计数器区间比较56SPD速度检测57PLSY脉冲输出58PWM脉宽调制59PLSR带加减速的脉冲输出上午9时50分自动化技术研究所黄志昌317.1.6功能指令简表方便指令60IST置初始状态61SER数据搜索62ABSD绝对值式凸轮顺控63INCD增量值式凸轮顺控64TTMR示教定时器65STMR特殊定时器66ALT交替输出67RAMP斜坡信号68ROTC旋转台控制69SORT数据排序70TKY10键输入7lHKY16键输入72DSW数字开关上午9时50分自动化技术研究所黄志昌327.1.6功能指令简表外部设备73SEGD7段解码74SEGL带锁存的7段显示75ARWS方向开关76ASCASCII码变换77PR打印78FROM读特殊功能模块7970写特殊功能模块80RS串行数据传送81PRUN关联运行82ASCIHEX一ASCII变换83HEXASCII一HEX变换84CCD校验码85VERD读变量86VRSC变量整标88PIDPID运算上午9时50分自动化技术研究所黄志昌337.1.6功能指令简表110ECMP实数比较111EZCP实数区间比较118EBCD浮点数一科学记数变换119EBIN科学记数一浮点数变换120EADD实数加法121ESUB实数减法122EMUL实数乘法123EDIV实数除法实数处理127ESQR实数开方129IN7实数一整数变换130SIN正弦函数131COS余弦函数132TAN正切函数147SWAP高低byte互换上午9时50分自动化技术研究所黄志昌347.1.6功能指令简表110ECMP实数比较111EZCP实数区间比较118EBCD浮点数一科学记数变换119EBIN科学记数一浮点数变换120EADD实数加法121ESUB实数减法122EMUL实数乘法123EDIV实数除法实数处理127ESQR实数开方129IN7实数一整数变换130SIN正弦函数131COS余弦函数132TAN正切函数147SWAP高低byte互换上午9时50分自动化技术研究所黄志昌357.1.6功能指令简表点位控制155ABS当前绝对位置读取156ZRN回原点157PLSV变速脉冲输出158DRVI增量驱动159DRVA绝对位置驱动上午9时50分自动化技术研究所黄志昌367.1.6功能指令简表160TCMP时间比较1617ZCP时间区间比较162TADD时间加法163TSUB时间减法实时时钟处理166TRD读实时时钟167TWR写实时时钟169HOUR计时表上午9时50分自动化技术研究所黄志昌377.1.6功能指令简表外围设备170GRYGRY--BIN变换171GBINBIN--GRY变换176RD3A模拟量读出177WR3A模拟量写入上午9时50分自动化技术研究所黄志昌38限制使用次数的指令使用次数