基于Android的移动巡检系统开发

来源 :硅谷 | 被引量 : 0次 | 上传用户:sunjava2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要 随着科技的发展,智能终端逐渐成为人们获取信息的一种重要手段,以Android为代表的智能移动终端迅速发展,为工业控制系统监控软件的革新提供了技术保障。本文介绍了基于Android平台开发的移动巡检系统以及开发注意事项,通过基于Android的移动巡检系统的开发,使站库测控系统与智能终端有机的联系在一起,为操作人员提供方便。
  关键词 Android;智能终端;巡检;线程
  中图分类号:TN941 文献标识码:A 文章编号:1671—7597(2013)041-049-02
  油田站库应用测控系统监控现场生产技术参数,测控系统监控上位机软件一般运行于PC机端,现场监控人员需要固定在监控室中进行查看操作,但各岗位操作人员少,基本上都是单人单岗,管理面积大,有时需要在户外长时间作业,无法实时查看生产数据,不利于生产操作,给操作人员带来不便。监控软件移动化逐渐成为工业控制系统未来发展的方向,随着科技的发展,智能终端逐渐成为人们获取信息的一种重要手段,以Android为代表的智能移动终端迅速发展,为工业控制系统监控软件的革新提供了技术保障。为此,研制开发基于Android平台的移动巡检系统,应用智能终端实时监控油田站库各岗位生产参数。
  1 移动巡检系统结构
  移动巡检系统由数据接口软件和移动终端组成。在站库测控系统PC机客户端安装数据接口软件,利用接口软件与测控系统组态软件进行通讯,通过WIFI无线网络与移动终端连接,移动终端通过数据接口软件从组态软件数据库获取显示、报警等功能的相关数据,移动终端收到数据后,将站库生产参数以界面形式显示给操作人员,使操作人员能够方便的看到实时数据,并能对要控制的变量通过移动终端直接控制。结构如图所示。
  2 移动巡检系统数据接口软件开发
  在站库原有测控系统基础上开发移动巡检系統接口软件,原站库测控系统上位机监控软件应用力控组态软件开发,数据接口软件负责从力控组态软件数据库中获取数据,并对移动终端提供数据服务。
  2.1 力控实时数据和报警数据的获取
  力控提供了一个DbCom控件可以从力控软件中读取数据,为了和Android客户端软件通讯,我们需要把数据分成不同的数据组,以实现数据的分组发布和通讯。
  DBCom控件在数据通讯之前必须初始化。初始化完成后,为了保证数据通讯的效率,采用异步方式通讯。异步方式通讯要求读数据之前,要注册数据点,以后访问数据点时可以通过序列号访问数据。
  2.2 数据的网络服务
  数据接口软件通过TCP网络服务器发布数据,包括实时数据和报警数据的发布,都可以从TCP网络端口发布和读取。
  网络服务器通过Listen监听数据端口,在Listen中OnAccpt接收客户端的接入:
  CNetServer::CNetUser * pUser = new
  CNetServer::CNetUser(m_Server.GetUniqueUserKey( ), m_Server);
  if(Accept(*pUser))
  {
  CString strIP;
  UINT uPort;
  pUser->GetPeerName(strIP,uPort);
  CMainFrame *pMain = (CMainFrame *)::AfxGetMainWnd();
  CString cs;
  cs.Format("设备接入到服务器,IP地址%s,端口 %d",strIP,uPort);
  pMain->AddOutputString(cs);
  m_Server.AddUser(pUser);
  }
  else
  {
  delete pUser;
  }
  数据接口程序接收到客户端接入信号以后,要实现用户权限认证、实时数据的发布、报警数据发布、设置数据处理等功能。
  Android系统内码编码是以Linux规则编码的,和Windows编码规则有很大区别,因此要进行编码转换才能保证数据的正常通讯和显示。
  3 移动巡检系统移动终端软件开发
  移动终端软件基于Android系统开发。Android系统主要是基于Linux内核、面向移动终端设备的开源操作系统,其架构主要分为4个层次,即应用层、应用框架层、组件库和虚拟机、Linux内核层。处于最底层的Linux内核层为系统提供诸如进程管理、内存管理、设备驱动等基本功能;组件库和虚拟机包含重要的C库文件和JAVA运行时环境,提供对应用框架层的支持;而应用框架层则是开发应用程序所关心的部分,Android应用程序都是基于应用框架层所提供的基本框架和API进行开发。Android在技术上具有以下优势:全开放智能手机平台;多硬件平台的支持;使用众多的标准化技术;核心技术完整、统一;完善的SDK和文档;完善的辅助开发工具。随着移动终端硬件的发展,基于Android系统开发工业应用已经具备了应用的基础。
  3.1 界面设计和导航
  一个完整的Android应用程序包括界面设计和后台设计。
  Android中有个resource目录,这个目录下存放资源文件,资源文件的统一管理,也是Android系统的一大特色。资源目录中layout目录下的文件就是布局文件。文件的内容是有关用户界面布局和设计的。Android的开发工具界面设计效率比较差,因此必须通过手动编写xml方式实现数据的显示。
  布局文件使用了绝对布局来实现各类图形和文字的显示。绝对布局简单直接,直观性强。里面还包括各类文本对象、背景以及各类按钮等。这是脱水岗的数据流程图显示。脱水岗流程图完成了背景显示、数据显示、按钮导航等功能。   界面显示如下图所示。
  3.2 网络数据的通讯和显示
  对于Android的网络通讯性能的提高,我们可以使用Java上高性能的NIO (New I/O)技术进行处理,NIO是从JDK 1.4开始引入的,NIO的N我们可以理解为Noblocking即非阻塞的意思,相对应传统的I/O,比如Socket的accpet()、read()这些方法而言都是阻塞的。
  NIO主要使用了Channel和Selector来实现,Java的Selector类似Winsock的Select模式,是一种基于事件驱动的,整个处理方法使用了轮训的状态机,好处就是单线程更节省系统开销,NIO的好处可以很好的处理并发,对于Android工业应用开发来说比较关键,对于多点Socket连接而言使用NIO可以大大减少线程使用,降低了线程死锁的概率。
  NIO作为一种中高负载的I/O模型,相对于传统的BIO (Blocking I/O)来说有了很大的提高,处理并发不用太多的线程,省去了创建销毁的时间,如果线程过多调度是问题,同时很多线程可能处于空闲状态,大大浪费了CPU时间,同时过多的线程可能是性能大幅下降,一般的解决方案中可能使用线程池来管理调度但这种方法治标不治本。使用NIO可以使并发的效率大大提高。
  4 注意事项
  在Android软件开发中,要注意解决线程、网络、socket关闭等问题。
  4.1 线程问题
  在接口软件的Socket编程中,实现接口软件与多个客户端的通信要尽量用多线程机制来实现,当接口软件监听到一个客户端的连接就开辟一个线程专门负责与客户端的通信,如果客户端因为某个原因断开与接口软件的连接就要及时关闭线程。应用Android客户端时,对于网络通讯、数据读取等这些比较耗时的操作要开辟一个线程单独执行,不然主线程因为执行这个耗时的操作而耽误执行其他操作,这样会导致程序响应很慢。
  4.2 网络问题
  Android客户端运行中,接口软件与客户端正在通信时候会出现突然网络断线情况,这时就要自动关闭socket,如果不关闭socket,会消耗贻尽系统资源,最终导致系统崩溃。由于客户端每隔一段时间(3秒左右)都要去接口软件读取数据,在客户端程序和接口软件程序内设置在一段连续时间(如1分钟)内,若一方没有接收到对方发来的任何数据,那就双方自动关闭socket,这样就解决了网络突然断开时,没有及时关闭socket的问题。
  4.3 socket关闭问题
  在进行socket编程中,遇到异常或者其他需要断开连接的情况时,socket要及时关闭,而在关闭socket时,要保证线程关闭。当客户端人为断开与接口软件的连接,此时接口软件就会检测到与这个客户的通道已经关闭而出现异常,此时就要及时关闭线程和socket,若不关闭这些资源,系统运行时间长了,会因为资源消耗殆尽而导致崩溃。
  Android4.0以上版本的UI线程只负责数据的显示和更新,不能进行网络通讯,声音播放等功能,因此为了保证系统正常运行,还需要在网络线程和UI线程之间进行通讯。本项目中就建立了多个线程,主线程和网络线程之间通过消息进行数据传输。通过不同线程的建立和通讯,实现了和服务器的数据同步和更新。
  5 结束语
  基于Android的移动巡检系统在油田联合站现场应用,变固定岗位为移动岗位,可以实时查看各岗生产数据,设有多种流程图、动态显示等多种查看方式,能够对现场生产设备进行调节控制,具有声光报警功能,减轻操作人员劳动强度,保证安全生产,提高联合站管理水平。
  參考文献
  [1]刘晓胜,周岩.电子巡更系统及其发展现状[J].工程设计CAD与智能建筑,2002(12).
