第7章CP1PLC的指令系统_第1页
第7章CP1PLC的指令系统_第2页
第7章CP1PLC的指令系统_第3页
第7章CP1PLC的指令系统_第4页
第7章CP1PLC的指令系统_第5页
已阅读5页,还剩198页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章CP1PLC的指令系统7.1概述7.2基本指令7.3顺序控制指令7.4定时器/计数器指令7.5数据传送指令7.6数据比较指令7.7数据移位指令7.8数据转换指令7.9递增/递减指令7.10四则运算指令7.11逻辑运算指令7.12单精度浮点转换与运算指令7.13子程序控制指令7.14高速计数/脉冲输出指令7.15步进指令7.16中断控制指令7.1概述1.指令的格式指令的格式为:助记符(指令码)操作数1

操作数22.操作数形式:指令的功能指令的代码,用三位数字表示指令执行的对象,个数由指令决定1)继电器号2)通道(字)号继电器区CIO、W、H、A、TR、T、C中的继电器编号,CIO区中被输入点占用的继电器不要用作程序的输出,即不要用程序去改变其状态。同样,不要用程序去改变A只读区A000~A447中继电器的状态,而A读/写区A448~A959中的继电器则可以用作程序的输出。通道的编号;CIO区中的通道号没有前缀,注意与常数区分,例如计数器指令:CNT0000 SV3)DM间接寻址DM区可以采用BCD模式或BIN模式进行间接寻址。①BCD模式寻址(*D)。若DM区地址前缀一个“*”字符,则DM字中的内容将按BCD数处理,指令将在此BCD数所指的DM字上进行操作,只有部分DM区(D00000~D09999)可以通过BCD数000~9999进行间接寻址。②二进制模式寻址(@D)。若DM区地址前缀一个“@”字符,则DM字中的内容将按无符号二进制数处理,指令将在此二进制所指的DM字上进行操作,全部DM区都可以通过十六进制数0000~7FFFH进行间接寻址。4)常数操作数为常数时,可以是十进制,也可以是十六进制,这取决于指令的需要。16位单通道常数有四种形式,如表所示。5)索引寄存器IR间接寻址共有16个索引寄存器:IR0~IR15。每个索引寄存器32位,存储PLC内存区中一个位或字的绝对地址,可用于对内存区中的位或字进行间接寻址。用MOVR指令将一个常规数据区地址转换成它的PLC存储地址,并将该值写到指定的IR中(用MOVRW指令在IR中设定定时器/计数器当前值的PLC存储地址)。如图所示。MOVR2 IR0 MOV#0001IR0 MOV#0020 +1,IR0 将字CIO00002的PLC存储地址存储到索引寄存器IR0中。变量1功能句法示例间接寻址IR□的内容作为一个位或字的PLC存储地址处理,IR□LD,IR0装载IR0所含的PLC存储地址位常量偏移间接寻址IR□的内容加上常量前缀所得的值作为一个字或位的PLC存储地址处理,常数为-2048~2047的整数常数,IR□(正负数均可)LD+5,IR0IR0的内容加5作为PLC存储地址,并装载该地址中的位DR偏移间接寻址IR□的内容加上DR的内容所得的值作为一个字或位的PLC存储地址DR□,IR□LDDR0,IR0IR0的内容加DR0的内容作为PLC存储地址,并装载该地址中的位地址自动递增的间接寻址IR□的内容作为一个位或字的PLC存储地址后,IR□的内容自动加1或2加1:IR□+加2:IR□++LD,IR0++装载IR0中PLC存储地址中的位,并将IR0的内容加上2地址自动递减的间接寻址IR□的内容自动减1或2并将结果作为一个字或位的PLC存储地址减1:-IR□减2:--IR□LD,--IR0IR0的内容减2作为PLC存储地址并装载该地址中的位IR间接寻址变量表6)索引寄存器IR直接寻址若IR不带前缀“,”作为操作数时,指令将IR本身的内容(双字)进行操作,表列出了可对IR直接寻址的指令,当这些指令对索引寄存器操作时,后者作为指针。指令组指令名称助记符数据传送指令索引寄存器设置MOVR索引寄存器设置(定时器/计数器当前值存储器)MOVRW双字传送MOVL双字数据交换XCGL表格数据处理指令记录位置设置SETR记录号读取GETR递增/递减指令二进制递增++L二进制递减--L比较指令双字等于=L双字不等于<>L双字小于<L双字小于或等于<=L双字大于>L双字大于或等于>=L双字比较CMPL带符号算术运算指令带符号双字无进位二进制加法+L带符号双字无进位二进制减法-L7)数据寄存器DR共有16个数据寄存器:DR0~DR15。利用数据寄存器来偏移索引寄存器中的PLC存储地址。将数据寄存器中的值加到索引寄存器中的PLC存储地址上,来指定一个位或字在I/O存储区中的绝对内存地址,数据寄存器中的数据是带符号的二进制数,取值范围是-32768~+32767,因此索引寄存器中的内容既可以偏移到高地址,也可以偏移到低地址。3.标志位指令执行可能影响的标志位见表。错误标志ER:是用于监视指令执行的最常用的标志,ON时,表明正在执行的当前指令出错,停止执行。等于标志EQ:在比较指令中的两个操作数相等或指令计算结果为0时,该标志置ON。负标志N:在指令计算结果的最高有效位(符号位)为1时,该标志置ON。4.应用指令的上升沿微分形式指令类型:周期性循环执行型和上升沿微分执行型周期性循环执行型:只要执行条件为ON,指令的周期性循环执行型在每个循环周期都将执行。上升沿微分执行型:仅在执行条件由OFF变为ON时才执行一次7.2基本指令NNN:继电器编号CIO,W,H,A,TR,T,C,TK,状态标志,时钟标志,IR间接寻址7.2.1顺序输入/顺序输出指令1.LD和LDNOTN:继电器编号CIO,W,H,A,TR,IR,间接寻址NN2.OUT和OUTNOT

