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

基于PMAC的开放式数控系统的研制

发布时间:2014-08-18 作者:刘恒娟  来源:万方数据
关键字:PMAC 数控系统 开放式 CNC 
文章首先概述了数控系统的发展现状,然后介绍了PMAC 多轴运动控制器的特点,设计了一套以PMAC 为核心,工业PC 为系统支撑,运行在Windows 平台上的主从式开放式数控系统,并阐述了该系统的硬件结构和软件设计。

4 系统的软件设计

  在Windows2000 操作系统下,以Visual Basic6. 0为开发工具采用面向对象的编程方法,充分利用控制卡配套的动态链接库中的函数,对开放式数控系统软件进行了开发,实现了数控系统的基本功能。具体实现的功能包括:Windows 风格的人机接口界面、系统初始化预处理、工作方式的选择、手轮跟踪进给、机床状态的监控、坐标位置和转速的实时显示、加工程序段及轨迹图形跟踪显示、运动程序的编制及下载,数控程序的译码、内置PLC功能等。系统软件主界面如图2所示。

系统软件主界面
图2 系统软件主界面

  4.1 系统初始化

  系统的初始化在系统主界面窗口调入的过程中完成,主要进行PMAC 卡参数的预置、电机返回原点以及与服务器建立TCP/ IP 连接。初始化子过程如下:

  Private Sub Form load()
   Call OpenPmacDevice (0) ′起动PMAC 卡
   Call PmacFlush(0) ′清空PMAC 内存缓冲区
   Call PmacDPRControlPanel (0 , 1) ′置控制面板功能
   Call PmacSendLineA(0 ,
  ″# 1j/ # 3j/ # 4j/ # 1hm # 3hm # 4hm″) ′电机闭环控制并返回原点

   tcpclient. RemoteHost = ″192. 168. 142. 10″′指定远程主机
  IP 地址
   tcpclient. RemotePort = 1000 ′初始化端口
   tcpclient. Close ′关闭连接
   tcpclient. Connect ′请求与主机连接
  End Sub

  4.2 工作方式的选择

  本系统设有7 种工作方式,Auto 、Mdi 、Step 、Handle、Rapid、Jog、Home。各种工作方式间实现了互锁,系统不能同时工作于两种方式下。在机床运行期间,方式选择无效。图3 所示的是方式选择的程序流程图。方式选择的实现使用了一组OptionButton控件,使用Case 语句触发各方式,并利用PictureBox控件使用贴图的方式点亮所选工作方式。方式选择之前使用条件判断语句确定机床是否处于程序运动状态,若是,屏蔽方式选择操作。

工作方式选择流程图
 图3  工作方式选择流程图

  4.3 手轮跟踪进给( Handle)

  手轮直接连接PMAC 的控制面板(Control Panel) 接口J2 ,接好手轮的四个端子:HWCA、HWCB、+ 5V、GND。关闭伺服,摇动手轮,ENC2 的坐标值稳定均匀变化。

  手轮脉冲编码器必须占用一个码盘信号输入口,跳上短接块E22 和E23 , 手轮输入就连接至PMAC 的第2 编码计数器ENC2 ,ENC2 上不能再接任何其它编码器,而且要保证跳线E26接在1、2 脚上。

  控制面板的输入使能由参数I2控制,设置I2=0 ,启动控制面板输入功能。

  控制面板各输入点原始状态位都为1,当前轴的选择由选择位FPD0~ FPD3通过外部轴选择开关指定,如表1所示。

轴选择位

  4.4 机床状态的监控、进给轴坐标值和转速的实时显示

  这里利用了Timer 定时器控件。系统的每坐标每轴的状态以及各种参数变量都存在PMAC 内存中,分别用M变量去指向各状态,可通过操作M变量进行状态的读取和参数的写入以及完成I/O口的控制,部分程序代码如下:

  Private Sub Timer1 Timer ()
   Dim limit1p ,limit1n ,imit3p ,limit3n , limit4p , limit4n As
  String
   Dim PosX, PosY, PosZ, responsex , responsey , responsez As
  String 3 255
   If tcpClient. State = 7 Then ′若已与主机通讯连接,网络指示灯闪烁
  If Picture12 = LoadPicture () Then
     Picture12 = LoadPicture (″E: \ . . . . . . \ red. bmp″)
    Else : Picture12 = LoadPicture ()
    End If
   End If
   Call PmacGetResponseA(0 , limit1p , 2 , ″m121″) ′读取极限状态
   Call PmacGetResponseA(0 , limit1n , 2 , ″m122″)
   If Val (limit1p) = 1 Or Val (limit1n) = 1 Then
    If Picture6 = LoadPicture () Then
    Picture6 = LoadPicture (″E: \ . . . \ red. bmp″) ′指示极限状态,红灯亮
    End If
    Else : Picture6 = LoadPicture ()
   End If
   Call PmacGetResponseA(0 , PosX, 255 , ″m162″) ′取# 1 位置实际值
   Poslabel (0) . Caption = Format (Val (PosX) / 4000/ 32/ 96 ,
  ″# # # # 0. 000″)
  ′将单位转换为mm
   Call PmacGetResponseA(0 , responsex , 255 , ″m166″) ′取# 1 实际速度
   Speedx. Text = Format (Val (responsex) 3 8388608 /3713707 3 60 / 24 , ″# # # # 0. 000″) &″rpm″

  . . . . . .
  End Sub

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