一区二区三区成人-一区二区三区www-一区二区三区 日韩-一区二区日韩欧美-一区二区日韩精品中文字幕-一区二区日韩

萬泉河
WX:ZHO6371995,歡迎+
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 130 個(gè)
工控威望: 246 點(diǎn)
下載積分: 831 分
在線時(shí)間: 11(小時(shí))
注冊時(shí)間: 2021-06-11
最后登錄: 2024-11-07
查看萬泉河的 主題 / 回貼
樓主  發(fā)表于: 2024-06-01 22:43
0531【萬泉河】PLC工程師該有多痛恨垃圾程序?

前天看了一篇公眾號(hào)文章,在聲討一套PLC程序



文章的題目:《說PLC標(biāo)準(zhǔn)化編程不重要的,這個(gè)程序你接手嗎?》
而我一看, 這只不過是一份比較潦草的垃圾程序,根本與標(biāo)準(zhǔn)化扯不上任何關(guān)系呀!這個(gè)程序現(xiàn)在看起來使用的變量亂飛,變量的符號(hào)名以及程序塊的命名都比較隨性。

然后后面還有人大罵:這是防御性編程,故意為了讓別人看不懂嗎!

說起垃圾程序,我還是比較有經(jīng)驗(yàn)的,有一定的發(fā)言權(quán)。本文就對這個(gè)問題分析一下。

不過在開始之前先對垃圾程序的概念做個(gè)定義。 與垃圾程序?qū)?yīng)的是垃圾食品。很多人對垃圾食品的定義也不清楚。 以為人們丟棄到垃圾桶和下水道里的食物殘?jiān)抢称贰?那些只是垃圾,根本算不上食品。所以也更不是什么垃圾食品了。

通常講的垃圾食品,是那些可以食用,甚至方便可口,令人上癮,偶爾食用也無礙,然而長時(shí)間單一食用,會(huì)引發(fā)身體健康問題的,才是垃圾食品。

現(xiàn)在的大型商超里的餐館,通常會(huì)有一些不限量無限次取用的小零食,爆米花,鍋巴,廉價(jià)水果,冰淇淋等等,放眼一看,全部都是垃圾食品。

而垃圾程序,首先是可以正常運(yùn)行的程序。有許多同行經(jīng)常用好貓壞貓論推導(dǎo)的結(jié)論:能讓設(shè)備正常運(yùn)行的程序,就是好程序。  這些僅僅滿足于設(shè)備能運(yùn)行的程序,就是垃圾程序。 可想而知,持有這種觀點(diǎn)的程序員,他們自己的作品,無一例外都是垃圾程序。 即裝載在設(shè)備內(nèi)部的時(shí)候,看起來可以設(shè)備運(yùn)行正常。 然而一旦拿出來公開到陽光下,就暴露了原來都是垃圾程序。 如文首截圖的程序一樣。

不過一上來,我先要發(fā)表一些觀點(diǎn)來維護(hù)垃圾程序。 借用一個(gè)為人處世的雞湯邏輯,所有的垃圾程序,無非兩種情況:不在乎和不得已。

先說不在乎。

我們最早玩的PLC都是絕對地址編程,即便有注釋也主要靠變量后面的注釋文本,且不說一些用手操器編程的小型PLC如LOGO等壓根連符號(hào)表和注釋都沒有,就靠絕對地址搭出來的梯形圖邏輯,你能非要判定是垃圾程序?人家,或者你自己,分明是不在乎的嘛!

比如我經(jīng)常用SMART 200演示一段起保停邏輯:

我不相信誰接手不了這樣的垃圾程序,拿到手里或者換自己來做的時(shí)候還要另起爐灶自己再做一遍。

有的人會(huì)認(rèn)為,你這樣一臺(tái)設(shè)備的簡單邏輯這樣做當(dāng)然正常,但如果一個(gè)更復(fù)雜的系統(tǒng),設(shè)備數(shù)量多了以后還這樣做,是不是就不夠規(guī)范了,就太垃圾了?

