0619 【万泉河】论一个好的程序框架的重要性
网上搜索技术资料,偶然间看到一个整理地非常好的PLC编程课程的帖子。

原始初衷非常好,然而看了具体的程序框架, 实在忍不住评价一下。
当然,与品牌无关,也与个人无关。所以我就不提这个课程的具体品牌了。 甚至, 整个行业现在通行的都是这样的做法。 即,所有的同行,要么是连这个课程的水平也还没达到, 要么顶多做着和这个课程一样水平的程序。
所以实在不是对这个课件老师的刻意攻击,实在是你的课件做的太好了,太直观,一目了然,看得让我心痛。所以拿出来。作者本人如果看到的话, 希望作者本人是个极具学习能力和自我否定意识的人,能从我发表的本文中吸取一些有用的信息,可以找到提高技术水平的方向。
来看原文描述的程序框架:

相比之下, 我来给出烟台方法下的模块化的框架,上面的软件我不会用,做的效果肯定没有你的好。就直接在EXCEL表格里描述了:

注意看到我举例的工位5和其它工位不一样, 我们假设这个工位没有伺服驱动,没有电机, 可能只有一点简单控制对象,那么自然不需要有轴控方面的内容。
只需要简单处理,成为一个单独的工位即可。 这样是不是看起来更自然,更具模块化?
而相比之下,看下原程序架构,如果工位5轴控去掉, 那么需要在各个模块中手动、自动、回原中均修改去掉其中的内容。
而实际的工程中,有可能有的工位配置的轴数还不一样, 比如工位10有2个轴, 原程序架构中还需要分别到各模块单元分别增加工位10.1 , 10.2的控制。
原本的程序架构, 其实程序控制与系统设备配置深度耦合,完全称不上什么模块化了。
我知道大多数人看到我提出的架构, 一定会第一时间举手反对说:不可能!做不到!
如果有人不能认可我提出的程序架构,可以先请一个外行, 比如你的女朋友,爸爸妈妈或者儿子女儿等,完全不懂PLC控制,让他来看一下,对比一下,用本能来选择哪一个架构更模块化,更方便。
如果他们选择我所建议的方法, 那么,你应该了解到,所谓的能和不能,其实是个客观技术问题,你之所以认为不能,其实是主观判断,是你被你的思维习惯所绑架了,或者还没有掌握这个技术能力。
让我们再看一眼文章中提到的一个轴的逻辑控制原理图:

这不正是最标准的一个模块应用吗,不正是应该完整封装在一个模块内的吗?
然后哪个工位用到了,调用这个模块,对其实例化。
如果大家对我提出的烟台方法的架构还有些不能理解的话, 参考下我上一篇文章《0618 【万泉河】(多品牌PLC)80个工位双联开关控制公用灯示例》中所做的系列例子。
烟台方法, 无关品牌, 所有PLC品牌通用。
全图原文
0619 【万泉河】论一个好的程序框架的重要性.pdf