PLC原理与实验--PLC程序设计基础_第1页
PLC原理与实验--PLC程序设计基础_第2页
PLC原理与实验--PLC程序设计基础_第3页
PLC原理与实验--PLC程序设计基础_第4页
PLC原理与实验--PLC程序设计基础_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-6-15Ch2 PLC程序设计基础1返回返回第第2章章 PLCPLC程序设计基础程序设计基础2.1 PLC的编程语言与程序结构 2.2 存储器的数据类型与寻址方式 2.3 位逻辑指令 2.4 定时器与计数器指令 2021-6-15Ch2 PLC程序设计基础22.1 可编程序控制器的编程语言与程序结构 211 可编程序控制器编程语言的国际标准可编程序控制器编程语言的国际标准 212 SIMATIC指令集与指令集与IECll31-3指令集指令集 213 可编程序控制器的程序结构可编程序控制器的程序结构返回返回2021-6-15Ch2 PLC程序设计基础3211 可编程序控制器编程语言的国

2、际标准可编程序控制器编程语言的国际标准 IEC(国际电工委员会国际电工委员会)是为电子技术的所有领域制订全球标是为电子技术的所有领域制订全球标准的世界性组织。准的世界性组织。IEC于于1994年年5月公布了可编程序控制器标月公布了可编程序控制器标准准(IEC1131),该标准鼓励不同的可编程序控制器制造商提供该标准鼓励不同的可编程序控制器制造商提供在外观和操作上相似的指令在外观和操作上相似的指令。它由以下。它由以下:。其中的第三部其中的第三部分分(IEC11313)是可编程序控制器的编程语言标准是可编程序控制器的编程语言标准IEC1131-3.标准使用户在使用新的可编程序控制器时,可以减少重新

3、培训标准使用户在使用新的可编程序控制器时,可以减少重新培训的时间;对于厂家,使用标准将减少产品开发的时间,可以投的时间;对于厂家,使用标准将减少产品开发的时间,可以投入更多的精力去满足用户的特殊要求。入更多的精力去满足用户的特殊要求。 返回返回2021-6-15Ch2 PLC程序设计基础4 目前已有越来越多的生产可编程序控制器的厂家提供符合目前已有越来越多的生产可编程序控制器的厂家提供符合IEC11313标准的产品,有的厂家推出的在个人计算机上运行的标准的产品,有的厂家推出的在个人计算机上运行的“软件软件PLC”软件包也是按软件包也是按IEC1131-3标准设计的。标准设计的。 IEC1131

4、-3详细地说明了详细地说明了: (1)顺序功能图顺序功能图(Sequential Function Chart) (2)梯形图梯形图(Ladder Diagram) (3)功能块图功能块图(Function Block Diagram) (4)指令表指令表(Instruction List)。 (5)结构文本结构文本(Structured Text)。 标准中有两种图形语言标准中有两种图形语言)和和,还有两种文字语言还有两种文字语言和和,可以认为,可以认为。 顺序功能图顺序功能图梯形图梯形图功能块图功能块图指令表指令表结构文本结构文本PLCPLC的编程语言的编程语言2021-6-15Ch2 P

5、LC程序设计基础5 这是一种这是一种,用来编制顺序控制程序,在第,用来编制顺序控制程序,在第4章中将作详细的介绍。章中将作详细的介绍。 顺序功能图提供了一种组织程序的图顺序功能图提供了一种组织程序的图形方法,在顺序功能图中可以用别的语言形方法,在顺序功能图中可以用别的语言嵌套编程。嵌套编程。可以用顺序功能图来。可以用顺序功能图来描述系统的功能,根据它可以很容易地画描述系统的功能,根据它可以很容易地画出梯形图程序。出梯形图程序。 顺序功能图顺序功能图2021-6-15Ch2 PLC程序设计基础6 梯形图梯形图。,如外部的开关、按钮和内部条件等。,如外部的开关、按钮和内部条件等。,用来控制外部的指

6、示灯、交流接触器和,用来控制外部的指示灯、交流接触器和内部的输出条件等。内部的输出条件等。 在分析梯形图中的逻辑关系时,为了借用在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,继电器电路图的分析方法,(S7-200的梯形图中省略了右侧的垂直母线的梯形图中省略了右侧的垂直母线),。 梯形图梯形图2021-6-15Ch2 PLC程序设计基础7 (Network),。 使用编程软件可以直接生成和编辑使用编程软件可以直接生成和编辑梯形图,并将它下载到可编程序控制梯形图,并将它下载到可编程序控制器。器。 梯形图梯形图2021-6-15Ch2 PLC程序设计基础8 这是一种这是一种,有数字电,

