曾舒婷 夏慶鋒
摘要:可編程控制器廣泛應用于工業(yè)行業(yè)的各個領(lǐng)域,需要其具有可靠性高、實時性強的特征。本文從提高PLC實時性及可靠性數(shù)據(jù)處理的角度,設(shè)計了一款適合PLC特性的專用處理器體系結(jié)構(gòu)。
關(guān)鍵詞:PLC ;處理器;實時性;可靠性
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)24-0241-03
Abstract: PLC is a new industrial automatic control device, which is based on microprocessor as the core, and combines the automation technology and communication technology. The PLC is widely used in various fields of industry, and it has the characteristics of high reliability and rapidity. In this paper, from the Angle of improve real-time performance and reliability of PLC data processing, designed a dedicated processor architecture which is suitable for PLC characteristics.
Key words:PLC; CPU ; real-time; dependable
1 引言
當前工作控制領(lǐng)域?qū)崟r性和穩(wěn)定性要求越來越高,國內(nèi)現(xiàn)有自主研發(fā)的可編程控制器(PLC)微處理器,大多數(shù)采用通用處理器或者通用處理器和布爾處理器相結(jié)合的體系結(jié)構(gòu),難以滿足需求[1,2]。通用處理器主要面向字節(jié)、字的處理,而可編程控制器指令以比特位操作為主[1,2]。這就迫切需求推出適合于可編程控制器特性的專用處理器。
本文基于提高可編程控制器實時性及可靠性數(shù)據(jù)處理性能的角度,提出一款實時可靠的可編程控制器專用處理器,該處理器擁有符合可編程控制器特征的專用指令集,采用位處理器實現(xiàn)硬件加速。采用多處理器并行執(zhí)行同一程序,或當主處理器故障時,其他處理器的執(zhí)行保證可編程控制器的可靠性。并集成PLC數(shù)值運算器和PID運算器,主要用于PLC數(shù)值處理中函數(shù)運算領(lǐng)域和模擬量控制、過程控制領(lǐng)域,如對溫度、壓力、流量、液位的控制。
2 系統(tǒng)設(shè)計
該可編程控制器的處理器體系結(jié)構(gòu),采用32位的RISC體系結(jié)構(gòu),包括一條高速總線和一條低速總線[4]。在高速總線上擴展的主設(shè)備有ARM處理器(ARM9)、PLC專用處理器、以及用于仲裁主從設(shè)備訪問優(yōu)先級的AHB仲裁器;在高速總線上擴展的從設(shè)備有256KB的FLASH、256KB存儲大小的SRAM、用于存儲輸入輸出設(shè)備數(shù)據(jù)的256KB存儲大小的I/O SRAM以及用于網(wǎng)絡通信的Ethernet MAC 10/100;在低速總線上擴展的外設(shè)有AD、DA轉(zhuǎn)換器、256個計數(shù)器、256個計時器及通用輸入輸出口和用于外設(shè)中斷服務的中斷控制器??删幊炭刂破鞯膶崟r處理器體系結(jié)構(gòu),如圖1所示。
該PLC專用處理器體系結(jié)構(gòu)按照功能可劃分為通用處理器、PLC專用指令集處理器。
1)PLC專用指令集處理器,采用符合PLC指令特征的指令集,主要包括位處理器、PLC數(shù)值運算器和PID運算器。
2)位處理器,主要處理PLC中的位邏輯指令,應用于PLC的開關(guān)量邏輯控制領(lǐng)域;
3)PLC數(shù)值運算器用于處理函數(shù)運算,如絕對值函數(shù)、平方根函數(shù)、三角函數(shù)、反三角函數(shù)及指令函數(shù)、對數(shù)函數(shù)等運算,其數(shù)值運算基于CORDIC算法;
4)PID運算器,主要用于可編程控制器模擬量控制、過程控制領(lǐng)域。
3 實時性設(shè)計
該可編程控制器處理器的實時性的設(shè)計,主要包括符合PLC指令特征的指令集、位處理器及PID運算器并行運算設(shè)計。
通過PLC指令表語言的分析,得出PLC指令使用頻率[3],如表1所示。
通過對開關(guān)量PLC程序分析,如搶答器、電機正反轉(zhuǎn)控制、噴泉控制、交通燈控制、山地纜車控制等控制程序中布爾指令、功能塊指令、存取指令及控制指令使用頻率的分析[3],得出布爾指令及存取指令所占比較較大。如表2所示。
從表1和表2分析得出,要提高該PLC專用處理器對開關(guān)量程序的執(zhí)行速度,則需要對布爾指令執(zhí)行加速,并提高PLC數(shù)據(jù)的存取速度。
依據(jù)對PLC指令分析,設(shè)計了一款實時PLC專用處理器,主要模塊包括:位處理器設(shè)計及模擬PID運算器設(shè)計。
3.1 位處理器設(shè)計
位邏輯運算指令與可跳轉(zhuǎn)位邏輯運算指令結(jié)果使用,在位處理器中執(zhí)行。
當執(zhí)行到可跳轉(zhuǎn)位邏輯運算指令ANDCRIBIT指令時,位處理器判斷累加器中的值是否為0,若為0,則跳轉(zhuǎn)到可跳轉(zhuǎn)位邏輯運算指令CR。ANDCRBIT指令與CR指令間的指令不執(zhí)行,從而節(jié)約PLC指令執(zhí)行時間。
當執(zhí)行到可跳轉(zhuǎn)位邏輯運算指令ORCRBIT時,位處理器判斷累加器中的值是否為1,若為1,則跳轉(zhuǎn)到可跳轉(zhuǎn)位邏輯運算指令PUSHOR。ORCRBIT指令與PUSHOR指令間的指令不執(zhí)行。
以上為加速PLC中處理開關(guān)量程序的實時性設(shè)計。
3.2 模擬PID運算器設(shè)計
對于模擬量控制及過程量控制領(lǐng)域,設(shè)計了并行執(zhí)行的PID運算器[5],其設(shè)計思想如下:
4 可靠性設(shè)計
PLC處理器的可靠性設(shè)計,可采用多處理器并行執(zhí)行程序的方式;或增加多個位處理器、PLC數(shù)值運算器及PID運算器,提高處理的并行度。這兩種方式提高并行度,不僅可以提高運行速度,而且可以確保程序執(zhí)行的正確性。
1)采用多個處理器,并行執(zhí)行相同或不同的PLC程序。
若是執(zhí)行簡單的PLC程序時,分別分配在多個處理器并行執(zhí)行,不僅可以通過多處理器結(jié)果進行比較一致,保證輸出的準確性。
若執(zhí)行復雜的PLC程序時,在四個處理器冗余的情況下,可將該程序分別分配在2個處理器中執(zhí)行,不僅可以增加執(zhí)行速度,還可以比較輸出結(jié)果,并判斷輸出的準確性。
若某處理器發(fā)生故障時,其他處理器在執(zhí)行相同程序,還可以保證PLC程序繼續(xù)執(zhí)行下去。
2)增加多個運算單元,提高處理并行度。
在PLC專用處理器中,增加多個運算單元。當程序同一類型指令分別發(fā)射到同一功能的不同運算單元中,可以提高執(zhí)行指令的吞吐量,如圖3所示,如指令取指后,通過亂序發(fā)射,同時兩條三角函數(shù)運算指令,則可分別發(fā)射到PLC數(shù)值運算器A和PLC數(shù)值運算器B,即提高執(zhí)行指令的吞吐量;同理PID運算器A和PID去運算器B可分別執(zhí)行不同PID運算。
5 結(jié)束語
本文從實時性與可靠性角度,設(shè)計了一款符合可編程控制器特征的處理器。該可編程控制器的處理器可應用于開關(guān)量控制、模擬量控制及過程控制領(lǐng)域。
在實時性方面,設(shè)計了符合PLC指令特征的專用指令集,并通過位處理器加速運行該PLC專用指令集,提高了PLC開關(guān)量控制程序的執(zhí)行速度。通過分析PID運算公式,增加流水線設(shè)計,加速了PID運算,提高了PLC模擬量及過程控制程序執(zhí)行速度。
在可靠性方面,通過多處理器并行執(zhí)行,保證PLC在出現(xiàn)故障時,還能夠正常執(zhí)行。或通過增加功能相同的運算器的運算單元,并行執(zhí)行功能相同指令也可加快PLC指令執(zhí)行速度。
參考文獻:
[1] 李潤光,冉峰,徐美華.基于RISC構(gòu)架的PLC微處理器設(shè)計[J].電子技術(shù),2005(07):58-62.
[2] 康書峰.RISC架構(gòu)PLC微處理器的研究和設(shè)計[D].上海大學,2005.
[3] Gab SeonRho, Kyeonog-hoon Koo,Naehyuc Chang, Jaehyun Park, Yeong-gi Kim and Wook Hyun Kwon.Implementation of a RISC microprocessor for programmable logic controllers[J].Microprocessors and Microsystems,1995,19(19):599-608.
[4] ShuTingZeng1,ZhiJiaYang,YanLv3 ,A high performance architecture design of PLC dedicated processor [C]. International Conference on Advanced Computer Theory & Engineering,2010.
[5] 楊文超,張榮標,張春艷.基于FPGA實現(xiàn)PID控制器的研究[J].微計算機信息,2005(22):135-137.