彭海波,杨 伟,姚志清
(武钢集团昆明钢铁股份有限公司信息中心,云南昆明 650302)
基于模糊规则库思想的插件式动态统计方案
彭海波,杨 伟,姚志清
(武钢集团昆明钢铁股份有限公司信息中心,云南昆明 650302)
借用模糊控制当中的模糊规则库思想和当今软件领域热门的插件化、模块化思想,结合标准的SQL语言和Sql Server数据库,采用与平台无关的Java语言并充分利用其面向对象的特性,提出并实现了一种动态统计系统。该系统的应用,大大减少了系统的维护量,实现了统计系统的动态性、可配置性和一定的自适应性。
Java;SQL语言;模糊规则库;动态统计;模块化;插件化
质量是企业的生命,企业通过对其内部的各种数据进行统计,从而进行数据分析,找出质量优劣所在的根源是竞争获胜的一个法宝。通常工厂信息化当中的统计功能都是由系统开发人员依据需求采集人员所获得的需求量身定制的。这种对需求硬编码的方法,实现简单、快速,但当企业用户的需求变化时,就只能依靠维护人员对系统进行维护升级了,这是相当不便和麻烦的,需要耗费大量的人力与物力资源,而且当企业用户的统计需求频繁变动时(如以天为单位),这种方式将根本不能满足要求。
在笔者所承担的昆明某钢厂的质量管理系统中的统计功能就属于这种情况。统计需求变动频繁且不可预知,其需要统计的检验项、送样数量、统计的方式等都存在不确定性。因此,开发具有一定通用性、动态性、自适应性的统计系统是必然的选择。
昆明某钢厂用户的统计需求按照时间区间的不同划分为日统计、周统计、月统计、年统计4种。每种统计均会有不同的检验项和统计方式,但经过仔细分析,其统计的工艺流程大致相同,只是其统计检验项和实现方式不一,比如日统计可能需要某力学性能的抗振性能指标,而周统计可能需要某力学性能的合格率,但又都可能需要该力学性能的平均值和方差等等,因此按照面向对象的设计思想来设计该模型是最合适不过的,该模型的统计系统原理如图1所示。
图1 系统原理框图
统计请求由“入口检验模块”接收,经过处理后将必要的信息传递给“统计总调度模块”。“统计总调度模块”根据接收的信息动态调用各个子统计模块,从而完成此次统计请求。该动态统计系统的设计借用了模糊控制当中的模糊规则库思想和当今软件领域热门的插件及模块化思想[1],结合标准的SQL语言和Sql Server数据库,采用与平台无关的Java语言并充分利用面向对象[2]的思想来实现。其中模糊规则库思想来源于控制领域的模糊控制理论,它是一组规则集合,决定着控制系统的控制策略,图2和图3为本文的规则库示例,不同的统计模块根据需求调用各种规则库。
2.1 数据库表
图1中的框图为数据库表,其中“源数据表”和“统计结果表”各自均为多张数据库表,为了描述的需要对二者进行了简化,前者存放统计需要的、已由其他系统产生的源数据,后者则存放最终的统计结果数据(其中的某些数据也可能成为数据源)。
图2 规则库示例1
图3 规则库示例2
“统计条目表”和各“规则库”表均为单张的可配置表,其中前者存放需要统计的产品条目信息,该表中的信息描述了细分后的产品条目,统计将以此表中的信息条目为单位进行统计,如图4所示。
图4 统计条目信息示例
后者则定义了每种产品条目下某个统计项目的数据来源、统计方法、统计结果存放目的地等信息,如图2、图3所示。
2.2 模块功能
图1中的中等深度颜色的矩形框图为各个功能模块,其各自功能如下。
a.入口检验模块。此模块接受统计请求,获得请求的时间区间,确认请求的统计方式(日、周、月、年中的一种),此外,还需要完成2个功能:(1)根据“统计结果”表确认是否已存在该时间区间的统计,如果已存在,则不做统计,转向其他功能模块(图1中未给出);如果不存在,则进行第二步。(2)根据源数据表校验是否有该时间区间的源数据存在,若不存在,返回并给出提示信息;若存在,则转向“统计总调度模块”。
b.统计总调度模块。此模块相当于一个母体框架,如同 Java的 Eclipse集成开发环境[2],其功能需要各个“插件”(各种方式的统计模块)来补充。其功能是:根据“统计条目表”动态获取需要统计的产品种类,结合“入口检验模块”传递过来的时间区间、统计方式等必要信息来调用各个统计模块进行统计,并将最终统计出来的结果存入“统计结果表”。
c.其他子统计模块:这些模块以“插件”的形式存在,类似用Eclipse集成开发环境开发J2EE时需要的Lomboz、XMLBuddy等插件。主要就是实现各种类型的统计。
3.1 集成框架类
系统充分利用面向对象的特性来实现,如图5所示。图5给出的CheckStatistic部分属性、方法为所有统计类的基类,处于最顶层,其他统计类均继承该基类而来,根据统计方式的不同来继承和实现不同的方法。它及其下级子类主要专注于集成框架的实现,提供与各“插件”类的接口,而复杂的数据统计工作则通过最底层的统计“插件”类来实现。
图5 CheckStatistic抽象类
比如图6中:qssj与zzsj2个属性为统计的起始时间和终止时间;a1为数据库连接对象,并在checkSyd()这个构造函数中实例化;conDestroyed()方法用于断开数据库连接。
3.2 “插件”类
下面将以图2和图3所示的2类规则库为例,详述这2类动态统计在“插件”类中的实现原理。
图2是某双样产品的某类型的部分规则库数 据,旧的VFP硬编码如图6所示。
图6 某数量型统计VFP硬编码
分析图6可知,其功能为统计某种力学检验性能指标在设定范围内的数量,并且有规律可寻。由于检验项的数量最多为5样,因而设计的规则库就如图 2 所示,其中[ItemName1]、[ItemName2]、[ItemName3]、[ItemName4]、[ItemName5]对应某种力学性能(如ReL)的1~5样,程序将根据表中配置的情况自动识别检验项送样数量,并构建相应的SQL条件语句。其数据来源为“源数据表”中的字段名;4字段则详细描述了其相应的上下限符号及对应的值;Destination则指明了其在“统计结果表”中的位置。下面给出截取的由系统自动生成的部分SQL语句:
对于图3,也是某双样产品的某类型的部分规则库数据,旧的VFP硬编码如图7所示。
图7 某公式型统计VFP硬编码
3.3 规则库配置
该统计系统的动态性、可配置性还有赖于一个强大且方便的配置系统,配置系统提供新增、编辑、删除规则库数据的功能,如图8所示。
图8 某规则库配置界面
基于模糊规则库思想的插件式动态统计系统已成功应用于昆明某钢厂的质量管理系统,与现有大多数的硬编码统计系统相比,该统计系统具有动态、可配置和可扩展的特性,因而系统的灵活性大大提高,不必跟着用户需求的变化而变化,达到了自适应用户需求变化的效果,降低了开发成本和后续的维护成本,提高了系统的通用性、灵活性。文中以Java和Sql Server为示例,介绍了动态统计方案的具体实现,其思想、原理还可以推广至任何开发语言及数据库。
[1]周竞涛.Eclipse完全手册——基础·进阶·高级[M].北京:电子工业出版社,2006.
[2]江义华.Java完美经典[M].北京:中国铁道出版社,2004.
名词解释:组合机床
组合机床是以通用部件为基础,配以按工件特定形状和加工工艺设计的专用部件和夹具,组成的半自动或自动专用机床。
组合机床一般采用多轴、多刀、多序、多面或多工位同时加工的方式,生产效率比通用机床高几倍至几十倍。由于通用部件已经标准化和系列化,可根据需要灵活配置,能缩短设计和制造周期。因此,组合机床兼有低成本和高效率的优点,在大批、大量生产中得到广泛应用,并可用以组成自动生产线。
组合机床一般用于加工箱体类或特殊形状的零件。加工时,工件一般不旋转,由刀具的旋转运动和刀具与工件的相对进给运动,来实现钻孔、扩孔、锪孔、铰孔、镗孔、铣削平面、切削内外螺纹以及加工外圆和端面等。有的组合机床采用车削头夹持工件使之旋转,由刀具作进给运动,也可实现某些回转体类零件(如飞轮、汽车后桥半轴等)的外圆和端面加工。
二十世纪70年代以来,随着可转位刀具、密齿铣刀、镗孔尺寸自动检测和刀具自动补偿技术的发展,组合机床的加工精度也有所提高。铣削平面的平面度可达0.05毫米/1000毫米,表面粗糙度可低达2.5~0.63微米;镗孔精度可达IT7~6级,孔距精度可达O.03~O.02微米。
专用机床是随着汽车工业的兴起而发展起来的。在专用机床中某些部件因重复使用,逐步发展成为通用部件,因而产生了组合机床。
最早的组合机床是1911年在美国制成的,用于加工汽车零件。初期,各机床制造厂都有各自的通用部件标准。为了提高不同制造厂的通用部件的互换性,便于用户使用和维修,1953年美国福特汽车公司和通用汽车公司与美国机床制造厂协商,确定了组合机床通用部件标准化的原则,即严格规定各部件间的联系尺寸,但对部件结构未作规定。
通用部件按功能可分为动力部件、支承部件、输送部件、控制部件和辅助部件五类。动力部件是为组合机床提供主运动和进给运动的部件。主要有动力箱、切削头和动力滑台。
支承部件是用以安装动力滑台、带有进给机构的切削头或夹具等的部件,有侧底座、中间底座、支架、可调支架、立柱和立柱底座等。
输送部件是用以输送工件或主轴箱至加工工位的部件,主要有分度回转工作台、环形分度回转工作台、分度鼓轮和往复移动工作台等。
控制部件是用以控制机床的自动工作循环的部件,有液压站、电气柜和操纵台等。辅助部件有润滑装置、冷却装置和排屑装置等。
为了使组合机床能在中小批量生产中得到应用,往往需要应用成组技术,把结构和工艺相似的零件集中在一台组合机床上加工,以提高机床的利用率。这类机床常见的有两种,可换主轴箱式组合机床和转塔式组合机床。
组合机床未来的发展将更多的采用调速电动机和滚珠丝杠等传动,以简化结构、缩短生产节拍;采用数字控制系统和主轴箱、夹具自动更换系统,以提高工艺可调性;以及纳入柔性制造。
Plug-in Dynamic Statistic Solution Based on Fuzzy Rules-Base Method
PENG Haibo,YANG Wie,YAO Zhiqing
(Wisco Group Kunming Iron and Steel Co.,ltd.information Center,Yunnan Kunming,650302,China)
This paper puts forward and establishes a dynamic statistic system by utilizing the fuzzy rules-base method of fuzzy control domain and modularization、plug-in method of software domain,associating SQL language and Sql Server database,and fully adopting the object-oriented feature of Java language.In the application of the system,the maintenance work is cut down a lot,and the system's dynamic characteristic,configurability and adaptivity are realized.
Java;SQL Language;Fuzzy Rules-Base;Dynamic Statistic;Modularization;Plug-in
TP311
A
2095-509X(2013)02-0036-04
10.3969/j.issn.2095 -509X.2013.02.010
2012-10-17
彭海波(1982—),男,云南昆明人,武钢集团昆明钢铁股份有限公司信息系统项目管理师,硕士,主要研究方向为企业综合信息化。