存储类型

ASCII 格式

ASCII 数据存储将每个实例路径的作为一个保持变量 (可能是压缩格式),数据类型和变量值作为字符串存在文件中。名称和数据通过一个表格符号进行分割 (可以通过参数bySeparator改变)。当压缩包读取时,将进行一个转换,因此文件可以在外部进行修改。行必须通过 "\r\n" (窗口转化)。 以分号开始的行将在读取时进行忽略 - 当压缩包读取时这一行将不会被写入。

ASCII 文件格式

{timestamp}\r\n
{instance path}{bySeparator}{Typ}:{value}\r\n
…
{instance path}{bySeparator}{Typ}:{value}\r\n
 

时间戳定义存储触发的时间,将会按照 DATE_AND_TIME 逐字存储 (例如DT#2012-01-11-15:11:09)

ASCII 文件示例

插图 370: ASCII 文件中存储的变量

REAL 和 LREAL 变量的处理:

变量的值是按照 ST 方式进行排列。 REAL 和 LREAL 的处理方式是不同的,因为从十进制或者到十进制的转化的实现过程为保证没有精度丢失是不同的。然而,为避免任何精度的损失并且保持可读性以及修改 ASCII 文件的可行性,这些变量都是存储在一个十六进制的文件中。 (精准的) 小数将会被添加到一个十六进制数之后作为一个注释。当读文件时,十六进制格式以及 ST 十进制格式是支持的。这允许用户修改小数部分。

十六进制格式定义如下:


    F16#{Mantissa}H{Exp} | F16#NaN | F16+Inf | F16-Inf
    {Mantissa}   ::= {HexNumeral}
    {Exp}        ::= {HexNumeral}
    {HexNumeral} ::= [+-]?[1-9A-F][0-9A-F]*
 

如果 m 是尾数值并且 e 表示指数变量的定义格式为m * 16^e

存储 REAL 变量示例

lr1 LREAL:F16#F0H-3 0.05859375

二进制格式

Binary 数据格式以二进制形式保存数据。以分号开始的输入被标记为时间戳标记 (类型 DATE_AND_TIME)。经过此操作之后变量将被罗列。

压缩归档

变量值将按照路径和名称进行存储 (在路径中即不是应用也不是设备名) 并且以紧凑的拼写以节省资源和时间。

在任何情况下(无论是否压缩)实例路径必须按照完整实例路径顺序进行保存。这个排列顺序是按照字母顺序进行的,即数组索引数值进行排列。

示例

对象

压缩格式

Fb1.fb2.fb3.a

Fb1.fb2.fb3.a

Fb1.fb2.fb3.b

<b

Fb1.fb2.d

<<d

Fb4

FB4