• PLC中存储器的数据类型与寻址方式


    一、数据在存储器中的存储方式
          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。
  • 相关阅读:
    css中滚动条设置
    css 字间距
    使用easyDialog弹出层后会刷新页面
    js页面跳转整理
    父容器不根据内容自适应高度的解决方法
    Freemaker 基本语法
    BeanUtils工具包下载及应用
    Java关键字final、static使用总结(二)
    What is a cross-channel pooling in convolutional neural net works?
    仿射梯度
  • 原文地址:https://www.cnblogs.com/hummersofdie/p/2013269.html
Copyright © 2020-2023  润新知