毫無疑問,每一個編程的項目開發人員,都希望自己編出的是好程序,什么是好的程序?盡情地施展聰明才智,別出心裁,標新立異、奇思妙想、獨樹一幟、與眾不同就是好的程序嗎?我恐怕不能茍同。我認為好的程序應該具備如下幾點:
嚴密性
邏輯嚴謹,執行準確,絕無疏漏,這點應該是共識,這個嚴密不僅有控制進程的嚴密,還有例程調用的嚴密,指令執行的嚴密。嚴密性跟編程之前的規劃也是有關的,緊扣生產過程進程,分析控制對象的動作,仔細地規劃項目的程序結構,安排執行的順序,這都是保證嚴密的基礎。
正確性
勿庸置疑的是控制邏輯處理的正確,針對控制對象的邏輯關系選對指令。正確地使用指令是非常重要的,什么情況該用什么指令,正確理解指令執行的過程和正確設置參數,給予輸出指令的梯級條件是否正確,預掃描和后掃描的影響如何,這些都是需要考慮的,盡量避免指令或例程的陷阱。
對稱性
現場很多控制對象的活動具有對稱性,尤其是一些具有互鎖關系的動作,對應編寫的邏輯處理也應具有對稱性,例如幾個互鎖關系的同類控制動作,除了梯級條件和數據狀態不同,梯級的邏輯結構應該是一樣的,尤其是規律性的交替執行。對稱動作采用不對稱的邏輯執行,本身的嚴密性就值得懷疑,對稱也是判斷編程嚴密性的一個準則。
規律性
控制過程的動作大都具有規律,基于分析控制過程的功能方框圖,在編寫的例程中要表現出這種規律,哪些是常規的主流執行動作,哪些是重復執行動作,哪些是條件式的調用動作,哪些是設備之間的約束關系,以及生產進程的顯示,都要有脈絡清晰明了的體現。
可讀性
程序是寫給別人看的,別人很容易讀明白,自己以后也能很快讀明白,當時的得意之作,不要過一陣連自己也讀不懂了。思路要清晰,表達要清楚,這點可以參照寫文章的心得,有中心、有層次、有重點、有排比、有修飾,規律和對稱的編程自然是可讀性強的。當然,每個梯級邏輯或操作數的文字說明是必不可少的,這將幫助我們理解過程處理和編程思想,說明有時比梯級邏輯本身更重要。
標準化
對待同一個需求控制的處理,可以用指令功能解決的,不要技巧編程去解決,因為指令功能是共性的,如何設置參數,如何運行指令,都有固定的模式,大家具有共識;編程技巧有時是很個性化的,即便構思非常精巧,但別人很難把握思路,特別是后期的維護人員不容易讀懂程序。尤其PAC控制器更是提供了標準化編程的平臺,即使是新手也能編寫出規范的程序來。
以上幾點,最能體現好程序的是標準化,只有標準化的編程最容易達到嚴密、正確、對稱、規律、可讀,標準化往往是長期經驗積累的最終形式,可編程序控制器的發展歷史,就是一個沿標準化方向發展的過程,直接用于編程的指令系統表現則尤為明顯。
在PAC控制器系統中提供各種編程方式,更是多方地提供了標準化的編程平臺,這對當今項目開發所追求的短工期、高效率、低成本的目標,具有十分重大的意義,并在實踐中得到認可。
此外,標準化的編程還在項目開發者和現場維護人員之間達成了某些共識,使后者更容易解讀程序和查找故障,這在生產實際中十分有效,尤其是某些行業,本來就有一些共同遵守的規則,更是要通過標準的程序來體現。
面對同一個需求,我們可以看到二種編程處理情況:
技巧處理,可能是非常精妙的技巧,讓人拍案叫絕;也可能讓人百思不得其解,經過解釋才讓人明白;或者廣泛流傳的一種技巧,讓人們達到了共識,如自保持位邏輯的編程方法。不管是什么情況,技巧是個性化的處理,難以作為標準。
功能處理,根據指令的功能和固有的指令編程模式,讓解讀程序的人很快理解處理的目的和結果。這是通用的,所有的人都容易明白的,指令功能是共性化的處理,標準的做法,但是需要學習指令的運用方法。
編程的一般原則是,能用指令功能處理的,盡可能不要用技巧處理。
道理是顯而易見的,只有共性的東西才是可以共識的,容易共用的。畢竟一個程序項目是大家共有的,具有從開發人員移交到維護人員的延續性,要讓更多的人更容易參與項目。
我們學習編程,一定要研究指令的功能和相應的運用方法,用以編寫標準的、易讀的程序。所以,我們要對控制器指令系統中的每一條指令,給予充分了解,參數的含義、指令的動作、執行的條件,才能準確無誤地使用指令。盡可能使用指令功能處理問題,盡量避免使用技巧編程處理。
此外,養成良好的編程習慣也是至關重要的,記住某些指令的使用慣例和典型處理,這是前輩經驗流傳,良好的編程習慣可以幫助你避免落入一些程序運行的陷阱,以免在調試系統時為某些邏輯處理結果感到困惑。良好的編程習慣可以讓你對自己編寫的程序具有自信,準確堅定地排除不可能情況,不會盲目質疑而耽誤了調試的時間。良好的編程習慣是經歷了考驗的工作方式,保持它可以減少錯誤的產生,加快編程速度,提高工作效率。
編程序就跟寫文章一樣,你既可以寫成一篇隨心所欲的散文,也可以寫成一篇思維慎密的論文。讀散文每個人都可以有不同的理解和感受,甚至得出不同的結論;論文卻可以讓人準確地理解作者所要表達的內容,其論點明確、邏輯清晰、層次分明,結構嚴謹,論述清楚。把程序編得像一篇論文,應該就是編寫好的程序的基本要求吧。
編程序跟寫文章有許多相似之處。
寫文章,有中心思想,段落大意,在闡明一件事情時,你會圍繞這件事情在一個文章段落里進行描述;
編程序,有核心控制,運行進程,面對一個控制對象,在一段梯級邏輯中,編輯相關的邏輯關系和工作狀態處理。
寫文章,你掌握的詞匯越多,遣詞造句的能力就越強,表述事情就越清晰準確;
編程序,你對指令的功能理解得越清楚正確,運用指令的能力就越強,在不同情況下能準確地選擇適合指令。
寫文章,描述相似事物類比的排比句,讓人易讀且更容易看清事物之間的聯系,并有閱讀美感;
編程序,工控對象很多情況下也具有對稱性,如果你編寫的程序邏輯關系上是對稱性的,同樣有閱讀美感,并讓人感到邏輯上值得信賴。
寫文章,有開頭和結尾,概述式的開頭和總結式的結尾前后呼應;
編程序,有初始化的處理和結束的處理,數據的進入和數據的送出信息流向清楚。
寫文章,時不時的引用成語熟句,言簡意賅,耐人尋味;
編程序,按需求引用專門的指令,調用特殊宏匯集,梯級簡單,處理隱藏。
在學習編程時,你不妨想象你在學習寫文章,就像中小學時你的語文老師教給你的那樣,先從造句開始,然后學習寫段落,最后完成一篇文章,并在寫作過程中積累詞匯和學習表述,提高寫作能力。我們的編程訓練也應循序漸進,從基本的指令開始,編寫簡單的梯級邏輯,然后學習圍繞一個控制對象編寫一段梯級邏輯的處理,最后完成一個小的項目,并在編程過程中,熟悉指令和訓練思維,提高編程能力。
審核編輯 :李倩
-
plc
+關注
關注
5013文章
13317瀏覽量
463924 -
編程
+關注
關注
88文章
3623瀏覽量
93798 -
程序
+關注
關注
117文章
3789瀏覽量
81140
原文標題:從業數十年經驗之談:如何編寫優質的PLC程序?
文章出處:【微信號:gkongbbs,微信公眾號:工控論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論