西门子S7-1200的数据类型及数据存取方式

简介: 数据类型用于指定数据元素的大小,以及如何解释数据。西门子S7-1200支持的基本数据类型包括以下几类:布尔型数据为一位二进制数,其取值为0或1,常数举例如图,取值为TRUE、FALSE或0、1等;字节型数据为八位二进制数,取值范围为16进制00到16进制FF,例如16进制12、16进制AB等;字型数据为十六位二进制数,取值范围为十六进制四个0到十六进制四个F,常数举例如16进制0012、16进制ABCD等。

数据类型用于指定数据元素的大小,以及如何解释数据。西门子S7-1200支持的基本数据类型包括以下几类:布尔型数据为一位二进制数,其取值为0或1,常数举例如图,取值为TRUE、FALSE或0、1等;字节型数据为八位二进制数,取值范围为16进制00到16进制FF,例如16进制12、16进制AB等;字型数据为十六位二进制数,取值范围为十六进制四个0到十六进制四个F,常数举例如16进制0012、16进制ABCD等。


640.jpg


双字型数据为32位二进制数,取值范围为十六进制八个0到十六进制八个F,举例如图所示;字符型数据为八位二进制数据,取值范围为十六进制00到十六进制FF举例如图所示;短整型数据为八位有符号数据,取值范围为-128到127,举例如图所示;整形数据为16位有符号数据,取值范围为-32768到32767,举例如图所示;双整型数据为32位有符号数据,取值范围为-2的31次方到2的31次方减1,举例如图所示。


640.jpg


无符号短整型数据为八位数据,取值范围为0到255,举例如图所示;无符号整型数据为16位数据,取值范围为0到65535,举例如图所示;无符号双整型数据为32位数据,取值范围为0到2的32次方减1,举例如图所示;实数为32位数据带小数点的数据, 举例如图所示;长实数为64位数据,比32位实数有更大的取值范围;时间型数据为32位数据,其格式为T#、天、小时、分钟、秒、毫秒。


640.jpg


字符串型数据为0到254个字节的字符串数据,其位数可变,举例如图所示;DTL数据是一种12个字节的结构,以预定义的结构保存日期和时间信息。此外还会用到的BCD码数字格式,不能用作数据类型,但他们支持转换指令;十六位BCD码,数字范围为-999到999,举例如图所示,32位BCD码数字范围为-9999999到9999999。


640.jpg


S7-1200的数据存取方式。西门子S7-1200 CPU中可以按照位、字节、字和双字,对存储单元进行寻址。二进制数的一位只有0或1两种不同的取值,可以用来表示数字量或称开关量的两种不同的状态,如触点的断开和接通线圈的通电和断电等。


640.jpg


八位二进制数组成一个字节,其中的第0位为最低位,第七位为最高位。


640.jpg


两个字节组成一个字,其中的第0位为最低位,第15位为最高位。


640.jpg


两个字组成一个双字,其中的第0位为最低位,第31位为最高位。


640.jpg


西门子S7-1200 CPU,不同的存储单元都是以字节为单位, 如图所示:

640.jpg


对位数据的寻址由字节地址和位地址组成,如I3.2,其中的区域标识符I表示输入映像区,字节地址为3,位地址为2,这种存取方式称为字节位寻址方式。


640.jpg


对字节的寻址,如MB2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,B表示寻址长度为一个字节,即寻址为存储区中的第二个字节。


640.jpg


对字的寻址,如MW2,其中的区域标识符M表示为存储区,2表示寻址单元的起始字节地址,W表示寻址长度为一个字,即两个字节,寻址为存储区中从第二个字节开始的一个字,即字节2和字节3。请注意,两个字节组成一个字,遵循的是低地址、高字节的原则。以MW2为例,MB2为MW2的高字节,MB3为MW2的低字节。


640.jpg


对双字的寻址,如MD0,其中的区域标识符M表示为存储区,0表示寻址单元的起始字节地址,D表示寻址长度为一个双字,即两个字四个字节,寻址为存储区中从第0个字节开始的一个双字,即字节0、字节1、字节2和字节3。


640.jpg


本篇关于西门子S7-1200的数据类型及数据存取方式的内容就介绍到这里,下篇我们继续学习S7-1200的其他知识点,欢迎大家持续关注!如需PLC书籍,可点击“阅读原文”挑选!


相关文章
|
7月前
|
存储 C语言 芯片
嵌入式数据传输及存储的C语言实现
嵌入式数据传输及存储的C语言实现
87 0
|
1月前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
62 11
|
7月前
|
存储 SQL Java
软件体系结构 - 嵌入式系统(3)- 嵌入式数据库
软件体系结构 - 嵌入式系统(3)- 嵌入式数据库
104 0
|
7月前
|
存储 编译器 程序员
嵌入式 C 语言程序数据基本存储结构
嵌入式 C 语言程序数据基本存储结构
52 0
|
存储 大数据 C语言
嵌入式C语言九大数据结构操作方式详解
嵌入式C语言九大数据结构操作方式详解
97 1
|
程序员 索引
|
存储 编译器 C语言
C语言编程—存储知识
register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个字),且不能对它应用一元的 '&' 运算符(因为它没有内存位置)。 register 存储类定义存储在寄存器,所以变量的访问速度更快,但是它不能直接取地址,因为它不是存储在 RAM 中的。在需要频繁访问的变量上使用 register 存储类可以提高程序的运行速度。
234 0
|
存储 安全 编译器
嵌入式Linux C(二)——数据类型(详)
嵌入式Linux C(二)——数据类型(详)
294 0
嵌入式Linux C(二)——数据类型(详)
|
存储 算法 关系型数据库
「数据密集型系统搭建」原理篇|数据类型不怕精挑细选
本篇围绕MySQL数据库的底层存储模型、列类型来聊聊数据库表设计及建模中要注意的事项,剖析最根源的底层物理存储文件,用最真实的数据剖析来证明和解答开发过程中的疑惑。
165 0
「数据密集型系统搭建」原理篇|数据类型不怕精挑细选