第3章 PLC程序设计基础_第1页
第3章 PLC程序设计基础_第2页
第3章 PLC程序设计基础_第3页
第3章 PLC程序设计基础_第4页
第3章 PLC程序设计基础_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、熟悉PLC存储器的数据类型和寻址方式;熟练掌握PLC的位逻辑指令;熟练掌握PLC的定时器与计数器指令;难点:难点:堆栈指令的使用。包括分支与分支结堆栈指令的使用。包括分支与分支结束;触点组指令等。束;触点组指令等。3.1.1 PLC编程语言的国际标准编程语言的国际标准与个人计算机相比,与个人计算机相比,PLC的硬件、软件的的硬件、软件的体系结构都是封闭的而不是开放的。各厂家的体系结构都是封闭的而不是开放的。各厂家的PLC的编程语言和指令系统的功能和表达方式的编程语言和指令系统的功能和表达方式也不一致。有的甚至有相当大的差异,因此各也不一致。有的甚至有相当大的差异,因此各厂家的厂家的PLC互不兼

2、容。互不兼容。 IEC(国际电工委员会)(国际电工委员会)是为电子技术的是为电子技术的所有领域制定全球标准的世界性组织。所有领域制定全球标准的世界性组织。IEC于于1994年年5月公布了月公布了PLC标准(标准(IEC61131),该),该标准鼓励不同的标准鼓励不同的PLC制造商提供在外形和操作制造商提供在外形和操作上相似的指令。上相似的指令。 3.1.1 可编程序控制器编程语言可编程序控制器编程语言 的国际标准的国际标准 组成:组成:通用信息,设备与测试要求,编程语言,通用信息,设备与测试要求,编程语言,用户指南和通信。用户指南和通信。 其中,编程语言标准。其中,编程语言标准。(IECll3

3、1-3) (1)顺序功能图顺序功能图(Sequential Function Chart)。 (2)梯形图梯形图(Ladder Diagram)。 (3)功能块图功能块图(Function Block Diagram)。 (4)指令表指令表(Instction List)。 (5)结构文本结构文本(structured Text) 标准中由两种图形语言标准中由两种图形语言梯形图梯形图(LD)和功能图块()和功能图块(FBD);); 两种语言文字两种语言文字指令表(指令表(IL)和结构)和结构文本(文本(ST)。可以认为,顺序功能图块)。可以认为,顺序功能图块(SFC)是一种结构块控制程序流程图

4、。)是一种结构块控制程序流程图。 这是一种位于其他编程语言之上的图这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序。形语言,用来编制顺序控制程序。 顺序功能图提供了一种组织程序的顺序功能图提供了一种组织程序的图形方法,在顺序功能图中可以用别图形方法,在顺序功能图中可以用别的语言嵌套编程。步、转换和动作是的语言嵌套编程。步、转换和动作是顺序功能图中的三种主要元件。可以顺序功能图中的三种主要元件。可以用顺序功能图来描述系统的功能。用顺序功能图来描述系统的功能。 组成:组成:由触点、线圈和用方框表示的功能由触点、线圈和用方框表示的功能块。(图块。(图3-3) 特点:特点:1)沿用继电器这

