廣東工業大學自動化學院 吳豪樂 許錦標
傳統的PLC采用梯形圖和語句表來使得編程簡便,具有系統軟件開發周期短以及現場調試程序等優點。傳統PLC還存在不能兼容支持I2C、SPI這一類的通訊接口和成本比較高的不足。
針對以上傳統PLC的不足,本文以STM32系列芯片構建PLC模塊硬件系統電路和對軟件模塊設計來設計出嵌入式PLC模塊。采用了模塊化設計的PLC具有體積小、成本低以及能夠實現訪問I2C設備的功能的優點,同時還是采用梯形圖的傳統開發方式,為工程師開發項目提供了一個新的選擇。
通過分析傳統PLC的工作原理和硬件功能,來設計PLC模塊的硬件系統,其中硬件系統主要組成包括STM32 最小系統、掉電檢測電路、通訊電路、輸入輸出電路以及增加新的I2C通訊接口電路,如圖2.1所示。

圖2.1 嵌入式PLC模塊硬件系統結構
本節將對嵌入式PLC模塊的軟件部分按實現的功能劃分來進行模塊化設計,如PLC程序的執行、I2C總線通訊以及指令解釋執行,限于篇幅本小節主要講述PLC系統主函數流程、系統中斷處理模塊和指令解釋模塊。
系統的主函數主要完成的任務是對程序進行了一個模塊劃分,執行的過程是一個有序循環掃描的過程,以PLC指令解析函數解析并跳轉到處理函數來處理接收到的數據。如圖3.1所示。

圖3.1 系統主函數流程圖
系統中斷可以分為:串口接收中斷、定時器中斷、I2C通訊處理中斷和外部掉電檢測中斷,考慮到后期中斷處理隨著數據量的增多,如果定時器中斷優先級高于串口中斷,串口接收中斷會出現掉包現象,所以將串口處理中斷設置為高于定時器中斷,具體中斷優先級如圖3.2和圖3.3所示。

圖3.2 前期系統中斷優先級

圖3.3 后期調試系統中斷優先級
根據三菱PLC指令占用的字節數特點,可以將其分為單字指令、雙字指令和多字指令。
3.3.1 單字節指令
單字指令用最高四位代表指令,其它位來表示軟元件位置信息。例如在PLC程序中:“LD X0” ;其指令碼為2400H,在C語言中400H表示X0的地址信息,轉換成存放X0數組的索引值,之后再讀出這個值并將其存放在系統的全局變量中。
3.3.2 雙字指令
雙字指令雖然有與單字指令相同的部分,但是由于地址上訪問不到,所以需要增加指令字節長度來訪問地址,例如:“OUT S0”。指令碼為 0005H 8000H;其中,0005 代表OUT 指令,8000H+n 代表 Sn 的地址。
3.3.3 多字指令
多字指令的作用是幫助對一些16位的軟元件完成數據的傳輸,例如:“OUT T0 K10”。
指令碼為0600H 800AH 8000H;其中,600H為 T0 在三菱FX2N 內部的地址,指令含義為當 T0 計數 1000Ms 后, T0 輸出線圈閉合。
在分析傳統PLC工作原理的基礎上,本文通過以STM32F103ZET6的芯片作為中央處理器設計出一款嵌入式軟PLC模塊。其中該模塊本文是將其進行硬件和軟件模塊化設計的,針對傳統PLC的不足,該模塊增加了支持I2C從設備的功能;同時該模塊還具有沒有改變原有梯形圖開發模式和該嵌入式軟PLC模塊成本較傳統PLC成本低的優點,為未來某些控制領域提供了新的控制器的選擇。
[1]高興國.8098芯片PLC級語言編程研究[D].天津工業大學,2000.
[2]李萬軍.軟 PLC體系結構分析及工程應用[D].西安電子科技大學,2007.
[3]孫和平.單片微機原理與接口技術[M].冶金工業出版社,2003.