7、有数字电路基础的人很容易掌握。该编程语言用类似与门、或门的方路基础的人很容易掌握。该编程语言用类似与门、或门的方框来表示逻辑运算关系,框来表示逻辑运算关系,输入、输出端的小圆圈表示,输入、输出端的小圆圈表示“非非”运算,运算,方框被方框被“导线导线”连接在一起,信号自左向右流动。图中的控连接在一起,信号自左向右流动。图中的控制逻辑与前图中的相同。(比较书中制逻辑与前图中的相同。(比较书中28页图页图3-2、3-3) 功能块图与语句表功能块图与语句表 2021-6-15Ch2 PLC程序设计基础9 S7系列可编程序控制器将指令表称为语句表系列可编程序控制器将指令表称为语句表(Statement

8、List)。,由指令,由指令组成的程序叫做指令表程序或语句表程序。组成的程序叫做指令表程序或语句表程序。 语句表比较适合熟悉可编程序控制器和逻辑程序语句表比较适合熟悉可编程序控制器和逻辑程序设计的经验丰富的程序员,语句表可以实现某些不能设计的经验丰富的程序员,语句表可以实现某些不能用梯形图或功能块图实现的功能。用梯形图或功能块图实现的功能。 S7-200CPU在执行程序时要用到逻辑堆栈,在执行程序时要用到逻辑堆栈,。在语句表中,必须由编程人员加入这些堆栈处。在语句表中,必须由编程人员加入这些堆栈处理指令。理指令。 2021-6-15Ch2 PLC程序设计基础10 结构文本结构文本(ST)是为是

9、为IEC1131-3标准创建的一标准创建的一种专用的高级编程语言。与梯形图相比,它能种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和实现复杂的数学运算,编写的程序非常简洁和紧凑。包括变量、操作符、控制流程语句。最紧凑。包括变量、操作符、控制流程语句。最大的优点是可以简化复杂的数学方程。大的优点是可以简化复杂的数学方程。 2021-6-15Ch2 PLC程序设计基础11 在在S7-200的编程软件中,用户的编程软件中,用户。 ,所以在设计复杂的开关量控制程序时一般使用梯形图语言。所以在设计复杂的开关量控制程序时一般使用梯形图语言。语句表可以处理某些不能用梯形图处理

10、的问题,梯形图编写语句表可以处理某些不能用梯形图处理的问题,梯形图编写的程序一定能转换为语句表。的程序一定能转换为语句表。 梯形图程序中输入信号与输出信号之间的逻辑关系一目梯形图程序中输入信号与输出信号之间的逻辑关系一目了然,易于理解,与继电器电路图的表达方式极为相似,了然,易于理解,与继电器电路图的表达方式极为相似,。语句表输入方便。语句表输入方便快捷,梯形图中功能块对应的语句只占一行的位置,还可以快捷,梯形图中功能块对应的语句只占一行的位置,还可以为每一条语句加上注释,便于复杂程序的阅读。为每一条语句加上注释,便于复杂程序的阅读。在设计通信、在设计通信、数学运算等高级应用程序时建议使用语句

11、表语言数学运算等高级应用程序时建议使用语句表语言。 2021-6-15Ch2 PLC程序设计基础12 7SIMATIC指令集与指令集与IEC1131-3指令集指令集 供供S7-200使用的使用的STEP 7MicroWIN 32编程软件提供两种指编程软件提供两种指令集:令集:,前者由西门子公司,前者由西门子公司提供,它的某些指令不是提供,它的某些指令不是IEC1131-3中的标准指令。通常中的标准指令。通常 IEC1131-3指令集的指令较少,其中的某些指令集的指令较少,其中的某些“块块”指令可接受多指令可接受多种数据格式。例如种数据格式。例如 SIMATIC指令集中的加法指令被分为指令集中的

12、加法指令被分为ADDI(整数加整数加)、ADDDI(双字整数加双字整数加)与与ADDR(实数加实数加)等,等,。IEC1131-3指令通过检查参数中的数指令通过检查参数中的数据格式错误,还可以减少程序设计中的错误。据格式错误,还可以减少程序设计中的错误。 在在IEC1131-3指令编辑器中,有些是指令编辑器中,有些是SIMATIC指令集中的指指令集中的指令,它们作为令,它们作为IEC1131-3指令集的非标准扩展,在编程软件的帮助指令集的非标准扩展,在编程软件的帮助文件中的指令树内用红色的文件中的指令树内用红色的“+”号标记。号标记。返回返回2021-6-15Ch2 PLC程序设计基础1321

13、2 PLC的程序结构的程序结构 主程序是程序的主体,主程序是程序的主体,。 。STEP7-MicroWIN 32的程序编辑的程序编辑器窗口下部的标签用来选择不同的程序。器窗口下部的标签用来选择不同的程序。返回返回2021-6-15Ch2 PLC程序设计基础14 。同一地方被多次调用,使用子程序可以简化程。同一地方被多次调用,使用子程序可以简化程序代码和减少扫描时间。设计得好的子程序容易移植到别序代码和减少扫描时间。设计得好的子程序容易移植到别的项目中去。的项目中去。 中断程序是指令的一个可选集合,中断程序不是被主程中断程序是指令的一个可选集合,中断程序不是被主程序调用,序调用,。中断程序用来处

14、理预先规定的中断事件,。中断程序用来处理预先规定的中断事件, 2021-6-15Ch2 PLC程序设计基础1522 存储器的数据类型与寻址方式 221 数据在存储器中存取的方式数据在存储器中存取的方式 222 不同存储区的寻址不同存储区的寻址223 直接寻址与间接寻址直接寻址与间接寻址 224 绝对地址与符号地址绝对地址与符号地址 返回返回2021-6-15Ch2 PLC程序设计基础16221 数据在存储器中存取的方式数据在存储器中存取的方式 二进制数的二进制数的1位位(bit)只有只有0和和1两种不同的取值,可用来两种不同的取值,可用来表示开关量表示开关量(或称数字量或称数字量)的两中不同的

15、状态,如触点的断开的两中不同的状态,如触点的断开和接通,线圈的通电和断电等。和接通,线圈的通电和断电等。位数据的数据类型为位数据的数据类型为BOOL(布尔布尔)型。型。 返回返回2021-6-15Ch2 PLC程序设计基础17 (见图见图 ),其中的第,其中的第0位为最低位为最低位:位:LSB:、第:、第7位为最高位位为最高位( MSB)。(见图)一般用二进制补码(见图)一般用二进制补码表示有符号数,其最高位为符号位,最高位为表示有符号数,其最高位为符号位,最高位为0时为正数,时为正数,为为1时为负数,最大的时为负数,最大的16位正数为位正数为 7FFFH表示十六进制数。表示十六进制数。字节、

16、字和双字的取值范围见表。字节、字和双字的取值范围见表。 图图 字、字节和双字对同一地址存取操作的比较字、字节和双字对同一地址存取操作的比较 a)VB100 b)VWl00 c)VDl002021-6-15Ch2 PLC程序设计基础18 ,如,如I3.2,其中的区域标识符,其中的区域标识符“I表示输入表示输入(Input),字节地,字节地址为址为3,位地址为,位地址为2(见图见图)。这种存取方式称为。这种存取方式称为“”寻址方式。寻址方式。 输入字节输入字节(B是是Byte的缩写的缩写)由由这这8位组位组成。成。位数据的存放位数据的存放2021-6-15Ch2 PLC程序设计基础19 图图 字、

