最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

基于CAN总线的数控机床DNC通信系统设计

发布时间:2014-10-25 作者:韩庆瑶 李 贺  来源:万方数据
关键字:CAN 总线 数控机床 DNC 
目前,国内数控加工多为分散加工,网络化程度低,效率有待提高。利用CAN总线可实现工控计算机与数控机床高效DNC(DirectNumericalControlorDistributedNumericalControl)联网通信。采用C8051F040微控制器为核心构成通信节点电路,以CAN总线连接上位机与多台数控机床,实现数控机床的直接数字控制与并行加工,提高了数控机床管理水平和加工效率。

3 软件设计

  软件设计包括2部分内容:下位机CAN通信软件和上位机服务器软件。CAN 通信软件主要有两方面功能: 一是对C8051F040内部CAN控制器的相关寄存器进行初始化配置,包括协议寄存器,消息对象接口寄存器,消息处理器寄存器等;二是控制收发缓冲区的读写,完成数据交换。

  处理器将上位机送来的控制指令或NC程序,通过写入内部的CAN数据寄存器来传送给下位机数控机床,又可读取机床写入寄存器的数据发送给控制服务器。因此, CAN通信软件主要包括系统初始化程序、发送程序、接收程序等。采用C结构化程序设计方案,具有较好的模块性和可移植性,对不同系统功能或应用环境,可方便进行编程重组。

  3.1 系统初始化程序

  初始化程序主要完成初始化设置CAN 控制寄存器(CANOCN) 、位定时寄存器(B ITREG) ,初始化发送报文对象和接收报文对象。其中,位定时寄存器的设置较复杂,使用8MHz外部晶振, CAN通信速率为500 k / s,得到B ITREG的初始值为0x2301。对象初始化、发送和接收初始化完成后启动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状态机制
  }

  3.2 发送程序

  CAN报文发送由CAN控制器自动完成,只需根据接收的远程帧识别符将对应数据转移到发送缓冲寄存器,将此报文对象编码写入命令请求寄存器启动发送即可。使用定时更新发送报文对象中的数据,数据的发送由控制器硬件自动完成,当其收到一个远程帧时,就将相同识别符的数据帧发送出去。发送程序结构如下:

  void send2message ( charMsgNum)
  {
  uchar j;
  SFRPAGE =CAN02PAGE; / /指向CAN0页面
  CAN0ADR = IF1CMDMSK; / /向IF1命令屏蔽寄存器写入命令
  CAN0DAT = 0x0083; / /位率为500 k / s
  CAN0ADR = IF1ARB2; / /指向IF1仲裁寄存器2
  CAN0DATH = 0x80;
  CAN0ADR = IF1DATA1; / /指向数据场首字节
  for( i = 0; i < 4; i ++ )
  {CAN0DATH = can2 temp [ i ] ; } / /将4 Byte数据写入发送Buffer
  CAN0ADR = IF1CMDRQST;
  CAN0DATL =MsgNum; / /写入报文对象编号,数据发送到对应报文对象
  }

  3.3 接收程序

  CAN报文的接收与发送一样,由CAN控制器自动完成,接收程序只需从接收缓存器中读取接收的数据,再进行相应处理即可。基本方法与发送程序一致,只是接收程序采用中断方式。此应用中,主要接收上位机对机床编号的选择,参数设置和NC控制程序以及相反流程的机床状态信息等。接收程序结构如下:

  void receive2data ( void)
  {
  SFRPAGE =CAN02 PAGE; / /指向CAN0页面
  CAN0ADR = IF2CMDMSK; / /向IF2命令屏蔽寄存器写命令
  CAN0DATH = 0x00;
  CAN0DATL = 0x3F; / /位率为500 k / s
  CAN0ADR = IF2CMDRQST; / /将报文对象编号写入命令请求寄存器,对应接收
  CAN0DATL =MsgNum; / /得到数据就从报文RAM移到数据Buffer中
  CAN0ADR = IF2DATA1; / /指向数据场首字节
  for( i = 0; i < 4; i ++ )
   { CAN2RX[ i] =CAN0DAT; } / /读取4Byte数据
  }

  3.4 上位机服务器软件

  上位机服务器软件主要功能有NC程序文件数据管理,数控机床的编号管理,数据发送,通信接点及下位机状态监测,下位机数据的上传等,软件功能结构图见图5。软件的规模较大,属于典型的C \S(客户\服务器)模式软件。采用Delphi7. 0进行开发。利用Delphi下安装SPCOMM控件实现串口通信[ 4 ]。由于涉及到文件管理,需要管理多个文件,按加工顺序传输,需要建立数据库系统。采用MicrosoftOffice Access数据库软件建立数据库管理系统。

上位机软件结构

图5 上位机软件结构

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。