5、一名称,但不是真)沿用继电器这一名称,但不是真实继电器,而是软件中编程元件。实继电器,而是软件中编程元件。 2)假想的)假想的“能流能流”(POWeY Flow),从左,从左向右流动。向右流动。 3)逻辑运算,从左至右,从上至下。)逻辑运算,从左至右,从上至下。 4)线圈放在最右边,触点可无限次使用。)线圈放在最右边,触点可无限次使用。图图3-4 功能块图功能块图指令表(语句表)程序指令表(语句表)程序 S7-200CPU地控制程序由主程序、子地控制程序由主程序、子程序和中断程序组成。程序和中断程序组成。 1、(、(OB1) 主程序是程序的主体,每一个项目都必主程序是程序的主体,每一个项目都必

6、须并且只能有一个主程序。在主程序中可须并且只能有一个主程序。在主程序中可以调用子程序。以调用子程序。 如 果 编 程 使 用如 果 编 程 使 用的是手编器,主程的是手编器,主程序应安排到程序的序应安排到程序的最前面。其他部分最前面。其他部分的位置安排没有严的位置安排没有严格的顺序,但习惯格的顺序,但习惯上把子程序安排在上把子程序安排在中断程序的前面。中断程序的前面。如图如图3.5所示。所示。程序中断程序2子程序2主程序中断程序1子程序m子程序1中断程序n图图3-5 PLC的程序结构的程序结构 子程序是一个可选的指令的集合,仅在被其它程序调子程序是一个可选的指令的集合,仅在被其它程序调用时执行

7、;用时执行; 同一个子程序可以用在不同的地方被多次调用;同一个子程序可以用在不同的地方被多次调用; 使用子程序可以简化程序代码和简化扫描时间;使用子程序可以简化程序代码和简化扫描时间; 设计得好的子程序容易移植到别的项目中去。设计得好的子程序容易移植到别的项目中去。 中断程序是指令的一个可选集合,中断程序不中断程序是指令的一个可选集合,中断程序不是被主程序调用,它们在中断事件发生时由是被主程序调用,它们在中断事件发生时由PLC的操作系统调用;的操作系统调用; 中断程序用来处理预先规定的中断事件,因为中断程序用来处理预先规定的中断事件,因为不能预知何时会出现中断事件,所以不允许程序不能预知何时会

8、出现中断事件,所以不允许程序改写可能在其它程序中使用的存储器。改写可能在其它程序中使用的存储器。3.2.1数据在存储器中存取的方式数据在存储器中存取的方式 1、位、字节、字和双字、位、字节、字和双字 位位(bit):二进制数的:二进制数的1位只有位只有O和和1两种不同两种不同的取值。的取值。 字节字节(Byte):8位二进制数组成位二进制数组成1个字节。个字节。 字字(Word):两个字节。:两个字节。 双字(双字(Double Word):两个字。):两个字。 位存储单元的地址由字节地址和位地址组位存储单元的地址由字节地址和位地址组成,如成,如I3.2,其中的区域标志符,其中的区域标志符“I

9、”表示输入,表示输入,字节地址为字节地址为3,位地址为,位地址为2。 输入字节输入字节IB3(Byte)由由I3.0I3.7这这8位组位组成。成。 相邻的两个字节组成一个字,相邻的两个字节组成一个字,VW100表表示示VB100VB101组成的一个字,组成的一个字,V为区域标为区域标志符,志符,W表示字,表示字,100为起始字节的地址。为起始字节的地址。 VD100表示由表示由VB100VB103组成的双字,组成的双字,D(Double word)示例:示例:I3. 2 IB3(图图3-5) VBl00 VWl00 VDl00 (见图见图3-6)。1 1 输入映像寄存器输入映像寄存器(I)(I

10、) PLCPLC的输入端子是从外部接收输入信号的窗口。每一个输的输入端子是从外部接收输入信号的窗口。每一个输入端子与输入映像寄存器(入端子与输入映像寄存器(I I)的相应位相对应。输入点)的相应位相对应。输入点的状态,在每次扫描周期开始(或结束)时进行采样,并的状态,在每次扫描周期开始(或结束)时进行采样,并将采样值存于输入映像寄存器,作为程序处理时输入点状将采样值存于输入映像寄存器,作为程序处理时输入点状态的依据。输入映像寄存器的状态只能由外部输入信号驱态的依据。输入映像寄存器的状态只能由外部输入信号驱动,而不能在内部由程序指令来改变。动,而不能在内部由程序指令来改变。 输入映像寄存器(输入

11、映像寄存器(I I)的地址格式为:)的地址格式为: 位地址:位地址:II字节地址字节地址.位地址位地址 ,如,如I0.1I0.1。 字节、字、双字地址:字节、字、双字地址:II数据长度数据长度起始字节地址起始字节地址 ,如,如IB4IB4、IW6IW6、ID10ID10。 CPU226CPU226模块输入映像寄存器的有效地址范围为:模块输入映像寄存器的有效地址范围为: I I(0.00.015.715.7););IBIB(0 01515););IWIW(0 01414););IDID(0 01212)。)。 输出映像寄存器(输出映像寄存器(QQ) 每一个输出模块的端子与输出映像寄存器的相应位相

12、每一个输出模块的端子与输出映像寄存器的相应位相对应。对应。CPUCPU将输出判断结果存放在输出映像寄存器中,在将输出判断结果存放在输出映像寄存器中,在扫描周期的结尾,扫描周期的结尾,CPUCPU以批处理方式将输出映像寄存器的以批处理方式将输出映像寄存器的数值复制到相应的输出端子上。通过输出模块将输出信号数值复制到相应的输出端子上。通过输出模块将输出信号传送给外部负载。传送给外部负载。 输出映像寄存器(输出映像寄存器(Q Q)地址格式为:)地址格式为: 位地址:位地址:QQ字节地址字节地址.位地址位地址 ,如,如Q1.1Q1.1 字节、字、双字地址:字节、字、双字地址:QQ数据长度数据长度起始字

13、节地址起始字节地址 ,如,如QB5QB5、QW8QW8、QD11QD11。 CPU226CPU226模块输出映像寄存器的有效地址范围为:模块输出映像寄存器的有效地址范围为: Q Q(0.015.70.015.7););QBQB(015 015 ););QWQW(014014););QDQD(012012)。)。在程序的执行过程中,对于输入或输出的存取通常是通在程序的执行过程中,对于输入或输出的存取通常是通过映像寄存器,而不是实际的输入、输出端子。过映像寄存器,而不是实际的输入、输出端子。S7-200 S7-200 CPUCPU执行有关输入输出程序时的操作过程如图所示。执行有关输入输出程序时的操

14、作过程如图所示。()变量存储器()变量存储器(V V) 变量存储器(变量存储器(V V)存放全局变量、存放程序执行过程)存放全局变量、存放程序执行过程中控制逻辑操作的中间结果或其他相关的数据。变量存储中控制逻辑操作的中间结果或其他相关的数据。变量存储器是全局有效。全局有效是指同一个存储器可以在任一程器是全局有效。全局有效是指同一个存储器可以在任一程序分区(主程序、子程序、中断程序)被访问。序分区(主程序、子程序、中断程序)被访问。 V V存储器的地址格式为:存储器的地址格式为: 位地址:位地址:VV字节地址字节地址.位地址位地址 ,如,如V10.2V10.2。 字节、字、双字地址:字节、字、双

