状态模式PLC编程的一个方法

时间:2017-10-02 04:29:23

标签: design-patterns structure state plc

我是一名训练有素的计算机科学家,来自大学,为我要说的话做准备。在最近涉及使用人机界面(HMI),条形码扫描仪和序列灯以及各种人为参与和解析数据等的项目中,我遇到了传统的PLC编程实践问题,即将所有内容放入主体响。当它越来越接近40行时,越过主要的梯级越来越恼火。我不想在某个屏幕上运行的逻辑我不得不每次都使用等效的屏幕检查来阻止它。总的来说,我认为传统的模式给了我错误,并且难以为我的应用程序调试。我知道人们已经放弃了更大的计划但是我没有理由通过一个可能达到接近50-70级的程序,更糟糕的可能甚至更多。

然后我意识到每个屏幕都是一个状态,它有私有功能,只有某个屏幕需要做,因此我重新组织我的代码,以反映每个屏幕只有它需要运行的功能。它很漂亮,我已经消失的bug,添加不会影响其他功能的功能是轻而易举的,而不必担心影响了什么。回顾过去,我看到我的逻辑如何能够应用于传统模式;但是,我认为,就我的程序而言,这种模式并不能保持主要梯级的大小,同时让您高枕无忧,功能受到当前屏幕的限制。

当我在屏幕上出现问题时,以这种方式进行调试也非常有效我将滚动浏览平均梯形图10,最大值为15,并且可以轻松查明问题点。检查全局变量是快速有效的,因为如果在跳转到新屏幕之前必须进行屏幕更改,我可以将它们的状态更改为我需要的状态。

我是年轻的工程师,是否充满了它,应该坚持传统做法,还是对行业有用的创新?人们现在这样做吗?

感谢您的意见 克里斯约翰逊

1 个答案:

答案 0 :(得分:1)

如果您熟悉Petri网甚至简单的状态转换图,您可能需要查看61131-3's Sequential Function Chart (SFC) language for PLCs