热电企业备品备件动态管理系统开发及应用

2018-05-06 00:58
今日自动化 2018年4期
关键词:主程序备品备件服务器端

(国电长源荆州热电有限公司检修部,荆州 434000)

0 引言

原有的备品备件管理一直沿用传统的纸件管理方式,入库和领用都在纸质账本上登记,查询时需要在账本上查找,有时要翻阅几个账本才能找到。统计剩余数据时需要将入库账本与领用账本同时找到进行一笔一笔地计算,这样浪费人力,浪费时间,浪费纸张,工作效率低,很难适应生产现场快节奏检修工作的需要。

开发热电企业备品备件动态管理系统,是用计算机编程技术和现代网络管理技术相结合,开发出一个针对性和适应性很强的管理平台,从而代替传统纸件管理方式,是一次技术创新,管理模式的变革,其主要有3大优势。

(1)方便快捷,使用人员在办公室的电脑上就能看到仓库里备品备件的种类、型号、用途、数量、存放位置等信息,不用到仓库翻阅账本,也不用到存放架上核对就能一目了然,随时登记领用信息,更加方便地管理备品备件。

(2)动态显示数据,根据备品备件的使用情况,该系统自动更新库存数据,随时显示变化信息,跟踪每件备品的来龙去脉,有利于领用、调剂和保管,使仓库管理规范化。

(3)保障及时供应,该系统设有备品备件缺件报警功能,及时提醒领用人员上报采购计划,确保生产急需。便于制定符合实际的备品备件申报计划,节约成本。

这一管理系统开发与应用成功后,能够使全厂各专业备品备件管理形成一个网络,有利于查询、领用、调剂、盘点,有利于申报计划和监督管理。

1 备品系统总体设计方案

该系统由服务器端和客户端两大部分组成。系统结构如图1所示。

图1 备品备件动态管理系统

该系统采用厂信息中心计算机作为服务器端,用客户端+网页前端的模式为用户提供备品管理功能。用户可以使用浏览器访问备品系统的服务器端,在服务器端提供的网页内实现备品的查询、管理、调拨等操作。用户也可以在仓库内使用客户端,对仓库内的备品进行条码打印、扫码管理等操作。该系统利用不同的人机界面,随时随地满足用户的需求。

2 备品系统服务器端设计

2.1 服务器端应用程序设计

系统设计初期,综合对比各种编程语言的优劣后,决定该系统的服务器端应用程序采用ASP(Active Server Pages)编程语言进行编写。ASP是一种新型开放的,免编译的应用开发环境,它将HTML页面,scripts语言和动态服务器扩展Active Server Component结合在一起,为企业提供一个服务开发解决方案[1]。

该系统采用ACCESS数据库作为系统数据源,ACCESS数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体[2]。因此该系统使用典型的ASP-ACCESS编程构架,发挥该构架强大的功能和稳定性。

该系统采用用户名、密码验证登录的方式,对不同的用户进行区分。系统根据用户所在班组和用户权限对用户开发特定的备品管理功能,保障备品管理的安全性。

2.2 服务器端数据库结构设计

该系统服务器端采用ACCESS数据库作为数据源。根据备品系统功能要求,设计的数据库结构如表1所示。

表1 数据库结构

该系统的数据库主要分3部分:(1)备品数据相关的数据,这部分数据表内存放着备品备件数据、用户自定义的分类、备品大类、小类及仓库以及备品出入库记录、备品借用情况。(2)与用户登录和账户授权相关的数据,保存所有可以登录该系统的用户数据以及账户权限。(3)与备品系统相关的数据,保存备品系统的设置、客户端应用程序授权等数据。

该系统设置了数据库自动备份和恢复机制,确保数据库的安全。

2.3 服务器端通讯接口设计

为了方便对仓库内备品的管理,该系统为用户提供了备品客户端软件。客户端软件安装在备品仓库内,其数据及功能实现都由服务器端支撑。客户端软件和服务器端软件之间利用宽带网络做物理连接,软件方面则利用服务器端的通讯接口同客户端实现数据交换。

备品系统服务器端通讯接口由ASP语言编写,采用POST请求和JSON反馈的形式与客户端进行通讯和数据交换。客户端利用编写好的通讯控件向服务器端发送POST请求,服务器端接口函数获取到请求,经解析和处理后立即进行反馈。服务器端接口程序将反馈信息和数据包装到JSON数据包,发送给客户端。客户端解包后,将数据释放出来,整个通讯过程便完成了。

备品系统服务器端接口设置了加密功能,在客户端进行登录、获取授权的时候,客户端和服务器间的数据通讯是加密的,每次数据交换都进行一次错误校验,既保证了数据正确,又确保了通讯的绝对安全。

