叶剑飞 李烨
摘要:
针对某涂料加工生产企业生产过程中急需解决的生产管理、计划编制与执行跟踪方式落后以及工序生产信息采集不及时等问题,提出了基于Socket通信的生产管理跟踪系统。区别于传统的车间生产管理模式,该系统加入了基于Android的移动终端设备,利用TCP的Socket通信技术、Winform框架以及数据库管理技术,通过Android移动终端信息采集和服务端通信技术,对车间生产进度进行远程监督和管理,从而降低了人力成本,缓解了监督不及时的问题,提高了监督力度与生产效率。
关键词:
信息采集;Socket通信技术;Winform框架;数据库技术
DOIDOI:10.11907/rjdk.172750
中图分类号:TP319
文献标识码:A文章编号文章编号:16727800(2018)003013603
英文摘要Abstract:For the production management, planning and the behindhand execution trace ways in the implementation of production process that a certain paint production enterprises faces, we proposes a discrete production management tracking system based on Socket communication. The production management mode is different from the traditional, joined the mobile terminal equipment based on Android, using TCP Socket communication technology, Winform framework and database management technology, through the Android mobile terminal information acquisition and server communication technology, remote monitoring and management of the workshop production schedule, reduce manpower needs and alleviate the problem of not timely. Increased supervision and production efficiency.
英文关键词Key Words:information acquisition; Socket communication technology; Winform framework; database technology
0引言
随着市场环境的快速变化,现代制造型企业也在加快信息化进程,智能化、网络化和集成化正成为制造业发展趋势。企业对生产数据的实时采集与生产进度监控问题越来越关注,以期提高生产效率与监管力度,实现制造过程的可追溯性等。
传统的生产车间管理系统,大部分需要通过人力进行统计和监督,效率低下、实时性差且出错率高,无法满足实时预警和监控、数据查询存储、快速追责以及灵活记录生产信息的需求。随着移动终端智能设备的不断普及,现代制造企业对生产管理的灵活性和便捷性提出了更高要求。
本文以某涂料加工生产车间为背景,从车间的实际出发,建立了基于Socket通信的生产管理跟踪系统[12]。不同于传统的生产管理系统,本系统能够通过Android移动终端设备实现生产数据的采集[3]、发送以及生产进度的实时查询,并通过服务端对生产过程进行实时监控和记录。
1系统需求
经过对该企业车间的详细调研和仔细分析,发现目前车间管理方面存在的主要问题如下:
(1)人力依赖性大。各个工序的生产进度监督与生产数据采集完全依靠人力完成[4],效率低下,且經常由于工作人员的工作不到位与失误造成一定的损失和矛盾。
(2)数据存储和查询困难。由于生产数据以及订单等重要数据都是通过人力进行统计和存储,导致数据散乱不集中,且查询起来费时费力,经常造成数据丢失和错误,各部门数据无法很好地共享和对应,容易形成“信息孤岛”,导致工作量大大增加,且工作效率低下。
(3)数据采集困难。生产管理人员无法实时跟踪生产过程中的设备运行状态、工序生产时间、生产人员监督以及订单完成情况,数据采集需要通过人工记录,数据的完整性和可靠性得不到保障,管理效率低下。
2系统结构
车间生产管理跟踪系统采用C/S体系结构,利用智能手机等移动设备进行数据采集和查询,使用PC服务器完成本系统应用程序的管理、维护和运行,从而极大地增强了系统的集成性和可维护性。生产车间装有大的显示屏,用来显示和监督整个生产车间的订单生产进度等状态信息。系统整体结构如图1所示。
2.1系统客户端设计
客户端是一个Android系统的APP,主要实现信息采集和数据查询功能,包括登录模块、通信模块、采集模块、查询模块以及用户管理模块。登录模块包含两种登录方式,一种是管理员模式,一种是员工模式,通过登录的账户、密码和数据库[5]进行匹配,以指定登录人员的权限,进入不同界面,实现不同功能,从而提高系统的安全性和便捷性;采集模块在员工登录功能里,包含扫描功能和手动输入功能,通过扫描或手动输入进行信息采集,最后通过TCP Socket写入数据库,并在显示屏上显示;查询模块是管理员登录后的功能,通过TCP Socket和PC服务端进行通信[6],通过输入的信息进行数据库查询,以便实时监督生产进度和进行人力资源等调度管理;用户管理模块可方便员工和管理者管理个人信息,包括修改密码和用户名等功能,并对修改后的信息进行存储保存。
2.2系统服务端设计
PC服务端的功能主要用于与数据库、客户端进行连接通信及显示,对数据库进行操作和接收客户端采集的信息并显示。服务端包含数据导入/导出模块、用户管理模块、生产数据管理模块、生产设置模块、通信模块、显示模块以及操作记录查询模块。用户管理和生产数据管理模块都需要管理员的身份验证,以保证系统的安全性。数据库是本系统的数据核心部分,数据库的设计直接影响着系统的工作效率和稳定性。本系统采用Sqlite3作为生产跟踪管理系统的数据库。
车间根据订单信息和需求等制定生产计划、生产批次表和工序计划表,随之确定相应的生产人员、设备及工艺,同时确定所需要的物料信息,通过客户端和服务端通信,操作数据库内的订单信息并设定系统,服务端的结构模型如图2所示。
3关键模块及技术分析
3.1采集模块与查询模块
客户端的采集模块和查询模块属于不同登录方式包含的功能,员工登录后主要通过采集模块进行数据的采集并发送给服务端,而考虑管理者监督生产进度的便捷性,管理员登录后,即可通过移动设备随时与服务端通信,通过查询模块查询重要订单的进度。
(1)数据采集。数据采集模块使用条形码扫描技术和手动输入技术。客户端使用员工身份登录后,主界面包括扫描和手动输入两种采集方式,考虑到便捷性和可靠性,员工会首先选择扫描功能。某工序生产完成后,生产员工扫描该订单的条形码,出现该订单的装罐单号信息后,员工通过TCP Socket通信把订单信息和工序发送给服务端,服务端会根据装罐单号在数据库中记录生产时间和生产人员信息。该采集方式安全可靠且方便快速,但由于该功能需要调用移动设备的摄像功能,且考虑到会出现条形码清晰度不够等问题,同时设置了手动输入订单信息的功能,并发送给服务端存储采集信息。该采集方式的安全性和效率都比较低。
(2)订单查询。客户端使用管理员身份登录后,便可进行订单进度查询。一个订单对应一个客户,但可能会有多个装罐单号,管理员通过向服务端发送订单号,服务端通过该订单号进行查询,并将查询到的一条或多条订单信息发送给客户端,管理者通过回复信息即可查看订单进度,以实现实时监督,方便快捷。
3.2导入/导出模块
(1)导入模块。对于新订单信息,服务端通过导入模块,将含有新订单信息的Excel表格导入数据库进行统一存储管理,然后车间才开始生产,通过客户端和服务端的通信,实时更新数据库中已有订单的生产进度。该模块使用sqlite3.dll的函数接口和OLEDB技术实现了数据库的写操作和Excel的读操作。
(2)导出模块。对于数据库中正在生产以及已完成的订单,通过导出模块可以先查询出在某个时间段的订单信息并将其以Excel表格形式导出,通过与服务端相连的打印机可以将其输出打印。该模块使用sqlite3.dll的函数接口和OLEDB技术实现了数据库的读操作和Excel的写操作。
3.3关键技术分析
(1)并发采集。在生产过程中,由于多条订单会同时进行,则需要多台设备对订单生产进度进行采集,因此要求整个服务端的接收模块满足高并发的要求。多线程技术[7]是传统的实现高并发的方法,但多线程会增加线程调度时间和数据切换时间,所以本系统未采用传统方法,而是使用线程池的方法。
开始先为线程池配置一个合适的线程容量,当客户端和服务端连接时,随着设备增加,服务端相应地增加线程数目,创建多个并发子进程。当订单信息完成后,客户端断开与服务端的连接,服务端则将已完成订单的线程逐步销毁。线程池的主要优点是降低了操作系统的额外开销与服务端的延迟。
(2)数据库和Excel表格的连接技术。本系统的一个核心技术就是对数据库和Excel表格的连接技术。由于车间的订单信息经常更新,存储量不会太大,所以本系统采用超轻量级嵌入式数据库,其语法支持标准的SQL语法,同时遵循数据库的ACID事务,且开发人员容易上手,快速掌握。由于本系统服务端采用C#界面程序,而对于Sqlite3数据库的接口,官网的System.Data.SQLite是针对C#编写的接口函数,可以直接调用。通过官网下载安装后,在项目引用里添加相应的DLL文件引用即可使用各种封装函数,更加方便快捷,且SQLite Expert Personal可以对Sqlite数据库实现界面化操作,更加清晰。
本系统对于Excel表格的操作,使用OLEDB接口技术,将服务端和Excel连接,实现订单数据的导入导出操作。由于C#里自带了该接口技术的模块,所以只需添加相应的引用即可使用,从而提高了开发效率。
(3)客户端与服务端的数据传输。本系统使用TCP Socket技术实现客户端和服务端的连接功能,且由于客户端和服务端不在同一个局域网,所以在通信过程中需要对服务端进行端口映射技术,将服务端的局域网IP暴露给外界,客户端通过路由IP访问服务端。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式存储和表示数据,易于阅读和编写,同时也易于机器解析和生成,可以有效地提升网络传输率。本系统客户端采用Java编写的Android APP[8],而服務端采用C#编写的Winform界面[910],在数据传输时需要考虑两种编程语言的编码问题。本系统使用JSON技术解决两种编程语言的数据传输问题。
4结语
本文针对某涂料加工生产企业车间存在的生产管理问题,利用TCP Socket技术、数据库管理技术以及Winform框架,设计了一个生产管理跟踪系统。该系统较好地解决了传统管理中的信息零散、数据冗余、信息反馈速度慢、信息滞后乃至信息造假问题,与传统生产管理系统相比,本文提出的基于Android客户端的系统使管理更加灵活,极大地提高了生产企业的管理与生产效率。
参考文献参考文献:
[1]王晓飞,李月强.基于PLC的汽车生产线管理系统[J].仪器仪表学报,2004,25(4):894895.
[2]SHENG B,WANG Y,WANG J P.Production process management system based on RFID technology[J].Journal of Wuhan University of Technology,2012,21(8):1724.
[3]杨海素.面向MES的制造过程信息采集与处理系统研究[D].南京:南京理工大学,2014.
[4]谭海红.基于Android的远程监控系统的设计与实现[J].组合机床与自动化加工技术,2015(7):6163.
[5]萨师煊,王珊.数据库系统导论[M].北京:高等教育出版社,2000.
[6]孙晓梦,王志斌.基于TCP的多线程Socket通信实例[J].辽东学院学报:自然科学版,2013,20(3):178182.
[7]罗亚非.基于TCP的Socket多线程通信[J].电脑知识与技术:学术交流,2009,5(1X):563565.
[8]宋素荣.基于TCP的Java Socket通信技术[J].科技创新导报,2012(13):5455.
[9]张俊,乔宇峰.C#程序设计入门[M].吉林:吉林电子出版社,2005.
[10]MICKEY WILLIAMS.Visual C#.NET技术内幕[M].罗邓,郭炎,译.北京:清华大学出版社,2003.
责任编辑(责任编辑:黄健)