可以的。

目前有基於PC的控制器,比如德國倍福的CX系列,你打開它的編程軟體TwinCAT2或者3,那就是Visual Studio;它顯示的操作系統,就是Windows;看看這張圖:

倍福的官網看下:BECKHOFF New Automation Technology

德國的Codesys是一家專門做軟PLC的公司。軟PLC可以分為兩個部分:運行時(runtime)和用戶程序。運行時運行在操作系統之上,操作系統在硬體之上。整個架構看下面這張圖:

基於軟PLC的架構

有了軟PLC的運行時(runtime),就可以把一臺PC改造成PLC來使用了。當然,用戶還需要編程PLC的程序,這個需要遵循IEC61131-3的標準。像Codesys這種軟體,提供的編程開發環境很友好。看看下面這張圖:

據說倍福的PLC運行時底層也是使用Codesys,只是據說,我也不確定。

再給你推薦一個網站:The OpenPLC Project。這是一個開源PLC項目,它早期也做PLC硬體,現在已經主攻軟PLC了。可以把它的運行時安裝在樹莓派、UniPi等嵌入式平臺,或者普通的Windows、Linux個人電腦上,這樣你就擁有一臺PLC了。不過需要提醒一下:個人覺得OpenPLCProject目前還不成熟,你可以用作學習,實際工業應用你要考慮一下。

說了這麼多,是想告訴你,確實有類似的軟體可以把電腦改造成PLC來使用。

但是,如果你真要在工業環境下應用,還要考慮兩點:

1、硬體。很多家庭電腦的硬體不是工業級的,或者再詳細點說它使用的晶元不是工業級的。這種晶元的耐溫、製作工藝都不是工業級,短時間在工業環境下使用還可以,長期使用可能穩定性不夠;這種情況下,你需要使用工業PC。比如,西門子、研華的產品。

2、信號的採集:PLC並不是隻有CPU就可以了,還需要數字量、模擬量信號的採集;還有一些專用通信介面,比如RS232/RS485,現在很多個人電腦沒有這種介面;當你把個人電腦改造成PLC時,只是擁有了一個CPU模塊,還需要考慮這些信號採集及外圍通信的問題;

對工控感興趣,可以看下我的專欄【李工談工控】


當然可以。不過,把電腦當PLC來用,是有條件的。

我們先看看電腦控制與PLC控制的異同點:

在電腦中,我們能看到各種操控界面。這些操控界面實際上是資料庫中數據流的反映。我們可以在界面中發布操控命令,這些操控命令通過電腦外設介面連接到外部設備並執行,也可以通過匯流排系統用數據交換的形式對現場設備下達操控命令。目前使用最多的是匯流排交換操控方式。使用的是資料庫,而PLC僅僅只是一臺單片機及其外設電路而已。

更多的時候,系統的運行是自動的,無需人去幹涉。

再看PLC,一般只對某臺專用設備實施自動控制,操作者可以在PLC的人機界面上觀察到系統的工作情況,且可實時幹預設備的運作。

由此可知,電腦的操控對象是全系統,而PLC的操控對象僅僅只是一臺設備;電腦需要資料庫來支持工作,而PLC僅僅依靠機內內存和存儲器即可執行工作。

更多的時候,電腦是上級系統,PLC只是終端操控的執行裝置而已。

舉個例子:

我們都知道各類監控系統,例如樓宇自控系統、消防監控系統、過程式控制制系統、電力監控系統。在這些系統中,我們能看到電腦中顯現各種操控界面。然而,這些操控界面其實是資料庫的反映。

我們看下圖:

圖1:電力監控的主控室

在圖1中,我們看到了許多顯示器,還有大屏幕。系統中還有一臺伺服器,資料庫就在伺服器裏。

我們再看下圖:

圖2:電力監控的網路拓撲圖

我們看到圖2中是一個相對較大的系統,裡面有許多條數據交換的RS485匯流排,匯流排上連接了若干數據採集裝置和繼電保護裝置。

注意到這些RS485匯流排都匯總到一臺通信管理機CCU中,大量的數據流在這裡彙集,然後變換為實時數據,再通過乙太網把數據發送到監控主機的資料庫中,最終以各種操控界面的形式顯現給操作人員。

圖2中的現場設備,就相當於題主所謂的PLC。它們按某種程序運行,並對某種設備實施控制操作,並把實時數據通過匯流排發送給CCU通信管理機,並最終送到監控主機中。

例如圖2最下方的10kV繼保裝置,它就是中壓開關設備的繼電保護和控制裝置,題主可以把它理解為類似PLC。

在監控主機中,我們能看到操控界面。以下是百度上一張拉薩機場高速橋隧電力監控系統的操控界面:

圖3:百度上的一張監控系統操控界面圖

我們從圖上能看到高壓開關,以及系統中的各種電壓、電流、狀態等參數。同時,我們還可以對某個開關實施遠方合分閘操控。當然,操控的條件是滿足遠方控制要求,並且要有操作票認可。