17、字节和双字对同一地址存取操作的比较字、字节和双字对同一地址存取操作的比较 a)VB100 b)VWl00 c)VDl002021-6-15Ch2 PLC程序设计基础20222 PLC的的存储区存储区 ,外部输入电路接通时,外部输入电路接通时对应的映像寄存器为对应的映像寄存器为ON(1状态状态)。输入端可以外接常开触点或。输入端可以外接常开触点或常闭触点,也可以接多个触点组成的串并联电路。常闭触点,也可以接多个触点组成的串并联电路。 返回返回2021-6-15Ch2 PLC程序设计基础21 输出映像寄存器的标识符为输出映像寄存器的标识符为,。2021-6-15Ch2 PLC程序设计基础22 在程

18、序执行的过程中在程序执行的过程中。 。虽然名为。虽然名为“位存储器区位存储器区”,表示按位存取,但是也可以按字节、字或双字来存取。表示按位存取,但是也可以按字节、字或双字来存取。 。S7-200有三种有三种定时器,它们的时基增量分别为定时器,它们的时基增量分别为,定时,定时器的当前值寄存器是器的当前值寄存器是16位有符号整数,用于存储定时器累位有符号整数,用于存储定时器累计的时基增量值计的时基增量值(132 767)。2021-6-15Ch2 PLC程序设计基础23。,带位,带位操作数的指令存取定时器位,带字操作数的指令存取当前值。操作数的指令存取定时器位,带字操作数的指令存取当前值。计数器用

19、来累计其计数输入端脉冲电平由低到高的次数,计数器用来累计其计数输入端脉冲电平由低到高的次数,CPU提供提供。计数器的当。计数器的当前值为前值为16位有符号整数,用来存放累计的脉冲数位有符号整数,用来存放累计的脉冲数(132 767)。2021-6-15Ch2 PLC程序设计基础24用计数器地址用计数器地址(C和计数器号,如和计数器号,如C20)来存取当前值和计数来存取当前值和计数器位,带位操作数的指令存取计数器位,带字操作数的指令器位,带位操作数的指令存取计数器位,带字操作数的指令存取当前值。存取当前值。 高速计数器用来累计比高速计数器用来累计比CPU的扫描速率更快的事件,其的扫描速率更快的事

20、件,其,当前值为只读数据。,当前值为只读数据。2021-6-15Ch2 PLC程序设计基础25累加器是可以像存储器那样使用的读写单元,例如可以用它累加器是可以像存储器那样使用的读写单元,例如可以用它向子程序传递参数,或从子程序返回参数,以及向子程序传递参数,或从子程序返回参数,以及。如在指令。如在指令 中,中,AC2按字按字(W)存取。存取。 2021-6-15Ch2 PLC程序设计基础26 ,2021-6-15Ch2 PLC程序设计基础27 S7-200有有,其中,其中60个可以作为暂时个可以作为暂时存储器,或给子程序传递参数。如果用梯形图编程,编程软件存储器,或给子程序传递参数。如果用梯形

21、图编程,编程软件保留这些局部存储器的后保留这些局部存储器的后4个字节。如果用语句表编程,可以个字节。如果用语句表编程,可以使用所有的使用所有的64个字节,但是建议不要使用最后个字节,但是建议不要使用最后4个字节。个字节。 各各POU(Program Organizational Unit,程序组织单元,即,程序组织单元,即主程序、子程序和中断程序主程序、子程序和中断程序)有自己的局部变量表,局部变量有自己的局部变量表,局部变量在它被创建的在它被创建的POU中有效。变量存储器中有效。变量存储器(V)是全局存储器,可是全局存储器,可以被所有的以被所有的POU存取。存取。 ,各程序不能访问别,各程序

22、不能访问别的程序的局部存储器。的程序的局部存储器。 因为局部变量使用临时的存储区,子程序每次被调用时,因为局部变量使用临时的存储区,子程序每次被调用时,应保证它使用的局部变量被初始化。应保证它使用的局部变量被初始化。2021-6-15Ch2 PLC程序设计基础28 S7-200将现实世界连续变化的模拟量将现实世界连续变化的模拟量(如温度、压力、如温度、压力、电流、电压等电流、电压等)用用AD转换器转换为转换器转换为,2021-6-15Ch2 PLC程序设计基础29 S7-200将将1个字长的数字用个字长的数字用DA转换器转换为现实世转换器转换为现实世界的模拟量,界的模拟量,。因为模拟量输出是。

