2.2PLC的技術(shù)分類:
經(jīng)過三十多年的發(fā)展,現(xiàn)在PLC現(xiàn)在有許多的變種,但實(shí)現(xiàn)的方式主要分為硬PLC和軟PLC兩大類:
硬PLC分為并行垂直掃描和串行橫向掃描兩類,軟PLC分為編譯型、解釋型(虛擬機(jī))兩類。
2.2.1硬PLC
硬PLC是PLC的傳統(tǒng)形式,直到現(xiàn)在大多數(shù)主流廠商的高端產(chǎn)品都是硬PLC,因?yàn)楝F(xiàn)在PLC對通信和數(shù)據(jù)運(yùn)算能力的要求越來越高,所以大多數(shù)硬PLC都采用雙處理器結(jié)構(gòu),一塊通用處理器負(fù)責(zé)維護(hù)、通信、IO訪問、功能塊運(yùn)算,另一塊位處理器負(fù)責(zé)執(zhí)行邏輯指令,這也就是為什么高端的像AB的ControlLogix系列速度能達(dá)到0.01us/指令,大家可能覺得這有什么了不起的,不就是100MIPS嘛,現(xiàn)在P4都到4G了。這是大大不同的,因?yàn)橹噶畹牧6炔煌?,運(yùn)用的范圍也不同。
剛說了硬PLC架構(gòu)大多有兩塊處理器,也有可能一塊芯片內(nèi)帶兩塊的功能,其中一塊通用處理器一塊位處理器。位處理器負(fù)責(zé)處理邏輯,通用處理器負(fù)責(zé)通信、驅(qū)動(dòng)、功能塊運(yùn)算等其它工作。同時(shí)硬PLC又分為并行垂直掃描和串行橫向掃描兩種,目前使用兩種處理方式的廠商都有,雙方的區(qū)別在于,并行垂直掃描的優(yōu)點(diǎn)是:1、速度快(理想情況下并行掃描比串行掃描快掃描矩陣的行數(shù)倍比方說海維深的V80標(biāo)稱速度是0.2us/指令,但她比同樣是0.2us/指令的其它使用串行掃描的PLC理論上可以快7倍);2、可以支持在線編程;3、編程軟件可以省掉大部分的編譯工作。相反串行掃描的優(yōu)點(diǎn)是1、比較符合軟件工程師的思維習(xí)慣;2、單網(wǎng)絡(luò)大小不受并行掃描矩陣大小的限制。 字串8
大家如果有興趣可以拆一兩塊PLC,比方說三菱的FX2N,LG的K80等,里面常會(huì)有一塊標(biāo)有該廠商的MCU,這一塊就是他們的位處理器。同時(shí)大家可以去國家專利局下載一下各大PLC廠商的專利,其中在硬PLC方面大家的技術(shù)其實(shí)是差不多的,只是大家都故意把自己的技術(shù)說得更模糊,這樣一方面可以保護(hù)自己的技術(shù),另一方面可以很方便的通過專利認(rèn)證。
注:這里說的并行處理,并不是說所有的指令都是并行處理的,主要是省掉了與指令和非指令并且或指令是并行的。
2.2.2軟PLC
軟PLC架構(gòu)大多只有一塊通用處理器,軟PLC的出現(xiàn)主要基于這么一個(gè)考慮:通用MCU的價(jià)格越來越低性能越來越高。特別是解釋型的虛擬機(jī)架構(gòu)在DCS上面得到了多年的運(yùn)用,所以在前幾年大家紛紛推出了自已的軟PLC。目前國內(nèi)大多數(shù)小型PLC都是軟PLC,使用的MCU主要是日立的H8,西門子的C164系列,然后其它低檔的大多是89C51了。在實(shí)現(xiàn)上面大多數(shù)小PLC都采用編譯型,因?yàn)樾LC大多采用的是低檔低速的MCU,沒有足夠的資源的成本去采用解釋型的運(yùn)算。相反中大型的軟PLC有不少是采用解釋型的處理方式,比方說現(xiàn)在商用ISAGRAF、KW、一方梯隊(duì)等都可以根據(jù)用戶的需要選取是編譯型還是解釋型。 字串5
通常硬PLC要比編譯型的軟PLC快10~100倍,而編譯型的速度要比解釋型的速度快3~10倍。大家大都知道C語言與BASIC的區(qū)別,C語言就是編譯型的語言,BASIC就是解釋型的語言。在軟PLC里面也同樣存在兩種類似的實(shí)現(xiàn)方式。
那么用那種方式更好一些呢?
這不能這么簡單的說好與壞,如果是DCS或者中大型的PLC采用486以上的CPU那么速度就不是關(guān)鍵了,更重要的是功能和靈活性,那么采用解釋型可以很好的解決在線編程和自定義功能塊等功能。相反如果在小型PLC里面,成本和性能成為了關(guān)鍵矛盾,如何在低成本的情況下達(dá)到最高的性能成為了關(guān)鍵,同時(shí)小型PLC大多不需要很復(fù)雜的功能,所以真編譯應(yīng)該是最好的選擇。國外小型軟PLC多采用西門子的C164和日立的H8,特別日立的H8有豐富的位指令,可以比較好的解決軟PLC的瓶頸位處理速度慢的問題,而PLC大多數(shù)情況下又都是位處理。國內(nèi)的軟PLC除了幾家從國外引進(jìn)技術(shù)或貼牌的其它的大多使用89C51,在實(shí)現(xiàn)上面編譯型和解釋型都有,如何區(qū)分是編譯型還是解釋型呢,其實(shí)只要看速度就行了,如果單指令速度比較慢的大多是解釋型,反之是編譯型。
編譯型的實(shí)現(xiàn),簡單說就是先將PLC的指令和功能塊都用C語言或者匯編語言編寫成函數(shù)庫,然后再用C語言寫一個(gè)框架代碼,用戶用梯型圖編寫完程序后,梯型圖編譯器將生成一個(gè)框架文件,將所有指令的函數(shù)替代,并調(diào)用C編譯器,最后生成單片機(jī)的二進(jìn)制文件,下載到控制器,由控制器執(zhí)行。剛說過其中有一個(gè)框架代碼,這個(gè)框架代碼內(nèi)就實(shí)現(xiàn)通信、IO驅(qū)動(dòng)、管理等功能。而邏輯都由函數(shù)庫的指令組合完成,如果大家有編譯原理的基礎(chǔ),一聽就會(huì)明白,這其實(shí)是回避了PLC開發(fā)里面最麻煩的一個(gè)問題,也就是編譯工具。
解釋型的實(shí)現(xiàn),簡單說就是一個(gè)虛擬機(jī)架構(gòu),廠商定義了一種虛擬機(jī)指令,其實(shí)這個(gè)虛擬機(jī)就相當(dāng)于一個(gè)軟CPU,它也有它的指令,它的指令比方說是IEC61131-3要求的指令等。虛擬機(jī)在運(yùn)行時(shí)從代碼中逐一取回指令并通過一個(gè)查找表跳轉(zhuǎn)到對應(yīng)的指令去運(yùn)行,如果大家對早期的大型機(jī)電腦有了解,那么一定會(huì)知道,當(dāng)時(shí)的大型機(jī)資源很寶貴,一般是很多位程序員合用一臺(tái)大型機(jī)比方說PDP系列,程序員編寫完程序后通過終端把自己的程序錄進(jìn)大型機(jī)排隊(duì)運(yùn)行。因?yàn)榇笮蜋C(jī)的廠商不同,各廠商的機(jī)器碼也不同,所以大家都在大型機(jī)上運(yùn)行一個(gè)虛擬機(jī)來統(tǒng)一程序員對口的指令。
2.2.3PLC技術(shù)的選擇和對比:
海維深剛開始控制器研發(fā)時(shí),做的是軟PLC(PPC31系列中型PLC),采用的是解釋型實(shí)現(xiàn),這在中大型的DCS或PLC方面是合適的,但如果要考慮性價(jià)比就比較痛苦了,特別是解釋型,國內(nèi)外采用解釋型的小型PLC速度一般都相當(dāng)慢,比方說光洋的好幾個(gè)系列以及國內(nèi)大多數(shù)新出來的小型PLC。當(dāng)然并不是說解釋型的就不好,只是要達(dá)到同樣性能情況下需要更高的CPU成本和存儲(chǔ)器成本。
后來在經(jīng)過一段時(shí)間后我們又開發(fā)編譯型的軟PLC(PPC22系列中型PLC)這個(gè)系列主要的特點(diǎn)是相對于解釋型速度要快很多,同時(shí)可以很方便的由用戶來增加新的功能塊,只需要將用戶編寫的C函數(shù)當(dāng)成一個(gè)功能塊來調(diào)用就可以了。目前國內(nèi)有些國產(chǎn)PLC和部分進(jìn)口的PLC是采用這種技術(shù)的,PPC22使用的是486的一顆工業(yè)SOC芯片成本比較高,主要是用在工程和大型設(shè)備上,相反國內(nèi)許多小型PLC是用89C51做的真編譯,如果用的是標(biāo)準(zhǔn)頻率12M的51話,你會(huì)很顯意的看到廠商標(biāo)稱他們的PLC布爾指令執(zhí)行速度是1us/指令。
當(dāng)02年海維深準(zhǔn)備開始進(jìn)入設(shè)備配套小型PLC時(shí),我們深入的研究了大多數(shù)已有的小型PLC廠商的技術(shù)結(jié)構(gòu)和實(shí)現(xiàn)方式,發(fā)現(xiàn)如果不采用硬PLC結(jié)構(gòu)將無法滿足在低成本的情況下提供更高的性能,同時(shí)要想實(shí)在運(yùn)行態(tài)在線編程,更只能采用并行垂直掃描硬PLC結(jié)構(gòu)。比如像三菱的FX2N和他中型的A系列和Q系列都是硬PLC結(jié)構(gòu),其中A和Q系列都是并行垂直掃描硬PLC,而FX2N也是硬PLC,但不太清楚是并行解題還是串行解題的,同樣采用并行垂直掃描硬PLC結(jié)構(gòu)的還有AB的大多數(shù)PLC,除了它的一種小型PLC外。西門子的S7300也是硬PLC,但S7200比較像是一種軟PLC。在了解完后我們還對各家PLC的編解碼格式做了一些分析,基本上大同小異,只是為了防止有知識(shí)產(chǎn)權(quán)的麻煩而有意錯(cuò)分開編碼格式。在與小型PLC V80的開發(fā)過程中,我們還開發(fā)了同樣是硬PLC結(jié)構(gòu)的PPC11中型PLC,兩者采用同樣的軟硬件結(jié)構(gòu),只是功能和性能有一些區(qū)別。
所以我們應(yīng)該說不同的技術(shù)應(yīng)該用到不同的地方,技術(shù)上沒法說那一種更好,但從PLC的主流來說硬PLC有著不可替代的優(yōu)勢(遠(yuǎn)比標(biāo)稱速度上的優(yōu)勢要大很多),現(xiàn)在許多PLC廠商像西門子、橫河、AB都有自己的軟PLC,但是他們的主流產(chǎn)品還都是硬PLC,這里面的細(xì)節(jié)說起來可能不是一兩天能說完的,簡單說來就是可靠性和性價(jià)比的區(qū)別。日本東芝公司自動(dòng)化事業(yè)部的一位專家介參事長與我有過幾次比較深的技術(shù)交流,他說到東芝下一代的綜合控制器仍然是硬PLC結(jié)構(gòu)。
2.3小結(jié):
PLC開發(fā)的核心點(diǎn)在于一個(gè)穩(wěn)健的硬件平臺(tái)+高效的執(zhí)行架構(gòu)+成熟的編譯器,這些核心技術(shù)不太方便講太多,過兩年P(guān)LC技術(shù)通俗化了后,我們再專門寫本書來剖析我們這些年的開發(fā)成果以及得失。國內(nèi)從事PLC研究的同志們也可以給我來信來電,我們交流交流










