用二维码进行设备巡检是怎么实现的?

拿出手机扫一扫,巡检”码“上搞定。

对于很多生产制造类企业来说,设备的巡检、维保是设备管理中不可或缺的环节,也是一个”老大难“的问题。传统的做大是巡检人员在设备旁的纸质巡检表上签字,签了字就等于完成巡检工作,不仅会让巡检流于形式,也无法掌握设备的具体情况。

于是二维码巡检方案迅速流行,不需要购买额外的设备,也不需要培训员工,使用微信扫码就能完成巡检工作,并且衍生出了多种应用:

1、 设备信息管理:扫描二维码快速获取设备的信息,如设备型号、出厂日期、保养记录等等,有效提高设备管理的效率和准确性。

2、 巡检任务管理:二维码可以搭配巡检任务管理系统使用,扫描二维码可以快速确认巡检任务内容、巡检时间和巡检人员信息等等。

3、 设备维护保养:扫描二维码可以快速了解设备的维护保养情况,如上次保养时间、保养内容、保养人员等,方便后续保养计划制定和执行。

类似的应用还有很多,这里不一一赘述。需要解答的一个问题是:二维码只是信息的入口,为何可以用来进行设备巡检?

第一个关键词:活码

首先聊聊二维码的基本原理。

二维码本质上是一种将信息编码成二维图案的技术,采用了特定的编码算法,将文本、数字、图片等信息通过编码算法转换成一系列二进制数,再按照特定规则填充到方块矩阵中,形成黑白相间的方块矩阵,其中黑色小方块代表“1”,白色小方块代表“0”。

比如把设备名称“灭火器”3 个字转化成二进制就是 111001111000000110101101111001111000000110101011111001011001100110101000,对应的排列矩阵就是黑、黑、白、白、黑、黑.....

但二维码的信息存储数量有限,想在二维码里放上完整的设备信息,生成的二维码就会变得密密麻麻,“小图”的情况下基本上是没法识别的,并且这种二维码有局限性,只支持文字、字母、数字等纯文本内容,无法存入设备图片、设备操作文档等信息,同时只能扫码查看,不能写入巡检数据。

为了解决二维码的“先天短板”,“活码”技术应运而生。

简单来说,活码就是通过短网址指向保存在云端的信息。二维码存储的其实是短网址,这样对应的二维码图案比较简单,扫描成功率更大,而且云端的信息可以在二维码图案不变的前提下修改,为每个设备生成一张独一无二的二维码,扫码后记录和更新信息,也就成了一种可行方案。

需要说明的是,草料二维码并不是“活码”技术的发明者,这项技术非常简单,市面上的很多应用程序都可以创建这样的二维码,日常“扫码”看到的商品介绍、产品画册、办事指南等等,都属于“活码”的范畴。

第二个关键词:表单

另一个需要理解的概念是“表单”。

表单是一个比较常见的信息录入工具,主要由一些标签、组件、按钮等元素组成,比如文本框、单选框、下拉选择框、定位、电话等等。表单解决的一个核心诉求在于信息的记录,将二维码和表单结合,就可以实现扫码填写信息,诸如会议签到、出入登记、预约报名等二维码应用,都离不开表单的作用。

但只有表单还远远不够。当你扫描了设备上的二维码,可以看到设备信息,可以用表单填写设备的巡检情况,可这个设备的状态是什么样的?下次巡检是什么时候?每次巡检的内容能否整理为设备档案?

为了解决这些问题,还需要在表单的基础上开发一些新功能:

状态功能,用来记录物品的当前状态,还需要通过“状态看板”汇总所有设备的状态;

操作面板,相当于一个交互窗口,进行填写表单、更新状态、跳转到其他页面等操作;

动态档案,将每条操作记录都保存在码上,在二维码上形成物品履历;

计划管理,按周期制定计划,比如日巡检计划(一批设备需要每天巡检 1 次)。

接下来非常重要的一步,表单以及上面的新功能用什么样的方式交付给用户?