功能表示常开(闭)触点与左侧母线连接;LD、LDNOT指令只能以位为单位进行操作,且不影响标志位。功能表示输出逻辑运算结果说明:OUT、OUTNOT指令只能以位为单位进行操作,且不影响标志位。CIO区中已用作输入通道的位不能作为OUT、OUTNOT的输出位。OUT、OUTNOT常用于一条梯形图支路的最后,但有时也用于分支点。线圈并联输出时,可连续使用OUT、OUTNOT指令。100.020.01100.010.00100.00LD0.00OUT100.00OUTNOT100.01LDNOT0.01OUT100.02说明:只能以位为单位进行操作,且不影响标志位。串联触点的个数没有限制。NNN:继电器编号CIO,W,H,A,TR,T,C,TK,状态标志,时钟标志,IR间接寻址3.AND和ANDNOT指令0.000.01100.000.00100.00100.01LD0.00AND0.01OUT100.00LD0.01ANDNOT100.00OUT100.01功能表示常开触点与前面的触点电路相串联,后面的位与其前面的触点组逻辑“与”运算;ANDNOT表示常闭触点与前面的触点电路相串联,或说取“反”后再与其前面的触点组进行逻辑“与”运算。

连续输出次序颠倒

100.000.000.010.02100.01LD0.00AND0.01OUT100.00AND0.02OUT100.010.02100.010.000.01100.00说明:指令只能以位为单位进行操作,且不影响标志位。并联触点的个数没有限制

NNN:继电器编号CIO,W,H,A,TR,T,C,TK,状态标志,时钟标志,IR间接寻址4.OR和ORNOT指令0.000.01100.000.000.03100.01LD0.00OR0.01OUT100.00LD0.02ORNOT0.003OUTNOT100.01功能表示常开触点与前面的触点电路相并联,后面的位与其前面的触点组逻辑“或”运算;ORNOT表示常闭触点与前面的触点电路相并联,或说取“反”后再与其前面的触点组进行逻辑“或”运算。

方法1LD 0.00AND 0.01ORNOT0.02LD 0.03OR 0.04ANDLDLD 0.05ORNOT0.06ANDLDOUT 20.00方法2LD 0.00AND 0.01ORNOT0.02LD 0.03OR 0.04LD 0.05ORNOT0.06ANDLDANDLDOUT 20.005.ANDLD指令20.000.050.060.000.010.020.030.04功能用于逻辑块串联连接,即对逻辑块进行逻辑“与”的操作。每个逻辑块都以LD或LDNOT指令开始。ANDLD指令单独使用,无操作数。在方法2中,ORLD指令之前的逻辑块数应小于等于8,而方法1对此没有限制6.ORLD

方法1LD0.00ANDNOT0.01LDNOT0.02AND0.03ORLDLD0.04AND0.05ORLDOUT100.00方法2LD0.00ANDNOT0.01LDNOT0.02AND0.03LD0.04AND0.05ORLDORLDOUT100.000.000.010.020.050.040.03100.00功能用于逻辑块并联连接,即对逻辑块进行逻辑“或”的操作。每个逻辑块都以LD或LDNOT指令开始。ORLD指令单独使用,无操作数。LD 0.00OR 0.01ANDNOT 0.02LD 0.05ANDNOT0.06ORLD LD 0.07AND 0.08ORLDLD 0.03AND 0.04OR W2.02ANDLDLDNOT W2.00ANDNOT W2.01ORLDOUT 100.050.000.020.030.04100.050.01W2.020.05W2.00复杂梯形图0.070.060.08W2.01当0.00为OFF时,经过NOT取反,100.00为ON;当0.00为ON时,经过NOT取反,100.00为OFF。7.非指令NOT功能将输入条件取反,连接到下一段8.置位和复位指令-SET和RSETSET、RSET指令的梯形图符号及操作数取值区域RSETNSETNN:继电器编号 CIO,W,H,A,IR间接寻址 LD0.00SETW0.00LD0.03RESETW0.000.000.03SETW0.00RESETW0.00

0.00

0.03W0.00功能执行条件为ON时,SET使指定继电器置位为ON;执行条件为ON时,RESET使指定继电器复位为OFF.9.保持指令-KEEP(011)SR置位输入复位输入KEEP(011)SR置位输入复位输入KEEP(011)NN:继电器编号 CIO,W,H,A,IR间接寻址LD0.02LD0.03KEEP(11)H0.000.020.03KEEPH0.00

0.02

0.03置位条件置位条件置位条件复位条件注意!注意!H0.00功能当S端为ON时,继电器N保持为ON状态直至R端为ON时使其变为OFF。当两个输入端同时为ON时继电器N为OFF。10.上升沿微分和下降沿微分指令-DIFU(013)和DIFD(014)DIFU、DIFD指令的梯形图符号及操作数取值区域DIFD(014)NDIFU(013)NN:继电器编号 CIO,W,H,A,IR间接寻址

DIFU(13)W0.00DIFD(14)W0.010.00TSTS0.00W0.00W0.01

