S7plc编程与应用第三章_第1页
S7plc编程与应用第三章_第2页
S7plc编程与应用第三章_第3页
S7plc编程与应用第三章_第4页
S7plc编程与应用第三章_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、2021-12-13Ch3 PLC程序设计基础12021-12-13Ch3 PLC程序设计基础2后一页后一页返回返回第第3章章 可编程序控制器可编程序控制器程序设计基础程序设计基础3.1 可编程序控制器的编程语言与程序结构 3.2 存储器的数据类型与寻址方式 3.3 位逻辑指令3.4 定时器与计数器指令 2021-12-13Ch3 PLC程序设计基础33.1 可编程序控制器的编程语言与程序结构 311 可编程序控制器编程语言的国际标准可编程序控制器编程语言的国际标准 312 SIMATIC指令集与指令集与IECll31-3指令集指令集 313 可编程序控制器的程序结构可编程序控制器的程序结构返

2、回返回2021-12-13Ch3 PLC程序设计基础4311 可编程序控制器编程语言的国际标准可编程序控制器编程语言的国际标准 IEC(国际电工委员会国际电工委员会)是为电子技术的所有领域制订全球标是为电子技术的所有领域制订全球标准的世界性组织。准的世界性组织。IEC于于1994年年5月公布了可编程序控制器标月公布了可编程序控制器标准准(IEC1131),该标准鼓励不同的可编程序控制器制造商提供该标准鼓励不同的可编程序控制器制造商提供在外观和操作上相似的指令在外观和操作上相似的指令。它由以下。它由以下:。其中的第三部其中的第三部分分(IEC11313)是可编程序控制器的编程语言标准是可编程序控

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

4、PLC”软件包也是按软件包也是按IEC1131-3标准设计的。标准设计的。 IEC1131-3详细地说明了详细地说明了: (1)顺序功能图顺序功能图(Sequential Function Chart) (2)梯形图梯形图(Ladder Diagram) (3)功能块图功能块图(Function Block Diagram) (4)指令表指令表(Instruction List)。 (5)结构文本结构文本(Structured Text)。 标准中有两种图形语言标准中有两种图形语言)和和,还有两种文字语言还有两种文字语言和和,可以认为,可以认为。 顺序功能图顺序功能图梯形图梯形图功能块图功能块

5、图指令表指令表结构文本结构文本PLCPLC的编程语言的编程语言2021-12-13Ch3 PLC程序设计基础6 这是一种这是一种,用来编制顺序控制程序,在第,用来编制顺序控制程序,在第4章中将作详细的介绍。章中将作详细的介绍。 顺序功能图提供了一种组织程序的图顺序功能图提供了一种组织程序的图形方法,在顺序功能图中可以用别的语言形方法,在顺序功能图中可以用别的语言嵌套编程。嵌套编程。可以用顺序功能图来。可以用顺序功能图来描述系统的功能,根据它可以很容易地画描述系统的功能,根据它可以很容易地画出梯形图程序。出梯形图程序。 顺序功能图顺序功能图2021-12-13Ch3 PLC程序设计基础7 梯形图

6、梯形图。,如外部的开关、按钮和内部条件等。,如外部的开关、按钮和内部条件等。,用来控制外部的指示灯、交流接触器和,用来控制外部的指示灯、交流接触器和内部的输出条件等。内部的输出条件等。 在分析梯形图中的逻辑关系时,为了借用在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,继电器电路图的分析方法,(S7-200的梯形图中省略了右侧的垂直母线的梯形图中省略了右侧的垂直母线),。 梯形图梯形图2021-12-13Ch3 PLC程序设计基础8 (Network),。本书为节约篇幅,有时删去了网络号。本书为节约篇幅,有时删去了网络号。 使用编程软件可以直接生成和编辑使用编程软件可以直接生成和编

7、辑梯形图,并将它下载到可编程序控制梯形图,并将它下载到可编程序控制器。器。 梯形图梯形图2021-12-13Ch3 PLC程序设计基础9 这是一种这是一种,有数字电,有数字电路基础的人很容易掌握。该编程语言用类似与门、或门的方路基础的人很容易掌握。该编程语言用类似与门、或门的方框来表示逻辑运算关系,框来表示逻辑运算关系,输入、输出端的小圆圈表示,输入、输出端的小圆圈表示“非非”运算,运算,方框被方框被“导线导线”连接在一起,信号自左向右流动。图中的控连接在一起,信号自左向右流动。图中的控制逻辑与前图中的相同。西门子公司的制逻辑与前图中的相同。西门子公司的“LOGO1”系列微型系列微型可编程序控

