1. 西门子地址类型的定义
西门子PLC的存储器地址通常分为以下类型:
- M :位存储器(Bit Memory),最小单位是位(1 bit)。
- MB :字节存储器(Byte Memory),最小单位是字节(8 bits)。
- MW :字存储器(Word Memory),最小单位是字(16 bits,即2字节)。
- MD :双字存储器(Double Word Memory),最小单位是双字(32 bits,即4字节)。
注意 :WM
并不是标准的地址类型,可能是用户笔误(如应为MB
或MW
)。以下分析基于常见地址类型(MB
和MW
)展开。
2. 相邻地址是否冲突
场景1:字节地址(8位)(MB200和MB201)
- 地址类型 :MB表示字节存储器(每个地址占1字节)。
- 相邻地址是否冲突 :不会冲突 。
- MB200占用物理地址的第200字节。
- MB201占用第201字节。
- 两者是独立的字节地址,可以安全使用。
场景2:字地址(16位)(MW200和MW201)
- 地址类型 :MW表示字存储器(每个地址占2字节)。
- 相邻地址是否冲突 :会冲突 。
- MW200的物理地址范围是 200字节到201字节 (共2字节)。
- MW201的物理地址范围是 201字节到202字节 (共2字节)。
- 两者在物理地址201字节处重叠,导致数据冲突 。
场景3:双字地址(32位)(MD200和MD201)
- 地址类型 :MD表示双字存储器(每个地址占4字节)。
- 相邻地址是否冲突 :
- MD200占用 200字节到203字节 。
- MD201占用 204字节到207字节 。
- 不会冲突 ,因为它们的物理地址不重叠。
3. 关键问题总结
地址类型 | 相邻地址是否冲突 | 原因 |
---|---|---|
centered 文本居中 | right-aligned 文本居右 | centered 文本居中 |
MB200/MB201 | 不会冲突 | 每个地址占1字节,相邻地址物理地址不重叠。 |
MW200/MW201 | 会冲突 | 每个地址占2字节,相邻地址物理地址重叠(如MW200和MW201共享201字节)。 |
MD200/MD201 | 不会冲突 | 每个地址占4字节,相邻地址物理地址不重叠。 |
4. 如何避免冲突?
(1) 明确地址类型
- 字节地址(MB) :相邻地址(如MB200和MB201)可以安全使用。
- 字地址(MW) :若需连续使用字地址,需间隔至少2个地址(如MW200和MW202):
- MW200:200-201字节。
- MW202:202-203字节。
- 双字地址(MD) :需间隔至少4个地址。
(2) 规划存储器时的注意事项
- 数据类型匹配 :根据数据需求选择合适的地址类型(如布尔值用M,整数用MW)。
- 预留空间 :为复杂数据(如字符串、数组)预留足够的连续地址空间。
- 文档记录 :记录地址分配表,避免重复或重叠。
(3) 示例:正确规划相邻地址
- 字节存储需求 (如多个开关状态):
MB200 → 开关1
MB201 → 开关2
- 字存储需求 (如温度值):
MW200 → 温度1(占200-201字节)
MW202 → 温度2(占202-203字节)
5. 特殊情况:WM地址的可能误解
如果用户提到的WM是自定义变量名或特殊存储区(如部分人习惯用WM
表示字存储器),需注意:
- 西门子标准地址中没有
WM
类型 ,可能是MW
的误写。 - 如果是自定义变量(如在OB块中定义的变量),需确保变量的存储类型和地址范围不冲突。
6. 总结
- 相邻地址是否冲突 取决于地址类型(字节、字、双字)。
- 字地址(MW)的相邻使用会导致冲突 ,需间隔至少2个地址。
- 规划地址时需明确数据类型和存储空间 ,避免重叠。