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

机床数控系统的组网与远程监控的实现

发布时间:2012-02-01 作者:徐鸣鹤 冷眷艳 熊鸿康  来源:万方数据
针对数控系统集成化、模块化、网络化、智能化的发展趋势,分析数控系统组网的条件和优势,提出一种基于实时以太网技术、采用TCP协议及Socket编程接口的局域网实现对基于ARM的机床数控系统的组网和远程监控。研究了数控系统网络化,具有一定的实际应用价值。

4 程序设计

    在数控系统的远程监控实现中。服务器与客户端进行数据交换时除了要遵循网络传输层的TCP协议进行数据通信,还要在应用层制定一个通信双方都认可的协议,通过这种协议,双方就可以对所要发送和接收的信息进行一致的解读和执行。

    4.1系统应用层协议的制定

    远程监控时,传输的信息主要有以下几类:

    (1)控制。这类信息是数控系统需要实时执行和响应的远程操作命令,如:系统的初始化,启动/停止,暂停/恢复,加工程序的选择、删除,报警等。

    (2)状态。数控系统返回的运行状态信息,主要包括机床的在线、离线、空闲、故障,当前加工的程序名及程序段号等。

    (3)数据。各种加工程序运行产生的数据,如当前刀具坐标位置、进给速度和主轴转速等。

    基于上述的各种信息制定了一个如表1所示的应用层协议表,在表中对各种信息进行了定义及语法解释。

部分应用层协议表

    表1部分应用层协议表

    4. 2具体程序

Socket编程流程图

    图2  Socket编程流程图

    Winsock控件与Socket完全兼容,是一个专门用于Windows网络编程的Active X控件。在VisualC++6.。下使用Winsock控件编写服务器网络通信程序,这样就不需要了解TCPIIP的具体细节或调用底层Winsock API,简化了编程过程。Socket编程的流程图如图2所示,需要分别建立客户应用程序和服务器应用程序,即C/S模型。

    4. 2. 1服务器端程序设计

    (1)加载套接字库。由于Winsock服务是以动态链接库的形式实现的,所以在使用前必须调用WSAStartup函数对其进行初始化,协商Winsock的版本支持,并分配必要的资源。

    wVersionRequested = MAKEWORD( 1 , 1 );//指定加载1. 1版本的Winsack

    WSAStartup(wVersionRequested, &wsaData);//加载套接字库

    (2)创建套接字(Socket)。服务器进程总是先于客户进程启动,调用Socket函数创建一个流套接字。

    SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0 );

    (3)绑定。成功创建了Socket之后,就应该选定通信的对象。调用Bind函数可以将本地地址绑定到套接字上。

    SOCKADDR_IN addrSrv;

    addrSrv. sin_addr. S_ un. S_ addr=(25<<24 )|(1<<16)|(168<< 8 ) | 192;//设本地IP地址为"192. 168. 1. 25"

    addrSrv. sin_family=AF_INET;