PLC工程师数据管理客户端的设计与应用

时间:2023-06-07 18:06:02 教案设计 来源:网友投稿

zoޛ)j馓	ݮF=/iwk'gngn@uOwӎ6_uM9N? ?_]_(LZ]yv@'v学习了一段时间。经过这一系列的培训,在对PLC各方面的知识有所了解的同时,也熟悉了该公司生产线上的日常维护和运行。为了方便该公司日常运作工作管理,开发了基于Android手机平台的客户端。

2.2 需求分析

本软件使用者可分为管理员和PLC工程师,PLC工程师通过移动客户端获取每天的工作任务,如流水线控制要求、加工零件的尺寸、其他协作工程师的信息等。在完成工作以后,需要提交工作记录。

根据以上叙述,得到如下分析:

2.2.1 工程师基本功能要求

1)即时获取每日工作任务:当有工程师新的工作任务时,系统即时发出通知。

2)工作任务查看:查看工作任务详细信息。

3)提交工作记录:运维工程师提交处理工作任务的起始时间、内容、结果等,同一工作任务可以多次提交工作记录。

4)查看修改已提交的工作记录。

5)运维资料库,方便工程师查阅。

6)每日签到,通过GPS获取签到位置。

2.2.2 管理员基本功能要求

1)分配任务:定义产品尺寸、流水线作业等。

2)编辑资料库:包括硬件资料、产品资料、问题解答等。

3)查看工程师信息:包括每日打卡签到、工作完成情况、产品生产情况汇总等。

2.3 主要功能设计

移动客户端的设计有八个主要功能,涉及数据库的调用、向数据库中写入数据、删除数据库中数据、数据的显示、GPS定位获取、软件消息实时提醒、电话呼叫功能和资料库。将这些功能开发并实现,就能组合成各个功能模块,将功能模块结合上UI设计,就可以完成软件客户端的设计。图1所示,系统流程图。

1)数据库的调用:调用数据库中的工程师信息表(engineer)、派单表(dispactch)、任务单表(task)、工作记录表(record)、工作记录图表(image)、签到记录信息表(checkin)。

2)数据库中写入数据:提交数据必须进入到某项具体任务中,然后向数据库中提交工作记录表(record)、工作记录图表(image)、签到记录信息表(checkin)等信息。

3)数据库中删除数据:同样,必须进去到某项具体任务中后,才能进行删除数据库中工作记录表(record)、工作记录图表(image)、签到记录信息表(checkin)的某条记录。

4)数据的显示:将服务端数据获取以后,通过json解析,然后利用Listview显示多条数据。

5)GPS定位获取:通过手机GPS定位后,移动客户端可以获取手机中GPS定位地点的经纬度,通过与地图的比对,可以在客户端上显示位置。

6)软件消息实时提醒:手机可以实时提醒新的派单任务。

7)电话呼叫功能:PLC工程师在工作中遇到解决不了的问题,可以在软件中直接点击主管工程师或其他工程师的电话,寻求帮助。也可以一键进入拨号界面,呼出号码。

8)资料库:资料库里包含了很多关于PLC硬件和软件的使用说明、配方程序、运动控制程序等,让工程师在工作中可以查询资料。

软件的主界面中可以利用Activity加载四个Fragment实现不同模块之间的滑动和点击切换。登录界面通过异步请求完成登录。当初次登录软件时会向服务器获取数据,当服务器数据有更新时,可以通过Listview上下拉动实现软件数据的更新。如需拨打号码则通过点击电话调用系统拨号界面实现界面跳转。利用JSON对服务器返回的数据进行解析封装等一系列处理,获取数据。

3 系统开发工具与环境

3.1 前期准备

在开发本系统的过程中,会应用Android开发平台、Java开发语言、Eclipse开发工具、MySQL数据库和新浪云平台服务器。

在项目的开发过程中需要配备一部Android系统的手机进行软件测试或者使用AVD,即 Android运行的虚拟设备进行测试。

Eclipse是一个开放源代码的,基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集JDT,也称为Java的开发工具[3]。Eclipse也有很多特点:它是一个开放源代码的,公司可以免费获得该软件的使用权。Eclipse本身的内核不大,可以说很小,它是一个框架和一组服务支持很多平台,它的功能全部集成在插件上,可以通过将插件放在内核上使用。所以说它真正实现了可扩展可配置的功能。因为它采用插件的机制,可以很容易地向容器中加入需要的插件,也可以将不需要的插件轻松取出。