LD0.00DIFU(13)W0.00DIFD(14)W0.01扫描周期执行条件功能当执行条件由OFF变为ON时,条件上升沿微分UP输出ON一个扫描周期,连接到下一段;当执行条件由ON变为OFF时,条件下降沿微分DOWN输出ON一个扫描周期,连接到下一段。说明:CIO区中已用作输入通道的位不能作为微分指令的输出位,输出通道的位最好也不要用。在第n次扫描时检测到输入条件为OFF,第n+1次扫描检测到ON时,DIFU指令才开始执行,所以对于开机时就ON的执行条件,DIFU指令不执行。同样对于开机时就OFF的执行条件,DIFD指令不执行。11.条件上升沿微分和条件下降沿微分-UP(521)和DOWN(522)LD 0.00UP(521) OUT W0.00DOWN(522) OUT W0.01UP和DOWN指令的应用0.00W0.00TsW0.01Ts0.00UP(521)DOWN(522)W0.00W0.01功能当执行条件由OFF变为ON时,条件上升沿微分UP输出ON一个扫描周期,连接到下一段;当执行条件由ON变为OFF时,条件下降沿微分DOWN输出ON一个扫描周期,连接到下一段。7.2.2指令的微分执行和立即刷新执行执行方式指令功能I/O刷新周期性循环执行LD,AND,ORLDNOT,ANDNOT,ORNOT指定触点的状态在周期性I/O刷新时由CPU读入,进行相应的运算,产生执行结果周期性刷新OUT,OUTNOT指令执行后,将指定线圈的状态在之后的周期性I/O刷新阶段输出上微分执行@LD,@AND,@OR@LDNOT,@ANDNOT,@ORNOT在指定触点上升沿时执行指令,且仅执行一个周期下微分执行%LD,%AND,%OR%LDNOT,%ANDNOT,%ORNOT在指定触点下降沿时执行指令,且仅执行一个周期立即刷新执行!LD,!AND,!OR!LDNOT,!ANDNOT,!ORNOT立即读入指定触点的ON/OFF状态,并执行指令指令执行前!OUT,!OUTNOT执行指令的结果并立即输出给指定线圈指令执行后上微分立即刷新执行!@LD,!@AND,!@OR!@LDNOT,!@ANDNOT,!@ORNOT立即读入指定触点的状态,在其上升沿执行指令,且仅执行一个周期指令执行前下微分立即刷新执行!%LD,!%AND,!%OR!%LDNOT,!%ANDNOT,!%ORNOT立即读入指定触点的状态,在其下降沿执行指令,且仅执行一个周期常用指令的微分执行与立即刷新执行DIFU、DIFD----上升微分、下降微分指令上升微分指令是输入脉冲上升沿到来时,被指定继电器接通一个扫描周期,然后自动复位,即可将一长信号变成一短信号。下降微分指令是输入脉冲下降沿到来时,被指定继电器接通一个扫描周期,然后自动复位。LD 0.00DIFU 100.04DIFD 100.05由LD指令和OUT指令构成的程序,执行的时序如图所示。B10!B12!B11B1B7!B2B3B4B5B6B8!!B9!AA↑A↓A!↑A!A!↓AA↑A↓A!A!↑A!↓输入读取输入读取输入读取输入读取输入读取输入读取输入读取输入读取输入读取输入读取输入读取输入读取AB1B2B3B4B5B6B7B8B9B10B11B12CPU处理指令执行I/O刷新LD和OUT构成程序的时序图7.2.3编程规则及技巧(1)梯形图中线圈应放在最右边。(2)除极少数指令(如ILC、JME等)不允许有执行条件外,几乎所有的指令都需要执行条件。(3)触点不能画在垂直路径上。上电后指令一直执行指令指令P_OFF指令P_ONP_First_Cycle指令上电后指令只执行一次触点不能画在垂直路径上(b)12345(a)54215243(4)编程时,对于逻辑关系复杂的程序段,应按照先复杂后简单的原则编程。触点组并联时,应将触点最多的那个串联电路放在梯形图最上面。触点组串联时,应将触点最多的并联电路放在梯形图的最左边。(5)避免出现双线圈输出。如果在同一个程序中,同一元件的线圈使用了两次或多次,称为双线圈输出。这时前面的输出无效,最后一次输出才是有效的,如下图(a)中,若0.00为ON、W0.00为OFF,则100.00最后的状态为OFF。7.3顺序控制指令1.结束指令-END(001)梯形图符号见下图,指令无操作数。功能:END指令表示程序段结束。END…转到下一任务号任务2程序BEND…主程序结束任务n

