《常用低压电器与可编程序控制器课件》由会员分享,可在线阅读,更多相关《常用低压电器与可编程序控制器课件(234页珍藏版)》请在金锄头文库上搜索。
1、第7章 可编程序控制器程序编制 第7章 可编程序控制器程序编制 7.1 梯形图的编程规则梯形图的编程规则7.2 OMRON PLC指令系统概述指令系统概述7.3 CPM1A系列常用指令系列常用指令7.4 CPM1A系列应用指令系列应用指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.1 梯形图的编程规则梯形图的编程规则 图7-1 梯形图示例 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 梯形图的编程规则主要体现为以下几点: (1) 梯形图由多个梯级组成,每个输出元素可构成一个梯级。输出元素主要指继电器线圈或指令。 (2) 每个梯级可由多个支路组成,每个
2、支路可容纳多个编程元素,最右边的元素必须是输出元素。 (3) 梯形图两侧的竖线(OMRON PLC梯形图右侧的母线省略)类似电器控制图的电源线,称作母线(BUS BAR)。编程时要从母线开始,按梯级从上至下,每个梯级从左到右的顺序编制。左侧总是安排输入接点,并且把并联接点多的支路靠近最左端。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 (4) 在梯形图中每个编程元素应按一定的规则加标字母、数字串,不同的编程元素常用不同的字母符号和数字串表示。编程元素中常以“”符号表示指定继电器的常开接点;以“”符号表示指定继电器的常闭接点;以“”符号表示指定继电器的控制线圈,其中“N”表示
3、指定继电器。 (5) 除END等极少数没有执行条件的指令外,输出元素不能直接和左侧母线相连接。如果必须连接,可以通过特殊辅助继电器的常ON接点连接(CMP1A系列为25313)。 (6) 在梯形图中不允许两行之间或两条支路之间连接元素,如图7-2所示。这种方式是无法进行编程的,应进行转换。 (7) 程序应以END指令结束,否则将会出现错误。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-2 梯形图的转换(a) 错误的梯形图形式;(b) 转换后的正确形式 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 梯形图中的继电器不是物理继电器,其每个继电器和输入接点
4、均为存储器中的一位。相应位为“1”状态时,表示继电器线圈通电或常开接点闭合或常闭接点断开。梯形图中的继电器接点可在编制程序时无限引用,既可常开又可常闭。图7-2中的输入接点和输出线圈不是物理接点和线圈。用户程序的运算是根据PLC内I/O映像区每位的状态,而不是运算时现场开关的实际状态进行的。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.2 OMRON PLC指令系统概述指令系统概述 1指令格式指令格式 指令格式是由操作码和操作数组成的。操作码规定CPU应该执行什么操作,由助记符构成。操作数可以是I/O继电器、IR、SR、HR、TR、AR、LR、TC、DM以及立即数。通常
5、用继电器区的缩写加上通道号或继电器号作为指令的操作数;但I/O继电器没有缩写符,可直接采用继电器号或通道号来表示。常数也可作为指令操作数,但使用时需在常数前加上“”号说明。常数可以是十进制数,也可以是十六进制数,视指令需要而定。OMRON CPM1A系列PLC也支持间接寻址,间接寻址的操作数用*DM表示。这种操作数是以DM中的数据为地址的另一个DM通道中的数据。DM中的内容必须是BCD码,且不得超出DM区的范围。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 指令执行时的标志位指令执行时的标志位 在指令执行的过程中,指令的执行结果往往会改变系统标志,从而说明指令的执行情
6、况。CPM1A系列PLC的系统标志是特殊辅助继电器(SR)中的2550325507,指令执行结果可能影响的系统标志项见表7-1所示。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-1 系统标志项系统标志项 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 指令的微分和非微分形式指令的微分和非微分形式 指令具有微分和非微分两种形式。CPM1A系列的应用指令多数兼有这两种形式。微分指令要在其助记符前加标记。两种指令的区别是:对于非微分指令,只要其执行条件为ON,则每个扫描周期都将执行该指令;微分指令仅在其执行条件由OFF变为ON时才执行一次,如果执行条
7、件不发生变化,或者从上一个扫描周期的ON变为OFF,则该指令不执行。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.3 CPM1A系列常用指令系列常用指令 7.3.1 梯形图指令梯形图指令 1. 输入输入/输出和位逻辑运算指令输出和位逻辑运算指令 输入/输出和位逻辑运算指令包括8条PLC梯形图中的基本指令。它主要用于处理梯形图中继电器接点的各种连接,执行时通过系统结果寄存器及系统堆栈作为中间单元,完成对指定继电器状态的输入/输出及逻辑处理。表7-2列出了这些指令的名称、格式、梯形图符号、操作数的范围及指令的功能。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序
8、编制 表7-2 输入/输出和位逻辑运算指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-3 输入/输出指令示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 在分析梯形图程序时,常开和常闭触点的状态(ON/OFF)是由它对应的继电器的状态来确定的。例如在图7-3中,若00000号输入继电器状态为ON,则常开触点00000的状态为ON(触点闭合),否则状态为OFF;如果00001号输入继电器状态
9、为ON,则常闭触点00001的状态为OFF(触点断开),否则状态为ON。后面再分析程序时,上述原则不再重申。 在图7-3中,第一个梯级首先将触点00000的状态载入结果寄存器,而原结果寄存器的内容被压入堆栈;结果寄存器中触点00000的状态与01000触点的状态相或后的结果存入结果寄存器;再将继电器00001的状态取反后与结果寄存器的内容作与运算;最后的运算结果输出到01000继电器。第二个梯级完成的过程与第一个梯级相似,最后输出时将结果寄存器中的内容取反后送至01001继电器。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 逻辑块与指令和逻辑块或指令逻辑块与指令和逻辑
10、块或指令AND LD和和OR LD 逻辑块与指令AND LD和逻辑块或指令OR LD用于处理复杂逻辑块操作。表7-3列出了指令的格式、操作数范围、梯形图符号及指令的功能。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表7-3 AND LD和OR LD指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 1) AND LD指令 图7-4 AND LD指令示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 在图7-4中,由触点00000、00001和00003组成的逻辑块和触点00002、00004组成的逻辑块串
11、联,助记符指令表中的前三条指令LD 00000、AND NOT 00001、OR 00003完成了第一个逻辑块的处理,指令执行结果已存入结果寄存器中,第四、五条指令则完成第二个逻辑块的处理。在执行LD 00002指令时,第一个逻辑块的结果在结果寄存器中被压入堆栈(堆栈的深度一般为8位),结果寄存器中载入触点00002的状态,在与触点00004的状态或运算后,结果仍存入结果寄存器。执行AND LD指令时,将结果寄存器中的内容与堆栈顶部的第一个逻辑块的结果作与运算,结果存入结果寄存器并执行输出指令。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) OR LD指令 图7-5 O
12、R LD指令示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-6 利用AND LD和OR LD指令示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.3.2 锁存继电器指令锁存继电器指令KEEP 表7-4 KEEP指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-7 KEEP指令应用示例(a) 指令编程;(b) 指令表;(c) 工作波形图 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当00000为ON时,其指定位20000也会置ON,并保
13、持ON直到复位为止。在此期间,不管00000是否保持ON或变为OFF,当00007置ON时,其指定位20000被复位,置为OFF;当00000与00007端同时为ON时,00007端优先。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.3.3 置位指令和复位指令置位指令和复位指令SET、RESET 表表7-5 SET和和RESET指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-8 SET和RESET指令示例(a) 指令编程;(b) 指令表;(c) 工作波形图 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.3.4 上微分
14、指令和下微分指令上微分指令和下微分指令DIFU、DIFD 表表7-6 DIFU和和DIFD指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-9 DIFU和DIFD指令示例(a) 指令编程;(b) 指令表;(c) 工作波形图 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 DIFU和DIFD指令常用在下面的几种场合: (1) 利用DIFU和DIFD指令的操作位作为某指令的执行条件,使某条指令只在该操作位由OFF变为ON时或由ON变为OFF时执行一次。 (2) 利用DIFU和DIFD指令产生脉冲信号。 常用低压电器与可编程序控制器课件第7章 可编程序控
15、制器程序编制 7.3.5 空操作指令和结束指令空操作指令和结束指令NOP、END 表表7-7 NOP和和END指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 在编程中一般不需要NOP指令,也没有它的梯形图符号。当程序中出现NOP时,程序将执行下一条指令。该指令主要用于程序修改。当程序被清除后,NOP被写入对应的地址。NOP可以通过功能代码00写入。该指令不影响任何标志位。 END指令作为程序的最后一条用,它可保证END后面的指令不被执行。当有时要调试程序时,END可以放在程序的任何一个位置来执行这点以前的指令,但调试后必须删除它以执行剩下的程序。 如果程序没有END指
16、令,系统将出现“NO END INST”的错误信息,且不执行任何指令。图7-10是END指令的示例。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-10 END指令示例指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4 CPM1A系列应用指令系列应用指令 7.4.1 定时定时/计数指令计数指令 1. 定时器指令和高速定时器指令定时器指令和高速定时器指令TIM和和TIMH 定时器指令TIM和高速定时器指令TIMH在输入条件为ON时开始计时,从设定值SV起,以定时单位进行减1运算,当减为0时计时时间到。表7-8列出了TIM、TI
17、MH指令的名称、格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-8 TIM、TIMH指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 定时器TIM指令的定时单位为0.1 s,延时时间可在0999.9 s范围内选择。若定时时间到,则定时器的输出为ON且保持;当输入条件变为OFF时,定时器复位,输出变为OFF并停止定时,其当前值PV恢复为SV。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-11 TIM指令示例(a) 指令编程;(b) 指令表;(c) 工作波形图 常用低压
18、电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 计数器指令计数器指令CNT 计数器指令CNT在复位端R为OFF的情况下,根据CP端的输入脉冲进行减法计数。计数器预置数SV可在09999范围内选择,当计数达到0时,停止计数,输出为ON且保持。只要复位端R为ON,计数器即复位为OFF并停止计数,且当前值PV恢复为SV。计数器有掉电保持功能。表7-9列出了CNT指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-9 CNT指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-12是
19、CNT指令的应用示例。计数器CNT001内的预置数为50,在复位端R为OFF的条件下,通过触点00000送至计数输入端CP的脉冲被计数(脉冲上跳沿有效)。CNT001每接到一个脉冲作一次减1运算,当接到第50个脉冲时,其预置数减为0,CNT001状态则由OFF变为ON,对应CNT001的触点接通,继电器01001变为ON。一旦CNT001复位端R的状态变为ON,则计数器CNT001复位,由ON 变为OFF,继电器01001的状态也由于触点CNT001的断开而变为OFF,CNT001内部预置数恢复为50,待复位端变为OFF后即可开始重新计数。图7-12(c)是图7-12(a)梯形图的工作波形。
20、常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-12 CNT指令示例(a) 指令编程;(b) 指令表;(c) 工作波形图 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 可逆计数器指令可逆计数器指令CNTR CNTR指令是一个可逆的递增/递减循环计数器,计数器根据增值输入(ACP)和减值输入(SCP)的变化对0和设定值(SV)之间计数。 在复位端R为OFF的情况下,从ACP端输入计数脉冲为加计数;从SCP端输入计数脉冲为减计数;加/减计数有进/借位时,输出ON一个计数脉冲周期。 只要复位R端为ON,计数器即复位为OFF并停止计数,且不论加计数还是减计
21、数,其当前值(PV)均变为0。若从ACP端和SCP端同时输入,计数脉冲则不计数,当前值(PV)不变。 可逆计数器有掉电保持功能。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表7-10 CNTR指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-13 CNTR指令示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 如图7-13所示,当复位端R的触点00003为ON时,CNTR046复位,当前值(PV)变为0000,此时既不进行加计数,也不进行减计数。当00003变为OFF时计数器开始计数,其计数过程如
22、下: 若触点00002为OFF,则由00001输入计数脉冲时为加计数器。00001每输入一个计数脉冲,CNTR046的当前值(PV)加 1。当PV0200时,若再输入一个计数脉冲,则PV值变为0000(有进位),同时CNTR046的输出变为ON。当再来一个计数脉冲时,PV=1,CNTR046的输出变为OFF,且开始下一个循环的计数。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 若00001为OFF,则由00002输入计数脉冲时为减计数器。00002每输入一个计数脉冲,CNTR046的当前值(PV)减1。当 PV0000时,若再输入一个计数脉冲,PV变为0200(有借位),同
23、时CNTR046的输出变为ON。当再来一个计数脉冲时,PV=199,且CNTR046的输出变为OFF,并开始下一个循环的计数。 由上述操作过程可见,CNT和CNTR指令的主要区别在于: 当计数器CNT达到设定值后,只要不复位,其输出就一直为ON,即使计数脉冲仍在输入;而计数器CNTR达到设定值后,其输出为ON,只要不复位,在下一个计数脉冲到来时,计数器CNTR立即变为OFF,且开始下一轮计数,即CNTR是个循环计数器。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.2 互锁指令和解除互锁指令互锁指令和解除互锁指令IL、ILC 互锁指令IL和解除互锁指令ILC常用于控制
24、程序的流向。当IL的输入条件为ON时,IL和ILC之间的程序正常执行;当IL的输入条件为OFF时,IL和ILC之间的程序不执行。在这种情况下,IL和ILC之间的部分程序中所涉及的内部器件将做如下处理: 所有 OUT和 OUT NOT指令的输出位为 OFF;所有定时器都复位;KEEP指令的操作位、计数器、移位寄存器以及SET和RESET指令的操作位都保持IL为OFF以前的状态。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表7-11 IL和ILC指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-14 IL和ILC指令应用示例(a) 指令编程方式一;(
25、b) 指令编程方式二;(c) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-15 多个IL指令配一个ILC指令实例(a) 指令编程方式一;(b) 指令编程方式二;(c) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.3 暂存继电器暂存继电器TR TR不是编程指令,但编程中常需要用暂存继电器TR存储当前指令的执行结果或梯形图分支点上存在的执行条件,即保存结果寄存器的当前内容。这是因为指令行在返回分支点执行一个分支行上的其他指令之前执行了右侧指令,使得执行条件可能发生改变而不能完成本来的操作。它与互锁IL和解除互锁ILC指令同样可作
26、为处理程序分支的方法。 CPM1A系列PLC有编号为TR0TR7的8个暂存继电器。如果某个TR位被设置在一个分支点处,则分支前面的执行结果就会存储在这个TR位中,但在同一分支程序段中,同一TR号不能重复使用。由于TR不是编程指令,因此只能与LD或OUT等基本指令一起使用。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-16 使用暂存继电器TR处理分支示例(a) 指令编程;(b) 用TR处理分支;(c) 用IL/ILC处理分支 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.4 跳转指令和跳转结束指令跳转指令和跳转结束指令JMP、JME 表7-12
27、 JMP和JME指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当程序中有多个跳转时,就可使用跳转号N来区分不同的JMP N/JME N对。在00和49之间的任何一个两位数都可以作为一个跳转编号,但除00外,同一编号只能在程序中使用一次。当N取00时,JMP 00/JME 00可以在程序中多次被使用。JMP 00和JME 00之间的指令被跳转时,指令虽不执行但仍被扫描,因此执行的时间比其他跳转号的执行时间长。跳转号不是00的JMP N/JME N之间的指令则完全跳转,不需要扫描时间。发生跳转时,JMP N/JME N指令对中所有的继电器、定时器、计数器均保持跳转前的状态。
28、 跳转指令可以嵌套使用,但必须是不同跳转号的嵌套,如JMP 00-JMP 01-JME(05)01- JME 00等。另外,和IL/ILC指令一样,多个JMP 00可以共用一个JME 00。尽管在进行程序检查时会出现错误信息“JMP-JME ERR”,但程序仍会正常执行。图7-17是使用跳转指令的示例。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-17 跳转JMP和JME指令示例(a) 指令编程方式一;(b) 指令编程方式二;(c) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-18 多个JMP 00共用一个JME 00示例(a) 指令
29、编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当第一个JMP 00条件是ON,并且第二个JMP 00条件是OFF时,输出01000的ON/OFF状态取决于00001和00002的状态,而输出01001和计数器仍保持它们的状态。 当两个JMP 00在同一时间的条件都是ON时,程序的执行与没有JMP 00指令时一样。 将JMP /JME与IL /ILC指令进行比较后可以发现,由于在JMP /JME 分支起作用时,I/O位、计时器等的状态被保持,因此JMP/JME常用于控制需要一个持续输出的设备(例如气动装置和液压装置),而IL/ILC分支用于控制那些不需要一
30、个持续输出的设备,例如电子仪器。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.5 数据移位指令数据移位指令 1. 移位寄存器指令移位寄存器指令SFT 移位寄存器指令SFT由三个执行条件IN、SP和R控制。当复位端R为OFF时,随着SP端移位脉冲的上升沿,St到E通道中的所有数据按位依次左移一位,E通道中数据的最高位溢出丢失,IN端的数据移进St通道中的最低位;当复位端R为ON时,St到E所有通道均复位为零,且移位指令不执行。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-13 SFT指令指令 注:St和E必须在同一区域,且StE。 常用低压
31、电器与可编程序控制器课件第7章 可编程序控制器程序编制 移位寄存器SFT指令的执行情况如图7-19所示。当移位脉冲SP由OFF变为ON时,始通道到末通道之间的所有位向左移一位,此时IN端状态移入St寄存器的最低位,即如果IN端为ON,则将一个“1”移入寄存器;如果IN端为OFF,则将一个“0”移入寄存器。E寄存器最左位(最高位)溢出丢失。 图7-19 SFT指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-20是SFT指令的应用示例。例中,SFT指令的首通道为HR00,末通道为HR01,以特殊辅助继电器25502产生的秒脉冲作为移位脉冲,以00000的ON、O
32、FF状态作为输入数据。在PLC上电后的第一个扫描周期,利用特殊辅助继电器25315对移位寄存器进行复位。在移位过程中,首通道HR00和末通道HR01是一个完整的数据链。当HR01通道中的第07位为ON时,继电器20000为ON。移位过程中只要触点00001为ON,移位寄存器即复位。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-20 SFT指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 双向移位寄存器指令双向移位寄存器指令SFTR/SFTR 双向移位寄存器指令SFTR /SFTR用于创建一个单字或多字的
33、可向左或向右移位的移位寄存器。指令中的控制字C提供移位方向、寄存器的输入状态、移位脉冲和复位输入。 表7-14是指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 在执行条件为ON时,SFTR/SFTR指令根据控制字C中对应位的状态执行。其功能为: (1) 控制字C的复位位bit 15为1时,St到E通道中的所有数据及进位位CY全部清为0,且不接收输入数据。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 (2) 控制字C的复位位bit 15为0时,在移位脉冲SP的作用下,根据移位脉冲的状态进行左移或右移,移动的方向由C的bit 12的状态决定,移位溢出的位进入CY(2
34、5504)。 左移:从St到E通道的所有数据,每个扫描周期按位依次左移一位。C的bit 13的数据移入开始通道St的最低位中,结束通道E最高位的数据移入进位位CY中。 右移:从E到St通道的所有数据,每个扫描周期按位依次右移一位。C的bit 13的数据移入结束通道E的最高位中,开始通道St最低位的数据移入进位位CY中。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-14 SFTR /SFTR指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-21 微分指令SFTR示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章
35、可编程序控制器程序编制 图7-21中,00004是SFTR指令的执行条件,IR200是控制通道,由DM0010DM0011组成可逆移位寄存器。当00004为ON时,SFTR指令执行一次移位操作;当00004为OFF时,SFTR指令不执行,此时控制通道的控制位不起作用,DM0010DM0011及CY位的数据保持不变。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 控制通道IR200的bit12bit15的状态是由0000000003控制的。工作时,若00000为ON,则20012为1,执行左移位操作;若00000为OFF,则20012为0,执行右移位操作。若00001为ON,则
36、20013为1,即输入数据为1;若00001为OFF,则20013为0,即输入数据为0。 以00002的信号作为移位脉冲,若00003为ON,则20015为ON,双向移位寄存器DM0010DM1011及CY位清零;若00003为OFF,则20015为OFF,此时根据20012的状态将执行左移或右移操作。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 数数 字字 左左 移移 指指 令令 和和 数数 字字 右右 移移 指指 令令 SLD/SLD和和SRD/SRD 数字左移指令SLD/SLD和数字右移指令SRD/SRD可完成一个4位数字的左移和右移。表7-15列出了指令名称、
37、指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 当执行条件置ON时,数字左移指令SLD/SLD将St和E之间的连续通道的内容左移4位(一个数字)。当数字0被写入St的最右边数字时,E中的最左边数字的内容将丢失。图7-22是数字左移指令SLD/SLD的应用示例。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-15 SLD/SLD和和SRD/SRD 指令指令 注:St和E必须在同一区域,且StE。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-22 数字左移指令SLD/SLD的应用示例(a) 指令编程;(b) 指令表;(c) 指令执行情
38、况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 4. 算算 术术 左左 移移 指指 令令 和和 算算 术术 右右 移移 指指 令令 ASL/ASL和和ASR/ASR 算术左移指令ASL/ASL和右移指令ASR/ASR将指定通道中的数据按位左移或右移一位。移位溢出的位进入CY,另一端则补0。表7-16列出了指令的名称、格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-16 ASL/ASL和和ASR/ASR指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-23 算术左移与
39、算术右移指令执行情况(a) 算术左移; (b) 算术右移 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-24 算术左移指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 5. 循环左移指令和循环右移指令循环左移指令和循环右移指令ROL/ROL和和ROR/ROR 表表7-17 ROL/ROL和和ROR/ROR指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-25 循环左移与循环右移指令的执行情况(a) 循环左移;(b) 循环右移 常用低压电器与可编程序控制器课件第7章 可编程序控制器程
40、序编制 6. 字移位指令字移位指令WSFT/WSFT 表7-18 WSFT/WSFT指令 注:注:St和和E必须在同一区域,且必须在同一区域,且StE。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图图7-26 字移位字移位WSFT/WSFT指令应用示例指令应用示例(a) 指令编程;指令编程;(b) 指令表;指令表;(c) 通道数据情况通道数据情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7. 异步移位寄存器异步移位寄存器ASFT/ASFT 当异步移位寄存器ASFT执行条件为OFF时,不执行指令且程序转到下一条指令执行;当执行条件是ON时,ASFT用
41、来建立和控制一个在St和E之间的可逆异步字移位寄存器。这个寄存器的移位字仅当寄存器中相邻的一个字是0时执行。也就是说,如果寄存器中没有字包含0,就不做任何移位,即寄存器中每个为0的字移动一个字。当一个字中的内容移到下一个字时,原始字的内容将被设定为0。从本质上来说,当寄存器移位时,寄存器中每一个0字与下一个字对换位置,而“下一个字”是向上还是向下,则在控制字C中被指定。同时,C也可用来复位寄存器。表7-19列出了指令名称、指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-19 ASFT/ASFT指令指令 注:St
42、和E必须在同一区域,且StE。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-27 ASFT指令应用示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.6 数据传送指令数据传送指令 1. 传送指令和传送非指令传送指令和传送非指令MOV/MOV和和MVN/MVN 当指令执行条件为ON时,传送指令MOV将源数据S传送到通道D中,而传送非指令MVN则将源数据S按位求反后传送到通道D中。表7-20列出了指令名称、指令格式、操作数范围、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器
43、课件第7章 可编程序控制器程序编制 表7-20 MOV/MOV和MVN/MVN指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-28 MOV和MVN指令应用示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 块传送指令块传送指令XFER/ XFER 表7-21 XFER/ XFER指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-29 XFER指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 块设置指
44、令块设置指令BSET/BSET 块设置指令BSET/BSET相当于多个MOV指令。当执行条件为ON时,该指令将源数据S传送到从St 到E的所有通道中。表7-22列出了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-22 BSET/BSET指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-30 BSET指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 综上所述,MOV和BSET指令的区别在于: (1) 执行一次MOV指令,只
45、能向一个通道传送一个字;而执行一次BSET指令,可以向多个通道传送同一个字。 (2) 当用通道对TIMCNT进行设定时,使用MOV和BSEY指令都可以改变TIM/CNT的设定值;使用BSET指令不仅可以改变TIM/CNT的设定值,还可以改变 TIM/CNT的当前值,而MOV指令却没有这个功能,因为MOV指令不能向TC区传送数据。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 4. 变址传送指令变址传送指令DIST/DIST 表表7-23 DIST/DIST指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 1) 单字数据分配 当C的第1215位为08的数
46、值时,DIST可用于单字分配操作。控制字C指定一个偏移量Of,偏移量Of的取值范围为BCD码00002047。 当执行条件为OFF时,DIST不执行;当执行条件为ON时,DIST把S的内容复制到DBs+Of。也就是说,Of是被加到DBs中来决定目的字地址的。图7-31是DIST指令用于单字数据分配的示例。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-31 DIST指令用于单字数据分配的示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) 进栈操作 当C的第12位15位为9时,DIST能用作堆栈
47、操作。执行该指令生成一个用户堆栈,C的其他位指定堆栈的深度(BCD码000999)。DBs的内容是堆栈的指针。 当执行条件为OFF时,DIST不执行;当执行条件为ON时,DIST把S的内容复制到DBs+1+堆栈指针中。换句话说,1和堆栈指针被加到DBs中以决定目的字地址,然后堆栈指针加1。图7-32所示是DIST指令用于进栈操作的示例。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-32 DIST指令用于进栈操作的示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 5. 数据交换指令数据交换指令XC
48、HG/XCHG 表表7-24 XCHG/XCHG指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当执行条件为ON时,XCHG指令交换通道LR00和HR05内的数据。 图7-33 XCHG指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 6. 位传送指令位传送指令MOVB/MOVB 表表7-25 MOVB/MOVB指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-34 MOVB指令应用示例(a) 指令编程;(b)指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章
49、可编程序控制器程序编制 7. 数字传送指令数字传送指令MOVD/MOVD 数字传送指令MOVD/MOVD将一个通道的16个二进制位划分成4个数字位来看待,每个数字位含有4个二进制位。传送操作是以数字位为单位进行的。该指令将S中某一数字位开始的若干个连续的数字位传送至D中某一数字位开始的连续区域中。控制数据C指定了传送的位数及源、目的通道的起始位。表7-26列出了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-26 MOVD/MOVD指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-
50、35 数字传送指令MOVD/MOVD示例(a) 控制字C格式;(b) 不同的C值的数据传输 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 8. 数据调用指令数据调用指令COLL/COLL 数据调用指令COLL/COLL可以根据控制字C的内容来进行数据收集、先进先出堆栈的出栈操作或后进先出堆栈的出栈操作。表7-27列出了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-27 COLL/COLL指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-36 COLL用作数据收集
51、示例(a) COLL编程;(b) 指令表;(c) 指令操作情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当C的bit 12bit 15等于9时,COLL可以用于一个先进先出堆栈的出栈操作。C中的其他三位数字指定堆栈的深度(BCD码000999)。SBs中的内容是堆栈指针。 当执行条件为ON时,COLL通过一个地址对堆栈中的每一个字的内容往下移一地址,最后把数据从SBs+1(写入堆栈的第一个数值)移位到目的字D,堆栈指针的内容减1。 图7-37显示了使用COLL指令在DM0001与DM0005之间创建堆栈,并完成先进先出堆栈的出栈操作的过程。DM0000起堆栈指针的作用,
52、IR200通道内存放的是控制字9005。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-37 COLL用作先进先出堆栈的出栈操作示例(a) COLL编程;(b) 指令表;(c) 指令操作情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当00000从OFF变为ON时,COLL把DM0002DM0005的内容往下移一个地址,并将DM0001移入IR010,然后,堆栈指针DM0000的内容减1。 当C的bit 12bit 15等于8时,COLL可以用于一个后进先出堆栈的出栈操作,此时指令将SBs+堆栈指针的内容所指向的数据复制到目的通道D中,而堆栈中的数
53、据不变,堆栈指针的内容减1。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.7 数据比较指令数据比较指令 CPM1A系列PLC有4条用于数据比较的指令,它包括单字比较、双字比较、块比较和表比较指令。 1. 单字比较指令单字比较指令CMP 单字比较指令CMP对C1和C2进行比较,并把结果输出给SR区域中的GR、EQ和LE标志。表7-28列出了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-28 CMP指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-38 C
54、MP指令应用示例(a) CMP指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 双字比较指令双字比较指令CMPL 表7-29 CMP指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 块比较指令块比较指令BCMP/BCMP 块比较指令BCMP/BCMP将16个范围值(上限和下限)以下限在前、上限在后的顺序存放在以CB开始的32个连续通道中,然后将数据CD与这16个范围值依次进行比较。若下限CD上限,则在结果通道R的相应位上置1,否则清零。R的16个位分别对应于16个范围值,其第0位与CB所存放的一组范围值相对应。表7-30列
55、出了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-30 BCMP/BCMP指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-39 BCMP指令应用示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 4. 表比较指令表比较指令TCMP/TCMP 表表7-31 TCMP/TCMP指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表比较指令TCMP与块比较指令BCMP的区别在于:块比较指令是
56、将数据与指定通道中的上下限值进行比较,当下限CD上限时,结果通道对应位置1;而表比较指令则是将数据与指定通道中的数值比较,当CD等于对应数值时,结果通道对应位置1。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.8 数据转换指令数据转换指令 1. BCD与与 二二 进进 制制 转转 换换 及及 二二 进进 制制 与与 BCD转转 换换 指指 令令 BIN/BIN及及BCD/BCD BCD与二进制数转换指令BIN/BIN把源通道S中的BCD内容转换为数值对等的二进制数,并把该二进制数的结果输出到结果通道R。因此,仅R的内容被改变,S的内容保持不变。而二进制数与BCD转换
57、指令BCD/BCD则是BCD与二进制数转换指令的逆运算。表7-32列出了指令名称、指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-32 BIN/BIN 和和BCD/BCD指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 续表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-40 BCD与二进制数转换指令BIN的应用示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 数字译码指令数字译码指令M
58、LPX/MLPX 数字译码指令MLPX/MLPX将源通道S中的若干个十六进制数进行译码,根据译码结果将结果通道的相应位置1,其余位清零。将要译码的十六进制数的位数由C的47位指定,最多不超过4位;开始译码的位号由R的03位决定,后续位号依次加1,超过4位时又从第一位开始。转换结果总是存在R、R1、R2和R3中。表7-33列出了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-33 MLPX/MLPX指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-41 MLPX指令控制字C的格式及指
59、令的应用示例(a) 控制字C的格式;(b) 指令编程;(c) 指令表;(d) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-42 MLPX指令具有不同控制字时的执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 数字编码指令数字编码指令DMPX/DMPX 数字编码指令DMPX/DMPX类似于数字译码指令的逆运算,它将S开始的若干个连续通道中的最高位“1”的位号编为一个十六进制数,结果存放于R的某一个十六进制位上。一次最多对四个通道进行编码,通道的个数由C的47位指定,结果存放在R中,存放的起始位号由C的03位指定。表7-34列出
60、了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-34 DMPX/DMPX指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-43 DMPX指令控制字C格式及指令应用示例(a) 控制字C格式;(b) 指令编程;(c) 指令表;(d) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-44 DMPX指令具有不同控制字时的执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 4. 七段译码指令七段译码指令SDEC/SDEC 表表7-3
61、5 SDEC/SDEC指令指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-45 控制字C的格式 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-46 SDEC指令操作示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 若要对源通道中的多位数字进行译码,则可将输出区扩展到3个通道,即R、R+1和R+2。根据数字标志的指示分别将译码值顺序写入从R高8位或低8位开始的通道中,若第1个数字的译码写入R的低8位,则第2个数字的译码写入R的高8位,第3个数字的译码写入R+1的低8位,第
62、4个数字的译码写入R+1的高8位;若第1个数字的译码写入R的高8位,则第2个数字的译码写入R+1的低8位,第3个数字的译码写入R+1的高8位,第4个数字写入R+2的低8位。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-47所示为SDEC指令的多位译码示意。源通道S中的数据为8765H,控制字C为#0032,表示从S中第2位数字开始译码,共译4位数字,译码顺序为7856。C还指示从R的低8位开始存放译码值,R中为7F27H,R+1中为7D6DH。若把C改为#0132,则表示从S中第2位数字开始译码,共译4位数字,但指示从R的高8位开始存放译码值,则R中为2700H,R+
63、1中为6D7FH,R+2中为007DH。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-47 SDEC指令的多位译码示意 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 5. ASCII码转换指令码转换指令ASC/ASC 当执行条件为ON时,ASC/ASC把源通道S指定的4位十六进制数转换成对应的8位ASCII码,并把它放入从R起始的结果通道的低8位或高8位。表7-36列出了指令格式、操作数区域、梯形图符号及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-36 ASC/ASC指令指令 常用低压电器与可编程
64、序控制器课件第7章 可编程序控制器程序编制 图7-48 控制字C格式 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 在进行奇偶校验时,每个ASCII字符(2个数字)的最左位能被自动调整。如果指定为无校验,则最左位将始终为0。当指定为偶校验时,则最左位将被自动调整,使ON的总数为偶数。例如,当设定为偶校验时,ASCII“31”(00110001)将是“B1”(10110001: 校 验 标 志 位 置 ON, 以 创 造 偶 数 个 ON位 );ASCII“36”(00110110)将是“36”(00110110:校验标志位置OFF,因为ON位的数目已经是偶数了)。校验标志位的
65、状态不影响ASCII码的意义。当指定为奇校验时,最左位将被自动调整,使ON位的总数目为奇数。 图7-49是ASC指令应用示例。示例中源通道S为DM0010,其中数据为1928H;结果通道为IR200;控制字为#0000,表示对源通道S中第0位数字“8”进行转换,转换后的ASCII码放在R中的低8位,无校验。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-49 ASC指令应用示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当输入00000为ON时,DM0010通道的第0位数字“8”被转换成ASCl
66、l代码(38)并输出至结果通道IR200的位置0处(即低8位)。因为奇偶校验标志为0,所以IR200通道第7位输出0。 ASC进行多位数字编码时,输出区可扩展到3个通道。结束通道为R+2,编码从控制字指定的R通道的低8位或高8位开始顺序写入后续通道。其工作情况与SDEC指令基本相同,这里不再赘述。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.9 数据运算指令数据运算指令 1. 十进制运算指令十进制运算指令 表7-37 十进制运算指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低
67、压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 续表二 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 1) 十进制加法运算指令ADD/ADD和ADDL/ADDL 图7-50是十进制加法运算指令ADD/ADD和ADDL/ADDL的应用示例。当00001为
68、ON时,执行单字BCD加。首先将进位位清零,然后执行ADD指令,将IR200通道内的数据与#6103相加,结果送入DM0100。如果有进位位,则将#0001送入DM0101;如果无进位位,则将#0000送入DM0101。当00002为ON时,执行双字BCD加。在执行清零操作后,在ADDL指令中,将双字HR02(#9876)HR01(#5432)与LR02(#1234)LR01(#5678)相加。图7-50(c)为双字BCD加指令的执行情况。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-50 ADD、ADDL指令应用示例(a) 指令编程;(b) 指令表;(c) ADDL
69、指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) 十进制减法运算指令十进制减法运算指令SUB/SUB和和SUBL/SUBL 在执行十进制减法运算指令之前要清进位位标志CY,指令执行完后应检查进位位标志CY。如果减法的结果使CY置ON,则输出的数据是正确答案的十进制补码。要将输出的数据转换为正确值,需先清CY,再用0减去结果通道中的数值。 图7-51所示是SUB指令的应用示例。IR200中保存被减数,DM0100中保存减数,结果存储在IR201中。当继电器20001为ON时,表示结果为负数。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-
70、51 SUB指令的应用示例(a) 指令编程;(b) 指令表;(c) 负数计算过程 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3) 十十进进制制递递增增、乘乘法法和和除除法法运运算算指指令令INC/INC、MUL/MUL和和DIV/DIV 当两个最大的单字BCD数相乘,即99999999=99 980 001时,运算结果不发生进位;同样,当两个最大的双字BCD数相乘时,结果也不发生进位。所以乘、除运算都不涉及进位位CY。 图7-52中使用了递增指令INC、乘法运算指令MUL和除法运算指令DIV。当程序运行时,先令0000置ON一次,将DM0000DM0004清零,为进行各种
71、运算作好准备。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 每当00001为ON时,执行INC指令,将DM0000中当前的内容加1;执行CMP指令,将DM0000中的内容与#0004比较,若DM0000的内容比#0004大,则将21000置为ON;执行MUL指令,将DM0000中的内容与#0004相乘,结果存入 DM0001和DM0002中;执行DIV指令,将DM0001和DM0002中的内容与#0002相除,商存入DM0003中,余数存入DM0004中。00001共4次为ON,DM0000DM0004的内容见表7-38。从00001第5次ON开始,后面将重复上面的过程。
72、常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-52 INC、MUL和DIV的应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表7-38 程序执行结果 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 二进制运算指令二进制运算指令 表7-39 二进制运算指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 续表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-53 二进制加法ADB(50)的应用
73、示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-54 二进制减法SBB的应用示例(a) 指令编程;(b) 指令表;(c) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.10 逻辑运算指令逻辑运算指令 表7-40 字逻辑运算指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 续表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 续表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-55 字逻辑运算指令应用示例(a) 指令
74、编程;(b) 指令执行情况 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.11 子程序指令子程序指令 1. 子程序调用和子程序定义子程序调用和子程序定义/子程序返回指令子程序返回指令SBS/SBS和和SBN/RET 表7-41 子程序调用、子程序定义/子程序返回指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 SBS是子程序调用指令,SBN和RET是子程序定义和子程序返回指令。所编写的子程序应该在指令SBN和RET之间。程序中,在需要调用子程序的地方安排SBS指令,它可以放在主程序中,也可以放在子程序中。也就是说,子程序可以嵌套。假设存在两层嵌套,
75、则当第二层子程序完成后(执行到RET),程序执行返回到第一层子程序,即返回主程序前要完成的子程序。子程序嵌套最多可以到16级,但子程序不能调用自身。 当使用非微分指令SBS时,只要它的执行条件满足,则每个扫描周期都调用一次子程序;当使用微分指令SBS时,只在执行条件由OFF变ON时调用子程序。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-56 子程序调用示意图(a) 子程序调用结构图;(b) 指令编程;(c) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-57 子程序嵌套结构示意图 常用低压电器与可编程序控制器课件第7章 可编程序控制器
76、程序编制 2. 宏指令宏指令 表表7-42 宏宏 指指 令令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 MCRO指令的操作数I1是子程序中第一个输入字的参数,操作数O1是子程序中第一个输出字参数。每次调用时,I1和O1的数据可以不同。由于宏调用的子程序中输入/输出的数据可以变换,因此提高了程序应用的灵活性。 执行宏指令时,可用一个具有相同结构但操作数不同的子程序代替宏指令操作,而这个子程序则以SR232SR239通道内的节点编制,输入数据利用SR232SR235通道,输出数据利用SR236SR239通道。在程序运行时,当宏指令执行条件为ON时,将输入数据I1I1+3的内容
77、复制到SR232SR235通道中,将输出数据O1O1+3的内容复制到SR236SR239通道中,然后调用子程序N。子程序执行完毕后,再将SR236SR239通道中的内容传送到O1O1+3中,并返回到MCRO指令的下一条语句,继续执行主程序。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 宏调用的子程序也是用SBN/RET来定义的。与上述子程序的安排相同,子程序必须放在主程序之后和END指令之前。在执行MCRO指令时,通道SR232SR239被系统占用,用户不得再使用这几个通道。 图7-58是使用宏指令的例子。图7-58 (a)的梯形图中有两次宏调用,被调用的子程序号是020。
78、执行两次宏调用与执行图7-58 (b)程序的功能完全相同。 在图7-58中,当HR1100由OFF变为ON时执行一次宏调用。第一个输入字是IR200,第一个输出字是HR00。当HR1101由OFF变为ON时又执行一次宏调用。第一个输入字是IR000,第一个输出字是HR01。总之,每次宏调用时,子程序的结构不变,只是输入/输出的参数在变化。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-58 宏指令使用示例(a) 使用宏指令;(b) 与宏指令功能相同的梯形图 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.12 高速计数器高速计数器 1. 高速计数
79、器的计数模式高速计数器的计数模式 图7-59 旋转编码器输出的信号波形(a) 单相脉冲;(b) 两相脉冲 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 1) 递增计数递增计数 递增计数时,外部提供的被计数的高频脉冲信号由PLC的00000点输入。在输入计数脉冲信号的前沿,高速计数器的当前值加 1。递增计数的最高计数频率是5 kHz,递增计数的计数范围是065 535(0000 0000H0000 FFFFH) 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) 增增/减计数减计数 增/减计数可对A、B两相输入计数脉冲进行计数。使用输入通道的00000、000
80、01和00002节点,A相脉冲接在PLC的00000输入点,B相脉冲接在00001输入点,复位信号Z接在00002输入点。计数器根据输入脉冲的不同相位,可进行递增计数或递减计数。 递增计数:当A相超前B相90时,在A、B相脉冲的前沿,计数器的当前值加 1。 递减计数:当B相超前A相90时,在A、B相脉冲的前沿,计数器的当前值减1。 增/减计数的最高计数频率是2.5 kHz,计数范围是-32 767+32 767(F000 7FFFH0000 7FFFH,第一位的F表示负数)。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3) 高速计数器复位高速计数器复位 特殊辅助继电器25
81、200是高速计数器复位的标志位,高速计数器根据25200的状态及系统事先的设定进行复位。当高速计数器复位时,其当前值PV=0。 CPM1A系列PLC的高速计数器有两种复位方式: (1) 硬件复位Z信号+软件复位。这种复位分两种情况:其一,若高速计数器的复位标志位25200先为ON,则在复位Z信号为ON的前沿时刻,高速计数器复位;其二,若复位Z信号先为ON,则在25200为ON后一个扫描周期,高速计数器复位。 (2) 软件复位。当25200为ON时,一个扫描周期后高速计数器复位。另外,当PLC断电再上电时,高速计数器自动复位。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2.
82、 高速计数器的设定及计数值的存放高速计数器的设定及计数值的存放 表7-43 高速计数器的设定 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 高速计数器的中断功能高速计数器的中断功能 1) 目标值比较中断目标值比较中断 在采取目标值比较中断时,要建立一个目标值比较表,如图7-60(a)所示。目标值比较表占用一个区域的若干个通道,其中首通道存放目标值的个数(BCD数)。比较表中最多放16个目标值,每个目标值占2个通道(各存放目标值的低4位和高4位)。每个目标值对应一个中断子程序号,存放16个子程序号需16个通道,所以目标值比较表最多占用48个通道。目标值比较表中的数据可用编
83、程器预先写入。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-60 两种比较表结构(a) 目标值比较表;(b) 区域比较表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) 区域比较中断区域比较中断 在采取区域比较中断时,要建立一个区域比较表,如图7-60(b)所示。区域比较表分为8个区域,每个区域占5个通道,其中两个通道用来存放下限值的低4位和高4位,两个通道用来存放上限值的低4位和高4位,一个通道存放与该区域对应的中断子程序号。8个区域要占40个通道。当实际使用的比较区域不满8个时,要把其余区域存放上、下限值的通道都置为0,将存放子程序号的通道都
84、置为FFFFH。区域比较表中的数据可用编程器预先写入。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 区域比较中断的执行过程是:在高速计数器计数过程中,若当前值落在区域比较表中某个区域,即下限值高速计数器PV值上限值,则停止执行主程序而转去执行与该区域对应的中断处理子程序。子程序执行完毕,返回到断点处继续执行主程序。 执行区域比较中断时,比较结果存放在辅助记忆继电器AR1100AR1107中。例如,当高速计数器的当前值落在区域比较表的区域1中时,AR1100置为ON;当高速计数器的当前值落在比较表的区域2中时,AR1101置为ON,以此类推。 常用低压电器与可编程序控制器课件
85、第7章 可编程序控制器程序编制 4. 高速计数器控制指令高速计数器控制指令 高速计数器的中断功能必须利用控制指令进行各种相关设置。表7-44列出了高速计数器控制指令的名称、指令格式、操作数区域、梯形图符号、指令的功能及执行指令对标志位的影响。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表7-44 高速计数器控制指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 续表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-61 利用控制指令进行各种相关设置及计数的过程 常用低压
86、电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-62 采用高速计数器目标值比较中断的示例(a) 示例程序;(b) 目标值比较表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-63 高速计数器区域比较中断示例(a) 示例程序;(b) 区域比较表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 综上所述,高速计数器具有高速计数和中断功能。使用高速计数器时的注意事项和高速计数器的具体功能归纳如下: (1) 使用高速计数器前必须进行设定,设定数据存放在DM6642中,以确定高速计数器的使用/不使用、复位方式、计数模式等。 (2) 使用高速计数器时,
87、SR248和SR249通道被占用,不能再作它用。 (3) 使用高速计数器时,0000000002三个输入点被占用,不能再作它用。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 (4) 高速计数器有计数功能。递增计数时,计数脉冲可以是外部输入的信号或旋转编码器输出的单相脉冲。增/减计数时可用旋转编码器的输出脉冲作为计数脉冲,当旋转编码器A相输出脉冲超前B相90时,为递增计数;当B相输出脉冲超前A相90时,为递减计数。 (5) 高速计数器具有中断功能。在使用其中断功能时,要用CTBL指令登录一个目标值比较表或区域比较表。所登录的比较表可以立即启动比较,也可以用INI启动比较。 (
88、6) 高速计数器的中断处理子程序与普通子程序的编写规则相同。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.13 脉冲输出指令脉冲输出指令 表表7-45 脉冲输出指令脉冲输出指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-64 连续模式脉冲输出与独立模式脉冲输出示例(a) 连续模式脉冲输出指令编程;(b) 连续模式脉冲输出指令表;(c) 独立模式脉冲输出指令编程;(d) 独立模式脉冲输出指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 当脉冲输出指令的执行条件00100由OFF变为ON时,执行PULS指令,设置输出脉冲
89、的个数(DM0000的内容);执行SPED指令,启动脉冲输出,从01001输出500Hz的脉冲信号。当输出脉冲达到设定的脉冲个数时,自动停止脉冲输出。 在使用脉冲输出指令时,要注意以下几点: (1) 同一时刻只能从一个输出点输出脉冲。 (2) 正在输出脉冲时,不能用PULS指令改变输出脉冲的个数。 (3) 在独立输出模式时,当达到指定脉冲数时停止脉冲输出;在连续输出模式时,将SPED指令的 F设为0000,或将 INI指令的C设为003,都可以使脉冲输出停止。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.14 中断控制中断控制 1. 外部输入中断功能外部输入中断功能
90、 1) 外部输入中断的输入点外部输入中断的输入点 在CPM1A系列PLC中,20、30和40点I/O的主机的0000300006四个点是外部输入中断的输入点。对于10点I/O的主机,其00003和00004是外部输入中断的输入点,外部发生的事件所产生的信号通过中断输入点送入PLC。当某个中断输入点接到中断输入信号(OFFON)时,或接到一定次数的信号时,产生中断请求信号。当不使用中断功能时,这些点可以作为普通输入点使用。中断处理子程序也是用SBN定义开始,用RET定义结束,而且中断处理子程序也必须放在主程序之后和END之前。各中断输入点与中断号、中断处理子程序的关系见表7-46。 常用低压电器
91、与可编程序控制器课件第7章 可编程序控制器程序编制 表7-46 中断输入点与中断号、子程序号的关系 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) 外部输入中断模式 外部输入中断有输入中断和计数中断两种模式。 (1) 输入中断。在中断开放的情况下,只要中断输入点接通,就产生中断响应。若在中断屏蔽的情况下,则即使中断输入点接通也不能产生中断响应,但该中断信号被记忆下来,待中断屏蔽解除后立即产生中断。若中断屏蔽解除后不希望响应所记忆的中断,则可用指令清除该记忆。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 (2) 计数器中断模式。这种模式的中断是对中断输入
92、点接通的次数进行高速计数(减计数)。当达到设定的次数时产生中断,且计数器停止计数,中断被屏蔽。若想再产生中断,则需使用指令进行设定。计数器的计数范围为065 535,计数频率最高为1 kHz。 当使用计数模式中断时,必须对通道SR240SR243进行设定,以存放计数器设定值,而通道SR244SR247存放计数器当前值-1。各输入点与上述通道的对应关系如表7-47所示。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-47 计数器中断模式输入点与通道对应关系计数器中断模式输入点与通道对应关系 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3) 外部输入中
93、断的设定外部输入中断的设定 图7-65 DM6628设定的内容和含义 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2. 间隔定时器的中断功能间隔定时器的中断功能 1) 单次中断模式单次中断模式 当间隔定时器的定时时间到时,停止定时并产生中断信号,但只执行一次中断。至于是否启动单次中断,其设定值是多少,中断子程序的编号等,都要由STIM指令来确定。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) 重复中断模式重复中断模式 重复中断模式是每隔一定的时间产生一次中断,因此是循环地执行中断,直到定时器停止计数为止。与单次中断不同的是,在执行中断子程序的同时,定
94、时器的当前值又恢复为设定值并重新开始定时。至于是否启动重复中断,其设定值是多少,中断处理子程序的编号等,也都要由STIM指令来确定。 单次中断模式和重复中断模式的子程序号都由STIM指令来确定,其范围为000049。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3) 间隔定时器的中断处理子程序间隔定时器的中断处理子程序 编写中断处理子程序应注意以下几点: (1) 在中断处理子程序内部可以定义新的中断,也可以解除中断。 (2) 在中断处理子程序内部不可以调用别的中断处理子程序。 (3) 在中断处理子程序内部不可以调用普通子程序。 (4) 在普通子程序中不可以调用中断处理子程序
95、。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. 中断的优先级中断的优先级 CPM1A系列PLC有高速计数器中断、外部输入中断、间隔定时器中断等几种中断功能。在执行中断程序过程中,如果接收到优先级别更高的中断,当前执行的中断程序会停止运行,然后先处理新收到的级别更高的中断。优先级别高的中断执行完后,恢复原来的中断处理。 在执行中断程序过程中,如果接收到优先级别更低或相同的中断,那么待当前处理的程序执行完毕,再根据优先级处理新接收到的中断。执行各种中断的优先级顺序如下: 外部输入中断0外部输入中断1外部输入中断2外部输入中断3间隔定时器中断高速计数器中断。 常用低压电器与
96、可编程序控制器课件第7章 可编程序控制器程序编制 4. 中断控制指令中断控制指令 表7-48 中断控制指令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-66 外部输入中断示例(a) 外部输入中断模式;(b) 外部输入计数中断模式 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-67 应用INT指令进行各种设定的示例 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 将DM6628设为0001,指定00003为中断输入点。图7-67的工作过程简介如下: PLC上电后只要0
97、0005先接通,00003输入点就被屏蔽。中断输入点00003产生的中断不能被响应,只有断开00005才能响应中断。 PLC上电后,若00005和00001断开,当00000接通一次时,确定00003为中断输入点,且为计数中断模式,计数设定值是#0030。当00003接通30次时产生中断,转去执行中断处理子程序000,使20000为ON,于是01000开始输出秒脉冲。 PLC上电后,若00005和00000断开,当00001接通一次时,00003输入点的计数设定值更新为#0050。所以当00003接通50次时,产生中断。常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 在程序运行
98、过程中,若欲查看各中断输入点的屏蔽情况,可接通00006,并用编程器的通道监视功能观察DM0000的内容。此时编程器的显示屏上就显示出4位十六进制数,其最低位数字表示各中断输入点的屏蔽状态。例如DM0000的内容是000CH,表示输入点00003和00004为非屏蔽,而00005和00006为屏蔽。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 5. 普通子程序与中断处理子程序普通子程序与中断处理子程序 1) 两种子程序的相同点两种子程序的相同点 (1) 子程序都必须由SBN和RET指令来定义其开始和结束。 (2) 子程序都要放在主程序之后和END之前,即子程序之后不能再写主
99、程序。 (3) 当 SBS指令的执行条件不满足或没产生中断时,CPU都不扫描子程序。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 2) 两种子程序调用的不同之处两种子程序调用的不同之处 (1) 子程序调用的控制方式的区别。普通子程序的调用是受程序控制的,即必须在主程序中安排SBS指令,当CPU扫描到SBS指令且其执行条件满足时调用子程序。中断处理子程序的调用不是由程序直接控制的。在中断控制指令设定之后,是否调用子程序取决于有无中断请求信号。而且,对于外部输入中断,若中断被屏蔽,即使有中断请求信号也不能立即执行中断处理子程序。 (2) 两种子程序执行完毕返回地址的区别。用SB
100、S指令调用子程序时,其返回地址只能是与SBS指令相邻的下一条指令。中断处理子程序执行完毕也要返回断点处,但其断点地址是随机的。 (3) 用SBS调用的各子程序之间没有优先级的问题,而由于各种中断存在优先级,因此与各种中断对应的中断处理子程序在执行时有优先顺序。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3) 注意的问题注意的问题 (1) 在中断处理子程序内部不可使用SBS指令,即中断处理子程序不可调用普通子程序。 (2) 不可用SBS指令去调用中断处理子程序,即普通子程序不可调用中断处理子程序。 (3) 中断处理子程序内部不可以调用别的中断处理子程序。 常用低压电器与可编
101、程序控制器课件第7章 可编程序控制器程序编制 7.4.15 步进指令步进指令 表7-49 步 进 指 令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 步进控制程序是由多个步组成的,每一步都由有执行条件的指令SNXT B开始,其后是无执行条件的且用来定义步开始的指令STEP B,两者的B相同。执行到每个步进段开头的SNXT B指令时,先为该程序段复位前面程序使用过的定时器,并对前面程序使用过的数据区清零。STEP B标志着以B为使能信号的程序段开始。STEP B指令之后是步的内容。各步编写完毕,要安排一个有执行条件的SNXT B指令。指令中的B无任何意义,它可以是程序中没有使
102、用过的某一个位号。紧随其后再写一条无执行条件且无操作数的STEP指令,用以表示全部步的结束。在无操作数的STEP指令之后还可以安排普通程序。图7-68所示为步进指令的应用示例。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-68 步进指令的应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 在图7-68中,当输入00000为ON时,开始执行 LR0000程序段;当输入00001为ON时,开始执行LR0001程序段,而被LR0000程序段所使用的数据区状态为:输出、IR、HR、AR和LR位均为OFF状态;定时器均被复位
103、;计数器、移位寄存器和KEEP指令所用的位均保持原状。 编写步进程序时应注意的问题: (1) 各步的控制位必须在同一个区,并且前后步的控制位要连续。 (2) 步程序段内不能使用以下几个指令:END、IL/ILC、JMP/JME和SBN。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 (3) 当 SNXT B执行时,将结束前一步的执行,并复位前一步使用的定时器和数据区。此时前一步使用的定时器和数据区的状态为:IR、HR、AR和LR为OFF;定时器复位;移位寄存器、计数器及KEEP、SET、RESET等指令的输出位保持。 (4) 若步的控制位使用HR、AR,则具有掉电保护功能。
104、(5) 各步必须以前一步的结束及清除为启动条件,即不能先启动中间的步。而在下一步开始执行后,若前一步的执行条件再次满足,则前一步可再启动。如果不希望前一步再启动,应采取措施。 (6) 因为各步的执行条件是脉冲信号,所以 PLC上电即 ON的执行条件无效。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 7.4.16 特殊指令特殊指令 表表7-50 特特 殊殊 指指 令令 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 1. 故障报警指令
105、故障报警指令 故障报警指令有两种,一种是可继续运行的故障报警指令FAL,另一种是停止程序运行的故障报警指令FALS。 图7-69是故障报警指令的应用示例。当输入00000(或00001)为ON时,执行FAL 01(或FAL 02)指令进行报警;当00000(或 00001)为OFF时,执行FAL 00指令,报警自动解除。但当外部输入00002为ON时,执行FALS 03指令,系统将停止运行,必须人为消除故障后利用编程器来启动系统运行。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-69 故障报警指令的应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器
106、课件第7章 可编程序控制器程序编制 2. 信息显示指令信息显示指令 信息显示指令MSG的操作数FM是存放ASCII码的开始通道。每个ASCII码的字符是两个数字。从FM开始的8个通道中最多存放16个ASCII码(即一个MSG信息)。FM中的内容是根据需要预先写入的。在执行了MSG指令后,编程器的显示屏上将显示出相应的ASCII码字符。 在存放时,ASCII码按顺序存放在以FM为首地址的连续通道中。例如,以DM0010为首地址,存放ABCDEFGHIJKLMNOP时的顺序如表7-51所示。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 表表7-51 ASCII码存放顺序码存放顺
107、序 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 在存放ASCII码的连续通道中,若其中有一个通道不是ASCII码,则该通道之后的信息将不被显示。 当显示信息时,被显示信息是按优先级的高低存入信息显示缓冲区的,优先级高的先存入,所以按照先进先出的顺序显示各信息。信息显示缓冲区最多能存放3个MSG信息(24个通道,存放48个ASCII码字符),而编程器的显示屏上每次只能显示1个MSG信息,因此就有了优先显示哪个信息的问题。被显示信息的优先级取决于存放该信息的存储区的优先级,其顺序为 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 (1) LRI/OIR(除I/O
108、外)HRARTCDM/*DM; (2) 同一区域内地址小的优先;间接寻址时,DM地址小的优先。 当欲清除当前显示的MSG信息而显示下一个MSG信息时,可在程序中安排FAL(06) 00指令与显示指令配合使用。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-70所示为MSG指令的应用示例。当00000为ON时,表示发生了非严重故障,执行FAL(06) 01指令后,主机面板上的ALM指示灯闪烁。执行MSG指令后,显示以DM0100为首地址的内容。当清除故障后,00000为OFF,此时执行FAL(06) 00指令,显示立即被清除。当00001为ON时,表示发生了严重故障,执行
109、FALS(06) 02指令后,主机面板上的ERR指示灯常亮,RUN指示灯灭并停止执行程序。执行MSG指令后,显示以IR200为首地址中的内容。排除故障后重新启动程序运行,显示的故障信息也被清除。 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 图7-70 MSG指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 3. I/O刷新指令刷新指令 图7-71 IORF指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件第7章 可编程序控制器程序编制 4. 位计数指令位计数指令 图7-72 BCNT指令应用示例(a) 指令编程;(b) 指令表 常用低压电器与可编程序控制器课件