如果是常规的设备巡检系统,涉及到 APP 开发、人员培训等一系列工作。站在一线员工的视角上,这类巡检系统某种程度上等于一种“负担”,因为自己本来不会用,要花很长时间去学习,这里面的隐形成本,才是数字化转型推不动的核心症结。

第三个关键词:小程序

设备巡检也面临这样的问题。

设备巡检是一个刚需场景,可市场本身却比较骨感:即使是一个中型规模的企业,所管理的设备也就上百台的规模,配备一两位巡检人员。不管是采购专业的点巡检系统,还是开发相应的模块,耗费的成本和时间不是所有企业都能接受的。

这也是二维码巡检被推崇的原因,提供了一种简单、轻量化、高性价比的解决方案。

首先是搭建方面。现在市面上有较多这样的系统,比如一些低代码平台,但学习成本仍然比较高,对于没有开发基础的人员上手难度较高。草料等二维码平台提供的是比无代码还要简单的搭建方式,可以直接套用现成的模板,稍作修改就能够使用,并且能够根据自己的个性化需求组合功能组件。

其次是应用层面。扫码后的操作是通过微信小程序完成的,这是一个性价比很高的方案:一是大多数用户都会用微信,帮企业节省了相当大的培训成本;二是不需要独立 APP,以前几十万的巡检系统,现在一年可能只要一两千块;三是功能相对比较简单,却可以满足 80%以上的巡检需求。

可以看到,微信小程序在设备巡检二维码的推广中扮演了不可或缺的角色。只需要在电脑端简单搭建出设备巡检二维码应用,二维码管理、表单记录、状态查看等功能都可以在小程序端实现,并且实现了防作假、后续协作、人员管理、数据导出等功能,一个小程序就是一套设备巡检管理系统。

总的来说,二维码巡检的核心优势在于简单极致的性价比,不用购买额外的设备,不需要对使用员工进行复杂的培训,甚至不需要有开发基础。而且使用办公室的 A4 打印机就能打印,一张二维码标签的成本只需几分钱。

