基于TCP/IP协议的数控机床伺服调整方法与流程

文档序号:11153363阅读:1027来源:国知局
基于TCP/IP协议的数控机床伺服调整方法与制造工艺

本发明涉及数控机床的技术领域,特别涉及一种基于TCP/IP协议的数控机床伺服调整方法。



背景技术:

随着现代科技的发展,对数控系统的精度速度要求越来越高。通过调整数控系统有关伺服的参数是实现更高速度更高精度地加工的一种有效且常用的办法。而目前数控机床在加工过程中不能直观地反应出机床电机的运行细节信息,操作员只能凭借数控系统上基本的运行信息并结合自身经验来定制数控系统的伺服参数。因此,传统的伺服调整方法使数控系统的加工精度和加工速度受到人为因数影响,并存在使用不便的问题。当前计算机和网络技术的迅速发展,为伺服电机的实时数据、动态显示和分析提供了必要的前提和条件,网络技术的发展也为数控系统的数据传输提供了方便。利用计算机强大的运算能力更能迅速准确地分析出数控机床的运行过程和状态。为此,基于TCP/IP的数控机床伺服调整方法的计算机软件将能直观地体现伺服数据、并能实现实时调整数控系统伺服参数,以使机床更高效地工作。



技术实现要素:

本发明的目的在于克服现有数控系统在进行伺服参数调整时操作不便,伺服数据不能实时直观体现等缺点,提供一种基于TCP/IP协议的数控机床伺服调整方法。

为了到达上述目的,本发明采用以下技术方案:

本发明基于TCP/IP协议的数控机床伺服调整方法,包括下述步骤:

S1、启动数控系统,创建网络通信线程,初始化网络服务器并绑定端口和IP,等待客户端请求连接;

S2、当客户端和数控系统建立连接后,数控系统等待客户端发送各种命令数据包,如果在指定时间内客户端和数控系统没有进行任何数据通信,则数控系统将使用ping校验连接是否已断开;

S3、当客户端和数控系统建立连接后,用户客户端上可以查看伺服参数、上传伺服参数、采集数控机床伺服数据、分析和显示伺服波形,各操作互不影响,可同时进行,实现数控机床伺服参数在客户端软件界面上边采集显示伺服波形,边微调伺服参数,最终制定更优的伺服参数使数控机床有更快的速度和更高的精度。

作为优选的技术方案,步骤S2中,数控系统将使用ping校验连接是否已断开的具体方法为:

当客户端与数控系统在一定的时间内没有按约定的数据包通信时,将通过ping函数命令去检测当前网络是否连接正常,不正常就报警提示处理;

数据包格式:关键字串+操作类型+当前包号+总包数+具体数据结构包。

作为优选的技术方案,步骤S3中,查看伺服参数的具体步骤如下:

S21、客户端给数控系统发送请求下载伺服参数的数据包;

S22、数控系统解析数据包,通过操作类型标志知道是下载伺服参数的请求,调用相关函数GSKRM_GetServoParam(hInst,int number,int valcnt,double*pval)取得相应参数信息;参数包括伺服驱动器内部参数;

S23、数控系统向客户端发送附带参数信息的数据包。

作为优选的技术方案,步骤S3中,所述的上传伺服参数的具体步骤如下:

S31、客户端给数控系统发送请求上传伺服参数的数据包;

S32、客户端给数控系统发送需要上传的伺服参数数据包;

S33、数控系统解析数据包,通过操作类型标志知道是上传伺服参数的请求,判断当前是否允许上传伺服参数,若允许,通过函数GSKRM_SetServoParam(hInst,int number,int valcnt,double*pval)发送伺服参数数据包,并应用到数控系统,若不允许,舍弃伺服参数数据包。

作为优选的技术方案,步骤S3中,所述的伺服数据具体数据内容如下:

S41、进给轴的指令位置量、电机驱动反馈的位置量、光栅尺反馈的位置量;

S42、主轴的指令脉冲数、电机驱动反馈的脉冲数;

S43、PID指令转速、实际转速;

S44、伺服指令电流、伺服实际电流。

作为优选的技术方案,所述的采集数控机床伺服数据的具体步骤如下:

S51、客户端请求建立额外的数据通信连接;

S52、当数据通信连接建立后,客户端给数控系统发送请求采集机床伺服数据的数据包;

S53、数控系统解析数据包,知道是采集机床伺服数据的请求,开始从DSP取得伺服数据并缓存在内存中;

S54、数控系统网络通信线程循环调用函数setRunMonitor(int monitorType,int spindle,int axis1,int axis2,int*cnt,struct PosUnit Pos[])从内存中取得伺服数据,并使用数据通信连接向客户端发送附带伺服数据的数据包,内存数据是为了多线程运行时,提高线程并发处理而设置的多段数据的缓冲结构,从而避免因数据未及时取走而丢失数据的情况;

S55、客户端循环接收附带伺服数据的数据包,并缓存在计算机内存中。

作为优选的技术方案,步骤S52和步骤S53中,利用伺服数据的位移数据计算数控机床进给轴的进给速度、进给加速度,选择使用一阶惯性滤波及其滤波系数滤去其高频信号,观察其变化趋势;对于数控机床电机的转速、位移、电流伺服数据,直接绘制到用户界面上;对于具体的图形,直线插补的误差分析,用户可获取直线的方差、最小二乘法拟合直线的角度、和直线度;圆弧插补的误差分析,用户可诊断反向间隙、反向跃冲、比例不匹配误差。