程序ZEND…转到下一任务号任务1程序A…I/O刷新END指令的应用说明:执行END指令时,ER、EQ、NE、CY、GT、LT等标志位都被置为OFF。2.空操作指令-NOP(000)功能:该指令无操作数,用来取消程序某一梯级(条)操作。需要执行时间,但不执行任何操作。可以使用该指令可占据被删除指令梯级,而不改变程序中其它梯级的序号。3.联锁/联锁解除指令-IL(002)/ILC(003)该指令无操作数。功能:IL总是和ILC指令一起使用,用于处理梯形图中的分支电路。若执行条件为ON,则IL和ILC之间的联锁程序段正常执行;执行条件为OFF,则位于IL和ILC之间的联锁程序段不执行,此时IL和ILC之间的所有输出位为OFF;所有定时器复位;所有计数器和有保持功能指令的输出位持以前状态IL、ILC----分支和分支结束指令分支指令----在分支处形成新母线分支结束指令--从分支处返回(消除分支)注意:当IL指令前的逻辑关系接通时,IL和ILC之间的程序执行。当IL指令的逻辑关系断开时,IL和ILC之间的程序不执行。注意:IL和ILC指令不能以嵌套方式使用LD 0.00IL(002)LD 0.01OUT 100.00LDNOT 0.02OUT 100.01LD 0.03ANDNOT 0.04OUT 100.02ILC(003)LD 0.05OUT 100.03说明:(1)执行条件是ON或OFF,对IL-ILC之间的程序段都要占用扫描时间。(2)IL和ILC指令可以成对使用,也可以多个IL指令配一个ILC指令,但不允许嵌套使用(如IL-IL-ILC-ILC)。如图所示,图(a)联锁程序实现的功能和图(b)是一样的。当多个IL指令配一个ILC指令使用时,程序检查时会有出错信息显示,但不影响程序的正常执行。LD0.00IL(002)LD0.01OUT100.00LD0.02IL(002)LD0.03OUT100.01LD0.04OUT100.02ILC(003)IL(002)ILC(003)并联输出、连续输出和复合输出(a)并联输出100.00100.01100.020.00LD 0.00OUT 100.00OUT 100.01OUT 100.02(b)连续输出0.010.020.00100.00100.01100.02LD 0.00OUT 100.00AND0.01OUT 100.01AND0.02OUT 100.02(c)复合输出0.010.02100.00100.010.03100.020.00LD 0.00IL(002)LD0.01OUT 100.00LD 0.02OUT 100.01LD 0.03OUT 100.02ILC(003)LD 0.01ILLD-NOT0.02OUT 100.00LD 0.03OUT H0.00LD 0.04OUT 100.01ILCLD-NOT 100.0111 OUT-NOT 100.02在IL和ILC之间的程序不执行时,它们之间的继电器状态是不同的:输出继电器、内部辅助继电器断开;定时器复位;计数器、移位寄存器、保持继电器保持当前状态。当IL指令前的逻辑关系断开时,IL和ILC指令之间的程序不执行。4.暂存继电器-TR暂存继电器TR编号:TR00~TR15。用来暂时存储执行结果,如果一个TR位被设置于一个分支点处,则当前分支点状态会存储在指定的TR位中。TR0说明:在同一程序段中,同一TR号不能重复使用,在不同的程序段中,同一TR号可以重复使用。TR不是独立的编程指令,只能和LD或OUT等基本指令一起使用。0.00100.000.010.02100.010.030.04100.02用TR位处理分支电路

TR0

TR1LD0.00OUTTR0AND 0.01OUT 100.00LD TR0AND 0.02OUT TR1AND 0.03OUT 100.01LD TR1AND 0.04OUT 100.02TR0TR1OUTTR0OUT TR15.跳转/跳转结束指令-JMP(004)/JME(005)JMP/JME的用法发生跳转时,JMPN和JMEN之间的程序不执行,且不占用扫描时间。(2)发生跳转时所有继电器、定时器、计数器均保持跳转前的状态不变。(3)同一个跳转号N只能在程序中使用一次。但当N取00时,JMP00/JME00可以在程序中多次使用。

(4)以00作为跳转号时,比其他跳转号的执行时间长。(5)不同跳转号时可以嵌套使用。每个跳转号只能使用一次,即对同一个N,JMPN-JMEN只能在程序中使用一次。多个JMPN可以共用一个JMEN,如JMP#0-JMP#0-JME#0,见图,这样使用后,在进行程序检查时会出现错误信息“JMP-JMEERR”,但程序会正常执行。多个JMP对一个JMEJMP(004)#0JMP(004)#00.00程序AJME(005)#0程序B程序C0.01JMP(004)#0JME(005)#0程序B程序C0.00跳步指令的应用跳步的含义0.000.01100.00JMP(004)#0JME(005)#00.02W0.010.030.04T0000W0.00100.02TIM0000#0200CNT0001#01007.4定时器/计数器指令CP1提供如下定时计数功能:普通定时器TIM/TIMX高速定时器TIMH/TIMHX超高速定时器TMHH/TMHHX累计定时器TTIM/TTIMX长定时器TIML/TIMLX多输出定时器MTIM/MTIMX普通计数器CNT/CNTX可逆计数器CNTR/CNTRX定时器/计数器复位CNR/CNRX。块程序的定时等待TIMW/TIMWX高速定时等待TMHW/TMHWX计数等待CNTW/CNTWX指令名称助记符定时/计数精度定时/计数范围主要特点定时器BCD模式TIM0.1s0~9999(0~999.9s)单点递减计时BIN模式TIMX(550)0~FFFF(0~6553.5s)高速定时器BCD模式TIMH(015)0.01s0~9999(0~99.99s)单点递减计时BIN模式TIMHX(551)0~FFFF(0~65.535s)超高速定时器BCD模式TMHH(540)0.001s0~9999(0~9.999s)单点递减计时BIN模式TMHHX(552)0~FFFF(0~65.535s)累计定时器BCD模式TTIM(087)0.1s0~9999(0~999.9s)单点累加计时BIN模式TTIMX(555)0~FFFF(0~6553.5s)长时间定时器BCD模式TIML(542)1s0~99999999(0~115天)单点递减计时BIN模式TIMLX(553)0~FFFFFFFF(0~49710天)多输出定时器BCD模式MTIM(543)0.1s0~9999(0~999.9s)多点累加计时BIN模式MTIMX(554)0~FFFF(0~6553.5s)计数器BCD模式CNT10~9999单点递减计数BIN模式CNTX(546)0~FFFF可逆计数器BCD模式CNTR(012)1或-10~9999单点可逆计数BIN模式CNTRX(548)0~9999定时器/计数器复位BCD模式CNR(545)--对指定的定时器/计数器复位BIN模式CNRX(547)--定时等待BCD模式TIMW(813)0.1s0~9999(0~999.9s)单点递减计数BIN模式TIMWX(816)0~FFFF(0~6553.5s)高速定时等待BCD模式TMHW(815)0.01s0~9999(0~99.99s)单点递减计数BIN模式TMHWX(817)0~FFFF(0~655.35s)计数等待BCD模式CNTW(814)10~9999单点递减计数BIN模式CNTWX(818)0~FFFFCP1提供的定时器/计数器指令如表所示。7.4.1定时器类指令1.定时器指令-TIM/TIMX(550)TIM指令的应用LD 0.00TIM0000#0050LDT0000OUT100.00TIM0000#00500.00(a)T0000100.000.005sT0000100.00(b)N:0000~4095SV:0~9999TIMX0000~FFFF2.高速定时器指令-TIMH(015)/TIMHX(551)最小定时单位为0.01秒,定时范围为0~99.99秒,定时时间为SV×0.01秒。功能与TIMH(015)相同,区别是设定值SV为十六制数,取值范围是0000~FFFF,定时范围是0~655.35s。7.4.2计数器类指令1.计数器指令-CNT/CNTX(546)

