廖华丽
(汕头职业技术学院 计算机系,广东 汕头 515041)
关键字:配方管理;计重管理;APP;标签打印;数据交互
生产管理在制造企业中起着至关重要的作用[1-2].在各行各业的工业生产企业中,工业原料和工业产品是企业存货的重要组成部分,其品种、规格较多.成千上万的产品、原料及生产原料配方表使工作人员眼花缭乱,不同产品原料重量的误差范围要求也不同,稍不留神就容易出现张冠李戴的现象.为对工业原料、产品、配方表进行科学有效管理,实现精确控制工业原料配方比例,并对整个配方过程和计重过程进行跟踪和追溯,本文设计一套工业原料配方和计重管理系统.
该工业原料配方和计重管理系统软件,用来辅助企业对各种工业原材料配方和备料计重的精细化管理,实现工业原材料的完整数据记录、原材料备料的精准称重与精细化管理目标,减少人为手工操作的麻烦,也大大降低错误率.对工业原料配方过程和计重过程进行自动化跟踪,保证配方中材料名称、用量与实际投料中的材料名称、用量高度匹配,达到工业原材料投料的高效识别与精细化管理目标,并能实现对其历史记录情况的查询与追踪.
工业原料配方和计重管理系统包括两大模块,PC端的工业原料配方管理软件和Android移动端的工业原料计重管理APP,两个模块的功能细分见图1.
图1 工业原料配方和计重管理系统功能模块图
PC端工业原料配方管理软件使用的开发工具为PowerBuilder 12.0和SQL SERVER 2012 R2,编程语言为PowerBuilder 12.0.PowerBuilder是最有代表性的数据库前端开发工具之一,它采用流行的图形化界面和可视化编程方法,通过引入独具特色的数据库窗口对象,使开发人员能够可视化完成对数据库的操作[3].SQL Server 2012 R2版是一款数据库管理软件,能对企业提供最高级别的基础架构,可以针对关键业务应用的多种功能与解决方案提供最高级别的可用性及性能,轻松满足不同人群对数据以及信息的需求[4].Android移动端的工业原料计重管理APP使用的开发工具为Android studio 4.0.1、Visual Studio 2012、SQL SERVER 2012 R2,编程语言为java和C#.Android提供界面开发常用控件、界面布局与菜单处理.Visual Studio 2012是一个功能强大的开发工具,利用它可以快速地完成复杂的程序设计,设计出友好的用户界面和用户进行交互.在Visual Studio 2012中可以进行“断点调试”“逐过程调试”“逐语句调试”[5-7].Java是一门面向对象编程语言,具有功能强大和简单易用两个特征.不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[8].C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言.它在继承C和C++强大功能的同时去掉了它们的一些复杂特性[9].
为了提高软件的可靠性和质量,本系统使用软件配置管理(SCM)方法,利用Netframework3.5搭建一个包括识别和控制文档、代码、源代码的接口定义和数据库等内容的框架[10].在进行系统开发时,采用W模型进行软件测试,测试与开发同步进行,改进项目内部质量,减少总体测试时间,加快项目开发进度,降低测试和修改成本.这种动态测试是软件测试中最为普遍的方法,通过运行程序发现错误,通过观察代码运行过程来获取系统行为、变量实时结果、内存、堆栈、线程及测试覆盖率等信息,从而判断系统是否存在问题,或者通过有效的测试用例和对应的输入输出关系来分析被测程序的运行情况,从中发现缺陷[11].系统完成后进行APP前端性能测试和后台服务的性能测试[12].
具体的系统开发软硬件环境和运行软硬件环境见表1.
表1 系统开发和运行的软硬件环境
配方管理系统为PC端C/S结构的信息化管理系统,主要实现生产配方的多版本管理、多维度查询和维护,标准配方与生产配方分别管理,生产原料备料单、生产原料使用单查询和维护等.同时配合系统的用户权限管理,避免了纸质配方或电子文档配方外流的风险,加强了配方的保密性.
计重管理系统为Andorid移动端APP应用系统,在生产过程中根据生产原料备料单领用原料,通过移动端应用APP采集备料单号和原料的二维码标签,校验备料单和要领用的原料的正确性,同时自动读取托利多电子秤的称重结果,并与备料单的应领数量进行比对,校验称重结果是否少料或超料.
把企业的产品档案和原料档案放在PC端配方管理系统的存货档案功能中进行维护,并通过APP端的原料标签打印功能,将有实物库存的原料打印出标签粘贴在实物旁,方便原料领用时的标签采集.
将已有的标准配方在系统中进行新增、删除等维护操作,同时生成配方的版本号.系统会自动生成新增配方的修改人员、修改时间等日志信息并存档.生产前,确定生产的标准原料配方,并生成本次所需的生产原料配方,无误后进行生产原料配方的审核后转为本次要生产的备料单,同时生成备料单号.在领用原料时,登录移动端计重管理APP,打开物料领用采集功能,利用相机采集或输入备料单号,自动加载需要的全部原料所对应的物料编码、名称、应领数量、已领数量等关键信息.根据所需原料信息采集原料标签二维码,自动识别原料正确性和所需数量.将原料放上电子秤,移动端自动读取电子秤称重重量,并与应领数量进行比较,符合要求后完成本次原料的称重,继续下一原料的称重.全部原料称重完成后,回到PC端系统中校验整单的物料称重完整性,对生产原料备料单进行完成操作.已完成的生产原料备料单自动转入生产原料使用单中,方便后续追溯查询.
(1)可靠的权限控制,有效防止数据泄露.
只有系统管理员才有增删普通用户的权限,且系统管理员可以设置普通用户对系统各个界面的操作权限,即是否具备查询、编辑、删除、打印、转出权限.用户对系统进行的各种操作都会记录操作者,不能修改,保证操作的可追溯性.
(2)C/S架构可多人多电脑同时在线操作,实现了数据的同步和共享.
PC端工业原料配方管理系统是以PB开发的C/S结构的服务端/客户端系统,服务端数据库可独立部署,不同客户端电脑可通过局域网同时访问服务端数据库,不限用户,只需有正确的帐号密码即可登录使用.不同客户端的操作和查询实时同步,实现了数据共享.
(3)软件硬件结合,有效防止误操作,提高称重准确性,并可对每次称重结果进行追溯.
Android移动端APP所有的数据处理都在服务端完成.移动端APP需要查询数据时,先发送查询指令给服务端,服务端接收到指令后将查询结果返回给移动端APP,并呈现.在移动端进行存货标签条码打印时,先连接到蓝牙标签打印机,再发送打印指令给打印机,实现标签打印.在备料单进行称重时,先通过移动端扫码采集备料单二维码,读取此备料单的各原料详细记录,然后进入称重流程.通过蓝牙连接到要称重的蓝牙电子秤,采集原料标签二维码,验证原料的正确性,然后开始上料,此时电子秤的称重结果通过蓝牙信号实时传送到移动端APP,等称重重量稳定后确定称重结果,作为本原料的备料重量,再进行下一原料的称重.全部原料称重完成后,上传到服务端进行保存.
工业原料配方管理系统软件登录界面中的登录服务器可以是本机SQL Server的服务器实例名称,也可以是本机的IP地址.系统主界面包括系统功能和系统管理两个菜单组,见图2.其中系统功能模块包括存货档案、标准原料配方表、生产原料配方表、生产原料备料单、生产原料使用单5个配方管理子功能,各子功能描述见表2.系统管理模块包括用户维护、菜单维护和用户菜单权限维护3个子功能,各子功能描述见表3.
表3 系统管理模块子功能描述
图2 系统主界面
表2 系统功能模块子功能描述
3.1.1 存货档案
存货档案中有产品和原料两类表单,见图3.产品表单和原料表单中分别存有存货编码、存货名称、规格型号、计量单位、存货分类和条码等信息,其中存货编码和条码信息自动产生,不需要手动输入,节约时间成本且减少操作人员出错机会.
图3 存货档案界面
3.1.2 标准原料配方表
在标准原料配方表单中,点击表单中的“+”号进行新增记录,自动产生排序号,输入工序名称和原料编码时,原料编码只能是存货档案中存在的,否则会弹出出错信息.当输入正确的原料编码时,原料名称、原料规格、计量单位、基本用量-分子、基本用量-分母、子件损耗率和子件使用量信息会自动添加,用户也可以根据实际情况修改基本用量-分子、基本用量-分母和子件损耗率的值,表单中的子件使用量不需要输入,表单会自动进行计算.保存后,上面表单中的版本号、版本说明、BOM类型、创建时间、创建人、修改时间和修改人等信息会自动填入,见图4.
图4 标准原料配方表界面
3.1.3 生产原料配方表
点击图5生产原料配方表界面中的“+”号时会弹出生产配方的对话框,生产批次可以自动产生,也可以手工修改,自动产生的生产批次是电脑当日的系统时间.操作员输入生产数量点击确定后,就添加了一条生产批次信息.点击生产原料配方表中的“x”号时可以删除选中的批次记录.操作员对生产批次检查无误后,点击状态列的“未审核”,单击弹出对话框中的“是”进行确认,状态列变为“已审核”,已审核的生产批次会自动填充审核日期时间和审核人信息,未审核的生产批次单可以修改,但已审核的生产批次单不允许被修改.
图5 生产原料配方表界面
3.1.4 生产原料备料单
生产原料备料单中包含备料单号、产品编码、产品名称、产品规格、生产批次、生产数量、状态、创建日期时间、创建人、修改日期时间、修改人、审核日期时间、审核人、完成日期时间和完成人信息.已审核的和已完成的生产批次单信息会显示在此表单,当选择上方表单的一条记录时,下方表单内容会发生相应的变化,对已审核但未完成的单点击“已审核”,确认后,会自动填充完成时间和完成人,见图6.
图6 生产原料备料单界面
3.1.5 生产原料使用单
显示已完成的生产原料备料单信息,该表单信息为只读状态,不可修改,保证实际使用原料的真实性和一致性.
3.1.6 用户维护
当以系统管理员身份登录后,可以对系统的用户信息进行维护,包括新增用户、修改用户信息、删除用户信息.
3.1.7 菜单维护
菜单维护界面显示的是该用户对系统各个界面的操作权限,即是否具备查询、编辑、删除、打印、转出权限.
3.1.8 用户菜单权限维护
用户菜单权限维护是该系统管理员设置其他用户对系统各个界面的操作权限,即是否具备查询、编辑、删除、打印、转出权限.
工业原料计重管理APP不能直接与SQL Server数据库中的数据进行交互,通过服务层(中间层)与工业原料配方和计重管理的bom数据库进行连接,进行有效数据交互,该服务层用Visual studio 2012开发,编译成一个中间层服务bomservice.exe,使用工业原料计重管理APP前先启动这个服务.
工业原料计重管理APP主要用于生产企业原料仓库发料管理.所有原料和产品都可以利用“草料二维码生成器”生成一个唯一的二维码贴在包装上.配方管理人员在生产原料配方表追加一条生产批次记录,确认无误后点击状态栏中的“已审核”,已审核的生产原料配方表就会发送至生产原料备料单中.仓库管理人员在电脑上可以查看到生产原料备料单,根据备料单上各工序需要的原料种类和数量进行发货.该工业原料计重管理APP既可以检查仓库管理员发放的原料种类是否与生产备料单上的一致,又可以检查所发原料的重量是否符合要求,如果原料种类和重量有一个不符合条件,发料就不会成功,有效防止了原料发货失误.
3.2.1 安装工业原料计重管理APP
启动Android项目,将Android移动设备(可以是PDA或Android操作系统的手机)连接到电脑上,点击图7右方的小三角形,在Android移动设备上就会安装一个“工业原料计重管理APP”.
图7 启动Android项目
3.2.2 登录工业原料计重管理APP
启动移动端的工业原料计重管理APP,输入与该移动设备相连(可以是数据线连接也可以是蓝牙连接)的电脑的IP地址、工业原料配方管理系统的用户名和密码.
3.2.3 工业原料计重管理APP操作
进入工业原料计重管理APP后,可以进行以下三种操作:
(1)点击“退出系统”,可退出工业原料计重管理APP.
(2)点击“物料标签打印”右侧的“点我操作”,进入后,点击“查询”,出现图8对话框,显示所有工序的原料.点击“注册打印机”可以设置连接的打印机.长按某一行数据,可以打印当前行,也可以按“打印全部”打印全部工序原料的标签.
图8 各工序原料信息
(3)点击“物料领用采集”旁的“点我操作”,出现图9对话框,在采集条码处输入备料单号,或按相机按钮,打开手机相机或PDA的扫描枪,扫该备料单号的二维码(将需要备料的生产批次备料单号或原料编码复制到草料二维码网站,产生一个二维码图片).输入产品编码(或按相机按钮扫该产品的二维码),长按“已发数量”四字,输入实际已发数量,或直接从与之相连的电子秤取数,见图10.完成所有生产工序物料领用后,点击“完成上传”按钮.数据上传完成后,在“生产原料备料单”上,点击“状态”栏的“已审核”,在弹出的对话框中,点击“是”,“状态”栏变为“已完成”状态,此时,“工业原料计重管理APP”中的数据传至电脑SQL Server中的bom数据库,打开“工业原料配方管理系统”中的“生产原料备料单”,状态显示“已完成”.此时在“生产原料使用单”上可以看到相应的数据,见图11.“生产原料使用单”中的各记录不能被删除,方便进行产品各批次生产的记录跟踪.
图9 物料领用采集
图10 已发物料信息
图11 已发物料信息在生产使用单中出现
(1)ua_user_st(用户档案表):cUser_Id(用户编码)、cUser_Name(用户名称)、cPassword(登录密码)、iAdmin(是否管理员)、dCrDate(创建日期).
(2)aa_menu_st(功能节点档案表):menuNo(功能节点编码)、menuName(功能节点名称)、level(层级)、winNo(PB Window控件编码)、sort(排序)、upMenuNo(上级功能节点编码)、up-MenuName(上级功能节点名称)、ifSearch(是否有查询功能)、ifEdit(是否有编辑功能)、ifDelete(是否有删除功能)、ifPrint(是否有打印功能)、ifTurnOut(是否有输出功能).
(3)Ua_auth_base_st(功能节点权限表):id(序号)、cUser_Id(用户编码)、MenuNo(功能节点编码)、ifSearch(是否有查询功能权限)、ifEdit(是否有编辑功能权限)、ifDelete(是否有删除功能权限)、ifPrint(是否有打印功能权限)、ifTurnOut(是否有输出功能权限).
(4)Inventory(存货档案表):pk_autoid(序号)、cInvCode(存货编码)、cInvName(存货名称)、cInvStd(存货规格)、cComUnitName(存货计量单位)、cInvCName(存货分类)、cBarCode(存货条码).
(5)Bom_bom(标准配方表):bomid(序号)、InvCode(产品编码)、cBomType(BOM类型(主要/替代))、cVersion(BOM版本号)、cVersionDesc(BOM版本说明)、cCreateTime(创建时间)、cCreateUser(创建人)、cModifyTime(修改时间)、cModifyUser(修改人).
(6)Bom_opcomponent(标准配方子表):OpComponentId(序号)、bomid(主表id)、InvCode(产品编码)、cBomType(BOM类型(主要/替代))、cVersion(BOM版本号)、cInvCode(原料编码)、iSortSeq(序号)、cOpName(使用工序名称)、dBaseQtyN(基本用量-分子)、dBaseQtyD(基本用量-分母)、dCompScrap(子件损耗率)、dUseQty(子件使用量).
(7)P_bom(生产配方表):p_bomid(序号)、InvCode(产品编码)、cbatch(生产批次)、bomid(标准bomid)、iquantity(生产产品数量)、cstatus(状态:未审核、已审核、已完成)、cCreateTime(创建时间)、cCreateUser(创建人)、cModifyTime(修改时间)、cModifyUser(修改人)、cVerifyTime(审核时间)、cVerifyUser(审核人)、cFinishTime(完成时间)、cFinishUser(完成人).
(8)P_bom_opcomponent(生产配方子表):OpComponentId(序号)、p_bomid(主表id)、InvCode(产品编码)、cbatch(生产批次)、cInvCode(原料编码)、iSortSeq(序号)、cOpName(使用工序名称)、dBaseQtyN(基本用量-分子)、dBaseQtyD(基本用量-分母)、dCompScrap(子件损耗率)、iqty(子件应发数量)、iisqty(子件已发数量).
(1)ua_user_st(用户档案表):cUser_Id(用户编码)、cUser_Name(用户名称)、cPassword(登录密码)、iAdmin(是否管理员)、dCrDate(创建日期).
(2)P_bom(生产配方表):p_bomid(序号)、InvCode(产品编码)、cbatch(生产批次)、bomid(标准bomid)、iquantity(生产产品数量)、cstatus(状态:未审核、已审核、已完成)、cCreateTime(创建时间)、cCreateUser(创建人)、cModifyTime(修改时间)、cModifyUser(修改人)、cVerifyTime(审核时间)、cVerifyUser(审核人)、cFinishTime(完成时间)、cFinishUser(完成人).
(3)P_bom_opcomponent(生产配方子表):OpComponentId(序号)、p_bomid(主表id)、InvCode(产品编码)、cbatch(生产批次)、cInvCode(原料编码)、iSortSeq(序号)、cOpName(使用工序名称)、dBaseQtyN(基本用量-分子)、dBaseQtyD(基本用量-分母)、dCompScrap(子件损耗率)、iqty(子件应发数量)、iisqty(子件已发数量).
(4)Reglabelprinter(采集设备绑定标签打印机表):cseqname(采集设备)、cprinter(打印机).
该工业原料配方和计重管理系统使用PowerBuilder 12.0、SQL SERVER 2012 R2、Android studio 4.0.1、Visual Studio 2012、java和C#等开发工具和编程语言,设计和实现两个模块——PC端的工业原料配方管理软件和Android移动端的工业原料计重管理APP.并通过搭建中间层服务bomservice.exe,实现PC端和Android移动端的数据交互.辅助企业对各种工业原材料配方和备料计重进行精细化管理,并对整个配方过程和计重过程进行跟踪和追溯.
目前此系统已授权两家日化行业的生产性企业使用,企业使用前后对企业管理的影响比较主要体现在以下几方面:
(1)使用此系统前,这两家企业都是人工手动操作对产品、原料进行仓库的进出管理,存货随意入库,出库时查找大费周折.使用此系统后,建立了统一规范的产品和原料档案,避免一物多码和多物一码的情况.并给每个产品和原料编订打印了物料卡标签,附上二维码,粘贴在对应的货位上,方便物料进出管理的条码采集.
(2)使用本系统前,这两家企业研发实验室的配方管理都是通过Word文档进行编辑和保存,每一个产品的每一个版本都是一个独立的Word文档,文档的命名规则也比较混乱.时间一长,由于不能明显区分版本的日期,配方查询困难.使用本系统后,将标准配方与生产配方分开管理,生产配方来源于标准配方,但又独立于标准配方.且可对同一配方进行创新性变化,在原标准配方的基础上生成新的配方版本,记录配方的演变历程,方便对配方各版本进行追溯和比较.
(3)使用本系统前,这两家企业每次生产所需配方时都需先打印成纸质版备料单,无法管控纸质版配方的流动,很容易出现配方外流.使用系统后,配方无需打印,领料时只需知道备料单号,通过移动端APP系统采集此备料单号,就可以实时查询出配方原料和称重发料操作.既节省了查找配方的时间,又避免了打印纸张的浪费和外流风险,还通过采集原料标签二维码,对要发料称重的原料进行多重校验,避免人为错误,提高了作业效率.