S7200指令详解.docx
《S7200指令详解.docx》由会员分享,可在线阅读,更多相关《S7200指令详解.docx(89页珍藏版)》请在冰豆网上搜索。
![S7200指令详解.docx](https://file1.bdocx.com/fileroot1/2023-6/11/fa7d6d60-32a6-4e49-8aef-08e6785f0386/fa7d6d60-32a6-4e49-8aef-08e6785f03861.gif)
S7200指令详解
S7-200指令详解
PLC在运行时需要处理的数据一般都根据数据的类型不同、数据的功能不同而把数据分成几类。
这些不同类型的数据被存放在不同的存储空间,从而形成不同的数据区。
S7-200的数据区可以分为数字量输入和输出映像区、模拟量输入和输出映像区、变量存储器区、顺序控制继电器区、位存储器区、特殊存储器区、定时器存储器区、计数器存储器区、局部存储器区、高速计数器区和累加器区。
3.1S7-200的数据区
1.数字量输入和输出映象区
(1)数字量输入映像区(I区)
数字量输入映像区是S7-200CPU为输入端信号状态开辟的一个存贮区,用I表示。
在每次扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像区寄存器中。
该区的数据可以是位(1bit)、字节(8bit)、字(16bit)或者双字(32bit)。
其表示形式如下。
·用位表示I0.0、I0.1、„I0.7
I1.0、I1.1、„I1.7
„
I15.0、I15.1、„I15.7
共l28点。
输入映像区每个位地址包括存储器标识符、字节地址及位号三部分。
存储器标识符为“I”,字节地址为整数部分,位号为小数部分。
比如Il.0表明这个输入点是第1个字节的第0位。
·用字节表示IB0、IB1、„IB15
共l6个字节。
输入映像区每个字节地址包括存储器字节标识符、字节地址两部分。
字节标识符为“IB”,字节地址为整数部分。
比如IB1表明这个输入字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示IW0、IW2、„IW14
共8个字。
输入映像区每个字地址包括存储器字标识符、字地址两部分。
字标识符为“IW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,IW0中的IB0应该是高8位,IB1应该是低8位。
·用双字表示ID0、ID4、„ID12
共4个双字。
输入映像区每个双字地址包括存储器双字标识符、双字地址两部分。
双字标识符为“ID”,双字地址为整数部分。
一个双字含四个字节,四个字节的地址必须连续。
最低位字节在一个双字中应该是最高8位。
比如,ID0中的IB0应该是最高8位,IB1应该是高8位,IB2应该是低8位,IB3应该是最低8位。
(2)数字量输出映像区(Q区)
数字量输出映像区是S7-200CPU为输出端信号状态开辟的一个存贮区,用Q表示。
在扫描周期的结尾,CPU将输出映像寄存器的数值复制到物理输出点上。
该区的数据可以是位(1bit)、字节(8bit)、字(16bit)或者双字(32bit)。
其表示形式如下。
·用位表示Q0.0、Q0.1、„Q0.7
Q1.0、Q1.1、„Q1.7
„
Q15.0、Q15.1、„Q15.7
共l28点。
输出映像区每个位地址包括存储器标识符、字节地址及位号三部分。
存储器标识符为“Q”,字节地址为整数部分,位号为小数部分。
比如Q0.l表明这个输出点是第0个字节的第1位。
·用字节表示QB0、QB1、„QB15
共l6个字节。
输出映像区每个字节地址包括存储器字节标识符、字节地址两部分。
字节标识符为“QB”,字节地址为整数部分。
比如QBl表明这个输出字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示QW0、QW2、„QW14
共8个字。
输出映像区每个字地址包括存储器字标识符、字地址两部分。
字标识符为“QW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,QW0中的QB0应该是高8位,QBl应该是低8位。
·用双字表示QD0、QD4、„QD12
共4个双字。
输出映像区每个双字地址包括存储器双字标识符、双字地址两部分。
双字标识符为“QD”,双字地址为整数部分。
一个双字含四个字节,四个字节的地址必须连续。
最低位字节在一个双字中应该是最高8位。
比如,QD0中的QB0应该是最高8位,QBl应该是高8位,QB2应该是低8位,QB3应该是最低8位。
应当指出,实际没有使用的输入端和输出端的映像区的存储单元可以作中间继电器用。
2.模拟量输入和输出映象区
(1)模拟量输入映像区(AI区)
模拟量输入映像区是S7-200CPU为模拟量输入端信号开辟的一个存贮区。
S7-200将测得的模拟值(如温度、压力)转换成1个字长的(16bit)的数字量,模拟量输入用区域标识符(AI)、数据长度(W)及字节的起始地址表示。
该区的数据为字(l6bit)。
其表示形式如下。
AIW0、AIW2、„AIW30
共16个字,总共允许有16路模拟量输入。
应当指出,模拟量输入值为只读数据。
(2)模拟量输出映像区(AQ区)
模拟量输出映像区是S7-200CPU为模拟量输出端信号开辟的一个存贮区。
S7-200把l个字长(16bit)数字值按比例转换为电流或电压。
模拟量输出用区域标识符(AQ)、数据长度(W)及起始字节地址表示。
该区的数据为字(l6bit)。
其表示形式如下。
AQW0、AQW2、„AQW30
共16个字,总共允许有16路模拟量输出。
3.变量存储器区(V区)
PLC执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需要用存储器来保存。
变量存储器就是根据这个实际的要求设计的。
变量存储器区是S7-200CPU为保存中间变量数据而建立的一个存贮区,用V表示。
该区的数据可以是位(1bit)、字节(8bit)、字(l6bit)或者双字(32bit)。
其表示形式如下。
·用位表示V0.0、V0.1、„V0.7
V1.0、V1.1、„V1.7
„
V5119.0、V5119.1、„V5119.7
共40969点。
CPU221、CPU222变量存储器只有2048个字节,其变量存储区只能到V2047.7位。
变量存储器区每个位地址包括存储器标识符、字节地址及位号三部分。
存储器标识符为“V”,字节地址为整数部分,位号为小数部分。
比如Vl.l表明这是变量存储器区第1个字节的第1位。
·用字节表示VB0、VB1、„VB5119
共5120个字节。
变量存储器区每个字节地址的表示应该包括存储器字节标识符、字节地址两部分。
字节标识符为“VB”,字节地址为整数部分。
比如VBl表明这个变量存储器字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示VW0、VW2、„VW5118
共2560个字。
变量存储器区每个字地址的表示应该包括存储器字标识符、字地址两部分。
字标识符为“VW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,VW0中的VB0应该是高8位,VBl应该是低8位。
·用双字表示VD0、VD4、„VD5116
共1280个双字。
变量存储器区每个双字地址的表示应该包括存储器双字标识符、双字地址两部分。
双字标识符为“VD”,双字地址为整数部分。
一个双字含四个字节,四个字节的地址必须连续。
最低位字节在一个双字中应该是最高8位。
比如,VD0中的VB0应该是最高8位,VBl应该是高8位,VB2应该是低8位,VB3应该是最低8位。
应当指出,变量存储器区的数据可以是输入,也可以是输出。
4.位存储器区(M区)
PLC执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器来寄存。
位存储器就是根据这个要求设计的。
位存储器区是S7-200CPU为保存标志位数据而建立的一个存贮区,用M表示。
该区虽然叫位存储器,但是其中的数据不仅可以是位,也可以是字节(8bit)、字(l6bit)或者双字(32bit)。
其表示形式如下。
·用位表示M0.0、M0.1、„M0.7
M1.0、M1.1、„M1.7
„
M31.0、M31.1、„M31.7
共256点。
位存储器区每个位地址的表示应该包括存储器标识符、字节地址及位号三部分。
存储器标识符为“M”,字节地址为整数部分,位号为小数部分。
比如Ml.l表明位存储器区第1个字节的第1位。
·用字节表示MB0、MB1、„MB31
共32个字节。
位存储器区每个字节地址的表示应该包括存储器字节标识符、字节地址两部分。
字节标识符为“MB”,字节地址为整数部分。
比如MBl表明位存储器第1个字节,共8位,其中
第0位是最低位,第7位是最高位。
·用字表示MW0、MW2、„MW30
共16个字。
位存储器区每个字地址的表示应该包括存储器字标识符、字地址两部分。
字标识符为“MW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,MW0中的MB0应该是高8位,MBl应该是低8位。
·用双字表示MD0、MD4、„MD28
共8个双字。
位存储器区每个双字地址的表示应该包括存储器双字标识符、双字地址两部分。
双字标识符为“MD”,双字地址为整数部分。
一个双字含四个字节,四个字节的地址必须连续。
最低位字节在一个双字中应该是最高8位。
比如,MD0中的MB0应该是最高8位,MBl应该是高8位,MB2应该是低8位,MB3应该是最低8位。
5.顺序控制继电器区(S区)
PLC执行程序过程中,可能会用到顺序控制。
顺序控制继电器就是根据顺序控制的特点和要求设计的。
顺序控制继电器区是S7-200CPU为顺序控制继电器的数据而建立的一个存贮区,用S表示,在顺序控制过程中用于组织步进过程的控制。
顺序控制继电器区的数据可以是位,也可以是字节(8bit)、字(l6bit)或者双字(32bit)。
其表示形式如下。
·用位表示S0.0、S0.1、SM0.7
S1.0、S1.1、„S1.7
„
S31.0、S31.1、„S31.7
共256点。
顺序控制继电器区每个位地址的表示应该包括存储器标识符、字节地址及位号三部分。
存储器标识符为“S”,字节地址为整数部分,位号为小数部分。
比如S0.l表明位存储器区第0个字节的第1位。
·用字节表示SB0、SB1、„SB31
共32个字节。
顺序控制继电器区每个字节地址的表示应该包括存储器字节标识符、字节地址两部分。
字节标识符为“SB”,字节地址为整数部分。
比如SBl表明位存储器第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示SW0、SW2、„SW30
共16个字。
顺序控制继电器区每个字地址的表示应该包括存储器字标识符、字地址两部分。
字标识符为“SW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,SW0中的SB0应该是高8位,SBl应该是低8位。
·用双字表示SD0、SD4、„SD28
共8个双字。
顺序控制继电器区每个双字地址的表示应该包括存储器双字标识符、双字地址二部分。
双字标识符为“SD”,双字地址为整数部分。
一个双字含四个字节,四个字节的地址必须连续。
最低位字节在一个双字中应该是最高8位。
比如,SD0中的SB0应该是最高8位,SBl应该是高8位,SB2应该是低8位,SB3应该是最低8位。
6.局部存储器区(L区)
S7-200PLC有64个字节的局部存储器,其中60个可以用作暂时存储器或者给子程序传递参数。
如果用梯形图或功能块图编程,STEP7-Micro/WIN32保留这些局部存储器的最后四个字节。
如果用语句表编程,可以寻址所有的64个字节,但是不要使用局部存储器的最后4个字节。
局部存储器和变量存储器很相似,主要区别是变量存储器是全局有效的,而局部存储器是局部有效的。
全局是指同一个存储器可以被任何程序存取(例如,主程序、子程序或中断程序)。
局部是指存储器区和特定的程序相关联。
S7-200PLC可以给主程序分配64个局部存储器,给每一级子程序嵌套分配64个字节局部存储器,给中断程序分配64个字节局部存储器。
子程序或中断子程序不能访问分配给主程序的局部存储器。
子程序不能访问分配给主程序、中断程序或其它子程序的局部存储器。
同样,中断程序也不能访问给主程序或子程序的局部存储器。
S7-200PLC根据需要分配局部存储器。
也就是说,当主程序执行时,分配给子程序或中断程序的局部存储器是不存在的。
当出现中断或调用一个子程序时,需要分配局部存储器。
新的局部存储器在分配时可以重新使用分配给不同子程序或中断程序的相向局部存储器。
局部存储器在分配时PLC不进行初始化,初值可能是任意的。
当在子程序调用中传递参数时,在被调用子程序的局部存储器中,由CPU代替被传递的参数的值。
局部存储器在参数传递过程中不接收值,在分配时不被初始化,也没有任何值。
可以把局部存储器作为间接寻址的指针,但是不能作为间接寻址的存储器区。
局部存储器区是S7-200CPU为局部变量数据建立的一个存贮区,用L表示。
该区的数据可以是位、字节(8bit)、字(l6bit)或者双字(32bit)。
其表示形式如下。
·用位表示L0.0、L0.1、„L0.7
L1.0、L1.1、„L1.7
„
L63.0、L63.1、„L63.7
共512点。
局部存储器区每个位地址的表示应该包括存储器标识符、字节地址及位号三部分。
存储器标识符为“L”,字节地址为整数部分,位号为小数部分。
比如Ll.l表明这个输入点是第1个字节的第1位。
·用字节表示LB0、LB1、„LB63
共64个字节。
局部存储器区每个字节地址的表示应该包括存储器字节标识符、字节地址两部分。
字节标识符为“LB”,字节地址为整数部分。
比如LBl表明这个局部存储器字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示LW0、LW2、„LW62
共32个字。
局部存储器区每个字地址的表示应该包括存储器字标识符、字地址两部分。
字标识符为“LW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,LW0中的LB0应该是高8位,LBl应该是低8位。
·用双字表示LD0、LD4、„LD60
共16个双字。
局部存储器区每个双字地址的表示应该包括存储器双字标识符、双字地址两部分。
双字标识符为“LD”,双字地址为整数部分。
一个双字含四个字节,四个字节的地址必须连续。
最低位字节在一个双字中应该是最高8位。
比如,LD0中的LB0应该是最高8位,LBl应该是高8位,LB2应该是低8位,LB3应该是最低8位。
7.定时器存储器区(T区)
PLC在工作中少不了需要计时,定时器就是实现PLC具有计时功能的计时设备。
S7-200定时器的精度(时基或时基增量)分为1ms,10ms、100ms三种。
·S7-200定时器有三种类型
接通延时定时器的功能是定时器计时到的时候,定时器常开触点由OFF转为ON。
断开延时定时器的功能是定时器计时到的时候,定时器常开触点由ON转为OFF。
有记忆接通延时定时器的功能是定时器累积计时到的时候,定时器常开触点由OFF转为ON。
·定时器有三种相关变量
定时器的时间设定值(PT),定时器的设定时间等于PT值乘于时基增量。
定时器的当前时间值(SV),定时器的计时时间等于SV值乘于时基增量。
定时器的输出状态(0或者1)。
·定时器的编号
T0、T1、„T255。
S7-200有256个定时器。
定时器存储器区每个定时器地址的表示应该包括存储器标识符、定时器号两部分。
存储器标识符为“T”,定时器号为整数。
比如T1表明定时器1。
实际上T1即可以表示定时器1的输出状态(0或者1),也可以表示定时器1的当前计时值。
这就是定时器的数据具有两种数据结构的原因所在。
8.计数器存储器区(C区)
PLC在工作中有时不仅需要计时,还可能需要计数功能。
计数器就是PLC具有计数功能的计数设备。
·S7-200计数器有三种类型
增计数器的功能是每收到一个计数脉冲,计数器的计数值加1。
当计数值等于或大于设定值时,计数器由OFF转变为ON状态。
减计数器的功能是每收到一个计数脉冲,计数器的计数值减1。
当计数值等于0时,计数器由OFF转变为ON状态。
增减计数器的功能是可以增计数也可以减计数。
当增计数时,每收到一个计数脉冲,计数器的计数值加1。
当计数值等于或大于设定值时,计数器由OFF转变为ON状态。
当减计数时,每收到一个计数脉冲,计数器的计数值减1。
当计数值小于设定值时,计数器由ON转变为OFF状态。
·计数器有三种相关变量
计数器的设定值(PV)。
计数器的当前值(SV)。
计数器的输出状态(0或者1)。
·计数器的编号
C0、C1、„C255。
S7-200有256个计数器。
计数器存储器区每个计数器地址的表示应该包括存储器标识符、计数器号两部分。
存储器标识符为“C”,计数器号为整数。
比如C1表明计数器1。
实际上C1即可以表示计数器1的输出状态(0或者1),C1也可以表示计数器1的当前计数值。
这就是说计数器的数据和定时器一样具有两种数据结构。
9.高速计数器区(HSC区)
高速计数器用来累计比CPU扫描速率更快的事件。
S7-200各个高速计数器不仅计数频率高达30kHz,而且有12种工作模式。
S7-200各个高速计数器有32位带符号整数计数器的当前值。
若要存取高速计数器的值,则必须给出高数计数器的地址,即高数计数器的编号。
高速计数器的编号HSC0、HSC1、HSC2、HSC3、HSC4、HSC5。
S7-200有6个高速计数器。
其中,CPU221和CPO222仅有4个高速计数器(HSC0、HSC3、HSC4、HSC5)。
高速计数器区每个高速计数器地址的表示应该包括存储器标识符、计数器号两部分。
存储器标识符为“HSC”,计数器号为整数。
比如HSC1表明高速计数器1。
10.累加器区(AC区)
累加器是可以像存储器那样进行读/写的设备。
例如,可以用累加器向子程序传递参数,或从子程序返回参数,以及用来存储计算的中间数据。
S7-200CPU提供了4个32位累加器(AC0,AC1,AC2,AC3)。
可以按字节、字或双字来存取累加器数据中的数据。
但是,以字节形式读/写累加器中的数据时,只能读/写累加器32位数据中的最低8位数据。
如果是以字的形式读/写累加器中的数据,只能读/写累加器32位数据中的低16位数据。
只有采取双字的形式读/写累加器中的数据才能一次读写其中的32位数据。
因为PLC的运算功能是离不开累加器的。
因此不能像占用其它存储器那样占用累加器。
11.特殊存储器区(SM区)
特殊存储器是S7-200PLC为CPU和用户程序之间传递信息的媒介。
它们可以反映CPU在运行中的各种状态信息,用户可以根据这些信息来判断机器工作状态,从而确定用户程序该做什么,不该做什么。
这些特殊信息也需要用存储器来寄存。
特殊存储器就是根据这个要求设计的。
(1)特殊存储器区
S7-200CPU的特殊存储器区用SM表示。
特殊存储器区的数据有些是可读可写的,有一些是只读的。
特殊存储器区的数据可以是位,也可以是字节(8bit)、字(l6bit)或者双字(32bit)。
其表示形式如下。
·用位表示SM0.0、SM0.1、„SM0.7
SM1.0、SM1.1、„SM1.7
„
SM29.0、SM29.1、„SM29.7
„
SM179.0、SM179.1、„SM194.7
特殊存储器区每个位地址的表示应该包括存储器标识符、字节地址及位号三部分。
存储器标识符为“SM”,字节地址为整数部分,位号为小数部分。
比如SM0.l表明特殊存储器第0个字节的第1位。
·用字节表示SMB0、SMB1、„SMB29、„SMB194
特殊存储器区每个字节地址的表示应该包括存储器字节标识符、字节地址两部分。
字节标识符为“SMB”,字节地址为整数部分。
比如SMBl表明位存储器第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示SMW0、SMW2、„SMW28、„SMW194
特殊存储器区每个字地址的表示应该包括存储器字标识符、字地址两部分。
字标识符为“SMW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,SMW0中的SMB0应该是高8位,SMBl应该是低8位。
·用双字表示SMD0、SMD4、„SMD24、„SMD192
位存储器区每个双字地址的表示应该包括存储器双字标识符、双字地址两部分。
双字标识符为“SMD”,双字地址为整数部分。
一个双字含四个字节,四个字节的地址必须连续。
最低位字节在一个双字中应该是最高8位。
比如,SMD0中的SMB0应该是最高8位,SMBl应该是高8位,SMB2应该是低8位,SMB3应该是最低8位。
应当指出S7-200PLC的特殊存储器区头30个字节为只读区。
(2)常用的特殊继电器及其功能
1)SMB0字节(系统状态位)
SM0.0PLC运行时这一位始终为l,是常0N继电器。
SM0.lPLC首次扫描时为一个扫描周期。
用途之一是调用初始化使用。
SM0.3开机进入RUN方式将0N一个扫描周期。
SM0.4该位提供了一个周期为一分钟,占空比为0.5的时钟。
SM0.5该位提供了一个周期为一秒钟,占空比为0.5的时钟。
2)SMB1字节(系统状态位)
SM1.0当执行某些命令时,其结果为0时,该位置1。
SM1.1当执行某些命令时,其结果溢出或出现非法数值时,该位置1。
SM1.2当执行数学运算时,其结果为负数时,该位置1。
SM1.6当把一个非BCD数转换为二进制数时,该位置1。
SM1.7当ASCll不能转换成有效的十六进制数时,该位置1。
3)SMB2字节(自由口接收字符)
SMB2为自由口通讯方式下,从PLC端口0或端口1接收到的每一个字符。
4)SMB3字节(自由口奇偶校验)
SM3.0为端口0或端口1的奇偶校验出错时,该位置1。
5)SMB4字节(队列溢出)
SM4.0当通讯中断队列溢出时,该位置1。
SM4.1当输入中断队列溢出时,该位置1。
SM4.2当定时中断队列溢出时,该位置1。
SM4.3在运行时刻,发现编程问题时,该位置1。
SM4.4当全局中断允许时,该位置1。
SM4.5当(口0)发送空闲时,该位置1。
SM4.6当(口l)发送空闲时,该位置1。
6)SMB5字节(I/O状态)
SM5.0有I/O错误时,该位置1。
SM5.1当I/O总线上接了过多的数字量I/O点时,该位置1。
SM5.2当I/O总线上接了过多的模拟量I/O点时,该位置1。
SM5.7当DP标准总线出现错误时,该位置1。
7)SMB6字节(CPU识别寄存器)
SM6.7~6.4=0000为CPU212/CPU222
SM6.7~6.4=0010为CPU214/CPU224
SM6.7~6.4=0110为CPU221
SM6.7~6.4=1000为CPU215
SM6.7~6.4=1001为CPU216/CPU226
8)SMB8到SMB21字节(I/O模块识别和错误寄存器)
SMB8模块0识别寄存器
SMB9模块0错误寄存器
SMB10模块1识别寄存器
SMB11模块1错误寄存器