新聞中心

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

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

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

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

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

  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ù)接收的遠程幀識別符將對應(yīng)數(shù)據(jù)轉(zhuǎn)移到發(fā)送緩沖寄存器,將此報文對象編碼寫入命令請求寄存器啟動發(fā)送即可。使用定時更新發(fā)送報文對象中的數(shù)據(jù),數(shù)據(jù)的發(fā)送由控制器硬件自動完成,當(dāng)其收到一個遠程幀時,就將相同識別符的數(shù)據(jù)幀發(fā)送出去。發(fā)送程序結(jié)構(gòu)如下:

  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ā)送到對應(yīng)報文對象
  }

  3.3 接收程序

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

  void receive2data ( void)
  {
  SFRPAGE =CAN02 PAGE; / /指向CAN0頁面
  CAN0ADR = IF2CMDMSK; / /向IF2命令屏蔽寄存器寫命令
  CAN0DATH = 0x00;
  CAN0DATL = 0x3F; / /位率為500 k / s
  CAN0ADR = IF2CMDRQST; / /將報文對象編號寫入命令請求寄存器,對應(yīng)接收
  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 上位機服務(wù)器軟件

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

上位機軟件結(jié)構(gòu)

圖5 上位機軟件結(jié)構(gòu)

4 設(shè)計實驗結(jié)果

  實驗機床為CAK6136V /750型數(shù)控機床3臺;實驗環(huán)境為該校工程訓(xùn)練中心機加工車間強干擾工業(yè)環(huán)境,并在實驗過程中啟動電火花加工機床、線切割機床等強干擾源。實驗中,上位機分別向3 臺數(shù)控機床發(fā)送4 Byte測試數(shù)據(jù),機床接收后立即向上位機返回所接收數(shù)據(jù),系統(tǒng)驗證數(shù)據(jù)正確后繼續(xù)發(fā)送數(shù)據(jù),直到數(shù)據(jù)出錯或通信次數(shù)達到預(yù)設(shè)循環(huán)時停止發(fā)送。實驗中CAN總線波特率設(shè)置為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)響應(yīng)滿足數(shù)控加工要求。由于通信節(jié)點電路及電源電路都設(shè)計了特殊的抗干擾措施,并得益于CAN總線的高可靠特性,實驗實現(xiàn)了快速響應(yīng)下極低的數(shù)據(jù)傳輸錯誤率。

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

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

5 結(jié)束語

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


上一頁 1 2 下一頁

評論


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

關(guān)閉