Android的应用层上的应用程序是用Java编写的,以Java语言作为开发语言。Java包含Java语言和Java开发平台,其中Java语言是一种面向对象程序设计语言。Java的技术在不断优化改进,促使Java非常流行,发展迅速,对C++语言形成有力冲击。当今云计算发展迅速,在全球云计算和移动互联网的产业环境下,Java具有顯著优势和广阔前景[4]。

JDK的全称是Java Development Kit。他是由Sun Microsystems针对Java开发人员的一款产品。Java出现在人的眼球之后,Java SDK各个版本中,JDK具有很广泛的使用率。Java的核心部分当属JDK,其中Java的工具、运行环境、基础的类库都在JDK中[5]。

在编译Java程序前必须安装JDK,否则无法完成编译,如果只是运行查看Java的程序,可以只要安装JRE来查看运行结果。因此,在运行Eclipse之前要确保安装好JDK。

本系统客户端的数据库选用了MySQL,因为MySQL的访问速度很快而且占用的体积很小,在开发过程中使用方便。MySQL在WEB应用方面的表现很好,也是现在最常用的关系型数据库管理系统。MySQL 数据库管理系统具有关联性,它将不同的数据保存在不同的表中,这样分开存放的方式,增加了访问的速度,也提高了数据库的灵活度[6]。

云服务器(Elastic Compute Service, 简称ECS)是一种处理能力可弹性伸缩的计算服务,其管理方式比物理服务器更简单高效。云服务器帮助您快速构建更稳定、安全的应用,降低开发运维的难度和整体IT成本,使您能够更专注于核心业务的创新[7]。

3.2 系统开发环境搭建

软件开发之前必须完成Android开发环境搭建,环境搭建步骤如下:(1)安装JDK1.6版本,配置电脑的环境变量;(2)安装Eclipse开发软件;(3)安装Adroid的程序开发包SDK;安装Android在Eclipse上的插件ADT;(4)打开安装好的Eclipse,创建Andriod虚拟手机AVD(5)安装JDK1.6版本,配置电脑的环境变量。

首先登录官方网站http:///下载jdk,可以选用最新版本的程序。下载后将程序安装在Java的目录下,安装时的路径不能留有空格。程序安装完成后需要对电脑配置运行时的环境变量,在Windows操作系统的电脑上,右击我的电脑,在属性的高级设置中找到环境变量选项,选择新建环境变量,将变量名设置为JAVA_HOME,变量的值设置为jdk的安装路径。同理也需要新建变量名为Classpath的变量并修改对应path变量。

然后打开CMD,键入“java-version”“java”“javac”几个命令,若出现Java详细信息的画面,则说明环境变量配置成功。

安装Eclipse开发软件需要通过登录Eclipse官方网站进行从程序的下载,为了方便开发,下载时选择预装JDT扩展包的Eclipse软件,下载完成后对压缩包进行解压,解压后点击Eclipse软件进行安装,以及安装程序开发包SDK,将下载后的SDK的压缩包解压到合适的位置,将解压的路径复制到Eclipse的安卓路径窗口即可完成。

为使Android应用程序可以在模拟器上运行,在Eclipse中创建安装虚拟机AVD。在Android 1.5版本以后的开发过程中,AVD创建的数量不可以少于1个,每个AVD会模拟一套虚拟的设备来运行开发的Android应用程序[8]。

模拟器的启动后的界面和正常的Android的使用方法相同,可以在开发Android软件时通过模拟器进行软件的测试,便利性大大增加,也节约了开发人员宝贵的时间。在开发程序之前必须要搭建好开发环境,否则开发过程中就会出现错误。

4 系统功能实现

4.1 登录模块

本软件在实际使用中都是由项目公司的PLC工程师操作,要求软件系统具有很高的安全性和保密性,以防止公司资料泄密。所以,在工程师登录模块中,当工程师未输入账号密码或者只输入了一项时会提示工程师账号密码为空。当工程师账号密码都输入时,点击登录,通过接口与服务端数据库中的工程师信息进行比对,若账号密码正确,则可以顺利登录软件,若账号密码不正确则提示账号密码有误。在登录模块设立onClick监听事件,然后应用AsyncHttpClient请求,可以使轻松地获取网络数据或者向服务器发送数据,运用了异步框架,在底层用线程池处理并发请求,提高请求效率。

4.2 工作安排模块

在工程师登录软件之后,界面会实时更新工作的内容,根据不同设备的要求做出不同的要求。这里的工作安排表通过接口利用登录模块所用的异步传输请求从服务端下载数据。

