李明時, 馬 躍, 尹震宇
?
基于ARM+FPGA的嵌入式安全PLC設計①
李明時1,2, 馬 躍1, 尹震宇1
1(中國科學院沈陽計算技術研究所, 沈陽 110168)2(中國科學院大學, 北京 100049)
傳統的PLC系統由于自身系統結構和處理器性能等問題, 在執行工業控制的過程中往往在執行了一定時間后系統就會發生慣性停機, 影響工業生產. 提出了基于ARM+FPGA高性能雙處理器的嵌入式安全PLC結構模型, 可以大幅降低系統失效的概率, 提高工業控制可靠性. 本系統分為硬件結構和軟件系統兩大部分. 硬件部分采用了1oo2D雙通道異構冗余安全體系結構, 兩條通道配備有安全電路, 兩個處理器之間設計有安全診斷電路, 通過交叉檢測判斷系統運行是否正常. 軟件部分主要包括編譯系統和執行系統, 編譯系統將編寫的PLC程序轉換成機器可執行的代碼也叫做目標代碼, 再由執行系統進行目標代碼的執行.
ARM; FPGA; 冗余結構; 1oo2D; 安全PLC
PLC是一種實時性非常強的控制器, 在制造業和過程控制中占據了非常重要的位置. 經過多年的發展, PLC系統已經比較成熟與完善, 是工業生產的核心部分. 隨著PLC應用領域日益擴大, PLC技術及其產品結構都在不斷改進, 功能日益強大. 安全PLC系統已經成為當下工業控制領域最為重要的部分, 是PLC系統今后發展的大方向.
由于當前工業控制領域不斷變化更新, 與傳統概念相比更加的復雜, 存在的不確定因素更多, 所以對PLC控制要求也越來越高[9]. 隨著嵌入式系統的不斷發展, 利用系統硬件和軟件資源構建嵌入式PLC系統有著廣泛的應用前景, 具有良好的兼容性和開放性. 實時的嵌入式系統擁有增強系統運行可靠性、提高系統的開發效率、縮短系統研發周期的顯著特點, 因此基于實時的嵌入式系統進行安全PLC的設計已經逐漸成為當前PLC研發的一種主要方式.
ARM處理器以及相似的一些性價比較高的微處理器的推出, 使得嵌入式系統得到了快速地發展, 而隨著嵌入式技術的增強, 又使得基于嵌入式的PLC系統得到了長足的進步, 嵌入式PLC系統將會成為工業控制領域今后最主要的發展方向.
在現有的一些基于ARM+FPGA結構的PLC系統中, ARM處理器負責處理相關PLC指令, 而FPGA處理器負責處理在系統執行過程中的一些邏輯, 兩個處理器之間并沒有進行交叉檢測, 不能有效降低系統失效的概率, 提高系統安全性, 這便凸顯出了本系統實際的研究意義與價值.
安全PLC是指系統本身或外接設備在系統運行的過程中出現執行問題或當機時, 仍然可以向處理器做出正確的反饋并且及時切斷控制連接的可編程邏輯控制系統. 與普通PLC不同, 安全PLC不僅可以提供普通PLC的基本功能, 同樣可以實現更為關鍵的安全控制功能.
本文中安全PLC主要通過以下技術創新點進行PLC系統安全性的提升:
① 設計有安全控制功能結構: 使用異構冗余處理結構, 完成安全控制功能.
② PLC安全狀態自檢測: 包括線路檢測、CRC校驗、錯誤自檢以及雙處理器交叉檢測等.
③ 安全的編程環境: 針對安全PLC邏輯控制功能要求, 設計基于IEC 61131-3編程語言的編譯器, 提供PLC輔助編程工具, 以滿足安全控制功能時的邏輯控制功能需求.
④ PLC硬件的功能安全設計: 采用ARM+FPGA的高性能雙處理器 , 兩條獨立的通道并聯接線, 配備有獨立的安全電路, 兩個處理器之間設計了一條安全診斷電路, 處理器通過診斷電路進行交叉檢測, 進而可以判斷系統運行的是否正常.
安全PLC主要是為安全級別較高的電子機器和工業設備而設計的, 用于對關鍵設備的控制和對其進行安全地使用. 提高PLC系統的SIL安全等級可以大幅提高系統內部各個部件在自身安全周期中工作的可靠性和穩定性, 這對于工業控制創新和發展具有重要意義.
本設計研究的是基于ARM+FPGA的雙處理器異構冗余結構的嵌入式安全PLC系統, 分為PLC硬件結構和PLC軟件系統兩大部分. 安全PLC具備獨立看門狗復位電路, 對信號的收集、分析處理和輸出過程均使用了雙核冗余結構的方式. 通過互為相異冗余的雙數據處理系統, 實現基于冗余采集處理的安全控制系統, 滿足數控系統的安全控制要求.
在安全PLC系統中, 兩個處理器與I/O之間分別設計有各自的安全通信線路, 將使用CRC校驗對安全處理器和安全I/O之間的通信進行診斷. 因此, 不僅要檢查接收的數據是否等于發送的數據, 而且要檢查數據的變化. 安全PLC功能結構主要包括以下四部分, 詳見圖1-PLC安全控制功能結構圖.
① 雙通道安全輸入. 每一個外部輸入都采取雙通道輸入方式連接到兩個處理器.
② 雙通道處理機制. 安全PLC內部使用了互為冗余的微出理器, 同時對每個安全功能進行控制和監控, 形成并聯通道, 并行處理同一個安全過程. 多個監控系統互為冗余, 只有系統檢測到該信號正常且允許輸出.
③ 雙通道安全輸出. 安全PLC的輸出電路內部使用了冗余結構, 對每一個輸出節點進行更加準確穩定的控制, 以保證系統輸出的安全性.
④ 安全診斷電路. ARM處理器和FPGA處理器分別控制兩條線路, 兩條線路并連接線, 兩個處理器之間設計有安全診斷電路, 在PLC系統進行安全控制的過程中, 兩個安全處理器之間進行數據交互(如配置信息, 關鍵常量, 數據大小, 數據處理結果等)以完成交叉檢測, 檢查兩條通道的處理結果是否一致, 從而進一步判斷目前系統運行的是否正常[5].

