Файл описания переменных и тегов содержит перечисления тегов, их параметров и соединений, с которыми связаны теги.
В начале файла должны быть указаны заголовочные строки, которые содержат данные для обработки файла. Пример заголовочных строк файла variables.csv приведен ниже.
Пример
|
Первые три заголовочные строки аналогичны заголовочным строкам в файле devices.csv.
Строка ID;Varname;Connection;Address;Datatype;Length;InLo;InHi;OutLo;OutHi;Description;EngUnits;EnumName
содержит наименования столбцов с данными:
ID
– уникальный числовой идентификатор тега. Идентификатор тега нужен для создания ссылок на тег в файле datasets.csv.
Varname
– полное имя тега (например, Drain.8450PT00058.value20
).Connection
– идентификатор соединения, с которым связан тег.Address
– адрес тега в строковом виде. Адрес зависит от типа протокола, с которым связан тег (например, для протокола S7comm значение адреса – M2.7
, DB575:82.0
, для протокола Modbus TCP значение адреса – 400537
, 123
, 300001
).
Datatype
– числовой код типа данных тега. Используются следующие коды:Length
– длина строки в байтах для тега строкового типа (string).InLo;InHi;OutLo;OutHi
– параметры для масштабирования значения тега.Если значения всех параметров для масштабирования равны нулю, то масштабирование значения тега не используется. Если заданы числовые значения параметров, то для расчета значения тега применяется следующая формула: TagValue = OutLo + (TagValue – InLo) * (OutHi – OutLo) / (InHi – InLo), где TagValue – это значение тега.
Description
– описание тега (например, "Давление пара на выходе котла №1").EngUnits
– единицы измерения физической величины, которая соответствует тегу (например, м/с, Дж).EnumName
– имя перечисления из файла enums.csv, которое определяет значение тега.Поле EnumName
может быть заполнено для тегов с типами данных ENUM, INT* или UINT*. Поле EnumName
содержит ссылку на перечисление из файла enums.csv.
Пример: Поле
Описание перечисления в файле enums.csv:
|
После заголовочных строк следует тело файла, содержащее значения параметров (например, идентификатор тега, имя тега, идентификатор соединения). Пример файла 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
– параметр, который включает в себя имя устройства и имя логического устройства (logical device name).LN
– имя логического узла (logical node name).CO
– имя функциональной ссылки (functional constraint name).DA
– имя тега (tag name).CDC
– имя класса общих данных атрибута (attribute common data class name).LNCDC
– имя класса общих данных логического узла (logical node common data class name).[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, используемое для сравнения версий проектов/тегов в ПЛК и SCADA-системе.MSD
– идентификатор тега, представленный целым числом в диапазоне 0–65535.[BLOCK_ID]:[SUBBLOCK_ID]:[PROPERTY_ID]
, где:BLOCK_ID
– порядковый номер блока в программе ПЛК, представленный целым числом в диапазоне 0–65535.SUBBLOCK_ID
– порядковый номер вложенного блока в программе ПЛК, представленный целым числом в диапазоне 0–65535.PROPERTY_ID
– порядковый номер параметра блока в программе ПЛК, представленный целым числом в диапазоне 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
– направление переменной (input, output).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
– идентификатор переменной, представленный целым числом.Кроме того, для правильной загрузки параметров протокола требуется указать файл конфигурации станции.
Пример строки адреса тега для протоколов MMS и GOOSE приведен ниже.
Пример:
|