故事作者:万泉河

最近创作

看看TA的故事

0514 【万泉河】PLC中的M的本质是糖果

已锁定

万泉河

  • 帖子

    10900
  • 精华

    132
  • 被关注

    1009

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

0514 【万泉河】PLC中的M的本质是糖果

1635

7

2023-05-14 19:33:51

0514 【万泉河】PLC中的M的本质是糖果

 

糖果什么意思,就是吃起来比较爽,然而吃多了会上瘾,会蛀牙,会导致肥胖,会引发糖尿病。

 

我写文章宣传PLC中使用M的坏处,劝诫同行在学习PLC编程中要学会避开使用M以及其它的程序全局变量。 这原本在我看来是非常基础的原理,然而非常匪夷所思的6-7年过去了, 这一理念并没有得到普及。反而在一些场合,仍然有不少反对的声音。

 


比如有人就理直气壮地反驳曰:既然PLC系统中设计了M变量,你凭啥不让用?只要设计了就可以用。你如果有理,去让西门子等厂家在PLC系统中取消M以及全局标签变量,才证明你说的有道理。

 

这个逻辑看起来很充分的样子,其实完全不值得一驳。大家都知道吃糖果的危害呢,然而超市里面最显眼的地方卖得更多的仍然是糖果,随处随手可得。 要按这种理论,国家是不是应该强行取缔各种糖果生产商,禁止生产糖果,让小孩子们吃不到糖,就自然不会蛀牙了。 成年人老年人接触不到那么多糖类,也就不会肥胖,不会有糖尿病了。

 

很显然不是这样嘛!

 

这个世界上太多存在然而禁忌的规则了。比如商场里的防火通道,平常是要紧闭不许人员出入的。假如来个醉汉, 以存在就要用为由,非要强行通过, 那最终必然被保安给架离。

 

再比如各停车场里的残疾人优先的车位,即便是空闲在那里, 正常车辆也不可以泊车。而如果有人以闲置导致资源浪费为由,要把自己的车停在上面,那其实就不是在关心资源 浪费,而只是其个人素质低下了。

 

而我们所倡导的程序中不使用全局变量,掌握此技能后,可以避免因为使用M所带来的诸多弊端,程序模块不能复用,调试工作量大等等。我以前多篇文章中都介绍过。所以我更愿意打比方的例子是爬楼梯。

 

30层的高楼,有电梯但必然也仍然设计有楼梯,掌握了不使用M的技能,就相当于拿到了电梯的钥匙。 如果有电梯可乘坐,却非要吭哧吭哧爬楼梯的, 众人只能嘲笑其鲁笨了。

 

也有人指责我管得太宽,每个人都有其自身的特长,适合自己的就是最好的,想用便用,不想用便不用,奉劝我手不要深的太长,限制别人的自由。

 

我要说的是,这种认知的人读题能力有限。 我在讲建议PLC程序不要用M的道理的时候,是有隐含的前提的。前提是要写高质量的PLC的程序。只有能看得懂我讲的道理的人, 能愿意去学习掌握技能,才能够写出高质量的PLC程序,提高工作效率。

 

而看不懂的人,与我是没有任何关系的。 我才不会关心其工作效率高低,才不会替其担忧其爬30层楼会不会累死呢!

 

就好比医生劝诫大家少吃糖, 有人非得抬杠每个人体质不同,适合自己的饮食就是最好的。 我的身体体制和你们不一样,我的体制就是适合吃糖, 多吃糖对我的身体就是有好处,我不会蛀牙,不会糖尿病。 医生才不会卡住你的喉咙不许你吃呢!身体健康是每个人自己的事, 你听不进道理,别人干着急有什么用!别人才不会为你的健康操心着急呢!

 

更有人质问:“用M伤天害理?M做出来不是给人用的?”,我除了用吃糖和爬30层楼的例子给他们讲解之外, 也暗自觉得好笑。 这样的人心态也太不自信了。 把我当法官了还是把我当老师了?

 

我既没有权力制定规则,也没有权力判定对错。 我有的只是讲道理,讲给听得懂道理的人听,万千读者中,哪怕只有一个人能看懂其中的道理,能有所感悟,有收获,应用到工作中,能有获得利益, 那对我来说也算是善事一件。 我断没有要求所有人一个步调,按我的道理做事的目的。

 

除此之外,我还发现有一些人对恪守言行一致的格言认知上有一些偏差。当然他们自己可能还没有发现。我们的文化传统中有一项优良传统是教育人要言行一致,即所言如所行。

 

然而言行一致并不意味着倒过来。 有的人自己暂时做不到程序中不用M,就要竭力辩解,不肯承认用M的危害,以及学会不用M的技能对工作效率带来的提升。

 

就好比我们现在倡导文明社会,不要随地大小便。 然而如果你身处戈壁滩深处,方圆500KM都没有公共厕所而你又内急的时候,就只能随地解决了。 然而也断然不会有任何人有什么非议。 你自己当然也不需要觉得羞愧。 然而如果因为自己曾经在特定的情况下没有做到规则,反而试图要否定规则,修改规则以使自己真正符合言行一致的原则的话, 这种操作反而就不太值得赞赏了。

 

有人举反例说系统有提供了脉冲信号,可以直接使用而减少不少编程工作量。 在SMART 200中是SM0.5, 在S7-1500中如果指定了MB0则M0.5代表了1HZ的脉冲,这用起来确实方便。 然而我们讲用和不用M的时候,是指使用M作为中间状态的缓存工具。 某个位置产生的状态值保存到全局变量中,然后换一个地方又拿出来使用。

 

像SM0.5和M0.5这种,我们更应该称之为常量,而不是变量。 从而也更不是全局变量了。 就好比SMART 200的程序中每一行开头都要有SM0.0,以及其它品牌会有SM800作为常ON的信号,这些都不必过虑,都不在讨论的范围内。

 

对于S7-1500中需要在硬件设置中设置MB区,如果不小心未设置,导致功能块功能不能实现,这是个硬伤。有人会觉得不伤大雅,自己早就习惯了每个CPU都会去设置,这完全可以。但如果你的工作只是顶层设计,具体项目是别人在做,多一个漏洞就多一个失败可能性,从我自己来说已经很多年不用这个M了,做项目的工程师是否设置了硬件我从来都不需要关心。 在自己的FB的小宇宙里把功能实现完整,尽量减少对外界的依赖,这才是真正的宇宙观。 我上一篇关于宇宙观的文章,其实就想表达这一点。

 

当然,这对整个的不使用全局变量M的技术能力来说,关系很小。 这一点确实每个人可以有自己的喜好。 你可以保留这一点喜好,在整体系统学会不用M。 我也坚信,如果你做到了不用M,就会逐渐上瘾,就会体验到每一个模块独立完整性的妙处,会逐渐改变自己的认知和习惯。

 

也有人对我的理论得不到广泛认可而替我担忧,问我怎么想。 我说,这完全不需要担忧,反而对更多的烟台方法的学员意味着机会。

 

就好比哈利波特里面魔法学校的老师和学员们所掌握的魔法,面对众多丝毫不懂魔法的麻瓜, 他们需要担忧吗?

 

如果仅仅掌握不用M和T,掌握五连鞭,都可以当作魔法,都可以称雄工控武林,这个武林世界的门槛是不是太低了点?所以你们知道为啥有些人对我不爽了吧!

 


糖果吃得爽,吃多了长蛀牙;M用得爽,用多了一辈子出差。

 


 


0514 【万泉河】PLC中的M的本质是糖果 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3364条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。