8、制器使用功能块图语言,除此之外,国内很少有可编程序控制器使用功能块图语言,除此之外,国内很少有人使用功能块图语言。人使用功能块图语言。 功能块图与语句表功能块图与语句表 2021-12-13Ch3 PLC程序设计基础10 S7系列可编程序控制器将指令表称为语句表系列可编程序控制器将指令表称为语句表(Statement List)。,由指令,由指令组成的程序叫做指令表程序或语句表程序。组成的程序叫做指令表程序或语句表程序。 语句表比较适合熟悉可编程序控制器和逻辑程序语句表比较适合熟悉可编程序控制器和逻辑程序设计的经验丰富的程序员,语句表可以实现某些不能设计的经验丰富的程序员,语句表可以实现某些不

9、能用梯形图或功能块图实现的功能。用梯形图或功能块图实现的功能。 S7-200CPU在执行程序时要用到逻辑堆栈,在执行程序时要用到逻辑堆栈,。在语句表中,必须由编程人员加入这些堆栈处。在语句表中,必须由编程人员加入这些堆栈处理指令。理指令。 2021-12-13Ch3 PLC程序设计基础11 结构文本结构文本(ST)是为是为IEC1131-3标准创建的一标准创建的一种专用的高级编程语言。与梯形图相比,它能种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和实现复杂的数学运算,编写的程序非常简洁和紧凑。紧凑。 2021-12-13Ch3 PLC程序设计基础12 在在S7

10、-200的编程软件中,用户的编程软件中,用户。语句表不使用网络,但是可以。语句表不使用网络,但是可以用用Network网络这个关键词对程序分段,这样的程序可以转网络这个关键词对程序分段,这样的程序可以转换为梯形图。换为梯形图。 ,所以在设计复杂的开关量控制程序时一般使用梯形图语言。所以在设计复杂的开关量控制程序时一般使用梯形图语言。语句表可以处理某些不能用梯形图处理的问题,梯形图编写语句表可以处理某些不能用梯形图处理的问题,梯形图编写的程序一定能转换为语句表。的程序一定能转换为语句表。 梯形图程序中输入信号与输出信号之间的逻辑关系一目梯形图程序中输入信号与输出信号之间的逻辑关系一目了然,易于理

11、解,与继电器电路图的表达方式极为相似,了然,易于理解,与继电器电路图的表达方式极为相似,。语句表输入方便。语句表输入方便快捷,梯形图中功能块对应的语句只占一行的位置,还可以快捷,梯形图中功能块对应的语句只占一行的位置,还可以为每一条语句加上注释,便于复杂程序的阅读。为每一条语句加上注释,便于复杂程序的阅读。在设计通信、在设计通信、数学运算等高级应用程序时建议使用语句表语言数学运算等高级应用程序时建议使用语句表语言。 2021-12-13Ch3 PLC程序设计基础13312 SIMATIC指令集与指令集与IEC1131-3指令集指令集 供供S7-200使用的使用的STEP 7MicroWIN 3

12、2编程软件提供两种指编程软件提供两种指令集:令集:,前者由西门子公司,前者由西门子公司提供,它的某些指令不是提供,它的某些指令不是IEC1131-3中的标准指令。通常中的标准指令。通常 IEC1131-3指令集的指令较少,其中的某些指令集的指令较少,其中的某些“块块”指令可接受多指令可接受多种数据格式。例如种数据格式。例如 SIMATIC指令集中的加法指令被分为指令集中的加法指令被分为ADDI(整数加整数加)、ADDDI(双字整数加双字整数加)与与ADDR(实数加实数加)等,等,。IEC1131-3指令通过检查参数中的数指令通过检查参数中的数据格式错误,还可以减少程序设计中的错误。据格式错误,