由此可見,電腦控制與PLC控制,反映的就是上、下級控制系統的操控對象,以及不同的操控方式。這種控制方式,是具有本質區別的。

注意看圖2,圖中的CCU是通信管理機。我們原先用工控機來製作,後來發現工控機在現場很容易受到高電磁場的衝擊,甚至硬碟和電源燒毀。後來,我們採用PLC來取代它,效果良好。

為何CCU能用PLC來製作?因為CCU只是把數據整理轉發,不存在存儲的功能,無需資料庫支持。這剛好就是PLC的強項。同時,PLC的強抗幹擾能力,也絕不是電腦能夠比擬的。

事實上,對電磁騷擾的抵禦能力,是PLC還是工控機能否安裝在現場的決定因素。

要知道,對於來自電源的羣脈衝電磁騷擾,PLC能做到3級,而普通的電腦恐怕連1級都通不過。工控機一般可以抵禦2級別。

所以,在現場電腦無法代替PLC。而在監控室內,PLC絕對代替不了電腦。還是讓它們各司其職吧。

======================

有趣的是,我在設計和配套XX航空港空管中心電力監控系統時,該中心一位電工也問過我相同的問題。他說:發電機與市電的互投,完全可以用一臺PLC來實現,為何要搞得這麼複雜?

我告訴他:系統中不但有兩路市電之間的投退操控,也有市電與發電機之間的同期操控,還有應急電源UPS的緊急操控。系統中還包括三類負荷的退出機制,以及和機場總控中心的數據交換等工作。電力監控系統管的是全局,且包括了所有局部控制點在內。

這位電工聽完,只說了一句:我真的不懂,但我服氣了,我會認真地學習如何使用電力監控系統。在系統完工後交鑰匙的技術培訓會上,這位電工學習非常認真,其實他就是電力監控系統的主操人員。

相同情況,還出現在上海外高橋XX銀行數據中心(銀行計算機中心)的電力監控工程中,也有一位電工問過我類似的問題。不過,他不是數據中心電力監控的管理員。

提這種問題的人不在少數。題主的問題還是很有意義的。


一般plc的應用就是在有大量控制但是計算量小的現場,電腦運算的優勢體現不出來。然而電腦卻有各種電磁兼容穩定問題。

但是plc的加強版dcs的話就有用電腦替代的,其他回答裏提到的那種「組態機」/軟plc機本質上就是廉價dcs。很簡單的道理:能用plc解決的問題,肯定不會用 組態機。組態機基本上是在和dcs在掙市場。

這裡解釋一下PLC和DCS,plc一般指單個控制器的控制核心和控制器(繼電動作)繼承封裝在一起的,所謂的可以編程的邏輯控制器,歷史地位是取代了純繼電控制;DCS(分散式控制系統)一般指的是,控制的運算單元和控制的執行單元分開的,通過匯流排連接在一起,執行單元放在現場,運算單元放在室內穩定的地方。那麼很明顯基本沒有人拿電腦直接輸出繼電動作信號.....軟plc/組態機構成的也是類DCS的架構。

順便說一句:DCS和PLC是有繼承關係的就像多功能螺絲刀和套裝工具箱的關係,PLC能做的事情,DCS肯定也能做。問題就是成本和價格。

其實真正意義上和PLC對位的除了繼電控制方案,還有一種產品叫土PLC,中間是個單片機,把引腳封裝成繼電控制,既可以用梯形圖也可以用c語言編程......

那麼為什麼會出現軟plc和組態機呢,個人認為主要原因是窮,真·DCS太貴(一系就20w起步,通常高可靠基礎就要兩系,還要配1w一塊的通信板n*2,還有外部pio單元,還得給他配邏輯電源和驅動電源,這整體價格…)很多場景PLC的能力鞭長莫及了。所以就有用普通的工控機(加強的通用計算機)使用pc用的RTOS在上面跑c語言寫的控制程序,然後工控機(一般還有多系熱備)用can卡或光纖卡 ,把計算出的控制結果 同步給 pio和sio集成,集成匯總結果來控制下面繼電器動作。典型的應用場景就是老一代的計算機聯鎖(鐵路系統中控制道岔和信號機的決定火車走向的設備,簡易的有用plc寫),有的站90年代開通依舊採用這種結構穩定運行到今天 。

那為什麼這種應用場景用c語言不用梯形圖呢?答:因為廠家會做很多類型的站的聯鎖,他們有類似的地方也有不同的地方,c語言的控制程序搭配一個類似於遊戲關卡編輯器的配置軟體,可以方便的給不同的站型配置不同的控制邏輯,不用像梯形圖那樣重新寫一遍了。

