2

UML 中的泛化是否可以在 Simatic SCL 代码(或结构化文本代码)中实现?

UML中泛化的定义:

A generalisation is a relationship between a morew general classifier and a 
more specific classifier. Each Instance of the specific classifier is also an
indirect instance of the general clasifier. Thus, the specific classifier
inherits the features of the more general classifier.

Features specified for instances of the general classifier are implicitly
specified for instances of the specific classifier. Any constraint applying
to instances of the general classifier also applies to instances of the 
specific classifier.
4

1 回答 1

2

一般来说,这个问题的答案是否定的,不是真的。PLC 的所有编程方式(梯形图、ST、FBD 等)通常只是从实际机器代码中非常轻微地抽象出来。它们更接近于汇编包装器,而不是我们认为的任何现代开发语言。结构化文本更接近于非常原始的 Pascal - 它几乎没有任何面向对象的特性。

这个概念是 PLC 和 PLC 程序员在为它们开发程序时早已习惯了极端微观管理的方法。造成这种情况的原因有很多——有些比其他的更有效。Scott Whitlock在这里写了一篇很好的文章,概述了其中一些原因。一个重要的问题是,工厂车间的维护人员通常是试图对机器进行故障排除的人,他们可以获得清晰、非抽象的状态机信息,这比需要一个优雅的、最小的公式来处理更有价值系统开发者的自我。

PLC编程是一个无情的实用行业。如果您可以在实用性提高 10% 和优雅性提高 90% 之间做出选择,那么实用的解决方案总是会胜出的。

话虽如此 - 有些人在这个领域玩。我建议快速阅读这篇文章,了解一些尝试让 ST 像您建议的那样工作的示例。尽管如此,在将这样的任何东西放在真正的工厂中使用需要既安全又可靠地赚钱的真实机器之前,我还是会谨慎行事。

于 2013-02-28T11:36:21.770 回答