作为优选的技术方案,所述的分析和显示伺服波形的具体步骤如下:

S61、客户端选择需要显示的伺服数据波形;

S62、客户端界面线程准备从内存中取出伺服数据并绘制相应曲线;

S63、客户端在接收到伺服数据后通知界面线程从内存取出伺服数据继续绘制相应曲线。

本发明与现有技术相比,具有如下优点和有益效果:

1、本发明使用计算机分析伺服数据,运算准确、快速,操作方便。

2、本发明可把数控机床加工过程的伺服数据绘制成实时曲线,伺服电机数据细节清楚地体现在显示屏上。

3、本发明可以边观察伺服数据及其绘制的曲线,边调整伺服参数,使操作者更容易了解数控系统伺服参数对电机的影响。

附图说明

图1是本发明数控系统端网络模块框架图;

图2是本发明客户端软件网络模块框架图;

图3是本发明计算机客户端软件伺服数据处理流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

如图1所示,基于嵌入式linux操作系统,实现TCP/IP的数控系统网络服务器模块。网络服务器主要由网络通信模块和网络业务处理模块组成。网络通信模块基于linux API的select模型设计,面向多客户端,多连接,负责接受和管理客户端的连接、接收数据包、发送数据包。数控系统启动后,启动网络通信线程,初始化服务器响应连接请求的socket,并把该socket加入到select模型的监听集合里。当有客户端请求连接时,得到与客户端通信的新socket,继续把该socket加入select模型的监听集合里。服务器使用类似于FTP连接协议模式,分为主连接和数据连接。主连接负责通信特定大小的命令数据包,数据连接负责通信数据流,数控系统服务器发送伺服数据到客户端使用数据连接,数据连接依附于主连接,当主连接断开时,数据连接自动断开。建立连接后,客户端通过发送数据包(ATTR_HOSTPORT)来告知服务器该连接(socket)是依附到哪个主连接的数据连接或独立的主连接。网络业务处理模块即负责解析数据包,根据数据包包头的指令来执行相应的操作,需要发送数据包到客户端时即把数据包投递到网络通信模块。

如图2所示,由于数控系统服务器支持多个socket同时通信,为了实现采集伺服数据的同时可以上传参数,实现各操作相互独立,互不影响,客户端网络模块使用了多socket多线程的方式。当客户端软件启动后,点击【开始】菜单的【新建终端】子菜单,输入IP、端口号,新建一个CNC的连接,将创建一个网络通信对象(netClient)。用户点击菜单栏的【操作】菜单中的【连接】子菜单,netClient将创建线程A,初始化socket0,使用socket0请求数控系统服务器建立连接。当连接建立后,发送命令数据包(ATTR_HOSTPORT),指定该连接为主连接。此时,线程A通知界面线程连接数控系统服务器已成功,接着进入select模型的循环中监听socket0,随时接收数控系统服务器的应答数据包。用户点击【参数】按钮,界面线程调用netClient的方法,通过socket0发送请求下载参数的命令数据包(PARAM_OPT)。服务器处理后,将发送命令数据包(PARAM_OPT)及相应参数数据到socket0。线程A的select模型监听到有数据来时,接收并解析命令数据包,判断是下载参数的应答命令,继续接收后续附带参数信息的数据包,并压入netClient的缓存队列中。接收完毕后,线程A发送信号通知界面从参数信息缓存队列中读取参数并显示。同理,用户点击参数窗口下的【上传】按钮,界面线程调用netClient的方法,通过socket0发送请求上传参数的命令数据包(PARAM_OPT),接着发送附带参数信息的数据包。服务器处理后,回发应答命令数据包(PARAM_OPT),并回发成功上传的参数信息数据包,线程A接收并解析命令数据包,接收参数信息,通知界面读取参数缓存队列,界面即确认成功上传的参数。用户需要采集并分析伺服数据时,点击【采集】按钮,此时,界面线程通过netClient的方法创建线程B,并初始化socket1,请求与数控系统服务器建立连接。连接成功后,发送命令数据包(ATTR_HOSTPORT),指定socket0为其依附的主连接,即当socket0建立的连接断开时,socket1会断开连接并结束线程B。指定连接属性后,线程B通知界面线程数据连接已就绪,接着进入select模型监听socket1,随时接收数控系统服务器发送的数据包。界面线程得知数据连接已就绪后,通过netClient对象,使用socket1发送命令数据包(MONITOR_OPT)请求采集伺服数据。数控系统服务器解析命令数据包,开始从DSP循环读取n组伺服数据,发送命令数据包和n组伺服数据包到socket1。线程B的select模型监听到socket1有数据到来,先接收并解析命令数据包,得知接着有n组伺服数据,再接收伺服数据数据包。每接收到一组,压入伺服数据缓存队列中,接收完n组伺服数据后,线程B发送信号通知界面线程可以取出伺服数据。

如图3所示,用户通过点击【分析】按钮,在弹出的窗口中选择需要显示的曲线。界面线程判断当前伺服数据缓存队列是否存在数据,若存在,调用对应的函数计算曲线纵坐标和横坐标,并绘制到界面上的坐标系。若不存在,即在界面线程接收到网络通信线程发送信号才从伺服数据缓存队列读取数据,同理,调用对应函数计算曲线纵坐标和横坐标,并绘制到界面的坐标系。在伺服数据采集过程,客户端软件的网络通信线程每接收到n组数据发送一次信号通知界面线程读取数据并绘图,实现了一个边采集边绘图的过程,同时也不影响参数的上传。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1