基于MES 系统及低代码开发平台的实时动态警戒线设计和实现方法
辛晓伟
上海蓝鸟信息科技有限公司 上海普陀区 200062
引言
质量是企业的生命,是企业生存和发展的第一要素,当今市场的竞争已转化为产品质量的竞争,而过程控制是产品质量控制的关键,因此要提升产品质量,必须加强生产过程的质量控制,更需要实时、动态的警戒线质量控制工具。
当前常用的方式为手动在 Excel 设置的方式,即人工按照品类先设置静态警戒线,然后将检测数据录入对应Excel 表,利用Excel 生成警戒线和控制图,进而跟踪产品质量发展趋势,此方法有几大缺点:
1、设置警戒线工作量巨大:警戒线和 Excel 文件的设置数量,取决于检测物料种类数量,有多少种物料就需设置多少条警戒线;
2、警戒线非动态:每种品类的质量控制警戒线只能在该品类 Excel 中显示、比对,无法根据录入产品种类自动匹配对应警戒线;
3、产品数据录入工作量巨大:录入产品数据时,第一步需要查找到对应产品的Excel,对于成百上千种品类的企业,工作量巨大;
4、基础数据维护工作量大:产品的工艺标准随着市场的需求在不断改进,若检测标准发生变化,则之前生成的警戒线被废止,需重新设置;
5、人为干预因素较多:检测数据产生后,数据的分类、录入、警戒线生成,均靠人工手动录入,人为干预因素多,无法保证数据的准确性。
造成这种局面的主要原因是,制造型企业的信息化建设过程,通常采用外包服务的方式,通过与科技服务型公司合作,完成本企业的信息化建设,软件开发人员成本较高,制造型企业自身组组建软件开发团队,性价比较低,但随着低代码开发平台的发展,让很多企业自主开发成为可能。
本文描述了一种基于MES 系统、低代码开发平台(FineReport)、Oracle 数据库、浏览器/ 服务器(browser/server,B/S)架构的实时动态警戒线的编排设计和实现方法,并用实例证明通过该方法,可以大大提高产品质量检验时,警戒线生成的时效性、准确性,最大限度减少质量检验监督环节人为因素的干预。
一、低代码技术赋能企业质量控制全面升级
软件开发的高行业壁垒,让制造企业多采用服务外包的形式,完成企业的信息化转型,这样做的优势十分明显,即利用了科技型公司的开发能力,也最大限度降低了信息化转型的风险,同时也弥补了制造企业在软件开发人才方面的不足。但项目交付后,制造企业再想优化相关功能、界面、报表,往往心有余而力不足,但低代码技术的出现,很大程度上解决了这一问题。
FineReport 是一款用于报表制作,分析和展示的工具,用户通过使用 FineReport 可以轻松的构建出灵活的数据分析和报表系统,大大缩短项目周期,减少实施成本,最终解决企业信息孤岛的问题,使数据真正产生其应用价值[1]。
本文提出并研发了基于企业 MES 系统、低代码开发平台、Oracle 数据库、B/S 架构的实时动态警戒线设计与实现方法,通过参数配置以及可视化编排等方式,可以实现检测数据警戒线,按物料类别、实时动态展示,让不具备编程基础的人员也能通过平台开发类似数据警戒线应用工具,大幅降低企业对软件开发专业开发人员的依赖,实现了软件开发方式的变革。
二、实时动态警戒线设计和实现方法
常用的质量管理工具控制图用于监控和分析过程的稳定性和可预测性,可以及时检测并纠正异常情况 [2],而控制图中的警戒线是必不可少的元素,对于质量趋势跟踪与可视化演示有着举足轻重的位置。随着我国数字化转型进程,生产数据信息化基本完成,数据量成几何级的增长,但有效数据的深度价值并未被充分挖掘,本文重点利用企业 MES 系统、低代码平台、数据库技术、B/S 架构,实现实时动态警戒线的可视化编排设计和实现方法进行描述,目的是为制造业质量管理控制中实时动态警戒线的实现提供新的思路和方法。
1 基础概念和定义
组件指在报表界面设计时,可被拖拽到画布中进行布局的对象,如 Tab 块、报表块、图表组件等。交互指任意组件之间的嵌套、级联、赋值、事件触发等行为。参数指设置或赋值不同的数值来实现一个目标结果的数值。1.1 设计过程中用到的相关基础概念
内置数据集指是指新建一个类似数据库表的原表,可作为模板的数据源来设计报表[3]。下拉框控件在手动输入时,通常与参数结合使用,如通过控件名获取控件后将控件值传递给对应参数,默认为无[4]。可选择的数据字典类型有 4 种,其中包括「数据库表,数据查询,自定义,公式」,将分别对应不同应用场景[5],本场景主要选用数据查询。条件属性指给报表的属性添加条件,当满足该条件时,对属性的属性值进行修改,从而达到改变报表样式的目的的属性 [6]。系列指在折线图中对应不同曲线线的一系列数值。以上所有与取值、输入、输出相关的值类型包括但不限于字符串、浮点值、数据集和对象等。JDBC 是 Java 数据库连接的简称,是 Java语言中用来规范客户端程序如何来访问数据库的应用程序接口。
1.2 用于描述动态警戒线的相关概念
输入(I)是给动态警戒线的某个参数赋值的过程,如胶种参数等;计算(C)指根据获取参数后执行最终显示对应值的过程;输出(O)指警戒线的操作或方法执行完毕后输出结果的过程;表达(D)是依据设置的触发条件,动态调用警戒线方法的过程。完整的动态警戒线调用过程顺序为
,在后文中用 ICOD描述动态警戒线的一次完整行为过程,ICOD 内任意行为都可以为空。
实时动态警戒线的最终完成,及图形化展示,建立在低代码平台运行的基础上,在FineReport 中制作报表,首先需要定义「内置数据集」,定义好后即可通过自定义查询语句查询出需要的数据,从而为报表制作做好数据获取基础。实际应用中低代码平台与数据库链接成功后,不用建立模板数据集,利用 SQL 语句查询并完成所需数据的清洗。
3 实时动态警戒线的编排设计
3.1 常规质量警戒线的实现基本流程
常规的警戒线,需通过人工录入数据,有多少种物料分类,就需设置多少种警戒线,若利用 Excel 图表生成,有 N 个分类,则需 N 个 Excel 文件呈现,最终用于控制图等图表。传统方法中需人工根据品类,手动设置警戒线,录入数据时需人工依据物料种类选择对应 Excel 文件,且无相关操作履历,人为参与因素较多,数据准确性、实时性方面无法保证。
3.2 实时动态警戒线主业务流程
在利用低代码开发平台开发的质量控制报表中,依据 MES 系统已有的物料基础数据表,利用 SQL 语句,建立胶种 - 预警值数据集(此处利用内置数据集模拟真实场景),利用低代码开发平台参数功能、下拉框控件,实时动态匹配显示不同物料检测预警值,表现在图表上是预警线。低代码开发平台通过与数据库建立 JDBC 链接,实现数据的获取,在 FineReport 设计器中,建立模板数据集,通过 SQL 语句完成检测数据的查询与获取,通过设计器的报表块组件,及相关条件设置,最终实现实时动态警戒线的设置。
3.3 实时动态警戒线设计准备
启动FineReport 设计器,依次点击左上角【文件】-【新建普通报表】,在新建报表中点击【模板数据集】-【+】,新建【内置数据集】——Embedded1,在【表设计】中设置批次、胶种、检测项、检测值、上限、下限、检测日期七列,数据类型分别为字符串、字符串、字符串、整数、整数、整数、日期,并按照数据类型录入20 行模拟数据。
3.4 实时动态警戒线设计
3.4.1 新建普通报表
1) 在新建普通报表中,合并第一行A-I 列单元格,插入图表,图表类型选择折线图;
2) 选中折线图,设置股图表- 样式- 使用标签- 通用- 值(选中),其他选项默认
3) 在A2 至G2 单元格依次录入批次、胶种、检测值、上限、下限、检测日期;
4) 在A3 至G3 单元格依次拖入内置数据集中批次、胶种、检测值、上限、下限、检测日期对应值。
3.4.2 为折线图设置分类名和系列名
1) 选中折线图,依次点击右上角【单元格元素】-【数据】,数据来源选择【单元格数据】,分类名输入 G(注意此处应录入‘=G3’或点击‘F(x)’后录入G3);
2) 点击【系列名- 值】下方【+】,依次录入‘=D2’(系列名)、‘D3’(值)
3.4.3 添加参数控件
1) 点击左上角【模板】-【模板参数】,进入【模板参数】编辑界面;
2) 点击【+】添加【胶种】、【检测项】两个参数。
3.3.4 为折线图设置过滤条件
1) 双击A3 单元格,设计器弹出【数据列】对话框点击【过滤】分页,选中【将父格子作为过滤条件】,普通条件选中【普通】;
3) 添加过滤条件1 :可选列中选中【检测项】,操作符选中【等于】,第三列选中【参数】检测
4) 添加过滤条件2 :可选列中选中【胶种】,操作符选中【等于】,第三列选中【参数】胶种。
3.3.5 设置警戒线
1) 选中折线图,依次点击【单元格元素】-【样式】-【背景】-【绘图区】-【添加警戒线】,进入警戒线编辑对话框;
2) 将警戒线命名为【上限】,位置选择【Y 轴】,值录入公式‘=max(E3)’,线型、线宽默认,颜色选择红色。提示文字中位置选择“居左”,内容录入公式‘=’上限’+max(E3)’,字体、大小默认,颜色选择红色;
3) 重复1)、2),添加【下限】警戒线,值录入公式‘=min(F3)’,内容录入公式‘=’下限’+min(
3.3.6 为折线图设置查询条件
1) 在查询栏添加参数【胶种】,并选择【下拉框】控件,控件名称设置【胶种】;
2) 为下拉框设置默认值-【字符串】-【A】;
3) 数据字典类型设置【自定义】,实际值增加两行,实际值、显示值分别录入A、A 和
4) 在查询栏添加参数【检测项】,并选择【下拉框】控件,控件名称为【检测项】;
5) 为下拉框设置默认值-【字符串】-【MH】;
6) 数据字典类型设置【自定义】,实际值增加两行,实际值、显示值分别录入MH、MH 和ML
3.3.7 隐藏辅助行和列
选中A2、A3 单元格,设置【条件属性】-【行高】- 值为0,条件为空,隐藏辅助行。
以上均设置完成后保存,点击‘预览’按钮,设计器将调用本地浏览器,生成相关效果图。
三、可视化编排的实现和效果
1 动态警戒线的实现
动态警戒线采用 B/S 架构,基于MES 系统、Oracle 数据库的数据基础,利用低代码开发平台FineReport设计器的折线图组件、警戒线组件进行二次开发,实现样品检测实时动态警戒线编排设计。主界面左侧分两栏,上半部分为报表区,下半部分为模板数据集区,中间是界面编排设计区域,右侧分七大属性设置区,分别是单元格元素、单元格属性、悬浮元素、控件设置、条件属性、超级链接、Excel 导入,这里主要用到单元格元素、单元格属性、条件属性。
2 应用案例和效果
利用平台从零开发的某企业的“实时动态警戒线”系统,可以实现全胶种、全检测项、全自动、实时警戒线查询、趋势展示,投入 0.5 人月即完成开发上线工作,其中,低代码开发平台学习0.2 人月,SQL 语言学习0.2人月,MES 快检系统相关数据报表逻辑学习与最终报表开发,0.1 人月,共投入 0.5 人月,界面效果如图 1 所示,根据选择胶种、检测项不同,警戒线自动匹配展示。
图 1“实时动态警戒线”系统

四、结束语
本文将企业低代码技术和 MES 系统相融合,实现了一种新的动态警戒线系统的构建方法,重点阐述了实时动态警戒线设计方法,为企业质检部门质量管理提供了实时的控制图工具,通过实例验证了该方法的可靠性和有效性,增强了企业工作效率,提高了质量管理水平,为企业提高产品合格率,减轻质检部门数据分析工作强度,及企业降本增效提供了强大分析依据。
参考文献:
[1]https://help.fanruan.com/finereport/doc-view-1162.html?source=5
[2] 邓富民, 唐建民,梁学栋 质量管理学 . 北京,科学出版社,2021,221-238 2018,25(1):8-11
[3]https://help.fanruan.com/finereport/doc-view-109.html
[4]https://help.fanruan.com/finereport/doc-view-255.html
[5]https://help.fanruan.com/finereport/doc-view-219.html
[6]https://help.fanruan.com/finereport/doc-view-218.html
作者简介
辛晓伟、男、山东乳山市、山东理工大学、本科、研究方向:计算机系统集成与智慧工控