李理 周華磊
                             武漢華中數控股份有限公司
                   國家高技術研究發展計劃(863計劃)課題“基于CMC的裝備數控系統的研制與應用”(2012AA041706)
【摘要】 本文基于的是以CMC運動控制芯片為核心控制器的數控裝置,重點介紹其應用于機床控制及加工上的PLC編程部分。CMC運動控制芯片是國內自主研發的一款帶G代碼解釋器及運動控制硬核的MCU芯片,可應用于輕量級運動控制場景,其PLC部分支持IEC61131-3標準編程語言。本文中所有PLC代碼部分均采用ST語言編寫,主要包含了機床安全運行檢查及急停控制、機床回零、MODBUS通信、G代碼調度、M代碼實現、機床手動控制等部分。
【關鍵詞】機床PLC; MODBUS通信; CMC

[Abstract] This paper is based on the CMC motion control chip as the core controller of the numerical control device, focusing on its application in the PLC programming part of the machine tool. CMC motion control chip is an independent research and development MCU with hardcore of G code interpreter and motion control unit which can be used in lightweight motion control scene, The PLC part supports IEC61131-3 standard programming language. In this paper, all the PLC code using ST language writing, mainly includes the machine safety operation inspection and emergency stop control, machine back to zero, Modbus communication realization, G code & M code scheduling, machine tool manual controlling etc.
[Keywords] machine tool PLC programming; MODBUS communication; CMC

    在數控系統中,PLC編程為通用平臺的個性化應用提供了簡單快速的開發接口,PLC以其簡單、高效、可視化等優點,便于技術人員在應用現場進行編程以滿足控制需求。本文以CMC運動控制芯片為平臺,描述了在該平臺下進行系統搭建所涉及的各個方面,包括CMC運動控制芯片的介紹,整個數控系統的框架,編程語言及工具的介紹,以及重點介紹了其PLC邏輯與控制功能的實現[1][2]。
1.CMC運動控制芯片
    CMC運動控制芯片為一款國產研發的帶運動控制功能的MCU,最高頻率可達50MHz。芯片集成了Flash、SRAM、通用定時器、PLL、實時鐘,以及以太網MAC、UART、CAN、SPI、I2C 等多種通信接口。
    CMC運動控制芯片是將組態處理、程序存儲、信號輸入輸出、控制算法、通訊接口等全部集成在一個芯片中的產品,實現的主要功能可以簡述為:片內邏輯控制和運動控制,程序處理及調度管理,數字量信號處理,多種數據接口通信。
    本文中所涉及的數控裝置是以CMC運動控制芯片為核心、板載外圍電路的控制單元,包括I/O、串口、AD、DA、進給軸等。
2.編程及語言

    CMC運動控制芯片上位機PLC編輯軟件能夠支持IEC61131-3所包含的5種編程語言,由于ST語言與通用計算機編程語言C語言語法格式更加類似,學習成本較低,更利于學校掌握與熟悉,本文所涉及的所有代碼均采用ST編程語言編寫。
    CMC芯片制造商提供的PLC編輯軟件還能夠支持數控系統G代碼編程、運行調試、變量監控、常用控制功能塊調用等,方便開發與調試。
    程序編寫完后需要進行編譯,由CMC組態軟件翻譯成CMC運動控制芯片內部運動控制單元所能識別的指令,并通過網口通訊下載到CMC芯片的代碼存儲區。
3.系統框架
    基于CMC運動控制芯片的數控系統架構如下圖所示:
        
               圖1 CMC數控系統框架圖
    整個系統框架中,CMC運動控制芯片為系統中的主控芯片,外部掛接三個伺服驅動器,用于進行位置控制,并使用一個變頻器用于主軸速度控制。運動控制器包含32路外部信號輸入及32路外部信號輸出,用于檢測機床限位、回零、報警,控制機床上電、驅動器使能、刀架控制及潤滑、冷卻等邏輯功能。
    CMC運動控制器自身并不具備圖形設備接口,系統中使用網絡通訊連接HMI設備,通過MODBUS/TCP協議實現數據交互、代碼下載等功能。HMI從CMC運動控制器中獲取系統運行的相關狀態及信息,顯示給用戶,同時HMI負責G代碼存儲、編輯、編譯等工作。
    另外,CMC運動控制器通過SPI總線連接數控系統功能鍵盤,CMC運動控制器將鍵盤點位映射到PLC層,通過編程,實現鍵盤控制功能。
4 系統PLC編程
4.1 進給軸手動控制

    機床在使用過程中,需要手動對進給軸進行移動。CMC運動控制芯片配套的組態軟件直接提供了單軸運動控制功能塊,以實現當按下軸方向移動按鍵時,調用PLC功能塊實例,根據操作需求,傳入運動控制參數,以控制進給軸移動速度、方向及進行軸選擇等。以下代碼片段為實例化后的單軸運動控制功能塊實例代碼:
MC_SingleAxis_Inst(
Axis := axisSel,
Mode := axisMode,
Direction := axisDir,
InitialVelocity := 10000,
StableVelocity := axisSpeed,
Acc := 500000,
Pulses := axisPulse
);
    PLC中根據功能按鍵的輸入請求,實時地傳入不同參數,以適應操作需求。
