目前工業控制大多還是用PLC,如工程機械行業,為何不用嵌入式C需要開發,如汽車行業,按理說車規級的控制器在安全級別要高於工業控制級別,是因為價格或是性能方面的原因?


其實PLC就是單片機/嵌入式的具體應用。不過,PLC與單片機/嵌入式有本質的不同,這就是EMC電磁騷擾。

每年到了畢業季,學校就會把學生們做的各種畢業設計拿出來亮相,各種各樣的應用,琳琅滿目。有一次,一位學生問我,說他設計的某種自控系統能用在工業控制中嗎?我問他:工業控制中除了要滿足控制要求外,最重要的是什麼?這位學生吱吱嗚嗚地說不出來。

答案說起來很簡單,就是可靠性。

為了可靠性,就必須提高電子設備和電氣設備的抗幹擾能力。抗幹擾能力包括兩個方面,一個是自身抵禦電磁騷擾的能力要足夠,另一個是自身不產生幹擾去騷擾其它設備。這就是EMC。

我們看百度百科是怎麼說的:

圖1:百度百科對EMC測試的說明

不管是哪一款PLC產品,它的抗幹擾能力都十分強。

PLC的輸入輸出介面一般都有隔離措施;PLC的程序是逐條執行,而且執行完一條不重複,就執行下一條。如此一來,程序不會死鎖;EMC的抗騷擾能力從1級到4級,PLC的EMC抗騷擾能力是3級。

我們看看某款PLC的功能參數:

PLC參數表之一

PLC參數表之二

看了這些PLC的參數表,且不說單片機/嵌入式還需要設計電路板,它們的綜合性能如何與PLC相比?更何況PLC配有多種開關量、模擬量等輸入輸出擴展模塊,以及通信擴展模塊。

這只是中低檔PLC,但它的功能完全符合和滿足工廠企業中的控制要求。

另外,PLC的編程語言相對簡單,甚至還有模塊化的編程語言,見下圖:

圖2:用PLC的模塊化編程語言寫成的RS485/MODBUS-RTU通信程序段

從圖2中我們能看到,PLC的模塊化編程語言十分方便,把參數直接填寫在模塊的輸入參量中即可。可見PLC編程語言的方便程度絕不是單片機/嵌入式能夠媲美的。

不過,PLC有時也會存在問題。

我曾經用過一款PLC,在編寫工程程序時就發現存在問題,但供應商說已經銷售了幾十萬臺,不會有問題。就這樣,把這款PLC用在某石化企業中,結果出事了,系統發生死機,造成石化廠局部停電事故。事後,我們做了調查,這款PLC才剛剛入市,我用的PLC是全世界第一套!這家PLC生產商從此被公司採購部打入供貨黑名單。

第二次,是另一款PLC,用在某地鐵站的變電所中。我們用這臺PLC作為通信管理機,同時又用作邏輯控制,結果這臺PLC因為內存分配的原因,發生系統重啟,造成地鐵站失電近2分鐘,站內一片漆黑,好在沒出事。事後,我們查了PLC的深層核心參數,發現這款PLC是生產廠家的升級產品,又是一個不可靠的產品。

這第二次事故倒是給我們一個啟示:對於任何一款PLC來說,不要把邏輯控制與通信管理控制混在一起,而是要完全分開,採用兩套PLC來獨立完成工作。

我們再看單片機/嵌入式,當我們把電路研發出來,並且調試好電路板的外圍電路和程序,讓它能夠完美地實現預期的功能。但我們敢不敢把這款產品用在工業控制中?答案是顯然的,我們絕不能把這種沒經過嚴格測試的控制裝置用在工控中。

可靠性,在工控中和工業生產中是最重要的。我們必須也只能使用可靠性高的產品,絕不能使用剛剛開發出來的單片機/嵌入式的測試產品。


客人上門要盤紅燒肉,店裡沒肉了。

廚師叫小二去搞點豬肉,小二懵了,等下我先去鄉下農家拉頭豬,再去李屠夫家學學殺豬,可能要個半個月吧。

廚子拍拍他腦子,瓜貨,李屠夫家有殺好的上好豬肉,你順便還可以叫他給你切個塊,回來下鍋就成了。

所以為什麼要用PLC而不用嵌入式。


工業控制中用PLC和嵌入式系統,如果說大部分都是PLC,那也不準確。

