<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/152081.htm


            其中,CurrentGMidCode是預定義的結(jié)構(gòu)體變量,用于保存每行G代碼提取出來的指令操作數(shù),結(jié)構(gòu)如下:

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();