我想专注于进入Beckhoff / TwinCAT PLC编程。
因为我相对习惯于C / C ++,所以这将是一个很好的起点。与学习结构化文本相比,有任何缺点吗?
答案 0 :(得分:7)
我在TwinCAT 3上的ST和C / C ++方面都有丰富的经验。在TC3中,C / C ++语言环境使得操作系统(BSOD)意外崩溃变得更加容易,并使调试事项变得更加困难当你这样做。这是因为,在TwinCAT 3中,用户C / C ++代码在OS上的驱动程序空间中运行,以便实时。驱动程序上下文也意味着你在代码中可以做的事情非常有限,而不会跳过箍。
C / C ++的目标似乎是针对使用TwinCAT的IEC 61131 PLC无法轻松满足的填充需求,例如实现复杂的算法以及与不支持的硬件接口。我们的想法是所需的功能在C / C ++中实现,控制应用程序仍然以ST或其他IEC 61131-3语言实现,后者处理系统的大部分操作并提供“粘合剂”以结合前者的功能进入更大的系统。
另外,虽然TC3上PLC环境的文档不是最好的,但它没问题,并且比C / C ++环境的文档要好得多。别误会我的意思;为TwinCAT 3编写低级组件的能力非常好,经过深思熟虑,并提供了我们常规用于为我们的控制系统制造可重用软件组件的大量功能,但这些控制系统仍然主要是用ST
答案 1 :(得分:0)
答案 2 :(得分:0)
使用特定语言取决于很多因素,例如: - 什么是目标系统 - 谁是最终用户 - 面向对象和低级语言的其他典型功能 - 您计划使用的其他库/参考(互相兼容)
主要是,您可以使用C ++以及ST(或其他PLC语言)编写代码。除了学习ST的时间外,没有特别的优势
如果它很小,应用简洁,我推荐使用ST。它的快速且易于调试,语法类似于C / C ++
答案 3 :(得分:-1)
如果你使用/使用过多个CodeSys或符合IEC 61131标准的控制系统,那么ST更便携,这是它比C / C ++更具优势的另一个优点,它不在标准中,并不总是支持(当它们相同时,并不总是相同)。
正如@JBC上面所述,当出现问题时,ST更容易排除故障,部分原因是它在编译时更加严格,部分原因是你可以编写IEC检查库来检查数组越界和在测试期间除以零错误(尽管在生产系统中启用它们通常不是一个好主意。)