3 备品系统网页前端设计

备品系统为用户提供了网页前端,用户可以登录网页,在网页内对备品进行管理。网页前端采用ASP编写后台程序,发挥动态网页的优秀作用,利用JavaSript和JQuary编写前端处理程序,充分利用了JQuary的强大优势,在为用户提供方便快捷的管理页面的同时,也提高了整个前端网页的速度。例如,在备品管理页面内,前端网页利用JQuary编写的备品管理右键菜单,让网页前端更加符合用户平日的使用习惯。在备品新增等页面内,前端网页广泛使用JQuary的异步调用功能(AJAX),AJAX具有以下优势:无刷新更新页面,减少用户等待的时间;可以利用客户端强大的运算能力,把部分原来由服务器负担的工作转到客户端,减轻服务器的负担,同时加快页面响应速度[3]。该功能减少用户使用过程中页面刷新的次数,使网页前端更加友好的为用户提供服务。

4 备品系统客户端设计

4.1 选择编程工具

备品系统客户端主要利用Microsoft Visual Basic 6.0集成开发环境编写主程序,利用Microsoft Visual C++编写用户控件及动态链接库,使该应用程序在Windows平台上拥有较好的兼容性,有利于推广应用。

4.2 通讯功能实现

备品系统客户端的通讯程序是基于微软的ActiveX控件Microsoft ScriptControl实现的。利用此控件编写相关控制程序和解析函数,最终封装在自定义控件内,形成一个新的通讯控件供主程序调用。

客户端与服务器端通讯过程如图2所示。如果客户端的主程序需要与服务器端进行通讯时,主程序会调用通讯控件内预留的API接口控制通讯控件进行通讯,通讯控件内控制程序会控制基础控件ScriptControl,实现在网络层面的数据发送和接收。当服务器端返回数据后,客户端通讯程序内的基础控件ScriptControl接收数据,并将数据发送给解析程序,解析程序对数据进行编码转化、解析JSON数据从而将数据解析出来,存储在控件内的特定变量内,并向主程序发送状态信息,主程序接收到通讯控件发送的状态信息后,从通讯控件内读取出解析后的数据,并进行下一步处理。

图2 客户端与服务器间通讯

客户端通讯控件内加入了加密、解密以及校验功能,在完成特殊数据的传递过程中,对数据和指令进行加密,确保通讯安全。在通讯后,校验程序对数据进行校验,确保通讯准确性。

4.3 扫码功能实现

备品系统客户端利用Windows系统的内核动态链接库Kernel32实现对扫码枪输入数据的接收和处理。

备品系统主程序启动后,会读取根目录下的配置文件。当配置文件正确时,主程序会调用串口通讯模块开启串口,并开始数据接收。

串口通讯模块是基于Kernel32设计的,模块启动后,会进行初始化。初始化过程中,程序会将串行端口作为一个文件看待,程序利用Kernel32动态链接库打开串口,并开始监听。当扫码枪扫描备品条码后,条码数据会通过串行端口输入到计算机,监听端口的函数立即将数据送入特定的变量内,并通知主程序对其进行处理。主程序读取到条码数据后,立即向服务器端发送查询指令,如果条码有效,服务器端会返回对应备品的数据。主程序根据用户扫描条码的次数和条码数据,与服务器配合,实现备品的扫码出入库。

4.4 快速模糊检索功能实现

当用户输入模糊查询字符串后,备品系统客户端会快速进行模糊检索,并根据相似性将备品数据显示在备选框内,供用户选择并快速进行出入库。

快速模糊检索功能的软件实现过程。软件启动后,如果软件授权正常,程序会在启动过程中向服务器端发送查询请求,服务器端会自动将备品列表发送到客户端,客户端将备品列表储存在全局数组,以备快速检索使用。

当用户在快速检索输入框内输入检索词后,程序会将用户输入的字符串逐字拆分,并启动快速检索程序。

快速检索程序将搜索词拼接,与全局数组内的备品数据进行一一对比,对相近的备品数据进行保留,对不同的进行舍弃。在对比完所有数据后,对相似的数据进行再次排序,排序过程采用冒泡法。最终,快速检索程序将备品数据按照相近程度进行排序后,显示在选择列表内,用户可以双击列表内的备品数据,并对该备品进行管理。

4.5 库存位置解析功能实现

备品备件数据在登记初期,由于登记人员及其他方面的原因,备品库存位置没有一个统一的书写标准,导致备品检索中,备品数据列表混乱,用户无法快速方便的查询。例如用户想登记备品到三号架三层货架位置,有些用户使用“3-3”表现形式,有些用户则采用“3架3层”的表现形式。在依照位置检索备品之时,用户无法完整的搜索到三架三层的所有备品,这样不利于备品的快速检索和查找。

