0302 【万泉河】PLC编程,耦合比算法重要。
我得首先来讲一下什么叫“重要”。
在马斯洛需求层次理论中, 生理需求在最底层,而其它的安全需求,尊重需求,认知需求等分级在上层。 前者分别是基础,后者分别是基础达到之上的更高层次的需求。
所以,当我们在讨论尊重需求或者自我实现很重要的时候,有人跳出来抬杠说吃喝拉撒睡更重要。说明这个人还仅仅在为满足吃喝拉撒睡的级别上奋斗,他原本就该抓紧那点时间多送几单外卖,跑几单滴滴,多攒点钱好凑首付娶媳妇的。这种话题原本就不该他来参与讨论的。
所以,还有另一种说法,每一个人,你认为什么更重要,那么就说明这一部分你还没掌握,所以才显得重要。
我在去年发表了一篇短文《0716【万泉河】PLC标准化编程的主要目的》,就引来骂声一片, 一大堆来骂我告诉我实现工艺功能更重要的道理的。 我就才发现,是我没讲清楚,这些人看到里面有PLC编程的字样,就以为他也是同级别的同行,就轮得到他也有发言权了。 不好意思,我指的是在完成了PLC编程的技能, 能实现设备需求的情况下,想把设备做做好,做做标准化,将来设备的质量外观能更好,设计调试的效率更高,出错更少。
但没办法,这些人的阅读能力受限,根本看不懂文章的内容,只把文章的题目看了一半,就挽起袖子下场开喷了。 当然,这也是他们还一直混在马斯洛需求最底层的原因。互为因果的。
所以,我不希望本文也有人来开喷,跟我强调算法最重要,算法是基础,算法没实现,别的都是空的。 没错,那是对你还没有能力实现算法的时候。 而且我一直说的是,PLC程序里面基本没什么算法。 别吹牛逼你搞的算法多高级。 PLC应用中凡是有重要算法的工艺需求,早就被封装打包了。到了PLC工程师手里,还只是应用。 参数设定下,优化下,就应用了。
什么叫耦合,就是当你有一个复杂的算法需求的时候, 你有能力实现这个算法, 实现的同时,就要实现对它的封装,封装的目的是为了可以重复使用。而重复使用的对象,不仅仅是自己,而是除了自己之外,还有可能是其他人,比如愿意出钱给你购买你这个封装库算法的人。 那么别人或者你自己在使用这个封装库时,就叫耦合。
什么叫好的耦合?好的耦合是看得见的公认的好。要简单易用,即成为低耦合。 而这个低耦合的标准不能设计者单方面说了算,是要设计者和使用者双方都共同认可,已经足够简单易用,已经优化到极致,已经没有再优化的空间,这才叫好的低耦合。
所以,有可能是,算法我不懂,你懂算法,但你做出来的封装库得能让我满意。 或者反过来说,算法我懂,你不懂算法,但我做出来的封装库得能让你满意, 你拿到手里简单易用。 才是达到了封装的目的。
或者还有一种情况,你有拿到别人做的封装库,但不会用,因为使用难度太大,在想有没有可能有人给改进下,做到更建议的耦合效果,就不需要先读懂原理再使用了。 编程行业,如果所谓的封装都还需要拆解开源代码,把所有功能都读懂了,完全了解了工艺原理,才可以使用这个库, 那所谓的封装的过程都是非常搞笑的。
比如我们来看一个网络图片关于自定义定时器的调用:
其中的起始值和当前时间这些管脚就是多余的。使用者完全不需要知道,也不需要负责管理的。
设计者不可以倒打一耙,指责使用者:你懂个啥呀!某某优雅 PLC必须在这里分配一段地址,否则功能无法实现!作为设计者,你顶多可以强调这种不得已,谋得对方谅解,实在没办法躲不过,否则功能实现不了。 然后再给出详尽的使用说明。 但后者都是下下策。
还有一个例子,
我在讲到MODBUS封装的时候经常举到的例子
图中这样的封装库的管脚,可谓是已经达到了极致,无法再少了。 然而其中隐藏了一个非常重要的管脚,通讯链接的ID。 每一个设备对象ID都要不同。 这一点,所有懂MODBUS TCP通讯的都懂,而不懂的原本都不需要懂。
做封装库的时候,如果做不到这一点,处理不好,需要放在管脚上需要使用者来填入,然后还需要千叮咛万嘱咐管脚填入的规则,如果错了就会导致程序功能失灵, 那就说明这个封装还不够最优,甚至,倒过来也说明了封装的算法掌握的也还不够好。 那么使用者也完全可以倒过来灵魂质问封装设计者的。 即便知道自己水平比他差一截,也可以质问。
我在文章《0103 【万泉河】PLC程序块INOUT管脚的倒置用法》中提出了一种为降低耦合难度的缩减FB管脚的编程方法,被很多人不能接受,以各种说辞辩解甚至辱骂。大家可以去链接观察下这些人的丑态
https://www.ad.siemens.com.cn/club/bbs/post_1929369_64_0_0.html#anch 总结起来,这些人也都还是不懂得耦合的重要性, 不了解本文的观点的。
这是这个行业的现状,千万别大惊小怪。
最后,如果我们成立一个组织,专门做一些满足低耦合需求的行业封装库,或者在已有的不成熟的库基础上优化降低耦合难度,有多少人会感兴趣吗?
这个时候,需求者是甲方,你的所有合理需求都是合理的。
0302 【万泉河】PLC编程,耦合比算法重要.pdf (226 K) 下载次数:2