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

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

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

    addrSrv.sin_port = htons ( 6000) ;//指定端口号

    bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

    (4)监听。将套接字设为监听模式,准备接收客户请求。调用Listen函数用于设置套接字的等待连接状态。

    listen( sockSvr,3);

    (5)等待客户请求到来。进入监听状态后,通过调用Accept函数使套接字做好接受客户连接的准备。

    SOCKADDR IN addrClient;//定义地址族

    int len=sizeof(SOCKADDR);

    SOCKET sockConn=accept (soekSrv,(SOCKADDR*)&addrClient,&len);

    (6)用返回的套接字和客户端进行通信。调用Send函数用于发送数据,调用Recv函数用于接收数据。

    char sendBuf[100];//定义发送数据缓冲区

    send ( sockConn , sendBuf, strlen (sendBuf )+1,0);

    char recvBuf[100] ;//定义接收数据缓冲区

    recv( sockConn , recvBuf ,100 ,0 );

    (7)关闭套接字。通信结束,必须关掉连接以释放套接字占用的资源,等待另一客户请求。调用Closesacket函数用于关闭套接字。

    closesocket(sockConn);

    4. 2. 2客户端程序设计

    (1)加载套接字库,与服务器端方法相同。

    (2)创建套接字(Socket)。

    SOCKET sockClient=socket(AF_INET, SOCK_STBEAM,O );

   (3)绑定,同样与服务器端是相同的。

   (4)向服务器发出连接请求。

    connect(sockClient,(SOCKADDR*)&addrSrv, si-zeof(SOCKADDR));

    (5)和服务器端进行通信,还是调用Send函数和Recv函数。

    char recvBuf [ 100 ];

    recv ( sockClient, recvBuf,100 ,0 );

    printf(”%s \ n"' , recvBuf );

    float x+;

    send( sockClient,”x+”,strlen”x+”)+1,0);

    (6)关闭套接字,调用Closesocket函数。

    closesocket (soekClient);

    在应用程序关闭套接字连接后,还需要调用WSACleanup函数终止对Winsock库的使用,并释放资源。

    WSACleanup();

5 结束语

    随着实时以太网的快速发展,工业自动化正越来越多地用到它,数控系统走向网络化、智能化已成为必然。基于实时以太网、TCP协议和Socket编程技术的数控系统组网与远程监控系统可以有效实现多台数控系统与一台服务器的联网及服务器对它们的远程监控,可以大大提高车间资源的有效利用和生产效率,具有较高的实用价值。

3