15、字地址:VV数据长度数据长度起始字节地址起始字节地址 ,如,如VB20VB20、VW100VW100、VD320VD320。 CPU226CPU226模块变量存储器的有效地址范围为:模块变量存储器的有效地址范围为: V V(0.00.05119.75119.7););VBVB(0 051195119););VWVW(0 051185118);); VDVD(0 051165116)。)。 ()位存储区()()位存储区()内部标志位存储器(内部标志位存储器(MM) 内部标志位存储器(内部标志位存储器(M M)也称内部线圈,是模拟继电)也称内部线圈,是模拟继电器控制系统中的中间继电器,它存放中间操

16、作状态,或存器控制系统中的中间继电器,它存放中间操作状态,或存储其他相关的数据。内部标志位存储器(储其他相关的数据。内部标志位存储器(M M)以位为单位)以位为单位使用,也可以字节、字、双字为单位使用。使用,也可以字节、字、双字为单位使用。 内部标志位存储器(内部标志位存储器(M M)的地址格式为:)的地址格式为: 位地址:位地址:MM字节地址字节地址 . .位地址位地址 ,如,如M26.7M26.7。 字节、字、双字地址:字节、字、双字地址:MM数据长度数据长度起始字节地址起始字节地址 ,如,如MB11MB11、MW23MW23、MD26MD26。 CPU226CPU226模块内部标志位存储

17、器的有效地址范围为:模块内部标志位存储器的有效地址范围为: M M(0.00.031.731.7););MBMB(0 03131););MWMW(0 03030););MDMD(0 02828)。)。()定时器存储器()定时器存储器(T T) 定时器是模拟继电器控制系统中的时间继电器。定时器是模拟继电器控制系统中的时间继电器。S7-200 S7-200 PLCPLC定时器的时基有三种:定时器的时基有三种:1ms1ms、10ms10ms、100ms100ms。通常定时。通常定时器的设定值由程序赋予,需要时也可在外部设定。器的设定值由程序赋予,需要时也可在外部设定。 定时器存储器地址表示格式为:定

18、时器存储器地址表示格式为:TT定时器号定时器号 ,如,如T24T24。 S7-200 PLCS7-200 PLC定时器存储器的有效地址范围为:定时器存储器的有效地址范围为:T T(0 0255255)。)。()计数器存储器()计数器存储器(C C) 计数器是累计其计数输入端脉冲电平由低到高的次数,计数器是累计其计数输入端脉冲电平由低到高的次数,有三种类型:增计数、减计数、增减计数。通常计数器有三种类型:增计数、减计数、增减计数。通常计数器的设定值由程序赋予,需要时也可在外部设定。的设定值由程序赋予,需要时也可在外部设定。 计数器存储器地址表示格式为:计数器存储器地址表示格式为:CC计数器号计数

19、器号 ,如,如C3C3。 S7-200 PLCS7-200 PLC计数器存储器的有效地址范围为:计数器存储器的有效地址范围为:C C(0 0255255)。)。 ()高速计数器()高速计数器(HCHC) 高速计数器用来累计高速脉冲信号。当高速脉冲信高速计数器用来累计高速脉冲信号。当高速脉冲信号的频率比号的频率比CPUCPU扫描速率更快时,必须要用高速计数器计扫描速率更快时,必须要用高速计数器计数。高速计数器的当前值寄存器为数。高速计数器的当前值寄存器为3232位(位(bitbit),读取高),读取高速计数器当前值应以双字(速计数器当前值应以双字(3232位)来寻址。高速计数器的位)来寻址。高速

20、计数器的当前值为只读值。当前值为只读值。 高速计数器地址格式为:高速计数器地址格式为:HCHC高速计数器号高速计数器号 ,如,如HC1HC1。 CPU226CPU226模块高速计数器的有效地址范围为:模块高速计数器的有效地址范围为:HCHC(0 05 5)。)。()累加器()累加器(ACAC) 累加器是用来暂时存储计算中间值的存储器,也可向累加器是用来暂时存储计算中间值的存储器,也可向子程序传递参数或返回参数。子程序传递参数或返回参数。S7-200 CPUS7-200 CPU提供了提供了4 4个个3232位位累加器(累加器(AC0AC0、AC1AC1、AC2AC2、AC3AC3)。)。 累加器

21、的地址格式为:累加器的地址格式为:ACAC累加器号累加器号 ,如,如AC0AC0。 CPU226CPU226模块累加器的有效地址范围为:模块累加器的有效地址范围为:ACAC(0 03 3)。)。 累加器是可读写单元,可以按字节、字、双字存取累加累加器是可读写单元,可以按字节、字、双字存取累加器中的数值。由指令标识符决定存取数据的长度,例如,器中的数值。由指令标识符决定存取数据的长度,例如,MOVBMOVB指令存取累加器的字节,指令存取累加器的字节,DECWDECW指令存取累加器的字,指令存取累加器的字,INCDINCD指令存取累加器的双字。按字节、字存取时,累加器指令存取累加器的双字。按字节、

