Skip to content

1. 支持的区域 (Area)

S7 驱动支持以下内存区域。地址不区分大小写。

区域代码名称说明地址格式示例
DBData Block (数据块)全局数据块DB1.W10, DB10.INT20
IInput (输入映像区)数字量输入I0.0 (位), IB0 (字节), IW0 (字)
QOutput (输出映像区)数字量输出Q0.0 (位), QB0 (字节), QW0 (字)
MMemory (位存储区)内部标志位/中间变量M0.0 (位), MB0 (字节), MW0 (字)
VV Memory映射到 DB1 (通常用于 S7-200 Smart)V0.0 (位), VB0 (字节), VW0 (字)
TTimer (定时器)定时器当前值T1, T10
CCounter (计数器)计数器当前值C1, C20
DIInstance DB (背景数据块)背景数据块DI1.W0
LLocal (局部数据)临时局部数据LB0, LW0
DPPeripherals (外设 I/O)直接访问外设DPB0, DPW0

注意

  • V 区映射:在 NG Gateway S7 驱动中,V 区默认映射到 DB1。例如 VB100 等价于 DB1.B100
  • DB 区格式:DB 地址必须包含块号,格式为 DB{块号}.{类型}{偏移}

2. 数据类型与前缀 (Transport Size)

驱动通过地址中的类型前缀来确定数据读取长度和解码方式。支持长命名和短命名(如 INTI)。

类型名称长前缀短前缀长度 (Byte)对应的 Rust 类型说明
BitBITX-Boolean位访问 (需指定 .bit 索引)
ByteBYTEB1u8 / int8单字节
CharCHARC1u8 (ASCII)字符
WordWORDW2u16无符号字
IntINTI2i16有符号整数
DWordDWORD, DW-4u32无符号双字
DIntDINT, DI-4i32有符号双整数
RealREALR4f32浮点数
TimeTIMET4i32 (ms)IEC 时间 (毫秒)
DateDATE-2u16 (days)IEC 日期 (自 1990-1-1 起的天数)
TimeOfDayTOD-4u32 (ms)一天中的时间 (毫秒)
S5TimeS5TIMEST2u16 (encoded)S5 格式时间
DateTimeDATETIME, DT-8i64 (timestamp)日期时间
DateTimeLongDATETIMELONG, DTL-12struct扩展日期时间 (S7-1200/1500)
StringSTRINGSn + 2StringS7 字符串 (首字节为最大长度)
WStringWSTRINGWS2n + 4StringS7 宽字符串

提示

  • 如果不指定类型前缀(且没有小数点),默认按 Byte 解析(例如 M10 等价于 MB10)。
  • 如果有小数点但没有类型前缀(如 M10.2),自动解析为 Bit

3. 地址格式与示例

下表展示了各种常见的地址写法及其解析结果。

3.1 I/Q/M/V 区示例

I/Q/M 区的地址格式通常为 {区域}{类型}{字节偏移}{区域}{字节偏移}.{位索引}

地址等效标准写法数据类型说明
I0.0IX0.0BitI 区,第 0 字节,第 0 位
Q1.7QX1.7BitQ 区,第 1 字节,第 7 位
M10.5MX10.5BitM 区,第 10 字节,第 5 位
V100.0DB1.X100.0BitV 区 (DB1),第 100 字节,第 0 位
IB0IBYTE0ByteI 区,第 0 字节
QB10QBYTE10ByteQ 区,第 10 字节
MB20MBYTE20ByteM 区,第 20 字节
IW0IWORD0Word (u16)I 区,第 0 字节开始的字
QW4QWORD4Word (u16)Q 区,第 4 字节开始的字
MW10MWORD10Word (u16)M 区,第 10 字节开始的字
ID0IDWORD0DWord (u32)I 区,第 0 字节开始的双字 (也可写 IDW0)
MD100MDWORD100DWord (u32)M 区,第 100 字节开始的双字 (也可写 MDW100)
MD104MDINT104DInt (i32)M 区,第 104 字节开始的双整数 (也可写 MDI104)
MD200MREAL200Real (f32)M 区,第 200 字节开始的浮点数 (也可写 MR200)

3.2 DB 区示例

DB 区地址必须以 DB 开头,后跟块号。格式:DB{块号}.{类型}{偏移}注意:NG Gateway 驱动暂不支持西门子传统的 DBW/DBD/DBX 组合前缀,请使用标准类型前缀。

地址解析含义对应 Rust 类型说明
DB1.X0.0BitboolDB1,第 0 字节第 0 位 (也可写 DB1.BIT0.0)
DB10.B0Byteu8DB10,第 0 字节 (也可写 DB10.BYTE0)
DB10.W2Wordu16DB10,第 2 字节开始的字 (也可写 DB10.WORD2)
DB10.I4Inti16DB10,第 4 字节开始的整数 (也可写 DB10.INT4)
DB1.DW0DWordu32DB1,第 0 字节开始的双字 (也可写 DB1.DWORD0)
DB1.DI4DInti32DB1,第 4 字节开始的有符号双整数 (也可写 DB1.DINT4)
DB1.R8Realf32DB1,第 8 字节开始的浮点数 (也可写 DB1.REAL8)
DB2.S0StringStringDB2,第 0 字节开始的字符串 (也可写 DB2.STRING0)
DB2.WS100WStringStringDB2,第 100 字节开始的宽字符串 (也可写 DB2.WSTRING100)
DB5.DT0DateTimei64DB5,第 0 字节开始的日期时间

3.3 Timer / Counter 示例

地址类型说明
T1Timer定时器 T1
C10Counter计数器 C10

基于 MIT 许可发布.