变量类型与系统变量
变量是梯形图程序的数据载体。PLC在线模拟器 提供与西门子 S7-200 SMART 对齐的基础变量类型,以及用于特殊用途的复合变量(定时器、计数器)与系统变量(SM0.x)。
基础变量类型
| 类型 | 含义 | 取值范围 |
|---|---|---|
| Bool | 位(布尔) | true / false |
| Int8 | 8 位有符号整数 | -128 ~ 127 |
| Uint8 | 8 位无符号整数 | 0 ~ 255 |
| Int16 | 16 位有符号整数 | -32768 ~ 32767 |
| Uint16 | 16 位无符号整数 | 0 ~ 65535 |
| Int32 | 32 位有符号整数 | -2147483648 ~ 2147483647 |
| Uint32 | 32 位无符号整数 | 0 ~ 4294967295 |
| Real | 32 位单精度实数 | 约 ±3.4×10³⁸ |
Bool 类型用于触点、线圈、比较等位逻辑;Int8/Uint8/Int16/Uint16/Int32/Uint32 用于数值运算、比较与传送;Real 用于需要小数精度的浮点运算。
兼容性说明:旧版本中的
Number类型自动归一化为Int32,Time类型自动归一化为Uint32,Float自动归一化为Real,旧工程无需手动转换。
复合变量
Timer(定时器)
定时器指令使用的复合变量,包含 5 个子变量:
| 子变量 | 说明 |
|---|---|
| PT | 预设时间(与分辨率对应:1ms/10ms/100ms) |
| ET | 当前累计时间 |
| IN | 使能输入(由指令自动写入) |
| R | 复位(TONR 使用) |
| Q | 输出 |
Counter(计数器)
计数器指令使用的复合变量,包含 8 个子变量:
| 子变量 | 说明 |
|---|---|
| PV | 预设值 |
| CV | 当前值 |
| CU | 加计数输入 |
| CD | 减计数输入 |
| R | 复位 |
| LD | 装载(将 PV 载入 CV) |
| QU | 上计数输出(CV ≥ PV) |
| QD | 下计数输出(CV ≤ 0) |
系统变量(SM0.x)
系统变量由模拟器在每个扫描周期自动更新,用于实现首扫初始化、时钟脉冲等特殊功能。它们在变量表中以 SM0.x 命名,可直接用于触点、线圈等元件。
| 名称 | 地址 | 行为 |
|---|---|---|
| Always_On | SM0.0 | 始终为 true |
| First_Scan_On | SM0.1 | 进入 RUN 后的首个扫描周期为 true,可用于程序初始化 |
| Retentive_Lost | SM0.2 | 恒为 false(暂未模拟掉电保持丢失) |
| RUN_Power_Up | SM0.3 | 上电后首次进入 RUN 的首个周期为 true |
| Clock_60s | SM0.4 | 30 秒通 / 30 秒断 |
| Clock_1s | SM0.5 | 0.5 秒通 / 0.5 秒断 |
| Clock_Scan | SM0.6 | 偶数扫描周期通、奇数扫描周期断 |
典型用法
- SM0.1(首扫):用其驱动一个
MOV指令,在程序启动时一次性写入初始值。 - SM0.5(1 秒时钟):配合计数器实现秒表,或驱动指示灯闪烁。
- SM0.4(60 秒时钟):用于需要分钟级周期的定时逻辑。