N:0000~4095SV:BCD0~9999(CNTX0000~FFFF)

CP:计数输入端(每输入一个脉冲,CNT计一个数)

R:复位端(R端ON时计数器复位,即CNT清零)CNT0000断电再复电时,能保持断电前的当前值。2.可逆计数器指令-CNTR(012)/CNTRX(548)加计数输入复位端减计数输入SV:设定值(BCD0~9999)

N:编号(与CNT共用000~127)④加/减计数有进/借位时,输出ON一个计数脉冲周期。③计数器复位时,不论是加还是减计数,其PV均为0。①从ACP或SCP输入计数脉冲,可组成加或减计数器。⑤可逆计数器可作为循环计数器。功能CNTR(012)N

SVACPSCPR计数器达到设定值ON时,若再来一个计数脉冲,CNTROFF、且开始下一个循环的计数。②从ACP和SCP端同时输入计数脉冲,计数器不计数。编程时,先编加计数脉冲输入端,再编减计数脉冲输入端,后编复位端,最后编CNTR指令,如左图语句表所示。可逆计数器具有断电保持功能,当电源断电时,计数器的当前值保持不变。CNTRX(548)的功能与CNTR(012)相同,区别:设定值SV为十六制数,范围是0000~FFFF。7.4.3定时器/计数器复位指令功能将从编号D1开始到编号D2结束的定时器/计数器的所有定时或计数完成标志位复位,并将它们的当前值PV置为最大值9999。当0.00为ON时,T1~T4的定时完成标志置为OFF,同时它们的定时当前值置为最大值9999;当0.01为ON时,C1~C4的计数完成标志置为OFF,同时它们的计数当前值置为最大值9999。CNRX(547)的功能与CNR(545)相同,区别是它将定时器/计数器的PV值置为最大值FFFF。7.5数据传送指令1.单字传送指令MOV(021)/双字传送指令MOVL(498)功能当执行条件为ON时,将源通道S内容或传送到目的通道D中去。注意:当传送数据为0时,P_EQ置位;当传送数据的最高位(15位)为1时,P_N置位2.单字取反传送指令MVN(022)/双字取反传送指令MVNL(499)功能当执行条件为ON时,将S中的数据取反后传送到D中,如下图所示当0.00为ON时,执行MVN指令,将常数0196取反后(FE69)送至D0中。3.块传送指令-XFER(070)/@XFER(070)功能当执行条件为ON时,XFER将S、S+1、S+2、…、S+N-1中的内容对应传送到D、D+1、D+2、…、D+N-1中。S和D可在同一区域内,但两个数据块不能占用相同的通道。N必须是BCD码,S和S+N-1、D和D+N-1不能超出所在的区域。执行块传送指令时数据传送如下所示:

S

1234S+1

82ACS+2

90B6…S+N-1

0DFE

D

1234D+1

82ACD+2

90B6…D+N-1

0DFE…4.块设置指令-BSET(071)/@BSET(071)功能当执行条件为ON时,将S中的数据传送到从St到E的所有通道中去,如图所示。St和E必须在同一区域,且St≤E。LD0.00@MOV(21)#0100HR00TIM0000HR00ANDTIM0000OUT100.00LD0.01@BSET(71)#0050TIM0000TIM00000.01

@BSET(71)#0050

TIM0000

TIM0000TIM000100.00

@MOV(21)

#0100

HR000.00

TIM0000HR00使用BEST指令举例0.01

@BSET(71)#0050

TIM0000

TIM0000TIM0000100.00

@MOV(21)

#0100

HR000.00

TIM0000HR00①@BSET指令的第二、第三操作数都是TIM0000,即执行@BSET指令,只把数据传送到TIM0000中。功能②在0.01OFF、0.00OFF→ON时,执行一次MOV指令,将#0100传送到通道HR00中。③自此TIM0000以设定值10秒定时。④经过10秒,定时器TIM0000ON,线圈100.00ON。⑤当需要改变定时器TIM0000的当前值时,可通过执行@BSET指令来实现。

例如,在TIM0000的当前值为0089时,令0.01ON一次:0.01

@BSET(71)#0050

TIM0000

TIM0000TIM0000100.00