在备品检索页面内对备品位置进行解析,确保用户检索到所有相似的备品。同时,该软件在备品新增页面内对备品位置进行检索,以确保用户输入的备品数据是标准的、规范的。解析程序在获取到前方传送进来的备品位置数据后,会对这个字符串进行检查。由于备品位置中可能包含“架”或“-”字符,故解析程序会检查位置字符串内是否含有这两个字符中的任意一个字符,如果字符串中包含这两个字符,则将这个字符前方和后方的字符串切割,分别切割为A和B两部分,这两部分字符串将储存在变量内待处理。之后程序会检测待处理的字符串,将字符串进行检查和转换,最后储存在字符串C和字符串D。字符串C和字符串D经过拼接后获得新的字符串,最终将格式不标准的备品位置数据转换为标准格式数据。转换过程如图3所示。

图3 备品字符串转换过程

4.6 客户端绑定功能实现

备品备件动态管理系统具有严格的客户端授权功能,客户端应用程序安装后,管理员会对该客户端程序进行授权,授权程序会指定客户端绑定的仓库位置,同时会将客户端与计算机硬件实现紧密绑定。当非授权人员将客户端程序包整体拷贝至其他计算机并打开客户端时,将无法使用并提示“请重新获取授权”。

4.6.1 客户端设置授权过程

软件管理员通过页面的授权设置程序进行授权,当用户打开授权设置程序时,后台程序将自动获取软件的授权信息,当该软件已经授权,则向服务器请求授权数据,如果服务器返回授权正确,则将该数据显示在权限设置页面内,供用户修改授权数据。当服务器返回授权错误或者软件未授权,则软件刷新页面,供用户新增软件授权。当用户修改或设置好权限信息,点击“获取权限”按钮后,软件将授权数据打包后发送给服务器,服务器接到数据后,将数据记录并写入数据库。授权设置完毕后,软件识别码将软件写入软件配置文件,再次打开程序后,该软件识别码将用于软件授权的对比。

4.6.2 客户端获取授权过程

备品系统客户端每次启动时,会读取软件根目录下方的配置文件。软件设计时,为确保仓库客户端的权限授予唯一性和仓库绑定的唯一性,在读取配置文件后,主程序会获取当前计算机的硬件ID,与服务器端和本地配置文件进行匹配。只有在三者都一致时才能够正常启动程序。当三者中一项不匹配,程序启动过程将终止,软件将根据实际情况提示用户。

备品系统客户端采用自主编写的动态链接库获取当前计算机硬件ID,在主程序向动态链接库发送获取请求后,动态链接库会读取计算机的CPU编号、硬盘ID、网卡MAC等数据,并与预设密码进行加密运算,最终将硬件ID返回在主程序。

当主程序获取到硬件ID后,会读取本地配置文件内经过加密的硬件ID,同时通过通讯控件向服务器端请求软件授权数据。当本地配置文件内的硬件ID同软件获取到的硬件ID不符时,主程序将停止启动,并提示用户告知启动失败原因。当服务器端无法获取到当前软件的授权数据,主程序会停止启动,并告知用户需要对软件进行正确的授权。

当硬件ID、本地配置文件的ID以及服务器的授权一致时,服务器端会将授权数据通过加密手段发送到客户端,客户端可以根据授权数据获取到软件绑定的仓库,进而控制客户端的备品管理权限。

5 结束语

选用ASP(Active Server Pages)编程语言作为该系统的主要编程语言,使用ACCESS数据库作为系统数据源,使用典型的ASP-ACCESS编程构架,经过半年多的编制、修改、完善,成功地开发出了备品备件动态管理系统。在花生壳官网(简称Oray)的虚拟主机内安装好IIS服务器环境并设置好域名动态解析后,将编写好的备品备件动态管理系统加载在该主机的IIS服务器中,开展备品备件管理系统的试运行工作,经过多次试验和修改,系统的稳定性、功能性均到达设计要求。该系统通过二年多的运行,并进行了升级和完善,已在热控、锅炉、燃料、电气、汽机、脱硫等七个专业全面推广使用,运行良好。在升级过程中,强化了备品备件被盗监管功能,从系统里,能够查找到每件备品的来龙去脉。

猜你喜欢
主程序备品备件服务器端
信息化条件下的备品备件全流程管理探讨
企业备品备件管理存在的问题及优化建议
——以某集团公司下属S企业为例
自动升级程序在船舶监测系统中的应用
Linux环境下基于Socket的数据传输软件设计
浅谈数控铣削技术代码程序的嵌套方式研究
电控冰箱软件模块化设计
高速公路备品备件智能化管理平台的开发应用
时光倒流 换回PotPlayer老图标
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计