某种程度上说,二维码已经成为数字化转型的“平替”技术。面对设备巡检这样的长尾应用,到底是花几十万研发专业系统,还是用二维码简单解决?答案不言而喻。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在淘宝花50大米买的源码 └─电子巡更系统 Delphi源码 ├─安装包 │ │ hdxgxt.ini │ │ XXCL.HLP │ │ SystemInfo.ini │ │ Background.bmp │ │ PatrolmanMng.exe │ │ │ ├─BDE │ │ BANTAM.DLL │ │ BDEADMIN.CPL │ │ BDEADMIN.EXE │ │ BDEADMIN.HLP │ │ BLW32.DLL │ │ ceeurope.btl │ │ charset.cvb │ │ datapump.cnt │ │ DATAPUMP.EXE │ │ DATAPUMP.HLP │ │ europe.btl │ │ fareast.btl │ │ IDAPI32.CFG │ │ IDAPI32.DLL │ │ IDASCI32.DLL │ │ IDBAT32.DLL │ │ IDDA3532.DLL │ │ IDDAO32.DLL │ │ IDDBAS32.DLL │ │ IDDR32.DLL │ │ IDODBC32.DLL │ │ IDPDX32.DLL │ │ IDQBE32.DLL │ │ IDR20009.DLL │ │ IDSQL32.DLL │ │ japan.btl │ │ other.btl │ │ SQL_DB2.CNF │ │ SQL_INF.CNF │ │ SQL_INF9.CNF │ │ SQL_INT.CNF │ │ SQL_MSS.CNF │ │ SQL_ORA.CNF │ │ SQL_ORA8.CNF │ │ SQL_SSC.CNF │ │ SQL_SYB.CNF │ │ usa.btl │ │ │ └─dbf │ DBDWORK.INI │ FPXL.DB │ FPXL.PX │ patrolrec.DB │ patrolrec.PX │ POINT.DB │ POINT.PX │ shiftrule.DB │ shiftrule.PX │ TEMP.DB │ TEMP.PX │ USERS.DB │ USERS.PX │ WORKER.DB │ WORKER.PX │ YXXX.DB │ YXXX.PX │ YXXX_FL.DB │ YXXX_FL.PX │ ├─安装控件 │ ├─RXLIB275 │ │ FILE_ID.DIZ │ │ help.TXT │ │ README.TXT │ │ RXINST.EXE │ │ RXNEWS.TXT │ │ │ └─Comm2 │ Async32-e.pas │ Async32.dcr │ Async32.dcu │ Async32.doc │ Async32.pas │ Async32.~pa │ Async32.~pas │ Comm.bpl │ Comm.cfg │ Comm.dcp │ Comm.dcu │ Comm.dof │ Comm.dpl │ Comm.res │ comports.ini │ Demo.dof │ Demo.dpr │ Demo.dsk │ Demo.exe │ Demo.res │ Demo.~dp │ Main.$$$ │ Main.dcu │ Main.dfm │ Main.pas │ Main.~df │ Readme.txt │ Whatsnew.txt │ └─源程序 menu.~dfm menu.~pas ABOUT.dcu fpxl_pas.dfm ql_data.dfm menu.pas menu.dfm pass_pas.pas aboutqz.dfm about_pas.dcu add_pen_unit.dfm about_pas.~dfm aboutqz.pas about_pas.~pas add_class_pas.dcu add_class_pas.dfm add_class_pas.pas PatrolmanMng.dpr add_pen_unit.pas add_pencode_unit.dcu add_pencode_unit.dfm add_pencode_unit.pas add_pencode_unit.~dfm add_pencode_unit.~pas add_pen_unit.dcu add_pen_unit.~dfm add_pen_unit.~pas add_user_pas.dfm aboutqz.~pas HELPXXN.dfm add_point_pas.dcu add_point_pas.~dfm add_point_pas.~pas choose_day_pas.pas add_point_pas.dfm add_user_pas.dcu add_user_pas.pas add_user_pas.~dfm class_print_pas.dfm about_pas.dfm HELPXXN.PAS add_worker_pas.dcu add_worker_pas.dfm add_worker_pas.pas fpxl_pas.pas add_worker_pas.~pas fpxl_pas.~dfm Async32.dcu Async32.pas pentime.pas pentime.~pas choose_day_pas.~dfm choose_day_pas.~pas choose_pas.dcu choose_pas.~pas click_time_pas.dfm choose_pas.dfm choose_pas.pas class_print_pas.dcu class_print_pas.pas class_print_pas.~dfm dlsxx_pas.pas about.pas point_pas.pas ql_data.pas click_time_pas.dcu click_time_pas.pas click_time_pas.~dfm click_time_pas.~pas clsss_pas.~pas clsss_pas.dcu clsss_pas.~dfm PatrolmanMng.dof lssjll.pas datamodal.dcu datamodal.dfm datamodal.dti datamodal.pas datamodal.~dfm datamodal.~dti datamodal.~pas DLSXX.DPR DLSXX.RES fpxl_pas.~pas dlsxx_pas.dfm dm_class_pas.dcu dm_class_pas.dfm dm_class_pas.dti dm_class_pas.pas dm_class_pas.~dfm dm_class_pas.~dti dm_class_pas.~pas dm_fpxl_pas.dcu dm_fpxl_pas.dfm dm_fpxl_pas.dti dm_fpxl_pas.pas dm_fpxl_pas.~dfm dm_fpxl_pas.~pas dm_pen_unit.dcu dm_pen_unit.dfm dm_pen_unit.dti dm_pen_unit.pas dm_pen_unit.~dfm dm_pen_unit.~dti dm_pen_unit.~pas dm_point_pas.dcu dm_point_pas.dfm dm_point_pas.pas dm_sjbf_pas.dcu dm_sjbf_pas.dfm dm_sjbf_pas.dti dm_sjbf_pas.pas dm_sjbf_pas.~dfm dm_sjbf_pas.~dti dm_sjbf_pas.~pas dm_user_pas.dcu dm_user_pas.dfm dm_user_pas.pas dm_worker_pas.dcu dm_worker_pas.dfm dm_worker_pas.dti dm_worker_pas.pas dm_worker_pas.~dfm dm_worker_pas.~dti dm_worker_pas.~pas dm_xjysxx_view_pas.dcu dm_xjysxx_view_pas.dfm dm_xjysxx_view_pas.dti dm_xjysxx_view_pas.pas dm_xjysxx_view_pas.~dfm dm_xjysxx_view_pas.~dti dm_xjysxx_view_pas.~pas dm_yxxx_pas.dcu dm_yxxx_pas.dfm dm_yxxx_pas.pas dm_yxxx_view_pas.dcu dm_yxxx_view_pas.dfm dm_yxxx_view_pas.dti dm_yxxx_view_pas.pas dm_yxxx_view_pas.~dfm dm_yxxx_view_pas.~dti dm_yxxx_view_pas.~pas edit_pen_unit.dcu edit_pen_unit.~dfm edit_pen_unit.~pas lsxx_pas.dfm Gvas.pas edit_pen_unit.dfm fpxl_pas.dcu setmode.pas fullreport.~dfm lssjll.dfm lsxx_pas.pas fullreport.dcu fullreport.~pas class_print_pas.~pas Gvas.dcu about.~pas about.~dfm hdxgxt.ini hdxgxt.~ini ql_data.~pas about.dfm pentime.dfm hdzdhxt.cfg hdzdhxt.dof HDZDHXT.RES hdzdhxt.~dpr HELPXXN.~PAS information.dcu password_unit.dfm information.pas add_user_pas.~pas information.dfm initframe.dcu setmode.~pas initframe.dfm initframe.~dfm initframe.~pas ldxx_report.pas PatrolmanMng.cfg ldxx_report_pas.dcu lssjll.~pas pass_pas.dfm ldxx_report_pas.dfm ldxx_report.~pas ldxx_report_pas.~dfm ldxx_report_pas2.~dfm ldxx_report_pas2.~pas lssjll.dcu lssjll.~dfm lsxx_pas.~pas lsxx_pas.~dfm lsxx_pas.dcu xjyhsd.pas lxxx_report_pas.~pas lxxx_report_pas.dcu lxxx_report_pas.pas lxxx_report_pas.~dfm lxxx_report_pas2.pas pass_pas.~pas settest.pas lxxx_report_pas2.~dfm lxxx_report_pas2.~pas menu.dcu setmod.pas ql_data.~dfm user_pas.dfm MSG.DFM MYPROCE.PAS PASSWORD.DFM PASSWORD.PAS password_pas.dcu password_pas.dfm password_pas.pas password_pas.~dfm password_pas.~pas password_unit.dcu pentime.~dfm about_pas.pas add_class_pas.~pas TestPen.pas user_pas.pas pass_pas.dcu pass_pas.~dfm penmode_pas.dfm settest.dfm PatrolmanMng.~dpr MYCOMP.ICO add_class_pas.~dfm PatrolmanMng.res xjyhsd.dfm PEN.RES penmode_pas.dcu point_pas.dfm penmode_pas.pas ReceFormM.dfm PEN.PAS penmode_pas.~pas pentime.dcu xjyhsd.~pas xjyhsd.~dfm point_pas.dcu Recethr.pas PEN.~PAS Gvas.~pas point_pas.~pas point_print_pas.dcu aboutqz.~dfm point_print_pas.~pas PROCESS.DFM PROCESS.PAS ql_data.dcu password_unit.~dfm ReceFormM.dcu ldxx_report_pas.pas Recethr.dcu Recethr.~pas clsss_pas.dfm regedit_pas.dcu regedit_pas.~pas reports_DEL.~dfm REPORTS2.dcu reports_DEL.dcu SerrRep.dcu settest.~pas SerrRep.dfm SETCOMM.dcu setcomm.dfm setcomm.pas setcomm.~dfm setcomm.~pas SETMOD.dcu setmod.dfm setmod.~dfm setmod.~pas SETMODE.dcu setmode.dfm setmode.~dfm TestPen.~dfm settest.dcu ldxx_report.dfm worker_pas.~pas show_thread.dcu show_thread.pas sjyc_report_pas.dcu sjyc_report_pas.~pas Splash.~dfm yxxx_pas.pas sjyc_report_pas2.~dfm sjyc_report_pas2.~pas Splash.dcu StatuSFM.dcu StatuSFM.dfm StatuSFM.pas StatuSFM.~dfm StatuSFM.~pas SystemInfo.ini TerrRep.dcu TerrRep.~dfm TerrRep.~pas TestPen.dcu point_pas.~dfm initframe.pas TestPen1.dfm TestPen1.pas thread_yxxx_view.dcu add_point_pas.pas Unit1.~dfm Unit1.~pas Unit2.dfm Unit2.pas Unit2.~dfm Unit2.~dti Unit2.~pas user_pas.dcu worker_pas.dcu thread_yxxx_view.pas worker_pas.pas worker_pas1.~dfm worker_pas1.~pas worker_print_pas.dcu worker_print_pas.dfm worker_print_pas.pas wzxx_report_pas.dcu wzxx_report_pas2.~dfm wzxx_report_pas2.~pas XJYHSD.dcu xjysxx_pas.dcu information.~dfm xjysxx_pas.~pas thread_yxxx_view.~pas xjysxx_pas.dfm xjysxx_report_pas.dcu xjysxx_report_pas.pas xjysxx_report_pas.~dfm xjysxx_report_pas2.~dfm xjysxx_report_pas2.~pas XXCL.HLP YXXX_PAS.dcu yxxx_report_pas.dcu yxxx_view_pas.~pas yxxx_report_pas.dfm yxxx_report_pas2.~dfm yxxx_report_pas2.~pas yxxx_view_pas.dcu add_worker_pas.~dfm _QSQ10.DB _QSQ2.DB _QSQ31.DB _QSQ33.DB _QSQ4.DB _QSQ5.DB _QSQ8.DB _QSQ9.DB clsss_pas.pas earth.ico dlsxx_pas.~pas dlsxx_pas.~dfm edit_pen_unit.pas fullreport.pas information.~pas point_print_pas.~dfm ldxx_report_pas2.pas ldxx_report_pas.~pas ldxx_report_pas2.dfm lxxx_report_pas.dfm lxxx_report_pas2.dfm penmode_pas.~dfm point_print_pas.pas point_print_pas.dfm SerrRep.pas ReceFormM.~pas ReceFormM.pas ReceFormM.~dfm reports_DEL.pas reports_DEL.dfm settest.~dfm reports_DEL.~pas REPORTS1.PAS REPORTS1.~PAS REPORTS1.dfm REPORTS1.~dfm REPORTS2.PAS REPORTS2.~PAS REPORTS2.dfm REPORTS2.~dfm SerrRep.~pas SerrRep.~dfm sjyc_report_pas.dfm sjyc_report_pas.~dfm sjyc_report_pas.pas Splash.pas yxxx_pas.dfm sjyc_report_pas2.pas sjyc_report_pas2.dfm choose_day_pas.dfm TerrRep.pas TerrRep.dfm TestPen.dfm user_pas.~pas Unit1.pas Unit1.dfm user_pas.~dfm HELPXXN.~dfm worker_pas.~dfm worker_print_pas.~dfm worker_pas1.pas worker_pas1.dfm worker_pas2.~pas worker_pas2.~dfm worker_pas2.pas worker_pas2.dfm wzxx_report_pas.dfm worker_print_pas.~pas xjysxx_pas.~dfm wzxx_report_pas.~pas wzxx_report_pas.~dfm wzxx_report_pas.pas wzxx_report_pas2.pas wzxx_report_pas2.dfm xjysxx_pas.pas xjysxx_report_pas.~pas xjysxx_report_pas.dfm yxxx_pas.~dfm xjysxx_report_pas2.pas xjysxx_report_pas2.dfm yxxx_pas.~pas yxxx_report_pas.pas yxxx_report_pas.~pas yxxx_report_pas.~dfm yxxx_view_pas.pas yxxx_view_pas.~dfm yxxx_view_pas.dfm password_unit.pas yxxx_report_pas2.pas yxxx_report_pas2.dfm choose_pas.~dfm ldxx_report.~dfm fullreport.dfm regedit_pas.pas Splash.dfm TestPen.~pas Splash.~pas worker_pas.dfm password_unit.~pas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值