23、因为模拟量输出是一个字长,应从偶数字节地址开始存放一个字长,应从偶数字节地址开始存放(如如AQW2、AQW4、AQW6等等),用户不能读取模拟量输出值。,用户不能读取模拟量输出值。 2021-6-15Ch2 PLC程序设计基础30 ,CPU以二进以二进制方式存储常数,制方式存储常数,表是常,表是常数的例子。数的例子。 顺序控制继电器顺序控制继电器(SCR)位位,SCR提供控制程序的逻辑分段,详细的使用方法见提供控制程序的逻辑分段,详细的使用方法见53节。节。 2021-6-15Ch2 PLC程序设计基础31223 直接寻址与间接寻址直接寻址与间接寻址 ,例如,例如。可以用字节(。可以用字节(B

24、)、)、字(字(W)或双字()或双字(DW)方式存取)方式存取V、I、Q、M、S和和SM存存储器区。例如储器区。例如,。 。 返回返回2021-6-15Ch2 PLC程序设计基础32 S7-200CPU允许使用指针对下述存储区域进行间接寻址:允许使用指针对下述存储区域进行间接寻址:。但。但。 使用间接寻址之前,应创建一个指向该位置的指针。使用间接寻址之前,应创建一个指向该位置的指针。,。为了生成指针,必须用双字传送。为了生成指针,必须用双字传送指令指令(MOVD)将某个位置的地址移入另一位置或累加器作为指将某个位置的地址移入另一位置或累加器作为指针。针。,例如:,例如:MOVD&VB200,A

25、C1MOVD&C3,VD6MOVD &MB4,LD82021-6-15Ch2 PLC程序设计基础33 。图中的。图中的* AC1表示表示AC1是一个指针,是一个指针,*AC1是是MOVW指令确定的一个字长的数据。此例中,指令确定的一个字长的数据。此例中,。 2021-6-15Ch2 PLC程序设计基础34 ,。 2021-6-15Ch2 PLC程序设计基础3523 位逻辑指令23 1 触点指令触点指令 23 2 输出指令输出指令 23 3 其他指令其他指令 返回返回2021-6-15Ch2 PLC程序设计基础36 。在。在语句表中,分别用语句表中,分别用LD(Load,装载,装载)、A(And

26、,与,与)和和O(Or,或,或)指令来表示开始、串联和并联的常开触点指令来表示开始、串联和并联的常开触点(见表见表)。 LD bit 装载电路开始的常开触点装载电路开始的常开触点 A bit 与与 串联的常开触点串联的常开触点 O bit 或或 并联的常开触点并联的常开触点 LDN bit 非非 装载电路开始的常闭触点装载电路开始的常闭触点 AN bit 非与非与 串联的常闭触点串联的常闭触点 ON bit 非或非或 并联的常闭触点并联的常闭触点 标准触点指令标准触点指令231 触点指令触点指令 返回返回2021-6-15Ch2 PLC程序设计基础37 S7-200有有1个个9位的堆栈,位的堆

27、栈,(见图见图3-12)。堆栈中的数据一般按。堆栈中的数据一般按“”的原则存取。的原则存取。 执行执行LD指令时,将指令指定的位地址中的二进制数据装载入栈顶。执行指令时,将指令指定的位地址中的二进制数据装载入栈顶。执行A(与与)指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相“与与”,结果,结果存入栈顶。执行存入栈顶。执行O指令时,将指令指定的位地址中的二进制数和栈顶中的二进制指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相数相“或或”,结果存入栈顶。,结果存入栈顶。 执行常闭触点对应的执行常闭触点对应的LDN,AN

28、和和ON指令时,取出指令指定的位地址中的二进指令时,取出指令指定的位地址中的二进制数据后,将它取反(制数据后,将它取反(0变为变为1,1变为变为0),然后再做对应的装载、与、或操作。),然后再做对应的装载、与、或操作。 与堆栈与堆栈有关的指令有关的指令 ALD 装载与,电路块串联连接装载与,电路块串联连接 OLD 装载或,电路块并联连接装载或,电路块并联连接 LPS 入栈入栈 LRD 读栈读栈 LPP 出栈出栈 LDS n 装载堆栈装载堆栈 2021-6-15Ch2 PLC程序设计基础38 。在语句表中,分别用在语句表中,分别用LDN(Load Not)、AN(And Not)和和ON(0r

29、Not)来表示开始、串联和并联的常闭触点来表示开始、串联和并联的常闭触点(见表见表3-3)。触点符。触点符号中间的号中间的“,触点指令中变量的数据类型为,触点指令中变量的数据类型为BOOL型。下图是触点与输出指令的例子。型。下图是触点与输出指令的例子。I0.0I0.1I0.3I0.2( )Q0.3( )Q1.4( )Q2.6C5I3.4LDI0.0ANI0.1OI0.2AI0.3ONC5=Q0.3=Q1.4ANI3.4=Q2.6触点与输出指令的例子触点与输出指令的例子2021-6-15Ch2 PLC程序设计基础39I1.4C24I0.3T16( )Q5 .3Q3.4I3.2I1.2 。要想将下

30、图中由要想将下图中由I32和和/T16的触点组成的串联电路与它上面的电的触点组成的串联电路与它上面的电路并联,首先需要完成两个串联电路块内部的路并联,首先需要完成两个串联电路块内部的“与与”逻辑运算逻辑运算(即即触点的串联触点的串联),。前两条指令执行完后,。前两条指令执行完后,“与与”运算的结果运算的结果“与与”运算运算的结果的结果存放在栈顶,第存放在栈顶,第3、4条指令执行完后,条指令执行完后,“与与”运算的结果运算的结果压入栈顶,原来在栈顶的压入栈顶,原来在栈顶的S0被推到堆栈被推到堆栈的第的第2层,第层,第2层的数据被推到第层的数据被推到第3层层栈底的数据丢失。栈底的数据丢失。LDNC

