1.09k likes | 1.4k Views
SIEMENS S7-200 可编程控制器. 4.1 S7 系列可编程控制器概述 4.1.1 概述. 4.1.2 S7-200 系列 PLC 的系统组成. 图 4-2 S7-200 的基本构成. S7-200 型的 PLC 主机单元. S7-200 型的 PLC 主机单元的 CPU 共有两个系列: CPU21X 系列和 CPU22X 系列。 CPU21X 系列 CPU 包括 CPU212 、 CPU214 、 CPU215 、 CPU216 ;
E N D
SIEMENS S7-200 可编程控制器 • 4.1 S7系列可编程控制器概述 • 4.1.1 概述
4.1.2 S7-200系列PLC的系统组成 • 图4-2 S7-200的基本构成
S7-200型的PLC主机单元 • S7-200型的PLC主机单元的CPU共有两个系列:CPU21X系列和CPU22X系列。 • CPU21X系列CPU包括CPU212、CPU214、CPU215、CPU216; • CPU22X系列CPU包括CPU221、CPU222、CPU224、CPU224XP和CPU226。 • CPU21X系列属于S7-200的第一代产品,是即将被淘汰的产品,不做具体的介绍,目前的主流产品是CPU22X系列。除了CPU221主机以外,其它CPU主机均可以进行系统扩展。 • 图4-3展示一台带有扩展模块的S7-200 PLC。
S7-200的CPU22X系列PLC的主要技术数据 • 表4-1 CPU22X系列的主要技术数据
4.2 S7-200 CPU存储器的数据类型及寻址方式 • 4.2.1 S7-200 寻址 • 1)数据格式 • S7-200 CPU以不同的数据格式保存和处理信息。S7-200支持的数据格式完全符合通用的相关标准。它们占用的存储单元长度不同,内部的表示格式也不同。这就是说,数据都有各自规定的长度,表示的数值范围也不同。S7-200的SIMATIC指令系统针对不同的数据格式提供了不同类型的编程命令。 • 数据格式和取值范围如表4-6所列。
2)数据的寻址长度 • 在S7-200系统中,可以按位、字节、字和双字对存储单元寻址。 • 寻址时,数据地址以代表存储区类型的字母开始,随后是表示数据长度的标记,然后是存储单元编号;对于二进制位寻址,还需要在一个小数点分隔符后指定位编号。图4-4 位寻址举例 • 位寻址的举例如图4-4所示。字节寻址的举例如图4-5所示。
多字节组合寻址 • ,S7-200遵循“高地址、低字节”的规律。如果将16#AB(十六进制立即数)送人VBl00,16#CD送人VBl01,那VWl00的值将是16斡ABCD。即VBl01作为高地址字节,保存数据的低字节部分。
(1)输入过程映像寄存器:I • 在每次扫描周期的开始,CPU对物理输入点进行采样,并将采样值写入输入过程映像寄存器中。可以按位、字节、字或双字来存取输入过程映像寄存器中的数据。 • 位:I[字节地址].[位地址] I0.1 • 字节、字或双字:I[长度][起始字节地址] IB4 IWl ID0
(2)输出过程映像寄存器:Q • 在每次扫描周期的结尾,CPU将输出过程映像寄存器中的数值复制到物理输出点上。可以按位、字节、字或双字来存取输出过程映像寄存器中的数据。 • 位:Q[字节地址].[位地址] Q1.1 • 字节、字或双字:Q[长度][起始字节地址] QB5 QWl QD0
(3)变量存储区:V • 可以用V存储器存储程序执行过程中控制逻辑操作的中间结果,也可以用它来保存与工序或任务相关的其他数据。可以按位、字节、字或双字来存取V存储器中的数据。 • 位:V[字节地址].[位地址] V10.2 • 字节、字或双字:V[长度][起始字节地址] VBl00 VW200 VD300
(4)位存储区:M • 可以用位存储区作为控制继电器来存储中间操作状态和控制信息。可以按位、字节、字或双字来存取位存储区中的数据。 • 位:M[字节地址].[位地址] M26.7 • 字节、字或双字:M[长度][起始字节地址] MBO MWl3 MD20
(5)定时器存储区:T • 在S7-200 CPU中,定时器可用于时间累计。定时器寻址有两种形式: • ●当前值:16位有符号整数,存储定时器所累计的时间。 • ●定时器位:按照当前值和预置值的比较结果置位或者复位。 • 两种寻址使用同样的格式,用定时器地址(T+定时器号,如T33)来存取这两种形式的定时器数据。究竟使用哪种形式取决于所使用的指令。 • 位:T[定时器号] T37 • 字:T[定时器号] T96
(6)计数器存储区:C • 在S7-200CPU中,计数器可以用于累计其输入端脉冲电平由低到高的次数。计数器有两种寻址形式: • ●当前值:16位有符号整数,存储累计值。 • ●计数器位:按照当前值和预置值的比较结果来置位或者复位。 • 可以用计数器地址(C+计数器号,如CO)来存取这两种形式的计数器数据。究竟使用哪种形式取决于所使用的指令。 • 位:C[计数器号] C0 • 字:C[计数器号] C255
(7)高速计数器:HC • 高速计数器对高速事件计数,它独立于CPU的扫描周期。高速计数器有一个32位的有符号整数计数值(或当前值)。若要存取高速计数器中的值,则应给出高速计数器的地址,即存储器类型(HC)加上计数器号(如HC0)。高速计数器的当前值是只读数据,可作为双字(32位)来寻址。 • 格式:HC[高速计数器号] HC1
(8)累加器:AC • 累加器是可以像存储器一样使用的读写存储区。例如,可以用它来向子程序传递参数,也可以从子程序返回参数,以及用来存储计算的中间结果。 • S7-200提供4个32位累加器(AC0、ACl、AC2和AC3)。可以按字节、字或双字的形式来存取累加器中的数值。被操作的数据长度取决于访问累加器时所使用的指令。
(9)顺序控制继电器:S • 顺序控制继电器位(S)用于组织机器操作或进入等效程序段的步进控制。顺序控制继电器(SCR)提供控制程序的逻辑分段,可以按位、字节、字或双字来存取S位。 • 位 S[字节地址].[位地址] S3.1 • 字节、字、双字S[长度][起始字节地址] SB4 SW24 SD20
(10)局部存储器:L • 可以按位、字节、字或双字访问局部存储器。可以把局部存储器作为间接寻址的指针,但不能作为间接寻址的存储器区。 • 位L[字节地址].[位地址] L0.2 • 字节、字、双字L[长度][起始字节地址] LB33 LWl0 LDl5
(11)特殊存储器:SM • 位: SM[字节地址].[位地址] SMO.1 • 字节、字或者双字:SM[长度][起始字节地址] SMB86
(12)模拟量输入:AI • S7-200将模拟量值(如温度或电压)转换成1个字长(16位)的数据。可以用区域标志符(AI)、数据长度(W)及字节的起始地址来存取这些值。因为模拟值输入为1个字长,且从偶数位字节(如0,2,4)开始,所以必须用偶数字节地址(如AIW0,AIW2,AIW4)来存取这些值。模拟量输入值为只读数据。模拟量转换的实际精度是12位。 • 格式:AIW[起始字节地址] AIW4
(13)模拟量输出:AQ • S7-200把1个字长(16位)数字值按比例转换为电流或电压。可以用区域标志符(AQ)、数据长度(W)及字节的起始地址来改变这些值。因为模拟量为一个字长,且从偶数字节(如0,2,4)开始,所以必须用偶数字节地址(如AQW0,AQW2,AQW4)来改变这些值。模拟量输出值为只写数据。模拟量转换的实际精度是12位。 • 格式:AQW[起始字节地址] AQW4
4.3 S7-200可编程控制器的指令系统 • 在S7-200的指令系统主要包括以下几种: • 位操作指令,包括逻辑控制指令、定时器指令、计数器指令和比较指令。 • 运算指令,包括四则运算,逻辑运算,数学函数指令。 • 数据处理指令,包括传送、移位、字节交换和填充指令。 • 表功能指令,包括对表的存取和查找指令。 • 转换指令,包括数据类型转换、编码和译码、七段码指令和字符串转换指令。 • 在基本指令中,位操作指令是其它所有指令应用的基础,非常重要,因此是需要重点掌握的内容。除位操作指令外,其它的基本指令反映了PLC对数据运算和数据处理能力,这些指令拓宽了PLC的应用领域。
4.3.1 基本逻辑指令 • 1) LD(Load)、LDN(Load Not)和线圈驱动指令=(Out) • LD:常开触点逻辑运算开始,装入常开触点。 • LDN:常闭触点逻辑运算开始,装入常闭触点。 • =:输出指令,线圈驱动。
2) 触点串联指令A(And) 和AN(And Not) • A:常开触点串联连接。 • AN:常闭触点串联连接。 • A和AN的操作数为:I、Q、M、SM、T、C、V、S。
3) 触点并联指令O(Or),ON(Or Not) • O:常开触点并联连接。 • ON:常闭触点并联连接。 • 操作数为:I、Q、M、SM、T、C、V、S。
4) 串联电路块的并联指令OLD • 4) 串联电路块的并联指令OLD • OLD(OrLoad),用于串联电路块为并联连接。
5) 并联电路块的串联指令ALD • ALD(AndLoad),用于并联电路块的串联连接。
6) 置位、复位指令S(Set)/R(Reset) • S置位即置1,R复位即置0。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。 • 开始位的操作数为:Q、M、SM、T、C、V、S。 • 数量位的操作数为:VB、IB、QB、MB、SMB、LB、SB、AC、常数等。
7) 脉冲生成指令EU(Edge Up)和ED(Edge Down) • EU指令在对应输入(I0.0)有上升沿时,产生一宽度为扫描周期的微分脉冲, • ED指令在对应输入(I0.0)有下降沿时,产生一宽度为扫描周期的微分脉冲,
8) 逻辑结果取反指令NOT • NOT指令用于将NOT指令左端的逻辑运算结果取反。NOT指令无操作数。
9)立即数指令I(Immediate)(LDI、LDNI、AI、ANI、OI、ONI、=I、SI、RI) • 在程序中遇到立即指令时,若涉及到输入触点,则CPU绕过输入映像寄存器,直接读入输入点的通断状态作为等量齐观处理的依据,但不对映像寄存器作刷新处理。 • 若涉及输出线圈,则将除结果写入映像寄存器PIQ外,更直接以结果驱动实际输出而不等待程序结束指令。
4.3.2 定时、计数器和比较指令 • 1) 定时器指令 • 3种类型的定时器:通电延时定时器TON、有记忆通电延时定时器TONR和断电延时定时器TOF,总共提供256个定时器T0~T255,其中TONR为64个,其余192个可定义为TON或TOF。定时精度(时间增量/时间单位/分辨率)可分为3个等级:1ms、10ms、100ms。 • 表4-10 CPU22X系列定时器的定时精度及编号
(2) 有记忆接通延时定时器指令TONR(Retentive On-Delay Timer) • 有记忆接通延时定时器TONR,用于多个时间间隔的累计定时。
(3)断开延时定时器指令TOF(Off-Delay Timer)。 • 断开延时定时器TOF用于输入断开后单一间隔的定时。
定时器的刷新方式 • 1ms定时器由系统每隔lms刷新一次,与扫描周期及程序处理无关,因而当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个周期内不一定保持一致; • 1Oms定时器则由系统在每个扫描周期开始时自动刷新,由于是每个扫描周期只刷新一次,故在每次程序处理期间,其当前值为常数; • lOOms定时器则在该定时器指令执行时才被刷新。
1ms、10ms、100ms定时器的定时精度 • 其预设值必须大于最小需要的时间间隔。 • 使用1ms定时器要确保至少56ms的时间间隔,预设值应大于57。 • 使用10ms定时器要确保至少140ms的时间间隔,预设值应大于15。 • 使用100ms定时器要确保至少2100ms的时间间隔,预设值应大于22。
2) 计数器指令 • S7-200计数器指令有3种类型: • 递增计数CTU、增减计数CTUD和递减计数CTD,共计256个,编号为C0~C255。 • 指令操作数有4方面:编号、预设值、脉冲输入和复位输入。每个计数器只能使用一次,不能重复使用同一计数器的线圈编号。每个计数器有一个16位的当前值寄存器及一个状态位,最大计数值PV的数据类型为整数型INT。 • 寻址范围为:VW,IW,QW,NW,MW,SW,SMW,LW,AIW,T,C,AC,*VD,*AC,*LD及常数。
(3) 增减计数器指令CTUD(Couter Up/Down) • 增减计数器的计数范围为-32768~32767。当CTUD计数到最大值32767后,如CU端又有计数脉冲输入,在这个计数脉冲的上升沿,使当前值寄存器跳变到最小值-32768;反之,在当前值为最小值-32768后,如CD端又有计数脉冲输入,在这个计数脉冲的上升沿,使当前值寄存器跳变到最大值32767。
3) 比较指令 • 比较指令是将两个操作数IN1和IN2按指定的条件作比较,条件成立时触点就闭合。比较运算符有: • 等于(=),大于等于(≥),小于等于(≤) ,大于(>),小于(<),不等于(<>)。 • 在梯形图中,比较指令是以常开触点的形式编程的,在常开触点的中间注明比较参数和比较运算符。当比较的结果为真时,该动触点就闭合。 • 比较指令的类型有: • 字节(BYTE)比较、整数(INT)比较、双字整数(DINT)比较和实数(REAL)比较。
(1)字节比较指令 • 字节比较用于比较两个字节型整数值IN1和IN2的大小,字节比较是无符号的。比较式可以是LDB、AB或OB后直接加比较运算符构成。 • 如:LDB=、AB<>、OB≥等。 • 整数IN1和IN2的寻址范围: • VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。 • 指令格式例: • LDB= VB10, VB12 • AB<> MB0, MB1 • OB≤ AC1, 116
(2)整数比较指令 • 整数比较用于比较两个一字长整数值IN1和IN2的大小,整数比较是有符号的(整数范围为16#8000~16#7FFF之间)。比较式可以是LDW、AW或OW后直接加比较运算符构成。 • 如:LDW=、AW<>、OW≥ 等。 • 整数IN1和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。 • 指令格式例: • LDW= VW10, VW12 • AW<> MW0, MW4 • OW≤ AC2, 1160
(3)双字整数比较指令 • 双字整数比较用于比较两个双字长整数值IN1和IN2的大小,双字整数比较是有符号的(双字整数范围为 • 16#80000000(-2147483648)~16#7FFFFFFF (2147483647)之间。 • 指令格式例: • LDD= VD10, VD14 • AD<> MD0, MD8 • OD≤ AC0, 1160000 • LDD≥ HC0, *AC0
(4)实数比较指令 • 实数比较用于比较两个双字长实数值IN1和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E+38,正实数范围为+1.175495E-38和+3.402823E+38)。比较式可以是LDR、AR或OR后直接加比较≥≤≥运算符构成。 • 指令格式例: • LDR= VD10, VD18 • AR<> MD0, MD12 • OR≤ AC1, 1160.478 • AR> *AC1, VD100