From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



在TestStand 4.1环境中,为什么我调用"New Default Database Schema"来从数据库中读取一些数值型数据出错?



主要软件:
主要软件版本: 4.1
主要软件修正版本: N/A
次要软件: N/A

问题:

运用Teststand 4.1或者更新版本的TestStand中默认的数据库模板进行数据编辑时,当我录入的数据大于9.999999999999E+254或者小于-9.999999999999E+253又或者介于-0.1E-12到0.1E-12之间时,录入的数据将会产生错误。我该如何调试解决这个问题?



解答: 注:这个问题将在TestStand2010中被修正。

在TestStand 4.0版本中并不会出现这个问题,这个情况只出现在新版的TestStand 4.1中。请查阅以下补丁的信息来进一步了解TestStand 4.1中默认数据库模板设置信息以及如何来调试解决这个问题。 

在TestStand 4.1的说明文档中,着重说明了相对于以前版本,它所新增的强大的数据库数据录入能力,除了之前大家所熟知的常规测试结果项的录入,在TestStand 4.1中新增了附加测试项录入以及测试步序属性信息录入的功能。在TestStand 4.1中,用户可以简单的通过修改数据库模板来获得额外测试结果项录入和测试步序属性信息录入的功能。之后用户就能用精简的SQL语言对测试结果进行整理分析以及报表生成。

数值型数据被错误的录入的底层原因是调用的DLL含有Bug,具体来说,该DLL用%f格式转换至字符串格式来进行数据类型的转换,而没有考虑到以非指数形式表示的数据的数据长度限制问题。其实,该DLL应该以%g格式转换至字符串格式的思路来编辑该功能模块。

在该数据库模板中列项的字符串长度限制问题有时会让基准零位被自动删除掉。举个例子来说在编辑PROP_RESULT状态命令时,字符串长度限制是255个字节,所以当数据大于9.999999999999E+254或者小于-9.999999999999E+253时数据的录入就会产生错误。

而对值介于-0.1E-12到0.1E-12之间的数来说,录入时会被自动转化为0的原因是,底层的DLL在进行数据类型转换时使用了不合适的小数点后只有13位有效数字的%f数据类型进行转换。

如果您还需要进一步的技术讲解和演示来解决遇到技术问题,请联系NI技术支持,将会有技术支持工程师来指导您进行调试工作。

以上提到的DLL底层Bug都可以通过以下链接中的补丁得到修正:

解决方案
如果在您的应用中并不适合直接运行补丁,您还可以通过修改设置文件来更正这个错误:

  1. 选择 Configure»Database Options...
  2. Statements 标签页下选择 Database Options ,并在弹出的对话框中选择 PROP_RESULT 状态项命令。
  3. 然后选择 Columns/Parameters 标签页下的 Database Options ,并在弹出的对话框中选择DATA列。
  4. 在 Expression f输入栏中,将Logging.PropertyResult项替换为以下命令:
    (Logging.PropertyResultDetails.Type.ValueType == 3)?Str(Logging.PropertyResult, "%$.16g"):Logging.PropertyResult
  5. 选择 OK 来确认您的修改。
如何将设置文件发布到其他工控机上
您可以根据以下链接的流程说明来掌握如何将写好的算法配合设置文件(其中包括这篇提到的TestStandDatabaseOptions.ini文件)发布到各个工控机上 How do I Include My Station Globals, Search Directories, Tools Menu, etc. in My Deployment When Using the TestStand Deployment Utility?

如果在您的应用中,您已经将相关算法发布到各个执行机上,您也不需要再重新生成发布文件来为你您的应用打上这个补丁。你可以先选择Schemas标签页下的Database Options选项,在弹出的对话框中选择Save按钮来导出您修改后的数据库模板



然后您需要将导出的INI文件复制到您需要发布应用的各个工控机上,最后在Schemas标签页下选择Database Options 项,在弹出的对话框中选择Load 按钮来导入新的数据库INI文件。



相关链接: Knowledgebase 3WLI47YV:  How do I Include My Station Globals, Search Directories, Tools Menu, etc. in My Deployment When Using the TestStand Deployment Utility?
Knowledgebase 37O9H144:  How Do I Copy My Custom Database Schemas from One Station to Another?


附件:





报告日期: 05/14/2010
最近更新: 01/29/2012
文档编号: 59DDENPI