31、24ONI1.2ALDLDNI1.4AI0.3LDI3.2ANT16OLDOQ3.4=Q5.3RETURN2021-6-15Ch2 PLC程序设计基础40 用逻辑用逻辑“或或”操作对堆栈第操作对堆栈第1层和第层和第2层的层的数据相数据相“或或”,即,即,并将运算结,并将运算结果果S2=S0+S1存入堆栈的顶部。存入堆栈的顶部。第第3第第9层的数据依次向上层的数据依次向上移动一位(移动一位(x表示不确定的表示不确定的值)。值)。 S1S0iv0iv1iv2iv3iv4iv5iv6S2iv0iv1iv2iv3iv4iv5iv6 xS2=S0+S1OLD(栈顶值或)(栈顶值或)第第1层层(栈顶栈顶)

32、第第2层层第第3层层第第4层层第第5层层第第6层层第第7层层第第8层层第第9层层(栈底栈底)2021-6-15Ch2 PLC程序设计基础41第第1 1层层( (栈顶栈顶) )第第2 2层层第第3 3层层第第4 4层层第第5 5层层第第6 6层层第第7 7层层第第8 8层层第第9 9层层( (栈底栈底) )S3S2iv0iv1iv2iv3iv4iv5iv6S4iv0iv1iv2iv3iv4iv5iv6 x执行前执行前执行后执行后S4=S2 . S3ALD(栈顶值与)(栈顶值与) 图图3-9中中OLD后面的两条指令将后面的两条指令将两 个 触 点 并 联 , 运 算 结 果两 个 触 点 并 联

33、, 运 算 结 果压入栈顶,栈中压入栈顶,栈中原来的数据依次向下一层推移,原来的数据依次向下一层推移,栈底值被推出丢失。栈底值被推出丢失。ALD指令指令用逻辑用逻辑“与与”操作对堆栈第操作对堆栈第1层层和第和第2层的数据相层的数据相“与与”,即将,即将两个电路块串联,并将运算结两个电路块串联,并将运算结果果存入堆栈的顶部存入堆栈的顶部(见见图图,图中,图中x表示不确定的值表示不确定的值)。 将电路块串并联时,每增加将电路块串并联时,每增加一一 个用个用LD或或LDN指令开始的电指令开始的电路块的运算结果,堆栈中增加路块的运算结果,堆栈中增加一个数据,堆栈深度加一个数据,堆栈深度加1,每执,每执

34、行一条行一条ALD或或OLD指令,堆栈指令,堆栈深度减深度减1 2021-6-15Ch2 PLC程序设计基础42 入栈入栈(LPS,Logic Push)指令复制栈顶的指令复制栈顶的值并将其压入堆栈的下值并将其压入堆栈的下一层,栈中原来的数据一层,栈中原来的数据依次向下一层推移,栈依次向下一层推移,栈底值被推出丢失(见底值被推出丢失(见图)。图)。iv0iv1iv2iv3iv4iv5iv6iv7iv8iv0iv0iv1iv2iv3iv4iv5iv6iv7入栈前入栈前入栈后入栈后LPS(入栈)(入栈)2021-6-15Ch2 PLC程序设计基础43iv0iv1iv2iv3iv4iv5iv6iv7

35、iv8iv1iv1iv2iv3iv4iv5iv6iv7iv8读栈前读栈前读栈后读栈后LRD(读栈)(读栈)堆栈操作堆栈操作2021-6-15Ch2 PLC程序设计基础44iv0iv1iv2iv3iv4iv5iv6iv7iv8iv1iv2iv3iv4iv5iv6iv7iv8 x出栈前出栈前出栈后出栈后LPP(出栈)(出栈)堆栈操作堆栈操作2021-6-15Ch2 PLC程序设计基础45iv0iv1iv2iv3iv4iv5iv6iv7iv8iv3iv0iv1iv2iv3iv4iv5iv6iv7执行前执行前执行后执行后LDS3(装载堆栈)(装载堆栈)堆栈操作堆栈操作2021-6-15Ch2 PLC程

36、序设计基础46I0.0LPSI0.1I0.5( )Q0.3( )M3.7( )Q2.1LRDLPPI0.2 I0.4堆栈指令的使用堆栈指令的使用LDI0.2AI0.0LPSANI0.1=Q2.1LRDAI0.5=M3.7LPPANI0.4=Q0.3与堆栈与堆栈有关的指令有关的指令 ALD 装载与,电路块串联连接装载与,电路块串联连接 OLD 装载或,电路块并联连接装载或,电路块并联连接 LPS 入栈入栈 LRD 读栈读栈 LPP 出栈出栈 LDS n 装载堆栈装载堆栈 2021-6-15Ch2 PLC程序设计基础47I0.0I1.4( )Q0.3( )I/ II/ I/ IIIQ3.4I0.5

37、I0.1I0.4I0.2LDNI I0.5OII0.1AII1.4=Q0.3LDII0.4ONII0.2ANII0.0ANII0.0=IQ3.4立即触点与输出指令立即触点与输出指令 立即立即(Immediate)触点指令只能用于输入触点指令只能用于输入I,执行立即触点指令,执行立即触点指令时,时,。在语句表。在语句表中,分别中,分别触点符号中间的触点符号中间的“I ”和和“I”表示立即常开和立即常闭。下表示立即常开和立即常闭。下图是立即触点与输出指令的例子。图是立即触点与输出指令的例子。 2021-6-15Ch2 PLC程序设计基础48LDI bit立即装载电路开始的常开触点立即装载电路开始的