13、还可以减少程序设计中的错误。 在在IEC1131-3指令编辑器中,有些是指令编辑器中,有些是SIMATIC指令集中的指指令集中的指令,它们作为令,它们作为IEC1131-3指令集的非标准扩展,在编程软件的帮助指令集的非标准扩展,在编程软件的帮助文件中的指令树内用红色的文件中的指令树内用红色的“+”号标记。号标记。返回返回2021-12-13Ch3 PLC程序设计基础14313 可编程序控制器的程序结构可编程序控制器的程序结构 主程序是程序的主体,主程序是程序的主体,。 。STEP7-MicroWIN 32的程序编辑的程序编辑器窗口下部的标签用来选择不同的程序。器窗口下部的标签用来选择不同的程序

14、。返回返回2021-12-13Ch3 PLC程序设计基础15 。同一地方被多次调用,使用子程序可以简化程。同一地方被多次调用,使用子程序可以简化程序代码和减少扫描时间。设计得好的子程序容易移植到别序代码和减少扫描时间。设计得好的子程序容易移植到别的项目中去。的项目中去。 中断程序是指令的一个可选集合,中断程序不是被主程中断程序是指令的一个可选集合,中断程序不是被主程序调用,序调用,。中断程序用来处理预先规定的中断事件,。中断程序用来处理预先规定的中断事件, 2021-12-13Ch3 PLC程序设计基础1632 存储器的数据类型与寻址方式 321 数据在存储器中存取的方式数据在存储器中存取的方

15、式 322 不同存储区的寻址不同存储区的寻址323 直接寻址与间接寻址直接寻址与间接寻址 324 绝对地址与符号地址绝对地址与符号地址 返回返回2021-12-13Ch3 PLC程序设计基础17321 数据在存储器中存取的方式数据在存储器中存取的方式 二进制数的二进制数的1位位(bit)只有只有0和和1两种不同的取值,可用来两种不同的取值,可用来表示开关量表示开关量(或称数字量或称数字量)的两中不同的状态,如触点的断开的两中不同的状态,如触点的断开和接通,线圈的通电和断电等。和接通,线圈的通电和断电等。位数据的数据类型为位数据的数据类型为BOOL(布尔布尔)型。型。 返回返回2021-12-1

16、3Ch3 PLC程序设计基础18 (见图见图 ),其中的第,其中的第0位为最低位为最低位:位:LSB:、第:、第7位为最高位位为最高位( MSB)。(见图)一般用二进制补码(见图)一般用二进制补码表示有符号数,其最高位为符号位,最高位为表示有符号数,其最高位为符号位,最高位为0时为正数,时为正数,为为1时为负数,最大的时为负数,最大的16位正数为位正数为 7FFFH表示十六进制数。表示十六进制数。字节、字和双字的取值范围见表。字节、字和双字的取值范围见表。 图图 字、字节和双字对同一地址存取操作的比较字、字节和双字对同一地址存取操作的比较 a)VB100 b)VWl00 c)VDl002021

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

18、00 c)VDl002021-12-13Ch3 PLC程序设计基础22322 不同存储区的寻址不同存储区的寻址 ,外部输入电路接通时,外部输入电路接通时对应的映像寄存器为对应的映像寄存器为ON(1状态状态)。输入端可以外接常开触点或。输入端可以外接常开触点或常闭触点,也可以接多个触点组成的串并联电路。常闭触点,也可以接多个触点组成的串并联电路。 返回返回2021-12-13Ch3 PLC程序设计基础23 输出映像寄存器的标识符为输出映像寄存器的标识符为,。2021-12-13Ch3 PLC程序设计基础24 在程序执行的过程中在程序执行的过程中。 。虽然名为。虽然名为“位存储器区位存储器区”,表

19、示按位存取,但是也可以按字节、字或双字来存取。表示按位存取,但是也可以按字节、字或双字来存取。 ,2021-12-13Ch3 PLC程序设计基础25 S7-200有有,其中,其中60个可以作为暂时个可以作为暂时存储器,或给子程序传递参数。如果用梯形图编程,编程软件存储器,或给子程序传递参数。如果用梯形图编程,编程软件保留这些局部存储器的后保留这些局部存储器的后4个字节。如果用语句表编程,可以个字节。如果用语句表编程,可以使用所有的使用所有的64个字节,但是建议不要使用最后个字节,但是建议不要使用最后4个字节。个字节。 各各POU(Program Organizational Unit,程序组织

20、单元,即,程序组织单元,即主程序、子程序和中断程序主程序、子程序和中断程序)有自己的局部变量表,局部变量有自己的局部变量表,局部变量在它被创建的在它被创建的POU中有效。变量存储器中有效。变量存储器(V)是全局存储器,可是全局存储器,可以被所有的以被所有的POU存取。存取。 ,各程序不能访问别,各程序不能访问别的程序的局部存储器。的程序的局部存储器。 因为局部变量使用临时的存储区,子程序每次被调用时,因为局部变量使用临时的存储区,子程序每次被调用时,应保证它使用的局部变量被初始化。应保证它使用的局部变量被初始化。2021-12-13Ch3 PLC程序设计基础26 。S7-200有三有三种定时器

