The variables and tags description file contains enumerations of tags, their parameters, and connections with which the tags are linked.
The file should begin with header strings containing the data needed for file processing. An example of header strings of the variables.csv file is provided below.
Example
|
The first three header strings are identical to the header strings in the devices.csv file.
The string ID;Varname;Connection;Address;Datatype;Length;InLo;InHi;OutLo;OutHi;Description;EngUnits;EnumName contains the names of columns with data:
Id – unique numerical ID of the tag. The tag ID is needed to create links to the tag in the datasets.csv file.
Varname – full name of the tag (for example, Drain.8450PT00058.value20).Connection – ID of the connection with which the tag is linked. Connection ID is specified in the connections description file and is used for linking protocols to tags.
Address – address of the tag in string form. The address depends on the type of the protocol with which the tag is linked (for example, for the S7comm protocol the address value is M2.7, DB575:82.0, and for the Modbus TCP protocol the address value is 400537, 123, 300001).
Datatype – numerical code of the tag data type. The following codes are used:Length – string length in bytes for a tag of the string type.InLo;InHi;OutLo;OutHi – parameters for scaling the tag value.If the values of all parameters for scaling the tag value are equal to zero, scaling of the tag value is not used. If numerical values of parameters are specified, the following formula is used to calculate the tag value: TagValue = OutLo + (TagValue – InLo) * (OutHi – OutLo) / (InHi – InLo), where TagValue is the tag value.
Description – tag description (for example, "Steam pressure at the output of Boiler No. 1").EngUnits – units of measurement of the physical quantity corresponding to the tag (for example, m/s, J).EnumName – name of the enumeration from the enums.csv file, which defines the value of the tag.The EnumName field can be filled for tags with data types ENUM, INT*, or UINT*. The EnumName field contains a link to the enumeration from the enums.csv file.
Example: The
Description of the enumeration in the enums.csv file:
|
The header strings are followed by the file body containing the values of parameters (for example, tag ID, tag name, or connection ID). An example of the variables.csv file is provided below.
Example:
|
The structure of the tag address in the Address field depends on the protocol used.
The following structure addresses are used for the supported protocols:
[Area][ByteAddress].[BitAddress].If the condition MemArea=DataBlocks is satisfied, the address is supplemented with the number of the data block. The string changes to [DB17]:[ByteAddress].[BitAddress], where:
Area – the enumeration of codes of memory areas according to the protocol standard: M, I, O, DB, C, T.ByteAddress – the byte address represented by an integer.BitAddress – the bit address inside the byte, which is represented by an integer.[Area][Address], where:Area – the enumeration of codes of memory areas according to the protocol specification: 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 – the address value. The address is an integer in the range that depends on the data area.DOMAIN=Domain;LN=LnName;CO=CoName;DA=FullTagName;CDC=CdcName;LNCDC=LNClassName, where:DOMAIN – a parameter that includes the device name and the 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], where:ASDU – ASDU number represented by an integer.Address – InformationObject number represented by an integer.[Area][ByteAddress].[BitAddress], where:Area – the enumeration of codes of memory areas according to the protocol standard: I, Q, T, M, G, AI, AQ, R, P, L, W.ByteAddress – the byte address represented by an integer.BitAddress – the bit address inside the byte, which is represented by an integer.LID=LidValue;RID=RidValue, where LidValue and RidValue are internal identifiers of a tag in the TiaPortal project.[Area][ByteAddress].[BitAddress], where:Area – enumeration of codes of memory areas according to the protocol standard: A, CIO, C, CS, D, DR, E, H, IR, TK, T, TS, W.ByteAddress – the byte address represented by an integer.BitAddress – the bit address inside the byte, which is represented by an integer.[GROUP]:[INDEX], where:GROUP is the specific group.INDEX is the specific index.[Application]:[POUInstance].[VarOffset], where:Application is the name of the application.POUInstance is the POU instance.VarOffset is the variable offset.[MSD_VERSION]:[MSD], where:MSD_VERSION is an integer in the range of 0–65535 that is used for comparing versions of projects/tags in the PLC and SCADA system.MSD is the tag ID represented by an integer in the range of 0–65535.[BLOCK_ID]:[SUBBLOCK_ID]:[PROPERTY_ID], where:BLOCK_ID is the sequence number of the PLC program block represented by an integer in the range of 0–65,535.SUBBLOCK_ID is the sequence number of the PLC program subblock represented by an integer in the range of 0–65,535.PROPERTY_ID is the sequence number of the PLC program block parameter represented by an integer in the range of 0–65,535.[Area][ByteAddress].[BitAddress], where:Area is the enumeration of memory area codes according to the protocol specification: X, Y, C, S, T, CT, GX, GY, V, P, SP, B, PB.ByteAddress – the byte address represented by an integer.BitAddress – the bit address inside the byte, which is represented by an integer.[OBJECT_TYPE]:[OBJECT_ID], where:OBJECT_TYPE is the type of object according to the protocol specification.OBJECT_ID is the sequence number of the object represented by an integer in the range of 0–4,194,303.[IO]:[SubSlot]:[Index]:[Offset].[BitAddress], where:IO is the variable direction (input, output).SubSlot is the number of the subslot represented by an integer.Index is the tag index represented by an integer.Offset is the tag byte address represented by an integer.BitAddress is the bit address inside the byte, which is represented by an integer (used only for tags that have the bool data type).In addition, to correctly load the protocol parameters, you must specify the GSDML file for the specific device.
[Controller Address]:[Index]:[Size]:[Config]:[MessageType], where:Controller Address – address of the object controller represented by a hexadecimal integer.Index – bit tag index represented by an integer.Size – bit size represented by an integer.Config – position of the jumpers on the object controller represented by a hexadecimal integer.MessageType – type of message (Order or Status).In addition, to correctly load the protocol parameters, you must specify the configuration file for the specific device.
[Object ID]:[Variable ID], where:Object ID – object identifier represented by an integer.Variable ID – variable identifier represented by an integer.In addition, to correctly load the protocol parameters, you must specify the configuration file for the station.
[ExchangeId]:[RefAddress], where:ExchangeId – subscription ID represented by an integer in the range of 0–4,294,967,295.RefAddress – tag address offset (in bytes) represented by an integer in the range of 0–65,535.An example of the tag address string for the MMS and GOOSE protocols is provided below.
Example:
|