廣東工業大學 黃偉鑫
采用嵌入式PLC的方式去設計系統,能夠提高開發速度,對于用戶的個性化需求可以進行靈活的設計,這樣就可以達到定制的效果[1]。同時,也可以增強小型控制系統的設計和應用能力,更貼近客戶需求的個性差異化設計要求。用戶可以自己選擇合適的硬件來組成滿足要求的嵌入式PLC。
本系統是在對三菱FX系列PLC的充分研究其硬件結構和工作原理的基礎上設計的嵌入式PLC。選用STM32F103ZET6為核心處理器,最高達72MHz的時鐘速度,1.25DMips/MHz,512K字節的閃存程序存儲器 ,64KB RAM,LQFP-144腳封裝,還有其他模塊電路輔助完成相應的功能[2]。嵌入式PLC系統搭建的硬件電路框架圖如圖1所示。采用RS232和RS485通信協議,不僅可以用于程序下載,而且可以用于基本數據的訪問。

圖1 硬件電路框架圖

圖2 程序結構框圖
其中,下載電路模塊是給STM32F103ZET6芯片下載固化程序用,而對于最終PLC程序的下載則是通過串口通訊模塊完成。由于STM32F103ZET6芯片上有3個12位模數轉換器和2通道12位D/A轉換器,所以模擬量輸入使用芯片內部的A/D轉換電路,無須外擴芯片;8路A/D為12位ADC逐次逼近型模擬數字轉換器;2路D/A為12位數字輸入電壓輸出的D/A轉換器。使用6N137芯片和PWM脈寬調制波形的方法進行脈沖設計。
嵌入式PLC軟件設計主要分為兩部分設計[3]。第一部分為梯形圖程序下載設計,該部分主要是遵循FX2N型PLC的通訊協議,實現基本數據訪問以及程序下載功能。第二部分為PLC程序解釋執行設計,程序先從內置Flash中取PLC指令,然后判斷是何種指令,若是END指令則直接跳出程序,否則執行相應的程序。
采用Keil軟件進行編程,C語言作為程序開發工具,將系統程序主要分為主芯片配置模塊、輸入輸出模塊、定時計數模塊、串行通信模塊。通過對每一個模塊進行設計和調試,最后進行系統程序的整體調試[4]。系統程序結構框圖如圖2所示
當梯形圖程序下載時,嵌入式PLC會完成與上位機的相互識別,等待程序下載到嵌入式系統中,然后把程序寫入到嵌入式PLC中。此時,嵌入式PLC需要對接收的數據進行處理,校驗完后對錯誤的數據信息刪除,之后對操作碼和操作數的數據存儲起來[5]。
嵌入式PLC工作于梯形圖程序解釋執行時,需要Memory的初始化,I/O的初始化和中斷的初始化,然后載入X值,將輸入值映像到寄存器中,即輸入掃描,接著進行指令執行,對每一條指令進行判斷,判斷該指令是否是END指令,如果不是,則要對每一條指令進行解釋執行,解釋執行完當前指令后繼續取下一條指令并解釋執行,如此循環不斷。如果是,則進入輸出刷新,輸出Y值。
本文從硬件和軟件兩個方面對嵌入式PLC系統進行了分析,根據三菱FX系列PLC的工作原理及功能,完成了嵌入式PLC的設計。與傳統 PLC 相比較,該嵌入式PLC能夠解決傳統PLC成本高、兼容性差、通用性差等問題,嵌入式 PLC 不僅能支持梯形圖開發,而且沒有增加工程師的開發難度。同時,系統集成了通信功能,可以滿足不同的工業控制需求,為未來某些工控領域的特定場合控制器的選擇提供了新的選擇。
[1]陳輝,李堅強,裴海龍,等.基于梯形圖語言的軟PLC技術研究與實現[J].微型計算機信息,2006.
[2]王曉光.嵌入式PLC的設計與研究[D].成都∶西華大學,2013.
[3]李雪蓮.嵌入式PLC的設計及通信功能的擴展[J].電子設計工程,2015(17)∶168-171,174.
[4]嚴奎.嵌入式PLC編程軟件開發[J].工業控制計算機,2012,25(10)∶67-70.
[5]李冠軍.基于Cortex-M3的嵌入式PLC設計和開發[D].天津工業大學,2013.