@MOV(21)

#0100

HR000.00

TIM0000HR00执行@BSET指令将0050传送到TIM0000中,TIM0000的当前值立即变为0050。自此,TIM0000的当前值从0050开始,每隔0.1秒减1,一直减到为0000为止。⑥由于HR00中的数据没有改变,在下一次定时器TIM000工作时,其定时值仍然是0100。★用BSET指令改变定时器的当前值。★用BSET指令也可以改变定时器的设定值。方法为:本例中,令BSET指令的第2、3操作数为HR00,执行BSET指令后,TIM0000的设定值就为0050了。5.单字数据交换指令XCHG(073)/双字数据交换指令XCGL(562)功能当执行条件为ON时,将E1、E2中的数据交换,如图所示。双字数据交换指令XCGL的两个操作数都为两个连续通道,其用法与单字数据交换指令XCHG相似。6.数据分配指令-DIST(080)/@DIST(080)功能当执行条件为ON时,将源数据传送到以目标通道为基址加偏移数后所指定的通道中,梯形图符号及操作数取值区域见图。D100中的内容为ABCD,D300中的内容为000A,当0.00由OFF→ON时,将D100的内容传送到D210中,D210是地址D200加上D300中的内容后生成的地址。通过改变D300中的内容,可以将D100的内容分配给任意的地址。7.数据抽取指令-COLL(081)/@COLL(081)COLL指令的梯形图符号及操作数取值区域S1:源基准通道 CIO,W,H,A,T,C,D,*D,@D,DR,IR间接寻址S2:偏移数(BCD) CIO,W,H,A,T,C,D,*D,@D,常数,DR,IR间接寻址D:目的通道 CIO,W,H,A,T,C,D,*D,@D,DR,IR间接寻址 @COLL(081)S1S2DCOLL(081)S1S2D功能当执行条件为ON时,将源通道为基址加偏移数后所指定通道的内容传送到目标通道中。梯形图符号及操作数取值区域见图。D110中的内容为ABCD,D200中的内容为000A,当0.00由OFF→ON时,将D110的内容传送到D300中,D110是地址D100加上D200中的内容后生成的地址。通过改变D200中的内容,可以从任意的地址中抽取数据。COLL指令的应用@COLL(081)D100D200D3000.00LD0.00@COLL(081)D100D200D300

ABCDS1:D100D101D110000AS2:D200偏移10个通道

ABCDD:D3008.位传送指令-MOVB(082)/@MOVB(082)功能:当执行条件为ON时,将S中指定的一位传送到D的指定位上,梯形图符号及操作数取值区域见图。控制字C的含义MOVB(082)#00FF#120112000.00LD0.00MOVB(082) #00FF #1201 1200MOVB指令的应用(a)C=#1201,执行MOVB指令后,将#00FF的第01位送到1200的第12位,如图所示。15S00000000001111111115D00000100000000000015C000001001000000001120112009.数字传送指令-MOVD(083)/@MOVD(083)功能当执行条件为ON时,将S中指定的数字位(4个二进制位)传送到D中指定的数字位,一次最多可以传送4个数字位。S中要传送的第一个数字位、传送的数字位数、D中接收被传送数字的第一个数字位由C指定,梯形图符号及操作数取值区域见图。

S中第一个要传送的数字位位号不用C数字3数字2数字1数字0

S中要传送的数字位数0→1位1→2位2→3位3→4位指定D中接收第一个数字的位号C=#0030S中第0位数字开始传送传送4位数字D中从第0位开始接收第一个数字

0

1

2

3D

0

1

2

3SC=#0023根据C、确定指令执行结果S中第3位数字开始传送传送3位数字D中从第0位开始接收第一个数字MOVD(83)

S#0023

D

0

1

2

3D

0

1

2

3S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位被传送的数字位要连续例如:1→2→3→0例如:3→0→1→2例如:2→3→0→1等C=#0123根据C、确定指令执行结果S中第3位数字开始传送传送3位数字D中从第1位开始接收第一个数字MOVD(83)

S#0123

D

0

1

2

3D

0

1

2

3S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位10.索引寄存器设置指令-MOVR(560)/@MOVR(560)功能当执行条件为ON时,将S指定的通道、触点的存储器地址传送到D指定的索引寄存器(IR0~IR15)中。当S为定时器/计数器时,MOVR是将定时器/计数器完成标志存储器的地址传送到索引寄存器中,若要获取定时器/计数器当前值存储器的地址,则需使用MOVRW指令。11.索引寄存器设置指令-MOVRW(561)/@MOVRW(561)功能当执行条件为ON时,将S指定的定时器/计数器当前值存储器的地址,传送到D指定的索引寄存器(IR0~IR15)中,梯形图符号及操作数取值区域见图

