随着网络技术的发展,网络控制技术越来越引起大家的重视。网络控制系统是将计算机网络技术和自动化控制技术结合起来,从而实现网络控制。网络控制系统集机床技术、控制技术、通信技术、检测技术、图像技术、计算机软件技术、网络技术等于一体,通过 Internet/ Intranet 对机床进行远程监控,可以使机床具有更大的柔性和可控性。国内外许多学者已经对网络控制系统进行了研究和开发,有的基于Web通讯平台 ,有的以Windows为开发平台,用VC++工具,采用Windows Sockets技术,还有的基于CORBA中间件技术等等。
本文采用Java Sockets技术来实现通过网络对机床的实时监控功能。
1、Java简介
对于通用网络编程语言来说,三个必要的支柱是:可移植性、速度和安全性。图1表示了Java和其他语言进行比较的结果。
图1 JAVA和其他语言比较
由上图可以看出Java语言在各方面表现都比较均衡的,通过以上的比较和分析得知无论是从长远的发展和目前的需求来看,使用Java语言都是一个正确的选择。网络控制系统作为一个在网络环境下开发和使用的程序,它必须具有良好的通用性、跨平台性、稳定性和安全性。使用Java语言来实现网络编程,能够满足其在各个方面的需要。
Java提供了两种功能强大的网络支持机制:URL访问网络资源的类和用Socket通讯的类,来满足不同的要求。一是URL用于访问Internet网上资源的应用;另一种是针对client/server(客户端/服务器)模式的应用以及实现某些特殊的协议的应用,它的通讯过程是基于TCP/IP协议中传输层接口socket实现的。
1.1 TCP/IP协议
所谓TCP/IP只是一个简称,分别指网络协议IP(Internet Protocol)及传输控制协议TCP(Transmission Control Protocol),是国际互联网技术中两个非常重要的通信协议,适用于任何一组互联网络上的通讯。并且组建以TCP/IP为网络的成本相对较少,以 TCP/IP组建的网络也较为弹性。TCP/IP体系结构是专门用来描述TCP/IP 协议族的,TCP/ IP 的结构将网络分成四个层次,分别是应用层、传输层、网络层和数据链路层。
1.2 Java sockets简介
套接字( socket )是一种通用的网络编程接口,它是对通信端点的一种抽象,提供了一种发送和接收数据的机制。套接字目前有两种: 数据报套接字( Datagram Sockets) 和流式套接字(Stream Sockets) 。我们采用流式套接字,因为流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是一种可靠的面向连接的数据传输方式。
1.2.1 流式套接字的使用方法
流式套接字的使用方法是基于连接的协议,在传输、接收数据之前必须先建立连接,然后才能从数据流中读出数据。首先服务器要创建一个用于侦听的套接字,为该套接字分配地址之后,调用listen ( ) 函数使它处于侦听状态; 客户机在创建套接字完毕后,为套接字分配地址,然后调用connect () 函数,请求与服务器套接字连接; 服务器套接字在收到客户机的连接请求后,调用accept () 函数,该函数创建一个用于连接的套接字。应用该套接字和客户机上的连接套接字,就可以在服务器和客户机之间进行数据传输了。在结束传输之后,双方调用 closesocket ( ) 函数关闭套接字。其使用方法如图2所示。
图2 Java Stream Sockets 的通信流程图
2、网络控制系统的实现
2.1 网络控制系统原理
网络控制系统软件运行在客户机上,客户机通过Intranet/Internet和服务器连接。机床的数控系统在服务器中运行,首先启动服务器的本机数控系统,进行初始设置后,进入网络控制状态,打开侦听套节字,等待客户机的连接请求,待收到客户机的连接请求后,对联机信息进行验证,如果符合联机条件,则和客户机建立连接,双方可以互相发送和接收信息或指令。服务器的数控系统在网络控制状态下可以利用摄像头实时采集机床加工状态图像和参数,将图像以位图格式保存并定时发送到客户机显示加工状态,将状态参数实时发送到客户机;服务器和客户机之间也可以通过超级语音或网络对讲机进行语音交流。在客户机的远程控制系统软件中可以编辑数控加工代码,然后将数控代码传递到服务器中,并下载到PMAC 上等待控制指令。从客户机向服务器发送机床加工控制指令,控制机床运转,同时接收服务器发送的信息,动态监视机床加工情况。通过远程控制程序,客户机还可在线修改机床加工参数,并能调试机床。
2.2 网络控制系统硬件结构
本文设计了一套NC嵌入PC 型的开放式数控系统。系统的控制轴数为3轴,联动轴数为2轴,本系统以工业PC作为主机,CNC的内核采用美国DELTATAU公司推出PMAC- LITE型可编程多轴运动控制器,PC 上的CPU与PMAC卡的CPU构成主从式双微处理器结构,两个CPU各自实现相应的功能,其中PMAC完成插补运算、位置控制、刀补、速度处理以及 PLC等实时控制;PC则通过调用Pcomm32包函数库里的相应功能函数,实现数控系统的基本功能。为了实现PMAC多轴运动控制的功能,还需在 PMAC板上扩展相应的I/O板、伺服驱动单元、伺服电机、编码器等,最终形成一个完整的控制系统。网络系统采用"服务器+ 客户机"方式,数控系统运行在服务器上,网络控制软件运行在客户机上,服务器和客户机通过网卡和通信电缆连接在Intranet/ Internet 上,数控机床上安装CCD 摄像头,用来监视机床加工情况,并通过图像采集卡,将机床的运转情况实时采集保存;服务器和客户机PC上均设置语音功能,以便二者通过对话能更好的交流。该系统硬件结构如图3 所示。
图3 网络控制系统硬件结构图
2.3 网络控制系统软件设计
友好的人机界面对于任何控制系统是不可缺少的。本系统界面设计采用Windows 编程中的分隔视技术,将数控系统人机界面分成二个子窗口。左边的窗口为图像显示窗口,实现机床加工过程的图像监视;右边的窗口为网络控制窗口,实现网络联机与断开、加工代码编辑及发送、机床加工状态参数显示、机床在线网络调试等功能。
软件设计的关键是数据的网络传递,为了保证数据及时传递,在软件设计中采用了多线程技术,专门建立一个线程对采集的机床数据进行网络传递。该系统的流程图如图4 所示。数控代码在客户机上编辑好之后,可以一次性传递给服务器,服务器将数控代码保存到内存中,然后在编译执行数控代码。控制指令的传递可以随时从客户机传递到服务器,服务器接到指令后立即执行。对于机床加工图像和状态参数的传递则要复杂一些。在服务器上,数控系统通过CCD摄像头实时采集加工图像,利用定时器在每一个周期内将图像保存为位图文件,然后将位图文件通过网络传递到客户机上,客户机在接收完每一个位图文件后,用定时器在每一个周期在图像显示窗口进行刷新显示,使加工图像保持连续性。同时服务器上的数控系统实时采集机床状态参数,利用定时器每一个周期将以一定格式的数据传递到客户机,客户机对数据进行接收后分析,再用定时器在一个周期内对状态参数进行更新显示。
为了避免位图数据和参数数据在传递时的混乱现象,在服务器端采用中断方法,在传递图像数据时中断参数数据的传递,等图像数据传递完之后再传递参数数据,这样就很好的解决了在数据传递过程中的占用通道的矛盾问题。软件在运行过程中图像显示和参数更新会存在一定的滞后性,这与网络传递的速度以及数据量的大小有一定关系。
3、网络安全策略
远程控制的安全性是非常关键而又复杂的问题,主要包括信息的完整、保密和可用等因素。采用加密性网络安全技术可以提供网络通信的端到端的安全保障。防火墙技术也能提高服务器端的安全等级,此外,漏洞扫描和入侵检测技术对提高系统安全性能也带来好处。
图4 网络控制系统软件流程图
4、总结
本文具体介绍了一套应用于数控机床的网络控制系统,基于TCP/ IP 通讯协议,利用Java Sockets (套接字) ,建立服务器/ 客户机模式,装有数控系统的主机作为服务器,网络控制端作为客户机。通过客户机对数控机床进行网络控制和调试,可以使机床具有更大的柔性和可控性。该系统可以异地实时操作机床,基本达到动态调试和监控机床运转情况的目的,为机床控制和调试技术提供了高效的途径,具有一定的实用性和价值。