之前也知道有國產的PAC,近又接觸了倍福。說實在的,我覺得嚴格意義上講,這些亂七八糟的控制器并不能稱為PLC。
歷史上最早出現的可編程電子控制器就是單板機。單板機也是原始的通用計算機。那時候CPU還是焊在主板上的。后來計算機系統出現了分化,分解成一支通用計算機和一支單片機。通用計算機就是我們現在用的PC和服務器。單片機則形成了嵌入式系統和裸機兩脈。所謂“嵌入式系統”是指應用軟件的源代碼直接嵌套在操作系統源代碼之中而形成的一種提前安裝,編譯后不可定制的操作系統。而裸機則是應用軟件直接操作芯片的一種無操作系統的運行環境。
不管是通用計算機分支還是單片機分支,其編程過程都伴隨著大量的編碼和測試工作。雖然一家設備工廠的產量并不大,但全球有非常眾多的設備工廠,就會產生大量的設備。這些設備全都需要進行復雜的編程和測試,導致了大量的資源浪費。于是有人想到開發一種架構,使這些設備的控制器能夠在此之上進行快速的二次開發。當時的電氣控制基本上還是對開關量的處理,模擬量需要通過機械裝置轉換成開關量。于是很自然地就發現最適合的編程方法是電路圖。而電路圖表達的邏輯計算量非常小,使用普通的單片機就能夠實現,而且當時的通用計算機十分精貴,不僅價格貴,操作規程也很復雜,不適合普通工人使用。事實上,現在的IPC也不允許隨意斷電。于是這種以電路圖作為二次開發方法的架構就被安裝到了單片機上?梢钥闯,PLC的產生是為了代替IPC控制的,是一種更進步的架構。但是IPC并沒有消失。就如同當今主流的編程語言Java已經能夠解決幾乎所有問題了,但是C和匯編仍然有人在用。進步的架構意味著對舊架構的包裝,就像手套能夠幫助我們干活,但有些活是套手套就干不了的,就需要脫了手套才能做。IPC是作為一種脫下手套的架構而存在的。
那么PAC是怎么回事?IPC和PLC是分屬不同的分支,而PAC與PLC是單片機分支下的不同封裝形式。與PLC相同的是,PAC本身沒有顯示器。PAC的開發更接近工控板。工控板是單片機分支下的更低級封裝形式,看似返回到單板機的形態,差異性僅僅是板上的主控芯片是分支后的單片機。工控板其實就是單板機的改良,PAC就是工控板進行了標準化的設計后加上一個外殼。其開發方式返回到了單板機的時代。PAC的性能介于PLC與IPC之間,IO功能強于IPC,而計算能力強于PLC。
PLC是對工控程序的高級封裝,具有很好的專業性,適合解決多數問題。PAC和IPC作為古老工控技術的延伸,可用于解決一些偏門的問題。但PAC和IPC畢竟是一種初級的形態,PLC的出現本來就是要解決PAC和IPC的不足,自然不可能反被其取代。
需要指出PAC的概念雖然比較新,但這種架構是古老的。而軟PLC就是IPC換了一個名字而已。
為什么古老的東西可以用來炒作,甚至成為熱門(像Python,比Java更早出現,卻是最近突然爆火)。細心的人能夠發現,多數情況下的所謂“流行”就是炒冷飯。像是80年代的人穿過的褲子,現在又拿來穿。但不是隨便什么人穿都能夠成為流行。流行是輿論的產物,輿論是有影響力的人引發的思維風暴。為什么Python炒冷飯會比較成功,而PAC和軟PLC一直沒有多么熱門?這是由于輿論發起者的影響力不同造成的。顯然,多數高端自動化工程師急需一種方便快捷的腳本語言來進行軟件的配置,Java自然不行,因為Java比C++還大氣,學腳本比學主程序還復雜,那就別學了。而Python天生就是優秀的腳本語言,像Matlab那么簡單,又很好地支持C++混編,所以備受歡迎。反觀PAC和軟PLC,好像沒有給PLC解決什么很重要的問題,反而一直想要造反,自然就不受待見了。