3.2 PC 服务器软件设计
PC 机服务器端采用 Microsoft Visual ++ 6.0 MFC 作为应用软件框架开发工具,网络服务器部分采用Windows Socket 编程,建立服务器并监听客户端连接。
Windows Socket 基于 TCP(面向连接)的服务器端程序首先创建套接字(socket)并将套接字绑定到一个本地地址和端口上(bind),同时将该套接字设置为监听模式,准备接受客户端连接请求(listen);当客户端有连接请求时,返回一个用于该客户端有效通信连接的套接字(accept),利用该通信套接字与客户端进行通信(send/recv);最后,完成通信后关闭对应客户端的通信套接字(closesocket)。服务器端建立监听线程,专门处理客户连接,关键程序如下:
ULONG WINAPI ListenThread(LPVOID p){ //监听线程处理函数
SOCKET listenSocket; //服务器监听套接字
BOOL bRet;
SOCKADDR_IN addrSrv;
SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR)
listenSocket = socket(AF_INET, SOCK_STREAM, 0); //创建监听套接字
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(8080); //绑定端口
bind(listenSocket, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR));
listen(listenSocket, 5); //设置监听模式
while(1){ //以下阻塞等待客户端连接
SOCKET dataSocket=accept(listenSocket,(SOCKADDR*)&addrClient, &len);
UserTransSaveSocket(dataSocket); //将客户端通信套接字存储
}
return 0;
}
功能部分采用 MFC 进行开发设计,与客户端的通信传输主要采用数据包的形式。包头第一个短整型是一个包标识符,表明该数据包的属性字符和标识位,紧接着 4 字节为包有效数据长度,最后跟着是有效数据区,数据包格式如下所示。数据包属性及服务器端功能如表 3 所示。
本文数控系统组网验证采用两台数控系统通过路由器建立的局域网与 PC 机服务器连接,客户端两台系统 IP 地址分别为:192.168.1.101 和 192.168.1.102,服务器 IP 地址为 192.168.1.2。PC 机服务器端能够与网络数控系统客户端进行文件传输、DNC 在线加工、远程诊断和协助控制以及伺服参数在线监控和修改。图 8 所示为文件传输管理、DNC 在线加工和远程诊断协助控制部分功能软件连接测试结果,证明本方案组网可行,能够实现数控系统网络化管理。
4 结束语
目前,工业自动化的发展越来越多的依靠网络技术,数控系统必然走向智能化、网络化、集成化,原先单一数控系统生产方式将逐渐淘汰。数控系统通过以太网、TCP/IP 通信协议和 Socket 编程技术进行组网,可以实现服务器与多台数控系统进行连接,满足监视和控制要求,进一步促进车间有效利用资源和提高生产效率。本文以此为出发点,提出了具有网络组网功能的数控系统体系结构、硬件平台和软件设计相关方案,并验证了有关功能。该方案设计简单、集成度高并且软件开发过程短等优点,对数控系统网络化应用具有较高的参考价值。