用嵌入式的場合

如果仔細留意的話,如果是批量生產的標準工業產品,並且裡邊需要有一些複雜的運算的話,通常會用到嵌入式系統。比如變頻器,標準工業機械手,一些專機設備等等。

有些產品是批量生產的,最開始採用嵌入式系統來專項研發時,需要投入一定的財力和人力去做研究,調試等等。一旦研發成功後,期初的研發費用會直接分攤到後期批量生產的每個單獨產品中,這樣會使整個產品的研發分攤費用極大的降低。如果只是批量生產設備,應該說嵌入式要比PLC的硬體成本便宜不少。

另外,很多場景中,用PLC是不理想的,比如有些產品裏需要大量複雜的運算,比如變頻器內的大量的電機拖動和控制演算法的計算,再比如現在自動化搬運機器人的SLAM導航演算法等等,也只適合在嵌入式高性能的運算器中實現,PLC是無法運算這麼複雜的演算法的。

再者,有些場合下也無法使用PLC,比如變頻器或者一個精巧的工業設備,雖然PLC能夠實現,但是體積是在哪擺著呢,至少需要一個穩壓電源模塊吧,至少需要幾個輸入輸出模塊吧,至少需要1個通訊模塊吧,這麼多的東西如果塞到一個標準小巧的工業設備裏,外形上看著就不合理。

再來,就是一款標準的工業產品,如果只是PLC來控制的,那通常情況下同類產品的競爭對手非常多,如果是嵌入式系統做的,相對來說,競爭對手要少一些。也是側面說明,PLC做的控制系統很容易被複制,起碼打開控制櫃就知道你是怎麼做的控制系統的了,幾個輸入輸出模塊,外部都接到什麼感測器上等等。而嵌入式系統要設計人員自己設計外圍集成電路,相對而言保護性做的要好一些。

一個附加值高的工業設備,如果只是PLC控制實現的,如果競爭對手少,那一定不是他們的控制系統做的與別人有多大的差距,優勢一定是在機械結構方面,或者專利保護方面,或者對工藝瞭解方面。而非要採用嵌入式系統的控制系統,往往本身的控制技術含量較高,演算法較為複雜,嵌入式系統包含內嵌的程序就很有價值,就有一定的技術壁壘。

用工業PLC的場合

現實情況中的各種工業設備要投入到具體項目應用中來試用,而說到項目那就是千差萬別了。做工業項目最重要的是什麼要求,相信搞工控的人一定知道,那就是「穩定」。

大家可以看看,但凡是做PLC的公司,肯定都沒有小公司,他們的PLC產品一定是非常暢銷的,而且在各個行業各個領域都會被應用到,案例無計其數,PLC可以出現在輸變電配電網路控制系統中,可以出現自動立體倉庫的堆垛機裏,可以出現在石化行業的某個設備裏,也可以出現在鋼鐵行業裏 的軋鋼控制系統裏。 而這一個個的項目就已經幫助其他的用戶驗證過了這個PLC的穩定性有多好 。

同時PLC問了促進穩定性,也專門設計了一個個模塊,某個模塊出了問題,只需要換個新的就可以,系統可以繼續試用。更換速度也非常快。

試想一下,如果某個公司中標了要做一個項目,工期是100天,如果A組採用嵌入式的方式來開發控制系統的話,那他們在研究設計畫電路板的時候,採用PLC方式的B組已經開始往買回來的PLC模塊裏寫控制梯形圖了。而這還沒算做嵌入式系統後,採用幹什麼方式去控制輸出和通過什麼耦合電路去採集現場的輸入,而這些對於PLC來說,什麼都不需要做,他們需要做的只是到PLC廠家那裡根據需要選擇適合的模塊插入到自己的櫃子裏就可以了。

另外,如果工期足夠長,用嵌入式系統終於以高科技的姿態開發出來,下次再中標項目是完全不一樣的工藝佈置了,那這次的嵌入式系統也要高姿態的作廢了,因為沒有通用性。

再者即使嵌入式系統開發出來了,那這個系統是第一次問世,在之後的系統裏誰能保證不出問題。一旦出了問題怎麼弄,把控制系統徹底換掉?如果設計這個嵌入系統的設計人員已經換工作了,那又該怎麼辦?而以上說的PLC只需要做的的是再買一個模塊替換掉之前的。