。0.00为ON时,将定时器T0当前值的存储器地址传送到索引寄存器IR1中7.6数据比较指令①数据比较指令:CMP(020)②块比较指令:BCMP(068)③表比较指令:TCMP(085)④区域比较指令:ZCP(088)CMP(020)CP1CP2CP1:比较字1CIO,W,H,A,T,C,D,*D,@D,#或DRCP2:比较字2CIO,W,H,A,T,C,D,*D,@D,#或DR标记 符号 CP1<CP2CP1=CP2CP1>CP2> P_GTOFFOFF ON= P_EQ OFF ON OFF< P_LT ON OFF OFF符号:无符号单字比较指令CMP(020)/无符号双字比较指令CMPL(060)功能当执行条件为ON时,执行CMP指令比较C1和C2的大小,比较结果反映到标志位当0.00为ON时,执行比较指令。若H9中的值大于W0通道中值,则P_GT为ON,100.00输出为ON;若H9中的值等于W0中值,则P_EQ为ON,100.01输出为ON;若H9中的值小于W0中值,则P_LT为ON,100.02输出为ON。注意:梯形图分支在语句表程序用了暂存继电器TR0。在定时器递减计时的特定时间产生输出信号。0.00为ON时,定时器开始定时,100秒后100.00为ON;200秒后100.01为ON;300秒后100.02为ON;500秒后100.03为ON。2.块比较指令-BCMP(068)/@BCMP(068)功能当执行条件为ON时,将比较数据CD与每一个区域进行比较,如果CD处在某一个区域中,比较结果通道R中对应位置1,否则该对应位置0比较块由CB,CB+1,CB+2,…,CB+31组成,分16个比较区域,每一个区域由两个通道定义,第一个为下限,第二个为上限,上限值应大于等于下限值。功能CB≤CD≤CB+1位00CB+2≤CD≤CB+301

CB+4≤CD≤CB+5

02CB+6≤CD≤CB+7 03

CB+8≤CD≤CB+9 04CB+10≤CD≤CB+1105CB+12≤CD≤CB+1306CB+14≤CD≤CB+1507CB+16≤CD≤CB+1708CB+18≤CD≤CB+1909CB+20≤CD≤CB+2110CB+22≤CD≤CB+2311CB+24≤CD≤CB+2512CB+26≤CD≤CB+2713CB+28≤CD≤CB+2914CB+30≤CD≤CB+3115区域比较与R位的对应关系如下当执行条件为ON时,将通道W0中的数据0210与D10开始的比较块通道中的数据进行区域比较,比较结果放在H05中的对应位上,图(b)给出了执行结果。H5.000H5.010H5.021H5.030H5.040H5.050H5.060H5.070H5.080H5.090H5.100H5.110H5.120H5.130H5.140H5.150比较数据W00210D10H5W0BCMP(068)0.00D110100D130200D150300D170400D190500D210600D230700D250800D270900D291000D311100D331200D351300D371400D391500D411600BCMP指令的应用1501D401401D381301D361201D341101D321001D300901D280801D260701D240601D220501D200401D180301D160201D140101D120000D10下限上限比较结果通道H05020103003.表比较指令-TCMP(085)/@TCMP(085)功能当执行条件为ON时,将数据CD与TB,TB+1,TB+2,…,TB+15中的数据进行比较,如果CD与这些通道中某一个的数据相同,则结果通道R中相应的位置1,否则置0。梯形图符号及操作数取值区域见图

当执行条件0.00为ON时,将通道W0中的数据0210与D10开始的16个通道中的数据进行比较,比较结果放在HR5中的对应位上,执行结果如图b。比较数据0210W01600D250210D241400D231300D221200D210210D201000D190900D180800D170210D160600D150500D140400D130210D120200D110100D10比较表0H5.151H5.140H5.130H5.120H5.111H5.100H5.090H5.080H5.071H5.060H5.050H5.040H5.031H5.020H5.010H5.00比较结果(b)执行结果。4.符号比较指令功能符号比较指令对两个数据进行比较,结果为真时,逻辑上则接通。这两个数据为通道里的内容或常数。数据既可以单字的也可以双字的,无符号的或带符号的,指令的逻辑连接方式分LD型、AND型和OR型,其梯形图符号如图所示。应用符号比较指令执行(D100≤D101≤D102)·OR·(D201D200≥D203D202)逻辑运算的梯形图。使用CMP指令和CMPL指令也可以完成上述运算,但要麻烦的多,这里应用符号比较指令,使程序相当简洁。5.时刻比较指令功能时刻比较指令对两个时刻操作数按要求进行比较,结果为真时,逻辑上则接通。指令的逻辑连接方式分LD型、AND型和OR型,其梯形图符号如图所示。其中符号包括“=DT”、“<>DT”、“<DT”、“>DT”、“<=DT”、“>=DT”等。控制数据C:当前时刻数值通道S1~S1+2:比较时刻数值通道S2~S2+2,其设定值的格式与S1~S1+2相同。时刻比较指令的应用,控制通道W0的内容为0038H,表示仅对时刻的“秒”、“分”和“小时”进行比较,时刻的“年”、“月”和“日”不比较。将CPU内部时钟当前时刻A351~A353与W100~W102中指定的内容(图中阴影部分)进行等值比较,当内部时钟到达设定时刻“13:00:00”时,100.01为ON。月年小时日秒分A351A352A35315870--13-0000W100W101W10215870时刻比较指令的应用功能当复位端R为OFF时,在SP端移位脉冲的作用下,IN端的数据被移入移位寄存器。

St

:移位开始通道

E:移位结束通道SFT(010)

StE

SFT(010)

StEINSPRIN:数据输入端R:复位端SP:移位脉冲输入端在移位脉冲的作用下,移位寄存器中的数据以位为单位依次向左移一位。1.移位寄存器指令-SFT(010)7.7数据移位指令相当于一个串行输入移位寄存器,将输入端IN的数据在一个连续的区域中(从St到E)逐位移位。

IN端数据…溢出StE

SFT(10)

StEINSPR●复位端R为ON时,St到E所有通道均复位为零,且移位指令不执行。★没有移位脉冲时不执行移位。★移位寄存器具有保持功能。●St-E是同一通道编号小到大相连的继电器;允许几个通道串联使用。1秒时钟脉冲P_1s作为移位信号,每一秒钟0.05位的数据移进W0一次。

