S7200PLC的指令系统.ppt
102页电气控制与电气控制与PLCPLC应用应用第6章 S7-200 PLC的指令系统 学习目标:◆ 熟练掌握梯形图和语句表的编程方法,熟练掌握梯形图和语句表的编程方法,掌握基本指令和功能指令中的常用指令,掌握基本指令和功能指令中的常用指令,了解和会用其他指令通过对本章的学习,了解和会用其他指令通过对本章的学习,做到可以根据需要编制出结构较复杂的控做到可以根据需要编制出结构较复杂的控制程序第6章 S7-200 PLC的指令系统 教学内容: 6.1 S7-200 PLC编程基础编程基础 6.2 S7-200 PLC的基本指令及编程方法的基本指令及编程方法 6.3 S7-200 PLC的功能指令及编程方法的功能指令及编程方法第6章 S7-200 PLC的指令系统u S7-200系列系列PLC主机中有主机中有两类指令集两类指令集::IEC1131—3指令集;指令集;SIMATIC指令集 u IEC1131—3指令集指令集是国际电工委员会(是国际电工委员会(IEC))制定的制定的PLC国际标准国际标准1131—3Programming Language(编程语言编程语言)中推荐的标准语言,只能用梯中推荐的标准语言,只能用梯形图(形图(LAD))和功能块图(和功能块图(FBD))编程语言编程,编程语言编程,通常指令执行时间较长。
通常指令执行时间较长u SIMATIC指令集指令集是西门子公司为是西门子公司为S7-200 PLC设计的编程语言,该指令通常执行时间短,而且可设计的编程语言,该指令通常执行时间短,而且可以用梯形图(以用梯形图(LAD)、)、功能块图(功能块图(FBD))和语句表和语句表((STL))三种编程语言三种编程语言6.1.1 编程语言u SIMATIC指令集是西门子公司专为指令集是西门子公司专为S7-200 PLC设计的编程语言该指令集中,大多数指设计的编程语言该指令集中,大多数指令也符合令也符合IEC1131—3标准SIMATIC指令集不指令集不支持系统完全数据类型检查支持系统完全数据类型检查u 使用使用SIMATIC指令集,可以用梯形图指令集,可以用梯形图((LAD)、)、功能块图(功能块图(FBD))和语句表和语句表((STL))编程语言编程编程语言编程返回返回6.1 S7-200 PLC6.1 S7-200 PLC编程基础编程基础1. 梯形图(LAD)编程语言图5-1 梯形图(LAD)◆ 梯形图(梯形图(LAD))是与电气控制电路相呼应的图形语言。
是与电气控制电路相呼应的图形语言它沿用了继电器、触头、串并联等术语和类似的图形符号,它沿用了继电器、触头、串并联等术语和类似的图形符号,并简化了符号,还增加了一些功能性的指令梯形图按自并简化了符号,还增加了一些功能性的指令梯形图按自上而下,从左到右的顺序排列,最左边的竖线称为起始母上而下,从左到右的顺序排列,最左边的竖线称为起始母线也叫左母线,然后按一定的控制要求和规则连接各个接线也叫左母线,然后按一定的控制要求和规则连接各个接点,最后以继电器线圈(或再接右母线)结束,称为一逻点,最后以继电器线圈(或再接右母线)结束,称为一逻辑行或叫一辑行或叫一“梯级梯级”通常一个梯形图中有若干逻辑行通常一个梯形图中有若干逻辑行(梯级),形似梯子,如图(梯级),形似梯子,如图5-1所示 右母线省略右母线省略 2. 功能块图(FBD)编程语言图图5-25-2 功能块图(功能块图(FBDFBD))对应图对应图5-15-1中的中的常闭触点常闭触点◆ 功功能能块块图图((FBD))类类似似于于普普通通逻逻辑辑功功能能图图,,它它沿沿用用了了半半导导体体逻逻辑辑电电路路的的逻逻辑辑框框图图的的表表达达方方式式。
一一般般用用一一种种功功能能方方框框表表示示一一种种特特定定的的功功能能,,框框图图内内的的符符号号表表达达了了该该功功能能块块图图的的功功能能功功能能块块图图通通常常有有若若干干个个输输入入端端和和若若干干个个输输出出端端输输入入端端是是功功能能块块图图的的条件,输出端是功能块图的运算结果条件,输出端是功能块图的运算结果3. 语句表(语句表(STL)编程语言)编程语言n 语句表(STL)是用助记符来表达PLC的各种控制功能的它类似于计算机的汇编语言,但比汇编语言更直观易懂,编程简单,因此也是应用很广泛的一种编程语言这种编程语言可使用简易编程器编程,但比较抽象,一般与梯形图语言配合使用,互为补充图5-3 语句表(STL)n 通常梯形图(LAD)程序、功能块图(FBD)程序、语句表(STL)程序可有条件的方便地转换(以网络为单位转换)但是,语句表(STL)可以编写梯形图(LAD)或功能块图(FBD)无法实现的程序 nSIMATIC S7-200系列PLC数据类型可以是布尔型、整型和实型(浮点数)实数采用32位单精度数来表示,其数值有较大的表示范围:正数为~+3.402823E+38;负数为-1.175495E~38~-3.402823E+38。
6.1.2 数据类型及范围n在编程中经常会使用常数常数数据长度可为字节、字和双字,在机器内部的数据都以二进制存储,但常数的书写可以用二进制、十进制、十六进制、ASCII码或浮点数(实数)等多种形式几种常数形式分别如表所示常数常数6.1.3 主要编程元件PLC在其系统软件的管理下,将用户程序储存区划分出若干个区,并将这些区域赋予不同的功能,由此组成了各种内部器件,即PLC的编程元件这些编程元件沿用了传统继电器控制线路中的元件的名称,并根据其功能,分别称之为输入继电器、输出继电器、辅助继电器、变量继电器、定时器、计数器、数据继电器等等编程元件的种类和数量因厂家、不同系列、不同型号不同而不同,编程元件的种类和数量越多,其功能越强返回返回一、主要编程元件一)编程元件的基本特征一)编程元件的基本特征 ØPLC编程元件的物理实质:编程元件的物理实质:电子电路及存储器电子电路及存储器并不真正存并不真正存在这些物理器件与连线,所以称为在这些物理器件与连线,所以称为“软元件软元件与与软接线软接线” ,,与此对应的只是存储器中的某些存储单元与此对应的只是存储器中的某些存储单元Ø在在PLC中中用用逻辑与、逻辑或、逻辑非等逻辑与、逻辑或、逻辑非等逻辑运算来处理各种逻辑运算来处理各种继电器的连接继电器的连接;;Ø编编程程元元件件和和继继电电接接触触器器的的元元件件类类似似、、具具有有线线圈圈和和常常开开、、常常闭闭触点;触点;Ø当当线线圈圈被被选选中中((通通电电))时时,,常常开开触触点点闭闭合合,,常常闭闭触触点点断断开开,,当线圈当线圈失去选中件时,常闭接通,常开断开失去选中件时,常闭接通,常开断开;; Ø可可编编程程序序控控制制器器的的编编程程元元件件可可以以有有无无数数多多个个常常开开、、常常闭闭触触点点 。
1 10 0ONONOFFOFFPLC内部内部存储单元与存储单元与继电器的继电器的对应关系对应关系编程元件的基本特征编程元件与继电接触器元件比较表相同点不同点都具有线圈和常开常闭触点,触点的状态随着线圈的状态而变化,即当线圈被选中(通电)时,常开触点闭合,常闭触点断开,当线圈失去选中条件时,常闭接通,常开断开 编程元件被选中,只是代表这个元件的存储单元置1,失去选中条件只是这个元件的存储单元置0;编程元件可以无限次地访问,可编程控制器的编程元件可以有无数多个常开、常闭触点nS7-200将编程元件统一归为存储器单元,存储单元按字节进行编址,无论所寻址的是何种数据类型,通常应指出它在所在存储区域和在区域内的字节地址每个单元都有惟一的地址,地址用名称和编号两部分组成二)主要编程元件1、输入继电器、输入继电器IØ输输入入继继电电器器::作作用用是是接接受受并并存存储储输输入入到到PLC中中的的现现场场的的控控制制按按钮钮、、行行程程开开关关的的开开关关信信号号,,以以及及各各种种传传感感器器等等的的输输入入信信号号特特点点::其其状状态态由由外外部部信信号号决决定定,,而而不不能能由由用用户户程序控制程序控制。
Ø本本质质就就是是PLC的的存存储储系系统统中中的的输输入入映映像像寄寄存存器器,,一一个个输输入入触触点点对对应应于于某某一一位位输输入入映映像像寄寄存存器器,,与与对对应应的的输输入入端端子相连Ø在在使使用用中中不不必必考考虑虑接接点点的的容容量量,,即即在在编编程程时时,,可可以以通通过过使使用用输输入入继继电电器器的的触触点点,,无无限限制制地地使使用用输输入入继继电电器器的的状状态Ø基基本本输输入入输输出出单单元元继继电电器器按按字字节节编编号号,,一一般般采采用用“字字节节.位位”的方式表示的方式表示,如:,如:2、输出继电器、输出继电器QØ输输出出继继电电器器::具具有有一一对对物物理理接接点点,,与与PLCPLC的的一一个个输输出出端端子子相相连连,,可可以以直直接接驱驱动动负负载载特特点点::其其状状态态只只能能由由用用户户程序决定,而不可能由外部信号控制程序决定,而不可能由外部信号控制Ø本本质质就就是是PLCPLC的的存存储储系系统统中中的的输输入入映映像像寄寄存存器器,,一一个个输输入入触触点点对对应应于于某某一一位位输输入入映映像像寄寄存存器器,,与与对对应应的的输输入入端端子相连。
子相连Ø在在使使用用中中不不必必考考虑虑接接点点的的容容量量,,即即在在编编程程时时,,可可以以通通过过使使用用输输入入继继电电器器的的触触点点,,无无限限制制地地使使用用输输入入继继电电器器的的状状态Ø基基本本输输入入输输出出单单元元继继电电器器按按字字节节编编号号,,一一般般采采用用““字字节节. .位位””的方式表示,如:的方式表示,如:3、辅助继电器、辅助继电器M l它它与与外外界界没没有有联联系系,,仅仅作作运运算算的的中中间间结结果果使使用用,,有有时时也也称称作作内内部部继继电电器器或或中中间间继继电电器器,,它它不不能能直直接接驱驱动动外外部部负负载载,,外外部部负负载载的的驱驱动动要要通通过过输输出出继继电电器器进进行行这这类类辅辅助助继继电电器器的线圈与输出继电器一样的线圈与输出继电器一样有无数的电子常开和常闭触点有无数的电子常开和常闭触点l本本质质就就是是PLCPLC的的存存储储系系统统中中的的一一个个基基本本单单元元,,它它可可以以由由所所有有编编程程元元件件((包包括括自自己己))的的触触点点驱驱动动借借助助于于辅辅助助继继电电器器,,可可以以根根据据控控制制要要求求,,在在输输入入和和输输出出之之间间建建立立复复杂杂的的控控制制逻逻辑和连锁关系。
辑和连锁关系Ø按按字字节节编编号号,,一一般般采采用用““字字节节. .位位””的的方方式式表表示示,,但但是是也也可可以以字字节节、、字字双双字字为为单单位位,,用用于于存存储储数数据据,,不不过过建建议议在在存存储数据时,采用变量寄存器储数据时,采用变量寄存器V Vl可以无限制地使用可以无限制地使用4、特殊继电器、特殊继电器SM 用用来来存存储储系系统统的的状状态态变变量量及及有有关关的的控控制制参参数数和和信信息息它它是是用用户户程程序序与与系系统统程程序序之之间间的的界界面面,,用用户户可可以以通通过过特特殊殊继继电电器器来来沟沟通通PLCPLC与与被被控控对对象象之之间间的的信信息息,,PLCPLC通通过过特特殊殊继继电电器器为为用用户户提提供供一一些些特特殊殊的的控控制制功功能能和和系系统统信信息息,,用用户户也也可以将对操作的特殊要求通过特殊继电器通知可以将对操作的特殊要求通过特殊继电器通知PLCPLC例例如如可可以以读读取取程程序序运运行行过过程程中中的的设设备备状状态态和和运运算算结结果果信信息息,,利利用用这这些些信信息息实实现现一一些些控控制制动动作作用用户户也也可可以以通通过过对对某某些些特特殊殊继继电电器器位位的的直直接接设设置置,,使使设设备备实实现现某某些些功功能能。
P110P1105、变量寄存器、变量寄存器V S7-200S7-200中中有有大大量量变变量量寄寄存存器器,,用用于于模模拟拟量量控控制制、、数数据据运运算算、、参参数数设设置置及及存存放放程程序序执执行行过过程程中中控控制制逻逻辑辑操操作作的的中中间间结结果变变量量寄寄存存器器可可以以以以位位为为单单位位使使用用,,也也可可以以字字节节、、字字双双字字为单位为单位使用6、定时器、定时器T 定定时时器器相相当当于于继继电电器器系系统统中中的的时时间间继继电电器器,,可可在在程程序序中中用于用于延时控制延时控制S7-200的的CPU22X系系列列的的定定时时器器数数量量有有256个个,,T0~~T255 定定 时时 器器 精精 度度 有有 1ms(( 4个个 )) 、、 10ms(( 16个个 )) 、、100ms((236个)个)可可以以分分为为3种种类类型型::接接通通延延时时定定时时器器TON;;断断开开延延时时型型定时器定时器TOF;保持接通延时定时器;保持接通延时定时器TONR计计数数器器用用来来对对输输入入脉脉冲冲的的个个数数进进行行累累计计,,实实现现计计数数值值使使用用时时要要先先预预置置计计数数的的设设定定值值,,当当计计数数器器触触发发后后,,计计数数器器开开始始累累积积计计数数输输入入端端的的脉脉冲冲前前沿沿的的次次数数,,当当达达到到设设定定值值时时,,计计数器触点动作。
数器触点动作 S7-200S7-200的的CPU22XCPU22X系系列列的的计计数数器器数数量量有有256256个个,,编编号号0 0~~255255每每个个计计数数器器都都有有一一个个1616位位的的当当前前值值寄寄存存器器及及1 1个个状状态态位位C-C-bitbit7、计数器、计数器 C8、高速计数器、高速计数器 HSC普普通通计计数数器器计计数数频频率率受受到到扫扫描描周周期期的的限限制制,,高高速速计计数数不不受扫描周期的限制,为受扫描周期的限制,为3232位的计数器位的计数器9、状态(顺序控制)继电器、状态(顺序控制)继电器 S 状状态态器器S是是构构成成状状态态转转移移图图的的重重要要软软元元件件,,它它与与步步进进控控制制指指令令配配合合使使用用,,可可以以在在小小型型PLC上上实实现现复复杂杂的的控控制制功功能10、累加器、累加器AC 累累加加器器用用来来暂暂存存数数据据,,它它可可以以用用来来在在子子程程序序和和父父程程序序之之间间传传递递参参数数和和数数据据、、也也可可以以用用来来存存放放运运算算数数据据、、中中间间数数据和结果据和结果共有共有4个个32位的累加器:位的累加器:AC0~~AC3。
累累加加器器存存取取数数据据的的长长度度取取决决于于所所使使用用的的质质量量,,它它支支持持字字节节、、字字、、双双字字的的存存取取,,以以字字或或字字节节存存取取时时,,访访问问的的是是低低16位或低位或低8位11、局部变量存储器、局部变量存储器Ll用于存储局部变量用于存储局部变量l共共有有6464个个,,其其中中6060个个可可以以用用作作暂暂时时存存储储器器或或给给子子程程序序传传递递参数l与与数数据据存存储储器器V V的的区区别别::数数据据存存储储器器用用于于存存储储全全局局变变量量,,即即它它可可以以被被任任何何一一个个程程序序读读取取;;局局部部存存储储器器的的内内容容只只是是局局部有效的部有效的l支持字节、字、双字的存取支持字节、字、双字的存取12、模拟量输入寄存器、模拟量输入寄存器AIW、模拟量输出寄存器、模拟量输出寄存器AQWl用于模拟量的输入输出用于模拟量的输入输出l长度为长度为16位,因此要用偶数字节地址来存取这些数据位,因此要用偶数字节地址来存取这些数据nPLC的存储器分为程序区、系统区、数据区Ø 程序区程序区用于存放用户程序,存储器为用于存放用户程序,存储器为EEPROMEEPROM。
Ø 系统区系统区用于存放有关用于存放有关PLCPLC配置结构的参数,如配置结构的参数,如PLCPLC主机及扩主机及扩展模块的展模块的I/OI/O配置和编址、配置配置和编址、配置PLCPLC站地址,设置保护口令、停站地址,设置保护口令、停电记忆保持区、软件滤波功能等,存储器为电记忆保持区、软件滤波功能等,存储器为EEPROMEEPROMØ 数据区数据区是是S7-200 CPUS7-200 CPU提供的存储器的特定区域它包括输提供的存储器的特定区域它包括输入映象寄存器(入映象寄存器(I I)、)、输出映像寄存器(输出映像寄存器(Q Q)、)、变量存储器变量存储器((V V)、)、内部标志位存储器(内部标志位存储器(M M)、)、顺序控制继电器存储器顺序控制继电器存储器((S S)、)、特殊标志位存储器(特殊标志位存储器(SMSM)、)、局部存储器(局部存储器(L L)、)、定时器定时器存储器(存储器(T T)、)、计数器存储器(计数器存储器(C C)、)、模拟量输入映像寄存器模拟量输入映像寄存器((AIAI)、)、模拟量输出映像寄存器(模拟量输出映像寄存器(AQAQ)、)、累加器(累加器(ACAC)、)、高速高速计数器(计数器(HCHC)。
存储器为存储器为EEPROMEEPROM和和RAMRAM返回返回二、存储区域1. 数据区存储器的地址表示格式Ø (1)(1)位地址格式位地址格式 数据区存储器区域的某一位的地址格式为:数据区存储器区域的某一位的地址格式为:必须指定存储器区域标识符必须指定存储器区域标识符A A、、字节地址字节地址x x及位号及位号y y例表示表示图图5-45-4中黑色标记的位地址中黑色标记的位地址I I是变量存储器的区域标识符,是变量存储器的区域标识符,4 4是字节地址,是字节地址,5 5是位号,在字节地址是位号,在字节地址4 4与位号与位号5 5之间用点号之间用点号““.”.”隔开 u 存储器是由许多存储单元组成,每个存储单元存储器是由许多存储单元组成,每个存储单元都有惟一的地址,可以依据存储器地址来存取数都有惟一的地址,可以依据存储器地址来存取数据数据区存储器地址的表示格式有位、字节、据数据区存储器地址的表示格式有位、字节、字、双字地址格式字、双字地址格式 图5-4 位寻址格式MSBMSB表示最高位表示最高位 LSBLSB表示最低位表示最低位Ø (2)(2)字节、字、双字地址格式字节、字、双字地址格式 数据区存储器区域的字节、字、双字地址格式为:数据区存储器区域的字节、字、双字地址格式为:ATxATx。
必须指定区域标识符必须指定区域标识符A A、、数据长度数据长度T T以及该字节、字或双字以及该字节、字或双字的起始字节地址的起始字节地址x x图5-55-5中,用中,用VB100VB100、、VW100VW100、、VD100VD100分别分别表示字节、字、双字的地址表示字节、字、双字的地址VW100VW100由由VB100VB100、、VB101VB101两个字两个字节组成;节组成;VD100VD100由由VB100~VB103VB100~VB103四个组成四个组成 图5-5字节、字、双字寻址格式Ø (3)(3)其他地址格式其他地址格式 数据区存储器区域中,还包括定时器存储器(数据区存储器区域中,还包括定时器存储器(T T)、)、计数计数器存储器(器存储器(C C)、)、累加器(累加器(ACAC)、)、高速计数器(高速计数器(HCHC))等,它等,它们是模拟相关的电器元件的它们的地址格式为:们是模拟相关的电器元件的它们的地址格式为:AyAy 由区域标识符由区域标识符A A和元件号和元件号y y组成,例组成,例T24T24表示某定时器的地表示某定时器的地址,址,T T是定时器的区域标识符,是定时器的区域标识符,2424是定时器号,同时是定时器号,同时T24T24又可又可表示此定时器的当前值。
表示此定时器的当前值 6.1.4 寻址方式 1. 立即寻址立即寻址 n 指令中如何提供操作数或操作数地址,称为寻址方式n S7-200 PLC的寻址方式有:立即寻址、直接寻址、间接寻址 Ø 立即寻址方式是立即寻址方式是,,指令直接给出操作数,操作数紧跟着操指令直接给出操作数,操作数紧跟着操作码,在取出指令的同时也就取出了操作数,立即有操作数作码,在取出指令的同时也就取出了操作数,立即有操作数可用,所以称为立即操作数或立即寻址可用,所以称为立即操作数或立即寻址Ø CPUCPU以二进制方式存储所有常数指令中可用十进制、十以二进制方式存储所有常数指令中可用十进制、十六进制、六进制、ASCIIASCII码或浮点数形式来表示表示格式举例如下:码或浮点数形式来表示表示格式举例如下:十进制常数:十进制常数:30112 30112 十六进制常数:十六进制常数:16#42F16#42FASCIIASCII常数:常数:‘INPUTINPUT’ 实数或浮点常数:实数或浮点常数:+1.1E-10 +1.1E-10 二进制常数:二进制常数:2#01012#0101 11101110 # #为常数的进制格式说明符为常数的进制格式说明符 返回返回2. 直接寻址直接寻址 Ø 直接寻址方式是,指令直接使用存储器或寄存器的元件直接寻址方式是,指令直接使用存储器或寄存器的元件名称和地址编号,根据这个地址就可以立即找到该数据。
名称和地址编号,根据这个地址就可以立即找到该数据操作数的地址应按规定的格式表示指令中,数据类型应操作数的地址应按规定的格式表示指令中,数据类型应与指令标识符相匹配与指令标识符相匹配Ø不同数据长度的寻址指令举例如下:不同数据长度的寻址指令举例如下:位寻址:位寻址:字节寻址:字节寻址:ORB VB33ORB VB33,,LB21LB21字寻址:字寻址:MOVW AC0MOVW AC0,,AQW2AQW2双字寻址:双字寻址:MOVD AC1MOVD AC1,,VD200VD200 返回返回3. 间接寻址间接寻址 Ø 间接寻址方式是,指令给出了存放操作数地址的存储单间接寻址方式是,指令给出了存放操作数地址的存储单元的地址(也称地址指针)元的地址(也称地址指针) Ø 可作为地址指针的存储器有:可作为地址指针的存储器有:V V、、L L、、ACAC((1 1∼ ∼3 3))Ø 可间接寻址的存储器区域有:可间接寻址的存储器区域有:I I、、Q Q、、V V、、M M、、S S、、T T((仅当仅当前值)、前值)、C C((仅当前值)仅当前值)Ø 对独立的位(对独立的位(BITBIT))值或模拟量值不能进行间接寻址。
值或模拟量值不能进行间接寻址1)(1)建立指针建立指针 间接寻址前,应先建立指针指针为双字长,是所要间接寻址前,应先建立指针指针为双字长,是所要访问的存储单元(最大为双字型访问的存储单元(最大为双字型3232位)的物理地址只能位)的物理地址只能使用变量存储器(使用变量存储器(V V)、)、局部存储器(局部存储器(L L))或累加器(或累加器(AC1AC1、、AC2AC2、、AC3AC3))作为指针,作为指针,AC0AC0不能用作间接寻址的指针不能用作间接寻址的指针 将将所所要要访访问问的的存存储储器器单单元元的的地地址址装装入入用用来来作作为为指指针针的的存存储储器器单单元元或或寄寄存存器器,,装装入入的的是是地地址址而而不不是是数数据据本本身身,,格格式式如如下:下:MOVD &VB200MOVD &VB200,,AC1AC1“& &”为为地地址址符符号号,,与与单单元元组组合合表表示示所所对对应应单单元元的的3232位位物物理理地址,地址,VB200VB200只是一个直接地址编码,并不是它的物理地址只是一个直接地址编码,并不是它的物理地址。
指指令令中中的的第第二二个个地地址址数数据据长长度度必必须须是是双双字字长长,,如如::ACAC、、LDLD和和VDVD这这里里地地址址“VB200VB200”要要用用3232位位表表示示,,因因而而必必须须使使用用双双字传送指令(字传送指令(MOVDMOVD) 指令中的指令中的&VB200&VB200如果改为如果改为&VW200&VW200或或&VD200&VD200效果完全相同效果完全相同因为具体的寻址范围取决于随后的间接存取指令类型因为具体的寻址范围取决于随后的间接存取指令类型 (2)(2)间接存取间接存取 依依据据指指针针中中的的内内容容值值作作为为地地址址存存取取数数据据使使用用指指针针可可存存取字节、字、双字型的数据,取字节、字、双字型的数据, 下面两条指令是建立指针和间接存取的应用方法:下面两条指令是建立指针和间接存取的应用方法: MOVD &VB200 MOVD &VB200,,AC1AC1 MOVW *AC1 MOVW *AC1,,AC0AC0 执行指令执行指令MOVW*AC1MOVW*AC1,,AC0AC0,把指针中的内容值(,把指针中的内容值(VB200VB200))作为地址,由于指令作为地址,由于指令MOVWMOVW的标识符是的标识符是“W”“W”,因而指令操作,因而指令操作数的数据长度应是字型,把地址数的数据长度应是字型,把地址VB200VB200、、VB201VB201处处2 2个字节的个字节的内容(内容(12341234)传送到)传送到AC0AC0。
指针处的值(即指针处的值(即12341234),为字型),为字型数据,如图数据,如图5-75-7所示,操作数(所示,操作数(AC1AC1)前面的)前面的“*”“*”号表示该号表示该操作数(操作数(AC1AC1)为指针 返回返回图5-7 间接寻址 把VB200的地址送入AC1建立指针 把指针处的值送到AC0 本指令是本指令是MOVWMOVW,为字型长度,则,为字型长度,则AC0AC0的高的高1616位空闲未用;位空闲未用;若是若是MOVDMOVD双字型指令,则将双字型指令,则将VB200VB200∼ ∼VB203VB203的内容的内容( (即即12345678)12345678)送到送到AC0AC0 这里给出的是起始字节地址,而并不表示数据长度这里给出的是起始字节地址,而并不表示数据长度(由随后间接存取指令类型决定)为字型所以,如(由随后间接存取指令类型决定)为字型所以,如果改为果改为&VB200&VB200或或&VD200&VD200效果完全相同效果完全相同(3)(3)修改指针修改指针 存存取取连连续续地地址址的的存存储储单单元元中中数数据据时时,,通通过过修修改改指指针针可可以以非常方便地存取数据。
非常方便地存取数据 在在S7-200 S7-200 PLCPLC中中,,指指针针的的内内容容不不会会自自动动改改变变,,可可用用自自增增或或自自减减等等指指令令修修改改指指针针值值这这样样就就可可连连续续地地存存取取存存储储单单元元中的数据中的数据 图图5-85-8中,用两次自增指令中,用两次自增指令INCD AC1INCD AC1,将,将AC1AC1指针中的值指针中的值((VB200VB200)修改为)修改为VB202VB202后,指针即指向新地址后,指针即指向新地址VB202VB202执行指令指令MOVW*AC1MOVW*AC1,,AC0AC0,这样就可在变量存储器(,这样就可在变量存储器(V V)中连续地)中连续地存取数据,将存取数据,将VB202VB202、、VB203VB203二个字节的数据(二个字节的数据(56785678)传送到)传送到AC0AC0 修改指针值时,应根据存取的数据长度来进行调整若对修改指针值时,应根据存取的数据长度来进行调整若对字节进行存取,指针值加字节进行存取,指针值加1 1(或减(或减1 1);若对字进行存取、或);若对字进行存取、或对定时器、计数器的当前值进行存取,指针值加对定时器、计数器的当前值进行存取,指针值加2 2(或减(或减2 2););若对双字进行存取,则指针值加若对双字进行存取,则指针值加4 4(或减(或减4 4)。
图)图5-85-8中,存中,存取的数据长度是字型数据,因而指针值加取的数据长度是字型数据,因而指针值加2 2 图5-8 修改指针 把指针增加两次,指向下一个字 把AC1(VW202)所指向的字数值送到AC0 6.1.5 用户程序结构 n 用户程序可分为三个程序分区:主程序、子程序(可选)和中断程序(可选)Ø主主程程序序((OB1OB1))::是是用用户户程程序序的的主主体体CPUCPU在在每每个个扫扫描描周周期都要执行一次主程序指令期都要执行一次主程序指令Ø子子程程序序::是是程程序序的的可可选选部部分分,,只只有有当当主主程程序序调调用用时时,,才才能能够够执执行行合合理理使使用用子子程程序序,,可可以以优优化化程程序序结结构构,,减减少少扫扫描时间Ø中断程序:是程序的可选部分,只有当中断事件发生时,中断程序:是程序的可选部分,只有当中断事件发生时,才能够执行中断程序可在扫描周期的任意点执行才能够执行中断程序可在扫描周期的任意点执行 返回返回6.2 S7-200 PLC的基本指令及编程方法 nS7-200 PLC的基本指令用于开关量逻辑控制,本质上是对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。
n编程时,应注意各操作数的数据类型及数值范围CPU对非法操作数将生成编译错误代码有关S7-200 CPU模块操作数的范围如表5-5所示n本节着重介绍梯形图指令和语句表指令,并讨论基本指令的功能及编程方法返回返回6.2.1 位操作指令1. 标准触点指令 n 标准触点指令有LD、LDN、A、AN、O、ON、NOT、=指令(语句表)这些指令对存储器位在逻辑堆栈中进行操作n 由于堆栈存储单元数的限制,语句表中A、O、AN、ON指令最多可以连用的次数是有限的同样,梯形图中,最多一次串联或并联的触点数也有一定限制,功能框图中AND和OR指令盒中输入的个数也不能超过这个范围 n 标准触点指令中如果有操作数,则为BOOL型,操作数的编址范围可以是:I、Q、M、SM、T、C、S、V、L 返回返回(1)装入常开指令:LD Ø 在在梯梯形形图图中中,,每每每每个个个个从从从从左左左左母母母母线线线线开开开开始始始始的的的的单单单单一一一一逻逻逻逻辑辑辑辑行行行行、、、、每每每每个个个个程程程程序序序序块块块块((((逻逻逻逻辑辑辑辑梯梯梯梯级级级级))))的的的的开开开开始始始始、、、、指指指指令令令令盒盒盒盒的的的的输输输输入入入入端端端端都都都都必必必必须须须须使使使使用用用用LDLDLDLD或或或或LDNLDNLDNLDN这这这这两两两两条条条条指指指指令令令令。
以以常常开开触触点点开开始始时时用用LDLD指指令令,,以以常常闭闭触触点点开开始始时时则则用用LDNLDN指指令令本本指指令令对对各各类类内内部部编编程程元元件件的的常常开开触触点都适用点都适用指令格式:指令格式:LD bit;; 例:例: ((2)装入)装入常闭指令常闭指令::LDN Ø 每每个个以以常常闭闭触触点点开开始始的的逻逻辑辑行行都都使使用用这这一一指指令令,,各各类类内内部部编程元件的常闭触点都适用编程元件的常闭触点都适用指令格式:指令格式:LDN bit;; 例:例: LDN I0.2 (3)与常开指令:A Ø即即串串联联一一个个常常开开触触点点由由于于堆堆栈栈存存储储器器数数量量的的限限制制,,梯梯形形图中,一次最多可以有七个常开触点串联图中,一次最多可以有七个常开触点串联指令格式:指令格式:A bit;; 例:例: A M2.4 ((4))与常闭与常闭指令:指令:AN Ø即即在在梯梯形形图图中中串串联联一一个个常常闭闭触触点点。
在在一一个个逻逻辑辑行行中中,,最最多多可以连用六次可以连用六次指令格式:指令格式:AN bit;; 例:例: AN M2.4 ((5))或常开或常开指令:指令:O O Ø即即并并联联一一个个常常开开触触点点在在梯梯形形图图中中,,一一次次最最多多可可以以有有七七个个触点相互并联触点相互并联指令格式:指令格式:O bit;; 例:例: O M2.6 6.2.1 位操作指令(6)或常闭指令:ON Ø即即并并联联一一个个常常闭闭触触点点在在梯梯形形图图中中,,一一次次最最多多可可以以连连用用六六次指令格式:指令格式:ON bit;; 例:例: ON M2.6 ((7))输出指令:输出指令:= Ø将将逻逻辑辑运运算算结结果果输输出出到到指指定定存存储储器器位位或或输输出出继继电电器器对对应应的的映像寄存器位,以驱动本位线圈映像寄存器位,以驱动本位线圈指令格式:指令格式:= bit;; 例:例: = Q2.6 u 在语句表中,在语句表中,LD、、LDN、、A、、AN、、O、、ON、、这几条指令的执行对逻辑堆栈的影响分别如表这几条指令的执行对逻辑堆栈的影响分别如表5-7、、表表5-8及其后的说明。
及其后的说明 返回返回(8) 取非触点指令 Ø NOTNOT,,取取非非触触点点指指令令用用来来改改变变能能流流的的状状态态能能流流到到达达取取非非触触点点时时,,能能流流就就停停止止;;能能流流未未到到达达取取非非触触点点时时,,能能流流就就通通过Ø 在在语语句句表表中中,,取取非非触触点点指指令令对对堆堆栈栈的的栈栈顶顶作作取取反反操操作作,,改改变变栈栈顶顶值值栈栈顶顶值值由由0 0变变为为1 1,,或或者者由由1 1变变为为0 0取取非非触触点点指指令令无操作数无操作数 图5-19 取非触点指令编程 返回返回(9) 空操作指令 Ø NOPNOP,,空空操操做做指指令令使使能能输输入入有有效效时时,,执执行行空空操操作作指指令令空空操操做做指指令令不不影影响响用用户户程程序序的的执执行行,,操操作作数数N N是是标标号号,,是是一一个个0 0~~225225的常数 LD I0.0 //使能输入NOP 30 //空操作指令,标号为30 图5-20 空操作指令编程 n程序实例:仔细比较不同编程工具的区别与联系 LD I0.0 //装入常开触点装入常开触点O I0.1 //或常开触点或常开触点A I0.2 //与常开触点与常开触点= Q0.0 //输出触点,输出触点, //如果本梯级中将的触点改如果本梯级中将的触点改 //为的常开触点,则成为电为的常开触点,则成为电 //机起动停止控制环节的梯形图机起动停止控制环节的梯形图 LDN I0.0 //装入常闭触点装入常闭触点ON I0.1 //或常闭触点或常闭触点AN I0.2 //与常闭触点与常闭触点= Q0.1 //输出触点输出触点 LD I0.0 //O I0.1 //A I0.2 //NOT //取非,即输出反相取非,即输出反相= Q0.3 //图图5-95-9 标标准准触触点点LADLAD和和STLSTL例例 LD I0.0 //O I0.1 //A I0.2 //= Q0.0 // LDN I0.0 //ON I0.1 //AN I0.2 //= Q0.1 // LD I0.0 //O I0.1 //A I0.2 //NOT //= Q0.3 //图图5-105-10 标准触点标准触点FBDFBD例例 n程序执行的时序图如图5-11所示。
图5-11 时序图 由于取非指令由于取非指令NOTNOT缘故,缘故,与反相与反相正负跳变指令在梯形图中以触点形式使用用于检测脉冲的正跳变(上升沿)或负跳变(下降沿),利用跳变让能流接通一个扫描周期,即可以产生一个扫描周期长度的微分脉冲,常用此脉冲触发内部继电器线圈Ø正正跳跳变变触触点点检检测测到到脉脉冲冲的的每每一一次次正正跳跳变变后后,,产产生生一一个个微微分分脉冲指令格式:指令格式:EU ((无操作数)无操作数) 返回返回2. 2. 正负跳变指令正负跳变指令 ((1 1)正跳变指令:)正跳变指令:EUEU (2)负跳变指令:ED Ø负负跳跳变变触触点点检检测测到到脉脉冲冲的的每每一一次次负负跳跳变变后后,,产产生生一一个个微微分分脉冲指令格式:指令格式:ED ((无操作数)无操作数)正、负跳变触点指令编程举例如图正、负跳变触点指令编程举例如图5-125-12所示 图5-12 正、负跳变触点指令编程 一个扫描周期长度一个扫描周期长度 置位即置1,复位即置0置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。
这两条指令在使用时需指明三点:操作性质、开始位和位的数量各操作数类型及范围如表5-9所示 表5-9 置位和复位指令操作数类型及范围 操作数范 围 类 型 位bitI,Q,M,SM,T,C,V,S,L BOOL型 数量N VB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD ,常数BYTE型 (最大255)3. 3. 置位和复位指令置位和复位指令(1)置位指令:S Ø将将位位存存储储区区的的指指定定位位((位位bit))开开始始的的N个个同同类类存存储储器器位位置置位位指令格式:指令格式: S bit,, N;; 例:例: ,, 1 ((2)复位指令:)复位指令:R Ø将将位位存存储储区区的的指指定定位位((位位bit))开开始始的的N个个同同类类存存储储器器位位复复位位当当用用复复位位指指令令时时,,如如果果是是对对定定时时器器T位位或或计计数数器器C位位进进行行复复位位,,则则定定时时器器或或计计数数器器位位被被复复位位,,同同时时,,定定时时器器或或计计数数器的当前值被清零(对减计数器例外)器的当前值被清零(对减计数器例外)。
指令格式:指令格式: R bit,, N;; 例:例: ,, 3 返回返回图图5-13 置位复位指令置位复位指令6.2.2 立即操作指令 n 立即指令允许对输入和输出点进行快速和直接存取n当用立即指令读取输入点的状态时,相应的输入映像寄存器中的值并未发生更新;n用立即指令访问输出点时,访问的同时,相应的输出寄存器的内容也被刷新n只有输入继电器I和输出继电器Q可以使用立即指令 返回返回1. 立即触点指令 n 在每个标准触点指令的后面加“I”指令执行时,立即读取物理输入点的值,但是不刷新相应映像寄存器的值Ø这这类类指指令令包包括括::LDI、、LDNI、、AI、、ANI、、OI和和ONI下下面面以以LDI指令为例指令为例指令格式:指令格式:LDI bit((bit只能是只能是I类型)类型)例:例: LDI I0.2 2. 立即输出指令3. 立即置位指令 Ø=I,,立立即即输输出出指指令令用用立立即即指指令令访访问问输输出出点点时时,,把把栈栈顶顶值值立立即即复复制制到到指指令令所所指指定定的的物物理理输输出出点点,,同同时时,,相相应应的的输输出出映映像寄存器的内容也被刷新。
像寄存器的内容也被刷新指令格式:指令格式:=I bit((bit只能是只能是Q类型)类型)例:例: =I Q0.2 ØSI,,立立即即置置位位指指令令用用立立即即置置位位指指令令访访问问输输出出点点时时,,从从指指令令所所指指出出的的位位((bit))开开始始的的N个个((最最多多为为128个个))物物理理输输出出点点被被立立即即置置位位,,同同时时,,相相应应的的输输出出映映像像寄寄存存器器的的内内容容也也被被刷刷新指令格式:指令格式:SI bit,, N; 例:例: ,, 2 4. 立即复位指令 ØRI,,立立即即复复位位指指令令用用立立即即复复位位指指令令访访问问输输出出点点时时,,从从指指令令所所指指出出的的位位((bit))开开始始的的N个个((最最多多为为128个个))物物理理输输出出点点被被立立即即复复位位,,同同时时,,相相应应的的输输出出映映像像寄寄存存器器的的内内容容也也被被刷刷新各操作数类型及范围如表各操作数类型及范围如表5-10所示 指令格式:指令格式: RI bit,, N; 例:例: ,, 1 表5-10 立即置位和立即复位指令操作数类型及范围 操作数范 围 类 型 位bitQBOOL型 数量N VB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD ,常数 BYTE型 (最大128)6.2.2 立即操作指令n应用举例: LD I0.0 //装入常开触点装入常开触点 = Q0.0 //输出触点,非立即输出触点,非立即 =I Q0.1 //立即输出触点立即输出触点 ,,1 1 //从开始的从开始的1 1个触点被立即置个触点被立即置1 1 LDI I0.0 //立即输入触点指令立即输入触点指令= Q0.3 //输出触点,非立即输出触点,非立即图图5-145-14 立即指令程序立即指令程序 图5-15 立即指令时序图 条件:在上一扫描周期某时跳变。
条件:在上一扫描周期某时跳变在在本本周周期期输输出出刷刷新新时时置置与与在在本本周周期期立立即即指指令令执执行行时时置置在在上上一一周周期期立立即即指指令令执执行时置行时置1 1 堆栈操作(复杂逻辑)指令 n堆栈操作(复杂逻辑指令)主要用来描述:1、对触点块(即对触点进行的复杂连接)的操作;2、对逻辑堆栈的操作n 本类指令包括:ALD、OLD、LPS、LRD、LPP和LDS,这些指令中除LDS外,其余指令都无操作数 返回返回n S7-200可编程序控制器使用一个逻辑堆栈来分析控制逻辑n用语句表编程时要根据这一堆栈逻辑进行组织程序,用相关指令来实现堆栈操作,用梯形图和功能框图时,程序员不必考虑主机的这一逻辑,这两种编程工具自动地插入必要的指令来处理各种堆栈逻辑操作 返回返回一、逻辑堆栈一、逻辑堆栈Ø 逻辑堆栈结构是由逻辑堆栈结构是由九个九个堆栈存储器位组成的串联堆堆栈存储器位组成的串联堆栈栈,,栈顶是布尔型数据进出栈顶是布尔型数据进出堆栈的必由之路堆栈的必由之路进栈时,进栈时,数据由栈顶压入,堆栈中原数据由栈顶压入,堆栈中原来所存的数据被串行下移一来所存的数据被串行下移一格,如果原来格,如果原来STACKSTACK((堆叠)堆叠)8 8中存有数据,则这数据被中存有数据,则这数据被推出堆栈而自动丢失。
出栈推出堆栈而自动丢失出栈时,数据从栈顶被取出,所时,数据从栈顶被取出,所有数据串行上移一格,有数据串行上移一格,STACK 8STACK 8中随机地装入一个中随机地装入一个数值表5-6 逻辑堆栈结构堆栈结构名称说明S0STACK0第一个堆栈 S1STACK1第二个堆栈S2STACK2第三个堆栈S3STACK3第四个堆栈S4STACK4第五个堆栈S5STACK5第六个堆栈S6STACK6第七个堆栈S7STACK7第八个堆栈S8STACK8第九个堆栈栈顶栈顶Ø栈栈顶顶STACK STACK 0 0在在此此逻逻辑辑堆堆栈栈的的位位运运算算中中兼兼有有累累加加器器的作用,存放第一操作数的作用,存放第一操作数①①每执行一次每执行一次LD/LDNLD/LDN指令,自动进行一次入栈操作;指令,自动进行一次入栈操作; ②②执执行行AA、、O O指指令令,,则则是是将将栈栈顶顶值值与与操操作作数数做做相相应应的的逻辑运算后,将结果保存在栈顶;逻辑运算后,将结果保存在栈顶;③③执执行行LDNLDN、、AAN N、、ONON指指令令,,则则是是将将操操作作数数先先取取反反后后,,再与栈顶做相应的逻辑运算后,将结果保存在栈顶;再与栈顶做相应的逻辑运算后,将结果保存在栈顶;④④当当一一个个梯梯级级扫扫描描结结束束,,或或是是= =指指令令执执行行完完毕毕,,PLCPLC自自动执行出栈操作,将栈顶值保存到对应储存区域。
动执行出栈操作,将栈顶值保存到对应储存区域二、基本逻辑指令对逻辑堆栈的影响二、基本逻辑指令对逻辑堆栈的影响LD、LDN指令的执行对逻辑堆栈的影响n 指令(假设I0.1=1)执行情况如表5-7所示如果是LDN指令,则将操作数取反后再装入栈顶,其他操作相同 表5-7的执行 名 称执 行 前执 行 后说 明STACK0S01将新值I0.1=1装入堆栈 STACK1S1S0由S0下移一个单元得到 STACK2S2S1由S1下移一个单元得到STACK3S3S2由S2下移一个单元得到STACK4S4S3由S3下移一个单元得到STACK5S5S4由S4下移一个单元得到STACK6S6S5由S5下移一个单元得到STACK7S7S6由S6下移一个单元得到STACK8S8S7由S7下移一个单元得到 原值原值S0S0串行串行下移一下移一个单元个单元, ,其余以其余以此类推 原原S8S8自自动丢动丢失 指令A、O、NOT对逻辑堆栈的影响n 指令(假设I0.2=0)执行情况如表5-8所示如果是AN指令,则将操作数取反后再和栈顶值相与,结果放回栈顶即: 1*1=1 →S0 表5-8 指令A的执行 名 称执 行 前执 行 后说 明STACK010执行前栈顶值为1。
执行是用栈顶值和指令操作数(I0.2的值为0)进行与运算,结果放回栈顶即:S0*I0.2=1*0=0 →S0 STACK1S1S1STACK2S2S2STACK3S3S3STACK4S4S4STACK5S5S5STACK6S6S6STACK7S7S7STACK8S8S8除除S0S0值外,其他各值外,其他各值不变值不变. .三、堆栈操作指令1. 触点块串联操作(栈装载与)指令 Ø((And And LoadLoad)),,触触点点块块串串联联操操作作((栈栈装装载载与与))指指令令 ::用用于于将将并并联联电电路路块块进进 行行 串串 联联 连连 接接 执执 行行ALD指指令令,,将将堆堆栈栈中中的的第第一一级级和和第第二二级级的的值值进进行行逻逻辑辑““与与””操操作作,,结结果果置置于于栈栈顶顶((堆堆栈栈第第一一级级)),,并并将将堆堆栈栈中中的的第第三三级级至至第第九级的值依次上弹一级九级的值依次上弹一级 图图5-16a5-16a 触点触点块串串联指令指令的操作的操作过程程 ALDALD触点块串联操作(栈装载与)指令触点块串联操作(栈装载与)指令 电路块特点:左小右大电路块特点:左小右大电路块特点:左小右大电路块特点:左小右大Ø OLD((Or Load)),,触触触触点点点点块块块块并并并并联联联联((((栈栈栈栈装装装装载载载载或或或或))))指指指指令令令令::用用于于将将串串联联电电路路块块进进行行并并联联连连接接。
执执行行OLD指指令令,,将将堆堆栈栈中中的的第第一一级级和和第第二二级级的的值值进进行行逻逻辑辑““或或””操操作作,,结结果果置置于于栈栈顶顶((堆堆栈栈第第一一级级)),,并并将将堆堆栈栈中中其其余余各各级级的的内内容容依依次次上上弹弹一一级 图图5-16b5-16b 触点触点块并并联指令指令的操作的操作过程程 2. 触点块并联(栈装载或)指令OLDOLD触点块并联(栈装载或)指令触点块并联(栈装载或)指令触点块并联(栈装载或)指令触点块并联(栈装载或)指令电路块特点:上小下大电路块特点:上小下大电路块特点:上小下大电路块特点:上小下大3. 逻辑入栈指令 4. 逻辑读栈指令 Ø LPSLPS,,逻逻辑辑入入栈栈指指令令((分分支支或或主主控控指指令令))用用于于复复制制栈栈顶顶的的值值并并将将这这个个值值推推入入栈栈顶顶,,原原堆堆栈栈中中各各级级栈栈值值依依次次下下压压一一级级在在梯梯形形图图中中的的分分支支结结构构中中,,用用于于生生成成一一条条新新的的母母线线,,左左侧侧为为主控逻辑块时,第一个完整的从逻辑行从此处开始主控逻辑块时,第一个完整的从逻辑行从此处开始。
Ø LRD,,逻逻辑辑读读栈栈指指令令把把堆堆栈栈中中第第二二级级的的值值复复制制到到栈栈顶顶堆堆栈栈没没有有推推入入栈栈或或弹弹出出栈栈操操作作,,但但原原栈栈顶顶值值被被新新的的复复制制值值取取代代在在梯梯形形图图中中的的分分支支结结构构中中,,当当左左侧侧为为主主控控逻逻辑辑块块时时,,开开始始第第二二个个和和后后边边更更多多的的从从逻逻辑辑块块应应注注意意,,LPS后后第第一一个个和和最后一个从逻辑块不用本指令最后一个从逻辑块不用本指令 返回返回6. 装入堆栈指令 Ø LPPLPP,,逻逻辑辑栈栈弹弹出出指指令令((分分支支结结束束或或主主控控复复位位指指令令))堆堆栈栈作作弹弹出出栈栈操操作作,,将将栈栈顶顶值值弹弹出出,,原原堆堆栈栈中中各各级级栈栈值值依依次次上上弹弹一一级级,,堆堆栈栈第第二二级级的的值值成成为为新新的的栈栈顶顶值值在在梯梯形形图图中中的的分分支支结结构构中中,,用用于于将将LPSLPS指指令令生生成成的的一一条条新新母母线线进进行行恢恢复复应应注意,注意,LPSLPS与与LPPLPP必须配对使用必须配对使用 Ø LDSLDS,,装装入入堆堆栈栈指指令令。
复复制制堆堆栈栈中中的的第第n n级级的的值值到到栈栈顶顶原栈中各级栈值依次下压一级,栈底值丢失原栈中各级栈值依次下压一级,栈底值丢失 5. 5. 逻辑栈弹出指令逻辑栈弹出指令图5-17 LPS、LRD、LPP、LDS指令的操作过程 这里这里n n==3 3LPSLPS与与LPPLPP必须配对使用必须配对使用LD I0.0 //装入常开触点装入常开触点O I2.2 //或常开触点或常开触点LD I0.1 //被串的块开始被串的块开始LD I2.0 //被并路开始被并路开始A I2.1 //与常开触点与常开触点OLD //触点块并联触点块并联ALD //触点块串联触点块串联= Q5.0 //输出触点输出触点返回返回应用举例:堆栈指令的应用LD I0.0 //装入常开触点装入常开触点LPS //逻辑推入栈,主控逻辑推入栈,主控A I0.5 //与常开触点与常开触点= Q7.0 //输出触点输出触点LRD //逻辑读栈,新母线逻辑读栈,新母线LD I2.1 //装入常开触点装入常开触点O I1.3 //或常开触点或常开触点ALD //栈装载与栈装载与= Q6.0 //输出触点输出触点LPP //逻辑弹出栈,母线复原逻辑弹出栈,母线复原LD I3.1 //装入常开出触点装入常开出触点O I2.0 //或常开触点或常开触点ALD //栈装载与栈装载与= Q1.3 //输出触点输出触点LPSLPS后第后第一和最一和最后一个后一个从逻辑从逻辑块不用块不用LRDLRD指令指令应用举例:堆栈指令的应用每每一一个个触触点点块块的的起起始始第第一一个个元元件件必必须须使使用用装装入入指指令令LD/LDNLD/LDN,,即即每每个个电电路路块块的的起起始始端端(左端)都当作母线处理!(左端)都当作母线处理!返回返回注意:LPSLPSLPSLPSLPPLPPLPPLPPLPSLPSLPPLPP应用举例:堆栈指令的应用——二层堆栈LPSLPSLPSLPSLPSLPSLPPLPPLPPLPPLPPLPP应用举例:堆栈指令的应用——三层堆栈6.2.5 定时器和计数器指令 1. 定时器指令 Ø定定时时器器是是重重要要的的编编程程元元件件。
定定时时器器编编程程时时设设定定时时间间预预设设值值,,在在运运行行时时当当定定时时器器的的输输入入条条件件满满足足时时开开始始计计时时,,当当前前值值从从0 0开开始始按按一一定定的的时时间间单单位位增增加加,,当当定定时时器器的的当当前前值值达达到到预预设设值值时时,,定定时时器器发发生生动动作作此此时时它它对对应应的的常常开开触触点点闭闭合合,,常常闭闭触触点断开Ø系系统统提提供供3 3种种定定时时指指令令::TONTON((通通电电延延时时))、、TONRTONR((有有记记忆忆通电延时)和通电延时)和TOFTOF((断电延时)断电延时)ØS7-200S7-200定定时时器器的的分分辨辨率率((时时间间增增量量/ /时时间间单单位位/ /分分辨辨率率))有有3 3个等级:个等级:1ms1ms、、10ms10ms和和100ms100ms 返回返回定时器指令有定时器指令有3 3个操作信息个操作信息::编号编号、、预设值预设值和和使能输入使能输入1 1))编编号号::用用定定时时器器的的名名称称和和它它的的常常数数编编号号((最最大大255255))来来表表示示,,即即TxxxTxxx,,如如::T4T4。
编编号号同同时时也也代代表表了了定定时时器器的的定定时时精度和类型精度和类型::T4T4不不仅仅仅仅是是定定时时器器的的编编号号,,它它还还包包含含两两方方面面的的信信息息::它它是保持接通型是保持接通型、、定时精度定时精度10ms10ms表5-11 定时器号和分辨率定时器类型分辩率/ms计时范围/s定时器号TONTOF 132.767T32,T9610327.67T33~T36,T97~T1001003276.7T37~T63,T101~T255TONR 132.767T0,T6410327.67T1~T4,T65~T681003276.7T5~T31,T69~T95每每一一个个定定时时器器都都包包含含两两个个变变量量信信息息::定定时时器器位位和和定定时时器器当前值当前值,和一个,和一个预置值预置值::Ø定定时时器器位位((对对应应于于触触点点状状态态))::定定时时器器位位与与时时间间继继电电器器的的输输出出相相似似,,当当定定时时器器的的当当前前值值达达到到预预设设值值PTPT时时,,该该位位被被置置为为““1”1”Ø定定时时器器当当前前值值::存存储储定定时时器器当当前前所所累累计计的的时时间间,,它它用用1616位有符号整数来表示,故最大计数值为位有符号整数来表示,故最大计数值为3276732767。
Ø预预设设值值PTPT::数数据据类类型型为为INTINT型型寻寻址址范范围围可可以以是是VWVW、、IWIW、、QWQW、、MWMW、、SWSW、、SMWSMW、、LWLW、、AIWAIW、、T T、、C C、、ACAC、、* *VDVD、、* *ACAC、、* *LDLD和和常数Ø定时时间的计算:定时时间的计算:T=PTT=PT☓☓S S ‑‑‑‑‑‑((T T为实际定时时间,为实际定时时间,PTPT为预设值,为预设值,S S为分辨率等级)为分辨率等级)例例如如::TONTON指指令令用用定定时时器器T33T33,,预预设设值值为为125125,,则则实实际际定定时时时时间间 T=125 T=125 ☓☓ 10=1250ms 10=1250ms 使使能能输输入入ININ端端((只只对对LADLAD和和FBDFBD))::布布尔尔型型,,可可以以是是I I、、Q Q、、M M、、SMSM、、T T、、C C、、V V、、S S、、L L和能流 可可以以用用复复位位指指令令来来对对3 3种种定定时时器器复复位位,,复复位位指指令令的的执行结果是:使定时器位变为执行结果是:使定时器位变为OFFOFF:定时器当前值变为:定时器当前值变为0 0。
如:如:S ST2,1T2,1(1)接通延时定时器指令:TON Ø 用用于于单单一一间间隔隔定定时时上上电电周周期期或或首首次次扫扫描描,,定定时时器器位位OFFOFF,,当当前前值值为为0 0使使能能输输入入接接通通时时,,定定时时器器位位为为OFFOFF,,当当前前值值从从0 0开开始始计计数数时时间间,,当当前前值值达达到到预预设设值值时时,,定定时时器器位位为为ONON,,当当前前值值连连续续计计数数到到3276732767使使能能输输入入断断开开,,定定时时器器自自动动复复位位,,即即定定时时器器位位OFFOFF,,当前值为当前值为0 0 填填““计计定时器号定时器号”,”,如:如:T35T35填填““预设值预设值”,如:,如:100指令格式:指令格式:TON TxxxTON Txxx,,PTPT例:例: TON T120 TON T120,,8 8 (2)有记忆接通延时定时器指令:TONR Ø 用用于于对对许许多多间间隔隔的的累累计计定定时时上上电电周周期期或或首首次次扫扫描描,,定定时时器器位位OFFOFF,,当当前前值值保保持持。
使使能能输输入入接接通通时时,,定定时时器器位位为为OFFOFF,,当当前前值值从从0 0开开始始累累计计计计数数时时间间使使能能输输入入断断开开,,定定时时器器位位和和当当前前值值保保持持最最后后状状态态使使能能输输入入再再次次接接通通时时,,当当前前值值从从上上次次的的保保持持值值继继续续计计数数,,当当累累计计当当前前值值达达到到预预设设值值时时,,定定时时器器位位ONON,,当当前前值值连续计数到连续计数到3276732767 填填““计计定时器号定时器号”,”,如:如:T31T31填填““预设值预设值”,如:,如:100TONRTONR定时器只能用复位指令进行复位操作,使当前值清零定时器只能用复位指令进行复位操作,使当前值清零指令格式:指令格式:TONR TxxxTONR Txxx,,PTPT;; 例:例: TONR T20 TONR T20,,63 63 (3)断开延时定时器指令:TOF Ø用用于于断断开开后后的的单单一一间间隔隔定定时时上上电电周周期期或或首首次次扫扫描描,,定定时时器器位位OFFOFF,,当当前前值值为为0 0使使能能输输入入接接通通时时,,定定时时器器位位为为ONON,,当当前前值值为为0 0。
当当使使能能输输入入由由接接通通到到断断开开时时,,定定时时器器开开始始计计数数,,当当前前值值达达到到预预设设值值时时,,定定时时器器位位OFFOFF,,当前值等于预设值,停止计数当前值等于预设值,停止计数TOFTOF复复位位后后,,如如果果使使能能输输入入再再有有从从ONON到到OFFOFF的负跳变,则可实现再次启动的负跳变,则可实现再次启动 填填““计计定时器号定时器号”,”,如:如:T35T35填填““预设值预设值”,如:,如:100指令格式:指令格式:TOF TxxxTOF Txxx,,PTPT;; 例例 TOF T35 TOF T35,,6 6 LD I0.0 //使能输入 TON T35,+4 //通电延时定时器,延时时间为40ms LD I0.0 //使能输入 TONR T2.+10 //有记忆通电延时定时器, //延时时间为100ms LD I0.0 //使能输入 TOF T36,+3 //断电延时定时器,延时时间为30ms (4)应用 举例 :图5-21 定时器特性 T35T35为通电延时定时器为通电延时定时器 T2T2为有记忆通电延时定时器为有记忆通电延时定时器 T36T36为断电延时定时器为断电延时定时器 n 上述梯形图程序中输入输出执行时序关系如图5-22所示。
图5-22 定时器时序 返回返回 使能输入接通时,定时器使能输入接通时,定时器位为位为ONON,当前值为,当前值为0,0,预启动(5)应用定时器指令应注意的几个问题 Ø①① 不不能能把把一一个个定定时时器器号号同同时时用用作作断断开开延延时时定定时时器器((TOFTOF))和接通延时定时器(和接通延时定时器(TONTON))Ø②② 使使用用复复位位((R R))指指令令对对定定时时器器复复位位后后,,定定时时器器位位为为“0 0”,定时器当前值为,定时器当前值为“0 0”Ø③③ 保保持持型型((有有记记忆忆))接接通通延延时时定定时时器器((TONRTONR))只只能能通通过过复位指令进行复位复位指令进行复位Ø④ ④ 对对于于断断开开延延时时定定时时器器((TOFTOF)),,需需要要输输入入端端有有一一个个负负跳跳变(由变(由onon到到offoff,即断开)的输入信号启动计时即断开)的输入信号启动计时Ø⑤ ⑤ 不不同同精精度度的的定定时时器器,,它它们们当当前前值值的的刷刷新新周周期期是是不不同同的的,,具体情况如下:具体情况如下: v1ms分辨率定时器 1ms分辨率定时器启动后,定时器对1ms的时间间隔(时基信号)进行计时。
定时器当前值每隔1ms刷新一次,在一个扫描周期中要刷新多次,而不和扫描周期同步 v10ms分辨率定时器 10ms分辨率定时器启动后,定时器对10ms的时间间隔进行计时程序执行时,在每次扫描周期开始对10ms定时器刷新,在一个扫描周期内定时器当前值保持不变v100ms分辨率定时器 100ms分辨率定时器启动后,定时器对100ms的时间间隔进行计时只有在定时器指令执行时,100ms定时器的当前值才被刷新 PLC应用中,经常需要自复位功能的定时器在图5-23a中,T32定时器1ms更新一次当定时器当前值100在图示A处刷新,可以接通一个扫描周期,若在其他位置刷新,则用永远不会接通而在A处刷新的概率是很小的图5-23a同样不适合10ms分辨率定时器若改为图5-23b,就可保证当定时器当前值达到设定值时,会接通一个扫描周期图5-23 1ms定时器编程 定时器的正确使用定时器的正确使用 在子程序和中断程序中不宜使用100ms定时器子程序和中断程序不是每个扫描周期都执行的,那么在子程序和中断程序中的100ms定时器的当前值就不能及时刷新,造成时基脉冲丢失,致使计时失准;在主程序中,不能重复使用同一个100ms的定时器号,否则该定时器指令在一个扫描周期中多次被执行,定时器的当前值在一个扫描周期中多次被刷新。
这样,定时器就会多计了时基脉冲,同样造成计时失准因而,100ms定时器只能用于每个扫描周期内同一定时器指令执行一次,且仅执行一次的场合100ms定时器的编程例子如图5-24a所示 a) b) 图5-24 100ms定时器的应用 返回返回 与图与图5-23a5-23a相比较,相比较,该定时该定时器确保器确保在此处在此处刷新当刷新当前值2. 计数器指令 Ø计计数数器器用用来来累累计计输输入入脉脉冲冲的的次次数数,,经经常常用用来来对对产产品品进进行行计数Ø计计数数器器与与定定时时器器的的结结构构和和使使用用基基本本相相似似,,编编程程时时输输入入它它的的预预设设值值PVPV((计计数数的的次次数数)),,计计数数器器累累计计它它的的脉脉冲冲输输入入个个数数((上上升升沿沿/正正跳跳变变)),,当当计计数数器器达达到到预预设设值值PVPV时时,,计数器位状态改变计数器位状态改变Ø计计数数器器指指令令有有3 3种种::增增计计数数CTUCTU、、增增减减计计数数CTUDCTUD和和减减计计数数CTDCTD。
Ø计计数数器器指指令令有有4 4种种操操作作信信息息::编编号号、、预预设设值值、、脉脉冲冲输输入入和和复位输入复位输入 1)编号:用计数器名称和它的常数编号(最大255)来表示,即Cxxx,如:C6每一个计数器都包含两个的变量信息:计数器位和计数器当前值n计数器位:表示计数器是否发生动作的状态,当计数器的当前值达到预设值PV时,该位被置为“1”n计数器当前值:存储计数器当前所累计的脉冲个数,它用16位有符号整数(INT)来表示,故最大计数值为327672)预设值PV:数据类型为INT型寻址范围可以是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数3)计数脉冲输入:布尔(位)型,可以是I、Q、M、SM、T、C、V、S、L和能流 4)复位输入:与脉冲输入同类型和范围1)增计数器指令:CTU Ø初初始始值值::首首次次扫扫描描,,定定时时器器位位OFF,,当前值为当前值为0Ø在在增增计计数数器器的的计计数数输输入入端端((CU))脉脉冲冲输输入入的的每每个个上上升升沿沿,,计计数数器器计计数数1次次,,当当前前值值增增加加1个个单单位位,,保保持持当当前前计计数数值值,,直直到到下下一一个个脉脉冲冲上上升升沿沿到到来;来;Ø当当前前值值等等于于预预设设值值时时,,计计数数器器位位ON,,当当前前值值继继续续计计数数到到最大值最大值((32767))停止计数停止计数。
填填““计计数器编号数器编号”,”,如:如:C30C30填填““预设值预设值”,如:,如:3脉冲输入脉冲输入复位输入复位输入Ø复复位位输输入入有有效效,,或或执执行行复复位位指指令令,,计计数数器器复复位位,,即即计数器位计数器位OFF,,当前值为当前值为0 指令格式:指令格式:CTU CxxxCTU Cxxx,,PVPV;; 例:例: CTU C20 CTU C20,,3 3 n应用举例:LD I0.0 //计数脉冲信号输入端计数脉冲信号输入端LD I0.1 //复位信号输入端复位信号输入端CTU C20,,+3+3 //增计数,计数设定值为增计数,计数设定值为3 3个脉冲个脉冲 LD C20 //装入计数器触点装入计数器触点= Q0.0 //输出触点输出触点图5-25 增计数程序及时序 复位与计复位与计数脉冲同时数脉冲同时有效时,有效时,优优先执行复位先执行复位(2)增减计数器指令:CTUD 该该指指令令有有两两个个脉脉冲冲输输入入端端::CU输输入入端端用用于于递递增增计数,计数,CD输入端用于递减计数。
输入端用于递减计数Ø初始值初始值:首次扫描,定时器位:首次扫描,定时器位OFF,,当前值为当前值为0ØCU输输入入的的每每个个上上升升沿沿,,计计数数器器当当前前值值增增加加1个个单单位位,,CD输输入入的的每每个个上上升升沿沿,,都都使使计计数数器器当当前前值值减减小小1个个单位,单位,当前值等于预设值时,计数器位当前值等于预设值时,计数器位ONØ循循环环计计数数::增增减减计计数数器器计计数数到到32767((最最大大值值))后后,,下下一一个个CU输输入入的的上上升升沿沿将将使使当当前前值值跳跳变变为为最最小小值值(( ––32768)) ;; 反反 之之 ,, 当当 前前 值值 达达 到到 最最 小小 值值 (( ––32768))时时,,下下一一个个CD输输入入的的上上升升沿沿将将使使当当前前值值跳跳变为最大值(变为最大值(32767)Ø复复位位输输入入有有效效或或执执行行复复位位指指令令,,计计数数器器复复位位,,即即计计数器位数器位OFF,,当前值为当前值为0 指令格式:指令格式:CTUD xCTUD x,,PVPV;; 例:例: CTUD C30 CTUD C30,,5 5 LD I0.0 //增计数输入端增计数输入端 LD I0.1 //减计数输入端减计数输入端 LD I0.2 //复位端复位端 CTUD C30,,+5+5 //增减计数,设定脉冲数为增减计数,设定脉冲数为5 5 LD C30 //装入计数器触点装入计数器触点 = Q0.0 //输出触点输出触点 n应用举例:图5-26 增减计数程序及时序 当前值大当前值大于(或小于)于(或小于)设定值后,设定值后,仍然随计数仍然随计数脉冲而变化,脉冲而变化,而计数器位而计数器位保持。
保持(3)减计数器指令:CTD Ø首首次次扫扫描描,,定定时时器器位位OFF,,当当前前值值为为预预设设值值PV计计数数器器检检测测到到CD输输入入的的每每个个上上升升沿沿时时,,计计数数器器当当前前值值减减小小1个个单单位位,,当当前前值值减减到到0时,计数器位时,计数器位ONØ复复位位输输入入有有效效或或执执行行复复位位指指令令,,计计数数器器复复位位,,即即计计数数器器位位OFF,,当前值复位为预设值,而不是当前值复位为预设值,而不是0 指令格式:指令格式:CTD CxxxCTD Cxxx,,PVPV;; 例:例: CTD C40 CTD C40,,4 4 n应用举例: LD I0.0 //减计数脉冲输入端减计数脉冲输入端 LD I0.1 //复位输入端复位输入端 CTD C40,+4 //减计数器,设定计数脉冲减计数器,设定计数脉冲 //数为数为4 4 LD C40 //装入计数器触点装入计数器触点 = Q0.0 //输出触点输出触点图图5 5-2727 减计减计数程序及时序数程序及时序 当前值当前值减到减到0 0后,后,计数脉冲计数脉冲对当前值对当前值和位都不和位都不起作用起作用。
0 04 44 42 22 23 33 34 4 4 41 1用计数器和定时器配合增加延时时间程序中实际延时时间为:定时时间×计数次数=100ms×30000×10=30000s 图图5-28 5-28 计数器应用例计数器应用例 LD I0.0 //LD I0.0 //启动通电延时启动通电延时AN M0.0 //AN M0.0 //重新启动延时重新启动延时TON T50TON T50,,+30000 //+30000 //延时时间设定为延时时间设定为3000s3000sLD T50 //LD T50 //延时时间到延时时间到= M0.0 //= M0.0 //关定时器,产生一脉冲关定时器,产生一脉冲LD M0.0 //LD M0.0 //每隔每隔3000s3000s输入一脉冲输入一脉冲LDN I0.0 //LDN I0.0 //复位输入复位输入CTU C20CTU C20,,+10 //+10 //增计数,累计脉冲总数增计数,累计脉冲总数 ((4 4)应用举例)应用举例————增加延时时间:增加延时时间:(5)应用计数器指令应注意的问题 :①① 可可以以用用复复位位指指令令来来对对3 3种种计计数数器器复复位位,,复位指令的执行结果是:复位指令的执行结果是: 使使计计数数器器位位变变为为OFFOFF;;计计数数器器当当前前值值变变为为0 0((CTDCTD变为预设值变为预设值PVPV)。
②② 在在一一个个程程序序中中,,同同一一个个计计数数器器编编号号只只能能使用一次使用一次③③ 脉脉冲冲输输入入和和复复位位输输入入同同时时有有效效时时,,优优先先执行复位操作执行复位操作 第五章习题与思考题 u1. S7-200指令参数所用的基本数据类型有哪些?指令参数所用的基本数据类型有哪些? u3. 逻辑堆栈指令有哪些?各用于什么场合?逻辑堆栈指令有哪些?各用于什么场合?u4. 定时器有几种类型?各有何特点?与定时器相定时器有几种类型?各有何特点?与定时器相关的变量有哪些?梯形图中如何表示这些变量?关的变量有哪些?梯形图中如何表示这些变量?u 5. 5. 计数器有几种类型,各有何特点?与计数器计数器有几种类型,各有何特点?与计数器相关的变量有哪些?梯形图中如何表示这些变量相关的变量有哪些?梯形图中如何表示这些变量?? u 12. 用顺序控制继电器(用顺序控制继电器(SCR))指令设计一个居室指令设计一个居室通风系统控制程序,使三个居室的通风机自动轮通风系统控制程序,使三个居室的通风机自动轮流地打开和关闭轮换时间间隔为流地打开和关闭轮换时间间隔为1h返回返回第第2章,章,9题:题: 试设计试设计S7-200PLC控制系统,控制系统,要求:第一台电动机起动要求:第一台电动机起动10s后,第二台电动机自动起动,后,第二台电动机自动起动,运行运行5s后,第一台电动机停止,后,第一台电动机停止,同时第三台电动机自动起动,同时第三台电动机自动起动,运行运行15s后,全部电动机停止。
后,全部电动机停止 梯形图。