圖1 PLC安全控制功能結構圖
硬件結構是整個安全PLC系統的可執行前提和安全控制基礎, 為開發系統和運行系統提供了平臺.
3.1 ARM+FPGA處理器的選用
ARM和FPGA處理器是本系統硬件結構的核心部分. 從本系統可以實際應用到的領域、開發的成本和開發的難易程度等因素來考慮, 本系統以ARM-iMX28x和Xilinx SPARTAN-3E XC3S500E芯片作為處理器.
iMX28x處理器主頻454MHz, 支持DDR2和NAND Flash, 并提供多達5路UART、 1路I2S接口、1路I2C、1 路SPI、1路USB Host接口、4路12bit ADC、1路USB OTG接口、1路10/100M以太網接口、1路SDIO、支持電容式液晶屏和電阻式觸摸屏、滿足信息的采集以及更高水平的工業控制應用.
XC3S500E芯片的等效邏輯門數為50萬, 等價于10476個LCs, 具有多達158個用戶I/O(含65個差分對I/O), 73kB的分布式RAM, 360kB的RAM和20個專用乘法器.
3.2異構冗余的雙數據處理系統
1oo2D冗余結構是具有診斷功能的雙通道處理系統, 結構內部具有兩重1oo1D系統, 兩條線路以并聯的方式進行連接, 并擁有各自的控制線路, 提供了1oo2安全功能, 如圖2所示.

圖2 1oo2D冗余結構
1oo2D 安全控制系統要求具有在一次錯誤發生時能降級到 1oo1D 系統的能力, 因此, 兩個主控制模塊之間要能夠通過通信和信號判斷對方模塊的運行狀態.
1oo2D冗余安全系統兩個通道獨立運行, 使用軟件進行自測試和自診斷, PLC根據不同的系統狀態, 進入故障安全模式或將故障檢測出來. 使用軟件檢測硬件時, 從現場至處理器, 能夠在誤動作發生之前就可以發現它們. 在系統出現問題后, 系統可以降級到1oo1D的系統繼續運行, 確保出現故障時整個系統的完整性. 七種冗余結構的安全性詳見表1[2].