就憑PLC系統(tǒng)的復(fù)雜度,就那么點(diǎn)邏輯,你非要說1套設(shè)備與5套設(shè)備與80套設(shè)備有啥不同?大部分不過是簡單的數(shù)量的疊加而已。難度并沒有增加,怎么就接受不了了呢?

比如,一個(gè)溫室大棚,用一個(gè)小型PLC可以如上簡單控制,如果有1000個(gè)大棚,控制方案有可能是同樣型號(hào)的PLC用1000臺(tái),也有可能換個(gè)方案,用一臺(tái)大型PLC實(shí)現(xiàn),然后還有必要用不同的編程規(guī)范實(shí)現(xiàn)?
分明是不必要的嘛!

而這個(gè)大型PLC如果是S7-1500,那么PORTAL中編程的時(shí)候,所有的變量都必須有符號(hào)名。 即便你不去專門整理符號(hào)名,系統(tǒng)也會(huì)自動(dòng)分配一個(gè)。 管你用不用看不看,都會(huì)有。 那么如果在調(diào)試程序過程中根本用不到符號(hào),管它分配的名字是啥樣的呢,只需要關(guān)注絕對地址自己就夠用了,那就會(huì)出現(xiàn)上面的程序的情況。

所以,從我換位思考的經(jīng)驗(yàn),這種做法完全可以理解。

然后再講不得已。

咱們每個(gè)人入門的時(shí)候,做的項(xiàng)目,所編制的程序,特別是一些小型項(xiàng)目,都是這樣的做法做出來的。 所有人之間并沒有明顯的區(qū)別。 然后你如果看到這樣的程序就痛恨, 那我想問一下每個(gè)人自己,當(dāng)你入行10年后,翻看自己10年前的作品的時(shí)候,會(huì)對自己痛恨不已嗎?如果覺得自己那個(gè)時(shí)候剛?cè)腴T,做事情還沒學(xué)會(huì)規(guī)范,覺得可以諒解。 那么憑什么換個(gè)人,自己帶的學(xué)生,后輩,做出來與自己水平幾乎相當(dāng)?shù)某绦颍屯春薜揭а狼旋X呢?水平所限,能力所限,只能做到這個(gè)樣子了嘛!

當(dāng)然, 如果每個(gè)人都有這樣的上進(jìn)心,都能日三省自己,發(fā)現(xiàn)自己技能上的不足,有羞恥心,然后每天學(xué)習(xí)提高,最終士別三日當(dāng)刮目相待,自己今日的程序可以比三日前的做法有明顯的提高,自己也有勇氣批判反對自己曾經(jīng)的做法,那這樣的人,絕對前途無量。

然而怕就怕的是,世間的很多人在這件事上是持有雙重標(biāo)準(zhǔn)的。 罵別人的時(shí)候起勁,而對待自己則無比寬容。 別人的程序因?yàn)樽约鹤x不懂,就罵是垃圾程序,總能從中挑出來不符合自己習(xí)慣的做法,然后就判定對方垃圾。 而如果是自己做的,哪怕是十幾年前做的,因?yàn)榉献约阂回灥牧?xí)慣,各種處理方法自己都特別熟悉, 甚至其實(shí)十幾年來都沒改進(jìn)過,都仍然一個(gè)套路,但因?yàn)閷ψ约阂獙捜荩湍芙邮堋6p方的程序放到一起, 還不見得誰比誰更優(yōu)秀,誰比誰更垃圾呢!很有可能是兩個(gè)作者交換一下作品,都判對方垃圾。而換個(gè)第三者來看,你們倆做的都是垃圾。

所以, 所有痛罵垃圾程序的,通常是因?yàn)樽约嚎床欢?而且,有可能是,通過痛罵對方程序垃圾,而掩蓋自己看不懂對方程序的尷尬。

