張 雷
(上海船舶運(yùn)輸科學(xué)研究所, 上海 200135)
1969年,世界上第一臺可編程序控制器(Programmable Logic Controller,PLC)在通用汽車公司(GM)的生產(chǎn)線上成功應(yīng)用。20世紀(jì)80年代后,在集成電路技術(shù)和計算機(jī)技術(shù)迅速發(fā)展的背景下,PLC也得到了飛速發(fā)展,目前PLC已經(jīng)發(fā)展成為一項(xiàng)成熟的技術(shù),以其功能齊全、穩(wěn)定可靠、維護(hù)方便、高速度、高性能等優(yōu)點(diǎn),在工業(yè)自動化領(lǐng)域得到了迅速的推廣,長期以來一直與計算機(jī)控制并行成為工業(yè)自動化領(lǐng)域中極具競爭力的控制工具。
然而,隨著工業(yè)控制系統(tǒng)的規(guī)模迅速擴(kuò)大以及系統(tǒng)日益復(fù)雜化、分散化,傳統(tǒng)PLC產(chǎn)品在硬件體系、軟件編程、系統(tǒng)結(jié)構(gòu)、開發(fā)難度和成本方面都日漸無法適應(yīng)現(xiàn)代工業(yè)控制系統(tǒng)的要求。在國際電工委員會(International Electrotechnical Commission, IEC)發(fā)布IEC61131-3標(biāo)準(zhǔn)之后,Soft PLC(軟PLC)技術(shù)開始出現(xiàn)并迅速發(fā)展了起來,大量成熟產(chǎn)品出現(xiàn)并應(yīng)用到了現(xiàn)代工業(yè)控制系統(tǒng)中,逐漸在市場上占據(jù)了一席之地。
作為工業(yè)控制的專用設(shè)備,傳統(tǒng)PLC的硬件組成結(jié)構(gòu)與微機(jī)系統(tǒng)的硬件組成結(jié)構(gòu)有很多相似之處。典型PLC控制系統(tǒng)的硬件組成框圖見圖1。

圖1 傳統(tǒng)PLC系統(tǒng)結(jié)構(gòu)圖
傳統(tǒng)PLC控制系統(tǒng)的硬件由PLC、I/O電路和外圍設(shè)備等組成。系統(tǒng)核心模塊為主控模塊(也稱CPU模塊),包括CPU、存儲器、通信接口等。PLC與控制對象的聯(lián)系通過I/O模塊實(shí)現(xiàn),且這些模塊應(yīng)具有較好的抗干擾能力。常用的PLC 外圍設(shè)備是編程器,其主要任務(wù)是輸入、調(diào)試程序和監(jiān)控程序的執(zhí)行過程。
2.1.1 硬件方面
傳統(tǒng)PLC的硬件體系結(jié)構(gòu)是封閉的,各個PLC生產(chǎn)廠家的硬件體系互不兼容,缺少明確一致的標(biāo)準(zhǔn),使其難以構(gòu)建開放的硬件體系結(jié)構(gòu)。比如:各個廠家都有自己的專用總線、通信網(wǎng)絡(luò)協(xié)議;不同廠商之間,同類模塊不可以通用;機(jī)柜、電源模塊各不相同等。
2.1.2 軟件方面
不同廠商產(chǎn)品的編程方法差別很大,技術(shù)專有性較強(qiáng),開發(fā)人員必須經(jīng)過較長時間的專業(yè)培訓(xùn)才能掌握某一種產(chǎn)品的編程方法。不同廠商的編程語言及指令系統(tǒng)各異,用戶選擇了一種PLC產(chǎn)品后,必須選擇與其相應(yīng)的控制規(guī)程,學(xué)習(xí)特定的編程語言,這不利于終端用戶功能的擴(kuò)展;編程語言雖多數(shù)是梯形圖,但其組態(tài)、尋址、語言結(jié)構(gòu)都不一致,不能兼容;程序的可移植性、可復(fù)用性、封裝能力差。
2.1.3 系統(tǒng)方面
隨著工業(yè)自動化控制系統(tǒng)的規(guī)模不斷擴(kuò)大,控制結(jié)構(gòu)更加趨于分散化和復(fù)雜化,需要更多的用戶接口;同時,某些領(lǐng)域企業(yè)整合和開放式體系的發(fā)展需求也要求自動控制系統(tǒng)具備強(qiáng)大的網(wǎng)絡(luò)通訊能力,以便企業(yè)能及時地了解生產(chǎn)過程中的諸多信息,靈活選擇解決方案,配置硬件和軟件,并能根據(jù)市場行情,及時調(diào)整生產(chǎn),傳統(tǒng)PLC無法滿足上述需求。此外,為擴(kuò)大控制系統(tǒng)的功能,許多新型傳感器被加裝到控制單元上,但這些傳感器通常都很難與傳統(tǒng)PLC連接,且傳統(tǒng)PLC價格較貴,使得系統(tǒng)整體成本大幅增加。
2.1.4 性價比
傳統(tǒng)PLC的生產(chǎn)被幾家廠商所壟斷,造成PLC的性價比增長很緩慢。

