变量和标记描述文件列出了标记、标记参数以及与标记关联的连接。
该文件应以标头字符串开头,标头字符串包含处理文件所需的数据。variables.csv 文件的标头字符串的示例如下所示。
示例
|
前三个标头字符串与devices.csv文件中的标头字符串相同。
字符串 ID;Varname;Connection;Address;Datatype;Length;InLo;InHi;OutLo;OutHi;Description;EngUnits;EnumName 包含数据列的名称:
Id – 标记的唯一数字 ID。需要标记 ID 来创建指向 datasets.csv 文件中的标记的链接。
Varname – 标记的完整名称(例如,Drain.8450PT00058.value20)。Connection – 与标记关联的连接的 ID。连接 ID 在连接描述文件中指定,用于将协议链接到标记。
Address – 标记的地址(采用字符串格式)。该地址取决于与标记关联的协议的类型(例如,对于 S7comm 协议,地址值为“M2.7, DB575:82.0”,对于 Modbus TCP 协议,地址值为“400537, 123, 300001”)。
Datatype – 标记数据类型的数字代码。可使用以下代码:Length – 字符串类型的标记的字符串长度(以字节为单位)。InLo;InHi;OutLo;OutHi – 用于缩放标记值的参数。如果用于缩放标记值的所有参数的值均等于零,则不使用缩放标记值功能。如果为参数指定了数字值,则使用以下公式来计算标记值:TagValue = OutLo + (TagValue – InLo) * ( OutHi – OutLo) / ( InHi – InLo),其中 TagValue 为标记值。
Description – 标记描述(例如,“1 号锅炉出口的蒸汽压力”)。EngUnits – 与标记对应的物理量的度量单位(例如,m/s、J)。EnumName – 来自 enums.csv 文件的枚举名称,它定义标记的值。可以为具有 ENUM、INT* 或 UINT* 数据类型的标记填写“EnumName”字段。“EnumName”字段包含指向 enums.csv 文件中的枚举的链接。
示例: variables.csv 文件中的“
enums.csv 文件中的枚举描述:
|
标头字符串后面是文件正文,其中包含参数值(例如,标记 ID、标记名称、连接 ID)。variables.csv 文件的示例如下所示。
示例:
|
“Address”字段中的标记地址结构取决于所使用的协议。
对于支持的协议,可使用以下地址结构:
[Area][ByteAddress].[BitAddress] 的的字符串。如果满足条件 MemArea=DataBlocks,则将为地址增加数据块编号。字符串更改为 [DB17]:[ByteAddress].[BitAddress],其中:
Area – 根据协议标准对内存区域代码的枚举:M、I、O、DB、C、T。ByteAddress – 采用整数表示的字节地址。BitAddress – 字节内的位地址,用整数表示。[Area][Address]的字符串,其中:Area– 根据协议规范对内存区域代码的枚举:SM、SD、M、L、F、V、D、TS、TC、TN、SS、SC、SN、CS、CC、CN、S、Z、R、X、Y、B、W、SB、SW、DX、DY、ZR。Address – 地址值。该地址是一个介于与数据区域相应的范围内的整数。DOMAIN=Domain;LN=LnName;CO=CoName;DA=FullTagName;CDC=CdcName;LNCDC=LNClassName 格式的字符串,其中:DOMAIN – 包含设备名称和逻辑设备名称的参数。LN – 逻辑节点名称。CO – 功能约束名称。DA – 标记名称。CDC – 属性公共数据类名称。LNCDC – 逻辑节点公共数据类名称。[ASDU]:[Address] 的字符串,其中:ASDU — 用整数表示的 ASDU 编号。Address– 用整数表示的 InformationObject 编号。[Area][ByteAddress].[BitAddress] 的字符串,其中:Area– 根据协议标准对内存区域代码的枚举:I、Q、T、M、G、AI、AQ、R、P、L、W。ByteAddress – 采用整数表示的字节地址。BitAddress – 字节内的位地址,用整数表示。LID=LidValue;RID=RidValue 的字符串,其中LidValue和RidValue是 TiaPortal 项目中标记的内部标识符。[Area][ByteAddress].[BitAddress] 的字符串,其中:Area— 根据协议标准对内存区域代码的枚举:A、CIO、C、CS、D、DR、E、H、IR、TK、T、TS、W。ByteAddress – 采用整数表示的字节地址。BitAddress – 字节内的位地址,用整数表示。[GROUP]:[INDEX] 的字符串,其中:GROUP是特定群组。INDEX是特定索引。[Application]:[POUInstance].[VarOffset]的字符串,其中:Application是应用程序的名称。POUInstance是 POU 实例。VarOffset是变量偏移量。[MSD_VERSION]:[MSD]的字符串,其中:MSD_VERSION是一个范围在 0–65535 之间的整数,用于比较 PLC 和 SCADA 系统中的项目/标记的版本。MSD是标记 ID,用 0~65535 范围内的整数表示。[BLOCK_ID]:[SUBBLOCK_ID]:[PROPERTY_ID]的字符串,其中:BLOCK_ID是 PLC 程序块的序列号,用 0–65535 范围内的整数表示。SUBBLOCK_ID是 PLC 程序子块的序列号,用 0–65535 范围内的整数表示。PROPERTY_ID是 PLC 程序块参数的序列号,用 0–65535 范围内的整数表示。[Area][ByteAddress].[BitAddress] 的字符串,其中:Area是根据协议规范对内存区域代码的枚举:X,Y,C,S,T,CT,GX,GY,V,P,SP,B,PB。ByteAddress – 采用整数表示的字节地址。BitAddress – 字节内的位地址,用整数表示。[OBJECT_TYPE]:[OBJECT_ID] 的字符串,其中:OBJECT_TYPE是根据协议规范的对象类型。OBJECT_ID是对象的序列号,用 0–4194303 范围内的整数表示。[IO]:[SubSlot]:[Index]:[Offset].[BitAddress]的字符串,其中:IO是变量方向(输入,输出)。SubSlot是用整数表示的子槽编号。Index是用整数表示的标记索引。Offset 是采用整数表示的标记字节地址。BitAddress是字节内的位地址,用整数表示(仅用于具有 bool 数据类型的标记)。此外,为了正确加载协议参数,必须为特定设备指定 GSDML 文件。
[Controller Address]:[Index]:[Size]:[Config]:[MessageType] 的字符串,其中:Controller Address — 用十六进制整数表示的对象控制器的地址。Index – 用整数表示的位标记索引。Size — 用整数表示的位大小。Config– 对象控制器上的跳线位置,以十六进制整数表示。MessageType – 消息类型(Order 或Status)。另外,为了正确加载协议参数,您可能需要为特定设备指定配置文件。
[Object ID]:[Variable ID]的字符串,其中:Object ID — 用整数表示的对象标识符。Variable ID — 用整数表示的变量标识符。此外,为了正确加载协议参数,必须指定站的配置文件。文件名必须是“specific.zip”。
此外,为了正确加载协议参数,您必须指定包含 PLC 启动日志的文件。文件名必须是“specific.zip”。
[ExchangeId]:[RefAddress] 的字符串,其中:ExchangeId – 订阅 ID,以 0–4294967295 范围内的整数表示。RefAddress — 标记地址偏移量(以字节为单位),用 0-65535 范围内的整数表示。