4.2 回參考點
    機床在移動軸的正負方向都安裝了觸點零位開關,開關量信號以外部I/O信號的方式接入至CMC運動控制器。當回零過程被激活,通過組態軟件進行PLC編程,首先控制進給軸快速移動至對應軸的觸點零點開關位置,觸發觸點開關后,低速緩慢朝反方向移動直至觸點開關彈開,然后以更低的速度往回零方向移動,直到再次觸發觸點開關后,即完成回零過程。
    通過實際測量,發現通過上述方法進行回零,機床并不能每次都能回到同一個位置,誤差會在±0.3mm左右,這是因為回零檢測使用的輕觸開關是機械結構,并且由于回零速度差異,所以并不能對回零位置做精準定位。為了提高回零精度,可以在系統側接入電機碼盤Z脈沖信號,由于電機每運轉一圈就會發出一個固定位置的Z脈沖信號,通過檢測該Z脈沖,就可以為系統提供一個更加精準的位置參考。
    在完成第一步的回零過程后,使進給軸電機繼續往回零方向以超低的速度移動,并實時檢測電機碼盤Z脈沖信號,檢測到Z脈沖信號后,立即停止移動。至此,整個回零過程才算真正完成。以此回零方式實測回零精度在±0.01mm以內,足以滿足實際應用需求。
        
                圖2 回零過程
4.3 限位急停及超程解除
    機床在移動軸正負方向的極限位置都安裝了限位開關,例如銑床有X軸正/負限位、Y軸正/負限位及Z軸正/負限位這六個限位信號,這些信號以外部I/O信號的方式接入至CMC運動控制器,通過PLC編程,實時監測限位信號,當限位觸發時,立刻關閉驅動器使能信號,并調用PLC功能塊,使得CMC運動控制器停止脈沖輸出,并清除內部運動控制單元相關狀態標識。
    限位急停后,當PLC中捕獲到超程解除按鍵被按下,電機將被重新使能,同時PLC程序只允許移動周向被限位方向的反方向運行,繼續往限位方向移動的請求將被忽略。當機床移動至限位信號釋放的位置后,超程解除完成,限位急停功能將重新啟動。
        
                   圖3 限位急停與超程解除流程圖
4.4 G代碼調度及M代碼及實現
    CMC運動控制芯片自帶G代碼解釋器硬核,內部含有16塊緩存區用于存儲編譯后的G代碼數據,每個緩沖區大小為64KB。上位機通過網絡傳輸,將交叉編譯后的G代碼傳送至緩沖區,若G代碼數據量比較大,或者需要進行存儲M代碼,則會在上位機中,以M代碼為間隔,將G代碼進行切片,并將切片后的G代碼以及M代碼片段分別裝入緩存區塊中,如下圖所示:
        
                   圖4 G代碼、M代碼執行過程
    在PLC中可以調用功能塊獲取當前G代碼執行狀態以及當前運行的是哪一段G代碼。當檢測到當前段G代碼執行完畢后,此時與當前G代碼段相對應的M代碼段將會被自動加載到特殊功能寄存器SFR中,PLC從SFR中逐個讀取M指令碼,并做相應動作。若當前M指令段的所有M指令都執行結束后,如果沒有遇到M30指令,則PLC調用功能塊,將下一個G代碼段的段號填入功能塊入口后,下一段G代碼便開始執行,該段G代碼執行結束后便重復上面的M代碼執行過程。G代碼段和M代碼段如此交替執行,直至讀到M30指令,整個G代碼執行結束。
4.5 Modbus/Tcp通信
    系統上下位機通信物理層使用100M以太網,采用Modbus/Tcp協議通信,CMC組態軟件提供Modbus/Tcp功能塊,如下面代碼段所示:
modbusWordWrite (
ID,
Dtype,
Addr,
Size,
Data0, Data1, Data2, Data3,
Data4, Data5, Data6, Data7,
Data8, Data9, Data10, Data11,
Data12, Data13, Data14, Data15
);
    上下位機之間協商好ID、地址及相應數據便可直接進行數據交互。下位機CMC運動控制芯片將系統運行相關信息,如當前模式、運行狀態、位置信息等通過該功能塊周期性的傳送至上位機HMI顯示。
4.6 主軸控制
    機床上的主軸需要進行速度控制,一般都是使用變頻器驅動。變頻器的輸入為0~10V的模擬量電壓,變化的模擬量輸入將導致變頻器電源輸出端頻率的變化,進而使交流電機的運行速度隨之變化。
    CMC運動控制器板載4路16bits模擬量輸出,經過信號調理電路后模擬量輸出范圍為-10V~+10V。在PLC中,對接入主軸變頻器的那一路模擬量輸出進行數據寫入便可實現主軸電機速度的線性控制。
    在實際PLC編程中,將0~10V輸出均分為五個等級,利用MCP鍵盤的波段開關實現五級調速,以滿足不同材質加工料件的切削需求。
5 結束語
    本文所提到的所有內容均在實際機床上進行過加工驗證,事實表明,該套系統可以完成常見的車床、銑床乃至加工中心的零部件加工,PLC部分所實現的功能也能滿足機床操作的基本需要。

 

 

[1]彭瑜,何衍慶. IEC61131-3編程語言及應用基礎[M]. 北京:機械工業出版社,2009
[2]郇極,靳陽,肖文磊等. 基于工業控制編程語言IEC61131-3的數控系統軟件設計[M]. 北京:北京航空航天大學出版社,2011
致謝
基金項目:國家高技術研究發展計劃(863計劃)課題“基于CMC的裝備數控系統的研制與應用”(2012AA041706)。

最近更新

大乐透2008年开奖 广西快乐十分非凡走 拉塞尔篮网 今晚3d的开奖号 金来源配资 黑龙江22选5玩法开奖结果 爱玩捕鱼大圣归来3d 广西友玩棋牌官网下载 陕西麻将大全 湖北十一选五技巧 贵州11选5走势图 活塞vs湖人直播 股票怎么玩入门基础 车联网概念股 850棋牌土豪版大闹天宫 内蒙古十一选五兑奖 秒速赛车开奖记录app