一文告訴你PLC與計算機的本質區別在哪裡!

你真的瞭解PLC嗎?你知道PLC與計算機的本質區別嗎?我來簡單解釋一下吧。

第一:PLC可以工作在極其惡劣的電磁環境中

如果我們把計算機直接放到PLC工作的環境中,無需太久,這些計算機將死機甚至燒燬。

在ABB的早期工程中,我們就是把工業控制計算機直接放在變電站開關櫃中,用來實施測控和數據處理。然而,用不了多久,電源故障和硬盤故障,還有輸入輸出接口的故障就接踵而來。直到我們用PLC替換下這些工控機,事情才算完。

這叫做抵禦電磁騷擾EMC的能力,PLC可達三級甚至四級,而計算機能達到二級就算很不錯了。

抵禦EMC電磁騷擾,會有許多措施。例如隔離技術、接地技術等等都是。

第二:PLC的程序是一行行順序執行的,不會陷入死循環

我們在編寫計算機程序時,經常會遇見循環。如果一個循環子程序設計不恰當,或者條件引起了程序返回,有可能進入到死循環中,系統當然就死機了。

然而,PLC的程序是一條接一條順序執行的,只有到了程序末尾才會回頭。在程序中任何部位,若條件滿足,可以實現跳轉,但程序還是一條接一條順序執行。

如此一來,PLC幾乎不會死機。這也是PLC區別於普通計算機的根本特性。

因此,我們會發現PLC的可靠性極高,這是普通計算機完全不能比擬的。

第三:冗餘配置

所謂冗餘配置,就是在控制過程中存在主機和從機,它們依靠握手線關聯,並共享資源和信息。

如果是計算機,當主機出現問題時,切換到從機的時間較長。但對於PLC,我們可以在機架上安排2套CPU作為主從控制,它們之間的轉換僅幾個時鐘週期即可完成。

例如我們的控制對象是汽輪機,它的轉子在高速旋轉。我們不妨假定轉子的轉速就是工頻週期,也即每分鐘3000轉。如果我們對汽輪機實施DCS監控,在現場層面我們只能選用帶冗餘配套的PLC,絕不可能使用計算機。一旦PLC的主機發生故障,它立刻就轉入從機控制,對於受控對象來說幾乎感覺不到,但計算機就未必可以實現類似功能了。

事實上,帶冗餘配套的PLC系統就屬於規模較大的PLC了。

第四:PLC的程序特點

PLC的程序規模都不大,一般才幾千字節,能上萬字節就算很大的程序了。

PLC有許多輸入輸出接口,以及各種類型的變量,這些都需要專門設置地址,以便在程序中使用。

我們看下圖,此圖是用PLC國際通用標準IEC61131-3模塊化編程語言寫成的:

一文告訴你PLC與計算機的本質區別在哪裡!

圖1:某地鐵配電控制系統PLC的輸入接口參數定義程序和延遲判誤程序

在圖1中,我們在左側看到了許多輸入參量,它們的末尾都有_s的標識,這些就是開關量輸入參數,它們不但有地址,還有名稱。這是必須的,否則程序無法辨識和使用它們。

我們由圖1的程序看到,這種編程方法比所謂的C語言方便得多。事實上,每一個功能塊就相當於一段C語言。例如TON模塊,它是延遲模塊,如果用C語言,怎麼也要若干語句行,但這裡僅僅只是一個程序模塊而已。何者更方便一看便知。

我們再看下圖:

一文告訴你PLC與計算機的本質區別在哪裡!

圖2:PLC的16位字解析為單個開關量的程序段

圖2中,程序開頭的AND(與邏輯模塊)實施程序轉移。當條件滿足時,AND啟動子程序入口。

在圖2中,我們看到了UNPACK16模塊,它的任務是把一個16位的字解析為16個開關量,供下一步程序使用。

我們很容易想到,這個UNPACK16模塊若用C語言來寫,又會有何種形式?何者更方便?

我們看下圖:

一文告訴你PLC與計算機的本質區別在哪裡!

圖3:數據交換的RS485接口定義和MODBUS通信管理

圖3是PLC對系統中各種數據交換的定義、數據採集和管理。圖中的一個個模塊就是處理MODBUS通信協議數據的,同時還實現數據採集輪巡操作。

這些模塊用C語言該如何寫?是不是會麻煩很多?

我們看到,PLC程序的便捷性是C語言無法比擬的。

第五:PLC的工作範圍

PLC的內存不大,儘管它的可靠性很高,但PLC不能用於較大的計算。我曾經設計過一個PLC程序,用於浮點數的乘法,麻煩得很,最後不得不使用模塊配合查表來解決問題。

PLC的內部其實就是單片機,只不過整個PLC的單片機系統經過了嚴格的EMC測試,而操作系統和編程系統也進行了優化,方便我們這些編程者使用。

既然PLC只是一臺單片機系統,可想而知它與計算機不在同一個技術水平上。計算機能夠完成的工作,哪怕只是一篇WORD文檔的寫作,用PLC絕不可能完成。但PLC能夠輕鬆實現的控制功能,用計算機雖然也能勉強實現,但效果極差,且可靠性極低,尺寸也巨大。

如此看來,PLC與計算機的工作特性不一樣,適用的工作對象當然也不一樣。

一文告訴你PLC與計算機的本質區別在哪裡!


分享到:


相關文章: