新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > CAN總線實現(xiàn)數(shù)控機床的網(wǎng)絡化

        CAN總線實現(xiàn)數(shù)控機床的網(wǎng)絡化

        作者: 時間:2016-12-20 來源:網(wǎng)絡 收藏

          3.1 系統(tǒng)初始化程序

          初始化程序主要完成初始化設置CAN 控制寄存器(CANOCN) 、位定時寄存器(B ITREG) ,初始化發(fā)送報文對象和接收報文對象。其中,位定時寄存器的設置較復雜,使用8MHz外部晶振, CAN通信速率為500 k / s,得到B ITREG的初始值為0x2301。對象初始化、發(fā)送和接收初始化完成后啟動CAN處理機制(對B ITREG和CAN0CN初始化) 。下面為初始化程序結構:

          void start2CAN ( void)
          {
          SFPRAGE =CAN02 PAGE; / /指向CAN0頁面
          CAN0CN I = 0x41; / /置位CCE和Init開始初始化
          CAN0ADR =B ITREG; / /指向位定時寄存器進行配置
          CAN0DAT = 0x2301; / /位率為500 k / s
          CAN0CN I = 0x06; / /允許全局中斷,置位IE和SIE
          CAN0CN& = ~0x41; / /清CCE和IN IT位啟動CAN狀態(tài)機制
          }

          3.2 發(fā)送程序

          CAN報文發(fā)送由CAN控制器自動完成,只需根據(jù)接收的遠程幀識別符將對應數(shù)據(jù)轉(zhuǎn)移到發(fā)送緩沖寄存器,將此報文對象編碼寫入命令請求寄存器啟動發(fā)送即可。使用定時更新發(fā)送報文對象中的數(shù)據(jù),數(shù)據(jù)的發(fā)送由控制器硬件自動完成,當其收到一個遠程幀時,就將相同識別符的數(shù)據(jù)幀發(fā)送出去。發(fā)送程序結構如下:

          void send2message ( charMsgNum)
          {
          uchar j;
          SFRPAGE =CAN02PAGE; / /指向CAN0頁面
          CAN0ADR = IF1CMDMSK; / /向IF1命令屏蔽寄存器寫入命令
          CAN0DAT = 0x0083; / /位率為500 k / s
          CAN0ADR = IF1ARB2; / /指向IF1仲裁寄存器2
          CAN0DATH = 0x80;
          CAN0ADR = IF1DATA1; / /指向數(shù)據(jù)場首字節(jié)
          for( i = 0; i < 4; i ++ )
          {CAN0DATH = can2 temp [ i ] ; } / /將4 Byte數(shù)據(jù)寫入發(fā)送Buffer
          CAN0ADR = IF1CMDRQST;
          CAN0DATL =MsgNum; / /寫入報文對象編號,數(shù)據(jù)發(fā)送到對應報文對象
          }

          3.3 接收程序

          CAN報文的接收與發(fā)送一樣,由CAN控制器自動完成,接收程序只需從接收緩存器中讀取接收的數(shù)據(jù),再進行相應處理即可。基本方法與發(fā)送程序一致,只是接收程序采用中斷方式。此應用中,主要接收上位機對機床編號的選擇,參數(shù)設置和NC控制程序以及相反流程的機床狀態(tài)信息等。接收程序結構如下:

          void receive2data ( void)
          {
          SFRPAGE =CAN02 PAGE; / /指向CAN0頁面
          CAN0ADR = IF2CMDMSK; / /向IF2命令屏蔽寄存器寫命令
          CAN0DATH = 0x00;
          CAN0DATL = 0x3F; / /位率為500 k / s
          CAN0ADR = IF2CMDRQST; / /將報文對象編號寫入命令請求寄存器,對應接收
          CAN0DATL =MsgNum; / /得到數(shù)據(jù)就從報文RAM移到數(shù)據(jù)Buffer中
          CAN0ADR = IF2DATA1; / /指向數(shù)據(jù)場首字節(jié)
          for( i = 0; i < 4; i ++ )
           { CAN2RX[ i] =CAN0DAT; } / /讀取4Byte數(shù)據(jù)
          }

          3.4 上位機服務器軟件

          上位機服務器軟件主要功能有NC程序文件數(shù)據(jù)管理,數(shù)控機床的編號管理,數(shù)據(jù)發(fā)送,通信接點及下位機狀態(tài)監(jiān)測,下位機數(shù)據(jù)的上傳等,軟件功能結構圖見圖5。軟件的規(guī)模較大,屬于典型的C \S(客戶\服務器)模式軟件。采用Delphi7. 0進行開發(fā)。利用Delphi下安裝SPCOMM控件實現(xiàn)串口通信。由于涉及到文件管理,需要管理多個文件,按加工順序傳輸,需要建立數(shù)據(jù)庫系統(tǒng)。采用MicrosoftOffice Access數(shù)據(jù)庫軟件建立數(shù)據(jù)庫管理系統(tǒng)。

        上位機軟件結構

        圖5 上位機軟件結構

        4 設計實驗結果

          實驗機床為CAK6136V /750型數(shù)控機床3臺;實驗環(huán)境為該校工程訓練中心機加工車間強干擾工業(yè)環(huán)境,并在實驗過程中啟動電火花加工機床、線切割機床等強干擾源。實驗中,上位機分別向3 臺數(shù)控機床發(fā)送4 Byte測試數(shù)據(jù),機床接收后立即向上位機返回所接收數(shù)據(jù),系統(tǒng)驗證數(shù)據(jù)正確后繼續(xù)發(fā)送數(shù)據(jù),直到數(shù)據(jù)出錯或通信次數(shù)達到預設循環(huán)時停止發(fā)送。實驗中CAN總線波特率設置為500 k / s,通信線纜長為15 m,進行了多次長時間測試,取其中1次實驗數(shù)據(jù)分析見表1。

        表1 實驗數(shù)據(jù)分析

        實驗數(shù)據(jù)分析

          測試時間600 s,發(fā)送數(shù)據(jù)1 704 061次,計算得出上位機和單臺機床交換一次數(shù)據(jù)的時間為01352 1 ms,考慮到計時誤差及通信等待時間,系統(tǒng)和3臺機床通信一次約需11056 3 ms,系統(tǒng)響應滿足數(shù)控加工要求。由于通信節(jié)點電路及電源電路都設計了特殊的抗干擾措施,并得益于CAN總線的高可靠特性,實驗實現(xiàn)了快速響應下極低的數(shù)據(jù)傳輸錯誤率。

          然后,在上位機編輯一段加工一個圓臺的NC代碼,發(fā)送至3臺數(shù)控機床,控制3臺機床并行加工,完成的工件刀痕排列細膩一致,扭曲較小,極少有彎折現(xiàn)象,表明加工速度比較穩(wěn)定;同時3臺機床加工出的工件經(jīng)測量一致性很好。

          實驗結果表明:采用CAN總線的DNC通信系統(tǒng),傳輸距離遠,抗干擾能力強,實時性好。

        5 結束語

          基于CAN Bus的低成本, 高可靠性的DNC通信系統(tǒng)可將普通數(shù)控機床與計算機網(wǎng)絡連接起來, 使異地CAD /CAM系統(tǒng)生成的NC代碼可以直接遠程控制數(shù)控機床進行加工, 同時允許多臺機床并行工作, 并具有一定的故障監(jiān)測功能, 實現(xiàn)機床NC代碼的可重用性, 從根本上提高了數(shù)控機床的加工效率。


        上一頁 1 2 下一頁

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 柳河县| 鲁甸县| 麻栗坡县| 平遥县| 林西县| 家居| 石渠县| 云浮市| 万州区| 库尔勒市| 凉山| 辽阳市| 永嘉县| 龙游县| 怀来县| 景宁| 镇坪县| 盈江县| 都兰县| 资阳市| 衡南县| 宁都县| 昌江| 陆川县| 镶黄旗| 扶绥县| 依安县| 牟定县| 抚州市| 澄江县| 望奎县| 镇安县| 大石桥市| 炎陵县| 精河县| 太谷县| 大安市| 桂东县| 鄄城县| 汶上县| 嘉祥县|