22、字存取时,累加器只存取存储器中数据的低只存取存储器中数据的低8 8位、低位、低1616位;以双字存取时,位;以双字存取时,则存取存储器的则存取存储器的3232位。位。()特殊标志位存储器()特殊标志位存储器(SMSM) 特殊标志位(特殊标志位(SMSM)即特殊内部线圈。它是用户程序与)即特殊内部线圈。它是用户程序与系统程序之间的界面,为用户提供一些特殊的控制功能及系统程序之间的界面,为用户提供一些特殊的控制功能及系统信息,用户对操作的一些特殊要求也通过特殊标志位系统信息,用户对操作的一些特殊要求也通过特殊标志位(SMSM)通知系统。特殊标志位区域分为只读区域)通知系统。特殊标志位区域分为只读区

23、域(SM0.0SM29.7SM0.0SM29.7,头,头3030个字节为只读区)和可读写区域,个字节为只读区)和可读写区域,在只读区特殊标志位,用户只能利用其触点。在只读区特殊标志位,用户只能利用其触点。 特殊标志位存储器(特殊标志位存储器(SMSM)的地址表示格式为:)的地址表示格式为: 位地址:位地址:SMSM字节地址字节地址.位地址位地址 ,如,如SM0.1SM0.1。 字节、字、双字地址:字节、字、双字地址:SMSM数据长度数据长度起始字节地址起始字节地址 ,如,如SMB86SMB86、SMW100SMW100、SMD12SMD12。 CPU226CPU226模块特殊标志位存储器的有效

24、地址范围为:模块特殊标志位存储器的有效地址范围为: SMSM(0.00.0549.7549.7););SMBSMB(0 0549549););SMWSMW(0 0548548);); SMDSMD(0 0546546)。)。()局部存储器()局部存储器(L L) 局部存储器用来存放局部变量。局部存储器是局部有局部存储器用来存放局部变量。局部存储器是局部有效的。局部有效是指某一局部存储器只能在某一程序分区效的。局部有效是指某一局部存储器只能在某一程序分区(主程序或子程序或中断程序)中使用。(主程序或子程序或中断程序)中使用。 S7-200 PLCS7-200 PLC提供提供6464个字节局部存储

25、器个字节局部存储器, ,局部存储器可用作局部存储器可用作暂时存储器或为子程序传递参数。可以按位、字节、字、暂时存储器或为子程序传递参数。可以按位、字节、字、双字访问局部存储器。可以把局部存储器作为间接寻址的双字访问局部存储器。可以把局部存储器作为间接寻址的指针,但是不能作为间接寻址的存储器区。指针,但是不能作为间接寻址的存储器区。 局部存储器(局部存储器(L L)的地址格式为:)的地址格式为: 位地址:位地址:LL字节地址字节地址.位地址位地址 ,如,如L0.0L0.0。 字节、字、双字地址:字节、字、双字地址:LL数据长度数据长度起始字节地址起始字节地址 ,如,如LB33LB33、LW44L

26、W44、LD55LD55。 CPU226CPU226模块局部存储器的有效地址范围为:模块局部存储器的有效地址范围为: L L(0.00.063.763.7););LBLB(0 06363););LWLW(0 06262););LDLD(0 06060)。)。 ()模拟量输入映像寄存器()模拟量输入映像寄存器(AIAI) 模拟量输入模块将外部输入的模拟信号的模模拟量输入模块将外部输入的模拟信号的模拟量转换成拟量转换成1 1个字长的数字量,存放在模拟量输入个字长的数字量,存放在模拟量输入映像寄存器(映像寄存器(AIAI)中,供)中,供CPUCPU运算处理。模拟量输运算处理。模拟量输入(入(AIAI

27、)的值为只读值。)的值为只读值。 模拟量输入映像寄存器(模拟量输入映像寄存器(AIAI)的地址格式为:)的地址格式为: AIWAIW起始字节地址起始字节地址 ,如,如AIW4AIW4。 模拟量输入映像寄存器(模拟量输入映像寄存器(AIAI)的地址必须用偶数)的地址必须用偶数字节地址(如字节地址(如AIW0AIW0,AIW2AIW2,AIW4AIW4)来表示。)来表示。 CPU226CPU226模块模拟量输入映像寄存器(模块模拟量输入映像寄存器(AIAI)的有效地址的)的有效地址的范围为:范围为:AIWAIW(0 06262)。)。 ()模拟量输出映像寄存器()模拟量输出映像寄存器(AQAQ)

28、CPUCPU运算的相关结果存放在模拟量输出映像寄运算的相关结果存放在模拟量输出映像寄存器(存器(AQAQ)中,供)中,供D/AD/A转换器将转换器将1 1个字长的数字量个字长的数字量转换为模拟量,以驱动外部模拟量控制的设备。转换为模拟量,以驱动外部模拟量控制的设备。模拟量输出映像寄存器(模拟量输出映像寄存器(AQAQ)中的数字量为只写)中的数字量为只写值。值。 模拟量输出映像寄存器(模拟量输出映像寄存器(AQAQ)的地址格式为:)的地址格式为: AQWAQW起始字节地址起始字节地址 ,如,如AQW10AQW10。 模拟量输出映像寄存器(模拟量输出映像寄存器(AQAQ)的地址必须用偶数)的地址必

