假设准备把一个设备控制对象放进项目:从库里找到 FB,拖到 PLC,接好调用。接下来却发现,它还引用了数据类型;需要操作面板时,又要确认 Faceplate 和变量绑定。此时再看到 Types、Master copies、Project library,很容易把它们都当成“存放程序的文件夹”。
上一篇讨论了为什么设备控制不只是写好一个 FB。这一篇继续解决一个更具体的问题:读 LBC 这样的库时,怎样判断一个对象来自哪里、是否保留类型关系,以及还要检查哪些配套内容。先把这些关系看懂,再复制对象,后面维护时就少一些猜测。
一、先确认阅读范围,不把三种版本号混在一起
这里依据 TIA Portal V20 的官方库文档解释通用机制,并借用 Automation Framework(AF)V2.2 的官方图示说明类型管理。它不是某个 LBC 库包的完整目录清单,也不表示已经在 TIA Portal 中运行了示例工程。
我会把版本记录拆成三项:下载的库包版本、实际对象的 Type 版本,以及 TIA Portal / HMI 工程版本。前者帮助识别交付包,第二项用于追踪具体对象,第三项决定要核对哪一版工程功能和兼容说明。不能用其中一个编号替代另外两个。
例如,资料写着 AF V2.2,不等于其中所有 LBC 对象都是 V2.2;文章以 TIA Portal V20 的帮助为依据,也不构成某个库对全部 CPU 和 HMI 的兼容承诺。正式导入时,仍要对照手头库包的说明核实。
二、Project library 和 Global library 回答的是“放在哪里”
TIA Portal 每个项目都有自己的 Project library(项目库),它随项目一起打开、保存和关闭。Global library(全局库)则用于跨项目保存和分发可复用内容。[1]
这和 Types / Master copies 是两组不同的分类:前一组说明库与项目的关系,后一组说明库内对象怎样复用。项目库和全局库里都可以有 Types 与 Master copies,不是“全局库只能放类型,项目库只能放副本”。[1]
下图是 Siemens 对 Libraries 任务卡的说明。先找 Project library 与 Global libraries 两个区域,再看里面的 Types 和 Master copies。这张图用于辨认 TIA Portal 界面,不是 LBC 的实际库树。[2]

至于 FB、UDT 和 Faceplate,则回答“这个对象是什么”。一个 FB 可以按类型管理,也可以作为模板中的内容;不能只凭对象名称或文件夹名称,就判断它以后的更新方式。
三、Types 管的是对象与版本,不是每台设备的运行数据
Type(库类型)的关键,是项目中的使用对象与库里的某个类型版本保持关联。Siemens 说明,从全局库使用一个类型时,相应类型也会进入项目库,项目中的实例最终关联的是项目库里的对应类型版本。[3]
因此,把新版放进共享文件夹,不等于所有项目已经升级。新的交付包、项目库中的版本、项目里实际使用的对象,是需要分别检查的环节;不能只看下载文件的名称判断更新完成。
看一个类型时,我会同时确认它的名称、版本、状态和依赖,而不只看“版本号够不够大”。TIA Portal 的库机制会考虑类型所引用的其他块或 PLC 数据类型,类型之间的一致性也是维护的一部分。[3]
不要把 Library instance 和 FB instance DB 混为一谈
这里有两个语境都使用“实例”。库类型实例关注的是:项目对象对应哪一个库类型版本;FB 的运行实例关注的是:这一次设备调用的数据保存在哪里。后者可以使用独立实例 DB,也可以作为多重实例保存在上层 FB 的实例数据中。[4]
假设同一个电机 FB 用于两台电机,两个设备需要各自的工作数据;这并不要求维护两份不同的电机算法。反过来,库里存在一个电机类型,也不代表工程已经建立了两台电机的调用、反馈和输出连接。
四、Master copies 给你一份起点,但不是所有内部对象都脱离类型
旧版文章把这一类统称为 Copy Templates。这里改用所引用英文帮助中的名称 Master copies,可理解为主副本或复制模板。它适合把预先准备的内容复制到项目,例如设备组态、变量表、监控表或块组。[5]
作为模板复用时,新副本不靠持续连接原模板来统一维护。Siemens 的对比图强调了这种区别:类型用于关联和版本管理,主副本用于创建副本。[6]

但“模板是独立副本”不能简化成“模板内的一切都没有类型关系”。Siemens 的 Master copies 说明指出:模板可以包含其他对象;若其中的对象已经使用了某个类型版本,相关类型版本会被一并带入,内部对象仍可作为类型实例存在。[5]
这能解释一个容易困惑的现象:从 Master copies 拖入整套模板后,项目库里为什么仍然出现 Types。模板的外层复用方式,与内部对象的类型关系,并不是同一件事。
选择哪一种方式,我会先问“复制后要由谁维护”:需要保持统一来源和明确版本的对象,优先考虑类型;明确准备在每个项目中分别修改的初始结构,可以考虑主副本。具体对象是否支持相应方式,仍要看工程产品与版本,而不是套一个固定名单。
五、回到 LBC:沿一个设备对象检查配套,而不是只复制 FB
把这些机制放回 LBC,我会先选一个实际需要的设备对象,再检查其交付说明、引用关系和调用要求。下面是我建议记录的检查项,不是对某版 LBC 文件夹或块名的推测。
| 检查对象 | 要回答的问题 |
|---|---|
| PLC 程序块 | 选的是哪个块和版本?它还调用了什么? |
| PLC 数据类型与实例数据 | 引用了哪些 UDT?哪些变量承载设备的实际数据? |
| HMI 对象与资源 | 需要哪些 Faceplate、数据类型、文本或脚本?如何绑定到这个设备? |
| 说明与示例 | 文档适用于哪个对象版本?能否找到调用前提和使用限制? |
库机制能处理的已声明依赖,应让工程系统按规则带入,不必逐个猜文件名。Siemens 的说明也明确,复制类型时会考虑其依赖元素。[3] 但这不能推出“拖入一个 PLC 块,通信连接、HMI 画面和全部项目组态就自动完成了”。
HMI 对象也要按自己的类型与依赖检查
WinCC Unified 同样区分 Types 和 Master copies。[7] 不能先验地规定“文本列表只能是模板”:V20 的官方帮助明确支持从项目中已有的文本列表、图形和脚本模块创建类型。[8] 因此,交付包把哪些资源做成类型,应以实际内容为准。
例如,准备加入一个设备面板时,我会核对它所需的接口数据、使用的资源,以及最终绑定的设备变量。PLC 类型更新后,也要检查 HMI 侧是否仍能正确使用这些数据。只确认 FB 能编译,不足以证明设备对象已经完整接入。
Shift+F1 有前提:对象文档必须真的在对应位置
TIA Portal 可以用 Shift+F1 打开对象的用户文档,前提是该对象确实有相应文档。调用失败时,可以启用用户文档调用日志,查看查找位置和期望文件名。[9] 官方约定还要求文档处于正确目录,文件名与对象名匹配。[10]
还有一项容易漏掉:复制库里的对象,不等于对应的用户文档也自动搬好了。Siemens 明确说明,编辑或移动库元素时,相关用户文档需要在文件系统中另行处理。[11] 所以库的交接不能只检查代码是否齐全,还要检查说明是否找得到。
六、决定改造以前,先想好以后如何接收更新
这里最值得提前决定的,不是给库对象改一个顺眼的名字,而是:继续跟随原类型更新,还是维护自己的派生类型。两种方式都可以有合理用途,但后续责任不同。
Siemens 的 AF 文档给出一种做法:需要对提供的类型进行项目化改造时,先通过 Duplicate type 创建具有新类型标识的副本,再维护自己的版本;使用位置也需要相应调整。[12] 下图只演示这个通用操作,不是要求对 LBC 整库执行复制。

独立类型能隔离自己的修改,但不会自动继承上游以后的修复。文档同样提醒,派生类型需要自行跟踪原类型的改进。[12] 因此我会记录基于哪个交付包和对象版本改造,以及具体改动了哪些接口或行为。
涉及现有工程更新时,先备份,再比较。我建议先在工程副本中确认影响范围、依赖和使用位置,编译并验证相关设备及 HMI,最后再按项目流程决定是否投用。这里没有执行过 LBC 升级测试,也不提供“强制更新整库就能成功”的承诺。
对第一次研究的库,我会把工作收敛到一个对象:确认来源版本,理解 Types / Master copies 的关系,整理 PLC 与 HMI 配套,查看文档,再做最小例程。只有这一条路径走通,才考虑扩展到更多设备。
七、读懂一个库,不是背下来多少个文件夹
再回到开头:只把 FB 拖进 PLC,可能只是完成了设备对象的一部分。要知道后面该做什么,先分清库的位置、对象的复用方式、类型版本和实际运行数据,再沿引用关系检查配套内容。
学习 LBC 时,我希望得到的不是一张看似完整的目录截图,而是一种能判断对象如何使用、如何修改、以后如何更新的方法。这也是继续拆具体模块前,值得先理顺的基础。
返回系列第一篇:LBC 为什么不只是一个 FB,或从LBC 分类查看已发布内容。
资料来源
1. Siemens TIA Portal V20,Using libraries:Library basics(11/2024)。
2. Siemens TIA Portal V20:Overview of the Libraries task card(图 1 来源)。
3. Siemens TIA Portal V20:Basics on types。
4. Siemens STEP 7 V20,Programming basics:Function blocks (FB)。
5. Siemens TIA Portal V20:Basics on master copies。
6. Siemens Automation Framework V2.2,4.1 The library concept(04/2026,DocV001;图 2 来源)。
7. Siemens WinCC Unified V20:Types and master copies(06/2025)。
8. Siemens WinCC Unified V20:Creating types and master copies。
9. Siemens TIA Portal V20:Using user-defined documentation。
10. Siemens TIA Portal V20:Conventions for the creation。
11. Siemens TIA Portal V20:Editing library elements。
12. Siemens Automation Framework V2.2,4.3 How to Use a Provided Library(图 3 来源)。
图片与权利说明:三张配图引自上述 Siemens 官方资料,用于对应技术内容的解释,权利归原权利人所有,不随本站原创文字的许可方式重新授权。图示不是本站实测结果。本文仅讨论库的组织与维护,不替代具体设备的调试或安全验收。
Comments NOTHING