功能指令及应用教学目的与要求一、教学目的1.了解功能指令的基本规则2.掌握常用功能指令的应用二、教学重、难点教学重点:常用功能指令的应用教学难点:方便指令的应用三、教学方法师生互动启发式教学,让学生掌握常用功能指令本讲教学主要内容:功能指令的规则常用功能指令编程举例FNC00~FNC09[程序流程]FNC110~FNC119[浮点运算1]FNC10~FNC19[传送与比较]FNC120~FNC129[浮点运算2]FNC20~FNC29[算术与逻辑运算]FNC130~FNC139[浮点运算3]FNC30~FNC39[循环与移位]FNC140~FNC149[数据处理2]FNC40~FNC49[数据处理]FNC150~FNC159[定位]FNC50~FNC59[高速处理]FNC160~FNC169[时钟运算]FNC60~FNC69[方便指令]FNC170~FNC179[格雷码变换]FNC70~FNC79[外部设备I/O]FNC220~FNC249[触点比较指令]FNC80~FNC89[外部设备SER]功能指令分类表5.1功能指令的规则5.1.1功能指令的格式1.格式[S﹒]叫做源操作数,其内容不随指令执行而变化,在可利用变址修改软元件的情况下,用加“﹒”符号的[S﹒]表示,源的数量多时,用[S1﹒][S2﹒]等表示。[D﹒]叫做目标操作数,其内容随指令执行而改变,如果需要变址操作时,用加“﹒”的符号[D﹒]表示,目标的数量多时,用[D1﹒][D2﹒]等表示。[n﹒]叫做其他操作数,既不作源操作数,又不作目标操作数,常用来表示常数或者作为源操作数或目标操作数的补充说明。可用十进制的K、十六进制的H和数据寄存器D来表示。在需要表示多个这类操作数时,可用[n1]、[n2]等表示,若具有变址功能,则用加“﹒”的符号[n﹒]表示。此外其他操作数还可用[m]来表示。2数据长度功能指令可处理l6位数据和32位数据,例如:3.指令类型FX系列PLC的功能指令有连续执行型和脉冲执行型两种形式。连续执行型的如:上图程序是连续执行方式的例子,当X1为ON时,上述指令在每个扫描周期都被重复执行一次。脉冲执行型的如:4.操作数操作数按功能分有源操作数、目标操作数和其他操作数;按组成形式分有位元件、字元件和常数。1.位元件和字元件2.位元件的组合3.变址寄存器5.2功能指令介绍1.程序流程指令程序流程指令是与程序流程控制相关的指令,程序流程指令如表5-2所示。FNCNO.指令记号指令名称FNCNO.指令记号指令名称00CJ条件跳转05DI禁止中断01CALL子程序调用06FEND主程序结束02SRET子程序返回07WDT警戒时钟03RET中断返回08FOR循环范围开始04EI允许中断09NEXT循环范围结束表5-2程序流程指令这里仅介绍常用的CJ、CALL、SRET、FEND指令。1.跳转指令CJFNC00CJ(P)(16)适合软元件占用步数字元件无3步位元件无2.子程序调用指令CALL和子程序返回指令SRETFNC01CALL(P)(16)FNC02SRET适合软元件占用步数字元件无CALL:3步SRET:1步位元件无3.主程序结束FENDFNC06FEND适合软元件占用步数字元件无1步位元件无编程举例1例5-1报警电路。要求起动之后,灯闪,亮0.5S,灭0.5S,蜂鸣器响。灯闪烁30次之后,灯灭,蜂鸣器停,间歇5S。如此进行三次,自动熄灭。试用调用子程序方法编写。编写时,将重复的动作,即灯闪(Y0)、蜂鸣器(Y1)响作为子程序,放在FEND之后。而调用子程序CALL放在主程序之中。几个常用指令介绍(一)比较指令CMP传送指令MOV增1指令INC循环右移指令ROR循环左移指令ROL位左移指令SFTL区间复位指令ZRST比较指令CMP传送指令MOV和增1指令INC循环右/左移指令ROR/ROL位左移指令SFTL和区间复位指令ZRST程序举例2彩灯循环闪亮控制。要求控制8只彩灯,顺序循环闪亮,间隔时间0.5s程序举例3用MOV指令编写电动机Y/△减压起动程序编程举例4某机器的生产过程由电动机M1、M2、M3、M4控制方式如下:按起动按钮,电动机M台起动,延时3S,M1停止,同时电动机M2起动。机器前进碰行程开关SQ1,M2停止,M3起动。前迸又碰行程开关SQ2,M3停止,M4起动。M4运行3S后,M1、M2、M3、M4同时工作,又延时3S后全部停止。试用SFTL指令编程。I/O分配与梯形图几个常用指令介绍(二)报警器置位复位指令ANS/ANR状态初始化指令IST交替输出指令ALT7段编码指令SEGD接点比较指令报警器置位复位指令ANS/ANR状态初始化指令ISTX20:用于控制状态流程的信号起始地址指定。指令控制状态流程共需要连续8个触点信号,控制触点可以是输入X、输出Y与内部继电器M(图中为X20~X27).X20:托运操作有效;X21:回原点操作有效;X22:单步操作有效;X23:单循环操作有效;X24:连续循环操作有效;X25:回原点起动信号;X26:自动循环起动信号;X7:自动循环停止信号。(方式选择应是唯一的即X20~X24不能同时为1)S20:自动循环操作时的状态元件起始地址;S27:结束地址。状态初始化指令IST补充说明S0:手动初始状态;S1:回原点初始状态;S2:自动初始状态。M8040:禁止状态转换;M8041:状态转换允许;M8042:状态转换启动输出脉冲信号。M8043:回原点动作结束信号;M8044:原点到达回答信号;M8045:禁止对全部输出的复位;M8047:启动对执行状态元件的监控。交替输出指令ALT和七段编码指令SEGDALT指令:在每次执行条件由OFF变为ON时,目的操作数D中的输出元件状态向相反方向变化。利用这一特征,可以实现多级分频输出,单个按钮起/停、闪烁动作等功能。(Y、M、S)七段编码指令SEGD:是驱动七段显示器的指令,可以显示1位十六进制数据。源七段组合数字目标输出16进制数位组合格式B7B6B5B4B3B2B1B00000001111111100010000011020010010110113001101001111401000110011050101011011016011001111101701110010011181000011111119100101101111A101001110111B101101111100C110000111001D110101011110E111001111001F111101110001七段码译码表接点比较指令它使用LD、AND、OR与关系运算符组合而成,通过对两个数值的关系运算来实现触点通和断的指令,总共有18个.当计数器C10的值等于K200时,驱动Y10。当D200的内容大于−30,且X1非接通时,Y11置位。当计数器C200的当前值小于K678493或M3不得电时,驱动M50。触点比较程序1当X0为ON且C10的值等于K200时,驱动Y10。当X1为OFF且DO的值不等于−10时,Y11置位。当X2为ON,且D11、D10的内容小于K678493或M3接通时,驱动M50。触点比较程序2当X1为ON或C10的当前值等于K200时,驱动Y0。当X1和M30都ON,或D101、D100的值大于等于K100000时,驱动M60。触点比较程序3程序举例用SFTL指令编写广告灯光闪烁电路,分别用Y0、Y1、Y2、Y3、Y4、Y5控制灯光,使“欢迎你朋友”6个字明亮闪烁,控制流程如下表。表中“+”为得电,空白为不得电。要求有连续、单周、单步控制。步序1S1S1S1S1S1S1S1S1S1S1SY0++++Y1++++Y2++++Y3++++Y4++++Y5++++I/O分配图如下图所示。图中X0为起动,X1为停止,X2为单周/连续切换,X3为单步/连续切换。梯形图之一梯形图之二机械手传送工件示意图和面板布置如图所示机械手传送工件的过程为:将工件夹紧,上升,到最高限,右移,到右限,下降到最低位,放松工件,上升,到最高限,左移,到左限,下降到最低位回到原点。试用IST指令编写梯形图。编程时,一般是先编好手动操作程序,再编返回原点程序,再编自动循环的程序。编写时,一般先画流程图,再编梯形图。设计彩灯循环动作程序,要求如下:(1)彩灯以1S间隔依次亮:YO→Y1→Y2→Y3→Y4→Y5→全亮10S→全停2S,然后循环。(2)流水灯Y10~Y27共16组,依次正循环按Y10→Y27顺序,每组灯亮0.2S。32S之后,按反循环Y27→Y10顺序,每组灯亮0.2S,循环不断。彩灯循环程序