APP下载

基于Android的移动实验系统设计

2015-06-23王红梅张晋瑜唐俊涛

实验技术与管理 2015年3期
关键词:下位服务器端客户端

王红梅,郑 萍,夏 龙,张晋瑜,唐俊涛

(西华大学电气信息学院,四川成都 610039)

基于Android的移动实验系统设计

王红梅,郑 萍,夏 龙,张晋瑜,唐俊涛

(西华大学电气信息学院,四川成都 610039)

针对目前实验教学中对便捷性的需求,提出了一种基于Android的移动实验系统的设计方案,进行了移动实验系统的总体构架设计,并对该系统的客户端、服务器和下位实验系统的具体的开发与实现进行了较为详细的讨论,给出了相关的软、硬件设计过程。实践表明该移动实验系统运行稳定,满足实验者对实验教学便捷性的需要。

移动实验;Android开发;服务器;移动客户端

随着移动技术和网络技术的发展,人们对实验教学的便捷性提出了新的需求。现阶段随着4A(anyone,anytime,anywhere,anydevice)学习理念的提出,以及智能手机在高校学生中的普及,提出了一种基于Android的移动实验教学系统的设计方案[1]。该移动实验系统能进行PLC实验、嵌入式实验、单片机实验等多种实验,是一种综合性的移动实验平台[2]。本文基于PLC、变频器的电机闭环无级调速实验为对象,具体介绍该系统的设计与实现。

1 系统总体设计

基于Android的移动实验系统整体框图如图1所示,系统由下位实验系统、服务器和客户端3部分组成。下位实验系统由多个实验平台组成,如PLC实验平台、嵌入式实验平台等,每个实验平台都接入以太网。服务器采用性能较好的PC机,作为客户端和下位实验系统之间的桥梁,服务器接受客户端对下位实验系统的控制命令并将命令传输到下位实验系统进行控制,下位实验系统的运行参数经服务器发送至客户端,服务器还提供给客户端实验相关文档的下载,服务器端使用Mysql数据库对用户信息和下位实验系统进行管理[3-4]。客户端为Android智能手机,客户端通过WIFI连接到以太网,用户在客户端进行相应设置便可实现对下位实验系统的控制及实验运行效果的监控。系统总体上采用C/S与B/S的混合架构来实现。

图1 系统整体框图

2 下位实验系统设计

下位实验系统由多个实验平台组成,下面以基于PLC、变频器的电机闭环无级调速实验为对象具体介绍该系统的设计与实现。

2.1 基于PLC和变频器的电机闭环无级调速实验系统设计

基于PLC、变频器的电机闭环无级调速电路如图2所示。实验中,通过旋转编码器采集电机的转速至PLC,PLC根据设定值和所测的转速进行相应的PID调节,通过控制变频器实现对三相异步电机的速度调节。系统中PLC选择三菱的FX2N,变频器用S500,PLC与变频器之间用RS485进行通信[5]。

图2 电机闭环无级速调速实验连接图

在该移动实验系统中,PLC的基本程序是预先下载好的,可通过移动实验平台实现对三相异步电机的启停、正反转控制,可在移动客户端进行速度设定、PID等相关参数设定,并通过现场的摄像头传回的图像观看实验效果。

2.2 上位监控设计

上位监控选择软件MCGS(monitor and control generated system)作为监控平台[6],进行画面设计、变量设置、通道连接,其上位监控画面如图3所示。

实验中MCGS可以对电机转速、PID相关参数进行设定,MCGS监控的变量有电机的频率,正反转信号和停止信号等,变量对应关系见表1。

图3 电机闭环调速实验系统上位监控画面

表1 变量关系对应表

2.3 PLC实验系统与服务器之间的通信设计

下位实验系统与服务器端的通信连接通过上位组态软件实现,其过程是采用DDE(dynamic data exchange)协议实现MCGS与VB(visual basic)的数据交换,然后再用VB的Winsock控件实现与服务器端的socket连接。

DDE是一种通过共享内存方式进行数据交换的技术,应用程序间无需接口程序即可实现“软连接”。应用程序间通过DDE方式交换数据时是Client和Server的关系,将2个通信应用程序的服务名、主题名和项目名配置一致即可进行数据交换。MCGS提供对DDE功能的支持,通过“工具”的“DDE连接管理”选项打开DDE功能界面,配置变量的DDE状态;VB中采用对DDE支持的控件文本框来设计,配置相应的文本框关联MCGS中对应的变量,实现MCGS与VB的连接[7]。MCGS与VB程序的变量对应关系表见表1。

在与MCGS交互的同时,VB通过Winsock控件实现与服务器端的socket连接,设置好IP地址和端口号连接后进行数据交互,VB端接收到服务器发送的命令并将命令解析后放入VB程序中与MCGS对应变量关联的文本框,从而实现与下位实验系统的通信。