圖2 IEC61131-3標(biāo)準(zhǔn)規(guī)定的軟件模型
為規(guī)范PLC編程語言,制定并發(fā)布了IEC61131-3標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)是全世界控制工業(yè)第一次制定的有關(guān)數(shù)字控制軟件技術(shù)的編程語言標(biāo)準(zhǔn),內(nèi)容涵蓋了PLC整個生命周期的各部分,包括基本概念的定義、設(shè)備要求和測試、PLC編程語言、PLC的選擇安裝維護(hù)、PLC的通信等。制定該標(biāo)準(zhǔn)的首要任務(wù)是把現(xiàn)代軟件的概念和現(xiàn)代軟件工程的機(jī)制應(yīng)用到傳統(tǒng)的PLC編程語言中。
IEC61131-3標(biāo)準(zhǔn)允許在同一PLC中使用多種編程語言,允許程序開發(fā)人員針對每個特定的任務(wù)選擇最合適的編程語言,允許在同一控制程序中的不同軟件模塊內(nèi)使用不同的編程語言。其詳細(xì)地說明了句法、語義和下述5種PLC編程語言的表達(dá)方式:順序功能圖(Sequential Function Chart,SFC),梯形圖(Ladder Diagram,LD),功能塊圖(Function Block Diagram,FBD),指令表(Instruction List,IL),結(jié)構(gòu)文本(Structured Text,ST)。其中的IL和ST是文字語言,LD,FBD和SFC為圖形語言。
IEC61131-3標(biāo)準(zhǔn)定義了軟件模塊,通過模塊把PLC看作一種具有能執(zhí)行多種任務(wù)的結(jié)構(gòu)控制器,其用下述概念將控制器作為階層結(jié)構(gòu),從軟件的觀點(diǎn)實(shí)現(xiàn)模塊化。IEC61131-3標(biāo)準(zhǔn)規(guī)定的軟件模型見圖2。
1) 配置(Configuration):表示控制器的最上層概念,對應(yīng)于PLC系統(tǒng)。把解決一個具體控制問題的完整軟件概括為一個“配置”。
2) 資源(Resource):構(gòu)成配置的要素,具有實(shí)行用戶程序所必需的特征。其反映PLC的物理結(jié)構(gòu),在程序和PLC的物理I/O通道之間提供了一個接口。
3) 任務(wù)(Task):能把程序和功能塊聯(lián)系起來,規(guī)定了其執(zhí)行的方法。在一個資源內(nèi),可以定義一個或多個“任務(wù)”。任務(wù)被配置后,可以控制一組程序或功能塊。這些程序和功能塊可以周期性地執(zhí)行,也可以由一個事件驅(qū)動來執(zhí)行。
4) 程序(Program):用戶程序的邏輯管理單元,可以由許多互連的功能塊和/或函數(shù)組成,每個功能塊之間可以相互交換數(shù)據(jù)。函數(shù)與功能塊是基本的組成單元,包括一個數(shù)據(jù)結(jié)構(gòu)和一種算法。
5) 功能(Function):用戶程序的一個構(gòu)成要素。
圖3描述了基于IEC61131-3標(biāo)準(zhǔn)的軟件模型與傳統(tǒng)PLC軟件模型(包括一個資源,運(yùn)行一個任務(wù),控制一個程序,且運(yùn)行于一個封閉系統(tǒng))的不同。
可以看出,基于IEC標(biāo)準(zhǔn)的軟件模型在傳統(tǒng)PLC軟件模型的基礎(chǔ)上增加了許多內(nèi)容。
1) 基于IEC61131-3標(biāo)準(zhǔn)的軟件模型是一種分層結(jié)構(gòu),每一層均隱含其下層的許多特征。
2) 將一個復(fù)雜的程序分解為若干個可以進(jìn)行管理和控制的小單元,這些小單元之間存在著清晰而規(guī)范的界面。
3) 可以滿足由多個處理器構(gòu)成的PLC系統(tǒng)的軟件設(shè)計。
4) 可以方便地處理事件驅(qū)動的程序執(zhí)行,而傳統(tǒng)的PLC軟件模型僅采用按時間周期執(zhí)行的程序結(jié)構(gòu)。
5) 對以工業(yè)通信網(wǎng)絡(luò)為基礎(chǔ)的集散控制系統(tǒng)(例如,由現(xiàn)場總線將分布于不同硬件內(nèi)的功能模塊構(gòu)成一個具體的控制任務(wù)),尤其是軟邏輯控制等正在發(fā)展中的新型控制技術(shù),該模型可以覆蓋和使用,足以映像各類實(shí)際系統(tǒng)。

