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

文档序号:6265881阅读:314来源:国知局
专利名称:基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法
技术领域
本发明涉及数控机床的技术领域,特别涉及一种基于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传输的命令,数控系统继续 发送Is行号,保证同步,然后重新设置网络标识量,关闭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软件为客户端。当数控系统启动(开始)时就创建网络线程(threacLSocket),在网络线程里面初始化网络服务器端 (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),服务器端接收到后,在解析命令函数(S0Cket_ sel_ect_response)里面查询,找到对应的处理函数(socket_send_f ile_list),然后得到NC文件列表指针,数控系统向客户端发送命令数据包回应数据包(SEND_FILE_LIST),发完后数控系统开始发送文件列表信息到客户端。客户端接收到数控系统发送的返回命令 (SEND_FILE_LIST)后就开始准备接收文件列表内容,直到接收完成。这样客户端就得到了数控系统NC文件列表信息。
当客户端要将数控系统的NC程序下载到本地主机时,选取NC文件列表中的一个NC程序,点击客户端上的下载程序按钮,然后客户端向数控系统发送下载程序命令 (GET_FILE),数控系统进行解析,在处理函数(S0Cket_get_file)里面进行处理。在检测完一些网络状态后向客户端发送SEND_FILE、附加文件名、文件大小等先关信息,然后开始将读取的数据向客户端发送。客户端在接到SEND_FILE命令后就开始接收。接收时都数据偏移小于文件大小时继续接收,当相等时结束接收。
当客户端要向数控系统端上传文件时,点击上传程序按钮。首先选取要上传的文件,获取文件大小等相关信息后,客户端向数控系统发送 UPDATE_FILE命令,客户端解析到后在对应的函数socket_update_file里进行处理。在检查完一些相关的状态量后向客户端回发命令(GET_FILE)。客户端接收到GET_FILE后。先打开所需要上传的NC程序,然后发送一个命令SEND_FILE给数控系统,数控系统开始接收,直到接收到的文件等于所需要上传的文件的大小时结束接收。然后更新NC文件列表信息,并向客户端发送更新后的NC 程序列表信息。
当需要删除数控系统的NC程序时,先选择列表项中的程序,然后向数控系统发送删除文件命令(DELETE_FILE),并将需要删除的文件的文件名也发送过去。数控系统接收到命令后解析,然后找到相应的函数s0Cket_rem0Ve_file函数里面进行处理。检测完文件是否可删后然后在NC文件链表中删除对应的节点。然后向客户端发送NC文件列表(S0Cket_ send_file_list),更新列表中的NC程序。
如图3所示,当客户端与数控系统进行DNC传输加工时,首先客户端发送DNC加工命令(UPDATE_FILE_DNC),然后再发送查询状态命令(QUERY_FILE_DNC),并启动两个定时器,一个定时器一直发送查询命令(QUERY_FILE_DNC),一个定时发送发送数据命令(SEND_ DATA);数控系统接收到查询命令后解析,然后在相应的函数(socket_update_file_dnc) 里面进行处理;先检测运行模式,IO通道等先关条件,不成立则发送提示信息回客户端;条件满足则将网络状态设置为等待(S0CK_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_gC0de_l0ad_bUffer),然后进行译码…然后进行加工,读取一段NC代码后把网络标记设置为准备状态(S0CK_DNC_READY),这样客户端下次发送查询命令时就又能满足条件进行发送。每加工完一段NC代码后会判断当前文件指针指向 的行号和初始时的行号的差值是否大于1000,要是大于1000的话初始指针指向该指针之后的100行,这样就释放掉了前面已加工的100代码,循环每次都检查释放,这样保证已加载的程序不会超过1000行,从而节省了内存空间。
在进行DNC加工时客户端启动了两个定时器,一个发送查询命令(QUERY_FILE_ DNC)查询是否可以进行传输,另一个发送数据命令(SEND_DATA),数控系统接收解析后获取当前运行的行号(socket_send_mac_info),然后先给客户端回发返回行号的命令(SEND_ MAC_P0S),再发送相应的运行行号。客户端接收解析命令后就开始接收行号,这样运行的行号就一直向客户端发送,两边界面显示行号同步。
当客户端发送完成后会给数控系统发送结束DNC传输的命令(END_FILE_DNC), 数控系统继续发送Is行号,保证同步,然后重新设置网络标识量,关闭Socket (dnc_ fopt->close),再将DNC状态机设置为DNC_CL0SE,退出读取的循环,释放G代码,并初始化相应的数据结构,退出DNC线程,结束加工。
当正在进行DNC传输加工时可以点击停止传输按钮停止DNC传输加工。客户端先销毁DNC传输加工时启动的两个定时器,如果数控系统正在运行的话先发送发送数据的命令(SEND_DATA)命令和一个附加参数,再发送结束DNC传输的命令(END_FILE_DNC),数控系统接收发送数据命令后进行解析后进行复位机床,然后接收到DNC传输命令(END_FILE_ DNC),然后和上面发送END_FILE_DNC —样结束传 输。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围之内。
权利要求
1.一种基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,包括下述步骤51、开启数控系统,创建网络线程,并且在网络线程里面初始化网络服务器端,进行绑定端口和IP,52、端口和IP绑定好后,就一直监听,看是否有客户端连接,如无,则一直监听,如有, 则建立与该客户端的连接;53、当客户端和数控系统建立好连接后,启动定时器,向数控系统发送自定义心跳包, 若数控系统端接收不到心跳包则进行Ping校验,如果在进行ping校验时可以接收到数据则说明网络状态正常,如果多次Ping校验也不通说明断线;54、当客户端和数控系统建立好连接后,用户在用户界面上进行NC文件列表,上传NC 程序,下载NC程序,删除NC程序以及进行DNC传输加工和停止传输加工的操作。
2.根据权利要求1所述的基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,查看NC文件的具体步骤如下521、客户端给数控系统发送数据包;522、服务器端接收到后,在解析命令函数里面查询,找到对应的处理函数,在处理函数里面得到NC文件列表指针;523、数控系统向客户端发送命令数据包回应数据包,发完后数控系统开始发送文件列表信息到客户端;524、客户端接收到数控系统发送的返回命令后就开始准备接收文件列表内容,直到接收完成。
3.根据权利要求1所述的基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,所述下载NC程序的具体步骤如下531、选取NC文件列表中的一个NC程序;532、客户端向数控系统发送下载程序命令,数控系统进行解析,解析完成后找到相应的处理函数进行处理;533、在检测完一些网络状态后向客户端发送回复命令、附加文件名以及文件大小的先关信息,然后开始将读取的数据向客户端发送;534、客户端在接到客户端返回的命令后就开始接收,接收时的数据偏移小于文件大小时继续接收,当相等时结束接收。
4.根据权利要求1所述的基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,所述上传NC程序具体步骤如下541、选取要上传的文件,获取文件大小的相关信息;542、客户端向数控系统发送命令,客户端解析到后在对应的函数里进行处理;543、在检查完一些相关的状态量后向客户端回发命令;544、客户端接收到回发命令后;先打开所需要上传的NC程序,然后发送一个命令给数控系统,数控系统开始接收,直到接收到的文件等于所需要上传的文件的大小时结束接收;545、更新NC文件列表信息,并向客户端发送更新后的NC程序列表信息。
5.根据权利要求1所述的基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,所述删除NC程序的具体步骤如下s51、选择列表项中的程序;s52、向数控系统发送删除文件命令,并将需要删除的文件的文件名也发送过去;s53、数控系统接收到命令后解析,然后在对应的函数里面进行处理;s54、检测完文件是否可删后然后在NC文件链表里面删除对应的节点;s55、向客户端发送NC文件列表,更行列表中的NC程序。
6.根据权利要求1所述的基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,所述DNC传输加工的具体步骤如下561、首先客户端发送DNC加工命令,然后发送查询状态命令,并启动两个定时器,一个定时发送查询命令,一个定时发送发送数据命令;562、数控系统接收到查询命令后解析,然后在相应函数里面进行处理;先检测运行模式及IO通道,不成立则发送提示信息回客户端;条件满足则将网络状态设置为等待,然后激活DNC传输,创建DNC线程然后根据DNC状态机进行相应的处理;563、数控系统接收处理完查询命令后,又接收到查询命令,客户端一直发送该命令,数控系统接收解析完后,一直查询运行模式、DNC状态和网络线程状态,一直查询运行模式, DNC状态,网络线程状态等相关信息,不满足则返回,不做处理,客户端一直发,一直查询直到满足条件;564、当都满足时数控系统向客户端发送开始DNC的命令,客户端接到后开始准备发送;565、客户端接收到开始DNC的命令后,先打开并读取相应的NC程序,准备好后给数控系统发送SEND_FILE_DNC,数控系统接收解析后再在相应的函数里面进行处理,开始读取 DNC传输数据,然后再接收数据;566、当客户端发送完成后会给数控系统发送结束DNC传输的命令,数控系统继续发送 Is行号,保证同步,然后重新设置网络标识量,关闭Socket,再将DNC状态机设置为关闭,退出读取的循环,释放G代码,并初始化相应的数据结构,退出DNC线程,结束加工。
7.根据权利要求6所述的基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,步骤S65中还包括,在网络线程接收的同时,DNC线程根据相应的网络状态量进行读取NC代码程序,然后进行译码和加工,读取一段NC代码后把网络标记设置为准备状态,每加工完一段NC代码后会判断当前文件指针指向的行号和初始时的行号的差值是否大于1000,要是大于1000的话初始指针指向该指针之后的100行,这样就释放掉了前面已加工的100代码,循环每次都检查释放。
8.根据权利要求6所述基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,步骤S61中,在进行DNC加工时客户端启动了两个定时器,一个发送查询命令,查询是否可以进行传输,另一个发送开始发送数据命令,数控系统接收解析后获取当前运行的行号,然后先给客户端回发返回行号的命令,在发送相应的运行行号,客户端接收解析返回行号的命令后就开始接收行号,这样运行的行号就一直向客户端发送,两边界面显示行号同步。
9.根据权利要求1所述的基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,其特征在于,在进行DNC传输加工时,可以停止DNC传输加工,其具体步骤如下S101、客户端先销毁DNC传输加工时启动的两个定时器;S102、如果数控系统正在运行的话先发送发送数据命令和一个附加参数,再发送结束 DNC传输命令,数控系统接收发送数据命令并解析后进行复位机床;S103、 接收到结束DNC传输命令, 然后和上面发送结束DNC传输命令一样结束传输。
全文摘要
本发明公开了基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法,包括下述步骤S1、开启数控系统,创建网络线程,进行绑定端口和IP,S2、端口和IP绑定好后,就一直监听,看是否有客户端连接;S3、当客户端和数控系统建立好连接后,启动定时器,向数控系统发送自定义心跳包;S4、当客户端和数控系统建立好连接后,用户在用户界面上进行NC文件列表,进行上传NC程序,下载NC程序,删除NC程序以及进行DNC传输加工和停止传输加工的操作。本发明以数控系统当作服务器,用户计算机当作客户端构建以TCP/IP为底层协议、双绞线作为通信介质的网络环境,使用TCP/IP协议作发送信息的通信协议,提供数据传输率和抗干扰的能力,同时更加方便与Internet连接,实现数据共享。
文档编号G05B19/418GK103064391SQ20121058392
公开日2013年4月24日 申请日期2012年12月28日 优先权日2012年12月28日
发明者李志波 申请人:广州数控设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1