根据任务的时间不同,进行数据排序。找到排序点之后还需要用到Comparator函数,该函数实现了 Comparator接口(即“比较器”接口,新集合库的一部分)的一个对象,并用它的单个compare()方法进行比较。这个方法将两个准备比较的对象作为自己的参数使用,若第一个参数小于第二个,返回一个正整数;若相等,返回零;若第一个参数大于第二个,则返回负整数。

ListView是Android开发中非常常用的组件,ListView可以用来显示一个列表,本次开发的工作安排表、工作记录、签到记录等都需要利用Listview显示排序后的数据。仅仅有Listview是显示不了数据的,还需要用到Adapter来适配数据。

4.3 签到记录模块

签到记录模块,无法删除所签到的数据,只能提交手机GPS获取的位置,并将获取的位置上传至服务端,通过服务端后台百度地图解析显示。当成功提交位置后,在服务端和客户端都会显示。

为了提高定位信息的准确度,本次开发利用updateView函数实现了GPS更新位置信息,并保留在Textview中,当需要上传时,将自动从Textiew中获取。

签到记录的显示还用到Listerview+Adapter功能,但这里添加了onRefresh()函数上拉刷新功能。在刷新本地数据的同时,因为客户端和服务端的请求回应需要时间,所以本次设计了handle延时功能,可以让刷新的进度与客户端获取的速度保持一致。在延时的过程中, listView.setRefreshTime通知客户端更新数据,让客户端数据保持最新。

4.4 工作记录模块

在上述模块的介绍过程中,已经涉及到了AsyncHttpClient异步传输,Listeview+adapter显示,Json解析數据,Comparator数据排序等技术。工作记录模块主要是对数据库的操作,对数据库中的数据进行提交、修改和删除,所以本模块也应用到了上述技术。

在上传、提交、删除三种网络请求交互时,需要用到switch函数,通过v.getId获取物件的id码,通过id识别请求方式。

4.5 资料库模块

资料库模块是对PLC工作技巧的一个总结,方便PLC工程师在运维工作前学习技术,在运维工作中也可以直接查阅。将公司提供的数据,导入进软件的数据库中,并进行一定的分类,实现数据的查阅和检索。

4.6 电话呼叫模块

电话呼叫模块主要实现工程师通讯录功能,通过异步请求,利用接口下载工程师信息表,并json解析后在listview中显示。电话呼叫模块的最大特色就是利用Intent直接拨号快捷功能,当工程师想咨询另一位工程师时,并不需要存储联系方式,通过系统客户端,在联系人一栏查阅号码,可以直接点击拨号,无需退出程序。

本章主要介绍了软件各模块的功能及实现的方法,在模块功能的实现原理中,主要应用到了AsyncHttpClient异步传输,Listeview+adapter显示,Json解析数据,Comparator数据排序等技术。

5 总结

开发完成后,在硬件平台方面,测试的硬件需要一部可以装载Android系统的手机。在软件平台方面,需要手机操作系统为Android 4.2.2或者更高的版本。在软件测试之前应做如下设置:1)手机安装上开发版本为8.0的Android软件。2)打开手机的网络功能,可以为无线网络也可以为数据蜂窝网络,同时需要打开手机的GPS定位。手机网络和GPS设置完成后,用户就可以在手机中点击软件图标开启软件使用。

本软件系统仅作为初步试验版,并未正式投入使用,后期还可以加入更多功能,例如对硬件控制的功能,查看硬件设备状态,记录生产设备的详细信息管理等功能。以此来满足不同企业的需求,具有非常广阔的市场前景。

参考文献:

[1] 竺志超,陈元斌,韩豫.非标自动化设备设计与实践 毕业设计、课程设计训练[M]国防工业出版社,2015.

[2] 郑阿奇.Java实用教程[M].北京:电子工业出版社,2015.

[3] 韩超,梁泉.Android系统原理及开发要点详解[M].北京:电子工业出版社,2012:54-55.

[4] 韩超.Android经典应用程序开发[M].北京:电子工业出版社,2012:36-45.

[5] Markus Alekss. Use Java and the CORBA realization distribute type system[J].Journal  of Pingxiang College, 2013 (3):11-12.

[6] 明日科技.Android开发从入门到精通[M].北京:清华大学出版社,2017.

[7] 李刚.疯狂Android讲义[M]. 4版.北京:电子工业出版社,2019.

[8] Haseman Chris. Android Essentials[M].Apress:the Expert’s Voice,2013: 42-45.

【通联编辑:梁书】

推荐访问:数据管理 客户端 工程师 设计 PLC