如何編寫優質的PLC/PAC程序?首先來看看我們收集到從業者是怎麼說的:
A:編程這個東西隻可意味,不可言傳。總體感覺開始偏向計算機語言編程的風格,有異曲同工之妙。從标準化到模塊化,再到面對對象,編程風格不斷變化。是因為控制複雜程度不斷提前,項目越來越大,越需要清晰的思路。
B:自動化控制要求從業人員,豐富的理論知識和實際維修經驗。編程思維缜密是從日積月累中來,要多學人家的經驗結合自己的實際情況,勤學苦練。要有锲而不舍的精神!向老師學習,希望多寫更多好文章,讓我們學到更多懂得更多。
C:plc編程不僅僅需要對工藝流程很了解,還需要很清晰的邏輯思維和結構思維,我很認同通用程序用标準化的編程語言,核心功能用特殊指令或封裝成功能塊,做到簡潔明了又有一定的保密性
D:寫程序就應該有足夠的詞彙積累,能用指令處理就不要用技巧處理
E:我經常就是先把這套設備得控制流程了解清楚,再根據客戶需要的功能分步驟編寫,手動,自動分開編寫,自動相同的部分做在子程序裡可以重複調用。調試有問題的時候找到對應動作的區域修改就行,不影響整個程序的其他動作。
F: plc編程不僅要對工藝流程、工藝要求有充份的了解,還要進行程序标準化;可編程控制器(PLC)技術廣泛應用于各種工業控制領域,它具有流程控制、數據采集、設備控制與輸出、工程報表、數據與曲線等輸出強大功能.這些标準功能使用能做到标準化程序并封裝成各功能塊,這樣就便于程序調用和調試,程序BUG會更少。
……
針對這個話題,我們邀請大神鄧李老師來給大家談談他的總結。鄧李老師是工業自動化專業,從事專業課教學十二年;後進入羅克韋爾自動化,任培訓師和現場服務工程師十八年。具有豐富教學經驗和現場工作經驗,已出版專業書籍三本(《PAC編程基本教程》、《集成架構中型系統》、《ControlLogix系統實用手冊》),在行業内頗有影響。滿滿都是幹貨,希望對大家有用。
毫無疑問,每一個編程的項目開發人員,都希望自己編出的是好程序,什麼是好的程序?盡情地施展聰明才智,别出心裁,标新立異、奇思妙想、獨樹一幟、與衆不同就是好的程序嗎?我恐怕不能苟同。我認為好的程序應該具備如下幾點:
嚴密性
邏輯嚴謹,執行準确,絕無疏漏,這點應該是共識,這個嚴密不僅有控制進程的嚴密,還有例程調用的嚴密,指令執行的嚴密。嚴密性跟編程之前的規劃也是有關的,緊扣生産過程進程,分析控制對象的動作,仔細地規劃項目的程序結構,安排執行的順序,這都是保證嚴密的基礎。
正确性
勿庸置疑的是控制邏輯處理的正确,針對控制對象的邏輯關系選對指令。正确地使用指令是非常重要的,什麼情況該用什麼指令,正确理解指令執行的過程和正确設置參數,給予輸出指令的梯級條件是否正确,預掃描和後掃描的影響如何,這些都是需要考慮的,盡量避免指令或例程的陷阱。
對稱性
現場很多控制對象的活動具有對稱性,尤其是一些具有互鎖關系的動作,對應編寫的邏輯處理也應具有對稱性,例如幾個互鎖關系的同類控制動作,除了梯級條件和數據狀态不同,梯級的邏輯結構應該是一樣的,尤其是規律性的交替執行。對稱動作采用不對稱的邏輯執行,本身的嚴密性就值得懷疑,對稱也是判斷編程嚴密性的一個準則。
規律性
控制過程的動作大都具有規律,基于分析控制過程的功能方框圖,在編寫的例程中要表現出這種規律,哪些是常規的主流執行動作,哪些是重複執行動作,哪些是條件式的調用動作,哪些是設備之間的約束關系,以及生産進程的顯示,都要有脈絡清晰明了的體現。
可讀性
程序是寫給别人看的,别人很容易讀明白,自己以後也能很快讀明白,當時的得意之作,不要過一陣連自己也讀不懂了。思路要清晰,表達要清楚,這點可以參照寫文章的心得,有中心、有層次、有重點、有排比、有修飾,規律和對稱的編程自然是可讀性強的。當然,每個梯級邏輯或操作數的文字說明是必不可少的,這将幫助我們理解過程處理和編程思想,說明有時比梯級邏輯本身更重要。
标準化
對待同一個需求控制的處理,可以用指令功能解決的,不要技巧編程去解決,因為指令功能是共性的,如何設置參數,如何運行指令,都有固定的模式,大家具有共識;編程技巧有時是很個性化的,即便構思非常精巧,但别人很難把握思路,特别是後期的維護人員不容易讀懂程序。尤其PAC控制器更是提供了标準化編程的平台,即使是新手也能編寫出規範的程序來。
以上幾點,最能體現好程序的是标準化,隻有标準化的編程最容易達到嚴密、正确、對稱、規律、可讀,标準化往往是長期經驗積累的最終形式,可編程序控制器的發展曆史,就是一個沿标準化方向發展的過程,直接用于編程的指令系統表現則尤為明顯。
在PAC控制器系統中提供各種編程方式,更是多方地提供了标準化的編程平台,這對當今項目開發所追求的短工期、高效率、低成本的目标,具有十分重大的意義,并在實踐中得到認可。
此外,标準化的編程還在項目開發者和現場維護人員之間達成了某些共識,使後者更容易解讀程序和查找故障,這在生産實際中十分有效,尤其是某些行業,本來就有一些共同遵守的規則,更是要通過标準的程序來體現。
(圖源:RA官網)
面對同一個需求,我們可以看到二種編程處理情況:
技巧處理,可能是非常精妙的技巧,讓人拍案叫絕;也可能讓人百思不得其解,經過解釋才讓人明白;或者廣泛流傳的一種技巧,讓人們達到了共識,如自保持位邏輯的編程方法。不管是什麼情況,技巧是個性化的處理,難以作為标準。
功能處理,根據指令的功能和固有的指令編程模式,讓解讀程序的人很快理解處理的目的和結果。這是通用的,所有的人都容易明白的,指令功能是共性化的處理,标準的做法,但是需要學習指令的運用方法。
編程的一般原則是,能用指令功能處理的,盡可能不要用技巧處理。
道理是顯而易見的,隻有共性的東西才是可以共識的,容易共用的。畢竟一個程序項目是大家共有的,具有從開發人員移交到維護人員的延續性,要讓更多的人更容易參與項目。
我們學習編程,一定要研究指令的功能和相應的運用方法,用以編寫标準的、易讀的程序。所以,我們要對控制器指令系統中的每一條指令,給予充分了解,參數的含義、指令的動作、執行的條件,才能準确無誤地使用指令。盡可能使用指令功能處理問題,盡量避免使用技巧編程處理。
此外,養成良好的編程習慣也是至關重要的,記住某些指令的使用慣例和典型處理,這是前輩經驗流傳,良好的編程習慣可以幫助你避免落入一些程序運行的陷阱,以免在調試系統時為某些邏輯處理結果感到困惑。良好的編程習慣可以讓你對自己編寫的程序具有自信,準确堅定地排除不可能情況,不會盲目質疑而耽誤了調試的時間。良好的編程習慣是經曆了考驗的工作方式,保持它可以減少錯誤的産生,加快編程速度,提高工作效率。
圖源:互聯網
編程序就跟寫文章一樣,你既可以寫成一篇随心所欲的散文,也可以寫成一篇思維慎密的論文。讀散文每個人都可以有不同的理解和感受,甚至得出不同的結論;論文卻可以讓人準确地理解作者所要表達的内容,其論點明确、邏輯清晰、層次分明,結構嚴謹,論述清楚。把程序編得像一篇論文,應該就是編寫好的程序的基本要求吧。
編程序跟寫文章有許多相似之處。
在學習編程時,你不妨想象你在學習寫文章,就像中小學時你的語文老師教給你的那樣,先從造句開始,然後學習寫段落,最後完成一篇文章,并在寫作過程中積累詞彙和學習表述,提高寫作能力。我們的編程訓練也應循序漸進,從基本的指令開始,編寫簡單的梯級邏輯,然後學習圍繞一個控制對象編寫一段梯級邏輯的處理,最後完成一個小的項目,并在編程過程中,熟悉指令和訓練思維,提高編程能力。
本文由鄧李老師為《工控百家談》《工控參考》撰寫,轉載請聯系我們授權。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!