38、常开触点 AI bit立即与串联的常开触点立即与串联的常开触点 OI bit立即或并联的常开触点立即或并联的常开触点 LDNI bit立即非装载电路开始的常闭触片立即非装载电路开始的常闭触片 ANI bit立即非与串联的常闭触点立即非与串联的常闭触点 ONI bit立即非或并联的常闭触点立即非或并联的常闭触点 2021-6-15Ch2 PLC程序设计基础49 。输出指令将栈顶值复制到对。输出指令将栈顶值复制到对应的映像寄存器。输出类指令应放在梯形图的最右边,应的映像寄存器。输出类指令应放在梯形图的最右边,变量为变量为BOOL型。型。23 2 输出指令输出指令 返回返回2021-6-15Ch2

39、PLC程序设计基础50 立即输出指令立即输出指令(=I)只能用于输出量只能用于输出量(Q),执行该指令时,执行该指令时,将栈顶值立即写入指定的物理输出位和对应的输出映像寄将栈顶值立即写入指定的物理输出位和对应的输出映像寄存器。线圈符号中的存器。线圈符号中的“I”用来表示立即输出。用来表示立即输出。 I0.0I1.4( )Q0.3( )I/ II/ I/ IIIQ3.4I0.5I0.1I0.4I0.2LDNI I0.5OII0.1AII1.4=Q0.3LDII0.4ONII0.2ANII0.0ANII0.0=IQ3.4立即触点与输出指令立即触点与输出指令2021-6-15Ch2 PLC程序设计基

40、础51 执行执行S(Set,置位或置,置位或置1)与与R(Reset,复位或置,复位或置0)指令时,指令时,图中,图中N=1。如果图中。如果图中I0.1的常开触点接的常开触点接通,通,Q0.3变为变为1并保持该状态,即使并保持该状态,即使I0.1的常开触点断开,它也的常开触点断开,它也仍然保持仍然保持1状态。当状态。当I0.3的常开触点闭合时,的常开触点闭合时,Q0.3变为变为0,并保持,并保持该状态,即使该状态,即使I0.3的常开触点断开,它也仍然保持的常开触点断开,它也仍然保持0状态。状态。 如果被指定复位的是定时器位如果被指定复位的是定时器位(T)或计数器位或计数器位(C),将清除定,将

41、清除定时器时器/计数器的当前值。计数器的当前值。 I0.1( )SQ0.3I0.3( )RQ0.3I0.4( )SIQ0.5I0.5( )RIQ0.51111LDI0.1SQ0.3,1LDI0.3RQ0.3,1LDI0.4SIQ0.5,1LDI0.5RIQ0.5,1I0.1I0.3Q0.32021-6-15Ch2 PLC程序设计基础52返回返回 执行执行SI(Set Immediate,立即置位,立即置位)或或RI(Reset Immediate,立即复位立即复位)指令时,指令时,。线圈中的。线圈中的I表示立即。表示立即。, 使使S、R、SI和和RI指令指令ENO(使能输出使能输出)=0的错误

42、条件:的错误条件:SM43(运行时间运行时间),0006(间接寻址间接寻址),0091(操作数超出范围操作数超出范围)。 = bit输出输出=I bit立即输出立即输出 S bit,N置位置位 SI bit,N立即置位立即置位 R bit,N复位复位 RI bit,N立即复位立即复位 输出类指令输出类指令2021-6-15Ch2 PLC程序设计基础53 取反触点指令将它左边电路的逻辑运算结果取反取反触点指令将它左边电路的逻辑运算结果取反(见图),(见图),运算结果若为运算结果若为1则变为则变为0,为,为0则变为则变为1,该指令没有操作数。能,该指令没有操作数。能流到达该触点时即停止,若能流未到

