引言
開放式數控系統已是當今研究熱點,在其發展高速、高效、高精度、智能化性能的同時,功能也在越來越強,盡量采用軟件實現數控功能,盡量使硬件規模最小化。作為機床運動控制核心的PLC也應以軟件的形式來實現。本文基于SERCOS的開放式數控系統為硬件平臺,構建了軟82. 的體系結構,以Windows2000為操作系統,在VC++6.0環境下開發出軟PLC系統。
1 軟PLC開發系統
本文的軟PLC開發系統實現了從梯形圖到. 程序的轉化,省棄PLC的專用語言及其語法分析,采用可靠性高、效率高、通用的C語言,符合了開放性的要求。
1.1 梯形圖的繪制
PLC是按巡回掃描方式工作,一般有三種編程語言:梯形圖、語句表和順序功能流程圖,其中梯形圖使用最廣。本文的軟PLC開發系統就以梯形圖繪制為切入點,在VC++6.0集成開發環境下,基于MFC的文檔/視結構,用其GDI對象中的位圖資源表示梯形圖符號,在視窗口的客戶區內繪制梯形圖。為了正確畫出梯形圖,使用數據結構鏈表來存取各個節點數據信息外,還有一個指向下一節點的指針;這樣,當插入或刪除節點元素時,只需改變指針指向。
本文使用的數據結構如下:
這樣定義的數據結構是正確繪制梯形圖所需。
由于本文的軟PLC是基于SERCOS接口的開放式數控系統,繪制梯形圖時,符號地址和實際地址的對應就與SERCOS-RECO通訊模塊相連的I/O站的地址設置。可將反映實際地址和符號地址對應關系的表稱為助記符表。在生成助記符表文件時,采用了VC6.0++提供的屬性頁資源和列表框控件。考慮到梯形圖在顯示器的一屏內畫不完,采用了水平滾動條和豎直滾動條實現梯形圖的瀏覽,并考慮到梯形圖的重繪。
1.2 梯形圖的編譯
(1)矩陣表:梯形圖是圖像文件,上下左右工整對應,好像是個矩陣。可將所述梯形圖節點元素信息的鏈表里的數據拷貝一份到數組中,并對其進行操作得到真正意義上的矩陣表,這是實現編譯和生成. 程序的關鍵。生成矩陣表用到的數據結構如下:
(2)梯形圖的編譯:繪制完梯形圖后,在運行程序前,先要對梯形圖進行編譯,檢查其中錯誤。正確的梯形圖是轉化為正確的C程序并預期輸出的關鍵。
1.3 梯形圖轉化到C程序文件
本文的主要依靠生成. 程序,實現掃描語言到結構化語言的轉化,用以提高82. 運行速度。生成. 程序時,先將矩陣表中各元素的符號地址做替換標志字符$,例如常開元素前加!,常閉元素前加$,輸出元素前加;,輸出反相元素前加!等。這樣在將來進行實際和符號地址的地址替換,生成PLC開發系統可操作的地址文件時,非常方便。此外,考慮到梯形圖是以網絡為基礎順序執行的,一個網絡不管由多少行組成,它只能有一個輸出,故梯形圖最終是把并聯轉化為串聯執行的,并且遵循從下到上,從里而外的八字原則。所謂從上到下,就是處理各網絡時從最后一行開始找并聯。至于從里而外,需先解釋關聯類型。本文采用梯形圖并聯開始點和結束點之間所包含的元素個數來判斷并聯類型。如并聯開始點和結束點之間只有一個元素,稱為單個元素并聯;如有兩個元素,稱為兩個元素并聯;如并聯開始點和結束點之間有n個元素,稱為n個元素并聯。這樣,所謂從里而外就是如果網絡里存在多種并聯,先處理單個元素并聯,后處理多個元素的并聯。如果一個網絡中既有單個元素的并聯又有多個元素并聯,第一次處理有單個元素的并聯,第二次處理兩個元素的并聯,第n次處理n個元素的并聯。經過層層轉換,最終會把一個網絡變成一個串聯機構,相當于梯形圖的一行。這樣就可針對這行梯形圖寫出結構化if語句,進而實現整個梯形圖到+ 程序文件的轉化。要成功編譯+ 程序,不僅寫出幾行正確語句,還須有頭文件、主函數min()、以及必要的變量說明和賦值。圖1是生成C程序的流程圖。本文把這次轉化生成的C程序文件稱為Csiurse.c,然后根據助記符表文件中實際地址和符號地址的對應關系轉換為PLC開發系統操作的地址文件address.c。
2 軟PLC模型運行系統
軟PLC模擬運行系統是軟PLC的核心。通常的開發系統先將編寫的PLC源程序編譯成中間代碼,然后運行系統的編譯器再將中間代碼翻譯為與硬件平臺相關的機器可執行代碼并運行后,即可輸出結果實現邏輯控制目的。本文的軟PLC模擬運行系統是以開發系統生成的地址文件address.c為輸入。
硬PLC是按巡回掃描原理工作的。在每個掃描周期內,它都經過輸入采樣、執行用戶程序、輸出刷新三個階段。PLC在工作時建立1/10, 映像區,所有輸入采樣的現場信息都存儲到輸入映像區中供程序執行時取用,所有輸出結果都存放到輸出映像區中,最后集中進行輸出刷新。軟PLC的工作原理亦是如此。
本文采用windows提供的定時器實現巡回掃描。程序開發運行時,用函數Set Time設置定時器;程序結束時,用函數KillTimer消除定時器。巡回掃描功能在WM_TIMER信息映射的Ontimer函數里實現。只要定時器不取消,PLC程序就一直地循環執行,輸出結果也在實時變化。
3 軟PLC性能測試
軟PLC優于硬PLC的主要特點是掃描時間短、執行速度快。本文的軟PLC系統把梯形圖掃描語言變成了結構化+ 語言,采用if語句實現所有邏輯。因結構化if語句執行速度非常快,故軟PLC的執行速度自然地得到了提高。為了驗證這一特點,本文采用數字示波器結合)CL 實時子系統提供的測量時間的實時函數: RtEablePortIO,測量了1800多行if語句的執行時間。測試結果為328us(而一般的PLC掃描時間為幾毫秒到幾十毫秒)。可見,將梯形圖轉化為12 語句后,可使PLC的執行速度大大提高。
4 結束語
數控機床中的PLC是連接NC和機床的橋梁或紐帶。本文開發的軟PLC系統,把梯形圖轉化為C程序,將掃描執行轉化為編譯執行,克服了硬PLC的缺點,增強了通用性和兼容性,提高了性能價格比;這對發展開放式數控系統有著重要意義。
(審核編輯: 智匯張瑜)
分享