PLC行業(yè)不同于軟件行業(yè),通常一套PLC系統(tǒng)的軟件設(shè)計(jì),整個(gè)生命周期內(nèi),都是一個(gè)人足以完成。即從設(shè)計(jì)到調(diào)試到維護(hù),都不需要多人協(xié)作。也就是說,通常情況下,不管是符號(hào)名還是注釋,都是寫給自己看的。 用自己看得懂的語言,自己習(xí)慣的表達(dá)方式,只要自己看了曉得怎么回事都足夠了。你沒必要像軟件行業(yè)一樣要求自己,所有符號(hào)和注釋都要規(guī)范英文表達(dá),因?yàn)檎麄(gè)項(xiàng)目可能是幾十上百個(gè)軟件工程師協(xié)作完成,自己所做的只是龐大項(xiàng)目中的一個(gè)小模塊,只實(shí)現(xiàn)其中的一小點(diǎn)功能,而且實(shí)施過程也要經(jīng)過多道流程,不同的人CODEREVIEW,測試等等。

而PLC系統(tǒng)不管是規(guī)模還是復(fù)雜度,都差的遠(yuǎn)得很,完全不在一個(gè)量級(jí)。

就像,每個(gè)人的內(nèi)褲都是穿給自己看的,目標(biāo)對象并不是外人。
而偶爾,一些特殊的原因,比如中途換人,或者設(shè)備運(yùn)行多年之后維護(hù)的需要,換了個(gè)人接手來解讀原始的程序, 那也只是相當(dāng)于一不小心看到了別人的隱私部位。別人大或者小,丑或者嫩,你頂多是嘗試?yán)斫獠⑦m應(yīng),然后解決現(xiàn)有的問題。而斷沒有指責(zé)的理由。 就像別人扒開了你的內(nèi)褲,也斷然沒理由罵你小一樣。

叫我說,越是水平高的工程師,對于越低水平的程序,就該有越高的包容度。就好比書法課的老師,那些書法大師們, 在審視剛剛?cè)腴T的小學(xué)生,或者書法水平遠(yuǎn)不如自己的新手的作品的時(shí)候,斷沒有開罵的理由的。 你頂多是可以在比較中獲取一些內(nèi)心的優(yōu)越感。

站的境界越高,俯視的視角看下來,對方的一些幼稚的蹩腳的處理方法你縱然有可能會(huì)心一笑,但更應(yīng)該是諒解他這樣做的原因。 而不是陰謀論的以為對方這樣做的做法是為了背刺自己。想想看,對方做程序的時(shí)候,以及現(xiàn)場調(diào)試的時(shí)候,針對的是現(xiàn)場出現(xiàn)的問題,目的是能讓設(shè)備盡早運(yùn)轉(zhuǎn),自己好盡早結(jié)束出差回家。連設(shè)備能否運(yùn)轉(zhuǎn)正常都還搞不定呢!哪有額外的心思對付你。

何況,那個(gè)時(shí)候你還不存在呢!你接手到這個(gè)程序,通常都是很長時(shí)間以后了, 甚至5年10年20年,先預(yù)設(shè)了一個(gè)自己的位置,然后猜測對方某些做法是針對你的,這個(gè)陰謀論的回路是不是也太長了點(diǎn)?所以,通常不管是罵對方垃圾程序還是罵對方預(yù)設(shè)陰謀,其實(shí)都是等同于在承認(rèn)自己的水平不如對方。

建議同行們以后少罵別人的垃圾程序,即便真的垃圾程序, 也不要罵。

有人會(huì)說了, 你萬老師不也經(jīng)常指責(zé)這個(gè)那個(gè)程序是垃圾程序嗎?沒錯(cuò),但我只是客觀評價(jià),我絕不痛恨,絕不會(huì)對對方恨鐵不成鋼,也絕不會(huì)動(dòng)輒懷疑對方是故意埋坑。 我更多的是理解對方的做法,那是他當(dāng)時(shí)的技能水平所決定的,即,要么是不在乎,要么就是不得已。

也包括我自己10多年前做的程序做法,我現(xiàn)在也都深知那里面有多垃圾。 但我不會(huì)對自己有多痛恨。我只是原諒自己當(dāng)時(shí)的技能水平不夠而已。同時(shí)也慶幸自己一直在學(xué)習(xí),一直在進(jìn)步,慶幸自己找到了不再寫垃圾程序的技能方法,而且還可以傳授給更多的其他人。

