0510【万泉河】 工控同行的宇宙观
宇宙观是什么?做工业控制,怎么还扯到宇宙观去了?
开始之前, 先讲一个在IT行业流行很久的说法:如果上帝存在, 那么上帝肯定是个程序员。 整个宇宙,
所有天体,物质的自然运动,所有生物的繁衍生息,人类的所有文明进程,都只不过是上帝所创造的这
个宇宙内部的按照既有的设定规则运行的结果而已。
在我们芸芸众生看来的很多不可解释的自然现象, 很多貌似随机发生的事件,比如天气的突变导致的
刮风下雨或者风和日丽, 比如一个男人和一个女人的偶然相遇发生的爱情故事, 乃至最终生育了下一代
,这些看起来都是极大的随机不确定性,然而都是在人类对自然的运行规则了解不够充分的情况下。
而当人类科学技术水平逐渐提高,对自然规律掌握的越来越清楚,很多原本不可知的事情,也可以有了较
为科学的解释了。
最典型的是天气预报,原本老百姓是看天吃饭。 对所有气候都不可知。 而现在从卫星云图上就可以直接
看到云层的运动趋势,从而做出准确的预测了。 以前隔天的天气预报基本没有准的,而现在可以预测10
日内的天气趋势,而当天的下雨时间,甚至可以准确预测到半小时以内了。
而对于我们的造物主上帝来说,这一切原本都是他老人家规划设计好的,所以他当然知道每时每刻都
会发生什么了。 甚至,是在创造这个宇宙的初始就已经设计好了。
所以,如果把整个宇宙作为一个对象, 运行的规则约定好,输入条件相同的情况下,得到的运行结果
当然是确定的唯一的。
所以,整个宇宙就是一个算力无穷大规则算法无穷复杂的计算机系统,而上帝就是那个程序员。
树立这样的认知价值观,对我们做具体的设计工作非常重要。
换句话说,你在设计系统时,要有上帝视角,要时刻意识到自己造物主的身份,一个系统,或者一个
模块,在输入确定,运行规则确定, 要求的输出确定的情况下,就是必然可以实现的。即便换一个人
来做设计, 不同的人思维方法不一样,具体采用的技术路线也会不同,然而只要要求的规则相同,
最终实现的功能相同, 那么就可以直接拿来使用,甚至都不需要去看他具体怎么实现的。
这就是模块化设计方法的初衷。
上周,公众号上面看了一篇文章,题目叫做:《SCL案例(1)--两台水泵循环启停》。文中,作
者附带了一整套程序代码,实现了一用一备水泵控制系统中循环轮换投运的功能。 我在文章后面
留言:做成FB。
然后作者回复道:也可以。
而在我看来,这岂止是可以呢,而是必须这样做。
更早之前, 有一位烟台方法的学员,趁来烟台出差的机会, 约了我半天时间跟我探讨技术问题。
期间就提到了一模一样的这个问题,问我如何实现。
我听明白了问题之后说,打住。还是我来替你描述这个问题需求好了:
我有一套控制系统, 比如一套纯水制备的设备,已经调试运行成功。 原本的设计是只有一台供水泵,
现在一个新的项目,要做一套新的设计,然而甲方要求, 或者工艺工程师更改了设计,总之要将原本
的一台供水泵改为一用一备的设计,然而我希望原本的主体控制逻辑不动,可以直接复制来就使用。
问这里的功能如何实现?
学员说,对对对!就是这个意思。
然后我就以上帝视角的观点,模块化的思想,如何实现的原理大致跟他讲了一下。当然,前提是他
对我的书和例程都已经充分理解的情况下,所以交流起来就很顺畅。 总的来说,就是要将这两台水
泵幻化为一台虚拟的水泵,主控逻辑需要水泵运行和停止时,虚拟水泵收到指令后,自行调度2台其
中的一台运转提供服务,而两台之间的故障和维修状态处理,寿命均衡等,都只在它自己内部实现,
主控逻辑完全不需要知道,也自然不需要进行任何修改。 原来的逻辑仍然可以移植使用。
由此, 以模块化的思想,实现了既有模块的重复使用。
就好比,某位老板聘用的专职司机,原本需要一整天随时待命,听从调遣,后来,司机干的有些累,
尽管老板给的工资足够高,但身体实在受不了。 就跟老板提出说,我还有个双胞胎兄弟,要不我俩
来一起给你开车,我俩各自干半天,工资也拿原来的一半,行不行?
老板说,完全可以。 你俩具体谁当值,谁来工作我不管,你只需要保证和原来同样完成工作任务,
我指令也还只下载给你一个人, 你自己调度。 在我看来你俩人和原来你一个人完全一样就行。
而同样的思想方法, 即便需要调度的设备再多,也都是完全同样可以实现。
许多同行,自己分明有持续学习的欲望,然而受到一些外来信息的干扰,以为所谓学习就是要不断
学习新技术新技能,以为只有掌握的新技能足够多,才有可能提高自己的价值,乃至被忽悠到不仅
仅画图编程调试,还制定了厚厚的学习计划,要去学习上位机开发,机器人,视觉, 虚拟现实等等。
以为学到了身价就自然提高了。
然而对于此类的小问题,却不愿意去思考总结,所以就落入了总被工作需求追着跑,空闲时间总是
不够用,自己制定的学习计划总是不能落实的怪圈。
都是怪自己没有上帝视角,没有宇宙观所致。
其实,那些不断推销各种学习教程的所谓大师和培训机构们,他们自己又有多少宇宙观呢?
最后,再顺便提一下,我上述提到的虚拟水泵的方法,就相当于面向对象中的多态。
什么是面向对象,它的三个基本特征:封装、继承、多态。
这三点在大家去学习面向对象方法时,都会被反复提及。 然而,据我发现,即便专业的IT程序员,
很多人对这些概念也未必完全清楚。 因为在他们的编程生涯中,大部分的工作就是抄代码,不停
地从这里抄到那里。 并没有自己的创新, 也自然不需要太多的概念理解。 我倒不是批评他们不懂,
恰恰,我认为这才是工业化标准化的趋势。也是IT程序员效率高工资收入高的原因。
然而在PLC行业,总有人抱怨,PLC系统平台这样那样的缺陷, 不支持这个功能那个方法, 我去年
写了篇文章,《0906 【万泉河】一个问题:汇编语言支持面向对象编程吗?》论证了汇编语言也
当然支持面向对象编程的结论下,所有PLC平台所有编程语言也都可以实现面向对象。 所以,所有
思想方法,都取决于程序员自己, 程序员只要把自己当上帝, 只要有宇宙观, 那就没有不可能的。
最后一句话送给所有的工控同行:你永远要相信光!
楼主最近还看过