2017-08-17
如何在SPC软件中导入“难看的” 数据
作者:Eric Weisbrod | |
关键词:SPC软件、导入数据 | |
导语:在导入数据时遇到过麻烦吗?是不是数据格式很难与SPC软件相匹配?想知道如何让SPC软件轻松读取“格式凌乱”的数据吗?看盈飞无限(InfinityQS)专家为您支招。 |
|
《如何在SPC软件中导入“难看的” 数据》,也许这样的标题会引起人们的误解。这里,我所指的“难看的”数据,其实不是数据本身,而是数据在文件中的格式。之所以这样讲,是因为我实在找不出一个更恰当的词来形容如此“文件结构凌乱的导入数据”。 我们平时热衷于数据的自动采集。但是我们非这样做不可吗?我们可以让操作工、技术员、质量工程师们取样、测量和记录数据,来保证生产过程的稳定性以满足最低的要求。自动几乎像是“免费得到的”数据,对吗? 在SPC软件中,所有设置都完成后,数据自动录入是件非常美妙的事情,但在此之前的设置会让人很头疼。对于使用 盈飞无限(InfinityQS) 产品从文本文件中采集数据的客户来说,您一定有这样的“好”文件。下面是“好”文件的例子:数据是整齐的行和列结构。注意到分隔每列的制表符了吗?太棒了! |
|
|
|
使用您喜欢的制表程序打开这个整齐的数据。从表格中可以看到零件、操作工、过程、颜色、A 点直径、B点直径和C点直径。用盈飞无限的SPC软件工具可以轻松读取这些“漂亮的”数据,比如,数据管理系统(DMS)、Buffer File (ProFicient) 或实时导入工具都可以完成这样的工作。但是,对于“难看的”数据该怎样做呢? |
|
|
|
下面展示了一个完全不同的文件,它来自于客户图像系统的实际输出数据。不用担心,为了保护数据的安全,名称和数据都已经过修改,下图是原始的数据: |
|
|
|
注意零件、过程、描述符和测试值是所有的地方都存在的。这个文件中没有相似的分隔符,比如制表符或逗号。这些文件可以为盈飞无限的SPC软件工具所采集吗?没问题,盈飞无限的DMS 和 Buffer File 是可以采集这样的文件的。 |
|
一切尽在格式中 | |
我观察了这个文件许久,在屏幕上,这个文件被文字处理软件的记录分隔为几行。如果使用高级文本编辑器,你就会看到隐藏的字符:在每行的最后部分,都会有一个“<13><10>”,对于计算机而言, (<13>)的作用是“回车”,即,光标回到最左端,(<10>)为换行,表示光标走到下一行。每次我们在键盘上按下“回车”的时候,就是输入了这两个字符。这样的设计更方便我们对数据的读取,但我们在设置 DMS 或 Buffer File时,不能受到它们的限制。 如果我们使用管道操作符(|)定义每一个列,使用文件结尾的惊叹号来定义记录的终结,效果会如何?记录的结果是这样的: NAME|PN 1475-215 BLUE PART (USA).mxi<13><10>DATE|3/24/2011<13><10>TIME|16:07:45 <13><10>DATA|FACTOR|1|T|++OPERATOR|OP| +0.00000| +0.00000| +0.00000| +0.00000| EJW<13><10>DATA|FACTOR|2|T|++MACHINE NUMBER|PHX| +0.00000| +0.00000| +0.00000| +0.00000|77<13><10>DATA|FACTOR|3|T|++COLOR|PHX| +0.00000| +0.00000| +0.00000| +0.00000|BLU<13><10>DATA|FACTOR|4|T|++NOTES|PHX| +0.00000| +0.00000| +0.00000| +0.00000|2 OFF<13><10>DATA|"A"|DIA| +2.7500| +0.00500| -0.00500| +2.7515| <13><10>DATA|"B"|DIA| +1.5000| +0.00500| -0.00500| +1.5015|<13><10>DATA|"C"|DIA| +1.5000| +0.00500| -0.00500| +1.5040|<13><10><13><10><13><10><13><10> <13><10>RUNNUMBER| 1<13><10>END!<13><10><13><10><13><10> 在上面的代码中,我们可以看到所有的“<13><10>”以及记录是如何混杂在一起的。在Word 的“自动换行”模式下,这看起来更像一段信息,但如果把它放在一行中,它看起来则是这样的: |
|
|
|
我们可以看到这是一个有很多字节的单个记录。虽然我的计算机有两个显示器,但还是不能在一个屏幕中看完所有记录。 鉴于记录中, “<13><10>”易被当做其它字符处理,所以,我们可以将它当成一个记录中的多个列,然后映射相应的列。下图是在 DMS 格数据源映射的效果。 |
|
|
|
映射列是第一步,后面还有其它操作。比如,零件列现在为: PN 1475-215 BLUE PART (USA).mxi<13><10>DATE 此记录需要进行切割以屏蔽不需要的字符。在此例子中,零件定义占用的22字符,此值可以根据需要设置如下: |
|
|
|
对每个映射的区域按照同样的操作映射,出来的结果可以是任何我们需要的内容,但是很难看! |
|
|
|
同样的方式可以应用在盈飞无限 ProFicient 项目中的 Buffer File 上,列映射成相同的式样。 |
|
|
|
使用同样的选项来分割字符。 |
|
|
|
数据列映射完成后,每个区域需要重新切割, Buffer File 和 DMS 处理的结果是相同的。 |
|
考虑的重点 | |
现在我们使用此技巧是不是可以处理任何纯文本文件呢?答案是:也不一定,但可以有帮助。在处理文件或导入文件的时候需要我们最为注意的是什么呢? | |
|
|
即使考虑了所有因素,有时仍需要几天、几周甚至几个月才能解决所有设置问题,但我依然是数据自动采集的忠实粉丝。毕竟,在盈飞无限SPC软件中,一旦设置成功,您就可以一劳永逸。最后,祝您导入数据愉快! | |
作者简介:Eric Weisbrod 盈飞无限国际有限公司(InfinityQS International, Inc)高级应用工程师。 |
|
原文出处:http://www.infinityqs.com/blog/importing-ugly-data |