一、数据在存储器中的存储方式
1、数据格式及要求
A〉数据格式:即指数据的长度和表示方式。 B〉要求:S7-200对数据的格式有一定的要求,指令与数据之间的格式一致才能正常工作。
2、用一位二进制数表示开关量
A〉一位二进制数:一位二进制数有0(OFF)和1(ON)两种不同的取值,分别对应于开关量(或数字量)的两种不同的状态。 B〉位数据的数据类型:布尔(Bool)型。 C〉位地址:由存储器标识符、字节地址和位号组成,如I3.4等。 D〉其它CPU存储区的地址格式:由存储器标识符和起始字节号(一般取藕字节)组成,如V B 100、V W 100、V D 100等。
3、多位二进制数(8421码)
A〉数及数制:数用于表示一个量的具体大小。根据计数方式的不同,有十进制(D)、二进制(B)、十六进制(H)和八进制等不同的计数方式。 B〉二进制数的表示:在S7-200中用2#来表示二进制常数,例如 “2# 10111010 ”。 C〉二进制数的大小:将二进制数的各位(从右往左第n位)乘以对应的位权(×2n-1),并将结果累加求和可得其大小。例如:2# 10111010 = 1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20 = 186
4、十六进制数
A〉十六进制数的引入:将二进制数从右往左每4位用一个十六进制数表示,可以实现对多位二进制数的快速准确的读写。 B〉不同进制数的表示方法: ( 表3-2-1 不同进制数的表示方法 ) C〉十六进制数的表示:在S7-200中用16#来表示十六进制常数,例如 “2# 1010 1110 0111 0101 可转换为16# AEF7 ”。 D〉十六进制数的大小:将十六进制数的各位(从右往左第n位)乘以对应的位权(×16n-1),并将结果累加求和可得其大小。例如:16# 2F = 2×161+15×160 = 47
5、数据长度:字节(Byte)、字(Word)、双字(DoubleWord)
A〉字节(B):从0号位开始的连续8位二进制数称为一个字节。 B〉字(W):相邻的两个字节组成一个字的长度。 C〉双字(DW):相邻的四个字节组成一个双字的长度。 D〉字、双字长数据的存储特点:高位存低字节、地位存于高字节。
6、负数(有符号数)的表示方法
A〉负数的表示:PLC一般用二进制的补码来表示有符号数,其最高位为符号位(0 ——正数、1 ——负数)。 B〉绝对值相等的正负有符号数间的关系:正数的补码是它本身。 C〉不同数据的取值范围:( 表3-2-2 数据的位数与取值范围 )
7、BCD码
A〉BCD码释义:BCD码就是用四位二进制数的组合来表示1位十进制数,即用二进制编码的十进制数(Binary Coded Decimal Number)缩写。例如 十进制数 23 的BCD码为 2# 0010 0011 或表示为 16# 23 ,但其8421码为 2# 00010111 。 B〉BCD码的应用:BCD码常用于输入输出设备,例如拨码开关输入的是BCD码,送给七段显示器的数字也是BCD码。
二、CPU的存储区
1、输入过程映象寄存器(I)
A〉输入过程映象寄存器(I)的作用:在每次扫描周期的开始,CPU对物理输入点进行采样,并将采样值写入输入过程映象寄存器中。 B〉输入过程映象寄存器(I)的特点:① 只能由外部驱动,其常开、常闭触点使用次数不受限制;② 可以按位、字节、字或双字来存取输入过程映象寄存器中的数据: 位: I [字节地址] . [位地址] 如 I0.1 字节、字或双字: I [长度] [起始字节地址] 如 IB4
2、输出过程映象寄存器(Q)
A〉输出过程映象寄存器(Q)的作用:在每次扫描周期的结尾,CPU将输出过程映象寄存器中的数值复制到物理输出点上。 B〉输出过程映象寄存器(Q)的特点:①其常开、常闭触点使用次数不受限制;② 可以按位、字节、字或双字来存取输出过程映象寄存器: 位: Q [字节地址] . [位地址] 如 Q1.1 字节、字或双字: Q [长度] [起始字节地址] 如 QB5
3、全局变量存储区(V)
A〉变量存储区(V)的作用:用于存储程序执行过程中控制逻辑操作的中间结果, 也可以用它来保存与工序或任务相关的其它数据。 B〉变量存储区(V)的特点:①变量存储器在全局有效,可以被所有的POU存取;② 可以按位、字节、字或双字来存取V存储区中的数据: 位: V [字节地址] . [位地址] 如 V10.2 字节、字或双字: V [长度] [起始字节地址] 如 VW100
4、局部存储器(L)
A〉局部存储器(L)的作用:S7-200有64个字节的局部存储器,其中60个可以用作临时存储器或者给子程序传递参数。 B〉局部存储器(L)的特点:① S7--200给每个POU(程序组织单元)分配64个局部存储器;②局部存储器只在创建它的程序单元中有效,各程序不能访问别的程序的局部变量存储器。③ 局部存储器在参数传递过程中不传递值,在分配时不被初始化,可能包含任意数值。 位: L [字节地址] . [位地址] 如 L0.0 字节、字或双字: L [长度] [起始字节地址] 如 LB33
5、模拟量输入(AI)
A〉模拟量输入(AI)的作用:S7-200将输入的模拟量值(如温度或电压)转换成1个字长(16位)的数字量,并将其存入(AI)区占一个字长的地址中。 B〉模拟量输入(AI)的作用:① 可以用区域标识符(AI)、数据长度(W)及字节的起始地址(必须用偶数字节地址如AIW0,AIW2,AIW4)来存取这些值。② 模拟量输入值为只读数据。 格式: AIW [起始字节地址] 如 AIW4
6、模拟量输出(AQ)
A〉模拟量输出(AQ)的作用:S7-200把1个字长(16位)数字值按比例转换为相应大小的电流或电压输出。 B〉模拟量输出(AQ)的特点:① 可以用区域标识符(AQ)、数据长度(W)及字节的起始地址(必须用偶数字节地址如AQW0,AQW2,AQW4)来改变这些值。② 模拟量输出值是只写数据。 格式: AQW [起始字节地址] 如 AQW4
7、定时器存储区(T)
A〉定时器的作用:定时器可用于时间累计,S7-200 CPU中,有256个的定时器,其分辨率(时基增量)分为1ms、10ms和100ms三种。 B〉定时器有两个变量:① 当前值——16位有符号整数,存储定时器所累计的时间。 ② 定时器位——按照当前值和预置值的比较结果置位或者复位。 C〉定时器存储区(T)的特点:① 可以用定时器地址(T+定时器号,如 T37、T3等)来存取当前值和定时器位数据。②位操作指令则是存取定时器位;如果使用字操作指令,则是存取定时器当前值。 格式: T [定时器号] 如 T24
8、计数器存储区(C)
A〉计数器的作用:计数器可以用于累计其输入端脉冲电平由低到高的次数。在S7-200 CPU中,有256个的计数器,分为三种类型—增计数;减计数;增/减计数。 B〉计数器有两种变量:① 当前值——16位有符号整数,存储累计值。② 计数器位——按照当前值和预置值的比较结果置位或者复位。 C〉计数器存储区(C)的特点:① 可以用计数器地址(C+计数器号)来存取计数器的当前值和计数器位数据;② 使用位操作指令则是存取计数器位;如果使用字操作指令,则是存取计数器当前值。 格式: C [计数器号] 如 C24
9、高速计数器(HC)
A〉高速计数器(HC)的作用:用于对高速事件计数;S7-200 CPU222以上提供了6个高速计数器(HC0~HC5)供用户使用。 B〉高速计数器(HC)的特点:① 它独立于CPU的扫描周期;② 高速计数器的当前计数值(32位的有符号整数)是只读数据,仅可以作为双字(32位)来寻址;③用指定存储器类型(HC)加上计数器号(如HC0)的寻址方式来存取高速计数器中的值; 格式: HC [高速计数器号] 如 HC1
10、累加器(AC)
A〉累加器(AC)的作用:累加器是可以象存储器一样使用的读写设备。例如,可以用它来向子程序传递参数,也可以从子程序返回参数,以及用来存储计算的中间结果。S7--200提供4个32位累加器(AC0,AC1,AC2和AC3) 。 B〉累加器(AC)的特点:① 可以按字节、字或双字的形式来存取累加器中的数值;② 被访问的数据长度取决于存取累加器时所使用的指令。 格式: AC [累加器号] 如 AC0
11、特殊存储器(SM)
A〉特殊存储器(SM)的作用:SM位为CPU与用户程序之间传递信息提供了一种手段。可以用这些位选择和控制S7-200 CPU的一些特殊功能。 B〉特殊存储器(SM)的特点:可以按位、字节、字或双字来存取SM位:
位: SM [字节地址] . [位地址] 如 SM0.1 字节、字或者双字: SM [长度] [起始字节地址] 如 SMB86
12、位存储区(M)
A〉位存储(M)的作用:可以用位存储区作为控制继电器来存储中间操作状态和控制信息。 B〉位存储(M)的特点:可以按位、字节、字或双字来存取位存储区: 位: M [字节地址] . [位地址] 如 M26.7 字节、字或双字: M [长度] [起始字节地址] 如 MD20
13、顺控继电器存储器(S)
A〉顺控继电器(SCR)的作用:SCR提供控制程序的逻辑分段,用于组织设备的顺序操作。 B〉顺控继电器存储器(S)的特点:① 可用作顺控编程元件与顺序控制继电器指令配合使用;② 或用作辅助继电器,可按位、字节、字或双字来存取S位。 位: S [字节地址] . [位地址] 如 S3.1 字节、字或者双字: S [长度] [起始字节地址] 如 SB4
14、实数的格式
A〉实数及其应用:实数(浮点数)可以表示为1.m×2e(式中 m——尾数、e——指数),由32位单精度数表示,最高位为符号位,按照双字长度来存取;借助浮点数,S7-200可以表示范围在±1.175495×10-38~±3.402823×10+38内的任何一个数。 B〉实数的运算精度:对于S7--200来说,浮点数精确到小数点后第六位。
15、字符串的格式
字符串指的是一系列字符,每个字符以字节的形式存储。字符串的第一个字节定义了字符串的长度,也就是字符的个数。一个字符串的长度可以是0到254个字符,再加上长度字节,一个字符串的最大长度为255个字节。而一个字符串常量的最大长度为126字节。
16、常数表示法及范围
在S7--200的许多指令中,都可以使用常数值。常数值可以是字节、字或者双字。S7--200以二进制数的形式存储常数,也可以用十进制数、十六进制数、ASCII码或者实数(浮点数)来表示。( 表3-2-3 常数表示法 )
17、CPU存储器的范围和特性
A〉S7-200 CPU存储器的范围:( 表3-2-4 S7-200 CPU存储器的范围与特性 ) B〉S7-200操作数范围:( 表3-2-5 S7-200 CPU操作数的范围 )
三、直接寻址和间接寻址
1、寻址的概念
在PLC中地址是访问数据的依据,通过地址来访问数据的过程称为“寻址”。几乎所有的指令和功能都与各种形式的寻址有关。
2、直接寻址
直接寻址即为指定了存储器的区域、长度和位置的寻址方式,用于 一般的数字量控制系统的编程中。如 VW100表示存取VB100、VB101组成的两个字。
3、用指针对S7-200存储区间接寻址
A〉间接寻址:①间接寻址的概念——是指用指针来访问存储区数据。②指针作用及其特点:指针以双字的形式存储其它存储区的地址,指针也可以作为参数传递到子程序中。只能用V存储器、L存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。S7-200允许指针访问以下存储区: I、Q、V、M、S、AI、AQ、SMT(仅限于当前值)和C(仅限于当前值);但不能访问单独的位,也不能访问HC或者L存储区。 B〉建立间接寻址的指针:要建立一个指针,必须以双字的形式,将需要间接寻址的存储器地址移动到指针中;具体做法是用“&”符号加上要访问的存储区地址来建立一个指针。( “&”符号开头表明指令的操作数是存储区的地址,而不是将其内容。) C〉用指针存取数据:当指令中的操作数是指针时,应该在操作数前面加上“*”号。 D〉修改指针:由于指针是一个32位的数据,要用双字指令来改变指针的数值;简单的数学运算,如加法指令或者增加指令,可用于改变指针的数值。 E〉应用举例——[例3-1]:用于非线性校正的表格的数据存放在VW0开始的100字中,表格的偏移量(表格中字的序号,第1个字的序号为0)在VD200中,在I0.0的上升沿,用间接寻址将表格中相对于偏移量的数据值传送到VW210中去。 [提示]: 按照所访问的数据长度使用不同的指令:当访问字节时,使用增加指令使指针值加1;当访问字或者计数器、定时器的当前值时,用加法或者增加指令使指针值加2;当访问双字时,使用加法或者增加指令使指针值加4。