您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 电气控制与plc应用技术5
第5章S7-200PLC的基本指令和程序设计教学内容:5.1基本指令5.2程序控制类指令5.3PLC的编程及应用5.1S7-200PLC的基本指令S7-200PLC的基本指令多用于开关量逻辑控制,本节着重介绍梯形图指令和语句表指令,并讨论基本指令的功能及编程方法。编程时,应注意各操作数的数据类型及数值范围。CPU对非法操作数将生成编译错误代码。5.1.1基本逻辑指令基本逻辑指令在语句表语言中是指对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。S7-200可编程序控制器使用一个逻辑堆栈来分析控制逻辑,用语句表编程时要根据这一堆栈逻辑进行组织程序,用相关指令来实现堆栈操作,用梯形图和功能框图时,程序员不必考虑主机的这一逻辑,这两种编程工具自动地插入必要的指令来处理各种堆栈逻辑操作。S7-200可编程序控制器的主机逻辑堆栈结构如表1所示。5.1.1基本逻辑指令逻辑堆栈结构是由九个堆栈存储器位组成的串联堆栈,栈顶是布尔型数据进出堆栈的必由之路。进栈时,数据由栈顶压入,堆栈中原来所存的数据被串行下移一格,如果原来STACK(堆叠)8中存有数据,则这数据被推出堆栈而自动丢失。出栈时,数据从栈顶被取出,所有数据串行上移一格,STACK8中随机地装入一个数值。表1逻辑堆栈结构堆栈结构名称说明S0STACK0第一级堆栈S1STACK1第二级堆栈S2STACK2第三级堆栈S3STACK3第四级堆栈S4STACK4第五级堆栈S5STACK5第六级堆栈S6STACK6第七级堆栈S7STACK7第八级堆栈S8STACK8第九级堆栈栈顶5.1.1基本逻辑指令栈顶STACK0在此逻辑堆栈的位运算中兼有累加器的作用,存放第一操作数。对于简单逻辑指令,通常是进栈操作和一些最简单的位运算,这些运算是栈顶与第二级堆栈的内容进行与、或、非等逻辑运算。对于复杂指令,可以是堆栈中的其他数据位直接进行运算,结果经栈顶弹出。基本逻辑指令主要包括标准触点指令、正负跳变指令、置位和复位指令等,主要是与位相关的输入输出及触点的简单连接。5.1.1基本逻辑指令1.标准触点指令梯形图中常开和常闭触点指令用触点表示,常闭触点中带有“/”符号。当存储器某地址的位值为1时,则与之对应的常开触点的位值也为1,表示常开触点闭合;而与之对应的常闭触点的位值为0,表示常开触点断开。语句表中的标准触点指令有LD、LDN、A、AN、O、ON。这些指令对存储器位在逻辑堆栈中进行操作。由于堆栈存储单元数的限制,语句表中A、O、AN、ON指令最多可以连用有限次。同样,梯形图中,最多一次串联或并联的触点数也有一定限制标准触点指令中,操作数的数据类型为BOOL型,操作数编址范围可以是:I、Q、M、SM、T、C、S、V、L。5.1.1基本逻辑指令(1)装入常开触点指令:LD表示一个逻辑梯级的编程开始。在梯形图中,每个从左母线开始的单一逻辑行、每个程序块的开始、功能方框的输入端都必须使用LD和LDN这两条指令。以常开触点开始时用LD指令,以常闭触点开始时则用LDN指令。本指令对各类内部编程元件的常开触点都适用。指令格式:LDbit;例:LDI0.2(2)装入常闭触点指令:LDN每个以常闭触点开始的逻辑行都使用这一指令,各类内部编程元件的常闭触点都适用。指令格式:LDNbit;例:LDNI0.25.1.1基本逻辑指令(3)与,串联常开触点指令:A表示触点的串联编程。串联一个常开触点。由于堆栈存储器数量限制,梯形图中,一次最多可有七个常开触点串联。指令格式:Abit;例:AM2.4(4)与非,串联常闭触点指令:AN即在梯形图中串联一个常闭触点。在一个逻辑行中,最多可以连用六次。指令格式:ANbit;例:ANM2.4(5)或,并联常开触点指令:O表示触点的并联编程。并联一个常开触点。在梯形图中,一次最多可以有七个触点相互并联。指令格式:Obit;例:OM2.65.1.1基本逻辑指令(6)非或,并联常闭触点指令:ON并联一个常闭触点。在梯形图中,一次最多可以连用六次。指令格式:ONbit;例:ONM2.6在语句表中,这几条指令的执行对逻辑堆栈的影响:CPU执行LD指令,首先,将指令操作数的位(bit)值装入堆栈栈顶,故也称栈装载指令。然后将堆栈其余各级内容下压一级,直至最后一级内容丢失。执行A指令,将操作数的位值“与”栈顶值,运算结果仍存入栈顶,堆栈没有压入和弹出操作。执行O指令,将操作数的位值“或”栈顶值,运算结果仍存入栈顶,堆栈没有压入和弹出操作。执行LDN、AN、ON指令,将操作数的位值取反后,再作相应的“装载”、“与”、“或”操作。5.1.1基本逻辑指令指令LDI0.1(假设I0.1=1)执行情况如表2所示。如果是LDN指令,则将操作数取反后再装入栈顶,其他操作相同。表2LDI0.1的执行名称执行前执行后说明STACK0S01将新值I0.1=1装入堆栈STACK1S1S0由S0下移一个单元得到STACK2S2S1由S1下移一个单元得到STACK3S3S2由S2下移一个单元得到STACK4S4S3由S3下移一个单元得到STACK5S5S4由S4下移一个单元得到STACK6S6S5由S5下移一个单元得到STACK7S7S6由S6下移一个单元得到STACK8S8S7由S7下移一个单元得到原值S0串行下移一个单元,其余以此类推。原S8自动丢失。5.1.1基本逻辑指令指令AI0.2(假设I0.2=0)执行情况如表3所示。如果是AN指令,则将操作数取反后再和栈顶值相与,结果放回栈顶。即:1*1=1→S0表3指令AI0.2的执行名称执行前执行后说明STACK010执行前栈顶值为1。执行时用栈顶值和指令操作数(I0.2的值为0)进行与运算,结果放回栈顶。即:S0*I0.2=1*0=0→S0STACK1S1S1STACK2S2S2STACK3S3S3STACK4S4S4STACK5S5S5STACK6S6S6STACK7S7S7STACK8S8S82、输出指令表示继电器线圈编程(包括内部继电器线圈、输出继电器线圈)。当执行输出指令时,把栈顶值“写”到由操作数地址指定的存储器的对应位中。梯形图中,“()”表示线圈。当执行输出指令时,“能流”到,则线圈被激励。输出映像寄存器或其他存储器的相应位为“1”,反之为“0”。语句表中,输出指令“=”把栈顶值复制到由操作数地址指定的存储器位。指令执行前后堆栈各级栈值不变。指令格式:=bit;例:=Q2.65.1.1基本逻辑指令5.1.1基本逻辑指令程序实例:仔细比较不同编程工具的区别与联系。LDI0.0//装入常开触点OI0.1//或常开触点AI0.2//与常开触点=Q0.0//输出触点,//如果本梯级中将I0.1的触点改//为Q0.0的常开触点,则成为电//机起动停止控制环节的梯形图LDNI0.0//装入常闭触点ONI0.0//或常闭触点ANI0.2//与常闭触点=Q0.1///输出触点LDI0.0//OI0.1//AI0.2//NOT//取非,即输出反相=Q0.3//图9标准触点LAD和STL例5.1.1基本逻辑指令3.正/负跳变指令用于检测脉冲的正跳变(上升沿)或负跳变(下降沿),利用跳变让能流接通一个扫描周期,即可以产生一个宽度为一个扫描周期脉冲,常用此脉冲触发内部继电器线圈。梯形图中,正/负跳变指令在梯形图中以触点形式使用。语句表中:(1)正跳变指令:EU一旦发现栈顶的值出现正跳变,该栈顶的值就被置“1”,并持续一个扫描周期的时间。指令格式:EU(无操作数)5.1.1基本逻辑指令(2)负跳变指令:ED一旦发现栈顶的值出现负跳变,该栈顶的值就被置“1”,并持续一个扫描周期的时间。指令格式:ED(无操作数)正、负跳变触点指令编程举例如图10所示。图10正、负跳变触点指令编程一个扫描周期长度5.1.1基本逻辑指令4.置位和复位指令置位即置1,复位即置0。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。这两条指令在使用时需指明三点:操作性质、开始位和位的数量。各操作数类型及范围如表4所示。表4置位和复位指令操作数类型及范围操作数范围类型位bitI,Q,M,SM,T,C,V,S,LBOOL型数量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LDBYTE型(最大255)5.1.1基本逻辑指令(1)置位指令:S将位存储区的指定位(位bit)开始的N个同类存储器位置位。指令格式:Sbit,N;例:SQ0.0,1(2)复位指令:R将位存储区的指定位(位bit)开始的N个同类存储器位复位。当用复位指令时,如果是对定时器T位或计数器C位进行复位,则定时器或计数器位被复位同时,定时器或计数器的当前值被清零。指令格式:Rbit,N;例:RQ0.2,35.1.1基本逻辑指令在语句表(STL)中,当栈顶值为1时,才能执行置位指令S或复位指令R。置位后即使栈顶值变为0,仍保持置位;复位后即使栈顶值变为0,仍保持复位。可见这两条指令均有“记忆”功能。置位和复位指令应用编程序举例如图11所示。图11置位复位指令5.1.2立即操作指令立即指令允许对输入和输出点进行快速和直接存取。当用立即指令读取输入点的状态时,相应的输入映像寄存器中的值并未发生更新;用立即指令访问输出点时,访问的同时,相应的输出寄存器的内容也被刷新。只有输入继电器I和输出继电器Q可以使用立即指令。5.1.2立即操作指令1.立即触点指令执行立即触点指令时,直接读取物理输入点的值,输入映像寄存器内容不更新,指令操作数仅限于输入物理点的值。梯形图中,立即触点指令用常开和常闭立即触点表示。触点中的“I”表示立即之意。在语句表中,每个标准触点指令的后面加“I”(表示立即之意)。常开立即触点编程由LDI、AI、OI指令描述,常闭立即触点编程由LDNI、ANI、ONI指令描述。以LDI指令为例,执行时,把物理输入点的位值立即装入栈顶。指令格式:LDIbit例:LDII0.25.1.2立即操作指令2.立即输出指令用立即指令访问输出点时,把栈顶值立即复制到指令所指定的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。指令格式:=Ibit例:=IQ0.2立即I/O指令不受PLC循环扫描工作方式的约束,允许对输入、输出物理点进行直接存取,执行立即触点指令时,CPU绕过输入映像寄存器,直接读取物理输入点的状态作为程序执行期间的数据依据,输入映像寄存器不作刷新处理;执行立即输出指令时,则将结果同时立即复制到物理输出点和相应的输出映像寄存器,而不是等待程序执行阶段结束后,转入输出刷新阶段时才把结果传送到物理输出点。从而加快了输入输出响应速度。必须注意:立即I/O指令比一般指令访问输入输出映像寄存器占用CPU的时间要长,因而不能盲目的使用,否则,会加长扫描周期的时间,反而对系统造成不利的影响。用立即置位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也被刷新。指令格式:SIbit,N;例:SIQ0.0,23.立即置位指令5.1.2立即操作指令5.1.2立即操作指令4.立即复位指令用立即复位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即复位,同时,相应的输出映像寄存器的内容也被刷新。各操作数类型及范围如表5所示。指令格式:RIbit,N;例:RIQ0.0,1表5立即置位和立即复位指令操作数类型及范围操作数范围类型位bitQBOOL型数量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD,常数BYTE型(最大128)5.1.2立即操作指令LDI0.0=Q0.0=IQ0.1//立即输出触点SIQ0.2,1//从Q0.2开始的1个触点被立即置1LDII0.0//立即输入触点指令=Q0.3//输出触点,非立即图12立即指令程序图13波形图5.1.3复
本文标题:电气控制与plc应用技术5
链接地址:https://www.777doc.com/doc-129646 .html