原文作者質(zhì)問的這樣的程序誰愿意接的問題,其實(shí)答案很顯然。 你只要從事這個(gè)行業(yè),只要接手別人的遺留工作或者是維護(hù)項(xiàng)目, 就不可避免要遇到自己不習(xí)慣的垃圾程序。 接不接的原因只在于自己有能力搞懂或者沒能力搞懂。除此之外沒有別的選擇了。 你斷沒有可能站在自己的立場上,要求原始設(shè)計(jì)者,在10年前就按照你的審美觀和規(guī)范,來完成整個(gè)項(xiàng)目,以適應(yīng)今天的你來接手。這有點(diǎn)時(shí)空穿越。

很多煙臺(tái)方法的學(xué)員,自從學(xué)習(xí)了煙臺(tái)方法之后,眼光變刁鉆了,放眼看去包括自己曾經(jīng)做過的程序,全都是垃圾程序。 然后很多同行也以為我非常痛恨垃圾程序。 其實(shí)遠(yuǎn)非如此。相反的是,我反而更愿意挑戰(zhàn)垃圾程序。經(jīng)常有一些改造項(xiàng)目或者修復(fù)漏洞的項(xiàng)目需求,對方會(huì)希望我給全盤否定,用煙臺(tái)方法重寫。而我主張的是,如果要用煙臺(tái)方法重寫,就要關(guān)注這個(gè)設(shè)備還有多少后續(xù)同樣的類型,即我做下來的代碼庫,還有多少重復(fù)使用的機(jī)會(huì)。 如果根本沒有,根本就是當(dāng)下這一條產(chǎn)線要恢復(fù)運(yùn)行或者增加功能的需求,我是不會(huì)同意整體重寫的,我情愿去理解原有程序基礎(chǔ)上修復(fù)漏洞和增加功能。

我曾經(jīng)有寫過一篇文章,【萬泉河】PLC垃圾程序解讀賞析(一)
https://mp.weixin.qq.com/s/hKVMzzr8YbQZ3AXxEkyUNg
這篇文章是5年前寫的了, 未發(fā)在這個(gè)公眾號(hào),也未統(tǒng)計(jì)在338篇技術(shù)文章目錄里。 肯定還有很多這樣的文章被遺漏了。 歡迎大家發(fā)現(xiàn)并提醒我。

在那篇文章里,我批評了西門子官方幫助文件中的例子程序。 而其實(shí)我一直想分享的是一套我曾經(jīng)經(jīng)手的一套昆騰PLC的程序。那是我心目中的NO2的垃圾程序,NO1的更早,更找不到了。 而這套NO2今天終于找到了。 是用CONCEPT 2.6寫的,有興趣的讀者可以對本文打賞10元后跟我私信索取。

那個(gè)程序有多垃圾,我只講述一個(gè)槽點(diǎn)讓大家感受一下,里面有整數(shù)的比較,要判斷千位的數(shù)字相等,然而作者不會(huì)使用整數(shù)相等指令,活生生用8421碼做了逐位比較,而且程序中多處比較,就這部分的代碼就有好幾百句。 沒有子程序,全部都是代碼平鋪的。

讀那套程序,我掙了6萬元。 真的只是讀。 原本項(xiàng)目改造后系統(tǒng)不能正常運(yùn)行了。以為需要修改程序的,但我通讀了之后,找到了方法,在其上位機(jī)組態(tài)王的界面中做了些參數(shù)設(shè)定就搞定了。那個(gè)昆騰的CPU叫一個(gè)討厭,雖然有3個(gè)通訊口,但只有一個(gè)RS232口可用,組態(tài)王和編程電腦只能有一個(gè)在線。而程序功能必須通過組態(tài)王來控制,所以我先是讀了10天搞不定,后來回家后找朋友借了套有以太網(wǎng)口的PLC,監(jiān)控配合,很快找到了原因。

