7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序

一、数据单位(数据长度类型)

术语 名称 位数 所占字节 说明
Bit 1 bit 1/8 Byte 最小数据单位(0或1)
B Byte 字节 8 bit 1 Byte 字节单位
W Word 字 16 bit 2 Byte 通常用于整数、状态字等
DW Double Word 双字 32 bit 4 Byte 常用于浮点、双整数

1双字 = 2字 1双字 = 4字节 1双字 = 32位
1字 = 2字节 1字 = 16位
1字节 = 8位


三、存储区域(Memory Area)

区域 名称 说明 大小(S7-200 SMART) 举例
I区 输入映射区 外部信号输入 1KB I[字节号].[位号]: (如 I0.0、I2.7)
Q区 输出映射区 外部信号输出 1KB Q[字节号].[位号] (如 Q0.1、Q5.3)
M区 Merker 标志寄存器 程序内部临时变量、 中间状态存储 4KB M[字节号].[位号] (如 M0.2、M10.5)
DB区 数据块 用户自定义数据结构的存储区 128 个 DB 块, 单个4096 字节(4KB) DB1.DBX04 (X = Bit) DB1.DBB4 (B = 字节) DB1.DBW4 (W = 字) DB1.DBD4 (D = 双字)
T区 定时器 用于时间控制(接通延时、断开延时等) 最多 256 个定时器(T0~T255),支持 1ms、10ms、100ms 分辨率
C区 计数器 用于计数控制(增计数、减计数、增减计数) 最多 256 个计数器(C0~C255),计数范围 0~32767
L区 局部变量 仅在函数(FC)或功能块(FB)内部使用,调用时临时分配 每个块最多 64 字节(512 位)

四、寻址(读写)

在 PLC 中,定位变量通常采用的格式为:

  1. 格式一: [存储区] + [偏移量]
  2. 格式二: [存储区] + [偏移量] + [数据单位]
  3. 格式三:[存储区] + [数据单位] + [偏移量]
  • 存储区:表示变量所在的内存区域(如 I 输入区、Q 输出区、M 内存区等)
  • 偏移量:变量在该存储区中的起始地址
  • 数据单位:变量的存储粒度(如 bit、byte、word、dword 等)

例 1:位(bit)寻址 [存储区] + [偏移量]

数据单位隐含了

I0.3

  • I:表示输入区
  • 0:字节偏移量(第 0 个字节)
  • .:作用是区分字节地址和位地址
  • 3:位偏移量(第 3 位)

含义:读取(或写入)输入区第 0 字节的第 3 位的值,例如某个按钮的开关状态。

例 2:字节(byte)寻址 [存储区] + [数据单位] + [偏移量]

QB2

  • Q:表示输出区
  • B:数据单位,表字节
  • 2:字节偏移量:2(第 2 个字节)

含义:读取(或写入)输出区第 2 个字节的内容,1字节=8个位 即可表示8个输出继电器。

例 3:字(word)寻址 [存储区] + [数据单位] + [偏移量]

MW20

  • M:程序内部临时变量、中间状态存储
  • W:数据单位,表字
  • 20:字节偏移量(从字节 20 开始)

含义:读取(或写入)从字节 20 开始的 2 个字节,例如一个整数计数值。

例 4:数据块(DB)寻址 [存储区] . [数据单位] + [偏移量 ]

DB1.DBX0.4 (X = Bit)
DB1.DBB4 (B = 字节)
DB1.DBW4 (W = 字)
DB1.DBD4 (D = 双字)

  • DB1:表示数据块 1(Data Block 1),这本身就是一个存储区,但它是用户定义的存储区。
  • .:第1个.相当于"进入"这个数据块的意思。
  • .:第2个.作用是区分字节地址和位地址。

五、扩展:底层内存存储方式

当多个字节组成一个Word(16位)、Double Word(32位)或更大数据时,低字节和高字节的存放顺序是怎样的???

什么是字节序(Endian)

当多个字节表示一个数据时,存在两种存储顺序

类型 名称 说明
Little Endian 小端序 最低有效字节 存放在低地址最高有效字节存放在高地址
Big Endian 大端序 最高有效字节 存放在低地址最低有效字节存放在高地址

例如,假设有一个 类型(1字=2字节)数值为 0x1234,组成字的两个字节是(按8位分组):

  1. 高字节(前8位一个字节):0x12
  2. 低字节(后8位一个字节):0x34
类型 DB0.DBB0 DB0.DBB1
Little Endian 0x12 0x34
Big Endian 0x34 0x12

注意:西门子 PLC(如 S7-200 SMART、S7-1200/1500)默认采用小端序存储。

字节序注意场景

  1. 正确解析多字节数据(避免数值错误)
    当你在 PLC 中处理字(Word,16 位)、双字(DWord,32 位)等多字节数据时,必须遵循小端序规则才能正确拆分或组合字节。
  2. 确保跨设备通信的数据一致性
    PLC 常需与上位机(如 HMI、SCADA)、传感器、仪表等外部设备交换数据(如温度、流量等数值),而不同设备可能采用不同的字节序(如部分仪表默认大端序)。
  3. 正确处理数据块(DB)的结构化数据
    在数据块中定义数组、结构体等复杂数据类型时,字节序决定了各成员的存储位置。
  4. 避免程序调试中的 "隐蔽错误"
    字节序错误属于 "逻辑正确但结果错误" 的隐蔽问题,不影响程序运行,但会导致数据异常(如显示值错误、控制逻辑失效)。

六、扩展: 数据类型(Data Type)

类型 名称 位数 示例值
BOOL 布尔型 1 bit TRUE / FALSE
BYTE 字节 8 bit 16#FF
WORD 字(整型) 16 bit 16#FFFF
DWORD 双字 32 bit 16#FFFFFFFF
INT 有符号整数 16 bit -32768 ~ 32767
DINT 双字整数 32 bit -21亿 ~ 21亿
REAL 浮点型 32 bit 3.14, -1.5
相关推荐
人生游戏牛马NPC1号1 小时前
学习 Android (十八) 学习 OpenCV (三)
android·opencv·学习
咸甜适中1 小时前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十三)控件中常用文本格式
笔记·学习·rust·egui
茯苓gao1 小时前
变频器实习DAY41 单元测试介绍
笔记·学习·单元测试
mysla4 小时前
嵌入式学习day40-硬件(1)
学习
三天不学习4 小时前
从零开始学习C#上位机开发学习进阶路线,窥探工业自动化和物联网应用
学习·c#·自动化
武子康4 小时前
AI-调查研究-67-具身智能 核心技术构成全解析:感知、决策、学习与交互的闭环系统
人工智能·科技·学习·程序人生·ai·职场和发展·职场发展
gmmi5 小时前
嵌入式学习 51单片机基础
嵌入式硬件·学习·51单片机
"菠萝"7 小时前
C#知识学习-012(修饰符)
学习·c#
半路程序员7 小时前
Go语言学习(二)
学习
私人珍藏库9 小时前
[Android] 京墨 v1.15.2 —— 古诗词文、汉语字典、黄历等查询阅读学习宝典(可离线)
android·学习·安卓