21、,它们的时基增量分别为种定时器,它们的时基增量分别为,定时,定时器的当前值寄存器是器的当前值寄存器是16位有符号整数,用于存储定时器累计位有符号整数,用于存储定时器累计的时基增量值的时基增量值(132 767)。 。,带位操作数的指令存取定时器位,带字操作数的指令存取当带位操作数的指令存取定时器位,带字操作数的指令存取当前值。前值。2021-12-13Ch3 PLC程序设计基础27 计数器用来累计其计数输入端脉冲电平由低到高的次数,计数器用来累计其计数输入端脉冲电平由低到高的次数,CPU提供提供。计数器的当。计数器的当前值为前值为16位有符号整数,用来存放累计的脉冲数位有符号整数,用来存放累计

22、的脉冲数(132 767)。 用计数器地址用计数器地址(C和计数器号,如和计数器号,如C20)来存取当前值和计来存取当前值和计数器位,带位操作数的指令存取计数器位,带字操作数的指数器位,带位操作数的指令存取计数器位,带字操作数的指令存取当前值。令存取当前值。2021-12-13Ch3 PLC程序设计基础28 顺序控制继电器顺序控制继电器(SCR)位位,SCR提供控制程序的逻辑分段,详细的使用方法见提供控制程序的逻辑分段,详细的使用方法见53节。节。 S7-200将现实世界连续变化的模拟量将现实世界连续变化的模拟量(如温度、压力、如温度、压力、电流、电压等电流、电压等)用用AD转换器转换为转换器

23、转换为,2021-12-13Ch3 PLC程序设计基础29 S7-200将将1个字长的数字用个字长的数字用DA转换器转换为现实世转换器转换为现实世界的模拟量,界的模拟量,。因为模拟量输出是。因为模拟量输出是一个字长,应从偶数字节地址开始存放一个字长,应从偶数字节地址开始存放(如如AQW2、AQW4、AQW6等等),用户不能读取模拟量输出值。,用户不能读取模拟量输出值。 累加器是可以像存储器那样使用的读写单元,例如可累加器是可以像存储器那样使用的读写单元,例如可以用它向子程序传递参数,或从子程序返回参数,以及以用它向子程序传递参数,或从子程序返回参数,以及。如在指令。如在指令 中,中,AC2按字

24、按字(W)存取。存取。 2021-12-13Ch3 PLC程序设计基础30 高速计数器用来累计比高速计数器用来累计比CPU的扫描速率更快的事件,其的扫描速率更快的事件,其,当前值为只读数据。,当前值为只读数据。 ,CPU以二进以二进制方式存储常数,制方式存储常数,表是常,表是常数的例子。数的例子。 2021-12-13Ch3 PLC程序设计基础31323 直接寻址与间接寻址直接寻址与间接寻址 ,例如,例如。可以用字节(。可以用字节(B)、)、字(字(W)或双字()或双字(DW)方式存取)方式存取V、I、Q、M、S和和SM存存储器区。例如储器区。例如,。 。 返回返回2021-12-13Ch3

25、PLC程序设计基础32 S7-200CPU允许使用指针对下述存储区域进行间接寻址:允许使用指针对下述存储区域进行间接寻址:。但。但。 使用间接寻址之前,应创建一个指向该位置的指针。使用间接寻址之前,应创建一个指向该位置的指针。,。为了生成指针,必须用双字传送。为了生成指针,必须用双字传送指令指令(MOVD)将某个位置的地址移入另一位置或累加器作为指将某个位置的地址移入另一位置或累加器作为指针。针。,例如:,例如:MOVD&VB200,AC1MOVD&C3,VD6MOVD &MB4,LD82021-12-13Ch3 PLC程序设计基础33 。图中的。图中的* AC1表示表