其他文献
目的探讨氨茶碱治疗小儿哮喘的安全有效方法。方法 52例小儿哮喘患者随分为对照组26例,治疗组26例。对照组给予茶碱每次4~5mg/kg,每6h1次。治疗组采用持续静滴方法:首次剂量按
目的 通过对肾病综合征患儿治疗期相应护理措施的实施,减少并发症的发生.
【摘要】 老年人阿尔茨海默氏症(AD)属于精神科疾病,一般有神经退行性病变。是一组病因未明的原发性退行性脑变性疾病。多起病于老年期,潜隐起病,病程缓慢且不可逆,临床上以智能損害为主。  【关键词】老年人;阿尔茨海默氏症(AD);临床观察;综合防治    DOI:10.3760/cma.j.issn 1673-8799.2010.06.70  作者单位:215200 江苏省苏州市市立医院    阿尔
目的 临床评价体外循环技术(CPB)在临床中的应用及未来前景展望.方法 1999年4月至2009年8月,除完成心脏及大血管手术7000余例还应用CPB为86例疑难重症患者提供抢救和治疗;其中肺移植1例,幼儿肾移植2例,肾癌伴下腔静脉癌栓6例,子宫肌瘤侵入下腔静脉瘤栓取出1例,肝移植5例,介入治疗意外5例,布加氏综合征66例.结果 成功救治77例,死亡9例.结论 体外循环是心脏及大血管手术的辅助方法
弄清要什么、为什么,才能找到怎么做。职业高中作为教育环节中不可缺少的一个组成部分,有他的特殊性。本文就职高学生的特点进行了阐述,对于德育教育的特点以及怎么实施德育
住院患者98%以上都有恐惧、紧张、害怕、担心等心理问题,随着护理模式的改进,患者的心理健康已成为护理上又一个关注的焦点.笔者对所在医院骨科中心关节外科住院治疗的100名
乳腺癌是妇女最常见的恶性肿瘤之一.在我国,妇女乳腺癌患病率占全身恶性肿瘤的7%-10%.目前,手术根治是治疗乳腺癌唯一有效的方法.由于手术损伤大.术后皮瓣坏死率高,患侧肢体
目的:探讨血液稀释疗法联合羟基脲等药物治疗真性红细胞真多症的临床疗效及预后评价。方法:对我院收治的真性红细胞增多症患者采用治疗性血细胞单采术去除红细胞2~4次后,立即
由于传统媒体的单向传输方式,远程教育在很长时间都没有很好地发挥其教学功能。现代教育技术的发展克服了原有的技术问题,在很大程度体现了双向交互功能,从文本会议形式到目
摘 要 以大屯矿区异地数据存储备份及容灾系统的建设为例,介绍了异地数据存储容灾系统的建设目标和具体实施,系统的实现极大降低了数据中心业务在各种不可预料灾难发生时的损失,保证业务系统的7*24小时不间断运转。最大限度的保护了OA办公管理系统、物资供应管理系统、公司档案管理系统、综合电信管理平台系统等重要业务应用系统数据的实时性,完整性和一致性。同时也为公司计算机应用系统的正常升级,更换部件等提供了不