数据在存储器中的存储方式与寻址方式

一、数据在存储器中的存储方式
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。


电子产业的升级推动安规电容的发展
上海车展围绕智能驾驶展开的自动驾驶风潮
荣耀8、荣耀9对比评测:华为荣耀8还是比华为荣耀9好看?你说为什么?
三极管与MOS管的正确应用
是德科技推出高性能PAM4误码仪及100GHz采样示波器模块
数据在存储器中的存储方式与寻址方式
为什么说区块链会是未来广告业的趋势?
飞思卡尔为ZigBee RF4CE消费电子产品推出MC132
要闻:Google不再强制预装应用 三星收购AI分析公司Zhilabs
你了解哪一些智慧城市的应用场景
解析RCD剩余电流装置检测方法
奥拓电子推出超小点间距0.78mm的Mini LED显示产品 将带动市场规模成长
三星S9曝光:携骁龙845强势来袭!
贸泽电子推出电源管理资源与解决方案 为工程师提供更多资讯
springcloud有哪些主件
串级调节系统
Video++极链科技董慧智谈AI场景商业创新
硬件的这三大错误,一眼看出来就是合格工程师
如何应对搭便车问题,加快Mini LED背光的量产进程
总结几种MP4转MP3的工具和方法