1、第三章第三章 PLCPLC程序设计基础程序设计基础程序设计的基础,必熟练掌握!程序设计的基础,必熟练掌握!努力学习,不断求新努力学习,不断求新没有终生的专业,只有终生的学习没有终生的专业,只有终生的学习3.1.1 PLC3.1.1 PLC编程语言的国际标准编程语言的国际标准PLCPLC的编程语言(的编程语言(IEC61131-3IEC61131-3中的中的5 5种种PLCPLC基本语言)基本语言)顺序功能图(顺序功能图(SFCSFC):):不仅仅是一种语言,更是一种组织控制程不仅仅是一种语言,更是一种组织控制程 序的图形方法。三要素:步、转换和动作序的图形方法。三要素:步、转换和动作梯形图(梯
2、形图(LDLD):以图形方式表达触点和线圈以及功能块的组成。以图形方式表达触点和线圈以及功能块的组成。 直观易懂直观易懂 使用最多使用最多 功能块表示定时功能块表示定时/ /计数器或数学运算等指令计数器或数学运算等指令指令表(指令表(ILIL):):又称语句表,类似汇编程序中的助记符表达式,又称语句表,类似汇编程序中的助记符表达式, 与其相对应的是与其相对应的是LDLD。应用于熟悉。应用于熟悉PLCPLC和程序设计的和程序设计的 经验丰富的程序员使用经验丰富的程序员使用结构文本(结构文本(STST):类似类似PascalPascal的基于文本的高级语言的基于文本的高级语言 与与LDLD相比,能
3、实现复杂的数学运算,编程简洁相比,能实现复杂的数学运算,编程简洁功能块图(功能块图(FBDFBD):):一种类似于数字逻辑电路的编程语言。一种类似于数字逻辑电路的编程语言。 与门、或门和非(小圆圈)来表示逻辑运算。与门、或门和非(小圆圈)来表示逻辑运算。 FBDFBD广泛地用于过程工业。广泛地用于过程工业。3.1 PLC3.1 PLC的编程语言与程序结的编程语言与程序结构构NETWORK 23 NETWORK 23 /网络题目网络题目1 1(单行)(单行)LD I0.0LD I0.0O Q0.0O Q0.0AN I0.0AN I0.0= Q0.0= Q0.0NETWORK 24 NETWORK
4、 24 /网络题目网络题目2 2(单行)(单行)LD I0.3LD I0.3TON T37TON T37,+100 +100 /10/10秒延时秒延时LADLAD中程序被划分为的独立的段中程序被划分为的独立的段, ,该段称该段称为网络为网络(Network) (Network) ,一个网络中只能有一个网络中只能有一块独立电路一块独立电路。若网络中有两块独立电。若网络中有两块独立电路在编译时会显示路在编译时会显示“无效网络或网络太无效网络或网络太复杂无法编译复杂无法编译”梯形图编辑器会自动给出网络的编号,梯形图编辑器会自动给出网络的编号,允许以网络为单位给梯形图程序加注释。允许以网络为单位给梯形
5、图程序加注释。 STLSTL程序可以不使用网络但只有将程序可以不使用网络但只有将STLSTL程程序正确地划分成网络才能将序正确地划分成网络才能将STLSTL程序转程序转化为化为LADLAD程序。程序。编程软件默认:编程软件默认:2525个网络个网络 不够可不够可“编辑编辑- -插入插入- -网络网络” 或在程序块窗口中点击右键在快捷或在程序块窗口中点击右键在快捷 菜单中菜单中“插入插入- -网络网络”梯形图梯形图(LDLD或或LADLAD):):语句表语句表(ILIL):):左左母母线线右母线右母线可省略可省略左侧一条垂直的线称作左母线;左侧一条垂直的线称作左母线;右边一条虚线称为右母线(可省
6、略);右边一条虚线称为右母线(可省略);母线之间是触点的逻辑连接和线圈输出母线之间是触点的逻辑连接和线圈输出3.1.2 PLC3.1.2 PLC的程序结构的程序结构S7-200CPUS7-200CPU的控制程序由主程序、子程序和中断程序组成。的控制程序由主程序、子程序和中断程序组成。1 1、主程序、主程序 是程序的主体,每一个项目只能有一个主程序。主程序可以调用子程序是程序的主体,每一个项目只能有一个主程序。主程序可以调用子程序 和在中断发生时执行中断程序。和在中断发生时执行中断程序。2 2、子程序、子程序 同一子程序可以在同一子程序可以在PLCPLC的一个扫描周期内被多次调用。使用子程序可以
7、简的一个扫描周期内被多次调用。使用子程序可以简 化程序设计,节约程序存储器空间。化程序设计,节约程序存储器空间。3 3、中断程序、中断程序 中断程序用来中断程序用来及时及时处理与用户程序的执行时序无关的操作或不能事先预处理与用户程序的执行时序无关的操作或不能事先预 测何时发生的中断事件。测何时发生的中断事件。 中断程序不能改写其他程序使用的存储器(因不能预知中断何时发生)。中断程序不能改写其他程序使用的存储器(因不能预知中断何时发生)。 在中断事件发生时,打断主或子程序的运行,中断程序执行完后,自动在中断事件发生时,打断主或子程序的运行,中断程序执行完后,自动 返回到原程序。返回到原程序。 它
8、不是由用户程序调用而是在中断事件发生时有操作系统调用。中断程它不是由用户程序调用而是在中断事件发生时有操作系统调用。中断程 序由用户编写。序由用户编写。3.23.2存储器的数据类型与寻址方式存储器的数据类型与寻址方式b表示数据的存取方式:数据的存取方式:双字:双字:存储器是由许多存储单元组成的,每个存储单元都有唯一的地址,可以依据存存储器是由许多存储单元组成的,每个存储单元都有唯一的地址,可以依据存储器地址来存储数据。存储器地址的表示有储器地址来存储数据。存储器地址的表示有位、字节、字、双字位、字节、字、双字等格式等格式 。由字节地址和位地址组成。由字节地址和位地址组成。位存储单元的地址中需指
9、出存储器位于位存储单元的地址中需指出存储器位于哪一个区,并指出字节的编号及位号。哪一个区,并指出字节的编号及位号。如:如:I4.5 Q0.0 I4.5 Q0.0 这种存取方式称为这种存取方式称为“字节字节. .位位”寻址方式寻址方式位:位:以存储区标识符、字节标识符以存储区标识符、字节标识符及字节地址组合而成及字节地址组合而成 如如IB3 QB1 MB10 VB201IB3 QB1 MB10 VB201字节:字节:由相邻两个字节组成字。由相邻两个字节组成字。如:如:VW100VW100表示由表示由VB100VB100和和VB101VB101组组成一个字,成一个字, VB100 VB100 为高
10、字节。为高字节。字:字:由相邻两个字组成双字,占四个字节。由相邻两个字组成双字,占四个字节。如:如:VD100VD100表示表示VB100VB100、VB101VB101、 VB102VB102、VB103 VB103 四个字节组成。四个字节组成。3.2.2 存存 储储 区区类似中间继电器,存储中间操作状态类似中间继电器,存储中间操作状态类似:时间继电器类似:时间继电器当前值寄存器(当前值寄存器(1616位)位)定时器位定时器位存放中间结果存放中间结果累计计数输入脉冲的个数累计计数输入脉冲的个数 当前值寄存器(当前值寄存器(16位)位)累计比累计比CPUCPU扫描速度更快扫描速度更快的事件的事
11、件3232位位 可读写可读写 可按字节、字、双字来存取可按字节、字、双字来存取如如:CPU:CPU与用户之间交换信息与用户之间交换信息 SM0.0SM0.0一直为一直为1 1 SM0.1 SM0.1仅第一个仅第一个T T内为内为1 1其它为其它为0 0I、Q、V、L、M、S、SM均可按均可按Bit、B、WDW来存取来存取作暂时存储器或给子程序传递参数作暂时存储器或给子程序传递参数3.3 3.3 位逻辑指令位逻辑指令3.3.1 3.3.1 触点类型触点类型OFF1I0.0ON0I0.0OFFON常开触点常开触点 外部电路有动作时电路是闭合,无动作断开外部电路有动作时电路是闭合,无动作断开常闭触点
12、常闭触点 外部电路有动作时电路就断开,无动作闭合外部电路有动作时电路就断开,无动作闭合线圈:代表线圈:代表CPUCPU对存储器的写操作,用户程序中同一线圈只能使用一次对存储器的写操作,用户程序中同一线圈只能使用一次。( )Q0.0ONQ0.01( )Q0.00OFF0Q位装载(加载)指令(位装载(加载)指令(LD/LDNLD/LDN):表示一个梯形图网络的开始):表示一个梯形图网络的开始 即电路的开始即电路的开始LD LD (LOADLOAD):): 位装载指令,对应梯形图从左侧母线开始,位装载指令,对应梯形图从左侧母线开始, 连接常开触点,连接常开触点,即常开触点与左母线相连接即常开触点与左
13、母线相连接LDNLDN(LOAD NOTLOAD NOT):):位装载指令,对应梯形图从左侧母线开始,位装载指令,对应梯形图从左侧母线开始, 连接常闭触点,连接常闭触点,即常闭触点与左母线相连接即常闭触点与左母线相连接1 1、标准触点指令、标准触点指令A A(AND,AND,与):与):常开触点与其他程序段相串联常开触点与其他程序段相串联ANAN(与非):(与非): 常闭触点与其它程序段相串联(取反后与)常闭触点与其它程序段相串联(取反后与)O(OR,O(OR,或或) ): 常开触点与其他程序段相并联常开触点与其他程序段相并联ONON(或非):(或非): 常闭触点与其它程序段相并联(取反后或)
14、常闭触点与其它程序段相并联(取反后或)例例1 1:LD LD I0.0I0.0A M0.0A M0.0AN I0.1AN I0.1= Q0.0= Q0.0LDN LDN I0.2I0.2O Q0.1O Q0.1ON M0.1ON M0.1A A I0.3I0.3= Q0.1= Q0.1由由LADLAD转化成转化成STL:STL:例例2:由梯形图写出语句表:由梯形图写出语句表例例3 3:复位脉冲的产生:复位脉冲的产生( (上升沿检测上升沿检测) )I0.1M3.1M0.0I0.1M3.1I0.1M0.0TTM问题提出:在实际系统中不但要求能够进行程序设计,有时还需问题提出:在实际系统中不但要求能
15、够进行程序设计,有时还需能够读懂他人编写的程序,在编制程序时,还会出现多个分支电能够读懂他人编写的程序,在编制程序时,还会出现多个分支电路同时受一个或一组触点控制的情况,如图:路同时受一个或一组触点控制的情况,如图:2、堆栈的基本概念、堆栈的基本概念 5-8班班?利用前面讲的触点串并联指令能不能?利用前面讲的触点串并联指令能不能将这样的梯形图转换成语句表将这样的梯形图转换成语句表于是出现堆栈指令于是出现堆栈指令堆栈的基本堆栈的基本概念概念:S7-200S7-200有一个有一个9 9位的堆栈,栈顶用来存储逻辑运算结果,下面位的堆栈,栈顶用来存储逻辑运算结果,下面8 8位用来存储位用来存储 中间运
16、算结果。堆栈按中间运算结果。堆栈按“先进后出先进后出”的原则存取。的原则存取。LDLD(LDNLDN)将指定地址中的位数据将指定地址中的位数据( (取反后取反后) )装入堆栈的栈顶(每执行一次装入堆栈的栈顶(每执行一次 LD(LDN)LD(LDN)压栈一次);举例:压栈一次);举例:执行执行A/OA/O(AN/ONAN/ON)指令时均与栈顶中指令时均与栈顶中2#2#数据数据( (取反后取反后) )相与相与/ /或操作并将结或操作并将结 果存入栈顶。果存入栈顶。与堆栈相关的指令有:与堆栈相关的指令有:ALD ALD 、OLDOLD、LPSLPS、LRDLRD、LPPLPP、LDS nLDS 4
17、4、栈装载与(、栈装载与(ALDALD)(块串联)(块串联)3 3、栈装载或(、栈装载或(OLDOLD)(块并联)(块并联)OLD-OR LOAD:指电路块并联连接指电路块并联连接ALD-AND LOAD:指电路块串联连接指电路块串联连接1234 5串联电路块:串联电路块: 两个或以上触点的串联电路两个或以上触点的串联电路 1 1 、2 2并联电路块:并联电路块: 两个或以上触点的并联电路两个或以上触点的并联电路 4 4由由LADLAD转化成转化成STL:STL:首先完成电路块内部的触点首先完成电路块内部的触点串并联操作串并联操作( (每个电路块的每个电路块的开始触点使用开始触点使用LD/LD
18、N,LD/LDN,深度深度加加1)1);然后再块与然后再块与/ /或操作或操作此时堆栈深度减此时堆栈深度减1 1电路块:电路块: 两个或以上触点经过串联或并联后两个或以上触点经过串联或并联后 组成的结构。分为:组成的结构。分为:1234 5LD I0.0AN I0.1LDN I2.1A I3.4LDN T37A I2.5OLDALDO Q1.7= Q3.015432iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0 1iv8iv8iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0堆栈:堆栈:执行执行OL
19、D前后:前后:x xiv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0 3执行后:执行后:iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv01 2执行前:执行前:执行执行ALD前后:前后:x xiv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0 5执行后:执行后:iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0 3 4执行前:执行前:OLD/ALDOLD/ALD指令:指令: 无操作数无操作数每执行一次电路每执行一次电路块的串或并联操块的串或并联操作堆栈深度减
20、作堆栈深度减1 1X:不确定值不确定值iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv01ILD I0.0O Q2.5AN I2.3LDN M4.5O Q0.3A T1LDN M5.6AN C5OLD ALDO M3.2= Q0.31324总结:总结:每执行一条每执行一条LD/LDNLD/LDN指令或增加一条指令或增加一条LD/LDNLD/LDN指令开始的电路块指令开始的电路块内部的运算结果,堆栈中就增加一个数据,堆栈深度加内部的运算结果,堆栈中就增加一个数据,堆栈深度加1 1;每执行一条每执行一条ALD/OLDALD/OLD指令堆栈深度减指令堆栈深度减1 1
21、;简记:简记: 执行执行LD/LDNLD/LDN指令堆栈深度加指令堆栈深度加1 1; 执行执行ALD/OLDALD/OLD指令堆栈深度减指令堆栈深度减1 1 思考:思考:一个一个LADLAD中电路块个数是否有限制?中电路块个数是否有限制?块数块数99堆栈只有堆栈只有9 9层层 99会丢失数据会丢失数据逻辑入栈逻辑入栈 LPS: Logic PushLPS: Logic Push分支电路开始指令。用于生成一条新的母分支电路开始指令。用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新线,其左侧为原来的主逻辑块,右侧为新的从逻辑块的从逻辑块 从堆栈使用上讲,从堆栈使用上讲,LPSLPS指令指令复
22、制复制栈顶的值栈顶的值并并将将其压入其压入堆栈的下一层堆栈的下一层,栈中栈中原原来的数来的数据据依次依次向下一层推移,向下一层推移,栈底值被推出丢失栈底值被推出丢失注意:注意:本指令为分支的开始,本指令为分支的开始,以后必须有分支结束指令以后必须有分支结束指令LPPLPP即即LPSLPS与与LPPLPP指令必须成对出现。指令必须成对出现。iv8iv8iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0入栈前:入栈前:iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0iv0iv0入栈后:入栈后:栈底值丢失栈
23、底值丢失LPS 、LPP、LRD 、 LDS n适用场合:多分支电路同时受控于一个触点或一组触点的情况,如图适用场合:多分支电路同时受控于一个触点或一组触点的情况,如图LPS逻辑出栈逻辑出栈 LPP: Logic PopLPP: Logic Pop在梯形图分支结构中,在梯形图分支结构中,LPPLPP用于用于LPSLPS产生的新母产生的新母线右侧的组后一个从逻辑块编程,它在读取完线右侧的组后一个从逻辑块编程,它在读取完离它最近的离它最近的LPS LPS 压入堆栈内容的同时复位该条压入堆栈内容的同时复位该条新母线。新母线。从堆栈使用上讲,使栈中从堆栈使用上讲,使栈中各层各层的数据的数据依次上依次上
24、移移一层一层,第二层,第二层的数据成为新的栈顶值的数据成为新的栈顶值,原栈顶,原栈顶值消失。值消失。iv8iv8iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0出栈前:出栈前:x xiv8iv8iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1出栈后:出栈后:栈顶值丢失栈顶值丢失LPP逻辑读栈逻辑读栈 LRD: Logic ReadLRD: Logic Readiv8iv8iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0读栈前:读栈前:iv8iv8iv7iv7iv6
25、iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv1iv1读栈后:读栈后:在梯形图分支结构中,当新母线左侧为主逻辑块在梯形图分支结构中,当新母线左侧为主逻辑块时,时,LPPLPP开始右侧的第一个从逻辑块编程,开始右侧的第一个从逻辑块编程,LRDLRD开开始右侧的始右侧的第二个及其以后(最后一个除外)第二个及其以后(最后一个除外)的从的从逻辑块编程。逻辑块编程。从堆栈使用上讲,从堆栈使用上讲,LRDLRD指令将堆栈中指令将堆栈中第第2 2层层的数据的数据复制到栈顶复制到栈顶(即(即LRDLRD读取最读取最近的近的LPSLPS压入堆栈的内容)。压入堆栈的内容)。第第2 29 9
26、层层的数据的数据不变,原栈顶值消失不变,原栈顶值消失LRD装载堆栈装载堆栈 LDS n: Load Stack (LDS n: Load Stack (n=1n=18)8)LDSLDS指令:复制堆栈内第指令:复制堆栈内第n n 层的值到栈顶。层的值到栈顶。 栈中原来的数栈中原来的数 据依次向下一据依次向下一 层推移,层推移,栈底栈底 值被推出丢失值被推出丢失 例:例: LDS 4LDS 4iv8iv8iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1iv0iv0执行前:执行前:iv7iv7iv6iv6iv5iv5iv4iv4iv3iv3iv2iv2iv1iv1
27、iv0iv0iv4iv4执行后:执行后:不不变变LPSLPS、LPPLPP、LRDLRD适用场合:适用场合:多分支电路同时受控于一个触点或一组触点的情况多分支电路同时受控于一个触点或一组触点的情况LPS/LPP必成对出现必成对出现ABCLD I0.2A I0.0LPSAN I0.1= Q2.1LRDA I0.5= M3.7LPP AN I0.4= Q0.3分支开始(即指令第一条)用分支开始(即指令第一条)用LPSLPS压栈;压栈;分支结束(即最后一条指令)用分支结束(即最后一条指令)用LPPLPP出栈;出栈;中间的所有分支用中间的所有分支用LRDLRD指令指令即:分支数即:分支数=2=2只需只
28、需LPSLPS、LPPLPP; 分支数分支数3 3需需LPSLPS、LPPLPP、LRDLRD指令指令AB说明:用编程软件将梯形图转化成语句说明:用编程软件将梯形图转化成语句表程序时,系统会自动加入表程序时,系统会自动加入LPSLPS、LPPLPP和和LRDLRD指令。但写语句表程序时用户必须指令。但写语句表程序时用户必须自己写入自己写入LPSLPS、LPPLPP和和LRDLRD指令。指令。12312AB课堂作业:6 6、立即触点指令、立即触点指令 只用于输入量只用于输入量I I常开立即触点指令:常开立即触点指令:LDILDI、AIAI、OI OI 符号:符号:I I常闭立即触点指令:常闭立即
29、触点指令:LDNILDNI、ANIANI、ONI ONI 符号:符号:/I/I立即触点并不依赖于立即触点并不依赖于S7-200S7-200的扫描周期刷新,的扫描周期刷新,它会立即刷新。在指令执行时:立即读入物理它会立即刷新。在指令执行时:立即读入物理输入点的值,依据该值决定触点的接通或断开输入点的值,依据该值决定触点的接通或断开状态,状态,但并不更新该物理输入点对应的输入过但并不更新该物理输入点对应的输入过程映像寄存器。程映像寄存器。当物理输入点状态为当物理输入点状态为1 1时,常开立即触点闭合;时,常开立即触点闭合;当物理输入点状态为当物理输入点状态为0 0时,常闭立即触点闭合。时,常闭立即
30、触点闭合。常开立即指令常开立即指令LDLD、ANDAND或或OROR将物理输入值存入栈将物理输入值存入栈顶,而常闭立即指令顶,而常闭立即指令LDLD、ANDAND或或OROR将物理输入的将物理输入的值取反,再存入栈顶。值取反,再存入栈顶。LDI I0.0LDI I0.0OI I0.2OI I0.2ANI I0.1ANI I0.1= Q0.0= Q3.3.2 输出指令与其他指令输出指令与其他指令1 1、输出(、输出( = = ) 与线圈相对应与线圈相对应输出指令将栈顶值复制到对应的映像寄存器输出指令将栈顶值复制到对应的映像寄存器输出指令应放在梯形图右边。如:输出指令应放在梯形图右边。如:若驱动线
31、圈的触点电路接通时,线圈若驱动线圈的触点电路接通时,线圈流过流过“能流能流”,指定位对应的映像寄存,指定位对应的映像寄存器为器为1 1,反之为,反之为0 0当立即输出指令执行时,物理输出点立即被置为能流值。当立即输出指令执行时,物理输出点立即被置为能流值。在在STLSTL中,立即指令将栈顶的值立即复制到物理输出点的指定位上。中,立即指令将栈顶的值立即复制到物理输出点的指定位上。“I”I”表示立即,当指令执行时,新值会同时被写到物理输出和相应表示立即,当指令执行时,新值会同时被写到物理输出和相应的输出过程映象寄存器。的输出过程映象寄存器。这一点不同于非立即指令,只把新值写入过程映象寄存器。这一点
32、不同于非立即指令,只把新值写入过程映象寄存器。2. 2. 立即输出(立即输出(=I=I) 只用于输出量(只用于输出量(Q Q) 当指令执行时,立即输出指令(当指令执行时,立即输出指令(=I=I)将新值同时写到物理输出点和相应)将新值同时写到物理输出点和相应 的过程映象寄存器中的过程映象寄存器中(1 1)S S,置位指令,置位指令 (2 2)R R,复位指令,复位指令 置位即置置位即置1 1,复位即置,复位即置0 0 R/SR/S比成对出现比成对出现 可互换次序可互换次序置位和复位指令可以将位存储区的某一位开始的一个或多个置位和复位指令可以将位存储区的某一位开始的一个或多个 (最多可达(最多可达
33、255255个)同类存储器位置个)同类存储器位置1 1或置或置0 0这两条指令在使用时需指明三点:这两条指令在使用时需指明三点: 操作性质、开始位和位的数量。操作性质、开始位和位的数量。应用场合:多用于输出位应用场合:多用于输出位Q Q、定时器、定时器/ /计数器位计数器位各操作数类型及范围如表各操作数类型及范围如表4.64.6所示。所示。3. 3. 置位和复位指令置位和复位指令将位存储区的指定位(位将位存储区的指定位(位bitbit)开始的)开始的N N个个同类同类存储器位置存储器位置1 1并并保持保持。 用法:用法:S bit, NS bit, N 例:例: S Q0.0,1S Q0.0,
34、1网络网络1LD I0.0S Q0.0, 1 网络网络2LD I0.1R Q0.0, 1R/SR/S指令特点:指令特点:记忆保持功能记忆保持功能记忆功能记忆功能除非有复位脉冲除非有复位脉冲否则一直为否则一直为1除非有置位脉冲除非有置位脉冲否则一直为否则一直为0(1 1)S S,置位指令,置位指令(2 2)R R,复位指令,复位指令将位存储区的指定位(位将位存储区的指定位(位bitbit)开始的)开始的N N个个同类同类存储器位置存储器位置0 0并并保持保持。当用复位指令时,若对当用复位指令时,若对TxxxTxxx位或位或CxxxCxxx位位进行复位,则进行复位,则TxxxTxxx位或位或Cxx
35、xCxxx位被复位,位被复位,同时,定时器或计数器的当前值被清零。同时,定时器或计数器的当前值被清零。用法:用法:R bit, NR bit, N例:例: R Q0.2,3R Q0.2,3应用举例:应用举例:1 1、2 用立即置位用立即置位/ /复位复位指令访问输出点时,从指令所指出的位(指令访问输出点时,从指令所指出的位(bitbit)开始的开始的N N个(最多为个(最多为128128个)物理个)物理输出点输出点被立即置位被立即置位/ /复位复位,同时,同时相应的输出映像寄存器的内容也被刷新。相应的输出映像寄存器的内容也被刷新。(3)SI/ RI ,立即置位,立即置位/复位复位指令指令 只用
36、于输出量只用于输出量Q用法:用法:SI bit, N SI bit, N RI bit, NRI bit, N 例:例: SI Q0.0,2 SI Q0.0,2 RI Q0.0, 1 RI Q0.0, 1LD I0.0LD I0.0= Q0.0= Q0.0=I Q0.1=I Q0.1SI Q0.2,1SI Q0.2,1LDI I0.0LDI I0.0= Q0.3= Q置位优先触发器(置位优先触发器(SRSR)是一个置位优先的锁存器。)是一个置位优先的锁存器。 当置位信号(当置位信号(S1S1)和复位信号()和复位信号(R R)都为)都为1 1时,输出为时,输出为1 1。复位优先触发器(复位优先
37、触发器(RSRS)是一个复位优先的锁存器。)是一个复位优先的锁存器。 当置位信号(当置位信号(S S)和复位信号()和复位信号(R1R1)都为)都为1 1时,输出为时,输出为0 0。 BitBit参数用于指定被置位或者复位的布尔参数。参数用于指定被置位或者复位的布尔参数。4 4、RSRS触发器指令触发器指令2) 2) 边沿触发指令边沿触发指令 EU/ED EU/ED 无操作数无操作数上升沿触发指令上升沿触发指令:EU:EU 下降沿触发指令下降沿触发指令:ED:ED正跳变指令,一旦发现有正跳变发生(由正跳变指令,一旦发现有正跳变发生(由0 0到到1 1),该栈顶值被置为),该栈顶值被置为1 1,
38、否则置,否则置0 0负跳变指令,一旦发现有负跳变发生(由负跳变指令,一旦发现有负跳变发生(由1 1到到0 0),该栈顶值被置为),该栈顶值被置为1 1,否则置,否则置0 0 例:例:6、其他指令、其他指令1 1)取反()取反(NOTNOT): : 无操作数无操作数 对栈顶取反对栈顶取反将改变能流输入的状态(也就是说,它将栈顶值由将改变能流输入的状态(也就是说,它将栈顶值由0 0变为变为1 1,由,由1 1变为变为0 0)在在EUEU指令前有一个上升沿时(指令前有一个上升沿时(由由0101),就产生宽度为一个扫描周期),就产生宽度为一个扫描周期的脉冲,驱动后面的输出线圈。即在上升沿使触点闭合一个
39、扫描周期的脉冲,驱动后面的输出线圈。即在上升沿使触点闭合一个扫描周期在在EDED指令前有一个下降沿时(指令前有一个下降沿时(由由1010),就产生宽度为一个扫描周),就产生宽度为一个扫描周期的脉冲,驱动其后线圈。期的脉冲,驱动其后线圈。即在上升沿使触点闭合一个扫描周期即在上升沿使触点闭合一个扫描周期3)3)空操作指令空操作指令 NOP NOP 作用:延时作用:延时( (稍微延长扫描周期的长度稍微延长扫描周期的长度) ) NOP N NOP N 不影响程序的执行,操作数不影响程序的执行,操作数N=0N=0255 N255 N指执行空操作的次数指执行空操作的次数例:画出该电路的时序图例:画出该电路
40、的时序图3.4 定时器与计数器指令定时器与计数器指令S7-200PLCS7-200PLC提供三种分辨率(也称时基、时间增量、精度):提供三种分辨率(也称时基、时间增量、精度): 1ms1ms、10ms10ms及及100ms100ms的定时器的定时器实质上,实质上,不是累计时间不是累计时间而是而是累计时间增量累计时间增量进行计时的进行计时的比如:比如:10ms10ms定时器定时器 每隔每隔10ms10ms就发出一个信号,该信号对当前值加就发出一个信号,该信号对当前值加1 1,故也,故也 说定时器是对说定时器是对分辨率分辨率进行进行计数计数。 3.4.13.4.1定时器指令定时器指令 用来实现时间
41、控制用来实现时间控制 类似:时间继电器类似:时间继电器定时器在编程时提前输入时间预设值,在运行时当定时器的输入条件满足是开始定时器在编程时提前输入时间预设值,在运行时当定时器的输入条件满足是开始计时,当前值从计时,当前值从0 0开始按一定的时间单位增加,当定时器的当前值达到预设值时开始按一定的时间单位增加,当定时器的当前值达到预设值时定时器发生动作,定时器发生动作,PLCPLC响应而做出相应的动作。此时它对应的常开触点闭合,常响应而做出相应的动作。此时它对应的常开触点闭合,常闭触点断开。利用定时器的输入输出触点就可得到控制所需的延时时间。闭触点断开。利用定时器的输入输出触点就可得到控制所需的延
42、时时间。定时器是对内部时钟累计定时器是对内部时钟累计时间增量时间增量计时的。每个定时器均有计时的。每个定时器均有: : 定时时间定时时间= =分辨率分辨率预设值预设值一个一个1616位位的当前值寄存器用以存放当前值;的当前值寄存器用以存放当前值; (1616位符号整数,最大值位符号整数,最大值3276732767)一个一个1616位位的预置值寄存器用以存放时间的设定值;的预置值寄存器用以存放时间的设定值;一位一位状态位,反应其触点的状态。状态位,反应其触点的状态。定时器类型定时器类型时基标准时基标准/ms/ms最大定时值最大定时值/s/s定时器编号定时器编号有记忆的通电延时型有记忆的通电延时型
43、TONRTONR1 132.76732.767T0T0、T64T641010327.67327.67T1T1T4T4、 T65T65T68T681001003276.73276.7T5T5T31T31、 T69T69T95T95通电延时通电延时/ /断电延时断电延时TON/TOFTON/TOF1 132.76732.767T32T32、 T96T961010327.67327.67T33T33T36T36、 T97T97T100T1001001003276.73276.7T37T37T63T63、 T101T101T255T255TONTON:单一时间间隔的定时:单一时间间隔的定时 如:十字路
44、口交通灯控制如:十字路口交通灯控制TOFTOF用于设备停机、故障时间后的延时如:电机停止后再过用于设备停机、故障时间后的延时如:电机停止后再过5s5s冷却风机停止、电磁炉风扇冷却风机停止、电磁炉风扇TONRTONR用于累计许多的时间间隔(多段不连续时间进行累计)用于累计许多的时间间隔(多段不连续时间进行累计) 如:象棋比赛如:象棋比赛对某个定时器而言采对某个定时器而言采用哪种分辨率是有定用哪种分辨率是有定时器时器编号决定编号决定的,如的,如表所示:表所示: 定时时间定时时间3276.7s 3276.7s 怎么办?怎么办? 多个定时器组合或用多个定时器组合或用计数器扩展定时器的计数器扩展定时器的
45、定时时间范围定时时间范围S7-200系统提供三种定制器指令:系统提供三种定制器指令:1、接通延时定时器、接通延时定时器 TON使能端(使能端(ININ)接通时,)接通时,T37T37开始计时,当前值从开始计时,当前值从0 0开始递增,开始递增,当前值当前值设定值时,设定值时, TxxxTxxx位位为为ONON,但当,但当前值前值仍继续仍继续增加增加直到最大值直到最大值3276732767为止。为止。使能端无效,使能端无效,T37T37自动复位,当前值清自动复位,当前值清0 0,状态位,状态位OFFOFF。等价于:等价于:R R TxxxTxxx,1 (1 (TxxxTxxx位和当前值均清零位和
46、当前值均清零) )若若I0.0I0.0接通时间未到设定值就断开,当前值则立接通时间未到设定值就断开,当前值则立即复位,即复位,Q0.0Q0.0不会有输出。不会有输出。用于通电后用于通电后单一时间间隔单一时间间隔的定时的定时如:走廊灯每隔如:走廊灯每隔5s5s断开一次、十字路口交通灯断开一次、十字路口交通灯I0.0( )( )Q0.0T37T3737ININTONTONPTPT100ms100ms+100LD I0.0TON T37,100LD T37= Q2、断开延时定时器、断开延时定时器 TOF 使能端(使能端(ININ)有效时,)有效时, TxxxTxxx位位立即置立即置1 1,而当前值被
47、清,而当前值被清0;0;使能端(使能端(ININ)断开时,开始计时,当前值从)断开时,开始计时,当前值从0 0递增,当前值递增,当前值 = =预置值时,预置值时, TxxxTxxx位位复位为复位为0 0,停止计时,当前值保持不变停止计时,当前值保持不变 当输入端再次由断开到接通时,定时器位当输入端再次由断开到接通时,定时器位ONON,当前值,当前值0 0如果输入断开的时间如果输入断开的时间预定时间,定时器仍保持接通。使能预定时间,定时器仍保持接通。使能 端端IN IN 再接通时,定时器当前值仍设为再接通时,定时器当前值仍设为0 0。(可以(可以R R指令复位指令复位 TxxTxx,使,使Txx
48、Txx位和当前值清零)位和当前值清零) 用用于断电后单一时间间隔的定时。于断电后单一时间间隔的定时。即在输入断开后延时一段时间,才断开输出即在输入断开后延时一段时间,才断开输出。 多用于设备停机、故障时间后的延时多用于设备停机、故障时间后的延时 如:电机关闭后再过如:电机关闭后再过5s5s才使冷却风机停止、电磁炉风扇才使冷却风机停止、电磁炉风扇I0.0( )( )Q0.0T37T3737ININTOFTOFPTPT100ms100ms +30LD I0.0TOF T37,30LD T37= Q3、保持型接通延时定时器、保持型接通延时定时器 TONR多个时间间隔的累计定时多个时间间隔的累计定时(
49、对多段不连续时间进行累计)(对多段不连续时间进行累计) 如:象棋比赛如:象棋比赛 从参赛者思考就开始计时从参赛者思考就开始计时使能端(使能端(ININ)输入有效(接通)时,定时器开始计)输入有效(接通)时,定时器开始计 时,当前值递增,当前值时,当前值递增,当前值预置值(预置值(PTPT)时,输出)时,输出 状态位置状态位置1 1,当前值继续增直到最大值,当前值继续增直到最大值3276732767使能端输入无效(断开)时,使能端输入无效(断开)时,TxxTxx和和当前值均保持当前值均保持 (记忆);(记忆);使能端(使能端(ININ)再次接通有效时,在原记忆)再次接通有效时,在原记忆 值的基础
50、上递增计时。值的基础上递增计时。I0.0( )( )Q0.0T3T3 3ININTONRTONRPTPT100ms100ms +100LD I0.0TONR T3,100LD T3= Q0.0t t1 1t t2 2t t1 1+t+t2 2=10s=说明:上电或首次扫描周期所有定时器位清零说明:上电或首次扫描周期所有定时器位清零 TONTON、TOFTOF当前值也清当前值也清0 0,TONRTONR当前值保持掉电前的值当前值保持掉电前的值区别:区别:TONRTONR只能用只能用R R指令才能使定时器当前值和定时器位均指令才能使定时器当前值和定时器位均 清零,否则一直保持清零,否则一直保持;