PLC的数据类型及存储区域.ppt
电气控制与PLC,长沙民政职业技术学院电子信息工程学院 刘 卫,复习引入,请计算如图所示的定时时间为多少?,一、数据类型,1.基本数据类型,S7-200 PLC的指令参数所用的基本数据类型有:1位 布尔型(BOOL)8位 字节型(BYTE)16位 无符号整数型(WORD)16位 有符号整数型(INT)32位 无符号双字整数型(DWORD)32位 有符号双字整数型(DINT)32位 实数型(REAL)。实数型(REAL)是按照ANSI/IEEE7541985标准(单精度)的表示格式规定。,返回,一、数据类型,2.数据长度与数值范围,CPU 存储器中存放的数据类型可分为BOOL、BYTE、WORD、INT、DWORD、DINT、REAL。不同的数据类型具有不同的数据长度和数值范围。在上述数据类型中,用字节(B)型、字(W)型、双字(D)型分别表示8位、16位、32位数据的数据长度。SIMATIC指令集中,指令的操作数是具有一定的数据类型和长度。如整数乘法指令的操作数是字型数据;数据传送指令的操作数可以是字节或字或双字型数据。由于S7-200 SIMATIC指令集不支持完全数据类型检查。因此编程时应注意操作数的数据类型和指令标识符相匹配。,3 存储器区域,PLC的存储器分为程序区、系统区、数据区。,程序区用于存放用户程序,存储器为EEPROM。系统区用于存放有关PLC配置结构的参数,如PLC主机及扩展模块的I/O配置和编址、配置PLC站地址,设置保护口令、停电记忆保持区、软件滤波功能等,存储器为EEPROM。数据区是S7-200 CPU提供的存储器的特定区域。它包括输入映象寄存器(I)、输出映像寄存器(Q)、变量存储器(V)、内部标志位存储器(M)、顺序控制继电器存储器(S)、特殊标志位存储器(SM)、局部存储器(L)、定时器存储器(T)、计数器存储器(C)、模拟量输入映像寄存器(AI)、模拟量输出映像寄存器(AQ)、累加器(AC)、高速计数器(HC)。存储器为EEPROM和RAM。,返回,二、存储器区域,1.数据区存储器的地址表示格式,(1)位地址格式 数据区存储器区域的某一位的地址格式为:Ax.y。必须指定存储器区域标识符A、字节地址x及位号y。例I4.5表示图1中黑色标记的位地址。I是变量存储器的区域标识符,4是字节地址,5是位号,在字节地址4与位号5之间用点号“.”隔开。,存储器是由许多存储单元组成,每个存储单元都有惟一的地址,可以依据存储器地址来存取数据。数据区存储器地址的表示格式有位、字节、字、双字地址格式。,二、存储器区域,图1 位寻址格式,MSB表示最高位,LSB表示最低位,二、存储器区域,(2)字节、字、双字地址格式 数据区存储器区域的字节、字、双字地址格式为:ATx。必须指定区域标识符A、数据长度T以及该字节、字或双字的起始字节地址x。图2中,用VB100、VW100、VD100分别表示字节、字、双字的地址。VW100由VB100、VB101两个字节组成;VD100由VB100VB103四个组成。,图2 字节、字、双字寻址格式,二、存储器区域,(3)其他地址格式 数据区存储器区域中,还包括定时器存储器(T)、计数器存储器(C)、累加器(AC)、高速计数器(HC)等,它们是模拟相关的电器元件的。它们的地址格式为:Ay。由区域标识符A和元件号y组成,例T24表示某定时器的地址,T是定时器的区域标识符,24是定时器号,同时T24又可表示此定时器的当前值。,(1)输入/输出映像寄存器(I/Q)输入映像寄存器(I)PLC的输入端子是从外部接收输入信号的窗口。每一个输入端子与输入映像寄存器(I)的相应位相对应。输入点的状态,在每次扫描周期开始(或结束)时进行采样,并将采,2.数据区存储器区域,二、存储器区域,样值存于输入映像寄存器,作为程序处理时输入点状态的依据。输入映像寄存器的状态只能由外部输入信号驱动,而不能在内部由程序指令来改变。输入映像寄存器(I)的地址格式为:位地址:I字节地址.位地址,如I0.1。字节、字、双字地址:I数据长度起始字节地址,如IB4、IW6、ID10。CPU226模块输入映像寄存器的有效地址范围为:I(0.015.7);IB(015);IW(014);ID(012)。,二、存储器区域,输出映像寄存器(Q)每一个输出模块的端子与输出映像寄存器的相应位相对应。CPU将输出判断结果存放在输出映像寄存器中,在扫描周期的结尾,CPU以批处理方式将输出映像寄存器的数值复制到相应的输出端子上。通过输出模块将输出信号传送给外部负载。输出映像寄存器(Q)地址格式为:位地址:Q字节地址.位地址,如Q1.1 字节、字、双字地址:Q数据长度起始字节地址,如QB5、QW8、QD11。CPU226模块输出映像寄存器的有效地址范围为:Q(0.015.7);QB(015);QW(014);QD(012)。,二、存储器区域,在程序的执行过程中,对于输入或输出的存取通常是通过映像寄存器,而不是实际的输入、输出端子。S7-200 CPU执行有关输入输出程序时的操作过程如图3所示。,图3 S7-200 CPU输入、输出的操作,返回,二、存储器区域,(2)内部标志位存储器(M)内部标志位存储器(M)也称内部线圈,是模拟继电器控制系统中的中间继电器,它存放中间操作状态,或存储其他相关的数据。内部标志位存储器(M)以位为单位使用,也可以字节、字、双字为单位使用。内部标志位存储器(M)的地址格式为:位地址:M字节地址.位地址,如M26.7。字节、字、双字地址:M数据长度起始字节地址,如MB11、MW23、MD26。CPU226模块内部标志位存储器的有效地址范围为:M(0.031.7);MB(031);MW(030);MD(028)。,二、存储器区域,(3)变量存储器(V)变量存储器(V)存放全局变量、存放程序执行过程中控制逻辑操作的中间结果或其他相关的数据。变量存储器是全局有效。全局有效是指同一个存储器可以在任一程序分区(主程序、子程序、中断程序)被访问。V存储器的地址格式为:位地址:V字节地址.位地址,如V10.2。字节、字、双字地址:V数据长度起始字节地址,如VB20、VW100、VD320。CPU226模块变量存储器的有效地址范围为:V(0.05119.7);VB(05119);VW(05118);VD(05116)。,二、存储器区域,(4)局部存储器(L)局部存储器用来存放局部变量。局部存储器是局部有效的。局部有效是指某一局部存储器只能在某一程序分区(主程序或子程序或中断程序)中使用。S7-200 PLC提供64个字节局部存储器,局部存储器可用作暂时存储器或为子程序传递参数。可以按位、字节、字、双字访问局部存储器。可以把局部存储器作为间接寻址的指针,但是不能作为间接寻址的存储器区。局部存储器(L)的地址格式为:位地址:L字节地址.位地址,如L0.0。字节、字、双字地址:L数据长度起始字节地址,如LB33、LW44、LD55。CPU226模块局部存储器的有效地址范围为:L(0.063.7);LB(063);LW(062);LD(060)。,二、存储器区域,(5)顺序控制继电器存储器(S)顺序控制继电器(S)用于顺序控制(或步进控制)。顺序控制继电器指令(SCR)基于顺序功能图(SFC)的编程方式。SCR指令提供控制程序的逻辑分段,从而实现顺序控制。顺序控制继电器存储器(S)的地址格式为:位地址:S字节地址.位地址,如S3.1。字节、字、双字地址:S数据长度起始字节地址,如SB4、SW10、SD21。CPU226模块顺序控制继电器存储器的有效地址范围为:S(0.031.7);SB(031);SW(030);SD(028)。,返回,二、存储器区域,(6)特殊标志位存储器(SM)特殊标志位(SM)即特殊内部线圈。它是用户程序与系统程序之间的界面,为用户提供一些特殊的控制功能及系统信息,用户对操作的一些特殊要求也通过特殊标志位(SM)通知系统。特殊标志位区域分为只读区域(SM0.0SM29.7,头30个字节为只读区)和可读写区域,在只读区特殊标志位,用户只能利用其触点。特殊标志位存储器(SM)的地址表示格式为:位地址:SM字节地址.位地址,如SM0.1。字节、字、双字地址:SM数据长度起始字节地址,如SMB86、SMW100、SMD12。CPU226模块特殊标志位存储器的有效地址范围为:SM(0.0549.7);SMB(0549);SMW(0548);SMD(0546)。,二、存储器区域,(7)定时器存储器(T)定时器是模拟继电器控制系统中的时间继电器。S7-200 PLC定时器的时基有三种:1ms、10ms、100ms。通常定时器的设定值由程序赋予,需要时也可在外部设定。定时器存储器地址表示格式为:T定时器号,如T24。S7-200 PLC定时器存储器的有效地址范围为:T(0255)。(8)计数器存储器(C)计数器是累计其计数输入端脉冲电平由低到高的次数,有三种类型:增计数、减计数、增减计数。通常计数器的设定值由程序赋予,需要时也可在外部设定。计数器存储器地址表示格式为:C计数器号,如C3。S7-200 PLC计数器存储器的有效地址范围为:C(0255)。,二、存储器区域,(9)模拟量输入映像寄存器(AI)模拟量输入模块将外部输入的模拟信号的模拟量转换成1个字长的数字量,存放在模拟量输入映像寄存器(AI)中,供CPU运算处理。模拟量输入(AI)的值为只读值。模拟量输入映像寄存器(AI)的地址格式为:AIW起始字节地址,如AIW4。模拟量输入映像寄存器(AI)的地址必须用偶数字节地址(如AIW0,AIW2,AIW4)来表示。CPU226模块模拟量输入映像寄存器(AI)的有效地址的范围为:AIW(062)。,返回,二、存储器区域,(10)模拟量输出映像寄存器(AQ)CPU运算的相关结果存放在模拟量输出映像寄存器(AQ)中,供D/A转换器将1个字长的数字量转换为模拟量,以驱动外部模拟量控制的设备。模拟量输出映像寄存器(AQ)中的数字量为只写值。模拟量输出映像寄存器(AQ)的地址格式为:AQW起始字节地址,如AQW10。模拟量输出映像寄存器(AQ)的地址必须用偶数字节地址(如AQW0,AQW2,AQW4)来表示。CPU226模块模拟量输出映像寄存器(AQ)的有效地址的范围为:AQW(062)。,二、存储器区域,(11)累加器(AC)累加器是用来暂时存储计算中间值的存储器,也可向子程序传递参数或返回参数。S7-200 CPU提供了4个32位累加器(AC0、AC1、AC2、AC3)。累加器的地址格式为:AC累加器号,如AC0。CPU226模块累加器的有效地址范围为:AC(03)。累加器是可读写单元,可以按字节、字、双字存取累加器中的数值。由指令标识符决定存取数据的长度,例如,MOVB指令存取累加器的字节,DECW指令存取累加器的字,INCD指令存取累加器的双字。按字节、字存取时,累加器只存取存储器中数据的低8位、低16位;以双字存取时,则存取存储器的32位。,二、存储器区域,(12)高速计数器(HC)高速计数器用来累计高速脉冲信号。当高速脉冲信号的频率比CPU扫描速率更快时,必须要用高速计数器计数。高速计数器的当前值寄存器为32位(bit),读取高速计数器当前值应以双字(32位)来寻址。高速计数器的当前值为只读值。高速计数器地址格式为:HC高速计数器号,如HC1。CPU226模块高速计数器的有效地址范围为:HC(05)。,三、寻址方式,1.立即寻址,指令中如何提供操作数或操作数地址,称为寻址方式。S7-200 PLC的寻址方式有:立即寻址、直接寻址、间接寻址。,立即寻址方式是,指令直接给出操作数,操作数紧跟着操作码,在取出指令的同时也就取出了操作数,立即有操作数可用,所以称为立即操作数或立即寻址。CPU以二进制方式存储所有常数。指令中可用十进制、十六进制、ASCII码或浮点数形式来表示。表示格式举例如下:十进制常数:30112 十六进制常数:16#42FASCII常数:INPUT 实数或浮点常数:+1.1E-10 二进制常数:2#0101 1110,#为常数的进制格式说明符,返回,三、寻址方式,2.直接寻址,直接寻址方式是,指令直接使用存储器或寄存器的元件名称和地址编号,根据这个地址就可以立即找到该数据。操作数的地址应按规定的格式表示。指令中,数据类型应与指令标识符相匹配。不同数据长度的寻址指令举例如下:位寻址:AND Q5.5字节寻址:ORB VB33,LB21字寻址:MOVW AC0,AQW2双字寻址:MOVD AC1,VD200,返回,三、寻址方式,3.间接寻址,间接寻址方式是,指令给出了存放操作数地址的存储单元的地址(也称地址指针)。可作为地址指针的存储器有:V、L、AC(13)可间接寻址的存储器区域有:I、Q、V、M、S、T(仅当前值)、C(仅当前值)。对独立的位(BIT)值或模拟量值不能进行间接寻址。(1)建立指针 间接寻址前,应先建立指针。指针为双字长,是所要访问的存储单元(最大为双字型32位)的物理地址。只能使用变量存储器(V)、局部存储器(L)或累加器(AC1、AC2、AC3)作为指针,AC0不能用作间接寻址的指针。,三、寻址方式,将所要访问的存储器单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:MOVD&VB200,AC1“&”为地址符号,与单元组合表示所对应单元的32位物理地址,VB200只是一个直接地址编码,并不是它的物理地址。指令中的第二个地址数据长度必须是双字长,如:AC、LD和VD。这里地址“VB200”要用32位表示,因而必须使用双字传送指令(MOVD)。指令中的&VB200如果改为&VW200或&VD200效果完全相同。因为具体的寻址范围取决于随后的间接存取指令类型。,三、寻址方式,(2)间接存取 依据指针中的内容值作为地址存取数据。使用指针可存取字节、字、双字型的数据,下面两条指令是建立指针和间接存取的应用方法:MOVD&VB200,AC1 MOVW*AC1,AC0 执行指令MOVW*AC1,AC0,把指针中的内容值(VB200)作为地址,由于指令MOVW的标识符是“W”,因而指令操作数的数据长度应是字型,把地址VB200、VB201处2个字节的内容(1234)传送到AC0。指针处的值(即1234),为字型数据,如图4所示,操作数(AC1)前面的“*”号表示该操作数(AC1)为指针。,返回,三、寻址方式,图4 间接寻址,把VB200的地址送入AC1建立指针,把指针处的值送到AC0,本指令是MOVW,为字型长度,则AC0的高16位空闲未用;若是MOVD双字型指令,则将VB200VB203的内容(即12345678)送到AC0,这里给出的是起始字节地址,而并不表示数据长度(由随后间接存取指令类型决定)为字型。所以,如果改为&VB200或&VD200效果完全相同。,三、寻址方式,(3)修改指针 存取连续地址的存储单元中数据时,通过修改指针可以非常方便地存取数据。在S7-200 PLC中,指针的内容不会自动改变,可用自增或自减等指令修改指针值。这样就可连续地存取存储单元中的数据。图5中,用两次自增指令INCD AC1,将AC1指针中的值(VB200)修改为VB202后,指针即指向新地址VB202。执行指令MOVW*AC1,AC0,这样就可在变量存储器(V)中连续地存取数据,将VB202、VB203二个字节的数据(5678)传送到AC0。,三、寻址方式,修改指针值时,应根据存取的数据长度来进行调整。若对字节进行存取,指针值加1(或减1);若对字进行存取、或对定时器、计数器的当前值进行存取,指针值加2(或减2);若对双字进行存取,则指针值加4(或减4)。图5中,存取的数据长度是字型数据,因而指针值加2。,图5 修改指针,把指针增加两次,指向下一个字,把AC1(VW202)所指向的字数值送到AC0,谢谢,