第5章plc功能指令

上传人:今*** 文档编号:107458588 上传时间:2019-10-19 格式:PPT 页数:192 大小:6.91MB
返回 下载 相关 举报
第5章plc功能指令_第1页
第1页 / 共192页
第5章plc功能指令_第2页
第2页 / 共192页
第5章plc功能指令_第3页
第3页 / 共192页
第5章plc功能指令_第4页
第4页 / 共192页
第5章plc功能指令_第5页
第5页 / 共192页
点击查看更多>>
资源描述

《第5章plc功能指令》由会员分享,可在线阅读,更多相关《第5章plc功能指令(192页珍藏版)》请在金锄头文库上搜索。

1、功 能 指 令,5.1 功能指令通则 5.2 程序流控制(FNC 00FNC 09) 5.3 传送与比较(FNC 10FNC 19) 5.4 四则与逻辑运算(FNC 20FNC 29) 5.5 循环移位与移位(FNC 30FNC 39) 5.6 数据处理(FNC 40FNC 49) 5.7 高速处理(FNC 50FNC 59) 5.8 方便指令(FNC 60FNC 69) 5.13 实时时钟处理(FNC 160FNC 169) 5.15 触点式比较指令(FNC 220FNC 249),功能指令的表现形式,数据长度及指令的执行方式,图 处理16位的数据和32位的数据示例,元件形式,位元件 字元件

2、 位元件组合 整数与实数 变址寄存器,程序流控制(FNC 00FNC 09),5.2.1 条件跳转 5.2.2 子程序 5.2.3 中断 5.2.4 主程序结束 5.2.5 警戒时钟 5.2.6 循环(FOR、NEXT),5.2.1 条件跳转(CJ) 1. 条件跳转CJ指令的助记符及功能如表所示:,2. 格式,如下图所示。,3. 说明: (1) 如图所示,当X0接通,程序跳转到P0所指的程序行执行。当X0断开,程序不跳转,顺序执行。 (2) 可允许多个CJ指令使用相同的指针,如下图所示。当X0或X2接通,均可跳到P0所指的程序行。,5.2.2 调用子程序和子程序返回(CALL,SRET,FEN

3、D),1. 调用子程序指令的助记符及功能如表所示:,2. 使用格式如图所示。,3.说明 (1)当X1接通,CALL指令被驱动,程序转移到指针P1所指的程序行执行,一直到子程序返回指令SRET,然后立即返回到调用子程序CALL指令的下一指令,再继续执行主程序。 (2)CALL指令的P指针以及子程序必须放在主程序结束指令FEND之后。 (3)可以多次调用子程序,子程序可嵌套,嵌套层数不能大于5层,每个子程序都必须以SRET结束。,主程序结束,中断指令,中断指令,1个中断指针(I*)占一步,可设置中断点的数参见下述内容。 指令EI和DI之间的程序段为允许中断区间,如果中断信号产生于禁止中断区间(DI

4、到EI范围),则中断信号被存储,并在EI指令之后被执行,除非相应的M805为ON。 在一个中断程序执行中,其他中断被禁止。但是,在中断程序中编入EI和DI指令可以实现2级中断嵌套。 在子程序和中断程序中定时器要用T192T199和T246T249,P13B.,中断用指针,P13C,中断例,0,输出立即刷新程序,输入立即刷新程序,记录X2 ON次数的程序,通过输入中断把窄脉冲保持,定时中断程序,监视定时器(WDT),2. 格式如下图所示。,图 WDT指令用法,3. 说明 (1)WDT指令是在控制程序中刷新警戒定时器的指令。如果执行程序的扫描周期时间(从0步到END或FEND指令之间)达200ms

5、,则PLC将停止运行。这时应将WDT指令插到合适的程序步中刷新警戒时钟,以便程序得以继续运行直到END。例如将一个扫描周期为240ms的程序分为2个120ms程序。如图所示,在这两个程序之间插入WDT指令。 (2)如果希望每次扫描周期时间超过200ms,则可用移动指令MOV把限制值写入特殊数据寄存器D8000中。,循环(FOR,NEXT),2.FOR-NEXT的格式,如下图所示。,图 循环指令,3.说明 (1) 进入循环指令FOR n,n取值范围为132767。循环结束命令NEXT,无操作数。命令FOR-NEXT必须成对使用,缺一不可。 (2) 上图为单循环,执行完程序1,进入循环语句,对程序

