前言Electrical Control and PLC Technology
电气控制及PLC技术结合了自动控制技术、计算机技术、通信技术,是工业自动化技术的核心。本书在阐述电气控制及PLC技术基本原理的基础上,从应用的角度出发,充分反映电气控制及PLC技术在工业生产过程控制方面的广泛应用及其发展趋势。全书分电气控制技术和PLC控制技术两大部分,与现有教材相比,有自己的独特特点。首先,基础知识讲解透彻,介绍了常用低压电器元件、电气控制的基本规律、常用典型电气控制线路分析和电气控制线路的设计; 可编程控制器的基础知识、系统配置、指令系统等。其次,以机电控制为主线,给出了大量实例,并配有详细的程序,内容也是由浅入深,使读者逐步掌握PLC应用系统的设计及编程方法,弥补了国内相关书籍在程序设计方法介绍方面的不足,对于学习可编程控制器的具体应用有很大帮助,同时为配合教学需要和培养学生实践能力,本书着重基本设计技能的基本训练,在基本设计方法上展开撰写。此外,每一章后面都配有与该章学习目标紧密相关的思考题和习题,便于学生巩固所学内容。近年来,德国西门子(SIEMENS)公司的SIMATICS7系列的PLC在我国已广泛应用于各行各业的生产过程的自动控制中。本书以西门子S7200 PLC为例来编写,既注重基础知识,也注重工程应用,同时也系统地阐述了PLC控制系统的设计方法和技巧,介绍了应用系统的设计与开发,并提供了许多实验和典型的设计实例,加强了实际应用的设计指导。编者从事电气控制及PLC技术课程教学多年,密切关注国内外学科最新进展,力求基本概念突出、内容新颖简化、理论与实际结合密切。本书系统性、实用性强,内容丰富,简明易懂,可作为大专院校自动化、电气工程、电气技术、机电一体化、机械设计制造和自动化等相关专业的教材,也可供工程技术人员参考和培训班使用。由于编者水平所限,错误和不妥之处在所难免,敬请专家、同仁、读者批评指正。作者2016年10月
第5章Electrical Control and PLC Technology
数据处理、运算指令
PLC产生初期主要用于在工业控制中以逻辑控制来代替继电器控制。随着计算机技术与PLC技术的不断发展与融合,PLC增加了数据处理功能,使其在工业应用中功能更强,应用范围更广。在当今自动化程度越来越高的加工生产线中,仅仅具备基本指令的功能是远远不够的,还应该具备数据处理和运算的功能。5.1数据处理指令数据处理指令涉及对数据的非数值运算操作,主要包括传送、移位、字节交换、循环移位和填充等指令。5.1.1数据传送指令该类指令用来完成各存储单元之间一个或者多个数据的传送。可分为单一传送指令和块传送指令。1. 字节、字、双字、实数单个数据传送指令MOV数据传送指令MOV用来传送单个的字节、字、双字、实数。指令格式及功能如表51所示。
表51单个数据传送指令MOV指令格式
LAD
STLMOVB IN,OUTMOVW IN,OUTMOVD IN,OUTMOVR IN,OUT
操作数及数据类型
IN: VB,IB,QB,MB,SB,SMB,LB,AC及常量;
OUT: VB,IB,QB,MB,SB,SMB,LB,ACIN: VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC及常量;
OUT: VW,T,C,IW,QW,SW,MW,SMW,LW,AC,AQWIN: VD,ID,QD,MD,SD,SMD,LD,HC,AC及常量;
OUT: VD,ID,QD,MD,SD,SMD,LD,ACIN: VD,ID,QD,MD,SD,SMD,LD,AC及常量;
OUT: VD,ID,QD,MD,SD,SMD,LD,AC数据类型: 字节数据类型: 字、整数数据类型: 双字、双整数数据类型: 实数
功能使能输入有效时,即EN=1时,将一个输入IN的字节、字整数、双字双整数或实数送到OUT指定的存储器输出。在传送过程中不改变数据的大小。传送后,输入存储器IN中的内容不变
【提示】使ENO=0,即使能输出断开的错误条件是: SM4.3运行时间、0006间接寻址错误。【例51】单个数据传送指令MOV程序举例。1 将数据255传送到VB1里面。程序如图51所示。
图51MOV_B指令(例51题图)
设计分析:当I0.1接通时,MOV_B指令将数据255传给VB1,传送后,VB1=255,此后,即使I0.1断开,VB1里的数据保持255不变。2 将变量存储器VW10中的内容送到VW100中。程序如图52所示。
图52MOV_W指令例51题图
3 在I0.1控制开关导通时,将VD100中的双字数据传送到VD200中。程序如图53所示。
图53MOV_DW指令例51题图
4 在I0.1控制开关导通时,将常数3.14传送到双字单元VD200中。程序如图54所示。
图54MOV_R指令例51题图
5 定时器及计数器当前值的读取。程序如图55所示。
图55定时器及计数器当前值的读取例51题图
6 定时器计数器设定值的间接指定。程序如图56所示。
图56定时器设定值的间接指定例51题图
【提示】因定时器及计数器的数据类型都为整数型,因此使用传送指令时一定要用MOV_W。【提示】功能指令涉及的数据类型多,编程时应保证操作数在合法范围内。S7200 PLC不支持完全数据类型检查。操作数的数据类型应与指令标识符相匹配。2. 字节、字、双字、实数数据块传送指令BLKMOV该类指令可用来进行一次多个最多255数据的传送。数据块传送指令将从输入地址IN开始的N个数据传送到输出地址OUT开始的N个单元中,N的范围为1~255,N的数据类型为字节。指令格式及功能如表52所示。
表52数据传送指令BLKMOV指令格式
LAD
STLBMBIN,OUTBMWIN,OUTBMDIN,OUT续表
操作数及数据类型
IN: VB,IB,QB,MB,SB,SMB,LB;
OUT: VB,IB,QB,MB,SB,SMB,LB;
数据类型: 字节IN: VW,IW,QW,MW,SW,SMW,LW,T,C,AIW;
OUT: VW,IW,QW,MW,SW,SMW,LW,T,C,AQW;
数据类型: 字INOUT: VD,ID,QD,MD,SD,SMD,LD;
数据类型: 双字
N: VB,IB,QB,MB,SB,SMB,LB,AC及常量;
数据类型: 字节;
数据范围: 1~255
功能使能输入有效时,即EN=1时,把从输入IN开始的N个字节字、双字传送到以输出OUT开始的N个字节字、双字中
【提示】使ENO=0的错误条件: 0006间接寻址错误、0091操作数超出范围。【例52】块传送指令BLKMOV程序举例。将变量存储器VB1开始的3个字节VB1~VB3中的数据移至VB11开始的3个字节中VB11~VB13。程序如图57所示。
图57例52题图
5.1.2字节交换、存储器填充与字节立即读写指令1. 字节交换与存储器填充指令字节交换指令用来交换输入字IN的最高位字节和最低位字节,交换结果仍存在输入端IN指定的地址中。存储器填充指令在EN端口执行条件存在时,用IN指定的输入值填充从OUT指定的存储单元开始的N个字的存储空间。多用于字数据存储区填充及对空间的清零。指令格式如表53所示。
表53字节交换指令使用格式及功能
LADSTL功能及说明
SWAP IN功能: 使能输入EN有效时,将输入字IN的高字节与低字节交换,结果仍放在IN中;
IN: VW,IW,QW,MW,SW,SMW,T,C,LW,AC;
数据类型: 字续表
LADSTL功能及说明
FILL IN,OUT,N功能: 将字型输入数据从OUT开始的N个字存储单元中;
IN: VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,常数,*VD,*AC,*LD;
OUT: VW,IW,QW,MW,SW,SMW,LW,T,C,AQW,*VD,*AC,*LD;
N: VB,IB,QB,MB,SB,SMB,LB,AC,常数,*VD,*AC,*LD;
数据类型: IN、OUT为字型,N为字节型,取值范围为1~255的整数
【提示】ENO=0的错误条件: 0006间接寻址错误、SM4.3运行时间。【例53】字节交换和存储器填充指令应用举例,如图58、图59和图510所示。1 字节交换指令
图58字节交换指令例53题图
分析:指令执行之前VW50中的字为D6 C3; 指令执行之后VW50中的字为C3 D6。2 存储器填充指令
图59VM200~VM219中全部清0(例53题图)
分析:指令执行之后,VW200~VW219中全部清0。另外,如果将VW100开始的256个字节全部清0。N怎么给?
图510VM100开始的256个字节全部清0例53题图
分析:在I0.1控制开关导通时,将VW100开始的256个字节全部清0。2. 字节立即读写指令字节立即读指令MOVBIR在EN端口执行条件存在时,读取实际物理输入端IN给出的1个字节的数值,并将结果写入OUT所指定的存储单元,但输入映像寄存器未更新。字节立即写指令MOVBIW在EN端口执行条件存在时,从输入IN所指定的存储单元中读取1个字节的数值并写入实际输出OUT端的物理输出点,同时刷新对应的输出映像寄存器。指令格式及功能如表54所示。
表54字节立即读写指令格式
LADSTL功能及说明
BIR IN,OUT功能: 字节立即读
IN: IB
OUT: VB,IB,QB,MB,SB,SMB,LB,AC
数据类型: 字节
BIW IN,OUT功能: 字节立即写
IN: VB,IB,QB,MB,SB,SMB,LB,AC,常量
OUT: QB
数据类型: 字节
【提示】使ENO=0的错误条件: 0006间接寻址错误、SM4.3运行时间。注意字节立即读写指令无法存取扩展模块。5.1.3移位指令移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两类移位指令按移位数据的长度又分字节型、字型、双字型3种。常用于顺序动作的控制。1. 左、右移位指令左、右移位数据存储单元与SM1.1溢出端相连,移出位被放到特殊标志存储器SM1.1位。移位数据存储单元的另一端补0。移位指令格式见表55。移位指令使用时应注意以下几点。1 被移位的数据在字节操作时是无符号的; 对于字和双字操作,当使用有符号数据类型时,符号位也将被移动。2 在移位时,存放被移位数据的编程元件的移出端与特殊继电器SM1.1相连,移出位送SM1.1,另一端补0。3 移位次数N为字节型数据,它与移位数据的长度有关。如N小于实际的数据长度,则执行N次移位;如N大于数据长度,则执行移位的次数等于实际数据长度的位数。4 左、右移位指令对特殊继电器的影响: 结果为零置位SM1.0,结果溢出置位SM1.1。5 运行时刻出现不正常状态则置位SM4.3,ENO=0。
表55移位指令格式及功能
LADSTLSLBOUT,N
SRBOUT,NSLW OUT,N
SRW OUT,NSLDOUT,N
SRDOUT,N
操作数及数据类型
IN: VB,IB,QB,MB,SB,SMB,LB,AC及常量;
OUT: VB,IB,QB,MB,SB,SMB,LB,AC;
数据类型: 字节IN: VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC及常量;
OUT: VW,IW,QW,MW,SW,SMW,LW,T,C,AC;
数据类型: 字IN: VD,ID,QD,MD,SD,SMD,LD,AC,HC及常量;
OUT: VD,ID,QD,MD,SD,SMD,LD,AC;
数据类型: 双字
N: VB,IB,QB,MB,SB,SMB,LB,AC及常量;
数据类型: 字节;
数据范围: N数据类型B、W、D对应的位数
功能SHL: 字节、字、双字左移N位; SHR: 字节、字、双字右移N位
1 左移位指令使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后右端补0,将结果输出到OUT所指定的存储单元中。如果移位次数大于0,则最后一次移出位保存在溢出存储器位SM1.1。如果移位结果为0,则零标志位SM1.0置1。2 右移位指令使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1。如果移位结果为0,零标志位SM1.0置1。3 使ENO=0的错误条件: 0006间接寻址错误、SM4.3运行时间。【例54】移位指令程序应用举例。将AC0字数据的高8位右移到低8位,输出给QB0。程序如图511所示。
图511例54题图
【提示】在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。如:
MOVB IN,OUT
SLB OUT,N
2. 循环左、右移位指令循环移位将移位数据存储单元的首尾相连,同时又与溢出标志SM1.1连接,SM1.1用来存放被移出的位。指令格式见表56。
表56循环左、右移位指令格式及功能
LAD
STLRLBOUT,N
RRBOUT,NRLW OUT,N
RRW OUT,NRLDOUT,N
RRDOUT,N
操作数及数据类型
IN: VB,IB,QB,MB,SB,SMB,LB,AC及常量;
OUT: VB,IB,QB,MB,SB,SMB,LB,AC;
数据类型: 字节IN: VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC及常量;
OUT: VW,IW,QW,MW,SW,SMW,LW,T,C,AC;
数据类型: 字IN: VD,ID,QD,MD,SD,SMD,LD,AC,HC及常量;
OUT: VD,ID,QD,MD,SD,SMD,LD,AC;
数据类型: 双字
N: VB,IB,QB,MB,SB,SMB,LB,AC及常量;
数据类型: 字节
功能ROL: 字节、字、双字循环左移N位; ROR: 字节、字、双字循环右移N位
1 循环左移位指令ROL使能输入有效时,将IN输入无符号数字节、字或双字循环左移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。2 循环右移位指令ROR使能输入有效时,将IN输入无符号数字节、字或双字循环右移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。【提示】移位次数N数据类型B、W、D时,如果操作数是字节,当移位次数N8时,则在执行循环移位前,先对N进行模8操作N除以8后取余数,其结果0~7为实际移动位数; 如果操作数是字,当移位次数N16时,则在执行循环移位前,先对N进行模16操作N除以16后取余数,其结果0~15为实际移动位数; 如果操作数是双字,当移位次数N32时,则在执行循环移位前,先对N进行模32操作N除以32后取余数,其结果0~31为实际移动位数。使ENO=0的错误条件: 0006间接寻址错误,SM4.3运行时间。【例55】移位指令程序应用举例。将AC0中的字循环右移2位,将VW200中的字左移3位。程序及运行结果如图512所示。
图512例55题图
【例56】移位指令程序应用举例。1 用I0.0控制接在Q0.0~Q0.7上的8个彩灯循环移位,从左到右以0.5s的速度依次点亮,保持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮。设计分析:8个彩灯循环移位控制,可以用字节的循环移位指令。根据控制要求,首先应置彩灯的初始状态为QB0=1,即左边第一盏灯亮; 接着灯从左到右以0.5s的速度依次点亮,即要求字节QB0中的1用循环左移位指令每0.5s移动一位,因此须在ROLB指令的EN端接一个0.5s的移位脉冲用定时器指令实现。梯形图程序和语句表程序如图513所示。
图513例56题图1
2 用I0.0控制16个彩灯循环移位,从左到右以2s的速度依次2个为一组点亮; 保持任意时刻只有2个灯亮,到达最右端后,再依次点亮,按下I0.1后,彩灯循环停止。设计分析:16个彩灯分别接Q0.0~Q1.7,可以用字的循环移位指令,进行循环移位控制。根据控制要求,首先应置彩灯的初始状态为QW0=3,即左边第1、2盏灯亮; 接着灯从左到右以2s的速度依次点亮,即要求字节QW0中的11用循环左移位指令每2s移动两位,因此须在ROLW指令的EN端接一个2s的移位脉冲。梯形图程序和语句表程序如图514所示。
图514例56题图2
3. 移位寄存器指令移位寄存器指令是可以指定移位寄存器的长度和移位方向的移位指令,其指令格式如表57所示。在梯形图中,EN为使能输入端,连接移位脉冲信号,每次使能有效时,整个移位寄存器移动1位。
表57移位寄存器指令指令格式
LADSTL说明
SHRB DATA,S_BIT,NDATA和S_BIT: I,Q,M,SM,T,C,V,S,L,数据类型为BOOL变量;
N: VB,IB,QB,MB,SB,SMB,LB,AC及常量,数据类型为字节
移位寄存器指令SHRB将DATA数值移入移位寄存器,并进行移位。DATA为数据输入端,连接移入移位寄存器的二进制数值,执行指令时将该位的值移入寄存器。移位寄存器是由S_BIT和N决定的。S_BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向,移位寄存器的最大长度为64位,N为正值表示左移位,输入数据DATA移入移位寄存器的最低位S_BIT,并移出移位寄存器的最高位。移出的数据被放置在溢出内存位SM1.1中。N为负值表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位S_BIT。移出的数据被放置在溢出内存位SM1.1中。【提示】使ENO=0的错误条件: 0006间接地址、0091操作数超出范围、0092计数区错误。移位指令影响特殊内部标志位: SM1.1为移出的位值设置溢出位。【例57】移位寄存器指令程序举例。在输入触点I0.1的上升沿,从VB100的低4位自定义移位寄存器由低向高移位,I0.2移入最低位,其梯形图、时序图如图515所示。
图515例57题图
设计分析:建立移位寄存器的位范围为V100.0~V100.3,长度N= 4。在I0.1的上升沿,移位寄存器由低位向高位移位,最高位移至SM1.1,最低位由I0.2移入。移位寄存器指令对特殊继电器影响为结果为零置位SM1.0、溢出置位SM1.1; 运行时刻出现不正常状态置位SM4.3,ENO=0。【例58】用PLC实现模拟喷泉的控制。用灯L1~L12分别代表喷泉的12个喷水注。
图516喷泉控制示意图例58题图
控制要求: 按下起动按钮后,隔灯闪烁,L1亮0.5s后灭,接着L2亮0.5s后灭,接着L3亮0.5s后灭,接着L4亮0.5s后灭,接着L5、L9亮0.5s后灭,接着L6、L10亮0.5s后灭,接着L7、L11亮0.5s后灭,接着L8、L12亮0.5s后灭,L1亮0.5s后灭,如此循环下去,直至按下停止按钮,如图516所示。设计分析:1 IO分配输入输出起动按钮: I0.0;L1: Q0.0;L5、L9: Q0.4;停止按钮: I0.1;L2: Q0.1;L6、L10: Q0.5;L3: Q0.2;L7、L11: Q0.6;L4: Q0.3;L8、L12: Q0.72 梯形图程序利用移位寄存器实现模拟控制。移位寄存器的位与输出对应关系设置: 根据喷泉模拟控制的8位输出Q0.0~Q0.7,须指定一个8位的移位寄存器M10.1~M11.0,移位寄存器的SBIT位为M10.1,并且移位寄存器的每一位对应一个输出。在移位寄存器指令中,EN连接移位脉冲,每来一个脉冲的上升沿,移位寄存器移动一位。移位寄存器应0.5s移一位,因此需要设计一个0.5s产生一个脉冲的脉冲发生器由T38构成,如图517所示。
|