张科威,杨春艳,于中华
(中国船舶重工集团第七二二研究所,湖北武汉 430074)
GoAhead WebServer在雕刻控制系统中的应用
张科威,杨春艳,于中华
(中国船舶重工集团第七二二研究所,湖北武汉 430074)
通过在基于VxWorks的嵌入式平台上架构了一个WebServer服务器,并将Web服务器应用于雕刻控制系统中实现了远程操作控制。试验结果表明:该方案具有成本低、开发效率高和易于移植等特点,为工业控制领域的远程控制提供了一种行之有效的方法。
VxWorks;Web服务器;远程控制;雕刻控制系统
随着工业技术的发展和嵌入式应用领域越来越广泛,应用嵌入式技术开发雕刻控制系统技术已非常成熟,而将Web技术运用到雕刻控制系统进行远程控制的却很少。采用Web+嵌入式技术来实现雕刻机控制系统的远程控制,用户或操作人员只需通过客户机远程登录浏览器就可以进行系统的控制与操作,这样可以将操作人员从恶劣的环境中解脱出来,实现雕刻控制系统的远程控制操作。
采用三星公司基于ARM1176ZJF内核的S3C6410作为处理器芯片。S3C6410微处理器具有丰富的片内外设,可根据系统需要进行外围电路的扩展,减少了开发难度和开发成本,后续软件的设计与实现都是基于此硬件平台的。控制系统的硬件结构图如图1所示。
图1 控制系统硬件结构图
(1)系统的硬件平台以三星公司的ARMS3C6410为核心芯片,扩展FLASH、SDRAM存储器、SD卡、串口、USB端口、网络接口等外围功能。
(2)ARM与FPGA之间通过地址总线和数据总线进行地址和数据的交互。
(3)FPGA主要是对各运动轴的速度和方向进行控制,接收ARM传送过来的信号并将其转化为方向脉冲和速度脉冲[1],通过FPGA转化为脉冲可以提高系统控制精度。
在嵌入式控制系统的硬件平台搭建与调试通过之后进行软件的开发与移植工作,此系统的开发流程是:先进行嵌入式操作系统VxWorks在硬件平台上的移植,再将GoAhead WebServer成功移植到嵌入式操作系统上,最后进行应用程序功能的开发,以Web浏览器的形式对系统的功能进行操作。其系统结构图如图2所示。
图2 系统结构图
VxWorks是一种功能强大、在目标机上高性能、可裁剪的嵌入式实时操作系统。其微内核设计结构节省内存空间、保证了对外部事件的快速反应,可靠性高和实时性强的特点使其广泛应用到工业控制、通信技术领域。
在硬件平台上移植VxWorks操作系统,首先获取硬件的板级支持包,定制一个VxWorks内核,在内核启动成功后,再添加相应的网络组件、定时器等相关组件,将编写好的设备驱动程序添加进入。
GoAhead是嵌入式操作系统的一个比较专用的Web服务器,其构建在设备管理框架之上,操作者能够根据WebServices的标准来部署应用,其很小的内存消耗、支持认证功能、独特的URL分析器等特点使之应用非常普遍。GoAhead的大部分功能都在服务它自己提供的goform功能,GoAhead是跨平台的服务器软件,可以稳定地运行在 Windows、VxWorks、Linux、MacOSX等操作系统上,GoAhead在VxWorks操作系统上的移植过程主要有以下几个步骤:
(1)GoAhead源码添加到应用工程
在WindRiver应用工程中添加GoAhead源代码,同时去掉webSSL.h,webSSL.c,webComp.c文件。
(2)添加预编译宏
在工程的编译—>属性—>编译宏框中添-DWEBS,-DUEMP,-DOS= “VxWorks”, -DVXWORKS宏,在属性框中定义这些宏相当于在预编译的每个文件中都定义这样的宏。
(3)初始化设置
在main.c文件中需要进行一些更改配置,文件系统的设备名为/tffs0,需要将定义宏改为#define ROOT_DIR T(“/tffs0”);网页存放在 “/tffs0/web”目录下,需将根路径改为static char_t*rootweb=T(“web”);开启web浏览器的初始页面设定为log-in.htm,则需将initWebs()函数中web定向函数改为 websRedirect(wp,T(“login.htm”))。
(4)登录WebServer服务器
在系统提供的用户应用程序初始化函数usrAppinit()中启动websvxmain()函数,则通过taskS-pawn()函数创建一个任务taskSpawn(“websvxmain”,“110”,0,1024*100,websvxmain,0,0,0,0,0,0,0,0,0,0)。将编译生成的 goahead.out文件加载到嵌入式操作系统中。
在浏览器中输入目标机的IP地址,就可以访问目标机文件系统下/tffs0/web文件夹下设定的登录网页login.htm,输入正确的用户名和密码就可以进行远程登录操作控制。
应用程序主要采用C语言和HTML语言进行表单设计,用这两种语言设计具有良好的平台独立性和服务器独立性,程序可以不经修改运行在不同的硬件平台、不同的操作系统软件平台上、具有相同操作系统的服务性[2]。远程操作机通过浏览器浏览到某个页面,用户在进行操作时通过点击sumbit类型的按钮给服务器发送一个CGI程序的URL请求以后,服务器知道所请求的URL是一个CGI程序,并找到相应的CGI程序的入口地址,在入口地址中进行功能函数的实现。
下面以雕刻控制系统的X轴的直线行驶作为Go-Ahead WebServer的实例进行说明。其表单界面如图3所示。
图3 htm表单界面
图3是用户通过浏览器访问的htm页面,其实现方式是以HTML语言实现的[3],在表单中显示了运动轴X、Y、Z轴的速度和位移,其主要实现语句如下:
图4 加工文件程序调用流程图
一个HTML表单的<form>标识中必须包含有一个action属性元素,action属性用来指定要接收表单数据的资源的URL,这个资源是Web服务器上的一个可执行程序,这个可执行程序主要负责处理表单数据和对所提交数据的响应[4]。在表单界面中,当用户点击OK按钮以后,将通过 action=“/cgi-bin/process.cgi”将处理信息提交给服务器,进入入口处在process_cgientry()函数中执行文件的加工,加工文件程序的调用流程图如图4所示。
进入process_cgientry()函数中执行加工文件时,一直判断文件是否加工完成,在未完成的情况下系统实时向客户端返回各运动控制轴的速度、位移等信息,这样实现了客户端与服务器信息的交互。
该控制系统是通过将嵌入式Web服务器技术和B/S架构结合应用在嵌入式实时操作系统VxWorks中,嵌入式Web服务器GoAhead Webserver具有体积小、功能强大、源码开放的技术特点,将其移植到VxWorks嵌入式实时操作系统中,并基于此实现了远程实时控制。该方案在原有的嵌入式雕刻控制系统只不过移植了开源、免费的嵌入式Web服务器GoAhead WebServer就能实现远程控制,大大节省了资金、缩短了开发周期、改善了操作人员的工作环境。该技术对嵌入式雕刻控制系统或工业控制系统的远程控制具有实际使用价值和借鉴意义。
[1]甘明,张科威,陈小亮.基于ARM的嵌入式广告雕刻系统设计[J].机床与液压,2012,40(3):119-121.
[2]蔡奇玉,连振汉,张志强.CGI编程指南[M].北京:机械工业出版社,1997.
[3]罗博乌斯基.Web表单设计:点石成金的艺术[M].北京:清华大学出版社,2010.
[4]赵庆磊,韩诚山,文明,等.GoAhead嵌入式服务器的设计与实现[J].微计算机信息,2011,27(4):67 -69.
App lication of GoAhead WebServer in Carving Control System
ZHANG Kewei,YANG Chunyan,YU Zhonghua
(722 Institute,China Shipbuilding Industry Corporation,Wuhan Hubei320074,China)
Based on VxWorks embedded platform,aWebServer server was built.TheWeb serverwas applied to carving control system to realize remote operation control.The test results show that this scheme hasmany advantages,such as low cost,high development efficiency and easy to transplant.It provides an effectivemethod for remote control in industrial control field.
VxWorks;Web server;Remote control;Carving control system
TP21/27
B
1001-3881(2014)10-182-2
10.3969/j.issn.1001 -3881.2014.10.055
2013-04-30
张科威 (1986—),男,硕士,助理工程师,主要研究方向为控制及检测技术。E-mail:zhangkewei_2009@163.com。