關於Python用於工控自動化的問題?
我是一名工控自動化工程師,主要是PLC編程還有出電路圖,現在感覺自己還需要一些上位機的知識,我以前學單片機的時候搞過VB,也寫了很多趣味的小項目,在原理技術上我用VS系列做我沒問題,欠缺的是設計經驗,但大家知道微軟的VS系列全家桶很繁瑣的,一般筆記本跑起來很吃力,我這幾天用Python+wxpython+py2exe寫出了一個編譯為EXE的窗口文件,感覺可行,而且我也搜索了Python是有相關的串口控制項的,而且代碼精簡,不像VS系列初始化就是一大堆,關鍵是界面清爽阿,作為一個不會PS的人VS做出來的界面逼格很Low,我就想如果中小型項目(只通訊PLC或單片機,擴展觸摸屏的功能)用Python來做是不是效率很高,從原理上來說這些項目需要以下功能(1.清爽的界面,大氣的按鈕以及文本數字輸入輸出 2.穩定的串口通訊 3.與資料庫連接功能和輸出報表 4.由於中小型項目中上位機只是一個監控作用,效率不是第一位,PLC畢竟不是擺設 )。請問各路大神Python+其他控制項能實現我的要求嗎??
python肯定是可以實現題主想要的功能。不過python到底是腳本語言,網路和字元串匹配處理是它的強項,底層操作我不知道效率和功能到底幾何。
如果想提高工作效率,也追求界面的友好性,我還是建議題主學著使用labview或者組態王這樣專門為工控設計的工具可以的
做過一個項目,現場在沙漠里去一次很不容易,原型機又經常需要採集數據和調整參數。現場沒有互聯網沒有3g信號只有gsm網路
為了避免自己經常往這麼艱苦的地方跑,於是用python做了一個遠程監控系統。原理是用現場的控制器採集數據,按照我自己定的協議打包成簡訊,通過一個連在串口上gsm模塊發出來。另一邊我用python寫了一個基於django的動態網站,用pyserial從串口讀同樣一個簡訊模塊接收到的數據。在view層解析拼裝然後處理後保存在一個簡單的sqllite資料庫里,並生成相應的圖標呈現在網頁上。控制也是類似,在template層頁面上的操作轉化成指令,指令通過簡訊發出去。此外web服務里加入了一些自動邏輯,對異常狀態自動作出響應,通過簡訊和郵件通知相關的工程師。
很簡單但是也花了些心思,尤其是在通信上,監測端從機器發出的數據量很大要通過100多條簡訊才能發完。怎麼拆分,怎麼按順序拼裝,怎麼判斷丟包,怎麼請求重傳。控制端因為設備對可靠性要求很高,為了防止誤動作設計了消息的校驗。回頭想想其實是自己開發了一套傳輸層協議。很有意思。
這套系統幫了我們大忙,因為正好應了I4.0的熱潮公司高層也很喜歡,常被拿來展示,也作為一個例子向他們證明了開發團隊在這個領域的潛力。現在我已經離開的公司,但是遠程監控已經被作為部門的一個重要發展方向。不過現在招了專業的軟體工程師,已經不再是python了。
說了這麼多,我想說的是題主的想法當然可行,而且有很多可能性。python本身非常適合作為prototype開發的平台,不需要自身軟體人員就能快速實現你的構想。不過對正式量產系統,python因為在工業領域應用的較少,缺乏針對工業系統的一系列保證可靠性可維護性的工具方法和經驗。所以最終可能並不會成為正式的產品級代碼載體。
現在我在新公司也重新撿起了python,用numpy, sympy, pydy, matplotlib搭建一個多體動力學計算模擬系統用於系統設計和驗證。公司有一套基於dymola, matlab的非常完善的體系,但不對我們本地團隊開放。有了這套python替代系統,一方面可以幫助自己已經團隊快速成長,儘早掌握核心技術,另一方面未來也可以作為要求總部開放更多技術的籌碼。
界面用Pyqt,串口通訊用pyserial,做出來肯定是沒問題。
Github有半成品,不過清爽的界面,大氣的按鈕這個需要一定的美工跟設計功底。你這可以
python膠水語言,可以和C/C++很好的結合在一起,我覺得還是有門的。
| Python.org
題主,我和您是一個行業的,自動化專業畢業,目前也在學習python,但對這強大的語言不了解在工業控制方面的應用,如果題主可以分享下心得,小弟感激不盡。
推薦閱讀:
※串列匯流排、並行匯流排、現場匯流排,工業乙太網求科普?
※有哪些與控制、機器人等相關的 quotes?
※作為有志於投身於智能機器人領域的學生,學習方嚮應該選擇機器人的控制,還是人工智慧?
※自動化本科畢業目前在國企製造業 想在嵌入式方向發展 該怎麼辦?
※有哪些有關控制、機器人等工程、理論或演算法的忠告?
TAG:Python | 自動化 | 電氣工程及其自動化專業 | 電氣工程 | 工控 |