6、2执行循环10次后,执行程序3结束。FOR-NEXT指令可以嵌套,它主要用于某些操作需反复进行的场合。FOR-NEXT指令最多只能嵌套5层。如因循环次数过多,程序运行时间大于200ms,请注意使用WDT命令。,(3)下图为双重循环的例子。接通PLC电源,当X0闭合,程序转到P1执行。当X0断开,接通PLC电源,程序执行双重循环,执行结果为Z=50,D0=49。之后,执行定时器指令。当T0的当前值等于设定值D0,T0触点接通,Y0得电。,图 双重循环,传送与比较(FNC 10FNC 19),5.3.1 比较 5.3.2 区间比较 5.3.3 传送 5.3.4 取反传送 5.3.5 移位传送 5.

7、3.6 块传送 5.3.7 多点传送 5.3.8 交换 5.3.9 BCD变换 5.3.10 BIN变换,比较,图 CMP指令应用例,例 下图为指令CMP的应用例子。按X0及X2,问当按X1为8次,10次,16次,灯Y0、Y1、Y2哪个亮?,比较指令CMP工作时,其控制触点必须一直闭合。因此设置X2,用M0自锁实现。当X1闭合8次,K10C0当前值,Y0得电;当X1闭合10次,K10=C0当前值,Y1得电;当X1闭合16次,K10C0当前值,Y2得电。,区间比较,图 ZCP指令应用例,传送,例 试读下图梯形图,当按X0,则Y0、Y1、Y2、Y3,哪个有输出?,取反传送,图 CML指令应用例,移

8、位传送,图 移位传送,移位传送,图 移位传送示例,1,1,块传送,多点传送,交换,BCD变换和BIN变换,四则与逻辑运算(FNC 20FNC 29),5.4.1 BIN加法 5.4.2 BIN减法 5.4.3 BIN乘法 5.4.4 BIN除法 5.4.5 加1和减1 5.4.6 与、或和异或 5.4.7 求补,二进制的加、减、乘、除运算(ADD,SUB,MUL,DIV) 二进制的加、减、乘、除运算的助记符和功能如下表所示:,图 ADD、SUB、MUL、DIV指令格式,3. 说明 (1) ADD指令的意义是:源(S1.)源(S2.)目标(D.), 是代数相加,且必须为同一元件。图5-36中,执

9、行ADD指令,D1+D3D10。若计算结果为0,M8020置ON;若计算结果超过32767(16位)或2147483687(32位),进位标志M8022置ON;若结果小于-32767(16位)或-2147483687(32位),借位标志M8021置ON。 (2)SUB指令的意义是D1D3D11,是代数运算。其运算结果的借位情况与(1)相同。 (3)MUL指令的意义是D1D3D12,为代数运算。若D1、D3为16位,其运算结果为32位,目标元件D12表示低16位地址,D13放高16位地址。若D1、D3为32位,则目标D12为低16位地址,此时(D2,D1)(D4,D3)(D15,D14,D13,

10、D12)。,(4)DIV指令的意义是:D1/D3D16,为代数运算。若D1、D3为16位,则商放D16,余数放D17。若D1、D3为32位,则商和余数均为32位,目标元件D16为存放商的首址,即D17、D16存放商,而比目标元件高3位的元件存放余数,即D19、D18存放余数。 (5)执行图5-36运算结果得:D1060;D1120;D12800;D162。,二进制数加1和减1运算(INC,DEC),3说明 (1)INC指令的意义为目标(D.)当前值D1+1D1。在16位运算中,+32767加1则成-32768;在32位运算中,+2147483647加1则成为-2147483648。 (2) D

