PLC誕生已經很多年了,隨著技術的進步,必須打破傳統的PLC編程思維方式,才能順應未來的控制發展趨勢。電氣工程師必須擴展編程技能,掌握更多的編程技巧,才不會被人工智能取代。
當前工程師還在使用每個PLC廠家提供的編程軟件進行PLC編程,這就導致一旦更換PLC品牌就抓瞎,甚至有的工程師只具備某個品牌PLC的應用能力,被PLC品牌束縛住,導致就職競爭力底下。很多人曾經夢想有一套編程軟件可以對所有品牌PLC或者說大多數品牌PLC都能夠編寫程序,并且可以輕松地監控程序和排除故障,這樣就不需要因為PLC品牌的不同而花費大量的學習時間以及不同廠家網絡接口不同帶來的連接設置問題。
說到PLC編程不得不提梯形圖,梯形圖對于初學者、維護人員和電工來說是一種簡單的編程語言,但是如果控制稍微復雜的設備由它編寫的程序并不容易閱讀和理解。梯形圖編寫大型PLC程序更為吃力,這樣看容易學習的東西并不是最好的工具,往往是梯形圖對于編程者自己以外的其他人來說很難理解。
要想成為更有競爭力的工程師,必須拋棄梯形圖這種簡單的編程語言,結構化文本就是一種更好的PLC編程語言選擇。結構化文本是PLCOpen在IEC61131-3中定義的一種PLC編程語言,不同于基于圖形的梯形圖編程語言,它是基于文本的。
通過使用基于文本的PLC編程語言,PLC程序將占用更小的空間,并且流程和邏輯將更易于閱讀和理解。還有更好的選擇就是,在PLC編程中使用幾種語言的組合,發揮各類語言的各自的優勢,這樣做就會更為優秀,當然也更難,很多人熟悉一種語言之后往往不愿意改變,這也是很多熟悉梯形圖的工程師無法脫離梯形圖的根本原因。
大家都非常熟悉計算機的高級編程語言,比如:Python和C,看到它們,可能就會覺得的結構化文本很熟悉。結構化文本的語法被開發成看起來像具有循環、變量、條件和運算符的高級編程語言的語法。下面舉個結構化文本編寫的程序例子:
PROGRAM ST example
VAR
x : BOOL;
END_VAR
x := TRUE;
REPEAT
x := FALSE;
UNTIL x := FALSE;
END_REPEAT;
END_PROGRAM;
上面的代碼看起來熟悉吧?
學習結構化文本語言編程第一件事是結構化文本的結構和語法,了解結構后,就會了解程序的流程是如何運行的。從上面的例子,就可以看出整個程序以PROGRAM開始,以END_PROGRAM結束,介于兩者中間的就是結構化文本編寫的PLC程序。
跟高級語言最大的區別就是:END_PROGRAM不是程序完全的結束,而是當PLC到達END_PROGRAM時,PLC掃描周期將重新開始,這段程序將自行重復運行。PLC里面的任何語言編寫的程序都一樣,它會一遍又一遍地運行,有點類似單片機C語言中的無限循環。
用結構化文本編寫的PLC程序的流程控制與梯形圖邏輯相同:一次執行一行。另外,用結構化文本編寫的PLC程序,都需要編譯成PLC可以理解的語言,才能上傳到PLC運行。因此使用結構化文本編程必須要有編譯器來把結構化文本轉換成PLC執行的機器代碼。
關于結構化文本編程,不得不提Beckhoff。Beckhoff的編程軟件與IEC61131-3所有的PLC編程語言完全兼容,特別適合組合編程。Beckhoff的編程系統還自帶模擬器,無需購買PLC,直接可以在PC內模擬出PLC運行程序,這種模式也被稱為“軟PLC”。Beckhoff最新的TwinCat 3還集成了微軟的Visual Studio編程包,把高級語言的優勢發揮的更具體。
Beckhoff可能離我們有點距離,不過Codesys聽說過吧,它是用于IEC61131-3編程的開源軟件環境,開源就意味著免費,非常適合大家尤其是學生學習。
學習一門新的編程語言可能是一個相當大的挑戰,對于下定決心的學習者來說,要牢記幾條非常基本的學習準則:
1、學習需要時間(剛開始要花時間學習語言的語法、函數、數據類型……)
2、盡可能多地練習(盡量用結構化文本編寫盡可能多的PLC程序)
3、從失敗中吸取教訓(每次犯錯,都不要氣餒,只有從更多的失敗中走出來才能成為更好的電氣工程師)
4、持續學習(不要停止學習,不斷在網絡上尋找教程和其他相關學習資料)
5、與其他工程師交流(最直接的就是跟身邊的工程師交流編程心得,可以了解別人不一樣的思路)
-
plc
+關注
關注
5013文章
13339瀏覽量
464322 -
編程語言
+關注
關注
10文章
1947瀏覽量
34839 -
人工智能
+關注
關注
1792文章
47473瀏覽量
239142
原文標題:PLC編程技能的擴展
文章出處:【微信號:PLC與自控設備,微信公眾號:PLC與自控設備】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論