3 服务器端设计

服务器作为客户端与下位实验系统连接的桥梁,提供对Android客户端实验操作、实时视频监控、实验文档下载3个功能的支持与实现,并对客户端用户和下位实验系统进行管理。服务器端程序采用Java进行设计,程序主流程如图4所示

图4 服务器端程序流程框图

服务器的界面设计要方便进行人机交互,其界面包括开始通信按钮和结束通信按钮,分别实现通信连接的建立和断开。为保证实验操作功能中命令码的可靠传输和视频监控功能中视频的实时传输,本文采用了2种协议的Socket进行通信,即建立了基于TCP协议的Socket通信服务器端Serversokcet和基于UDP协议的Socket通信服务器端DatagramSocket,并分别创建2个子线程用以侦听客户端的连接,在基于TCP协议的子线程中创建孙子线程进行数据的处理[8]。

(1)对Android客户端实验操作的实现。实验操作是Android用户通过服务器对下位实验系统中电机进行速度设定、正反转操作等,该功能通过socket通信传输命令码来实现,命令码由实验号、实验命令和实验数据组成。服务器接收到Android端发送的命令码后发送给对应的下位实验平台,实验平台接收到命令码后解析命令码并执行相应的操作。

在基于PLC控制的电机闭环无级调速实验中,实验操作通信过程为:服务器接收到Android端发送的命令码后进行转发,VB端接收到命令后按组合格式解析命令码,将正反转命令、转速、PID参数写入对应文本框,文本框通过DDE关联到MCGS中对应的变量从而实现对PLC闭环系统的控制;同时,电机的实际转速写入MCGS中并关联到VB文本框,VB端定时发送速度到服务器,Android端定时向服务器请求电机转速信息并进行更新显示,从而实现对电机实际转速的监控。

(2)实时视频监控的实现。实时视频监控是为了让移动客户端能够实际了解实验现场的控制运行效果而设计的。服务器端用JMF(java media framework)插件来采集摄像头的数据,然后通过基于UDP协议的Socket通信将图片数据传输给Android客户端进行显示。JMF是Sun公司提供的一个进行多媒体开发的Java类包,用它进行视频开发较为简单、方便,将JMF源码包安装到JDK路径下,并将jmf.jar包导入工程后即可开始JMF开发[9]。

系统中使用JMF捕获图片的具体过程:首先用CaptureDviceInfo类检查是否有视频或者语音设备,并获取设备列表;然后定位器MediaLocator根据设备列表来定位信息来源,并实例化播放器;最后调用播放器player的start()方法开始截取多媒体数据。当有用户请求视频数据时,服务器读取用户请求并识别请求客户端的IP地址和端口,服务器定时用FrameGrabbingControl类的grabFrame方法抓取图片并压缩为jpeg格式后向该用户发送图片,当客户端发送停止请求视频命令后,关闭与该客户端的通信连接,停止发送图片[10]。

(3)实验文档下载的实现。系统中为实现多用户对实验文档的同时下载,以及便于对文档进行管理与维护,实验文档下载功能采用B/S架构来实现,服务器端搭建web服务器并建立配置与Android客户端对应的web工程即可实现该功能。首先,在服务器端安装并运行web服务器tomcat,下载解压eclipse对tomcat的支持插件tomcatPlugin到eclipse的安装路径plugins下;然后,在eclipse中创建动态web工程,配置虚拟目录和本地路径,将实验文档放置到本地路径下;最后,将该工程部署到tomcat,开放程序的网络权限即可开放给客户端用户进行下载。

4 Android手机端应用程序的设计

Android客户端主要提供实验者使用,能实现对下位实验系统的实验操作,及实时视频监控和实验文档的下载,Android客户端应用程序主要包括界面设计和服务功能设计。

4.1 Android手机端应用程序的界面设计

Android界面在工程的res/layout目录中建立XML文件进行元素布局设计,界面元素采用相对布局方式以适应在不同的分辨率手机上的显示。该系统主要设计了登录界面、实验目录界面和基于PLC控制的电机闭环调速实验的实验界面。Android端用户在登录界面输入用户名和密码登录后进入移动实验目录界面,在实验目录界面中用户可选择进入不同的实验系统,在用户选择进入“基于PLC控制的电机闭环无级调速实验”界面后进入图5的实验界面。

图5 Android客户端程序运行界面之一

4.2 Android手机端应用程序服务功能的实现