那套系統(tǒng)時(shí)間久遠(yuǎn),原本應(yīng)該用16DI和16DO模塊分別7-8塊,就可以實(shí)現(xiàn)的,但為了省卡件,柜內(nèi)用了復(fù)雜的繼電器邏輯,最終只用了1塊16DI和1塊16DO。卡件上面省了些錢,但給后來的維護(hù)帶來了無窮的后患。 那個(gè)電廠后來又有一次改造,還有人又再次聯(lián)系到我,希望這部分我能幫忙處理,我直接建議他們,把柜子全毀了重新做吧!十多萬就能搞定。而如果非要我再來解讀這套程序,即便不包含任何硬件,我開價(jià)至少要30萬,因?yàn)閷?shí)在太頭疼了。這電廠為啥又來找到我,可能他們這個(gè)系統(tǒng)上線十多年,遇到的設(shè)備商工程師無數(shù),也就我一個(gè)人真的給讀懂了。

前天,有人咨詢要購買煙臺(tái)方法的培訓(xùn)項(xiàng)目, 其實(shí)是一套標(biāo)準(zhǔn)架構(gòu)開發(fā)的樣板示范項(xiàng)目,對方問,如果不滿意是否可以退貨?

我直接拒絕:那不行。 軟件產(chǎn)品,不能以買家主觀的滿意為標(biāo)準(zhǔn)。 否則任何人只要鐵定不滿意,那豈不是就可以白嫖了?

你可以來評判,我給的樣例項(xiàng)目有多少垃圾的地方,有多少地方的處理方法,不如你掌握的方法或者你所見過的別人的處理方法更高效更簡潔,我自己寫文章所講述的不用M和T,不用UDT, 不用交叉索引等各種技能,有沒有真的實(shí)現(xiàn)。

如果我所言為虛,直接收集證據(jù)法庭上告我好了。 6000元已經(jīng)值得立案了。

曾經(jīng)在工控論壇,有一個(gè)嘴硬的家伙不服, 我給他開出的條件,他所熟悉日系的不管三菱還是OMRON的PLC,  5萬塊的賭注,他給我一套PLC程序,我給翻譯移植到不用MT,后來那家伙慫了,不敢再應(yīng)戰(zhàn)了。
總的來說,煙臺(tái)方法的程序,就有這個(gè)底氣評價(jià)為最不垃圾的程序。 不管誰來評判, 你,我,或者任何第三方。 所以才敢賣出這樣的行業(yè)第一高價(jià)。

https://mp.weixin.qq.com/s/pLWMc5LgEkY1dAFoQ44YRw



hanjiantree
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 88 個(gè)
工控威望: 1022 點(diǎn)
下載積分: 3837 分
在線時(shí)間: 48(小時(shí))
注冊時(shí)間: 2023-04-03
最后登錄: 2024-11-16
查看hanjiantree的 主題 / 回貼
1樓  發(fā)表于: 2024-06-02 16:31
論壇不喜歡嘴炮!不喜歡純商業(yè)!君子愛財(cái)請取之有道!
brokenhope
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 184 個(gè)
工控威望: 403 點(diǎn)
下載積分: 779 分
在線時(shí)間: 541(小時(shí))
注冊時(shí)間: 2008-12-25
最后登錄: 2024-11-16
查看brokenhope的 主題 / 回貼
2樓  發(fā)表于: 2024-06-02 21:38
上回有人罵你,你找到他了嗎?
kangczg
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 31 個(gè)
工控威望: 90 點(diǎn)
下載積分: 2744 分
在線時(shí)間: 53(小時(shí))
注冊時(shí)間: 2022-02-15
最后登錄: 2024-09-04
查看kangczg的 主題 / 回貼
3樓  發(fā)表于: 2024-06-05 16:16
66666
303476245
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 29 個(gè)
工控威望: 94 點(diǎn)
下載積分: 180 分
在線時(shí)間: 5(小時(shí))
注冊時(shí)間: 2022-10-06
最后登錄: 2024-11-15
查看303476245的 主題 / 回貼
4樓  發(fā)表于: 2024-06-12 10:44
謝謝樓主的分享   學(xué)習(xí)了不少信息
打工人小工
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 16 個(gè)
工控威望: 60 點(diǎn)
下載積分: 3710 分
在線時(shí)間: 5(小時(shí))
注冊時(shí)間: 2024-01-07
最后登錄: 2024-11-17
查看打工人小工的 主題 / 回貼
5樓  發(fā)表于: 2024-06-29 09:13
謝謝樓主的分享   學(xué)習(xí)了不少信息
asasas
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 228 個(gè)
工控威望: 251 點(diǎn)
下載積分: 4353 分
在線時(shí)間: 20(小時(shí))
注冊時(shí)間: 2024-06-10
最后登錄: 2024-10-07
查看asasas的 主題 / 回貼
6樓  發(fā)表于: 2024-06-29 11:12
謝謝樓主的分享
zxblzf
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 54 個(gè)
工控威望: 63 點(diǎn)
下載積分: 321 分
在線時(shí)間: 8(小時(shí))
注冊時(shí)間: 2024-06-19
最后登錄: 2024-10-24
查看zxblzf的 主題 / 回貼
7樓  發(fā)表于: 2024-07-01 10:15
萬大師威武!
crgtom
人生三寶:家庭,事業(yè),健康。
級(jí)別: 網(wǎng)絡(luò)英雄

