開放式PLC的概念及設計
目前,國內用戶選用的可編程控制器(PLC)仍以國外產品為主,造成這種局面的一個重要原因是歐、美、日等發達工業掌握了PLC的核心技術,其硬軟件技術對應用者來說是封閉的,使用者只能從應用的角度學習PLC,而不能參與PLC的開發[1-2]。近年來,IEC61131-3國際標準的頒布和實施為各PLC生產廠家提供了統一的軟件開發準則,開放的單片機技術的發展,為硬件開發提供了有效的物質基礎[3]。在這樣的背景下,研制開放的PLC係統無論對於科學研究還是PLC行業的發展都有積極的現實意義。
PLC是一種於工業控制的計算機,其硬件主要由中央處理器、存儲器、輸入/輸出接口等組成[4],其硬件結構如圖1所示。
1 開放式可編程控制器
開放式PLC硬件結構採用CPU+模塊+接口構成,各個接口都按標準設計,大大提高了PLC的開放性,使其能方便地與大係統連接。編程語言遵循國際標準IEC61131-3,並將基於PC的編程軟件作為PLC編程工具。係統硬件部分採用51內核處理器STC89C51,其為模塊化設計,採用濾波、隔離電路,以降低成本。主要電路有:微控制器STC89C51RC、開關量輸入電路、繼電器輸出電路、晶體管輸出電路、RS232通信接口電路、電源電路、時鐘復位電路和USB通信接口電路等,PLC硬件係統框圖如圖2所示,軟件採用Borland公司集成開發軟件C++ Builder,通過集成平臺對51內核處理器指令集進行解釋、編譯,使梯形圖語言轉換為能被51內核處理器識別的代碼。
2 係統硬件設計
可編程控制器單片機部分電路圖如圖3所示。
USB通信部分選擇Philips公司的PDIUSBD12[5]芯片作為係統的USB接口器件,片內集成了USB接口電路、SIE、FIFO存儲器、收發器以及電壓調整器等,可與任何外部控制器或微處理器實現高速並行通信,其速率為2 Mb/s,能夠滿足設計所要求的數據傳輸速度。USB通信接口模塊電路如圖4所示。
3 係統軟件設計
係統軟件結構如圖5所示。圖中,係統編輯模塊為用戶提供編輯環境,接收用戶的梯形圖程序輸入,並將其存儲為相應的文件。梯形圖語言為一種圖形語言,要直接對其進行編譯十分困難,因此並不是直接對梯形圖程序進行編譯,而是先將其翻譯成指令語言的文本形式,再對指令語言進行編譯。圖形語言編譯問題的解決,提高了代碼的利用率[6-7]。通過提取數據結構中的數據,形成C語言程序文件,經過C51編譯器、連接器、轉換器的編譯、連接、轉換過程,生成能夠在PLC硬件上運行的可執行文件。
3.1 用戶界面
PLC用戶界面是實現可編程人機交互的重要部分,它以梯形圖語言的形式錄入用戶控制程序,以二進制形式通過串口下載到PLC硬件,其梯形圖表示的用戶編程區如圖6所示。
PLC在進行邏輯運算之前,對外部信號進行採樣[8],若要實現指令的功能,首先要設置外部I/O在梯形圖中的地址,係統才能夠對用戶程序中所使用的I/O地址與單片機的引腳地址相匹配。本設計在I/O設置對話框底層設計了如表1所示的數據處理函數。
3.2 USB通信
PDIUSBD12的固件設計成的中斷驅動,當CPU處理前臺任務時,USB的傳輸可在後臺進行;後臺中斷服務程序和前臺主程序循環之間的數據交換可以通過事件標志和數據緩衝區來實現。當PDIUSBD12從USB收到一個數據包,即對CPU產生一個中斷請求,CPU立刻響應中斷。在中斷服務程序中,固件將數據包從PDIUSBD12內部緩衝區移到循環數據緩衝區,並將PDIUSBD12的內部緩衝區清零,以便接收新的數據包,使CPU可以繼續執行當前的前臺任務直到完成。本文利用PDIUSBD12的端點1進行命令的傳輸和應答,端點1每次接收計算機發送過來的8 B指令,其指令格式如表2所示。例如,接收到十六進制碼52 01 00 03 00 07 00 50,表示讀24C01器件從03字節開始的7個字節的數據。52H為R的ASCII碼,57H為W的ASCII碼。端點2用於數據的傳輸。
本文在了解PLC研究狀況以及其市場需求的基礎上,提出了研發開放式PLC的概念,完成了PLC集成開發係統的C51模塊實現方案的設計,將USB通信方式引入PLC領域,所設計的梯形圖編輯器提供了梯形圖編輯平臺,實現了PLC的基本邏輯指令,完成計算機與控制器的USB通信。