Android端应用程序采用Android四大组件中的Activity来设计,在Activity中用setContentView设置显示界面,然后在界面元素响应事件中进行服务功能的设计[11]。在移动实验系统中,Android用户可对下位实验系统进行实验操作,对实验运行情况进行实时视频监控并进行相关实验文档的下载。Android端程序主流程框图见图6。

实验操作可通过移动客户端界面元素的事件驱动机制来完成这些功能的实现,在图5所示的移动客户端界面上,当用户设置了电机的转速、PID参数并点击正转或者反转按钮后,在点击事件响应程序里获取用户设置封装成命令码,并将命令码传输到服务器实现对下位系统的操作。

实时视频则与实验操作稍有不同,用户点击了视频监控按钮后开启视频监控功能,具体实现过程为客户端发起视频请求后向服务器发起建立连接的信号,服务器接收识别客户端IP和端口后定时向该客户端传送图片数据,客户端接收图片、解码后用ImageView控件进行显示。

用户点击“下载该实验文档”按钮后Android客户端创建HttpURLConnection对象,建立与服务器端URL节点的HTTP通道,Android客户端通过多线程实现实验文档的快速下载。文件多线程下载的具体实现过程为:首先获取要下载文件的长度,并以此设置本地文件对象的长度;其次,根据文件长度和线程个数计算每条线程下载的数据长度和下载位置并进行下载;最后,将每个线程下载的文件写入本地文件对应位置,即得到下载文件[12]。

图6 Android客户端程序主流程框图

5 结束语

该移动实验系统中下位实验系统可灵活扩展,使其不仅能进行PLC实验,也能进行嵌入式、单片机实验等多种实验,是一种高技术的综合化的移动实验平台。该系统提倡一种新的学习理念,为学生提供了一个方便快捷的学习途径,让学生在任何时间、地点都可以进行相关的实验学习,为实验教学提供了一种新的平台。

(References)

[1]李琴,陈立定,任志刚.基于Android智能手机远程视频监控系统的设计[J].电视技术,2012,36(7):134-136.

[2]王梦如,王小根,陈心仪.移动学习系统设计框架研究[J].中国远程教育,2013(8):79-82.

[3]苏玉良,郭福文.实验室信息管理系统的开发与应用[J].自动化与仪表,2012(11):44-47.

[4]龚成莹,邢敬宏,胡银保.基于JSON的Android移动终端与PHP及MySQL数据通信[J].工业仪表与自动化装置,2013(1):63-69.

[5]杨鸽,郑萍,叶建平,等.基于PLC和单片机的多模式综合实验系统设计[J].实验技术与管理,2013,30(10):83-86.

[6]MCGS组态软件用户手册[Z].昆仑通态公司,2003.

[7]吴戈成,严硕林.DDE技术在PLC自动化系统中的应用[J].自动化与仪器仪表,2011(1):76-79,83.

[8]宋素荣.基于TCP的Java Socket通信技术[J].科技创新导报,2012(13):54-55.

[9]安学立.基于JMF软件的音视频辅导平台的开发[J].实验室研究与探索,2012,31(3):83-85,89.

[10]李昂,宋海声,苏小芸.基于Android的视频监控系统设计与实现[J].电子技术应用,2012,38(7):138-139,143.

[11]赵启朋.Android典型技术模块开发详解[M].北京:中国铁道出版社,2012.

[12]刘引涛.基于Java的多线程下载工具研究与实现[J].现代电子技术,2012,35(8):30-32.

Design of mobile experimental system based on Android

Wang Hongmei,Zheng Ping,Xia Long,Zhang Jinyu,Tang Juntao
(School of Electrical and Information Engineering,Xihua University,Chengdu 610039,China)

For the demand of convenience in experimental teaching process,this paper proposes a design scheme of the mobile experiment system based on Android.The architecture of mobile experimental system is designed,and the development and implementation of the client,the server and the experimental system of the specific system are discussed in detail,and the relevant hardware and software design process is given as well.The practice shows that the mobile experiment system runs stably,and meets the design requirement.

mobile experiment;Android development;server;mobile client

TP391.7

A

1002-4956(2015)3-0118-05

2014-07-31 修改日期:2014-08-31

四川省精品课程建设项目“可编程控制器原理及应用”(XHJP060102);西华大学研究生创新基金项目(ycjj2013104)

王红梅(1988—),女,四川绵阳,硕士研究生,主要研究方向为嵌入式技术与应用

E-mail:wanghongmei234@163.com

郑萍(1957—),女,四川自贡,教授,主要研究方向为网络控制技术与仪表技术.

E-mail:zp5757@126.com

猜你喜欢

下位服务器端客户端
Linux环境下基于Socket的数据传输软件设计
如何看待传统媒体新闻客户端的“断舍离”?
发射机房监控系统之下位机
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
CAN总线并发通信时下位机应用软件设计