總之,採用什麼PLC和嵌入式,都有各自適合的場景,不能一概而論。


整車廠的自動化製造系統也都是用的PLC,以德係為例,基本都採用西門子的s7-300系列,使用profinet協議和ET200S做分散式系統。因為是使用工業乙太網了,所以基本要用帶網口的PLC(沒錯,就是cpu型號裡帶PN的)

要在工業場合使用,需要滿足那幾點呢?

1.組態佈局方便,工業現場有很多設備,變頻器,閥島,電機,感測器,交換機,HMI觸屏等,要通過一種協議把這些設備連接在一起,需要一個平臺來設計組態和編程。那麼,已經有現成的profinet協議,配合step7+wincc/wincc flexible或者說是博圖平臺,把廠商提供的gsd文件導入平臺,就可以在平臺上方便得組態和編程。這點上生態環境決定了只能用PLC,咱們現在用網線用得好好的,RS485/422基礎下的現場匯流排說實話都不想用了。

2.不能出錯,在汽車製造行業有個東西叫做JPH,你是一小時能下線的車子數量,每天的車子數量都是有生產指標的,因此控制類設備一定要保證可靠不出錯,而且是要求在工業環境下,總裝還好,車身那邊一堆焊槍和粉塵。流水線在滿產的時候一天可以跑20多個小時,而且運行個十餘年是需要的。需要保證控制類設備跑十餘年不壞掉,只能選擇PLC了。

3.維修方便。現場的維修工基本都是大專學歷,他們更偏向於電工而不是程序員,因此c語言這種就免談了。不過現在西門子系列的PLC也支持SCL這種類pascal的語言,用起來也跟c比較像,實際上在現實的編程中LAD,FBD,STL,SCL都是混用的,每種語言有適合的具體場景。西門子在這點上做的是不錯的,UDT,數據塊,功能塊的形參和實參傳遞,模塊化的概念非常好。對於電工來講梯形圖類似於繼電器原理,看起來會比較方便。step7和博圖自帶監控功能,當設備出現了問題時可以方便得實時查看監控一些過程變數,PLC模塊上也會有對應的指示燈,同時在HMI裏也會很多報警信息。一般來講都是現場感測器,安全繼電器等裝置檢測到錯誤後發給PLC,PLC中的報警點位被HMI讀取後在觸摸屏上顯示具體的故障信息,對於維修人員而言,反著去找就是了。同時軟體也能一鍵把PLC程序下載到pc端,做日常程序備份方便。

其實本質上來講,PLC,變頻器,閥島一類的內部都有嵌入式的東西,把他們的外殼拆下來,裡面都是一塊塊板子。包括現在也有很多插在工控機上的PLC板卡。從編程和組態上來講,他們都是嵌入式高度封裝後的結果,profinet的底層必然是涉及到通信,電氣,編程等眾多領域的技術,但對於我們而言,只需要在軟體平臺裏設計組態,分配每個設備的ip地址即可。對於工業控制而言,操作能更傻就更傻,這樣纔有更多的時間花在工藝上。


行業人員水平沒這麼高,工業領域很難抓到這麼多搞嵌入式的,而且有很多非標產品,嵌入式老改不行,還是得大量封裝,硬體要模塊化,並不是簡單一個嵌入式就搞得定的。所以這些廠家利用自己搞嵌入式的高水平封裝成模塊給我們用,並且搞了開發工具,簡化開發語言為梯形圖和ST(SCL)語言,你就想,這個行業的人大多隻會梯形圖,沒PLC的話要搞點東西多難。

穩定安全對工業來說極其重要,自己開發的嵌入式需要大量的調試和測試,軟體穩定了硬體還不一定穩定,這些廠商就是搞工業控制的,必然要把PLC做穩定了,斷電後變數的值還能保留呢。

組態和上位機開發難度也同時降低,廠商對通信做了二次封裝,讓組態軟體適配上後,就簡單的變成地址變數讀取,讓組態軟體開發界面也簡單。

組態軟體擺脫起來還容易點,只要能通信,自己寫軟體也可以。 但控制器改嵌入式那就難了。

PLC相當於嵌入式做的東西封裝,通用化,模塊化,軟體配套體系,工業級安全穩定。


推薦閱讀:
相關文章