26、示AC1是一个指针,是一个指针,*AC1是是MOVW指令确定的一个字长的数据。此例中,指令确定的一个字长的数据。此例中,。 2021-12-13Ch3 PLC程序设计基础34 ,。 2021-12-13Ch3 PLC程序设计基础35324 绝对地址与符号地址绝对地址与符号地址 可以用可以用,符号,符号地址便于记忆,使程序更容易理解。地址便于记忆,使程序更容易理解。程序编辑器中的地址显示举例:程序编辑器中的地址显示举例: I0.0:绝对地址,由内存区和地址组成:绝对地址,由内存区和地址组成(SIMATIC程序编辑器用程序编辑器用)。I0.0:绝对地址,百分比符号放在绝对地址之前:绝对地址,百分比

27、符号放在绝对地址之前(IEC程序编辑器用程序编辑器用)。#INPUT1:符号地址,:符号地址,“#”号放在局部变量之前号放在局部变量之前(SIMATIC或或IEC程序编辑器程序编辑器用用)“INPUT1”:全局符号名:全局符号名(SIMATIC或或IEC程序编辑器用程序编辑器用)。? .?或或?:红色问号,表示一未定义的地址,在程序编译之前必须定义。:红色问号,表示一未定义的地址,在程序编译之前必须定义。2021-12-13Ch3 PLC程序设计基础3633 位逻辑指令3 3 1 触点指令触点指令 3 3 2 输出指令输出指令 33 3 其他指令其他指令 返回返回2021-12-13Ch3 P

28、LC程序设计基础37 。在。在语句表中,分别用语句表中,分别用LD(Load,装载,装载)、A(And,与,与)和和O(Or,或,或)指令来表示开始、串联和并联的常开触点指令来表示开始、串联和并联的常开触点(见表见表)。 LD bit 装载电路开始的常开触点装载电路开始的常开触点 A bit 与串联的常开触点与串联的常开触点 O bit 或并联的常开触点或并联的常开触点 LDN bit 非装载电路开始的常闭触点非装载电路开始的常闭触点 AN bit 非与串联的常闭触点非与串联的常闭触点 ON bit 非或并联的常闭触点非或并联的常闭触点 标准触点指令标准触点指令331 触点指令触点指令 返回返

29、回2021-12-13Ch3 PLC程序设计基础38 S7-200有有1个个9位的堆栈,位的堆栈,(见图见图3-10)。堆栈中的数据一般按。堆栈中的数据一般按“”的原则存取。的原则存取。 执行执行LD指令时,将指令指定的位地址中的二进制数据装载入栈顶。执行指令时,将指令指定的位地址中的二进制数据装载入栈顶。执行A(与与)指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相“与与”,结果,结果存入栈顶。执行存入栈顶。执行O指令时,将指令指定的位地址中的二进制数和栈顶中的二进制指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相

30、数相“或或”,结果存入栈顶。,结果存入栈顶。 执行常闭触点对应的执行常闭触点对应的LDN,AN和和ON指令时,取出指令指定的位地址中的二进指令时,取出指令指定的位地址中的二进制数据后,将它取反(制数据后,将它取反(0变为变为1,1变为变为0),然后再做对应的装载、与、或操作。),然后再做对应的装载、与、或操作。 与堆栈与堆栈有关的指令有关的指令 ALD 装载与,电路块串联连接装载与,电路块串联连接 OLD 装载或,电路块并联连接装载或,电路块并联连接 LPS 入栈入栈 LRD 读栈读栈 LPP 出栈出栈 LDS n 装载堆栈装载堆栈 2021-12-13Ch3 PLC程序设计基础39 。在语句

31、表中,分别用在语句表中,分别用LDN(Load Not)、AN(And Not)和和ON(0r 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-12-13Ch3 PL

32、C程序设计基础40I1.4C24I0.3T16( )Q5 .3Q3.4I3.2I1.2 。要想将下图中由要想将下图中由I32和和/T16的触点组成的串联电路与它上面的电的触点组成的串联电路与它上面的电路并联,首先需要完成两个串联电路块内部的路并联,首先需要完成两个串联电路块内部的“与与”逻辑运算逻辑运算(即即触点的串联触点的串联),。前两条指令执行完后,。前两条指令执行完后,“与与”运算的结果运算的结果“与与”运算运算的结果的结果存放在栈顶,第存放在栈顶,第3、4条指令执行完后,条指令执行完后,“与与”运算的结果运算的结果压入栈顶,原来在栈顶的压入栈顶,原来在栈顶的S0被推到堆栈被推到堆栈的第

33、的第2层,第层,第2层的数据被推到第层的数据被推到第3层层栈底的数据丢失。栈底的数据丢失。LDNC24ONI1.2ALDLDNI1.4AI0.3LDI3.2ANT16OLDOQ3.4=Q5.3RETURN2021-12-13Ch3 PLC程序设计基础41 用逻辑用逻辑“或或”操作对堆栈第操作对堆栈第1层和第层和第2层的层的数据相数据相“或或”,即,即,并将运算结,并将运算结果果S2=S0+S1存入堆栈的顶部。存入堆栈的顶部。第第3第第9层的数据依次向上层的数据依次向上移动一位(移动一位(x表示不确定的表示不确定的值)。值)。 S1S0iv0iv1iv2iv3iv4iv5iv6S2iv0iv1i

34、v2iv3iv4iv5iv6 xS2=S0+S1OLD(栈顶值或)(栈顶值或)第第1层层(栈顶栈顶)第第2层层第第3层层第第4层层第第5层层第第6层层第第7层层第第8层层第第9层层(栈底栈底)2021-12-13Ch3 PLC程序设计基础42第第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中中O

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

36、的运算结果,堆栈中增加路块的运算结果,堆栈中增加一个数据,堆栈深度加一个数据,堆栈深度加1,每执,每执行一条行一条ALD或或OLD指令,堆栈指令,堆栈深度减深度减1 2021-12-13Ch3 PLC程序设计基础43 入栈入栈(LPS,Logic Push)指令复制栈顶的指令复制栈顶的值并将其压入堆栈的下值并将其压入堆栈的下一层,栈中原来的数据一层,栈中原来的数据依次向下一层推移,栈依次向下一层推移,栈底值被推出丢失(见底值被推出丢失(见图)。图)。iv0iv1iv2iv3iv4iv5iv6iv7iv8iv0iv0iv1iv2iv3iv4iv5iv6iv7入栈前入栈前入栈后入栈后LPS(入栈)

37、(入栈)2021-12-13Ch3 PLC程序设计基础44iv0iv1iv2iv3iv4iv5iv6iv7iv8iv1iv1iv2iv3iv4iv5iv6iv7iv8读栈前读栈前读栈后读栈后LRD(读栈)(读栈)堆栈操作堆栈操作2021-12-13Ch3 PLC程序设计基础45iv0iv1iv2iv3iv4iv5iv6iv7iv8iv1iv2iv3iv4iv5iv6iv7iv8 x出栈前出栈前出栈后出栈后LPP(出栈)(出栈)堆栈操作堆栈操作2021-12-13Ch3 PLC程序设计基础46iv0iv1iv2iv3iv4iv5iv6iv7iv8iv3iv0iv1iv2iv3iv4iv5iv6i

38、v7执行前执行前执行后执行后LDS3(装载堆栈)(装载堆栈)堆栈操作堆栈操作2021-12-13Ch3 PLC程序设计基础47I0.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-12

39、-13Ch3 PLC程序设计基础48I0.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立即触点与输出指令立即触点与输出指令 立即立即(Immediate)触点指令只能用于输入触点指令只能用于输入I,执行立即触点指令,执行立即触点指令时,时,。在语句表。在语句表中,分别中,分别触点符号中间的触点符号中间的“I ”和和“I”表示立即常开和立即常闭。下表示立即常开和立即常闭。下图是立即触点与输出指令的例子。图是立即触点与输出指令的

40、例子。 2021-12-13Ch3 PLC程序设计基础49LDI bit立即装载电路开始的常开触点立即装载电路开始的常开触点 AI bit立即与串联的常开触点立即与串联的常开触点 OI bit立即或并联的常开触点立即或并联的常开触点 LDNI bit立即非装载电路开始的常闭触片立即非装载电路开始的常闭触片 ANI bit立即非与串联的常闭触点立即非与串联的常闭触点 ONI bit立即非或并联的常闭触点立即非或并联的常闭触点 2021-12-13Ch3 PLC程序设计基础50 。输出指令将栈顶值复制到对。输出指令将栈顶值复制到对应的映像寄存器。输出类指令应放在梯形图的最右边,应的映像寄存器。输出

41、类指令应放在梯形图的最右边,变量为变量为BOOL型。型。3 3 2 输出指令输出指令 返回返回2021-12-13Ch3 PLC程序设计基础51 立即输出指令立即输出指令(=I)只能用于输出量只能用于输出量(Q),执行该指令时,执行该指令时,将栈顶值立即写入指定的物理输出位和对应的输出映像寄将栈顶值立即写入指定的物理输出位和对应的输出映像寄存器。线圈符号中的存器。线圈符号中的“I”用来表示立即输出。用来表示立即输出。 I0.0I1.4( )Q0.3( )I/ II/ I/ IIIQ3.4I0.5I0.1I0.4I0.2LDNI I0.5OII0.1AII1.4=Q0.3LDII0.4ONII0

42、.2ANII0.0ANII0.0=IQ3.4立即触点与输出指令立即触点与输出指令2021-12-13Ch3 PLC程序设计基础52 执行执行S(Set,置位或置,置位或置1)与与R(Reset,复位或置,复位或置0)指令时,指令时,图中,图中N=1。如果图中。如果图中I0.1的常开触点接的常开触点接通,通,Q0.3变为变为1并保持该状态,即使并保持该状态,即使I0.1的常开触点断开,它也的常开触点断开,它也仍然保持仍然保持1状态。当状态。当I0.3的常开触点闭合时,的常开触点闭合时,Q0.3变为变为0,并保持,并保持该状态,即使该状态,即使I0.3的常开触点断开,它也仍然保持的常开触点断开,它

43、也仍然保持0状态。状态。 如果被指定复位的是定时器位如果被指定复位的是定时器位(T)或计数器位或计数器位(C),将清除定,将清除定时器时器/计数器的当前值。计数器的当前值。 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-12-13Ch3 PLC程序设计基础53返回返回后一页后一页前一页前一页 执行执行SI(Set Immediate,立即置位,立即置位)或或RI(Reset Immediate

44、,立即复位立即复位)指令时,指令时,。线圈中的。线圈中的I表示立即。表示立即。, 使使S、R、SI和和RI指令指令ENO(使能输出使能输出)=0的错误条件:的错误条件:SM43(运行时间运行时间),0006(间接寻址间接寻址),0091(操作数超出范围操作数超出范围)。 = bit输出输出=I bit立即输出立即输出 S bit,N置位置位 SI bit,N立即置位立即置位 R bit,N复位复位 RI bit,N立即复位立即复位 输出类指令输出类指令2021-12-13Ch3 PLC程序设计基础54 取反触点指令将它左边电路的逻辑运算结果取反取反触点指令将它左边电路的逻辑运算结果取反(见图)

45、,(见图),运算结果若为运算结果若为1则变为则变为0,为,为0则变为则变为1,该指令没有操作数。能,该指令没有操作数。能流到达该触点时即停止,若能流未到达该触点,该触点给右侧流到达该触点时即停止,若能流未到达该触点,该触点给右侧供给能流。供给能流。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.3333 其他指令其他指令 返回返回2021-12-13Ch3 PLC

46、程序设计基础55 正跳变触点检测到一次正跳变(触点的输入信号由正跳变触点检测到一次正跳变(触点的输入信号由0变为变为1)时,或负跳变触点检测到一次负跳变时,或负跳变触点检测到一次负跳变(触点的输入信号由触点的输入信号由1变为变为0)时,时,。正负跳变指令的助记符分别为。正负跳变指令的助记符分别为EU(Edge Up,上升沿,上升沿)和和ED(Edge Down,下降沿,下降沿),它们没有,它们没有操作数,触点符号中间的操作数,触点符号中间的(“P”和和“N”分别表示正跳变分别表示正跳变(Positive Transition)和负跳变和负跳变(Negative Transition)(见图见图

47、)。I1.4( )M1.5PI0.3I1.4( )M3.2NI0.3I1.4( )M0.3NOTI0.7LDI0.3EU=M1.5LDI0.3ED=IM3.2LDI0.7NOT=M0.3I0.3M1.5M3.2I0.7M0.32021-12-13Ch3 PLC程序设计基础56空操作指令空操作指令(NOP N)不影响程序的执行,操作数不影响程序的执行,操作数N=0255 NOT取反取反EU正跳变正跳变 ED负跳变负跳变 NOP N空操作空操作 其它指令其它指令2021-12-13Ch3 PLC程序设计基础573.4 定时器与计数器指令 341 通电延时定时器指令通电延时定时器指令 342 断电延

48、时定时器指令断电延时定时器指令 343 保持型通电延时定时器保持型通电延时定时器 344 定时器当前值刷新的方法定时器当前值刷新的方法 345 计数器指令计数器指令 返回返回2021-12-13Ch3 PLC程序设计基础58341 通电延时定时器指令通电延时定时器指令 (INT),允许的,允许的。返回返回 通电延时定时器通电延时定时器(TON)输入端输入端(IN)的输的输入电路接通时开始定入电路接通时开始定时。时。,2021-12-13Ch3 PLC程序设计基础59 。第一次扫描时定时器位。第一次扫描时定时器位OFF,当前值为,当前值为0。定时器。定时器有有1ms、10ms和和100ms三种分

49、辨率,分辨率取决于定时器号三种分辨率,分辨率取决于定时器号(见表见表)。 定时器和计数器的设定值的数据类型均为定时器和计数器的设定值的数据类型均为型,型, 定时器特性定时器特性 返回返回2021-12-13Ch3 PLC程序设计基础60342 断电延时定时器指令断电延时定时器指令 断电延时断电延时定时器定时器(TOF)用来在用来在。它用输。它用输入 从入 从 O N 到到OFF的负跳变的负跳变启动定时。启动定时。断电延时定时器断电延时定时器 返回返回2021-12-13Ch3 PLC程序设计基础61 (见图见图) ,例如,例如3.4.2断电延时定时器指令不能同时使用断电延时定时器指令不能同时使

50、用TON T32和和TOF T32。 。 2021-12-13Ch3 PLC程序设计基础62343 保持型通电延时定时器保持型通电延时定时器 保持型通电延时定时器保持型通电延时定时器(Retentive On-Delay Timer,TONR)的输入电路接通的输入电路接通时,开始定时。当前值大于等于时,开始定时。当前值大于等于PT端指定的设定值时,定时器位变为端指定的设定值时,定时器位变为ON。达到。达到设定值后,当前值仍继续计数,直到最大值设定值后,当前值仍继续计数,直到最大值32767 . 输入电路断开时,当前输入电路断开时,当前值保持不变。可用值保持不变。可用TONR来来累计输入电路接通

51、的若干个累计输入电路接通的若干个时间间隔。时间间隔。图中的时间。图中的时间间隔间隔100ms时,时,10ms定时定时器器T2的定时器位变为的定时器位变为ON。 在第一个扫描周期,定在第一个扫描周期,定时器位为时器位为OFF。可以在系统。可以在系统块中设置块中设置TONR的当前值有的当前值有断电保持功能。断电保持功能。 返回返回2021-12-13Ch3 PLC程序设计基础63344 定时器当前值刷新的方法定时器当前值刷新的方法 1ms定时器对启动后的定时器对启动后的1ms时间间隔计数。定时器指令时间间隔计数。定时器指令执行期间每隔执行期间每隔1ms对定时器位和当前值刷新一次,这一过程对定时器位

52、和当前值刷新一次,这一过程不与扫描周期同步。因为可能在不与扫描周期同步。因为可能在1ms内的任意时刻启动定时内的任意时刻启动定时器,设定值必须比最小要求的定时间隔大一个时间基准。器,设定值必须比最小要求的定时间隔大一个时间基准。例如对例如对1ms定时器,为了保证时间间隔至少为定时器,为了保证时间间隔至少为56ms,设定,设定值应为值应为57。10ms、l00ms定时器也有类似的问题,可用相同定时器也有类似的问题,可用相同的原则处理,即设定值等于要求的最小时间间隔对应的值的原则处理,即设定值等于要求的最小时间间隔对应的值加加1。 返回返回2021-12-13Ch3 PLC程序设计基础64 10ms定时器对启动后的定时器对启动后的10ms时间间隔计数。执行定时间间隔计数。执行定时器指令时开始定时,在每一扫描周期开始时刷新定时器,时器指令时开始定时,在每一扫描周期开始时刷新定时器,将一个扫描周期

温馨提示

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

评论

0/150

提交评论