11、EC指令的意义为目标元件(D.)当前值D10-1D10。在16位运算中,-32768减1则成+32767;在32位运算中,-2147483648减1则成为+2147483647。 (3)若用连续指令时,INC和DEC指令都是在各扫描周期都做加1运算和减1运算。因此,在上图中,X1和X2都使用上升沿检测指令。每次X1闭合,D1当前值加1;每次X2闭合,D2当前值减1,例 运行图程序,讨论Y0Y3得电情况。 按X0第1次闭合,Y0得电;第2次,Y1得电;第3次,Y1、Y0得电;第4次,Y2得电;第5次,Y2、Y0得电;第6次,Y2、Y1得电;第7次,Y2、Y1、Y0得电;第8次,Y3得电。如此下去

12、,一直到第15次,Y3、Y2、Y1、Y0得电,第16次,Y3、Y2、Y1、Y0全失电。运行中间若按X1,则Y0Y4失电。,逻辑字与、或、异或运算(WADD,WOR,WXOR),WAND,3说明 (1)WAND指令的意义是将两源(S1.)、(S2.)相与,送目标(D.)。“与”的逻辑式为:Y = AB,其运算逻辑为: 1 AND 1=1; 0 AND 1=0 1 AND 0=0; 0 AND 0=0 。,(2) WOR指令的意义是将两源(S1.)、(S2.)相或,送目标(D.)。“或”的逻辑式为:Y = A + B,其运算逻辑为: 1 OR 1=1; 0 OR 1=1 1 OR 0=1; 0 O

13、R 0=0 。 (3) WXOR指令的意义是将两源(S1.)、(S2.)相异或,送目标(D.)。“异或”的逻辑 式为:Y = A B + A B ,其运算逻辑为: 1 XOR 1=0; 0 XOR 1=1 1 XOR 0=1; 0 XOR 0=0,(4)上图运算的结果为:接通X1,D1、D2“与”运算,D10的结果为20。接通X2,D1、D2“或”运算,D11的结果为30;接通X3,D1、D2“异或”运算,D12的结果为10。,(5)逻辑“与”指令WAND还常用于屏蔽某元件数值的高位或低位。上图中接通X0,将十六进制数H1268送D0,接通X1,将H00FF和D0进行“与”运算,运算结果送D1

14、0,D10为H0068,屏蔽了高位。,求补码(NEG),3说明 (1)NEG指令的意义是将目标(D.)位的数取反,即“1”“0”,“0”“1”,然后将取反后的结果加1再送目标(D.)。此时,目标(D.)的数的符号改变,但数值不变。如图5-43所示,接通X0,D0 的数值为 1000,其二进制数为 “0000001111101000”,各位取反加 1 后得 “1111110000011000”,即为(-1000)。若目标(D.)为负数,使用NEG指令,即是求得其绝对值。 (2)若使用连续执行型指令,则每扫描周期都会执行NEG指令一次。,循环移位与移位(FNC 30FNC 39),5.5.1 循环

15、移位(左/右) 5.5.2 带进位的循环 5.5.3 移位(左/右) 5.5.4 字右移/字左移 5.5.5 先入先出(FIFO)写入 5.5.6 先入先出(FIFO)读出,循环移位(左/右),3说明 (1)ROR指令的意义为:每执行一次X10,目标元件(D.)中的位循环右移n位,最终从低位被移出的位同时存入到进位标志M8022中。 (2)ROL指令的意义为:每执行一次X20,目标元件(D.)中的位循环左移n位,最终从高位被移出的位同时存入到进位标志M8022中。,带进位循环右移和循环左移(RCR,RCL),3说明 (1)每次执行RCR指令,目标元件(D)中的位带进位循环右移n位,最后被移出的

16、位放入到进位标志M8022中。在运行下一次RCR指令时,M8022中的位首先进入目标元件中。 (2)每执行一次RCL指令,目标元件(D)中的位带进位循环左移n位,最后被移出的位放入进位标志M8022中。在运行下一次RCR指令时,M8022中的位首先进入目标元件中。 (3)图执行情况如图所示。图(a)为带进位循环右移4位,执行情况如下: X0接通, D1=0000 0000 1111 1111=255, M8022=0 X1接通第1次, D1=1110 0000 0000 1111=-8177, M8022=1 X1接通第2次, D1=1111 1110 0000 0000=-512, M8022=1 X1接通第3次, D1=0001 1111 1110 0000=8160, M8022=0,图(b)为带进位循环左移4位,执行情况如小: X0接通, D1=0000 000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号