1、PLC原理及应用成都理工大学工程技术学院成都理工大学工程技术学院 目录目录n6.1项目七 广告灯光控制 第六部分:实例化教学(功能指令使用)目录目录教学要求1、掌握比较指令使用方法2、掌握传送指令使用方法3、掌握移位寄存器的使用方法4、了解移位寄存器对特定工作过程的编程方法5、了解PLC实现广告灯光控制的工作原理6.1 项目七 广告灯光控制目录目录1.了解使用场合了解使用场合2.清楚数据类型清楚数据类型3.能流的概念能流的概念4.标志位标志位5.使能信号的掌控使能信号的掌控如何学习功能指令如何学习功能指令目录目录5.1 PLC的基本逻辑指令及举例 比较指令q作用:比较指令是将两个数值或字符串按
2、指定条件进行比较,条件成立时,触点就闭合。所以比较指令实际上也是一种位指令。q类型:n字节比较、整数比较、双字整数比较、实数比较和字符串比较。n数值比较指令的运算符有:=、=、和等6种,字符串比较指令有=和两种。n对比较指令可进行LD、A和O编程。q比较指令属于“位指令”q具体指令(细节见表5-6)目录目录6.1.1 PLC的基本逻辑指令及举例 比较指令q使用举例目录目录6.1.2传送类指令 1.单个传送(1)MOVB,字节传送指令(2)BIR,立即读字节传送指令(3)BIW,立即写字节传送指令(4)MOVW,字传送指令(5)MOVD,双字传送指令(6)MOVR,实数传送指令 2.块传送(1)
3、BMB,字节块传送指令(2)BMW,字块传送指令(3)BMD,双字块传送指令 目录目录1.单一传送(1)MOVB,字节传送指令n使能输入有效时,把一个单字节无符号整数数据由IN传送到OUT所指的字节存储单元。nIN的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。nOUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。n指令格式:MOVBIN1,OUTn例:MOVBVB0,QB0目录目录n(2)BIR,立即读字节传送指令n使能输入有效时,立即读取单字节物理输入区数据IN,并传送到OUT所指的字节存储单元。不考虑扫描
4、周期!nIN的寻址范围:IBnOUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。n指令格式:BIRIN1,OUTn例:BIRIB0,VB10目录目录n(3)BIW,立即写字节传送指令n使能输入有效时,立即将IN指定的单字节数据写入物理输出区中OUT指定的字节。不考虑扫描周期!nIN的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。nOUT的寻址范围:QBn指令格式:BIWIN,OUTn例:BIW VB10,QB0目录目录n(4)MOVW,字传送指令n使能输入有效时,把一个字长的有符号整数数据由IN传送到OUT所
5、指的字存储单元。nIN的寻址范围:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、*VD、*AC、*LD和常数。nOUT的寻址范围:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、*VD、*AC、*LD。n指令格式:MOVWIN,OUT目录目录n(5)MOVD,双字传送指令n使能输入有效时,把一个双字长的有符号整数数据由IN传送到OUT所指的字存储单元。nIN的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、HC、*VD、*AC、*LD和常数。nOUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、HC、*VD、*AC、*LD。n指令格式:MOVD
6、IN,OUT目录目录n(6)MOVR,实数传送指令n使能输入有效时,把一个双字长的有符号实数数据由IN传送到OUT所指的字存储单元。nIN的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、HC、*VD、*AC、*LD和常数。nOUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、HC、*VD、*AC、*LD。n指令格式:MOVRIN,OUT目录目录2.块传送 块传送指令可用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字块。BMB、BMW、BMD三条指令中N的寻址范围都是:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*
7、LD和常数。指令格式:BMB IN,OUT,N。目录目录6.1.3移位指令 n1.左移和右移 n2.循环左移、循环右移 n3.移位寄存器目录目录n 指令功能:将输入数据IN左移或右移N位后,把结果送到OUT。n 左移和右移指令的特点:n1.被移位的数据是无符号的;n2.在移位时,存放被移位数据的编程元件的移出端与SM1.1连接,移出位进入SM1.1溢出,另一端自动补0;n3.移位次数N与移位数据的长度有关,当N小于实际的数据长度时,执行N次移位,当N大于实际数据长度时,则执行移位的次数等于实际数据长度的位数。n4.移位次数N为字节型数据。1.左移和右移 目录目录n(1)字节左移和字节右移nSL
8、B和SRB,字节左移和字节右移。n使能输入有效时,把字节型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字节存储单元。n最大实际可移位次数为8。n指令格式:SLB OUT,Nn(梯形图中,OUT与IN为同一个存储单元。)1.左移和右移 目录目录n以第一条指令为例,指令执行情况如表4.16所示。表表4.16指令指令SLB MB0,2执行结果执行结果目录目录n(2)字左移和字右移nSLW和SRW,字左移和字右移。n指令盒与字节移位比较,只有名称变为SHR_W和SHR_W。n使能输入有效时,把字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字存储单元。n最大实际可移位次数为16
9、。n指令格式:SLW OUT,N(字左移)nSRW OUT,N(字右移)n例:SLW MW0,2nSRW LW0,3n以第二条指令为例,指令执行情况如表4.17所示。目录目录SRW LW0,3目录目录n(3)双字左移和双字右移nSLD和SRD,双字左移和双字右移。n指令盒与字节移位比较,只有名称变为SHL_DW和SHR_DW,其他部分完全相同。n使能输入有效时,把双字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的双字存储单元。n最大实际可移位次数为32。n指令格式:SLDOUT,N(双字左移)nSRDOUT,N(双字右移)n例:SLDMD0,2nSRDLD0,3目录目录n 指令功能
10、:将输入数据IN循环左移或循环右移N位后,把结果送到OUT。n 循环指令的特点:n1.被移位的数据是无符号的;n2.在移位时,存放被移位数据的编程元件的移出端即与另一端连接,又与SM1.1连接,移出位在被移到另一端的同时,也进入SM1.1溢出;SM1.1始终存放最后一次被移出的位。n3.移位次数N与移位数据的长度有关,当N小于实际的数据长度时,执行N次移位,当N大于实际数据长度时,则执行移位的次数为N除以实际数据长度的余数。n4.移位次数N为字节型数据。2.循环左移、循环右移 目录目录2.循环左移、循环右移 循环移位的类型:n(1)字节循环左移RLB和字节循环右移RRB n(2)字循环左移RL
11、W和字循环右移RRW n(3)双字循环左移RLD和双字循环右移RRD n指令格式:RLB OUT,N目录目录表表4.18指令指令 RRW LW0,3 执行结果执行结果目录目录nSHRB,寄存器移位指令。n该指令在梯形图中有3个数据输入端:nDATA为移位寄存器的数据输入端;nS_BIT为移位寄存器的最低位端;nN指定移位寄存器的长度。n每次使能输入有效时,整个移位寄存器移动1位。n移位特点:n移位寄存器长度在指令中指定,没有字节型、字型、双字型之分。可指定的最大长度为64位,可正也可负。N0,正向从低位向高位移位;N0,反向从高位向低位移位。3.移位寄存器指令目录目录n最高为MSB的计算方法:
12、nMSB=(N 1+(S_BIT的位号)/8;n例:S_BIT=V33.4,N=14,则nMSB=(14-1+4)/8=17/8=商2余1。n即:最高位的字节号为33+2=35,n最高位的位号为1,最高位为V35.1。n则此移位寄存器的组成为:nV33.4V33.7,V34.0V34.7,V35.0V35.1 共14位。目录目录表表4.19指令指令SHRB执行结果执行结果目录目录6.1.4字节交换指令 nSWAP,字节交换指令。n使能输入有效时,将字型输入数据IN的高字节和低字节进行交换。又称为半字交换指令。n指令格式:SWAP IN(字节交换)n例:SWAP VW10n以第本指令为例,指令执
13、行情况如表4.20所示。目录目录6.1.5填充指令 nFILL,存储器填充指令。n使能输入有效时,用字型输入数据IN填充从输出OUT所指的单元开始的N个字存储单元。n填充指令只对字型数据进行处理,N值为字节型,可取从1255的整数。指令的执行不影响的特殊存储器位。n指令格式:FILL IN,OUT,N(填充指令)n例:FILL 10,VW100,12n本条指令的执行结果是:将数据10填充到从VW100到VW122共12个字存储单元。目录目录6.1.6 程序控制指令 1.跳转及标号指令q作用q指令n跳转指令JMP(Jump to Label):当输入端有效时,使程序跳转到标号处执行。n标号指令L
14、BL(Label):指令跳转的目标标号。操作数n为0255。q使用说明:n跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一个子程序或同一个中断程序。不能在不同的程序块中互相跳转。n执行跳转后,被跳过程序段中的各元器件的状态:qQ、M、S、C等元器件的位保持跳转前的状态;q计数器C停止计数,当前值存储器保持跳转前的计数值;q对定时器来说,因刷新方式不同而工作状态不同。目录目录6.1.6 程序控制指令 1.跳转及标号指令q使用举例目录目录1.循环指令q作用q指令n循环开始指令FOR:用来标记循环体的开始。n循环结束指令NEXT:用来标记循环体的结束。无操作数。nFOR和N
15、EXT之间的程序段称为循环体,每执行一次循环体,当前计数值增1,并且将其结果同终值作比较,如果大于终值,则终止循环。6.1.6 程序控制指令 目录目录1.循环指令q参数使用说明n循环指令盒中有三个数据输入端:当前循环计数INDX(index value or current loop count)、循环初值INIT(starting value)和循环终值FINAL(ending value)。在使用时必须给FOR指令指定当前循环计数(INDX)、初值(INIT)和终值(FINAL)。nINDX操作数:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、*VD、*AC和*CD;属INT型
16、。nINIT和FINAL操作数:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、常数、*VD、*AC和*CD;属INT型。q指令使用说明nFOR、NEXT指令必须成对使用。nFOR和NEXT可以循环嵌套,嵌套最多为8层,但各个嵌套之间不可有交叉现象。n每次使能输入(EN)重新有效时,指令将自动复位各参数。n初值大于终值时,循环体不被执行。n在使用循环指令时,要注意在循环体中对INDX的控制,这一点非常重要。6.1.6 程序控制指令 目录目录1.循环指令q使用举例6.1.6 程序控制指令 目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录目录