资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,功能指令,第一节 功能指令的基本知识,第二节 程序流程控制(FNC00FNC09),第三节 传送和比较指令(FNC10FNC19),第四节 算术和逻辑运算指令(FNC20FNC29),第五节 循环移位指令(FNC30FNC39),第六节 数据处理指令(FNC40FNC49),第七节 高速处理指令(FNC50FNC59),第一节 功能指令的基本知识,一、功能指令的表现形式,梯形图格式,一、功能指令的表现形式,X0,FNC45,MEAN,D0,D10,K3,D,S,n,指令表格式,步序 操作码 操作数,0 LD X0,1 MEAN,D0,D10,K3,8 。,操作码与操作数,操作码(指令助记符):表示指令的功能,操作数:指明参与操作的对象,源操作数S:执行指令后收据不变的操作数,两个或,两个以上时为S1、S2。,目标操作数D:执行指令后收据被刷新的操作数,两,个或两个以上时为D1、D2。,其它操作数m、n:补充注释的常数,用K(十进制),和H(十六进制)表示,两个或,两个以上时为m1、m2、n1、n2。,二、位元件,位元件:只处理开关(ON/OFF)信息的元件,如X、Y、M、D、S,字元件:处理数字数据的元件,如T、C和D,位元件组合表示数据:位元件每4bit为一组组合成单元,代表4位BCD码,也表示1位十进制数;,用KnMm表示,K为十进制,n为十进制位数,也是位元件的组数,M为位元件,m为位元件的首地址,一般用0结尾的元件。,例如,K2M0即表示由M0-M7组成2个4bit组。,二、位元件,X0,MOV,K37,K2Y0,K37表示十进制常数37,K2Y0表示由Y7-Y0所组成的8位数据,思考,如何运用上述指令实现8个灯奇数秒奇数灯亮,偶数秒偶数灯亮?,三、数据长度及执行方式,数据长度,16位:参与运算的数据默认为16位二进制数据,32位:32位数据时在操作码前面加D(Double),X0,MOV,D0,D1,X1,DMOV,D2,D4,(D0)(D1),(D3D2)(D5D4),处理32bit数据时,用元件号相邻的两元件组成元件对。元件对的首元件号用奇数,偶数均可。但为避免错误,元件对的首元件建议统一用偶数编号。,执行方式,连续执行方式:每个扫描周期都重复执行一次,脉冲执行方式:只在信号OFFON时执行一次,在指令后加P(Pulse)。,X0,MOV,D0,D1,X1,(D)MOV(P),D2,D4,连续执行,脉冲执行,符号,(,D,),和,(,P,),可同时使用,如(,D,),MOV,(,P,)表示以脉冲方式处理,32,位数据,.,四、变址寄存器V、Z,变址:改变操作数的地址,变址寄存器的作用:存放改变地址的数据,实际,地址,=,当前,地址,+,变址,数据,32,位运算时,V,和,Z,组合使用,,V,为高,16,位,,Z,为低,16,位。,X0,MOV,K8,V,X1,MOV,K4,Z,MOV,D0V,D10Z,X2,V=(8),Z=(4),(D8)(D14),第二节 程序流程控制(FNC00FNC09),一、条件跳转指令 FNC00 CJ,当跳转条件成立时跳过一段程序,跳转至指所标明的标号处执行,被跳过的程序段中不执行的指令,即使输入元件状态发生改变,输出元件的状态也维持不变。若跳转条件不成立则按顺序执行程序。,一、条件跳转指令 FNC00 CJ,梯形图,X10,X11,Y1,X12,P0,CJ,P0,CJ,P0,指令表,步序 操作码 操作数,0 LD X10,1 CJ,P0,。,10 LD X11,11 CJ,P0,。,20 P0,21 LD X12,22 OUT Y1,一个标号只能出现一次,两条跳转指令可以使用共同的标号,在跳转指令前的执行条件若用,M8000,时,则这时就称为无条件跳转,因为,PLC,运行时,M8000,总为,ON,。,指针标号允许用变址寄存器修改。,CJ,指令跳过部分程序,可以缩短程序的运算周期。,如果积算型定时器和计数器的,RST,指令在跳转程序之内,即使跳转程序生效,,RST,指令仍然有效。,该指令可以连续和脉冲执行方式。,被跳过去的程序中各元件的状态为,Y,、,M,、,S,保持跳转前状态不变。,普通计数器停止计数并保持当前值,高速计数器继续计数。,未工作的定时器不动作,已动作的定时器保持当前值。,T192,T199,跳转时仍然计时。,一、条件跳转指令 FNC00 CJ,二、子程序指令,子程序调用 FNC01 CALL,操作数:指针P0P62,子程序返回 FND02 SRET 无操作数,说明,子程序应该在主程序结束之后编程。即子程序的标号应写在主程序结束指令,FEND,之后,且子程序必须以,SRET,指令结束。,CJ,指令的指针与,CALL,的指针不能重复。,CJ,指令中用过的标号不能重复使用。但不同的,CALL,指令可调用同一标号的子程序。,主程序允许嵌套,嵌套级别最多为,5,级。,子程序只能用,T192,T199,和,T246,T249,作定时器。,X1,FEND,SRET,P8,CALL,P8,Y1,X12,Y21,X11,Y30,主程序,子程序,梯形图,二、子程序指令,三、中断指令,开中断范围,X0,I100,X10,FEND,IRET,EI,DI,IRET,I101,中断子程序2,中断子程序1,梯形图,三、中断指令,说明,在执行某个中断子程序时,禁止其它中断请求。,中断程序允许嵌套,嵌套级别为,2,级。,中断指针共有,15,个:输入中断,6,个,定时器中断,3,个,计数器中断,6,个。,中断程序用,T192,T199,和,T246,T249,作定时器。,中断的优先级别,多个中断信号不同时产生时,按先后顺序中断。,多个中断信号同时产生时,按指针大小中断。,三、中断指令,三、中断指令,中断的种类,输入中断,定时中断,高速计数器中断,四、主程序结束指令 FNC06 FEND,FEND表示主程序结束,当执行到FEND时,PLC进行输入/输出处理,监视定时器刷新,完成后返回启始步。,使用FEND指令时应注意:,1)子程序和中断服务程序应放在FEND之后;,2)子程序和中断服务程序必须写在FEND和END之间。,与,END,指令的功能一样,执行到该指令时程序返回到,0,步。,中断服务子程序和子程序应该写在,FEND,之后,并且用,IRET,和,SRET,返回。,如果多次使用,FEND,指令,在最后的,FEND,和,END,之间编写子程序或中断子程序。,X1,FEND,SRET,P8,CALL,P8,Y1,X12,Y21,X11,Y30,主程序,子程序,梯形图,四、主程序结束指令 FNC06 FEND,四、主程序结束指令 FNC06 FEND,FEND指令运用例,五、警戒定时器指令 FNC07 WDT,警戒定时器是一个专用定时器,其设定值存放在特殊的数据寄存器D8000中,并以ms为计时单位。,当PLC一上电,则对警戒定时器进行初始化,将K100(设定值为100ms)装入D8000中,每个扫描周期结束时,马上刷新警戒定时器的当前值,使PLC能正常运行。,当扫描周期大于100ms时,即超过了警戒定时器的设定值,警戒定时器的逻辑线圈被接通,CPU立即停止执行用户程序,同时切断全部输出,并且报警显示。,如果正常的扫描周期超过警戒时钟的设定值,可以在适当程序步中加入WDT指令,适时刷新警戒时钟,使程序能顺利执行。,也可以通过MOV指令修改警戒定时器的设定值(D8000的值)。,可以计算出程序扫描周期的最大值作为警戒时钟的设定值。,WDT指令可用在FOR-NEXT之间。,五、警戒定时器指令 FNC07 WDT,六、循环指令,六、循环指令,说明,n为循环次数,其范围为132767有效。如果指定为-327680,则作n=1处理。,循环指令最多可以嵌套5级。,程序中FOR-NEXT是成对出现的,FOR在前,NEXT在后不可倒置,否则出错。,编程时NEXT应该在FEND或END之前,否则出错。,六、循环指令,第三节 传送和比较指令,一、比较指令 FNC10 CMP,二、区间比较指令 FNC 11 ZCP,三、传送指令 FNC 12 MOV,四、移位传送指令 FNC 13 SMOV,五、取反传送指令 FNC 14 CML,六、块传送指令 FNC 15 BMOV,七、多点传送指令 FNC 16 FMOV,八、数据交换指令 FNC 17 XCH,九、变换指令 FNC 18 BCD,FNC 19 BIN,
展开阅读全文