APP下载

软件操作Minitab自动生成控制图方法

2018-03-22张毅

电子技术与软件工程 2018年3期
关键词:命令行数组控件

摘 要 在质量管理领域,Minitab软件是与Six-sigma关联,实现过程分析和评价的强有力的工具,使用程序代码操作Minitab,可以高效地导入数据,绘制控制图,计算质量参数,检验异常并自动生成分析结论。

【关键词】Delphi 10 Minitab 15 控制图 异常检验

在开发测量数据管理软件过程中,需要对数据进行管理。例如对数据库中的数据按照设定的条件实现增,删,查,改,标识异常等基本操作。为了方便软件用户对制造与测量过程实施控制,软件需要实现控制图功能,从而对过程的受控状态进行分析和检验。

目前软件实现控制图主要有2种模式:1.自主开发。包括条件筛选,数据提取和导入,参数计算,调用Picture或第三方Chart控件绘图,处理绘图异常数据,完成图形绘制并输出结果。这种开发方式存在以下不足:

(1)实现各种质量参数的计算过程非常繁琐,而且计算结果要与Minitab软件计算的参数进行反复对比和修正。

(2)由于Minitab软件具有检验异常数据的8种模式,采用自主开发实现8种异常模式的判定难度较大。2.购买第三方SPC控件,在数据管理软件中集成。这种开发方式在升级和维护时可能存在一些技术限制,例如运行第三方控件可能需要特殊的运行库或某些系统控件的支持,从而使程序的可移植性受到影响。

本文所采用的开发模式是通过代码调用Minitab软件,以命令行字符串控制Minitab自动绘制控制图并计算参数。开发工具为Delphi 10 Seattle,采用VCL开发模式,编译平台为Win32,控制图软件采用Minitab 15中文版。其中,测量数据管理软件主要实现数据管理功能,当需要实现控制图时,软件通过代码控制Minitab自动打开,在Minitab的数据表写入条件筛选数据,调用对应的命令行字符串在Minitab中自动生成各种控制图,显示计算参数,并按照异常数据检验的8种模式自动生成分析结论。

1 调用Minitab软件的命令行指令

Minitab软件支持各种命令行操作,可通过编辑器-启用命令菜单打开命令行工具。首先在Minitab工作表中按列填写数据,通过统计-控制图菜单可设置参数并生成所需的控制图,Minitab会话栏将自动生成命令行指令。下面以生成XBar-R控制图命令行为例:

1.1 录入数据并打开命令行工具

手工录入数据后,单击编辑器菜单中的启用命令菜单。

1.2 设置8种数据检验条件

在XBar-R控制图菜单中,单击XBar-R选项,选择检验选项卡,将8种数据检验条件全部选中。

1.3 通过菜单指令生成控制图和异常数据分析结论

如图1所示。

1.4 将命令行指令转换为代码调用的字符串

将XBar-R控制图的命令行指令转换为字符串:

Var str_MtbCmd:string; //Minitab命令行字符串

str_MtbCmd := 'XRChart ' + '' + ComboBox1.Text + '' + ' ' + ComboBox4.Text + ';Same 2;Test 1 2 3 4 5 6 7 8.';

2 向Minitab软件写入数据,调用COM的OLE对象接口实现

2.1 使用CreateOleObject函数创建Minitab对象

try

v := CreateOleObject('Mtb.Application'); //创建Minitab对象

v.UserInterface.Visible := True; //显示Minitab窗口

except

ShowMessage('創建Minitab对象失败!');

end;

2.2 按列将数据写入Minitab数据表

Var

va,v_proj,v_Columns,v_Column: variant;

va := VarArrayCreate([0,i-1],varDouble); //创建OLE动态数组

{

//将条件筛选数据写入OLE动态数组va

}

v_proj := v.ActiveProject; //声明Project对象

v_Columns := v_proj.ActiveWorksheet.Columns; //声明Columns对象

v_Column := v_Columns.Add(,,1); //使用Add方法增加列

v_Column.Name := ComboBox1.Text; //对数据表列名赋值

v_Column.SetData(va); //按列写入数据

3 调用命令行指令生成控制图

v_proj.ExecuteCommand(str_MtbCmd); //写入命令行字符串

由于Object Pascal属于强类型的语言,在操作COM的OLE对象接口时,声明的Minitab 对象,例如Project,Columns,Column,Graph等必须声明为variant类型。另外使用SetData()函数时,数组不能直接赋值,需要创建OLE动态数组,先将本地数组赋值给OLE动态数组,再将动态数组名即数组首地址通过SetData()函数进行参数传递,将数据写入Minitab软件。

测量数据管理软件生成的数据(如图2所示)。

XBar-R控制图的实现结果(如图3所示)。

上述操作在Minitab 15和Minitab 16中均测试通过。

本文以操作Minitab软件生成XBar-R控制图为例,介绍了软件代码透过COM的OLE对象接口调用Minitab软件写入数据,调用命令行绘制控制图,并实现异常数据检验的过程。由于Minitab的大部分功能均能通过命令行进行控制,因此其它的Minitab统计图表也能采用类似的方法以代码控制的方式实现,相比手工方式录入数据再绘制统计图表,程序调用方式极大的提高了效率。

对软件用户来说,通过控制图评价过程受控状态,及时发现过程异常,查明原因并排除异常,从而使过程恢复到受控状态,对提高企业的过程能力,提升质量管理水平具有重要的现实意义。

作者简介

张毅(1970-),男。2006年9月毕业于华中科技大学,最后学位:管理硕士。现供职于东风汽车有限公司刃量具厂刀量具制造管理部,职称:高级工程师。主要研究方向为电子技术应用,工业软件开发,项目风险管理。

作者单位

东风汽车有限公司刃量具厂刀量具制造管理部 湖北省十堰市 442002

猜你喜欢

命令行数组控件
JAVA稀疏矩阵算法
JAVA玩转数学之二维数组排序
一种基于docker集群的自动评价虚拟命令行实验终端构建及其在类Unix系统教学中的应用
Windows 10新版CMD更新
Excel数组公式在林业多条件求和中的应用
寻找勾股数组的历程
ASP.NET服务器端验证控件的使用
Spreadsheet控件在Delphi数据库系统中的编程与应用