【问题标题】:Siemens Openness XML files西门子开放 XML 文件
【发布时间】:2021-03-03 13:06:18
【问题描述】:

所以我致力于自动化以 XML 表示的 PLC 代码的开发,为此我导出了 FB 块及其网络以查看代码的外观,以便我了解 XML 树是一个名为 ID="DD" CompositionName="CompileUnits"> 的标签,我无法弄清楚编译器如何分配我尝试查看的值,如果它是 HEX 但我没看到关系。下一个分配值是 ID="E6" CompositionName="CompileUnits"> 非常感谢您对此问题的帮助。

【问题讨论】:

  • 必须是西门子吗?至于现在我不知道西门子的这个话题,但我可以用另一个 PLC 品牌如 Beckhoff PLC 来帮助你解决这个话题......

标签: xml plc siemens


【解决方案1】:

不要太担心 ID!此 XML 文件中的所有 ID 都必须是唯一的。他们不必井井有条。因此,当您生成代码时,请使用一个简单的 ID 计数器来确保它们是唯一的,仅此而已。

【讨论】:

【解决方案2】:

编译器根据其自身内部逻辑的智慧分配 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 上提出支持请求。我猜他们会向开发团队提出这个问题,但你可能会因为一些他们肯定认为你不需要知道的事情而惹恼他们。

【讨论】:

    猜你喜欢
    • 2021-09-13
    • 2018-10-09
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多