首页> 中国专利> 基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法

基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法

摘要

本发明公开了基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,包括下述步骤:S1、开启数控系统,创建网络线程,进行绑定端口和IP,S2、端口和IP绑定好后,就一直监听,看是否有客户端连接;S3、当客户端和数控系统建立好连接后,启动定时器,向数控系统发送自定义心跳包;S4、当客户端和数控系统建立好连接后,用户在用户界面上进行NC文件列表,进行上传NC程序,下载NC程序,删除NC程序以及进行DNC传输加工和停止传输加工的操作。本发明以数控系统当作服务器,用户计算机当作客户端构建以TCP/IP为底层协议、双绞线作为通信介质的网络环境,使用TCP/IP协议作发送信息的通信协议,提供数据传输率和抗干扰的能力,同时更加方便与Internet连接,实现数据共享。

著录项

  • 公开/公告号CN103064391A

    专利类型发明专利

  • 公开/公告日2013-04-24

    原文格式PDF

  • 申请/专利权人 广州数控设备有限公司;

    申请/专利号CN201210583921.6

  • 发明设计人 李志波;

    申请日2012-12-28

  • 分类号G05B19/418(20060101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人陈燕娴

  • 地址 510530 广东省广州市萝岗区云埔工业区观达路22号

  • 入库时间 2024-02-19 19:06:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-11-18

    授权

    授权

  • 2013-05-29

    实质审查的生效 IPC(主分类):G05B19/418 申请日:20121228

    实质审查的生效

  • 2013-04-24

    公开

    公开

说明书

技术领域

本发明涉及数控机床的技术领域,特别涉及一种基于TCP/IP协议及Linux 网络编程的数控系统远程DNC控制方法。

背景技术

数控机床网络DNC技术在我国经过二十多年的发展,也经历了从纸带到单 机,再到简单网络,最后发展成为高级网络的艰苦历程。21世纪无疑是一个网 络的时代。随着今年来嵌入式操作系统的不断进步和深入,为数控系统升级换 代提供了必要的前提和条件。人们越来越多地使用这些高新技术来提高自己的 生产效率,采用网络技术来管理数控机床也就成为必然。但现在大多数控系统 采用RS-232串行通信协议。RS-232的缺点较多如传输距离受限制,组网困难, 传输效率低、使用前需要配置波特率、抗干扰能力差等。为此基于Linux的数 控系统采用TCP/IP协议实现远程DNC传输体现了不受距离限制、组网容易、传 输效率高、系统兼容性和互操作性好、资源共享能力强,可以很容易的实现将控 制现场的数据与信息系统上的资源共享、易与Internet连接、低成本、与计算 机、服务器的接口十分方便等优点。为数控系统的统一管理和监控提供了必要 的前提和环境。

发明内容

本发明的目的在于克服现有数控系统远程DNC组网困难、传输效率低、易 受干扰、传输距离受限等缺点,提供一种基于TCP/IP协议及Linux网络编程的 数控系统远程DNC控制方法。

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

本发明基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,包 括下述步骤:

S1、开启数控系统,创建网络线程,并且在网络线程里面初始化网络服务 器端,进行绑定端口和IP,

S2、端口和IP绑定好后,就一直监听,看是否有客户端连接,如无,则一 直监听,如有,则建立与该客户端的连接;

S3、当客户端和数控系统建立好连接后,启动定时器,向数控系统发送自 定义心跳包,若数控系统端接收不到心跳包则进行ping校验,如果在进行ping 校验时可以接收到数据则说明网络状态正常,如果多次ping校验也不通说明断 线;

S4、当客户端和数控系统建立好连接后,用户在用户界面上进行NC文件列 表,上传NC程序,下载NC程序,删除NC程序以及进行DNC传输加工和停止传输加 工的操作(各个操作相互独立,互不影响)。

所述查看NC文件的具体步骤如下:

S21、客户端给数控系统发送数据包;

S22、服务器端接收到后,在解析命令函数里面查询,找到对应的处理函数, 在处理函数里面得到NC文件列表指针;

S23、数控系统向客户端发送命令数据包回应数据包,发完后数控系统开始 发送文件列表信息到客户端;

S24、客户端接收到数控系统发送的返回命令后就开始准备接收文件列表内 容,直到接收完成。

所述下载NC程序的具体步骤如下:

S31、选取NC文件列表中的一个NC程序;

S32、客户端向数控系统发送下载程序命令,数控系统进行解析,解析完成 后找到相应的处理函数进行处理;

S33、在检测完一些网络状态后向客户端发送回复命令、附加文件名以及文 件大小的先关信息,然后开始将读取的数据向客户端发送;

S34、客户端在接到客户端返回的命令后就开始接收,接收时的数据偏移小 于文件大小时继续接收,当相等时结束接收。

所述上传NC程序具体步骤如下:

S41、选取要上传的文件,获取文件大小的相关信息;

S42、客户端向数控系统发送命令,客户端解析到后在对应的函数里进行处 理;

S43、在检查完一些相关的状态量后向客户端回发命令;

S44、客户端接收到回发命令后;先打开所需要上传的NC程序,然后发送一 个命令给数控系统,数控系统开始接收,直到接收到的文件等于所需要上传的 文件的大小时结束接收;

S45、更新NC文件列表信息,并向客户端发送更新后的NC程序列表信息。

所述删除NC程序的具体步骤如下:

S51、选择列表项中的程序;

S52、向数控系统发送删除文件命令,并将需要删除的文件的文件名也发送 过去;

S53、数控系统接收到命令后解析,然后在对应的函数里面进行处理;

S54、检测完文件是否可删后然后在NC文件链表里面删除对应的节点;

S55、向客户端发送NC文件列表,更行列表中的NC程序。

所述DNC传输加工的具体步骤如下:

S61、首先客户端发送DNC加工命令,然后发送查询状态命令,并启动两个 定时器,一个定时发送查询命令,一个定时发送发送数据命令;

S62、数控系统接收到查询命令后解析,然后在相应函数里面进行处理;先 检测运行模式及IO通道,不成立则发送提示信息回客户端;条件满足则将网络 状态设置为等待,然后激活DNC传输,创建DNC线程然后根据DNC状态机进行相应 的处理;

S63、数控系统接收处理完查询命令后,又接收到查询命令,客户端一直发 送该命令,数控系统接收解析完后,一直查询运行模式、DNC状态、网络线程状 态,若运行模式不是DNC、IO断开不正确,DNC的Socket未准备好,或者网络线 程未准备好则直接返回,不做处理,客户端一直发,一直查询直到满足条件;

S64、当都满足时数控系统向客户端发送开始DNC的命令,客户端接到后开 始准备发送;

S65、客户端接收到开始DNC的命令后,先打开并读取相应的NC程序,准备 好后给数控系统发送SEND_FILE_DNC,数控系统接收解析后再在相应的函数里面 进行处理,开始读取DNC传输数据,然后再接收数据;

S66、当客户端发送完成后会给数控系统发送结束DNC传输的命令,数控系 统继续发送1s行号,保证同步,然后重新设置网络标识量,关闭Socket,再将 DNC状态机设置为关闭,退出读取的循环,释放G代码,并初始化相应的数据结 构,退出DNC线程,结束加工。

进一步的,步骤S65中还包括,在网络线程接收的同时,DNC线程根据相应 的网络状态量进行读取NC代码程序,然后进行译码和加工,读取一段NC代码后 把网络标记设置为准备状态,每加工完一段NC代码后会判断当前文件指针指向 的行号和初始时的行号的差值是否大于1000,要是大于1000的话初始指针指向 该指针之后的100行,这样就释放掉了前面已加工的100代码,循环每次都检查 释放。

进一步的,步骤S61中,在进行DNC加工时客户端启动了两个定时器,一个 发送查询命令,查询是否可以进行传输,另一个发送开始发送数据命令,数控 系统接收解析后获取当前运行的行号,然后先给客户端回发返回行号的命令, 在发送相应的运行行号,客户端接收解析返回行号的命令后就开始接收行号, 这样运行的行号就一直向客户端发送,两边界面显示行号同步。

在进行DNC传输加工时,可以停止DNC传输加工,其具体步骤如下:

S101、客户端先销毁DNC传输加工时启动的两个定时器;

S102、如果数控系统正在运行的话先发送发送数据命令和一个附加参数, 再发送结束DNC传输命令,数控系统接收发送数据命令并解析后进行复位机床;

103、接收到结束DNC传输命令,然后和上面发送结束DNC传输命令一样结 束传输。

本发明相对于现有技术具有如下的优点及效果:

1、本发明使用TCP/IP协议作发送信息的通信协议,提供数据传输率和抗 干扰的能力。

2、本发明使用双绞线作为通信介质,有效地提高传输距离。

3、本发明使用TCP/IP协议作为通信协议,更加方便与Internet连接,实 现数据共享。

附图说明

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

图2是本发明网络交互流程图;

图3是本发明数控系统端DNC加工处理流程图。

具体实施方式

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

实施例

如图1所示,基于LAN9111的物理网卡,在嵌入式Linux的操作系统上实 现DNC在线传输加工和NC程序文件传输的功能。在服务器端的系统界面上采用 面向嵌入式系统的轻量级图形用户界面支持库MiniGUI进行开发。文件系统则 采用yaff文件系统,在内存管理方式上采用动静结合的管理机制。在标准的 TCP/IP协议基础上开发自定义的应用协议,上位机端给服务器(CNC端)发送 数据包,服务器端解析包头后根据包头信息做出相应的处理,回应上位机的操 作。

如图2所示,以数控系统端为服务器端,远程DNC软件为客户端。当数控 系统启动(开始)时就创建网络线程(thread_Socket),在网络线程里面初始 化网络服务器端(socket_init_server),进行绑定(bind)端口和IP,绑定好 后就一直监听,看是否有客户端连接,若无则一直监听。有的话就建立连接。 连接好了后循环调用解析命令的函数(socket_select_response),根据客户端 的请求命令进行相应的执行操作和命令响应。

客户端程序启动后若是想和数控系统进行通讯,则点击菜单项的连接系统, 设置相应的IP,点击确定后创建套接字(open),然后客户端和数控刺痛服务器 端进行连接(connect),连接不成功则返回,连接成功则创建接收线程、启动 定时器。接收线程里面根据我们自定义的通讯协议解析数据包,进行相对应的 操作和回应。

当客户端(PC)和数控系统建立好连接后,启动定时器,向数控系统端发 送自定义心跳包(KEEP_ALIVE)。若数控系统端接收不到心跳包则进行ping校 验,如果在进行ping校验时可以接收到数据则说明网络状态正常;要是多次ping 校验也不通才说明断线。这样就避免了由于一时断线或一时的网络信号不好导 致接收不到数据而网络断开的现象,从而达到防抖动和一时断线的目的。这样 客户端与数控系统间的网线意外断掉时,在一定时间内插上网线还可以继续进 行DNC加工。

当客户端(PC)和数控系统建立好连接后,用户可以在用户界面上进行相 应的操作:查看NC文件列表,上传NC程序,下载NC程序,删除NC程序以及 进行DNC传输加工和停止传输加工。

建立好连接后当用户想查看数控系统的NC文件列表时,点击【刷新】按钮, 客户端给数控系统发送数据包(GET_FILE_LIST),服务器端接收到后,在解析 命令函数(socket_sel_ect_response)里面查询,找到对应的处理函数 (socket_send_file_list),然后得到NC文件列表指针,数控系统向客户端发 送命令数据包回应数据包(SEND_FILE_LIST),发完后数控系统开始发送文件列 表信息到客户端。客户端接收到数控系统发送的返回命令(SEND_FILE_LIST) 后就开始准备接收文件列表内容,直到接收完成。这样客户端就得到了数控系 统NC文件列表信息。

当客户端要将数控系统的NC程序下载到本地主机时,选取NC文件列表中 的一个NC程序,点击客户端上的【下载程序】按钮,然后客户端向数控系统发 送下载程序命令(GET_FILE),数控系统进行解析,在处理函数 (socket_get_file)里面进行处理。在检测完一些网络状态后向客户端发送 SEND_FILE、附加文件名、文件大小等先关信息,然后开始将读取的数据向客户 端发送。客户端在接到SEND_FILE命令后就开始接收。接收时都数据偏移小于 文件大小时继续接收,当相等时结束接收。

当客户端要向数控系统端上传文件时,点击【上传程序】按钮。首先选取 要上传的文件,获取文件大小等相关信息后,客户端向数控系统发送 UPDATE_FILE命令,客户端解析到后在对应的函数socket_update_file里进行 处理。在检查完一些相关的状态量后向客户端回发命令(GET_FILE)。客户端接 收到GET_FILE后。先打开所需要上传的NC程序,然后发送一个命令SEND_FILE 给数控系统,数控系统开始接收,直到接收到的文件等于所需要上传的文件的 大小时结束接收。然后更新NC文件列表信息,并向客户端发送更新后的NC程 序列表信息。

当需要删除数控系统的NC程序时,先选择列表项中的程序,然后向数控系 统发送删除文件命令(DELETE_FILE),并将需要删除的文件的文件名也发送过 去。数控系统接收到命令后解析,然后找到相应的函数socket_remove_file函 数里面进行处理。检测完文件是否可删后然后在NC文件链表中删除对应的节点。 然后向客户端发送NC文件列表(socket_send_file_list),更新列表中的NC程 序。

如图3所示,当客户端与数控系统进行DNC传输加工时,首先客户端发送 DNC加工命令(UPDATE_FILE_DNC),然后再发送查询状态命令(QUERY_FILE_DNC), 并启动两个定时器,一个定时器一直发送查询命令(QUERY_FILE_DNC),一个定 时发送发送数据命令(SEND_DATA);数控系统接收到查询命令后解析,然后在相 应的函数(socket_update_file_dnc)里面进行处理;先检测运行模式,IO通道 等先关条件,不成立则发送提示信息回客户端;条件满足则将网络状态设置为 等待(SOCK_DNC_WAIT)状态,然后激活DNC传输,创建DNC线程然后根据DNC状 态机进行相应的处理;数控系统接收处理完查询命令后,又接收到查询命令 (QUERY_FILE_DNC),客户端一直发送该命令,数控系统接收解析完后,一直查 询运行模式,DNC状态,网络线程状态等相关信息,不满足则返回,不做处理, 客户端一直发,一直查询直到满足条件;当都满足时数控系统向客户端发送开 始DNC的命令(GET_FILE_DNC),客户端接到后开始准备发送。

客户端接收到开始DNC的命令(GET_FILE_DNC)后,先打开并读取相应的NC 程序,准备好后给数控系统发送开始发送DNC数据的命令(SEND_FILE_DNC),数 控系统接收解析后再在相应的函数(socket_send_file_dnc)里面准备接收处 理,然后开始读取DNC传输数据(dnc_read_net),然后在接收数据 (socket_recv_data)。在网络线程接收的同时,DNC线程根据相应的网络状态量 进行读取NC代码程序(dnc_gcode_load_buffer),然后进行译码…然后进行加 工,读取一段NC代码后把网络标记设置为准备状态(SOCK_DNC_READY),这样客 户端下次发送查询命令时就又能满足条件进行发送。每加工完一段NC代码后会 判断当前文件指针指向的行号和初始时的行号的差值是否大于1000,要是大于 1000的话初始指针指向该指针之后的100行,这样就释放掉了前面已加工的100 代码,循环每次都检查释放,这样保证已加载的程序不会超过1000行,从而节 省了内存空间。

在进行DNC加工时客户端启动了两个定时器,一个发送查询命令 (QUERY_FILE_DNC)查询是否可以进行传输,另一个发送数据命令(SEND_DATA), 数控系统接收解析后获取当前运行的行号(socket_send_mac_info),然后先给 客户端回发返回行号的命令(SEND_MAC_POS),再发送相应的运行行号。客户端 接收解析命令后就开始接收行号,这样运行的行号就一直向客户端发送,两边 界面显示行号同步。

当客户端发送完成后会给数控系统发送结束DNC传输的命令 (END_FILE_DNC),数控系统继续发送1s行号,保证同步,然后重新设置网络 标识量,关闭Socket(dnc_fopt->close),再将DNC状态机设置为DNC_CLOSE, 退出读取的循环,释放G代码,并初始化相应的数据结构,退出DNC线程,结 束加工。

当正在进行DNC传输加工时可以点击【停止传输】按钮停止DNC传输加工。 客户端先销毁DNC传输加工时启动的两个定时器,如果数控系统正在运行的话 先发送发送数据的命令(SEND_DATA)命令和一个附加参数,再发送结束DNC传 输的命令(END_FILE_DNC),数控系统接收发送数据命令后进行解析后进行复位 机床,然后接收到DNC传输命令(END_FILE_DNC),然后和上面发送END_FILE_DNC 一样结束传输。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号