西门子PLC地址知识点

西门子 PLC 的地址体系是按数据类型和存储区域划分 的,核心分为过程映像区、位存储区、数据块区、定时器 / 计数器区等,不同区域的地址格式和用途差异显著,直接决定了 C# 与 PLC 通信时的地址配置和数据解析逻辑。

一、 核心存储区域与地址格式

西门子 PLC 的地址由 区域标识符 + 字节地址 + 位地址(可选) 组成,不同区域的标识符和格式如下:

存储区域 区域标识符 地址格式示例 用途说明
输入过程映像区 I (Input) I0.0、I2.3、IB5、IW10、ID12 采集外部传感器 / 开关信号,只读;B = 字节,W = 字,D = 双字,位地址可选。
输出过程映像区 Q (Output) Q0.1、QB3、QW8、ID20 控制外部执行器(继电器 / 接触器),可读写;格式同输入区。
位存储区 M (Memory) M1.2、MB4、MW6、MD16 程序内部中间变量存储,相当于 "临时寄存器",可读写。
数据块区 DB (Data Block) DB1.DBX0.0、DB1.DBB2、DB1.DBW4、DB1.DBD8 用户自定义数据块,用于存储工艺参数 / 设备状态,可读写;是 C# 通信的核心区域。
定时器区 T (Timer) T3、T10 存储定时器的当前值和状态,T + 编号。
计数器区 C (Counter) C5、C20 存储计数器的当前值和状态,C + 编号。
关键格式说明
  1. 位地址 :仅用于单个布尔量,格式为 区域标识符+字节地址.位地址,例如 I0.0 代表输入区第 0 字节的第 0 位。

  2. 字节 / 字 / 双字地址 :用于连续数据,后缀为 B/W/D,例如 DB1.DBW4 代表数据块 1 中从字节 4 开始的 1 个字(2 字节)。

  3. 数据块地址前缀 :必须带 DBx. 前缀,DBX 是位访问,DBB/W/D 是字节 / 字 / 双字访问。

二、 数据块(DB)地址的核心规则

数据块是 C# 与 PLC 通信最常用的区域,其地址与数据块的结构定义强相关,需重点注意:

  1. 数据块的类型

    • 全局数据块 :可被所有程序块访问,地址直接用 DBx.xxx。

    • 背景数据块:绑定特定 FB(功能块),地址需结合 FB 的接口变量定义。

  2. 地址偏移量计算

    数据块内的变量地址是

    相对于数据块起始地址的偏移量,例如:

    数据块 DB1 变量定义 数据类型 偏移量(字节) PLC 地址
    StartFlag BOOL 0.0 DB1.DBX0.0
    Speed_Set INT 2 DB1.DBW2
    Pressure_Value REAL 4 DB1.DBD4

    注意:BOOL 类型占用 1 个位,但西门子 PLC 中变量默认按字节对齐,相邻 BOOL 可能会被压缩存储(需在数据块属性中设置 "优化的块访问")。

  3. 优化与非优化数据块

    • 非优化数据块 :支持直接按字节偏移访问(如 DB1.DBB2),适合 C# 通信。

    • 优化数据块 :默认隐藏字节偏移,需在 TIA Portal 中手动勾选 "显示偏移量" ,或通过符号名访问(如 DB1.StartFlag)。

三、 地址与数据类型的匹配规则

C# 与 PLC 通信时,地址长度必须和数据类型的字节数一致,否则会导致数据解析错误:

PLC 数据类型 字节数 对应 C# 类型 PLC 地址示例
BOOL 1 位 bool DB1.DBX0.0
BYTE 1 byte DB1.DBB1
WORD 2 ushort DB1.DBW2
INT 2 short DB1.DBW4
DWORD 4 uint DB1.DBD6
DINT 4 int DB1.DBD8
REAL 4 float DB1.DBD12
STRING 254 string DB1.DBB20(需指定长度)

四、 通信中常见的地址错误

  1. 遗漏数据块前缀 :例如将 DB1.DBW4 写成 DBW4,PLC 无法识别。

  2. 地址长度不匹配 :用 DB1.DBW2 访问 REAL 类型(4 字节),会导致数据截断。

  3. 优化数据块未显示偏移量:直接用偏移地址访问优化数据块,PLC 返回错误。

  4. 字节序混淆 :西门子 PLC 中字 / 双字类型默认是大端序,但 REAL 类型无需字节序转换,C# 解析时需针对性处理。

五、 符号地址与绝对地址的区别

地址类型 格式示例 优点 缺点
绝对地址 DB1.DBW4 直接定位字节偏移,适合 C# 读写 数据块结构变化时需同步修改地址
符号地址 DB1.Speed_Set 与变量名绑定,结构变化无需改地址 部分通信库不支持,需 PLC 开启符号访
相关推荐
UIU1146 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
论文复现现场6 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi6 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
秋天的怀念_David7 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
碧海银沙音频科技研究院8 小时前
在PC电脑上用Whisper→Marian算法实现离线语音翻译功能
算法·whisper
niyongsheng8 小时前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
j7~11 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
傅科摆 _ py12 小时前
DP,贪心,堆和栈,二分力扣复习
开发语言·python·算法
Shaoshing13 小时前
LeetCode100 42.接雨水
java·算法·leetcode
域限奇点访客13 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验
算法