工控网首页
>

应用设计

>

数控铣床Internet远程控制的一种实现

数控铣床Internet远程控制的一种实现

2006/5/16 10:16:00
关键词:远程控制;Servlet;动态连接库 中图分类号:TG547 文献标识码:A A Realization of Numerical Milling Machine Remote Control On Internet QIAN Xin-en , YAN Yu-rong (Hubei Automative Industries Institute, ShiYan 442002, China) Abstract: This article introduces a method which uses Browser / Server (B/S) as remote control structure to control numerical milling machine. On the implementation , the DLL being established by C + + Builder and the Servlet by JBuilder developed the remote supervising and controlling software modules. The two modules have combined to form the remote control software package. Key words : remote control; servlet ; dynamic link library 1 引 言 因特网的分布广泛使得建设基于因特网的远程控制系统成为一种可能。基于因特网的远程控制的特点有以下几点: 1)传输通道是因特网。使用的协议是TCP/ IP协议。因此,对于采用因特网技术开发出来的远程控制技术,可以在采用TCP/IP协议的网络上使用,一般不需要修改。 2)系统开发周期短、充分利用了现有的网络资源;维护费用小。 3)具有很高的灵活性,实现了真正的无处不在的远程控制。 4)基于因特网的远程控制技术是不断发展的技术。随着因特网技术的发展,基于因特网的远程控制技术也在不断的发展。 5)存在不确定的时延问题。由于网络有限带宽和不确定路由造成的大且变化的网络时延,网络阻塞也可能造成的数据包丢失。 目前,基于因特网的机器人控制系统普遍都采用了客户/服务器(C/S)网络模型,通过网络发出控制命令。 2 基于因特网远程控制的实现方法 1)建立远程控制的构架,使的在任何一台连接到因特网的电脑上都可以通过浏览器控制异地数控铣床的工作状态。 2)为了实现以上功能,首先得建立一个本地控制函数,此函数功能以动态链接库形式表现出来。其次,以网页的形式设计一个控制铣床的页面。设计一个服务器上运行的Servlet,通过动态链接库调用本地函数,把远程控制的命令转化为控制指令。 3)我们用丁Builder建立Servlet,接受网页信息和调用类函数;建立一个本地函数。用Frontpage设计网页。用C++Builder编写一个本地函数的动态链接库DLL,它能快速调用Advantech驱动软件包,实现对底层数字量I/O卡的控制。 3 系统总体设计 基于Internet的数控铣床的远程控制系统的结构如图1所示。
这是一个典型的三层B/S结构。其中第一层是前台即浏览器。用户通过浏览器访问该系统而无需安装任何软件。用户在网页上输人控制铣床的运动信息比如:X轴、Y轴、Z轴三方向的进给、停止,主轴的转动以及停止。 第二层Servlet是运行在JBuilder自带的服务器Tomcat4.O上的小程序。Servlet负责调用本地函数,并把浏览器传送的信息转化成本地函数指令。 第三层是数控铣床的本地控制系统。本地控制系统执行本地函数的发出的命令,并将自己的状态返回给本地函数,本地函数把这些状态信息传递给Servlet。本系统中由Bordland C++Builder进行远程控制,建立了一个DLL动态的链接库,调用本地函数。本地函数是了Builder建立的类函数,此函数的功能由DLL实现。 数控教学铣床的工作台是由步进电机实现控制的。采用信号发生器发出的给定脉冲(CP)控制步进电机的旋转步数,DIR的高低电平来控制电机的正反转。可以改变脉冲频率来调节铣床进给的快慢。 4 软件的设计 4.1 C++Builder撰写动态链结函式库DLL 建立DLL专案的方式和一般应用程式大致相同。使用DLL有两种方式:明确呼叫和不明确呼叫。 不明确呼叫即静态调用法。该方法是利用链结一个记载输入函式的函式库档案(LIB),来进行链结,如此系统会自动将该DLL载人,同时在使用完毕后将其释放,不必由使用者(也就是呼叫它的函式)来进行载人及释放的动作。所谓明确呼叫(explicited linked)是使用LoadLibrary函式来载人 DLL。使用FreeLibrary函式来释放DLL。使用明确呼叫的优点在于,可以完全控制该DLL的载人及释放,最有效地利用系统资源。在本系统中我们采用此种方式: static { System.10adLibrary(“Proiect9”);} 调用系统加载库 4.2 Java与C++的连接方法 JBuilder是Java的开发工具,C++Builder是 C的开发工具。Java连接C++的方法是先将C++语言所编写的程序构造成动态链接函数库(DLL),再由Java程序调用DLL库中的函数,使得DLL库中函数被了ava看作是“方法”( Method)。DLL我们在前面已经介绍过。不过这种方法是直接用其他编程语言所提供,而不是Java所编写,所以将其方法称为“原生方法”(Native Method)。我们采用的是JNI方法来进行两者之间的接口。 Javasoft公司提出了JNI的标准接口。它使运行于Java虚拟机上的Java代码与用其他语言编写的库和应用程序能够相互调用。JNI允许本地方法建立、使用和更新Java对象,调用Java方法和引用Java类。也允许Java代码调用C、C++、As- sembly等语言编成的程序和库。 4.3 实现步骤 开发环境:操作系统为windows2000平台Java Applet的开发工具为Borland Jbuilder8,本地方法的开发工具为Bordland C++Builder 6。 JNI - Java Native Interface specification(Java本地接口规范)JNI是一种编程接口,下面将按步骤介绍使用JNI的方法。 1)Java类中要用本地代码实现的方法用na— tive修饰,构造类初始化器装入实现本地方法的库。 2)编译Java类,并用javah工具生成C++语言头文件,jsvah为JDKll.2带的一个工具。 3)编写本地代码编译成Project5.dll,放入 WINNT的system32目录下,以使Java VM能找到这个库。 4.4 Servlet Servlet为服务器端的JAVA的小程序,与运行在客户端的applet程序相对应,他们都是运用java语言编写的程序。Servlet没有Main方法,只有一些特定的方法用于启动,执行,和退出。它可以与运行在客户端的applet程序进行交互,也可以直接与客户端的HTML页面交互。Servlet是对支持 Java的服务器的一般扩充,最常见的用途是扩展 Web服务器,提供非常安全的、可移植的、易于使用的CGI替代品。Servlet完全运行在Java虚拟机上,由于在服务器端运行,因此它不依赖于浏览器的兼容性。 可以在
标记中调用Servlet。 HTML格式使用户能在Web页面(即从浏览器)上输人数据,并向Servlet提交数据。 5 结束语 本论文以有代表性的数控铣床控制机构为研究对象,从理论和实现方法上对基于因特网的远程控制系统进行了研究。运用C++Builder、JBuilder实现了跨平台的操作,最终完成数控教学铣床的远程控制。 参考文献 [1] 张焱.Jbuilder5实例教程[M].清华大学出版社,2002. [2] 陈灿煌等.C++Builder 6彻底研究[M].中国铁道出版社,2002. [3] 周定康.远程控制系统的设计与实现[J].万方数据。2002.
投诉建议

提交

查看更多评论
其他资讯

查看更多

超越传统直觉,MATLAB/Simulink助力重型机械的智能化转型

新大陆自动识别精彩亮相2024华南国际工业博览会

派拓网络被Forrester评为XDR领域领导者

智能工控,存储强基 | 海康威视带来精彩主题演讲

展会|Lubeworks路博流体供料系统精彩亮相AMTS展会