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.
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或者更新版本的TestStand中默认的数据库模板进行数据编辑时,当我录入的数据大于9.999999999999E+254或者小于-9.999999999999E+253又或者介于-0.1E-12到0.1E-12之间时,录入的数据将会产生错误。我该如何调试解决这个问题?
在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都可以通过以下链接中的补丁得到修正:
解决方案
如果在您的应用中并不适合直接运行补丁,您还可以通过修改设置文件来更正这个错误:
|