表1 冗余結構安全性
3.3獨立看門狗復位電路
使用獨立的看門狗復位電路來監控設備是否正常及不正常時重啟設備. 對于嵌入式PLC系統, 設備可能出現死機等現象. 但是, 這些設備不可能隨時有工作人員監控, 因此一旦發生問題, 設備需要自行重啟.
獨立看門狗時鐘由看門狗自身硬件提供, 不受PLC主時鐘的影響. 在正常工作時, 檢測ARM+FPGA產生的喂狗信號是否在一定時間內翻轉, 如果喂狗信號產生翻轉, 定時器的計數清零, 重新計時. 如果喂狗信號沒有產生翻轉, 則產生復位信號, 上述過程如此重復循環. 看門狗電路工作原理詳見圖3.

圖3 看門狗復位電路
安全PLC軟件系統由編譯系統和執行系統兩大部分組成. 編譯系統將編寫的PLC源程序編譯成與硬件平臺相關的機器可執行代碼, 執行系統通過執行開發系統中生成的可執行代碼, 最后將正確處理后的信號輸出到控制設備完成對機械設備的安全控制.
4.1 軟件系統模塊設計
安全PLC軟件系統如圖4所示包含編譯系統和執行系統兩大部分. 編譯系統包含“程序編輯模塊”、“程序編譯、調試模塊”以及“通信接口模塊”三個模塊[14], 執行系統包含“通信接口模塊”、“運行內核模塊”、以及“I/O接口模塊”三個模塊.

圖4 安全PLC軟件系統結構圖
4.2 CRC校驗
使用CRC校驗對安全CPU和安全I/O之間的通信進行診斷, 利用除法及余數的原理來做錯誤偵測.
在實際進行校驗時, 發送設備計算出CRC值并隨數據一同發送給接收設備, 接收設備對收到的數據計算CRC值并與收到的CRC值進行比較, 如果兩個CRC值不相同則說明通訊過程出現錯誤, 如果兩個CRC值相同則說明通訊正常. 不僅要檢查接收的數據是否等于發送的數據, 而且要檢查數據變化的情況.
在進行CRC檢驗時, 發送裝置與接收裝置需要事先設定一個好除數也就是所謂的生成多項式, 一般記作Z(x), 生成多項式的最高位與最低位必須是1. 通常循環冗余校驗的值是8位、16 位或32位的整數, 常用的CRC碼的生成多項式有:
① 8位: CRC8=X8+X5+X4+1
② 16位: CRC16=X16+X15+X5+1
③ 32位: CRC32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1
CRC校驗工作過程如圖5所示.
在進行CRC計算前首先將代表發送數據的多項式A(x)乘以xn, 其中n次冪是生成多項式P(x)的最高次冪. 因為使用的是二進制乘法, 所以A(x)*xn的意思就是將A(x)向左移n位, 用來存放余數P(x), 所以實際發送的數據就變為A(x)* xn+P(x). 在進行CRC計算時, 使用二進制也叫做模2運算法, 即加法不進位, 減法不借位, 這種算法的本質意義就是兩個操作數進行邏輯異或運算[13].

圖5 CRC校驗流程
5.1 實驗設計
本實驗將從CPU占用率、內存占用率以及系統運行的實時周期這幾方面對系統的性能進行驗證.
① 在LINUX系統下運行PLC系統, 輸入top指令查看當前ARM處理器和FPGA處理器的所在開發板的CPU占用率和內存占用率.
所使用開發板內存為512MB, 如圖6所示, 當前內存占用為3868B, 內存占用率為0.7%, CPU占用率為14%. 可見本PLC系統對內存的占用非常少, 對CPU的占用也不高, 可以滿足絕大多數情況下的使用需要.

圖6 CPU和內存占用率
② 計算PLC系統的實時周期.
使用梯形圖編輯軟件編寫長度約為500行的邏輯指令, 使用二進制轉換插件將LAD文件轉換為二進制文件, 放入系統進行執行. 在PLC主循環執行之前, 首先獲取當前的系統時間, 在PLC執行第一次循環之后, 再次獲取系統當前時間, 通過前后兩個時間可以算出進程的執行周期. 經過計算, 完成此邏輯指令用時約為2ms, 如果將邏輯指令的長度提高到1300行左右, 那么計算可得完成邏輯指令用時約為4ms, 實驗流程如圖7所示.

