0

我正在做一些自动化项目。

数据通过第三方硬件在 LabVIEW 中传递,并通过浮点数据类型的 OPC 服务器进一步传递给 WinCC Flexible。

输出显示字段支持字符串输出。显示字段上显示的数据是在 VBScript 中处理的。

面临的问题是:

WinCC 支持浮点变量,最大长度为 4。

显示字段上显示的输出是字符串类型。当数据通过 LabVIEW 传递时,会发生以下情况:

示例 1:LabVIEW 数据:1.27e-4 | WinCC Flex 上的输出:0.000127 [错误表示] e-5 以下的所有数据都如上所示。

示例 2:
LabVIEW 数据:1.27e-10 | WinCC Flex 上的输出:1.27E-10 [正确的代表]

VBScript 中有没有办法将输出数据格式化为指数符号?

目前正在使用此 VBS 进行表示...

 If SmartTags("tag_06_1") = 0 Then SmartTags("output_1") = CStr (SmartTags("presseure_test"))
4

1 回答 1

2

VBScript 中所有格式问题的最佳(最划算(错误?))解决方案是利用 .NET 格式。简单的 POC 脚本:

  Dim aNums : aNums = Split("0.123 1.27e-4 1.27e-10")
  Dim sNum
  For Each sNum in aNums
      WScript.Echo sNum, CDbl(sNum), fmtExpNum(CDbl(sNum))
  Next

Function fmtExpNum(dblX)
  Dim oSB : Set oSB = CreateObject("System.Text.StringBuilder")
  oSB.AppendFormat "{0:E2}", dblX
  fmtExpNum = oSB.ToString()
End Function

输出(德语语言环境):

0.123 0,123 1,23E-001
1.27e-4 0,000127 1,27E-004
1.27e-10 0,000000000127 1,27E-010
于 2013-05-07T11:52:57.420 回答