43、达该触点,该触点给右侧流到达该触点时即停止,若能流未到达该触点,该触点给右侧供给能流。供给能流。NOT指令将堆栈顶部的值从指令将堆栈顶部的值从0改为改为1,或从,或从1该为该为0。 ( )M1.5PI0.3( )M3.2NI0.3( )M0.3NOTI0.7LDI0.3EU=M1.5LDI0.3ED=IM3.2LDI0.7NOT=M0.3I0.3M1.5M3.2I0.7M0.3233 其他指令其他指令 返回返回2021-6-15Ch2 PLC程序设计基础54 正跳变触点检测到一次正跳变(触点的输入信号由正跳变触点检测到一次正跳变(触点的输入信号由0变为变为1)时,或负跳变触点检测到一次负跳变时

44、,或负跳变触点检测到一次负跳变(触点的输入信号由触点的输入信号由1变为变为0)时,时,。正负跳变指令的助记符分别为。正负跳变指令的助记符分别为EU(Edge Up,上升沿,上升沿)和和ED(Edge Down,下降沿,下降沿),它们没有,它们没有操作数,触点符号中间的操作数,触点符号中间的(“P”和和“N”分别表示正跳变分别表示正跳变(Positive Transition)和负跳变和负跳变(Negative Transition)(见图见图)。I1.4( )M1.5PI0.3I1.4( )M3.2NI0.3I1.4( )M0.3NOTI0.7LDI0.3EU=M1.5LDI0.3ED=IM3

45、.2LDI0.7NOT=M0.3I0.3M1.5M3.2I0.7M0.32021-6-15Ch2 PLC程序设计基础55空操作指令空操作指令(NOP N)不影响程序的执行,操作数不影响程序的执行,操作数N=0255 NOT取反取反EU正跳变正跳变 ED负跳变负跳变 NOP N空操作空操作 其它指令其它指令2021-6-15Ch2 PLC程序设计基础562.4 定时器与计数器指令 241 通电延时定时器指令通电延时定时器指令 242 断电延时定时器指令断电延时定时器指令 243 保持型通电延时定时器保持型通电延时定时器 244 定时器当前值刷新的方法定时器当前值刷新的方法 245 计数器指令计数

46、器指令 返回返回2021-6-15Ch2 PLC程序设计基础57241 通电延时定时器指令通电延时定时器指令 (INT),允许的,允许的。返回返回 通电延时定时器通电延时定时器(TON)输入端输入端(IN)的输的输入电路接通时开始定入电路接通时开始定时。时。,2021-6-15Ch2 PLC程序设计基础58 。第一次扫描时定时器位。第一次扫描时定时器位OFF,当前值为,当前值为0。定时器。定时器有有1ms、10ms和和100ms三种分辨率,分辨率取决于定时器号三种分辨率,分辨率取决于定时器号(见表见表)。 定时器和计数器的设定值的数据类型均为定时器和计数器的设定值的数据类型均为型,型, 定时器

47、特性定时器特性 返回返回2021-6-15Ch2 PLC程序设计基础59242 断电延时定时器指令断电延时定时器指令 断电延时断电延时定时器定时器(TOF)用来在用来在。它用输。它用输入 从入 从 O N 到到OFF的负跳变的负跳变启动定时。启动定时。断电延时定时器断电延时定时器 返回返回2021-6-15Ch2 PLC程序设计基础60 (见图见图) ,例如,例如3.4.2断电延时定时器指令不能同时使用断电延时定时器指令不能同时使用TON T32和和TOF T32。 。 2021-6-15Ch2 PLC程序设计基础61243 保持型通电延时定时器保持型通电延时定时器 保持型通电延时定时器保持型

48、通电延时定时器(Retentive On-Delay Timer,TONR)的输入电路接通的输入电路接通时,开始定时。当前值大于等于时,开始定时。当前值大于等于PT端指定的设定值时,定时器位变为端指定的设定值时,定时器位变为ON。达到。达到设定值后,当前值仍继续计数,直到最大值设定值后,当前值仍继续计数,直到最大值32767 . 输入电路断开时,当前输入电路断开时,当前值保持不变。可用值保持不变。可用TONR来来累计输入电路接通的若干个累计输入电路接通的若干个时间间隔。时间间隔。图中的时间。图中的时间间隔间隔100ms时,时,10ms定时定时器器T2的定时器位变为的定时器位变为ON。 在第一个

49、扫描周期,定在第一个扫描周期,定时器位为时器位为OFF。可以在系统。可以在系统块中设置块中设置TONR的当前值有的当前值有断电保持功能。断电保持功能。 返回返回2021-6-15Ch2 PLC程序设计基础62244 定时器当前值刷新的方法定时器当前值刷新的方法 1ms定时器对启动后的定时器对启动后的1ms时间间隔计数。定时器指令时间间隔计数。定时器指令执行期间每隔执行期间每隔1ms对定时器位和当前值刷新一次,这一过程对定时器位和当前值刷新一次,这一过程不与扫描周期同步。不与扫描周期同步。返回返回2021-6-15Ch2 PLC程序设计基础63 10ms定时器对启动后的定时器对启动后的10ms时

50、间间隔计数。执行定时间间隔计数。执行定时器指令时开始定时,在每一扫描周期开始时刷新定时器,时器指令时开始定时,在每一扫描周期开始时刷新定时器,将一个扫描周期内增加的将一个扫描周期内增加的10ms时间间隔的个数加到当前值。时间间隔的个数加到当前值。定时器的当前值和定时器位在一个扫描周期内其余的时间定时器的当前值和定时器位在一个扫描周期内其余的时间保持不变。保持不变。 2021-6-15Ch2 PLC程序设计基础64 100ms定时器对启动后的定时器对启动后的100ms时间间隔计数。它在时间间隔计数。它在每一扫描周期开始时刷新定时器,将一个扫描周期内增每一扫描周期开始时刷新定时器,将一个扫描周期内

51、增加的加的100ms时间间隔的个数加到当前值。时间间隔的个数加到当前值。 只有在执行定时器指令时,才对只有在执行定时器指令时,才对100ms定时器的当前值定时器的当前值刷新。因此,如果启动了刷新。因此,如果启动了100ms定时器但是没有在每一扫定时器但是没有在每一扫描周期执行定时器指令,将会丢失时间。描周期执行定时器指令,将会丢失时间。2021-6-15Ch2 PLC程序设计基础65245 计数器指令计数器指令 当复位输入当复位输入(R)电路断开,加计数电路断开,加计数(Count Up)脉冲输入脉冲输入(CU)电路由断开变为接通电路由断开变为接通(即即CU信号的上升沿信号的上升沿),计数器的

52、当前值加,计数器的当前值加1,直至计数最大值,直至计数最大值32 767。当复位输入。当复位输入(R)ON时,计数器被复位,计数时,计数器被复位,计数器位变为器位变为OFF,当前值被清零,当前值被清零(见图见图)。在语句表中,栈顶值是。在语句表中,栈顶值是复位输入复位输入(R),加计数输入值,加计数输入值(CU)放在栈顶下面一层。放在栈顶下面一层。 图 加计数器 返回返回2021-6-15Ch2 PLC程序设计基础66 在 减 计 数在 减 计 数 ( C o u n t Down)脉冲输入脉冲输入CD的上的上升沿升沿(从从OFF到到ON),。装载输入。装载输入(LD)为为ON时,计数器位被复

53、时,计数器位被复位,并把设定值装入当位,并把设定值装入当前值前值(见图见图)。 在语句表中,栈顶在语句表中,栈顶值是装载输入值是装载输入LD,减,减计数输入计数输入CD放在栈顶放在栈顶下面一层。下面一层。 图 减计数器 2021-6-15Ch2 PLC程序设计基础67 复位输入复位输入(R)ON,或对计数器执行复位,或对计数器执行复位(R)指令时,计数器被复位指令时,计数器被复位(见图见图3-22)。当前值为最大值。当前值为最大值32767时,下一个时,下一个CU输入的上升输入的上升沿使当前值变为最小值沿使当前值变为最小值32768。当前值为。当前值为32768时,下一时,下一个的上升沿使当前

54、值变为最大值个的上升沿使当前值变为最大值32767。 在语句表中,栈顶值是复位输入在语句表中,栈顶值是复位输入R,加计数输入,加计数输入CU放在放在堆栈的第堆栈的第2层,减计数输入,层,减计数输入, 堆栈的第堆栈的第3层。层。 计数器的编号范围为计数器的编号范围为C0C255。不同类型的计数器不能。不同类型的计数器不能共用同一计数器号共用同一计数器号 .2021-6-15Ch2 PLC程序设计基础68加减计数器加减计数器 2021-6-15Ch2 PLC程序设计基础69定时器与计数器指令定时器与计数器指令 通电延时定时器通电延时定时器TON TXXX,PT断电延时定时器断电延时定时器TOF T

55、XXX,PT保持型通电延时定时器保持型通电延时定时器 TONR TXXX,PT加计数器加计数器CTU CXXX,PV减计数器减计数器CTD CXXX,PV加减计数器加减计数器CTUD CXXX,PV2021-6-15Ch2 PLC程序设计基础70例例1 1 写出梯形图对应的语句表写出梯形图对应的语句表西门子西门子PLC梯形图梯形图LD I0.0LD I0.0AN I0.1AN I0.1O I0.2O I0.2A I0.3A I0.3O I0.5O I0.5= Q0.3= Q0.3= Q1.4= Q1.4AN I3.4AN I3.4= Q2.6= Q2.62021-6-15Ch2 PLC程序设计

56、基础71 例例2. 4组抢答器设计组抢答器设计 控制要求控制要求1:设计一个:设计一个4组抢答器,任一组抢先按下抢答按钮后,组抢答器,任一组抢先按下抢答按钮后,对应指示灯指示抢答结果,同时锁定抢答器,使其他组抢答按钮无效对应指示灯指示抢答结果,同时锁定抢答器,使其他组抢答按钮无效。在按下复位开关后,可重新开始抢答。在按下复位开关后,可重新开始抢答。 (1) I/O分配:分配:I/O分配表见表。分配表见表。输入触点输入触点功能说明功能说明输出线圈输出线圈功能说明功能说明I0.1第一组抢答按钮第一组抢答按钮Q0.1第一组抢答指示灯第一组抢答指示灯I0.2第二组抢答按钮第二组抢答按钮Q0.2第二组抢

57、答指示灯第二组抢答指示灯I0.3第三组抢答按钮第三组抢答按钮Q0.3第三组抢答指示灯第三组抢答指示灯I0.4第四组抢答按钮第四组抢答按钮Q0.4第四组抢答指示灯第四组抢答指示灯I0.5复位按钮复位按钮2021-6-15Ch2 PLC程序设计基础72 (3) 要点说明。要点说明。 由于抢答按钮一般均为非自锁按钮,为保持抢答输出结果,就需要输由于抢答按钮一般均为非自锁按钮,为保持抢答输出结果,就需要输出线圈所带触点并联在输入触点上,实现自锁功能。出线圈所带触点并联在输入触点上,实现自锁功能。 要实现一组抢答后,其他组不能再抢答的功能,就需要在其他组控制要实现一组抢答后,其他组不能再抢答的功能,就需

58、要在其他组控制线路中串联本组输入触点或输出线圈的常闭触点,从而形成互锁关系。线路中串联本组输入触点或输出线圈的常闭触点,从而形成互锁关系。2021-6-15Ch2 PLC程序设计基础73 例例3. 保持与释放交替变化保持与释放交替变化 控制要求:试设计程序实现所示时序。控制要求:试设计程序实现所示时序。 (1) I/O分配:分配:I/O分配表见表。分配表见表。输入触点输入触点功能说明功能说明输出线圈输出线圈功能说明功能说明I0.0信号输入按钮信号输入按钮Q0.0信号输出端子信号输出端子2021-6-15Ch2 PLC程序设计基础74(2) 程序如图所示。程序如图所示。 (3) 要点说明。这一程序又称为二分频电路。在控制过程要点说明。这一程序又称为二分频电路。在控制过程中,若按钮为点动按钮中,若按钮为点动按钮(非自锁按钮非自锁按钮)时,可由该程序控制时,可由该程序控制实现第一次按下启动,第二次按下停止的功能。实现第一次按下启动,第二次按下停止的功能。2021-6-15Ch2 PLC程序设计基础75例例4. 运料车自动装、卸料控制运料车自动装、卸料控制 控制要求:某运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论