29、须用偶数字节地址(如字节地址(如AQW0AQW0,AQW2AQW2,AQW4AQW4)来表示。)来表示。 CPU226CPU226模块模拟量输出映像寄存器(模块模拟量输出映像寄存器(AQAQ)的有效地址)的有效地址的范围为:的范围为:AQWAQW(0 06262)。)。 ()顺序控制继电器存储器()顺序控制继电器存储器(S S) 顺序控制继电器(顺序控制继电器(S S)用于顺序控制(或步进)用于顺序控制(或步进控制控制) )。顺序控制继电器指令(。顺序控制继电器指令(SCRSCR)基于顺序功)基于顺序功能图(能图(SFCSFC)的编程方式。)的编程方式。SCRSCR指令提供控制程序指令提供控制

30、程序的逻辑分段,从而实现顺序控制。的逻辑分段,从而实现顺序控制。 顺序控制继电器存储器(顺序控制继电器存储器(S S)的地址格式为:)的地址格式为: 位地址:位地址:SS字节地址字节地址.位地址位地址 ,如,如S3.1S3.1。 字节、字、双字地址:字节、字、双字地址:SS数据长度数据长度起始字节地起始字节地址址 ,如,如SB4SB4、SW10SW10、SD21SD21。 CPU226CPU226模块顺序控制继电器存储器的有效地址范围为:模块顺序控制继电器存储器的有效地址范围为: S S(0.00.031.731.7););SBSB(0 03131););SWSW(0 03030););SDS

31、D(0 02828)。)。 指令中如何提供操作数或操作数地址,称为寻址方式。指令中如何提供操作数或操作数地址,称为寻址方式。 S7-200 PLCS7-200 PLC的寻址方式有:立即寻址、直接寻址、间接的寻址方式有:立即寻址、直接寻址、间接寻址。寻址。 1 1 直接寻址直接寻址 直接寻址方式是,指令直接使用存储器或寄存器的元件直接寻址方式是,指令直接使用存储器或寄存器的元件名称和地址编号,根据这个地址就可以立即找到该数据。名称和地址编号,根据这个地址就可以立即找到该数据。操作数的地址应按规定的格式表示。指令中,数据类型应操作数的地址应按规定的格式表示。指令中,数据类型应与指令标识符相匹配。与

32、指令标识符相匹配。不同数据长度的寻址指令举例如下:不同数据长度的寻址指令举例如下:位寻址:位寻址:AND Q5.5AND Q5.5字节寻址:字节寻址:ORB VB33ORB VB33,LB21LB21字寻址:字寻址:MOVW AC0MOVW AC0,AQW2AQW2双字寻址:双字寻址:MOVD AC1MOVD AC1,VD200VD2002 2 间接寻址间接寻址间接寻址方式是,指令给出了存放操作数地址的存储间接寻址方式是,指令给出了存放操作数地址的存储单元的地址(也称地址指针)。单元的地址(也称地址指针)。 可作为地址指针的存储器有:可作为地址指针的存储器有:V V、L L、ACAC(1 1

33、3 3) 可间接寻址的存储器区域有:可间接寻址的存储器区域有:I I、Q Q、V V、M M、S S、T T(仅当前(仅当前值)、值)、C C(仅当前值)。(仅当前值)。 对独立的位(对独立的位(BITBIT)值或模拟量值不能进行间接寻址。)值或模拟量值不能进行间接寻址。(1)(1)建立指针建立指针 间接寻址前,应先建立指针。指针为双字长,是所要间接寻址前,应先建立指针。指针为双字长,是所要访问的存储单元(最大为双字型访问的存储单元(最大为双字型3232位)的物理地址。只能位)的物理地址。只能使用变量存储器(使用变量存储器(V V)、局部存储器()、局部存储器(L L)或累加器()或累加器(A

34、C1AC1、AC2AC2、AC3AC3)作为指针,)作为指针,AC0AC0不能用作间接寻址的指针。不能用作间接寻址的指针。将所要访问的存储器单元的地址装入用来作为指针的将所要访问的存储器单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:式如下:MOVD &VB200MOVD &VB200,AC1AC1“&”“&”为地址符号,与单元组合表示所对应单元的为地址符号,与单元组合表示所对应单元的3232位物理位物理地址,地址,VB200VB200只是一个直接地址编码,并不是它的物理地只

35、是一个直接地址编码,并不是它的物理地址。址。指令中的第二个地址数据长度必须是双字长,如:指令中的第二个地址数据长度必须是双字长,如:ACAC、LDLD和和VDVD。这里地址。这里地址“VB200”VB200”要用要用3232位表示,因而必须使位表示,因而必须使用双字传送指令(用双字传送指令(MOVDMOVD)。)。 指令中的指令中的&VB200&VB200如果改为如果改为&VW200&VW200或或&VD200&VD200效果完全相同。效果完全相同。因为具体的寻址范围取决于随后的间接存取指令类型。因为具体的寻址范围取决于随后的间接存取指令类型。