圖7 實時周期實驗流程圖
5.2 實驗結論
通過實驗結果可以看出本系統具有良好的綜合性能, 可以正確處理需要執行的邏輯指令, 在穩定性與運行速度方面都顯示出了良好的執行結果.
本系統使用ARM+FPGA的雙處理器結構, 設計研究了基于1oo2D異構冗余模型的安全PLC系統, 給出了安全PLC系統主要的安全控制功能結構、硬件系統的設計、編譯系統的模塊設計以及看門狗復位電路、CRC校驗等關鍵技術在本系統中的詳細設計.
最近幾十年來, 一部分工業生產事故的原因是由于計算機控制系統的當機或錯誤執行所導致的, 引起了人員的傷亡和設備財產的損失. 這些事件也提醒著國家、相關技術人員以及普通百姓, 要強化對生產過程的危險性、建立工業安全流程的意識. 由于目前工 業控制領域的先進化和高復雜化, 傳統PLC已經不能滿足高安全性、高可用性的要求, 本系統提出的對于提高PLC安全性的技術創新對于安全控制系統的發展有著重要的意義.
1 季照平.基于單片機ARM嵌入式技術的數控系統的開發研究.輕工科技,2015,(11):47–68.
2 林通.基于FPGA的安全ePLC的研究[碩士學位論文].杭州:杭州電子科技大學,2015.
3 鄭凌.基于CPU_FPGA的異構多核系統設計及并行編程模型研究[碩士學位論文].西安:西安電子科技大學,2014.
4 劉志穎,鄭松.異構三重冗余控制系統的設計與可靠性評估.電氣技術,2014,(4):54–59.
5 宋巖.基于1oo2D體系結構的高可用安全儀表.信息與控制,2013,42(4):521–528.
6 劉建康.基于ARM_FPGA的嵌入式數控系統硬件設計[碩士學位論文].哈爾濱:哈爾濱工業大學,2013.
7 任慰.以實時操作系統為中心的嵌入式系統平臺化設計研究[博士學位論文].武漢:華中科技大學,2013.
8 欒朋.基于嵌入式ARM的PLC設計與實現[碩士學位論文].沈陽:沈陽理工大學,2013.
9 王麟琨,方曉時,王春喜.功能安全PLC標準化進展及技術概述.中國儀器儀表,2012,(8):40–45.
10 張蘭洋.淺析安全 PLC 的性能和結構.科技向導,2012,(6): 153.
11 韓雪濤,韓廣興,吳瑛.PLC梯形圖及語句表.北京:人民郵電出版社,2012.
12 黃金柱.異構雙處理器系統功能安全設計方法研究[碩士學位論文].武漢:華中科技大學,2012.
13 王志學,麥曉冬,符睿.循環冗余校驗原理分析及硬件實現.科技信息,2011,(7):44–81.
14 黃曉斌.基于嵌入式Linux的軟PLC系統設計與實現[碩士學位論文].長沙:中南大學,2008.
15 華镕.常規PLC和安全PLC的區別.儀器儀表標準化與計量,2007,(4):6–9.
16 John KH, Tiegelkamp M. IEC 61131-3: Programming Industrial Automation Systems. Berlin: Springer-Verlag, 2010.
Design of Embedded Security PLC Based on ARM+FPGA
LI Ming-Shi1,2, MA Yue1, YIN Zhen-Yu1
1(Shenyang Institute of Computer Technology, Chinese Academy of Sciences, Shenyang 110168, China)2(University of Chinese Academy of Sciences, Beijing 100049, China)
The traditional PLC system, due to the problems of its system structure and processor performance, in the process of the implementation in industrial control, often occurs the inertial downtime after a certain execution time, which influences the industrial production. The paper proposes the embedded security PLC structure model, which is based on ARM + FPGA dual processor with high performance, which can greatly reduce the probability of system failure, and improve the reliability of industrial control. This system is divided into hardware structure and software system of two parts. The hardware part adopts the double channel, which is equipped with a safety circuit, heterogeneous redundancy security architecture based on 1oo2d, and safety diagnosis circuit is designed between the two processors, determines whether a system running normally by cross detection. The software part mainly includes the build system and executive system, the build system writes PLC program into executable machine code which is called the target code, and then the execution system executes the target code.
ARM; FPGA; redundant structure; 1oo2D; security PLC
國家科技重大專項(2014ZX04009031)
2016-07-01;
2016-08-08
[10.15888/j.cnki.csa.005661]