那現在還是這樣的嗎?答:大概05年左右,就陸續不用工控機做控制器只做上位機了(部分價格敏感/可靠性不敏感的礦山和鋼廠有用老電腦控制方案的),直接使用專用的dcs,還是使用c語言,跑在dcs廠家提供的平臺上,這個平臺某種意義上是超級定製化的電腦,插在一個匯流排+電源的底板上,也使用x86 cpu但是匯流排/內存/寄存器之類的為了可靠性超級魔改過,也不能說是pc(通用計算機)。現在還有國產的哦


說回plc,廠家其實也有解決辦法,很多plc也可以利用各種匯流排把io同步區發送出來,這樣就可以用linux工控小盒子(tb上自己搜,也是一種電腦)寫處理程序甚至可以增加攝像頭圖像處理,把plc不善長的浮點運算和大內存運算分擔出去。plc給工控盒做保護運算和採集與輸出


那有沒有那種,核心是x86的通用cpu做在通用主板上,但是主板也可以輸入輸出繼電控制信號以及通信工控信號和PLC架構無限接近的產品呢? 答:還真有!研華還有威盛就有相關的產品,主要應用在 地鐵的檢票機還有ATM機上,都是跑的普通windows,都是專業對口開發。

那為啥工業控制領域不用呢? 因為吧......其實不瞞你說,這裡就算是可靠性最好的ATM都得每天預防性重啟一次......不信你夜裡2點觀察一下,ATM機就會陸續的錯峯重啟。而真正的PLC/DCS可是可以從開機運行到報廢的。

順便那種軟PLC機和組態機沒有特別流行起來的原因也多在於此,憑著軟PLC的名號打開了一些原本使用PLC但是性能捉急的工廠的大門,但是在時間的檢驗下,最後各種過程式控制制/流水組裝/連續生產的工廠大多還是咬咬牙擠錢上了真·DCS(要知道plc很多大專生就能維護,dcs很多工廠都是招的研究生維護的....)。


最後總結:

為什麼不把電腦當PLC使用呢? 其實是有的,只不過都在特殊領域,原因如下:

A.電腦的抗幹擾性不如plc

B.電腦的成本不如PLC(工業控制電腦不是家用電腦)

C.電腦其實是做不到 上線開機一直運行到20年後關機就是報廢的這種使用可靠性的(PLC和DCS都可以做到)

D.業界已經把電腦當做軟DCS用了(小的應用場景用plc,大型可靠性要求高的用dcs,組態機在中間夾縫生存,現在還有可以組網的plc進一步壓縮 組態機的市場環境)

E.直接在主板上動作繼電器的PLC架構的x86產品其實有,一般都是比較專業的定製產品,還是因為穩定性差,工業控制領域使用的不多見。


最近在使用codesys,這個就是所謂的軟PLC ,它有運行時,也就是執行PLC指令的程序,這個程序就是運行在PC上的,為了可靠一些,我們專門買了工控機,和常規的PLC不同的是,軟PLC只有CPU,我們需要通過匯流排擴展模塊。

軟PLC上集成了運動控制,視覺,可以擴展高級語言編程,這個是未來的發展趨勢。

國外的西門子,倍福的twincat3,菲尼克斯,歐姆龍等等一大批企業都有這東西。

國內的東土科技,研華科技也有類似的玩意。

貝加萊也有類似的東西,軟體是運行在VxWorks系統上的。

做平臺軟體的主要有codesys,一方梯隊等。

以下這幾個軟PLC,都在測試中。倍福的產品用的時間比較長,大概用了三年左右。

下面這個是研華的控制器,Windows系統,運行的是codesys軟PLC,模塊是支持ethercat匯流排

下面的是東土科技的工業伺服器,系統上可以添加20個虛擬的PLC,本體上集成了atbus,canopen,ethercat等匯流排。

這個是西門子s71500系列的軟PLC。

這個是倍福的嵌入式PLC,系統是Windows。

這個是西門子的,裡面運行了兩套系統,其中一套是專門跑PLC程序的系統。


第一,plc編程語言經過處理,比較容易掌握,不容易出現嚴重bug。PC語言需要寫成沒有嚴重bug的程序,需要大量的學習訓練。工業從業人員更偏向關注工藝,而不是編程本身。

第二,plc集成大量廠家開發好的庫,比如現場匯流排,標準指令集合,這些都是針對工業場景的。PC相比都是基礎的,沒有針對工業的庫,需要開發者自己處理,對經驗要求極高。

第三,在少數惡劣工業環境,PC的硬體難以針對應對,比如極寒,極熱環境,大量粉塵環境,嚴重的電磁幹擾環境,長時間的振動環境,這些PLC都是有針對的硬體處理。

主要是這幾點導致PLC在工業領域有大量應用,但也有不少環境要求不高的工業應用,使用工控機,通過高級語言開發控制的案例。只是相對而言,PLC是用更頻繁。現在的軟PLC,都是專用PC,本質上是滿足了,上訴三個需求的。嚴格講PLC是一種專用電腦。


推薦閱讀:
相關文章