36、、用指针存取数据、用指针存取数据 依据指针中的内容值作为地址存取数据。使用指针可存依据指针中的内容值作为地址存取数据。使用指针可存取字节、字、双字型的数据,取字节、字、双字型的数据, 下面两条指令是建立指针和间接存取的应用方法:下面两条指令是建立指针和间接存取的应用方法: MOVD &VB200MOVD &VB200,AC1AC1 MOVW MOVW * *AC1AC1,AC0AC0 执行指令执行指令MOVWMOVW* *AC1AC1,AC0AC0,把指针中的内容值(,把指针中的内容值(VB200VB200)作为地址,由于指令作为地址,由于指令MOVWMOVW的标识符是的标识符

37、是“W”W”,因而指令操,因而指令操作数的数据长度应是字型,把地址作数的数据长度应是字型,把地址VB200VB200、VB201VB201处处2 2个字个字节的内容(节的内容(12341234)传送到)传送到AC0AC0。指针处的值(即。指针处的值(即12341234),),为字型数据,如图为字型数据,如图- -所示,操作数(所示,操作数(AC1AC1)前面的)前面的“* *”号表示该操作数(号表示该操作数(AC1AC1)为指针。)为指针。 、修改指针、修改指针 存取连续地址的存储单元中数据时,通过修改指针存取连续地址的存储单元中数据时,通过修改指针可以非常方便地存取数据。可以非常方便地存取数

38、据。 在在S7-200 PLCS7-200 PLC中,指针的内容不会自动改变,可用中,指针的内容不会自动改变,可用自增或自减等指令修改指针值。这样就可连续地存取存自增或自减等指令修改指针值。这样就可连续地存取存储单元中的数据。储单元中的数据。 图图-8-8中,用两次自增指令中,用两次自增指令INCD AC1INCD AC1,将,将AC1AC1指针中指针中的值(的值(VB200VB200)修改为)修改为VB202VB202后,指针即指向新地址后,指针即指向新地址VB202VB202。执行指令。执行指令MOVWMOVW* *AC1AC1,AC0AC0,这样就可在变量存储,这样就可在变量存储器(器(

39、V V)中连续地存取数据,将)中连续地存取数据,将VB202VB202、VB203VB203二个字节二个字节的数据(的数据(56785678)传送到)传送到AC0AC0。 图图-8-8 修改指针修改指针 把指针增加两把指针增加两次,指向下一个次,指向下一个字字 把把AC1AC1(VW202VW202)所指向的字数值所指向的字数值送到送到AC0AC0 修改指针值时,应根据存取的数据长度来进行调修改指针值时,应根据存取的数据长度来进行调整。若对字节进行存取,指针值加整。若对字节进行存取,指针值加1 1(或减(或减1 1);若对);若对字进行存取、或对定时器、计数器的当前值进行存取,字进行存取、或对

40、定时器、计数器的当前值进行存取,指针值加指针值加2 2(或减(或减2 2);若对双字进行存取,则指针值);若对双字进行存取,则指针值加加4 4(或减(或减4 4)。图)。图-8-8中,存取的数据长度是字型数中,存取的数据长度是字型数据,因而指针值加据,因而指针值加2 2。 3.3 3.3 位逻辑指令位逻辑指令3.3.1 触点指令触点指令 1.标准触点指令标准触点指令 LD(Load装载装载)、A(And,与,与)和和O(Or,或,或) 。 (1)LD:装入常开触点(LoaD)(2)LDN:装入常闭触点(LoaD Not) (3)A:与常开触点(And) (4)AN:与常闭触点(And Not)

41、。 (5)O:或常开触点(Or) (6)ON:或常闭触点(Or Not) (7)NOT:触点取非(输出反相) (8)= :输出指令 1 1、这些指令对存储器位在、这些指令对存储器位在逻辑堆栈逻辑堆栈中进行操作。中进行操作。2 2、由于堆栈存储单元数的限制,语句表中、由于堆栈存储单元数的限制,语句表中A A、O O、ANAN、ONON指令指令最多可以连用有限次最多可以连用有限次。同样,梯形。同样,梯形图中,最多一次串联或并联的触点数也有一定图中,最多一次串联或并联的触点数也有一定限制,功能框图中限制,功能框图中ANDAND和和OROR指令盒中输入的个数指令盒中输入的个数也不能超过这个范围也不能超

42、过这个范围 如如A A指令,即串联一个常开触点。由于堆栈存指令,即串联一个常开触点。由于堆栈存储器数量的限制,梯形图中,一次最多可以有储器数量的限制,梯形图中,一次最多可以有七个常开触点串联。七个常开触点串联。3 3、标准触点指令中如果有、标准触点指令中如果有操作数,则为操作数,则为BOOLBOOL型型,操作数的编址范围可以是:操作数的编址范围可以是:I I、Q Q、M M、SMSM、T T、C C、S S、V V、L L。2.堆栈的基本概念堆栈的基本概念 逻辑堆栈结构是由九个堆栈存储器位逻辑堆栈结构是由九个堆栈存储器位组成的串联堆栈,栈顶是布尔型数据组成的串联堆栈,栈顶是布尔型数据进出堆栈的

43、必由之路。进栈时,数据进出堆栈的必由之路。进栈时,数据由栈顶压入,堆栈中原来所存的数据由栈顶压入,堆栈中原来所存的数据被串行下移一格,如果原来被串行下移一格,如果原来STACK(堆叠)(堆叠)8中存有数据,则这数据被推中存有数据,则这数据被推出堆栈而自动丢失。出栈时,数据从出堆栈而自动丢失。出栈时,数据从栈顶被取出,所有数据串行上移一格,栈顶被取出,所有数据串行上移一格,STACK 8中随机地装入一个数值。中随机地装入一个数值。S7200有有1个个9位的堆栈,栈顶用来位的堆栈,栈顶用来存储逻辑运算的结果下面的存储逻辑运算的结果下面的8位用来位用来存储中间运算结果。堆栈中的数据一存储中间运算结果

44、。堆栈中的数据一般按般按“先进后出先进后出”的原则存取。的原则存取。堆栈结堆栈结构构名称名称说明说明S0STACK0第一个第一个堆栈堆栈 S1STACK1第二个第二个堆栈堆栈S2STACK2第三个第三个堆栈堆栈S3STACK3第四个第四个堆栈堆栈S4STACK4第五个第五个堆栈堆栈S5STACK5第六个第六个堆栈堆栈S6STACK6第七个第七个堆栈堆栈S7STACK7第八个第八个堆栈堆栈S8STACK8第九个第九个堆栈堆栈栈顶栈顶STACK 0STACK 0在此逻辑堆栈的位运算中兼有累加器的作用,在此逻辑堆栈的位运算中兼有累加器的作用,存放第一操作数。对于简单逻辑指令,通常是进栈操作和存放第一

45、操作数。对于简单逻辑指令,通常是进栈操作和一些最简单的位运算,这些运算是栈顶与第二个堆栈的内一些最简单的位运算,这些运算是栈顶与第二个堆栈的内容进行与、或、非等逻辑运算。对于复杂指令,可以是堆容进行与、或、非等逻辑运算。对于复杂指令,可以是堆栈中的其他数据位直接进行运算,结果经栈顶弹出。栈中的其他数据位直接进行运算,结果经栈顶弹出。 串联电路块的并联连接。栈装载或指令(或串联电路块的并联连接。栈装载或指令(或块)。用于将串联电路块进行并联连接。执行块)。用于将串联电路块进行并联连接。执行OLDOLD指令,将堆栈中的第一级和第二级的值进行逻辑指令,将堆栈中的第一级和第二级的值进行逻辑“或或”操作

46、,结果置于栈顶(堆栈第一级),并操作,结果置于栈顶(堆栈第一级),并将堆栈中其余各级的内容依次上弹一级。将堆栈中其余各级的内容依次上弹一级。 栈装载与指令(与块)。用于将并联电路块进栈装载与指令(与块)。用于将并联电路块进行串联连接。如图行串联连接。如图3-93-9。ALDALD执行执行ALDALD指令,将堆栈指令,将堆栈中的第一级和第二级的值进行逻辑中的第一级和第二级的值进行逻辑“与与”操作,操作,结果置于栈顶(堆栈第一级),并将堆栈中的第结果置于栈顶(堆栈第一级),并将堆栈中的第三级至第九级的值依次上弹一级。三级至第九级的值依次上弹一级。 图图3-9 并联电路块并联电路块5 5 其他堆栈操

47、作指令其他堆栈操作指令逻辑入栈逻辑入栈(LPS(LPS,Logic Push)Logic Push)(见图(见图3-123-12) 逻辑推入栈指令(分支或主控指令)。用于复制栈顶逻辑推入栈指令(分支或主控指令)。用于复制栈顶的值并将这个值推入栈顶,原堆栈中各级栈值依次下压一的值并将这个值推入栈顶,原堆栈中各级栈值依次下压一级。在梯形图中的分支结构中,用于生成一条新的母线,级。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。逻辑读栈逻辑读栈(LRD(LRD,Logic Read) Logic R

48、ead) 逻辑读栈指令。把堆栈中第二级的值复制到栈顶。堆逻辑读栈指令。把堆栈中第二级的值复制到栈顶。堆栈没有推入栈或弹出栈操作,但原栈顶值被新的复制值取栈没有推入栈或弹出栈操作,但原栈顶值被新的复制值取代。在梯形图中的分支结构中,当左侧为主控逻辑块时,代。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。应注意,开始第二个和后边更多的从逻辑块。应注意,LPSLPS后第一后第一个和最后一个从逻辑块不用本指令。个和最后一个从逻辑块不用本指令。 逻辑出栈逻辑出栈(LPP(LPP,Logic Pop)Logic Pop) 逻辑栈弹出指令(分支结束或主控复位指令)。堆栈逻辑栈

49、弹出指令(分支结束或主控复位指令)。堆栈作弹出栈操作,将栈顶值弹出,原堆栈中各级栈值依次上作弹出栈操作,将栈顶值弹出,原堆栈中各级栈值依次上弹一级,堆栈第二级的值成为新的栈顶值。在梯形图中的弹一级,堆栈第二级的值成为新的栈顶值。在梯形图中的分支结构中,用于将分支结构中,用于将LPSLPS指令生成的一条新母线进行恢复。指令生成的一条新母线进行恢复。应注意,应注意,LPSLPS与与LPPLPP必须配对使用。必须配对使用。 逻辑装载堆栈逻辑装载堆栈(LDS n(LDS n,Load StackLoad Stack,n=1n=18)8) 复制堆栈中的第复制堆栈中的第n n级的值到栈顶。原栈中各级栈值依

50、次级的值到栈顶。原栈中各级栈值依次下压一级,栈底值丢失。一般很少使用该指令。下压一级,栈底值丢失。一般很少使用该指令。 LD I0.0 /装入常开触点 O I2.2 /或常开触点 LD I0.1 /被串的块开始 LD I2.0 /被并路开始 A I2.1 / OLD /栈装载或,并路结束 ALD /栈装载与,串路结束 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.

51、3 / 6 6 立即触点立即触点 立即立即(Immediate)触点指令只能用于输入触点指令只能用于输入I,执,执行立即触点指令时,立即读人物理输人点的值,行立即触点指令时,立即读人物理输人点的值,根据该值决定触点的接通断开状态;根据该值决定触点的接通断开状态; 但是并不更新该物理输人点对应的映像寄存器。但是并不更新该物理输人点对应的映像寄存器。 语句表中,分别用语句表中,分别用LDI、AI、OI来来表示开始、串联、并联的常开立即触表示开始、串联、并联的常开立即触点。点。LDNI、ANI、ONI表示相应的常表示相应的常闭立即触点。闭立即触点。 (=) (=I) 只能用于输出量只能用于输出量(Q

52、),执行该指令时,将栈,执行该指令时,将栈顶值立即写入指定的物理输出位和对应的顶值立即写入指定的物理输出位和对应的输出映像寄存器。输出映像寄存器。(1)S,置位指令,置位指令 (2)R,复位指令,复位指令 置位即置置位即置1,复位即置,复位即置0。置位和复位指令可。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多以将位存储区的某一位开始的一个或多个(最多可达可达255个)同类存储器位置个)同类存储器位置1或置或置0。 这两条指令在使用时需指明三点:操作性质、这两条指令在使用时需指明三点:操作性质、开始位和位的数量。开始位和位的数量。(1)S,置位指令,置位指令 用法:用法:Sbit,

53、 N例:例:SQ0.0,1(2)R,复位指令,复位指令 当用复位指令时,如果是对定时器当用复位指令时,如果是对定时器T位或计数器位或计数器C位进行复位,则定时器位进行复位,则定时器位或计数器位被复位,同时,定时器位或计数器位被复位,同时,定时器或计数器的当前值被清零。或计数器的当前值被清零。用法:用法:Rbit, N例:例:RQ0.2,3 L D I0.0 /装 入 常 开 触 点 A I0.1 /与 常 开 触 点 = Q 1.0 /输 出 触 点 L D I0.0 / A I0.1 / S Q 0.0, 1 /将 Q 0.0开 始 的 /1个 触 点 置1 R Q 0.2, 3 /将 Q

54、0.2开 始 的 /3个 触 点 置0 图图3.7置位复位置位复位上述程序对应的时序图如图上述程序对应的时序图如图3.8所示所示。I0.0Q0.2-Q0.4Q0.0Q1.0I0.1图图3.8时序图时序图 LD I0.0 /装入常开触点 = Q0.0 /输出触点,非立即 =I Q0.1 /立即输出触点 SI Q0.2, 1 /从Q0.2开始的1个 /触点被立即置1 LDI I0.0 /立即输入触点指令 = Q0.3 / 图图3.9立即指令程序立即指令程序扫描周期 n扫描周期 n+1扫描周期 n+3扫描周期 n+2输出刷新输出刷新输出刷新输出刷新输出刷新输入扫描输入扫描输入扫描输入扫描输入扫描Q0

55、.1I0.0Q0.0Q0.3Q0.2图图3.10时序图时序图 如图如图3-19(P40),其基本功能与置,其基本功能与置位指令位指令S和复位指令和复位指令R的功能相同。的功能相同。 置位优先(置位优先(SR)触发器的置位信)触发器的置位信号号S和复位信号和复位信号R同时为同时为1时,输出时,输出OUT信号为信号为1。 复位优先(复位优先(RS)触发器的置位信)触发器的置位信号号S和复位信号和复位信号R同时为同时为1时,输出时,输出OUT信号为信号为0 正跳变触点检测到脉冲的每一次正跳变正跳变触点检测到脉冲的每一次正跳变后,产生一个微分脉冲。后,产生一个微分脉冲。 指令格式:指令格式:EU (无操作数)(无操作数) 负跳变触点检测到脉冲的每一次负跳变负跳变触点检

温馨提示

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

评论

0/150

提交评论