精華主題: 0
發(fā)帖數(shù)量: 1383 個(gè)
工控威望: 9662 點(diǎn)
下載積分: 96254 分
在線時(shí)間: 930(小時(shí))
注冊時(shí)間: 2009-09-21
最后登錄: 2024-11-16
查看crgtom的 主題 / 回貼
8樓  發(fā)表于: 2024-07-01 11:30
優(yōu)秀!
技術(shù)是有時(shí)效性的,一旦錯(cuò)過了時(shí)效性,昔日人人求之不得的技術(shù),最終會(huì)變成沒有多少作用的垃圾!
kokosu
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 105 個(gè)
工控威望: 223 點(diǎn)
下載積分: 733 分
在線時(shí)間: 282(小時(shí))
注冊時(shí)間: 2010-08-23
最后登錄: 2024-11-12
查看kokosu的 主題 / 回貼
9樓  發(fā)表于: 2024-07-15 09:24
我買了你的一本書,PLC標(biāo)準(zhǔn)化那本,真心說下我的感受,寫的不怎么樣。沒看出來標(biāo)準(zhǔn)化的核心在哪里。
本帖最近評分記錄:
  • 下載積分:+1(牛馬就是我)
    wangshenyuan
    級(jí)別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 416 個(gè)
    工控威望: 367 點(diǎn)
    下載積分: 371 分
    在線時(shí)間: 957(小時(shí))
    注冊時(shí)間: 2007-05-24
    最后登錄: 2024-11-15
    查看wangshenyuan的 主題 / 回貼
    10樓  發(fā)表于: 2024-07-15 10:13
    這人有點(diǎn)像馬保國大師!

    主站蜘蛛池模板: 日本精品人妖shemale人妖| 亚洲欧美日本在线观看| 国产一区精品| 国产精品不卡| 沉香如屑西瓜视频免费观看完整版| 久久精品麻豆国产天美传媒果冻| 成人α片| 精品在线99| 99视频福利| 成人国产精品一级毛片视频| 成人在线观看网站| 国内精品免费| 调教催眠改造np总攻| 国产欧美一区二区精品性色99| 韩国三级在线观看 完整版| 毛片一区二区三区提莫影院| 色戒完整版| 男同激情视频| 亚洲国产自| 色婷婷在线播放| 胖女性大bbbbbb| 久草青青在线| 久久综合网久久综合| 禁止的爱善良的未删减版hd| 91精品国产综合久久福利| 好大好深受不了了快进来| 99久女女精品视频在线观看| 极品主播的慰在线播放| 无敌在线视频观看免费| 亚洲区一| 色综合久久久| 果冻传媒天美传媒网址入口| 久久99re2热在线播放7| 精品在线播放| 美女沟厕撒尿全过程高清图片| 午夜性爽视频男人的天堂在线| 亚洲妇熟xxxxx妇色黄| 美女鸡| 极品妖艳许清赵丽全文免费阅读| 久久国产视频网站| 国产清纯女高中生在线观看|