LD0.05LDP_1sLD0.06SFT(010)W0W2INSPR0.05P_1s0.06SFT(010)W0W20.05…溢出W0W22.可逆移位寄存器指令-SFTR(084)/@SFTR(084)SFTR(84)CStE@SFTR(84)

CStE

SFTR(84)

C

StE

@SFTR(84)

CStE

C:控制通道St:移位开始通道

E:结束通道功能当执行条件为ON时,根据控制通道C的内容,在St~E通道内,执行左移或右移位操作。

SFTR(084)

C

St

E控制通道C的含义不使用15141312移位方向

1:左移(低→高)0:右移(高→低)数据输入移位脉冲输入复位1:St~E及CY清零0:根据C的状态移位LD0.00OUT20.12LD0.01OUT20.13LD0.02DIFU(13)21.00LD21.00OUT20.14LD0.03OUT20.15LD0.04SFTR(084)2012001201

DIFU(13)21.00移位方向数据输入移位脉冲20.1320.1221.000.020.010.00

SFTR(84)2012001201复位0.040.03

20.1520.14执行条件控制通道开始通道结束通道

DIFU(13)21.00移位方向数据输入移位脉冲20.1320.1221.000.020.010.00

SFTR(84)2012001201复位0.040.03

20.1520.14程序功能分析当0.04为ON时,开始执行移位操作。20的bit12~15的状态是由0.00~0.03控制的。若0.01ON,则20.13为1,即输入数据为1;若0.01OFF,则20.13为0,即输入数据为0。每当0.02OFF→ON时,20.14都会ON一个扫描周期,形成移位脉冲。若直接以0.02作为移位脉冲。因为当0.02为ON时,每个扫描周期都要执行一次移位,这将造成移位失控。若0.03ON,则20.15ON,1200~1201及CY位清0若0.03OFF→20.15OFF,此时根据20.12的状态执行移位操作。若20.12ON执行左移位:每当0.02OFF→ON时,1200~1201中的数据按位依次左移一位。20.13的状态进入1200.00,1201.15的数据进入CY。

1201.15~1201.00

1200.15~1200.00

CY←←20.13←3.字移位指令-WSFT(016)/@WSFT(016)

WSFT(016)

StE

WSFT(016)

StE

St:移位首通道

E:移位结束通道梯形图符号功能:当执行条件为ON时,将St~E中的内容以字为单位依次左移1位,0000进入St,E中数据丢失,如图

St…丢失←

E←←0000St+1←功能当0.00为ON时,执行WSFT指令,将1200、1201、1202中的数据按字移位,0000移进1200,1202中的字溢出。120212011200F0C234521029WSFT(016)120012020.00LD 0.00WSFT(016)12001202WSFT指令的应用120212011200345210290000溢出0000移位前移位后4.单字算术左移指令ASL(025)/双字算术左移指令ASLL(570)ASL指令的功能示意图功能当执行条件为ON时,执行指令将Ch中的数据以位为单依次左移1位。最高位移入CY,0进入最低位,如图

CYCh05.单字算术右移指令ASR(26)/双字算术右移指令ASRL(571)功能当执行条件为ON时,执行指令将Ch中的数据以位为单依次右移1位。最低位移入CY,0进入最高位,如图6.带CY单字循环左移指令ROL(27)/带CY双字循环左移指令ROLL(572)功能当执行条件为ON时,将Ch及CY中的数据以位为单依次循环左移位1位。如下图:

CYCh7.带CY单字循环右移指令-ROR(028)/带CY双字循环右移指令RORL(573)功能当执行条件为ON时,将Ch及CY中的数据以位为单依次循环右移位1位。如下图:8.1位数字左移指令-SLD(074)/@SLD(074)当执行条件为ON时,执行指令将St~E中的数据以数字(4位二进制)为单位依次左移位1位。如下图:

St…←0溢出←

E功能9.1位数字右移指令-SRD(075)/@SRD(075)当执行条件为ON时,执行指令将St~E中的数据以数字(4位二进制)为单位依次右移位1位。如下图:功能7.8数据转换指令1.BCD→BIN单字转换指令BIN/双字转换指令BINL当执行条件为ON时,将S中的BCD码转换成二进制数,并将结果存入R中。转换过程中,S的内容保持不变。功能2.BIN→BCD转换指令BCD(024)/双字转换指令BCDL(059)

当执行条件为ON时,将S中的二进制数转换成BCD码,并将结果存入R中。转换过程中,S的内容保持不变。功能3.4→16译码器指令-MLPX(076)/@MLPX(076)

当执行条件为ON时,MLPX对S中指定的数字进行译码,译码的结果存入R开始的通道中。最多可对4位数字同时译码。功能4.16→4编码器指令DMPX(077)/@DMPX(077)当执行条件为ON时,DMPX对源通道进行编码,编码结果存放在R中指定的数字位上。一次最多可对4个源通道进行编码。第一个源通道S的编码结果放入R中指定的开始存放数字位上,S+1通道的编码结果放入R中的紧邻开始存放数字位的高位数字上功能C的含义R中接收编码的第一个数字位固定为0C数字3数字2数字1数字0被编码的源通道数0→1个1→2个2→3个3→4个编码方法①由C确定被编码的通道数;②将被编码通道中为ON的最高位的位号编为一个十六进制数;③将该十六进制数送到R指定(由C指定)的数字位。5.ASCⅡ转换指令-ASC(086)/@ASC(086)ASII(086)SCR@ASC(086)S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论