第7章_西门子_S7-200_PLC的指令系统_第1页
第7章_西门子_S7-200_PLC的指令系统_第2页
第7章_西门子_S7-200_PLC的指令系统_第3页
第7章_西门子_S7-200_PLC的指令系统_第4页
第7章_西门子_S7-200_PLC的指令系统_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第7章S7-200PLC的指令系统,学习目标:,熟练掌握梯形图和语句表的编程方法,掌握基本指令和功能指令中的常用指令,了解和会用其他指令。通过对本章的学习,做到可以根据需要编制出结构较复杂的控制程序。,第7章S7-200PLC的指令系统,教学内容:,1S7-200PLC编程基础2S7-200PLC的基本指令及编程方法3S7-200PLC的功能指令及编程方法,7.2S7-200PLC编程基础,教学目的与要求:了解S7-200系列PLC的的内部资源(编程器件)教学重点:PLC内部存储器的编址及本质,定时器、计数器教学难点:存储器的使用教学方法:讲授、图示和举例课时数:2,7.2S7-200PLC指令及其结构,S7-200系列PLC主机中有两类指令集:IEC11313指令集;SIMATIC指令集。IEC11313指令集是国际电工委员会(IEC)制定的PLC国际标准11313ProgrammingLanguage(编程语言)中推荐的标准语言,只能用梯形图(LAD)和功能块图(FBD)编程语言编程,通常指令执行时间较长。SIMATIC指令集是西门子公司为S7-200PLC设计的编程语言,该指令通常执行时间短,而且可以用梯形图(LAD)、功能块图(FBD)和语句表(STL)三种编程语言。,7.2.1编程语言,SIMATIC指令集是西门子公司专为S7-200PLC设计的编程语言。该指令集中,大多数指令也符合IEC11313标准。SIMATIC指令集不支持系统完全数据类型检查。使用SIMATIC指令集,可以用梯形图(LAD)、功能块图(FBD)和语句表(STL)编程语言编程。,返回,7.2.1编程语言,1.梯形图(LAD)编程语言,梯形图(LAD),梯形图(LAD)是与电气控制电路相呼应的图形语言。它沿用了继电器、触头、串并联等术语和类似的图形符号,并简化了符号,还增加了一些功能性的指令。梯形图按自上而下,从左到右的顺序排列,最左边的竖线称为起始母线也叫左母线,然后按一定的控制要求和规则连接各个接点,最后以继电器线圈(或再接右母线)结束,称为一逻辑行或叫一“梯级”。通常一个梯形图中有若干逻辑行(梯级),形似梯子,如图所示。,右母线省略,2.功能块图(FBD)编程语言,功能块图(FBD),对应图5-1中的I0.1长闭触点,功能块图(FBD)类似于普通逻辑功能图,它沿用了半导体逻辑电路的逻辑框图的表达方式。一般用一种功能方框表示一种特定的功能,框图内的符号表达了该功能块图的功能。功能块图通常有若干个输入端和若干个输出端。输入端是功能块图的条件,输出端是功能块图的运算结果。,3.语句表(STL)编程语言,语句表(STL)是用助记符来表达PLC的各种控制功能的。它类似于计算机的汇编语言,但比汇编语言更直观易懂,编程简单,因此也是应用很广泛的一种编程语言。这种编程语言可使用简易编程器编程,但比较抽象,一般与梯形图语言配合使用,互为补充。,语句表(STL),通常梯形图(LAD)程序、功能块图(FBD)程序、语句表(STL)程序可有条件的方便地转换(以网络为单位转换)。但是,语句表(STL)可以编写梯形图(LAD)或功能块图(FBD)无法实现的程序。,补充:数据类型,1.基本数据类型及数据类型检查(1)基本数据类型,S7-200PLC的指令参数所用的基本数据类型有:1位布尔型(BOOL)8位字节型(BYTE)16位无符号整数型(WORD)16位有符号整数型(INT)32位无符号双字整数型(DWORD)32位有符号双字整数型(DINT)32位实数型(REAL)。实数型(REAL)是按照ANSI/IEEE7541985标准(单精度)的表示格式规定。,返回,数据类型,(2)数据类型检查,PLC对数据类型检查有助于避免常见的编程错误。数据类型检查分为三级:完全数据类型检查、简单数据类型检查和无数据类型检查S7-200PLC的SIMATIC指令集不支持完全数据类型检查。使用局部变量时,执行简单数据类型检查;使用全局变量时,指令操作数为地址而不是可选的数据类型时,执行无数据类型检查。,数据类型,2.数据长度与数值范围,CPU存储器中存放的数据类型可分为BOOL、BYTE、WORD、INT、DWORD、DINT、REAL。不同的数据类型具有不同的数据长度和数值范围。在上述数据类型中,用字节(B)型、字(W)型、双字(D)型分别表示8位、16位、32位数据的数据长度。不同的数据长度对应的数值范围如表5-4所示。SIMATIC指令集中,指令的操作数是具有一定的数据类型和长度。如整数乘法指令的操作数是字型数据;数据传送指令的操作数可以是字节或字或双字型数据。由于S7-200SIMATIC指令集不支持完全数据类型检查。因此编程时应注意操作数的数据类型和指令标识符相匹配。,7.2.2寻址方式PLC最大的特点是可以利用其内部软元件的逻辑组合代替由继电器盘实现的硬件逻辑,软元件没有使用次数的限制,可以无限次使用。所谓软元件实际上就是PLC内部的各存储单元,为方便编程使用,各存储单元根据功能的不同分配了不同的名称,如输入过程映像寄存器(I)、输出过程映像寄存器(Q)、变量寄存器(V)等。每一个存储器单元都编有唯一的地址,通过这个地址,用户可以方便地在程序中使用该存储单元进行数据存储或传输。,一个完整的地址包括存储器标识符、字节地址及位地址。如I6.3,I表示输入过程映像寄存器;6表示第6个字节;3表示该字节中的第3位。字节与位地址之间用“.”分隔。S7-200系列PLC可以使用直接寻址方式和间接寻址方式对数据进行操作。1直接寻址方式直接寻址是指在编程过程中直接使用各存储单元的地址编号存取数据的寻址方式。直接寻址方式可以对各存储器区进行位地址、字节地址、字地址、双字地址的数据操作。图7.5以变量存储区(V)为例,介绍位地址、字节地址、字地址、双字地址的表示方法。,(a)位地址,MSB表示最高位,LSB表示最低位,(b)字节地址、字地址、双字地址图7.5变量存储区(V)直接寻址的表示方法,高位字节,高位字节,S7-200PLC存储区域,数据区是S7-200CPU提供的存储器的特定区域。它包括输入映象寄存器(I)、输出映像寄存器(Q)、变量存储器(V)、内部标志位存储器(M)、顺序控制继电器存储器(S)、特殊标志位存储器(SM)、局部存储器(L)、定时器存储器(T)、计数器存储器(C)、模拟量输入映像寄存器(AI)、模拟量输出映像寄存器(AQ)、累加器(AC)、高速计数器(HC)。存储器为EEPROM和RAM。,返回,1)输入映像寄存器(I)输入映像寄存器(I)中的每一个位地址对应PLC的一个输入端子,用于存放外部传感器或开关元件发来的信号。在每个扫描周期的开始,PLC对所有输入端子状态进行采样,并把采样结果送入输入映像寄存器(I)。在一个扫描周期内,程序执行只使用输入映像寄存器中的数据进行处理,而不论外部输入端子的状态是什么。编程时要注意,输入映像寄存器只能反映外部信号的状态,而不能由程序设置,也不能用于驱动负载。,2)输出映像寄存器(Q)输出映像寄存器中的每一个位地址对应PLC的一个输出端子,用于存放程序执行后的所有输出结果,以控制外部负载的接通与断开。PLC在执行用户程序的过程中,并不把输出信号直接输出到输出端子,而是送到输出映像寄存器(Q)中,在每个扫描周期的最后,才将输出映像寄存器中的数据统一送到输出端子。,输入/输出映像寄存器(I/Q),输入映像寄存器(I)的地址格式为:位地址:I字节地址.位地址,如I0.1字节、字、双字地址:I数据长度起始字节地址,如IB4、IW6、ID10CPU226模块输入映像寄存器的有效地址范围为:I(0.015.7);IB(015);IW(014);ID(012)。,输出映像寄存器(Q)地址格式为:位地址:Q字节地址.位地址,如Q1.1字节、字、双字地址:Q数据长度起始字节地址,如QB5、QW8、QD11。CPU226模块输出映像寄存器的有效地址范围为:Q(0.015.7);QB(015);QW(014);QD(012)。,3)内部标志位存储器(M)PLC进行逻辑控制时,除了输入映像寄存器和输出映像寄存器直接与外部设备联系之外,还有一些内部状态标志或者输入端子与输出端子之间的逻辑关系需要中间单元进行存储和过渡,这些中间单元即内部标志位存储器。内部标志位存储器只起中间状态暂存的作用,不能直接接收输入信号的控制,也不能直接输出用于驱动外部设备,类似于继电盘控制系统中的中间继电器。,内部标志位存储器(M)的地址格式为:位地址:M字节地址.位地址,如M26.7。字节、字、双字地址:M数据长度起始字节地址,如MB11、MW23、MD26。CPU226模块内部标志位存储器的有效地址范围为:M(0.031.7);MB(031);MW(030);MD(028)。,4)特殊标志位存储器(SM)特殊标志位存储器是PLC内部保留的一部分存储空间,用于保存PLC自身工作状态数据或提供特殊功能。该存储器区可以反映CPU运行时的各种状态信息,用户程序能够根据这些信息判断PLC的工作状态,从而确定下一步的程序走向。(在7.2.4小节中会有详细介绍)5)顺序控制继电器(S)(不讲)顺序控制继电器是用于步进顺控指令中的特殊(专用)继电器,通常要与步进顺控指令结合使用,用于组织步进过程。,6)变量存储器(V)在程序处理过程或上下位机通信过程中,会产生大量的中间变量数据需要存储,S7-200系列PLC专门提供了一个较大存储器区存储此类数据,即变量存储器。应用比较灵活。变量存储器是全局有效。全局有效是指同一个存储器可以在任一程序分区(主程序、子程序、中断程序)被访问。V存储器的地址格式为:位地址:V字节地址.位地址,如V10.2。字节、字、双字地址:V数据长度起始字节地址,如VB20、VW100、VD320。CPU226模块变量存储器的有效地址范围为:V(0.05119.7);VB(05119);VW(05118);VD(05116)。,7)局部存储器(L)局部存储器用来存放局部变量。局部存储器是局部有效的。局部有效是指某一局部存储器只能在某一程序分区(主程序或子程序或中断程序)中使用。S7-200PLC提供64个字节局部存储器,局部存储器可用作暂时存储器或为子程序传递参数。可以按位、字节、字、双字访问局部存储器。可以把局部存储器作为间接寻址的指针,但是不能作为间接寻址的存储器区。局部存储器(L)的地址格式为:位地址:L字节地址.位地址,如L0.0。字节、字、双字地址:L数据长度起始字节地址,如LB33、LW44、LD55。CPU226模块局部存储器的有效地址范围为:L(0.063.7);LB(063);LW(062);LD(060)。,8)定时器存储器(T)在PLC中,定时器的作用相当于时间继电器,其定时值由程序赋予。S7-200系列PLC中包括1ms、10ms、100ms3种精度的定时器,每个定时器对应一个16位的当前值寄存器和一个状态位。16位的寄存器存储定时器所累积的时间,状态位标志定时器定时时间到达时的动作。当前值寄存器和状态位均可由(T+定时器号)来表示,如T10。区分依赖于对其操作的指令,位操作指令存取定时器状态位,而字操作指令对寄存器值进行操作。S7-200PLC定时器存储器的有效地址范围为:T(0255)。,9)计数器存储器(C)在PLC中,计数器用于累积输入脉冲的个数,当计数值达到由程序设置的数值时,执行特定功能。S7-200系列PLC提供了3种类型的计数器,即增计数器、减计数器和增减计数器,每个计数器也对应一个16位的当前值寄存器和一个状态位。当前值寄存器和状态位均可由(C+定时器号)来表示,如C10。其区分同定时器。S7-200PLC计数器存储器的有效地址范围为:C(0255)。,数据区存储器区域,10)高速计数器(HC)计数器(C)的输入脉冲频率受到PLC扫描周期的限制不能太高,而在控制领域中,高频脉冲的技术又是普遍要求(如控制电机的精确定位等)。所以PLC专门设计了能够对高频脉冲进行计数的高速计数器,使用专用端子接收高频脉冲信号。高速计数器用HC作为标识,可用“HC+计数器号”的形式进行32位有符号整数(即当前计数值)的存取,如HC0。高速计数器的当前值为只读值。CPU226模块高速计数器的有效地址范围为:HC(05)。,11)模拟量输入(AI)及模拟量输出(AQ)模拟量的转换是通过模拟量模块完成的,但其数据的存储是在CPU模块中,也是由CPU完成其寻址的。模拟量经过A/D转换变为数字量,存储在模拟量输入寄存器(AI)中。而存储在模拟量输出寄存器(AQ)中的数字量经过D/A转换变为模拟量,供外部电路使用。模拟量输入寄存器和模拟量输出寄存器均按16位(1个字)存储数值,所以要从偶数号字节开始为其编址。具体内容如图7.6所示。如模拟量输入寄存器地址为AIW0、AIW2、AIW4、;模拟量输出寄存器地址为AQW0、AQW2、AQW4、。要注意的是用户程序无法读取模拟量输出寄存器的内容。,图7.6模拟量输入与输出字节示意图,12)累加器(AC)累加器是可以像存储器一样使用的读/写区间,它可以用于向子程序传递参数或从子程序返回参数,也可以用于存储计算过程的中间值。S7-200系列PLC提供了4个32位的累加器,地址编号分别为AC0、AC1、AC2、AC3,使用时只需写出累加器的地址编号即可。,图7.7累加器使用方法图,累加器的使用,7.2寻址方式,1.立即寻址,指令中如何提供操作数或操作数地址,称为寻址方式。S7-200PLC的寻址方式有:立即寻址、直接寻址、间接寻址。,立即寻址方式是,指令直接给出操作数,操作数紧跟着操作码,在取出指令的同时也就取出了操作数,立即有操作数可用,所以称为立即操作数或立即寻址。CPU以二进制方式存储所有常数。指令中可用十进制、十六进制、ASCII码或浮点数形式来表示。表示格式举例如下:十进制常数:30112十六进制常数:16#42FASCII常数:INPUT实数或浮点常数:+1.1E-10二进制常数:2#01011110,#为常数的进制格式说明符,返回,寻址方式,2.直接寻址,直接寻址方式:指令直接使用存储器或寄存器的元件名称和地址编号,根据这个地址就可以立即找到该数据。操作数的地址应按规定的格式表示。指令中,数据类型应与指令标识符相匹配。不同数据长度的寻址指令举例如下:位寻址:ANDQ5.5字节寻址:ORBVB33,LB21字寻址:MOVWAC0,AQW2双字寻址:MOVDAC1,VD200,返回,3.间接寻址,间接寻址方式:指令给出了存放操作数地址的存储单元的地址(也称地址指针)。可作为地址指针的存储器有:V、L、AC(13)可间接寻址的存储器区域有:I、Q、V、M、S、T(仅当前值)、C(仅当前值)。对独立的位(BIT)值或模拟量值不能进行间接寻址。(1)建立指针间接寻址前,应先建立指针。指针为双字长,是所要访问的存储单元(最大为双字型32位)的物理地址。只能使用变量存储器(V)、局部存储器(L)或累加器(AC1、AC2、AC3)作为指针,AC0不能用作间接寻址的指针。,例:MOVD&VB200VD10MOVD&MB10LD0MOVD&T0AC1(1)“&”为取地址符号,它与存储单元地址编号结合表示对应单元的32位物理地址。物理地址是指存储单元在整个存储器中的绝对位置。VB200只是存储单元的一个直接地址编号。(2)指令中第二个存储器单元或寄存器必须为双字长度(32位),如VD、LD、AC。,2)利用地址指针存取数据在存储器单元或寄存器前面加“*”号表示一个地址指针。例:MOVD&VB200AC1MOVW*AC1VW100该程序表示将VW200中的数据传送到VW100中。AC1中存储着VB200的物理地址,*AC1直接指向VB200存储单元,MOVW指令决定了指针指向的是一个字长的数据,在本例中,存储在VB200,VB201中的数据被送到VB100,VB21中,如图7.8所示。,图7.8使用地址指针存取数据,3)地址指针的修改通过修改地址指针,可以方便地存取相邻存储单元的数据,如进行查表或多个连续数据两两计算。只需要使用加法、自增等算术运算指令就可以实现地址指针的修改,但要注意指针所指向数据的长度。存取字节时,指针值加1;存取一个字、定时器或计数器的当前值时,指针值加2;存取双字时,指针值加4。如图7.9所示为一连加运算程序,修改指针使VW200VW204的数值和AC0中的数值连加,最后放入AC0中。,图7.9修改指针进行连加运算,3)地址指针的修改通过修改地址指针,可以方便地存取相邻存储单元的数据,如进行查表或多个连续数据两两计算。只需要使用加法、自增等算术运算指令就可以实现地址指针的修改,但要注意指针所指向数据的长度。存取字节时,指针值加1;存取一个字、定时器或计数器的当前值时,指针值加2;存取双字时,指针值加4。如图7.9所示为一连加运算程序,修改指针使VW200VW204的数值和AC0中的数值连加,最后放入AC0中。,3.间接寻址,将所要访问的存储器单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:MOVD&VB200,AC1“&”为地址符号,与单元组合表示所对应单元的32位物理地址,VB200只是一个直接地址编码,并不是它的物理地址。指令中的第二个地址数据长度必须是双字长,如:AC、LD和VD。这里地址“VB200”要用32位表示,因而必须使用双字传送指令(MOVD)。指令中的&VB200如果改为&VW200或&VD200效果完全相同。因为具体的寻址范围取决于随后的间接存取指令类型。,(2)间接存取,依据指针中的内容值作为地址存取数据。使用指针可存取字节、字、双字型的数据,下面两条指令是建立指针和间接存取的应用方法:MOVD&VB200,AC1MOVW*AC1,AC0执行指令MOVW*AC1,AC0,把指针中的内容值(VB200)作为地址,由于指令MOVW的标识符是“W”,因而指令操作数的数据长度应是字型,把地址VB200、VB201处2个字节的内容(1234)传送到AC0。指针处的值(即1234),为字型数据,如图5-7所示,操作数(AC1)前面的“*”号表示该操作数(AC1)为指针。,返回,间接寻址,图5-7间接寻址,把VB200的地址送入AC1建立指针,把指针处的值送到AC0,本指令是MOVW,为字型长度,则AC0的高16位空闲未用;若是MOVD双字型指令,则将VB200VB203的内容(即12345678)送到AC0,这里给出的是起始字节地址,而并不表示数据长度(由随后间接存取指令类型决定)为字型。所以,如果改为&VB200或&VD200效果完全相同。,(3)修改指针,存取连续地址的存储单元中数据时,通过修改指针可以非常方便地存取数据。在S7-200PLC中,指针的内容不会自动改变,可用自增或自减等指令修改指针值。这样就可连续地存取存储单元中的数据。图5-8中,用两次自增指令INCDAC1,将AC1指针中的值(VB200)修改为VB202后,指针即指向新地址VB202。执行指令MOVW*AC1,AC0,这样就可在变量存储器(V)中连续地存取数据,将VB202、VB203二个字节的数据(5678)传送到AC0。应用:做1100的累加、求平均成绩、排序等,(3)修改指针,修改指针值时,应根据存取的数据长度来进行调整。若对字节进行存取,指针值加1(或减1);若对字进行存取、或对定时器、计数器的当前值进行存取,指针值加2(或减2);若对双字进行存取,则指针值加4(或减4)。图5-8中,存取的数据长度是字型数据,因而指针值加2。,图修改指针,把指针增加两次,指向下一个字,把AC1(VW202)所指向的字数值送到AC0,用户程序结构,用户程序可分为三个程序分区:主程序、子程序(可选)和中断程序(可选)。,主程序(OB1):是用户程序的主体。CPU在每个扫描周期都要执行一次主程序指令。子程序:是程序的可选部分,只有当主程序调用时,才能够执行。合理使用子程序,可以优化程序结构,减少扫描时间。中断程序:是程序的可选部分,只有当中断事件发生时,才能够执行。中断程序可在扫描周期的任意点执行。,返回,梯形图语言编程的一般规则,1.梯形图由多个梯级组成,每个线圈可构成一个梯级,每个梯级有多条支路,每个梯级代表一个逻辑方程;2、梯形图中的继电器继电器、接点、线圈不

温馨提示

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

评论

0/150

提交评论