首页 > 解决方案 > Beckhoff PLC 在 CASE OF question 中使用 ENUM

问题描述

当我在 C# 的 switch 语句中使用 enum 时,我习惯于在 Default case 中添加一个 debug break 语句,以防止向 enum 添加未被 switch 覆盖的项目。在调试期间,如果遇到默认情况,代码将中断。

现在我正在对 beckhoff PLC 进行编程,并希望在 STL 中的 CASE .. OF ELSE ...END CASE 中做同样的事情。这在 PLC 编程中是否可能和/或正常?

标签: enumsplc

解决方案


您可以在在线模式下设置断点,但是正如 pboedker 指出的那样,一旦达到断点(除非您有特殊配置,但这是另一个主题),您的 ethercat 主机将超时,您的安全模块将产生一个com 错误,您的驱动器也需要重置。

如果您的项目中没有真正的硬件和 ethercat 主设备,您可以毫无顾虑地使用断点。

我个人采取另一种方法。

我总是在 plc 中构建一个单独的调试可视化以及一个特殊的调试功能块,它可以帮助我跟踪项目中的错误。

例如,在您的情况下,当程序流程达到默认情况时,我会简单地使用错误代码和字符串调用 Debug-FunctionBlock 的特殊方法。然后将在调试可视化中可视化错误代码和字符串。

即使它比简单地调用 adslogstr 多一点努力,我宁愿实现一个单独的 Debug-FunctionBlock 有 3 个原因:

  1. 无论如何,您需要更多的逻辑而不是简单地调用 adslogstr,因为如果有机会循环调用 adslogstr,您最终会向事件记录器发送垃圾邮件。
  2. 在其他项目中重用
  3. 如果需要,您可以将调试可视化扩展为测试套件,这可以派上用场

您可以在此处找到有关倍福可视化的更多信息:

https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/3523377803.html&id=


推荐阅读