萬泉河
WX:ZHO6371995,歡迎+
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 129 個
工控威望: 245 點
下載積分: 829 分
在線時間: 11(小時)
注冊時間: 2021-06-11
最后登錄: 2024-09-08
查看萬泉河的 主題 / 回貼
樓主  發(fā)表于: 2023-05-26 08:39
0514 【萬泉河】PLC中的M的本質(zhì)是糖果

糖果什么意思,就是吃起來比較爽,然而吃多了會上癮,會蛀牙,會導(dǎo)致肥胖,會引發(fā)糖尿病。

我寫文章宣傳PLC中使用M的壞處,勸誡同行在學(xué)習(xí)PLC編程中要學(xué)會避開使用M以及其它的程序全局變量。 這原本在我看來是非;A(chǔ)的原理,然而非常匪夷所思的6-7年過去了, 這一理念并沒有得到普及。反而在一些場合,仍然有不少反對的聲音。

比如有人就理直氣壯地反駁曰:既然PLC系統(tǒng)中設(shè)計了M變量,你憑啥不讓用?只要設(shè)計了就可以用。你如果有理,去讓西門子等廠家在PLC系統(tǒng)中取消M以及全局標簽變量,才證明你說的有道理。

這個邏輯看起來很充分的樣子,其實完全不值得一駁。大家都知道吃糖果的危害呢,然而超市里面最顯眼的地方賣得更多的仍然是糖果,隨處隨手可得。 要按這種理論,國家是不是應(yīng)該強行取締各種糖果生產(chǎn)商,禁止生產(chǎn)糖果,讓小孩子們吃不到糖,就自然不會蛀牙了。 成年人老年人接觸不到那么多糖類,也就不會肥胖,不會有糖尿病了。

很顯然不是這樣嘛!

這個世界上太多存在然而禁忌的規(guī)則了。比如商場里的防火通道,平常是要緊閉不許人員出入的。假如來個醉漢, 以存在就要用為由,非要強行通過, 那最終必然被保安給架離。

再比如各停車場里的殘疾人優(yōu)先的車位,即便是空閑在那里, 正常車輛也不可以泊車。而如果有人以閑置導(dǎo)致資源浪費為由,要把自己的車停在上面,那其實就不是在關(guān)心資源 浪費,而只是其個人素質(zhì)低下了。

而我們所倡導(dǎo)的程序中不使用全局變量,掌握此技能后,可以避免因為使用M所帶來的諸多弊端,程序模塊不能復(fù)用,調(diào)試工作量大等等。我以前多篇文章中都介紹過。所以我更愿意打比方的例子是爬樓梯。

30層的高樓,有電梯但必然也仍然設(shè)計有樓梯,掌握了不使用M的技能,就相當(dāng)于拿到了電梯的鑰匙。 如果有電梯可乘坐,卻非要吭哧吭哧爬樓梯的, 眾人只能嘲笑其魯笨了。

也有人指責(zé)我管得太寬,每個人都有其自身的特長,適合自己的就是最好的,想用便用,不想用便不用,奉勸我手不要深的太長,限制別人的自由。

我要說的是,這種認知的人讀題能力有限。 我在講建議PLC程序不要用M的道理的時候,是有隱含的前提的。前提是要寫高質(zhì)量的PLC的程序。只有能看得懂我講的道理的人, 能愿意去學(xué)習(xí)掌握技能,才能夠?qū)懗龈哔|(zhì)量的PLC程序,提高工作效率。

而看不懂的人,與我是沒有任何關(guān)系的。 我才不會關(guān)心其工作效率高低,才不會替其擔(dān)憂其爬30層樓會不會累死呢!

就好比醫(yī)生勸誡大家少吃糖, 有人非得抬杠每個人體質(zhì)不同,適合自己的飲食就是最好的。 我的身體體制和你們不一樣,我的體制就是適合吃糖, 多吃糖對我的身體就是有好處,我不會蛀牙,不會糖尿病。 醫(yī)生才不會卡住你的喉嚨不許你吃呢!身體健康是每個人自己的事, 你聽不進道理,別人干著急有什么用!別人才不會為你的健康操心著急呢!

更有人質(zhì)問:“用M傷天害理?M做出來不是給人用的?”,我除了用吃糖和爬30層樓的例子給他們講解之外, 也暗自覺得好笑。 這樣的人心態(tài)也太不自信了。 把我當(dāng)法官了還是把我當(dāng)老師了?

我既沒有權(quán)力制定規(guī)則,也沒有權(quán)力判定對錯。 我有的只是講道理,講給聽得懂道理的人聽,萬千讀者中,哪怕只有一個人能看懂其中的道理,能有所感悟,有收獲,應(yīng)用到工作中,能有獲得利益, 那對我來說也算是善事一件。 我斷沒有要求所有人一個步調(diào),按我的道理做事的目的。

除此之外,我還發(fā)現(xiàn)有一些人對恪守言行一致的格言認知上有一些偏差。當(dāng)然他們自己可能還沒有發(fā)現(xiàn)。我們的文化傳統(tǒng)中有一項優(yōu)良傳統(tǒng)是教育人要言行一致,即所言如所行。

然而言行一致并不意味著倒過來。 有的人自己暫時做不到程序中不用M,就要竭力辯解,不肯承認用M的危害,以及學(xué)會不用M的技能對工作效率帶來的提升。

就好比我們現(xiàn)在倡導(dǎo)文明社會,不要隨地大小便。 然而如果你身處戈壁灘深處,方圓500KM都沒有公共廁所而你又內(nèi)急的時候,就只能隨地解決了。 然而也斷然不會有任何人有什么非議。 你自己當(dāng)然也不需要覺得羞愧。 然而如果因為自己曾經(jīng)在特定的情況下沒有做到規(guī)則,反而試圖要否定規(guī)則,修改規(guī)則以使自己真正符合言行一致的原則的話, 這種操作反而就不太值得贊賞了。

有人舉反例說系統(tǒng)有提供了脈沖信號,可以直接使用而減少不少編程工作量。 在SMART 200中是SM0.5, 在S7-1500中如果指定了MB0則M0.5代表了1HZ的脈沖,這用起來確實方便。 然而我們講用和不用M的時候,是指使用M作為中間狀態(tài)的緩存工具。 某個位置產(chǎn)生的狀態(tài)值保存到全局變量中,然后換一個地方又拿出來使用。

像SM0.5和M0.5這種,我們更應(yīng)該稱之為常量,而不是變量。 從而也更不是全局變量了。 就好比SMART 200的程序中每一行開頭都要有SM0.0,以及其它品牌會有SM800作為常ON的信號,這些都不必過慮,都不在討論的范圍內(nèi)。

對于S7-1500中需要在硬件設(shè)置中設(shè)置MB區(qū),如果不小心未設(shè)置,導(dǎo)致功能塊功能不能實現(xiàn),這是個硬傷。有人會覺得不傷大雅,自己早就習(xí)慣了每個CPU都會去設(shè)置,這完全可以。但如果你的工作只是頂層設(shè)計,具體項目是別人在做,多一個漏洞就多一個失敗可能性,從我自己來說已經(jīng)很多年不用這個M了,做項目的工程師是否設(shè)置了硬件我從來都不需要關(guān)心。 在自己的FB的小宇宙里把功能實現(xiàn)完整,盡量減少對外界的依賴,這才是真正的宇宙觀。 我上一篇關(guān)于宇宙觀的文章,其實就想表達這一點。

當(dāng)然,這對整個的不使用全局變量M的技術(shù)能力來說,關(guān)系很小。 這一點確實每個人可以有自己的喜好。 你可以保留這一點喜好,在整體系統(tǒng)學(xué)會不用M。 我也堅信,如果你做到了不用M,就會逐漸上癮,就會體驗到每一個模塊獨立完整性的妙處,會逐漸改變自己的認知和習(xí)慣。

也有人對我的理論得不到廣泛認可而替我擔(dān)憂,問我怎么想。 我說,這完全不需要擔(dān)憂,反而對更多的煙臺方法的學(xué)員意味著機會。

就好比哈利波特里面魔法學(xué)校的老師和學(xué)員們所掌握的魔法,面對眾多絲毫不懂魔法的麻瓜, 他們需要擔(dān)憂嗎?

如果僅僅掌握不用M和T,掌握五連鞭,都可以當(dāng)作魔法,都可以稱雄工控武林,這個武林世界的門檻是不是太低了點?所以你們知道為啥有些人對我不爽了吧!


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


我的新微信號:ZHO6371995
所有同行可以加我。
我們有自動化俱樂部和群俠會純技術(shù)的微信群,每個人可以根據(jù)自己的需求,要求加入不同的群組。

本帖最近評分記錄:
  • 下載積分:+1(析木lintoa)
    dzh832
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 514 個
    工控威望: 1036 點
    下載積分: 5319 分
    在線時間: 83(小時)
    注冊時間: 2017-04-08
    最后登錄: 2024-09-19
    查看dzh832的 主題 / 回貼
    1樓  發(fā)表于: 2023-06-06 13:20
    學(xué)習(xí)了,感覺有的時候不用,不習(xí)慣