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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的伺服電機(jī)通信控制

          基于CAN總線的伺服電機(jī)通信控制

          作者: 時(shí)間:2013-03-14 來源:網(wǎng)絡(luò) 收藏


          同時(shí),伺服控制器還提供2路參數(shù)輸入通道和2路參數(shù)輸出通道。在上,上位主機(jī)可通過2路參數(shù)輸入通道,對伺服控制器內(nèi)的各種參數(shù)進(jìn)行設(shè)置修改,如的加減速時(shí)間、齒輪箱變速比、級(jí)聯(lián)系數(shù)等等;通過2路參數(shù)輸出通道讀取伺服控制器的各種參數(shù),如的當(dāng)前溫度、當(dāng)前配置的加減速時(shí)間以及電機(jī)的實(shí)際電壓電流等等,故只要是能在伺服控制器的參數(shù)代碼表中找得到的參數(shù),基本上都能夠讀取。

          通過接口與各個(gè)數(shù)據(jù)通道,可將自己的相關(guān)數(shù)據(jù)信息發(fā)送到上;同時(shí)亦可以接收來自總線的伺服電機(jī)所需的各種數(shù)據(jù)信息與控制命令。

          5 CAN的通信協(xié)議

          作為實(shí)時(shí)性要求比較高的工業(yè)控制底層網(wǎng)絡(luò),CAN協(xié)議只分為3層:物理層、數(shù)據(jù)鏈入層和應(yīng)用層。CAN通信協(xié)議有4種不同的幀格式:數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀和超載幀。

          由于CAN通信協(xié)議給出的只是共性要求,在實(shí)際應(yīng)用中需要將協(xié)議具體化,建立適用的協(xié)議規(guī)則。根據(jù)伺服電機(jī)伺服控制器的特點(diǎn),并遵循CAN通信協(xié)議標(biāo)準(zhǔn),制定了伺服控制器的通信協(xié)議規(guī)則。伺服控制器的每個(gè)信息幀分為2部分:幀頭和數(shù)據(jù)域。幀頭占2B,其前11位為標(biāo)識(shí)符,然后是一位RTR位,最后是4位的數(shù)據(jù)長度位DLC(即所發(fā)數(shù)據(jù)的實(shí)際長度,以字節(jié)為單位)。數(shù)據(jù)域占用8B。11位的信息標(biāo)識(shí)符反應(yīng)了節(jié)點(diǎn)的優(yōu)先級(jí)別,總線仲裁就是通過它來實(shí)現(xiàn)的,信息幀的標(biāo)識(shí)符越小,信息幀就具有越高的優(yōu)先權(quán)。除總線狀態(tài)等特殊信息外,伺服控制器對所傳輸信息的標(biāo)識(shí)符有一定的計(jì)算公式:

          信息標(biāo)識(shí)符=基準(zhǔn)標(biāo)識(shí)符+設(shè)定的控制器的節(jié)點(diǎn)地址

          伺服控制器的節(jié)點(diǎn)地址可以在參數(shù)代碼表中設(shè)定。而對信息的基準(zhǔn)標(biāo)識(shí)符,伺服控制器有統(tǒng)一的規(guī)定,如:同步觸發(fā)信號(hào)的基準(zhǔn)標(biāo)識(shí)符為128,來自控制器CAN-OUT1通道的信息的基準(zhǔn)標(biāo)識(shí)符為384,而發(fā)送到控制器CAN-IN1通道的信息的基準(zhǔn)標(biāo)識(shí)符為512,通過參數(shù)通道1發(fā)送到控制器的信息基準(zhǔn)標(biāo)識(shí)符為1536,通過參數(shù)通道1接收的信息基準(zhǔn)標(biāo)識(shí)符則為1408。

          對于8B的數(shù)據(jù)域,用戶需要按照所要發(fā)送的具體信息來確定應(yīng)遵循的使用原則。比如,要通過參數(shù)通道進(jìn)行參數(shù)設(shè)定,第1個(gè)字節(jié)為命令碼,第2、3字節(jié)為參數(shù)對應(yīng)的索引號(hào),第4個(gè)字節(jié)為參數(shù)對應(yīng)的次索引,后4個(gè)字節(jié)是要設(shè)定的參數(shù)數(shù)據(jù)大?。欢l(fā)送信息到某伺服控制器的過程數(shù)據(jù)通道CAN-IN1,則直接是數(shù)據(jù)信息的發(fā)送,沒有命令碼,也沒有索引號(hào)。

          6 上位主機(jī)的軟件設(shè)計(jì)

          通過CAN總線進(jìn)行通信與控制的伺服電機(jī),在針對實(shí)際的應(yīng)用要求配置好伺服控制器的內(nèi)部控制信號(hào)流,以及基于CAN的接口功能模塊和數(shù)據(jù)通道后,剩下需要解決的是上位主機(jī)的軟件設(shè)計(jì)問題。

          由于上位主機(jī)所接插的CAN通訊適配卡一般都提供CAN的驅(qū)動(dòng)函數(shù),所以在上位機(jī)軟件的編制過程中,實(shí)現(xiàn)與CAN總線的通信部分可以直接調(diào)用相應(yīng)的函數(shù),如上位主機(jī)與CAN通信的主要任務(wù):對CAN適配卡的初始化、CAN信息包的發(fā)送、CAN信息包的接收等,都有現(xiàn)成的函數(shù)可以使用,為用戶使用CAN進(jìn)行通信提供了方便。對CAN通訊適配卡的初始化主要是初始化適配卡的各個(gè)寄存器,設(shè)置中斷向量、通信卡的波特率以及中斷屏蔽字等必要的參數(shù),為正常通信作準(zhǔn)備。實(shí)現(xiàn)CAN信息包的發(fā)送,首先要確定信息包的11位信息標(biāo)識(shí)符,填入幀頭,并在數(shù)據(jù)域中填入需要發(fā)送的數(shù)據(jù)信息,通過發(fā)送函數(shù)發(fā)送給所有CAN節(jié)點(diǎn)或特定的CAN節(jié)點(diǎn)上。而對于使用接收函數(shù)所接收的CAN信息包,亦通過其11位信息標(biāo)識(shí)符,判斷其來源,對數(shù)據(jù)域的數(shù)據(jù)進(jìn)行處理,取得有效的信息,進(jìn)行顯示或存儲(chǔ),并按照控制需要發(fā)送控制指令。其軟件控制流程圖,如圖2所示。

          上位主機(jī)正是通過對CAN驅(qū)動(dòng)函數(shù)的不斷調(diào)用,發(fā)送控制命令或參數(shù)設(shè)定命令給各伺服電機(jī)的伺服控制器,驅(qū)動(dòng)伺服電機(jī)的啟停運(yùn)轉(zhuǎn);同時(shí)接收來自伺服控制器的伺服電機(jī)的速度、相位、轉(zhuǎn)動(dòng)方向、轉(zhuǎn)矩等各種數(shù)據(jù)信息及狀態(tài)信息,并進(jìn)行分析處理,然后按照系統(tǒng)的實(shí)際控制需要再給伺服控制器發(fā)送相應(yīng)的命令,去驅(qū)動(dòng)電機(jī),使伺服電機(jī)的運(yùn)行始終按用戶的要求進(jìn)行變化,從而實(shí)現(xiàn)對伺服電機(jī)的管理與控制。

          7 結(jié)束語

          倫茨伺服電機(jī)CAN接口的引入,提高了伺服電機(jī)的自動(dòng)化水平,使伺服電機(jī)在工業(yè)控制網(wǎng)絡(luò)中的通信與控制更為方便、靈活和可靠。

          CAN總線在現(xiàn)代工業(yè)控制系統(tǒng)中越來越廣泛的應(yīng)用,為帶CAN接口的伺服電機(jī)提供了廣闊的應(yīng)用前景。

          參考文獻(xiàn)
          [1]鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1996.
          [2]Lenze.Operating Instruction(Global Drive Mannuls 9300).(end)

          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理


          通信相關(guān)文章:通信原理


          雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理

          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();