▎西门子博途 LGF 库详解 · 12:位/字节拆分与合并——12 个块把 DWord 拆成 32 个 Bool
这是 LGF 中块数最多的单一分类——12 个块。但功能高度统一:Split 把大类型拆成小颗粒,Merge 把小颗粒拼成大类型。一旦理解了模式,12 个块只需要记住方向。
文末有 SplitDWordToBits 的一个高效用法——替代 32 个独立的触点检测。
一、12 个块一览
拆分与合并组(4.10 Converter/Binary Split and Merge)
| 块名 | 类型 | 版本 | 输入 | 输出 |
|------|------|------|------|------|
| LGF_SplitByteToBits | FC | V3.0.1 | 1 个 Byte | 8 个 Bool(bit0~bit7) |
| LGF_SplitWordToBits | FC | V3.0.1 | 1 个 Word | 16 个 Bool |
| LGF_SplitWordToBytes | FC | V3.0.1 | 1 个 Word | 2 个 Byte |
| LGF_SplitDWordToBits | FC | V3.0.1 | 1 个 DWord | 32 个 Bool |
| LGF_SplitDWordToBytes | FC | V3.0.1 | 1 个 DWord | 4 个 Byte |
| LGF_SplitDWordToWords | FC | V3.0.1 | 1 个 DWord | 2 个 Word |
| LGF_MergeBitsToByte | FC | V3.0.1 | 8 个 Bool | 1 个 Byte |
| LGF_MergeBitsToWord | FC | V3.0.1 | 16 个 Bool | 1 个 Word |
| LGF_MergeBitsToDWord | FC | V3.0.1 | 32 个 Bool | 1 个 DWord |
| LGF_MergeBytesToWord | FC | V3.0.1 | 2 个 Byte | 1 个 Word |
| LGF_MergeBytesToDWord | FC | V3.0.1 | 4 个 Byte | 1 个 DWord |
| LGF_MergeWordsToDWord | FC | V3.0.1 | 2 个 Word | 1 个 DWord |
二、引脚详解(代表性示例)
#### LGF_SplitDWordToBits(拆分 DWord 到 32 个位)
引脚 | 类型 | 方向 | 说明 |
value | DWord | IN | 输入的 32 位值 |
bit0 ~ bit31 | Bool × 32 | OUT | 每个 bit 对应的 Bool 输出 |
#### LGF_MergeBitsToByte(合并 8 个位到 1 个字节)
引脚 | 类型 | 方向 | 说明 |
bit0 ~ bit7 | Bool × 8 | IN | 8 个输入位 |
Ret_Val | Byte | OUT | 合并后的字节 |
其余 10 个块遵循相同模式——输入和输出数量不同,但接口逻辑完全一致。
三、实战案例
#### 案例 1:通信报文状态字解析
对方发来 1 个 DWord 的 32 位设备状态,用 SplitDWordToBits 一键拆出 32 个 Bool,直接映射到 HMI 的报警列表:
状态字一键拆分
LGF_SplitDWordToBits(value := statusWord,
bit0 => emergStop, bit1 => overTemp, bit2 => overCurrent,
... bit31 => systemReady);
比手写 32 行 SHL + AND 可读性好太多。而且 bit 号就是状态位号——改需求时不会搞混对应关系。
#### 案例 2:多路开关合成控制字
8 个模式选择开关(Bool),合成 1 个 Byte 控制字发给变频器:
开关合成控制字
controlByte := LGF_MergeBitsToByte(bit0 := mode1, bit1 := mode2, ... bit7 := mode8);
四、总结与下载
下载信息
| 项目 | 内容 |
|------|------|
| 库名称 | Library of General Functions (LGF) |
| SIOS-ID | 109479728 |
| 下载地址 | 中文站:www.ad.siemens.com.cn/download/documentdetail_12471.html |
| 当前版本 | V5.1.1(中文站最新;SIOS 全球站另有面向高版本博途的 V5.2.1) |
| 兼容 | TIA Portal V17+、S7-1200 (固件 ≥V4.2)、S7-1500 (固件 ≥V2.0) |
| 费用 | 完全免费 |
> 本文所有引脚数据基于 LGF V5.1.1 官方文档。全球站地址:support.industry.siemens.com/cs/document/109479728
欢迎点赞、在看、转发。