圖4 軟PLC系統(tǒng)模型
6) 對于只有一個處理器的小型系統(tǒng),其模型只有一個配置、一個資源和一個程序,與現(xiàn)在大多數(shù)PLC的情況完全相符。對于有多個處理器的中、大型系統(tǒng),整個PLC被當(dāng)作一個配置,每個處理器都有一個資源來描述,而一個資源則包括一個或多個程序。對于集散型系統(tǒng),將包含多個配置,而一個配置又包含多個處理器,每個處理器用一個資源描述,每個資源又包括一個或多個程序。
正因?yàn)橛辛薎EC61131-3標(biāo)準(zhǔn),才真正出現(xiàn)了一種開放式的PLC編程軟件包。其不具體地依賴于特定的PLC硬件產(chǎn)品,為PLC的程序在不同機(jī)型之間移植提供了可能。其既參考了現(xiàn)有工程人員非常熟悉的一些傳統(tǒng)PLC的編程語言,又實(shí)現(xiàn)了統(tǒng)一的編程標(biāo)準(zhǔn)。
IEC61131-3標(biāo)準(zhǔn)的推出和實(shí)施,有力地推動了各種PLC間的兼容和統(tǒng)一,并有力地推動了軟PLC技術(shù)的發(fā)展,是實(shí)現(xiàn)軟PLC技術(shù)的重要條件和保證。
軟PLC技術(shù),就是在遵循IEC61131-3標(biāo)準(zhǔn)的前提下,使用嵌入式硬件支撐平臺,利用軟件實(shí)現(xiàn)標(biāo)準(zhǔn)硬件PLC的基本功能。或者說,將PLC的控制功能封裝在軟件內(nèi),運(yùn)行于嵌入式硬件環(huán)境中。這樣的控制系統(tǒng)不僅提供了PLC的相同功能,還具備了嵌入式硬件平臺的各種優(yōu)點(diǎn)。
各個廠商研發(fā)的軟PLC系統(tǒng)都可以概括為以下模型,模型由開發(fā)系統(tǒng)和運(yùn)行系統(tǒng)兩部分構(gòu)成(見圖4)。
1) 開發(fā)系統(tǒng)依據(jù)IEC6113l-3標(biāo)準(zhǔn)實(shí)現(xiàn),主要包括編輯器、編譯器、調(diào)試器,模擬器和通信接口等幾部分。用戶在編輯器中使用標(biāo)準(zhǔn)的編程語言編寫控制應(yīng)用程序,編輯器將用戶輸入的信息生成專有格式的中間文件,輸出給編譯器。編譯器檢查用戶編寫的程序代碼,顯示編譯結(jié)果的正確性,將編譯的錯誤信息及警告信息提示給用戶,并生成目標(biāo)代碼。模擬器用以調(diào)試控制應(yīng)用的正確性,在線調(diào)試功能提供實(shí)時動態(tài)顯示,方便用戶測試控制邏輯的正確性。調(diào)試器方便用戶直觀高效找出程序中的邏輯錯誤。開發(fā)系統(tǒng)的另一個核心是算法庫,包括豐富的功能模塊并支持用戶嵌入自己的功能模塊。開發(fā)系統(tǒng)生成的目標(biāo)代碼獨(dú)立于運(yùn)行環(huán)境,通過通信接口下載到運(yùn)行環(huán)境中。
2) 運(yùn)行系統(tǒng)是軟PLC的核心,由I/O接口、通信接口、虛擬機(jī)等組成,其主要功能是執(zhí)行編輯環(huán)境編譯后產(chǎn)生的目標(biāo)代碼,完成系統(tǒng)配置、輸入輸出處理、實(shí)時監(jiān)控、故障診斷等工作。軟PLC向下通過硬件I/O接口采集工業(yè)控制現(xiàn)場信息,控制被控對象。運(yùn)行環(huán)境的實(shí)現(xiàn)依賴于操作系統(tǒng)平臺。目標(biāo)代碼是編輯環(huán)境與運(yùn)行環(huán)境溝通的橋梁,是一種偽執(zhí)行代碼,采用連續(xù)的二進(jìn)制代碼形式,具有完整的指令系統(tǒng)。這些代碼在編輯環(huán)境中生成,用來描述用戶的控制功能,由運(yùn)行系統(tǒng)的虛擬機(jī)解釋執(zhí)行。目標(biāo)代碼的執(zhí)行不依賴于虛擬機(jī)的運(yùn)行環(huán)境,當(dāng)虛擬機(jī)運(yùn)行于不同的操作系統(tǒng)平臺上時,不需要修改編譯后的目標(biāo)代碼。軟邏輯運(yùn)行虛擬機(jī)是運(yùn)行系統(tǒng)的核心部分,也是整個軟PLC的核心。在虛擬機(jī)上,要實(shí)現(xiàn)傳統(tǒng)PLC的CPU所完成的功能。符合IEC6113l-3標(biāo)準(zhǔn)的虛擬機(jī)不僅支持100余種操作符、標(biāo)準(zhǔn)函數(shù)、標(biāo)準(zhǔn)功能塊,還可以開發(fā)各種用戶需求的函數(shù)和功能塊,方便和靈活性顯而易見。虛擬機(jī)的執(zhí)行通過控制命令區(qū)接受控制指令,通過代碼區(qū)執(zhí)行偽執(zhí)行代碼,通過IO區(qū)進(jìn)行數(shù)據(jù)的輸入輸出處理,通過狀態(tài)描述區(qū)反應(yīng)虛擬機(jī)的運(yùn)行狀態(tài)。另外,虛擬機(jī)部分可以根據(jù)需要移植到不同的操作系統(tǒng)平臺上。
正因?yàn)槿绱耍汸LC可以不再拘泥于廠家特定硬件平臺運(yùn)行于各種嵌入式處理器和種類繁多的嵌入式操作系統(tǒng)當(dāng)中,從而可以利用更廣泛靈活的硬件平臺進(jìn)行系統(tǒng)搭建,系統(tǒng)的靈活性、可擴(kuò)展性、性價比都有了極大的提升。
基于IEC61131-3標(biāo)準(zhǔn)的軟PLC技術(shù)解決了傳統(tǒng)PLC存在的諸多問題,具有符合現(xiàn)代工業(yè)控制技術(shù)的多方面的優(yōu)勢:
1) 具有開放的體系結(jié)構(gòu)。軟PLC的硬件體系結(jié)構(gòu)不再是封閉的,支持多種硬件,能解決傳統(tǒng)PLC互不兼容的問題,用戶可以自己選擇合適的硬件來組成滿足要求的軟PLC,既可以用流行的嵌入式硬件平臺,也可以使用成熟的PC平臺。
2) 傳統(tǒng)PLC的指令集是固定的,而實(shí)際工業(yè)應(yīng)用中可能需要定義算法。軟PLC指令集更加豐富,用戶可以使用符合標(biāo)準(zhǔn)的操作指令。除了能夠完成傳統(tǒng)PLC的PID調(diào)節(jié)和離散I/O控制外,還能進(jìn)行過程控制和運(yùn)動控制。
3) 嵌入式系統(tǒng)技術(shù)的快速發(fā)展使得基于嵌入式硬件平臺的軟PLC的性價比得以提高。軟PLC具有開放的體系結(jié)構(gòu),用戶不必拘泥于廠家限制,可以根據(jù)需求合理選擇硬件和軟件,以節(jié)約成本;由于軟PLC 遵循許多工業(yè)標(biāo)準(zhǔn),能節(jié)約人員培訓(xùn)費(fèi)用。
4) 傳統(tǒng)PLC限制在幾家廠商生產(chǎn),具有很大的私有性,因此很難適應(yīng)現(xiàn)有標(biāo)準(zhǔn)計算機(jī)網(wǎng)絡(luò),常常是PLC與計算機(jī)處于不同類型的網(wǎng)絡(luò)中。軟PLC不僅能夠加入到已存在的私有PLC網(wǎng)絡(luò)中,而且可以加入到標(biāo)準(zhǔn)計算機(jī)網(wǎng)絡(luò)中。這使得現(xiàn)有計算機(jī)網(wǎng)絡(luò)的很多研究成果可以很容易地應(yīng)用到PLC控制技術(shù)中,便于企業(yè)整合,也可以監(jiān)控工廠設(shè)備的運(yùn)行狀況,實(shí)現(xiàn)數(shù)據(jù)傳輸以及在線監(jiān)控、編輯、仿真、調(diào)試等功能。
5) 軟PLC的技術(shù)是基于IEC61131-3標(biāo)準(zhǔn)的,因此在掌握標(biāo)準(zhǔn)語言后開發(fā)就比較容易。技術(shù)的通用性強(qiáng)。
目前,軟PLC在國外已有不少成型產(chǎn)品,并且已經(jīng)投入使用。國內(nèi)能夠見到的包括:法國CJ公司的ISaGRAF,德國KW公司的MULTIPROG,SOFTPLC的SoftPLC,BECKHOFF的TwinCAT等。
1. 德國KW公司的MULTIPRONG完全符合IEC61131-3國際標(biāo)準(zhǔn),支持5種編程語言,有完整的仿真程序,在底層硬件平臺上可以支持市面上流行的MCU和多種高端處理器平臺,軟件上可以與多種主流嵌入式操作系統(tǒng)結(jié)合使用。支持用戶使用C#等高級語言進(jìn)行開發(fā)。
2. ISaGRAF 能夠在Windows,Win CE,QNX,Linux,RTX,VxWorks 等多種操作系統(tǒng)下運(yùn)行,具有良好的網(wǎng)絡(luò)通訊能力,支持?jǐn)?shù)據(jù)傳輸、遠(yuǎn)程監(jiān)控和維護(hù)、在線調(diào)試、應(yīng)用程序下載以及運(yùn)行于多個目標(biāo)上的控制程序間的通訊,具有圖形化開發(fā)界面,全面支持IEC61131-3標(biāo)準(zhǔn)的5種語言和流程圖語言。
3. SoftPLC使用開放的控制平臺,用戶能夠根據(jù)自己的需求選擇硬件。支持用戶用梯形圖和C,C++,Java等高級語言來編寫自己的函數(shù)。
近年來,軟PLC已開始投入工業(yè)使用,在今后幾年內(nèi),軟PLC 產(chǎn)品需在以下幾個方面得到發(fā)展和完善:
1) 提高系統(tǒng)的通用性和易用性。目前各廠家的產(chǎn)品還需要根據(jù)用戶的需求進(jìn)行定制和測試,無論是新的硬件平臺還是新的操作系統(tǒng),都需要廠家與用戶溝通配合,共同完成開發(fā)與測試階段的工作。產(chǎn)品開發(fā)過程中,用戶參與度較大,也對用戶提出了一定的技術(shù)要求,很多情況下需要專門的培訓(xùn),開發(fā)難度較大。隨著軟PLC用戶不斷增加,必將出現(xiàn)大量成熟的解決方案供用戶快速開發(fā),進(jìn)而可以縮短開發(fā)周期,同時也能減少定制過程中用戶的參與度,更大程度上讓用戶將精力集中于應(yīng)用的開發(fā)上來。
2) 增強(qiáng)系統(tǒng)的可靠性與實(shí)時性。增強(qiáng)系統(tǒng)可靠性與實(shí)時性的關(guān)鍵在于提高操作系統(tǒng)的實(shí)時性。現(xiàn)有的實(shí)時操作系統(tǒng)能夠基本滿足工業(yè)控制的需要,隨著軟PLC內(nèi)核與市面上流行的嵌入式實(shí)時操作系統(tǒng)緊密結(jié)合,必將大大增強(qiáng)軟PLC系統(tǒng)的實(shí)時性與可靠性。
3) 提高網(wǎng)絡(luò)通信能力和與標(biāo)準(zhǔn)協(xié)議的整合性。隨著網(wǎng)絡(luò)科技迅速發(fā)展,良好的通信能力已成為現(xiàn)代工業(yè)控制所必備的功能,遠(yuǎn)程控制、遠(yuǎn)程診斷、網(wǎng)絡(luò)數(shù)據(jù)處理等功能都將得到加強(qiáng)。CANOpen,PowerLink,EtherCat等標(biāo)準(zhǔn)和協(xié)議的加入將進(jìn)一步提高軟PLC的網(wǎng)絡(luò)通信能力。
軟PLC技術(shù)是具有巨大發(fā)展?jié)摿Φ募夹g(shù)。與傳統(tǒng)PLC相比,軟PLC采用了開放式機(jī)構(gòu),將PLC軟件開發(fā)工具與系統(tǒng)硬件分離,解除了硬件設(shè)備對軟件的制約,構(gòu)建出了更加開放靈活的軟硬件平臺。同時,其具有良好的網(wǎng)絡(luò)通信能力,能夠完成比較復(fù)雜的控制任務(wù),可以滿足和實(shí)現(xiàn)當(dāng)前和今后工業(yè)自動化領(lǐng)域控制系統(tǒng)開放性和柔性的要求,為將來工業(yè)自動化向更高層次的集成提供了可靠的技術(shù)保障。軟PLC 技術(shù)在冶金、電力、石油化工、機(jī)械、輕工、建材水泥、現(xiàn)代農(nóng)業(yè)機(jī)械等一般工業(yè)領(lǐng)域以及環(huán)保工業(yè)、智能監(jiān)控等領(lǐng)域中必將占有一席之地,具有十分廣闊的應(yīng)用前景,將帶來巨大的經(jīng)濟(jì)效益。
參考文獻(xiàn):
[1] 林小峰,宋春寧,宋邵劍. 基于IEC61131-3標(biāo)準(zhǔn)的控制系統(tǒng)及應(yīng)用[M]. 北京: 電子工業(yè)出版社,2007.
[2] 彭瑜,何衍慶. IEC61131-3編程語言及應(yīng)用基礎(chǔ)[M]. 北京:機(jī)械工業(yè)出版社,2009.
[3] KW-Software Company and solutions[EB/OL].[2013-05]. http://www.kw-software.com.cn. [4]ProConOS eCLR 2 2 Developer Toolkit[EB/OL].[2013-06]. http://www.kw-software.com.cn.
[5] MULTIPROG 5 35 Express[EB/OL].[2013-06]. http://www.kw-software.com.cn.