引言
近年來,嵌入式數控系統已成為研究熱點。PLC模塊是數控系統的重要組成部分,它與數控裝置配合,完成機床開關量控制。工業自動化控制領域的國際編程標準IEC61131的推出和實施,打破以前各PLC生產廠商的產品不兼容的‘局限性。充分利用嵌入式系統硬件和軟件資源,使PLC的性價比大大提高。相對于通用型PLC,嵌入式PLC具有兼容性、通用性、性價比高、網絡連接簡便、編程方便等優點。目前,大多數嵌人式PLC以Windows CE系統為操作平臺,具有操作界面良好、程序開發相對容易等優點,但Windows操作系統是收費的,這將增加數控系統的開發應用成本。本文中嵌入式PLC配合數控系統的開發,以免費的具有開放式源碼和良好可靠性的Linux系統作為軟件平臺,利用C語言在普通PC上做好設計和開發,再將軟件移植到嵌入式數控系統中。
1 數控系統中嵌入式PLC系統框圖
嵌入式PLC系統由硬件層、引導層、驅動層、系統層、用戶層構成。硬件層是整個系統的最底層,驅動層是應用層與硬件層之間的一個紐帶,系統層用來管理系統的任務、用戶層提供用戶良好的人機界面,方便使用,用戶層通過驅動層實現對硬件的控制。在數控機床中PLC主要實現對機床的坐標的零位控制、主軸的起停、冷卻液的起停、自動潤滑以及過載、超程、碰撞、掉電等緊急控制等。
2 嵌入式PLC硬件結構框圖
PLC的硬件電路采用“ARM+CPLD”的方案來實現。如圖2所示,其中ARM和CPLD通過三總線連接,數據總線為16根,分別為D[O~15],而地址總線5根,分別為A[0~4],控制總線為4根,分別為NEW、NOE、OE1和片選信號NGCS2。ARM外圍設計利用HHARM2410開發板進行再開發,底板上現有一個RS-232串口、一個RJ-45以太網口與宿主機通訊、一個USB設備接口、一個LCD及觸摸屏接口,在這基礎上,增加CAN總線功能模塊電路,并引出S3C2410核心板上的空余引腳以達到本系統控制要求。
ARM9通過RS-232通訊接口和以太網口與宿主機通訊,利用宿主機在Redhat9.0 Linux操作系統以上的平臺上進行驅動開發、程序調試和數據傳輸;HHARM2410核心板中的存儲系統較小,為達到開發系統的要求,利用USB設備接口提供方便的移動存儲。外圍設計主要是PLC的I/O模塊和主軸及進給軸的A/D模塊,其中PLC的I/O模塊主要用于PLC的開關量的輸人與輸出,用來采集機床傳感器的信號、控制主軸和冷卻液等電機的啟停。而A/D模塊則是用于主軸和進給軸的調速。采集的信號通過CAN模塊發送給上位機,上位機調用解釋程序處理后通過CAN模塊把結果發送下位機,實現電氣開關量控制。
3 嵌入式數控系統中PLC模塊的軟件結構
嵌入式PLC模塊是建立在嵌入式微控制器硬件開發平臺和嵌入式操作系統之上,通過開發內核驅動程序與應用程序,將驅動程序添加到嵌入式系統的內核中,形成嵌入式PLC系統軟件的一部分。用戶輸入PLC指令表形式的PLC應用程序,系統編譯程序通過對用戶程序與內核驅動程序的交互實現對PLC指令表語言程序的解釋和執行,實現PLC的控制功能。
本文所設計的嵌入式PLC建立在EmbededLinux操作系統平臺之上,通過軟件方法實現傳統PLC的計算、控制和編程等功能。嵌入式PLC由編輯環境和執行環境組成。首先,通過編輯環境編輯輸入PLC指令表語言的應用程序,由文本預處理生成plc.txt的文件;其次,進入執行環境,由解釋處理程序讀取該文件解釋為系統可識別的機器碼;同時,通過I/O模塊以及現場總線等物理設備完成現場數據的采集,把這些采集來的信號作為外部輸人信號同內部其它控制模塊發來的控制信號共同映射到輸入共享內存地址區,供PLC解釋處理程序使用,并將處理完的結果存儲到輸出共享內存地址;最后,讀取內存中的數據并反饋給其它模塊或輸出到外部線圈執行控制。嵌入式PLC應用程序在編輯環境中編寫,其余的均于執行環境內實現。
3.1 嵌入式PLC程序編輯器的設計
MiniGUI是根據嵌入式系統應用特點量身定做的完整嵌入式圖形支持系統,為實現在嵌入式數控系統中開發操作簡便的圖形界面且滿足數控系統的實時性要求,經過比較分析,開發時選用MiniGUI-Thread運行模式。界面程序為現場應用而開發,在實際應用過程中主要處理PLC程序的編輯、導入與執行,此界面設計時只做了PLC語言中語句表程序的編輯修改界面,而梯形圖的編輯、開發、翻譯界面則選擇在Windows下用VC開發,以增加通用性。在設計中,充分考慮到IEC61 131國際標準中關于PLC指令表語言的標準及具體輸人格式。通過軟PLC界面菜單“文件導人”把宰.PLC文件打開,點擊“執行程序”啟動軟PLC解釋程序,開始解釋并運行被打開的*.PLC文件。此時“執行程序”按鈕轉換為“程序停止。
3.2 嵌入式PLC程序執行環境的設計
3.2.1 采用內存映射技術實現數據在內核空間與用戶空問的交互
內存映射,采用get_free—page()在內核空間里申請一頁內存‘引,存儲外部采集的信號和內部控制信號,然后通過fileoperation的mmap()函數,將該頁的內存映射到用戶空間,使得用戶空間和內核空間都可以讀寫該段內存數據;用戶空間通過mmap()映射/dev/men實現對所有lY0尋址空間的讀寫。
3.2.2具體解釋程序的實現
嵌入式PLC源程序由編輯環境輸出為plc.txt文件,再由解釋程序具體解釋、執行。解釋程序首先調用字處理子程序對PLC.t:xt結點的行指令信息進行處理,處理后用1個字結構體來存儲分離出來的字信息。
首先定義一個字結構體word,用于存放字處理結果信息,變量元素有num(行號),order(命令字),com(元件),para(元件參數);打開文件plc.txt;定義字結構體變量,動態分配存儲空間并且調用字處理子程序根據處理結果給字結構體變量元素分別賦值;根據order變量值,調用相應的指令解釋子程序對指令進行解釋處理;之后判斷文本結束否,未結束則獲取下一個節點的行指令信息進行字處理,如此反復操作直至文本結束,完成解釋程序流程。
4 結語
嵌入式PLC是一項具有巨大潛力的技術,其強大的網絡功能是傳統的PLC無法比擬的。本文針對PLC的控制特點設計數控系統中嵌入式PLC模塊,闡述了嵌入式入式PLC模塊實現的方法對其中的關鍵技術作了詳細的解釋,這為多軸聯動的嵌入式數控機床的研制在電氣控制方面奠定良好的基礎。
(審核編輯: 智匯胡妮)
分享