新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 現場總線運動控制模塊的設計及其在PLC系統(tǒng)中的應用

現場總線運動控制模塊的設計及其在PLC系統(tǒng)中的應用

作者: 時間:2010-02-26 來源:網絡 收藏
1.3.1 G代碼解碼
  接收到工作指令后,開始進行G代碼的解釋執(zhí)行任務。G代碼存放在SD卡中,主器集成FAT文件,支持SD卡的文件讀寫。G代碼讀入后,逐行進行第一遍掃描(即指令預處理),期間將注釋、空格、非法字符去除,小寫字符轉換成大寫,以方便解碼程序進行識別。
經過預處理的G代碼指令逐行送入G代碼解碼程序,解釋程序再逐字檢查其是否為G代碼的指令字符,若是,則提取關鍵字的后續(xù)數值,作為該指令的操作數,將其提取出來。其中用到了ANSI C的標準庫函數sscanf( )(位于stdio.h中),可以方便地提取字符串中指定的信息,支持類正則表達式的格式字符串,非常靈活。同時因為使用了ANSI C的標準庫函數,程序移植簡單。
以下是G代碼解碼程序的部分代碼:
/*遍歷整個s字符串,找到字符后,提取后續(xù)數字,并存入中間代碼中*/

本文引用地址:http://2s4d.com/article/152081.htm


  其中,CurrentGMidCode是預定義的結構體變量,用于保存每行G代碼提取出來的指令操作數,結構如下:

  提取到每行G代碼的關鍵信息后進行相關處理,計算出每行代碼的起止坐標,將其通過SPI發(fā)送至NC芯片,控制電機。
1.3.2 插補進給
  電機的插補運算、加減速和進給控制,由一個獨立STM32微控制器完成,并稱為NC運動控制芯片。
  目前市場上的運動控制芯片主要是日本和歐美公司的專用ASIC和各數控廠家自行開發(fā)的FPGA芯片,雖然性能優(yōu)越,但價格不低。相對于使用ASIC芯片或FPGA芯片,完成同樣的任務使用MCU方案,硬件生產成本和開發(fā)成本均具有明顯優(yōu)勢,當STM32微控制器運行在其最高頻率為72 MHz下時,性能完全可以滿足中低端數控的要求。
  在三軸數控銑中,NC運動控制芯片需要實現三軸快速定位、二軸直線插補、二軸圓弧插補、三軸直線插補的功能。
  插補是在組成軌跡的直線段或曲線段的起點和終點之間,按一定的算法進行數據點的密化工作,以確定一些中間點,從而為軌跡控制的每一步提供逼近目標。在本控制器中,選用逐點比較法作為基本的插補算法,具有算法簡單高效、進給速度均勻的特點,同時支持三軸的直線插補[1],滿足本控制器對插補算法的要求。
  逐點比較直線插補,就是執(zhí)行機構每走一步都要和給定運動軌跡上相應的坐標值相比較,比較的結果稱為偏差函數F,根據偏差的正、負決定下一步的進給方向。實質上這是一種用階梯折線來逼近直線的一種算法,它與規(guī)定運動軌跡之間的最大誤差為1個脈沖當量(每走1步移動的距離)。因此,只要把脈沖當量得足夠小,就可以達到運動精度的要求[2]。
1.4 Modbus-RTU協(xié)議的實現
  Modbus-RTU是Modicon公司開發(fā)的一種通信協(xié)議。它采用主從應答方式工作,其規(guī)范已公布在互聯網上,是一種在工業(yè)領域被廣為的真正開放的標準網絡通信協(xié)議。由于它具有免收許可費用,易于集成不同的設備、簡單易用、開發(fā)成本低、有著廣泛的知識資源支持等特點,已經成為一種公認的通用工業(yè)標準。有了這個標準,不同廠商生產的控制設備可以連成工業(yè)網絡,進行集中監(jiān)控。Modbus PTU協(xié)議有2種傳輸模式:RTU模式和ASCII模式。其中RTU模式信息幀中的8 bit數據包括2個4 bit十六進制字符,相對于ASCII模式,RTU模式表達相同的信息需要較少的位數,且在相同通信速率下具有更大的數據流量。因此通常情況下,一般工業(yè)智能儀器儀表都是采用RTU模式的Modbus規(guī)約。
  Modbus-RTU協(xié)議以幀為通信的基本單位,幀格式為:地址碼1 B;功能碼1 B;數據區(qū)N B;錯誤校驗2 B CRC碼。
  本運動控制器在其RS-485接口上實現了Modbus-RTU協(xié)議,使用了當今流行的免費開源協(xié)議棧FreeModbus-RTU,從而保證了可靠的通信、節(jié)約了開發(fā)成本。
  FreeModbus是針對通用的Modbus協(xié)議棧在嵌入式系統(tǒng)中的實現,其遵循BSD開放源代碼協(xié)議,并可以免費用于商業(yè)用途,成熟可靠。移植FreeModbus到STM32處理器只需要少量資源,除了1個雙工USART外,只需要配置1個定時器進行超時判斷即可。



評論


相關推薦

技術專區(qū)

關閉