【问题标题】:Beckhoff TwinCAT: disadvantages of using C++ instead of Structured TextBeckhoff TwinCAT:使用 C++ 代替结构化文本的缺点
【发布时间】:2014-12-29 10:44:36
【问题描述】:

我想专注于进入 Beckhoff/TwinCAT PLC 编程。

因为我比较习惯 C/C++,所以这将是一个很好的起点。与学习结构化文本相比有什么缺点吗?

【问题讨论】:

    标签: plc twincat


    【解决方案1】:

    只有 Twincat3 具有 C/C++ 集成。如果您想使用 TC2,则必须使用结构化文本或其他可用语言之一[1]

    此外,如果您偶然发现它,根据我的经验,它更有可能是经典 PLC 语言之一[2]

    【讨论】:

      【解决方案2】:

      使用特定语言取决于很多因素,例如 - 目标系统是什么 - 谁是最终用户 - 面向对象和其他低级语言的典型特征 - 您打算使用哪些其他库/参考(互兼容性)

      原则上,您可以使用 C++ 和 ST(或其他 PLC 语言)编写代码。除了节省学习ST的时间外,没有什么特别的优势

      如果是小而简​​洁的应用程序,我推荐使用 ST。调试速度快,易于调试,语法类似C/C++

      【讨论】:

        【解决方案3】:

        我在 TwinCAT 3 上的 ST 和 C/C++ 方面拥有丰富的经验。在 TC3 中,C/C++ 语言环境使得操作系统意外崩溃 (BSOD) 变得更容易,并且使调试变得更加困难当你这样做的时候。这是因为,在 TwinCAT 3 中,用户 C/C++ 代码在操作系统的驱动程序空间中运行,以实现实时性。驱动程序上下文还意味着您可以在代码中执行的操作非常有限,而无需跳过障碍。

        C/C++ 的目标似乎是满足使用 TwinCAT 的 IEC 61131 PLC 不容易满足的需求,例如实现复杂的算法和与不受支持的硬件接口。这个想法是,所需的功能用 C/C++ 实现,而控制应用程序仍然用 ST 或其他 IEC 61131-3 语言实现,后者处理系统的大部分操作并提供“粘合剂”来​​整合将前者的功能整合到更大的系统中。

        此外,虽然 TC3 上 PLC 环境的文档不是最好的,但没关系,而且比 C/C++ 环境的文档好很多。不要误会我的意思;为 TwinCAT 3 编写低级组件的能力真的很棒,经过深思熟虑,并且提供了我们经常用来为我们的控制系统制作可重用软件组件的大量功能,但这些控制系统仍然主要是用圣。

        【讨论】:

        • 当然,ST 在相同的驱动程序上下文中运行,如果您写入已知的内核地址或错误的指针,您也可能会导致系统崩溃:) 您也可以编写 Windows 驱动程序ST 如果你足够冒险 - 不是一个完整的驱动程序,但几乎所有的驱动程序除了一个小的存根调用到 ST 实现;)
        【解决方案4】:

        如果您使用/曾经使用过多个符合 CodeSys 或 IEC 61131 标准的控制系统,ST 的便携性更高,这是它优于 C/C++ 的另一个优势,C/C++ 不在标准中且并非总是如此支持(当它们支持时,并不总是相同的方式)。

        正如@JBC 上面所说,当出现问题时,ST 更容易排除故障,部分原因是它在编译时更严格,部分原因是您可以编写 IEC 检查库来检查诸如数组越界和在测试期间除以零错误(尽管在生产系统中启用它们通常不是一个好主意)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-18
          • 1970-01-01
          相关资源
          最近更新 更多