【发布时间】:2021-03-03 13:06:18
【问题描述】:
所以我致力于自动化以 XML 表示的 PLC 代码的开发,为此我导出了 FB 块及其网络以查看代码的外观,以便我了解 XML 树是一个名为
【问题讨论】:
-
必须是西门子吗?至于现在我不知道西门子的这个话题,但我可以用另一个 PLC 品牌如 Beckhoff PLC 来帮助你解决这个话题......
所以我致力于自动化以 XML 表示的 PLC 代码的开发,为此我导出了 FB 块及其网络以查看代码的外观,以便我了解 XML 树是一个名为
【问题讨论】:
不要太担心 ID!此 XML 文件中的所有 ID 都必须是唯一的。他们不必井井有条。因此,当您生成代码时,请使用一个简单的 ID 计数器来确保它们是唯一的,仅此而已。
【讨论】:
编译器根据其自身内部逻辑的智慧分配 CompileUnit ID,这在唯一值得考虑的应用程序中并不重要 - 生成要导入的块,正如 IchEben 正确指出的那样。
CompileUnit ID 必须是数字(十六进制或十进制),唯一且可能是增量的,根据 Siemens 示例 C# 项目“OpennessExcelSwGenerator”中的此 xslt 定义,SIOS ID 109770550(使用 DeepL 翻译的 cmets):
<!--Variable "pos" counts the number of networks to get a consecutive unique ID for each network within this document-->
<xsl:variable name="pos" select="position()"/>
<!--Variable "pos" used as ID-->
<SW.Blocks.CompileUnit ID="{$pos}" CompositionName="CompileUnits">
...
除此之外,文档很少 - 我自己搜索过几次。您可以尝试查看 SIOS,以防我遗漏了什么: Siemens Industry Support Online
如果您必须知道 TIA 编译器 如何生成这些 ID,您可以在 SIOS 上提出支持请求。我猜他们会向开发团队提出这个问题,但你可能会因为一些他们肯定认为你不需要知道的事情而惹恼他们。
【讨论】: