0514 【萬(wàn)泉河】PLC中的M的本質(zhì)是糖果
糖果什么意思,就是吃起來(lái)比較爽,然而吃多了會(huì )上癮,會(huì )蛀牙,會(huì )導致肥胖,會(huì )引發(fā)糖尿病。
我寫(xiě)文章宣傳PLC中使用M的壞處,勸誡同行在學(xué)習PLC編程中要學(xué)會(huì )避開(kāi)使用M以及其它的程序全局變量。 這原本在我看來(lái)是非;A的原理,然而非常匪夷所思的6-7年過(guò)去了, 這一理念并沒(méi)有得到普及。反而在一些場(chǎng)合,仍然有不少反對的聲音。
比如有人就理直氣壯地反駁曰:既然PLC系統中設計了M變量,你憑啥不讓用?只要設計了就可以用。你如果有理,去讓西門(mén)子等廠(chǎng)家在PLC系統中取消M以及全局標簽變量,才證明你說(shuō)的有道理。
這個(gè)邏輯看起來(lái)很充分的樣子,其實(shí)完全不值得一駁。大家都知道吃糖果的危害呢,然而超市里面最顯眼的地方賣(mài)得更多的仍然是糖果,隨處隨手可得。 要按這種理論,國家是不是應該強行取締各種糖果生產(chǎn)商,禁止生產(chǎn)糖果,讓小孩子們吃不到糖,就自然不會(huì )蛀牙了。 成年人老年人接觸不到那么多糖類(lèi),也就不會(huì )肥胖,不會(huì )有糖尿病了。
很顯然不是這樣嘛!
這個(gè)世界上太多存在然而禁忌的規則了。比如商場(chǎng)里的防火通道,平常是要緊閉不許人員出入的。假如來(lái)個(gè)醉漢, 以存在就要用為由,非要強行通過(guò), 那最終必然被保安給架離。
再比如各停車(chē)場(chǎng)里的殘疾人優(yōu)先的車(chē)位,即便是空閑在那里, 正常車(chē)輛也不可以泊車(chē)。而如果有人以閑置導致資源浪費為由,要把自己的車(chē)停在上面,那其實(shí)就不是在關(guān)心資源 浪費,而只是其個(gè)人素質(zhì)低下了。
而我們所倡導的程序中不使用全局變量,掌握此技能后,可以避免因為使用M所帶來(lái)的諸多弊端,程序模塊不能復用,調試工作量大等等。我以前多篇文章中都介紹過(guò)。所以我更愿意打比方的例子是爬樓梯。
30層的高樓,有電梯但必然也仍然設計有樓梯,掌握了不使用M的技能,就相當于拿到了電梯的鑰匙。 如果有電梯可乘坐,卻非要吭哧吭哧爬樓梯的, 眾人只能嘲笑其魯笨了。
也有人指責我管得太寬,每個(gè)人都有其自身的特長(cháng),適合自己的就是最好的,想用便用,不想用便不用,奉勸我手不要深的太長(cháng),限制別人的自由。
我要說(shuō)的是,這種認知的人讀題能力有限。 我在講建議PLC程序不要用M的道理的時(shí)候,是有隱含的前提的。前提是要寫(xiě)高質(zhì)量的PLC的程序。只有能看得懂我講的道理的人, 能愿意去學(xué)習掌握技能,才能夠寫(xiě)出高質(zhì)量的PLC程序,提高工作效率。
而看不懂的人,與我是沒(méi)有任何關(guān)系的。 我才不會(huì )關(guān)心其工作效率高低,才不會(huì )替其擔憂(yōu)其爬30層樓會(huì )不會(huì )累死呢!
就好比醫生勸誡大家少吃糖, 有人非得抬杠每個(gè)人體質(zhì)不同,適合自己的飲食就是最好的。 我的身體體制和你們不一樣,我的體制就是適合吃糖, 多吃糖對我的身體就是有好處,我不會(huì )蛀牙,不會(huì )糖尿病。 醫生才不會(huì )卡住你的喉嚨不許你吃呢!身體健康是每個(gè)人自己的事, 你聽(tīng)不進(jìn)道理,別人干著(zhù)急有什么用!別人才不會(huì )為你的健康操心著(zhù)急呢!
更有人質(zhì)問(wèn):“用M傷天害理?M做出來(lái)不是給人用的?”,我除了用吃糖和爬30層樓的例子給他們講解之外, 也暗自覺(jué)得好笑。 這樣的人心態(tài)也太不自信了。 把我當法官了還是把我當老師了?
我既沒(méi)有權力制定規則,也沒(méi)有權力判定對錯。 我有的只是講道理,講給聽(tīng)得懂道理的人聽(tīng),萬(wàn)千讀者中,哪怕只有一個(gè)人能看懂其中的道理,能有所感悟,有收獲,應用到工作中,能有獲得利益, 那對我來(lái)說(shuō)也算是善事一件。 我斷沒(méi)有要求所有人一個(gè)步調,按我的道理做事的目的。
除此之外,我還發(fā)現有一些人對恪守言行一致的格言認知上有一些偏差。當然他們自己可能還沒(méi)有發(fā)現。我們的文化傳統中有一項優(yōu)良傳統是教育人要言行一致,即所言如所行。
然而言行一致并不意味著(zhù)倒過(guò)來(lái)。 有的人自己暫時(shí)做不到程序中不用M,就要竭力辯解,不肯承認用M的危害,以及學(xué)會(huì )不用M的技能對工作效率帶來(lái)的提升。
就好比我們現在倡導文明社會(huì ),不要隨地大小便。 然而如果你身處戈壁灘深處,方圓500KM都沒(méi)有公共廁所而你又內急的時(shí)候,就只能隨地解決了。 然而也斷然不會(huì )有任何人有什么非議。 你自己當然也不需要覺(jué)得羞愧。 然而如果因為自己曾經(jīng)在特定的情況下沒(méi)有做到規則,反而試圖要否定規則,修改規則以使自己真正符合言行一致的原則的話(huà), 這種操作反而就不太值得贊賞了。
有人舉反例說(shuō)系統有提供了脈沖信號,可以直接使用而減少不少編程工作量。 在SMART 200中是SM0.5, 在S7-1500中如果指定了MB0則M0.5代表了1HZ的脈沖,這用起來(lái)確實(shí)方便。 然而我們講用和不用M的時(shí)候,是指使用M作為中間狀態(tài)的緩存工具。 某個(gè)位置產(chǎn)生的狀態(tài)值保存到全局變量中,然后換一個(gè)地方又拿出來(lái)使用。
像SM0.5和M0.5這種,我們更應該稱(chēng)之為常量,而不是變量。 從而也更不是全局變量了。 就好比SMART 200的程序中每一行開(kāi)頭都要有SM0.0,以及其它品牌會(huì )有SM800作為常ON的信號,這些都不必過(guò)慮,都不在討論的范圍內。
對于S7-1500中需要在硬件設置中設置MB區,如果不小心未設置,導致功能塊功能不能實(shí)現,這是個(gè)硬傷。有人會(huì )覺(jué)得不傷大雅,自己早就習慣了每個(gè)CPU都會(huì )去設置,這完全可以。但如果你的工作只是頂層設計,具體項目是別人在做,多一個(gè)漏洞就多一個(gè)失敗可能性,從我自己來(lái)說(shuō)已經(jīng)很多年不用這個(gè)M了,做項目的工程師是否設置了硬件我從來(lái)都不需要關(guān)心。 在自己的FB的小宇宙里把功能實(shí)現完整,盡量減少對外界的依賴(lài),這才是真正的宇宙觀(guān)。 我上一篇關(guān)于宇宙觀(guān)的文章,其實(shí)就想表達這一點(diǎn)。
當然,這對整個(gè)的不使用全局變量M的技術(shù)能力來(lái)說(shuō),關(guān)系很小。 這一點(diǎn)確實(shí)每個(gè)人可以有自己的喜好。 你可以保留這一點(diǎn)喜好,在整體系統學(xué)會(huì )不用M。 我也堅信,如果你做到了不用M,就會(huì )逐漸上癮,就會(huì )體驗到每一個(gè)模塊獨立完整性的妙處,會(huì )逐漸改變自己的認知和習慣。
也有人對我的理論得不到廣泛認可而替我擔憂(yōu),問(wèn)我怎么想。 我說(shuō),這完全不需要擔憂(yōu),反而對更多的煙臺方法的學(xué)員意味著(zhù)機會(huì )。
就好比哈利波特里面魔法學(xué)校的老師和學(xué)員們所掌握的魔法,面對眾多絲毫不懂魔法的麻瓜, 他們需要擔憂(yōu)嗎?
如果僅僅掌握不用M和T,掌握五連鞭,都可以當作魔法,都可以稱(chēng)雄工控武林,這個(gè)武林世界的門(mén)檻是不是太低了點(diǎn)?所以你們知道為啥有些人對我不爽了吧!
糖果吃得爽,吃多了長(cháng)蛀牙;M用得爽,用多了一輩子出差。
我的新微信號:ZHO6371995
所有同行可以加我。
我們有自動(dòng)化俱樂(lè )部和群俠會(huì )純技術(shù)的微信群,每個(gè)人可以根據自己的需求,要求加入不同的群組。