What are Tags and Templates?
FactoryStudio uses the term "tag" to refer to real-time variables and their associated historical data. Tags usually map to devices, such as PLC registers or other physical equipment in the production process. A tag can also be connected to entries in SQL databases, external data sources, or an internally calculated value.
All tags have a specific type, such as an integer, text, or date and time. FactoryStudio provides over a dozen predefined types and allows users to define new types. In addition, some tags may be defined as arrays, and some tags may have optional parameters.
Tags are the process variables for your application. Use tags and their properties to set up the data model for your process.
Although FactoryStudio provides many predefined types, you may need to define your own type. Templates are used to do this. Templates may be defined with properties similar to those of predefined types. Each template represents a user-defined type that can be used in the same manner as predefined types.
Using templates, you can add to the types of tags available for your project by creating new types to fit your application needs. This could be as machine data, equipment status, vessels, or as the representation of any asset attributes in your plant.
|On this page:|
FactoryStudio provides 13 built-in tag types, most of which are based directly on .NET datatypes. The 13 built-in tag types are summarized in the following table.
0 through 1
-2,147,483,648 through 2,147,483,647
-2,147,483,648 through 2,147,483,647
-1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values; 4.94065645841246544E-324 through 1.79769313486231570E+308 for positive values
0 through +/-79,228,162,514,264,337,593,543,950,335 with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest nonzero number is +/-0.000
0 to approximately 2 billion Unicode characters
Same range as Integer, but with built-in parameters to produce a repetitive wave pattern (see notes below)
from 12:00:00 midnight, January 1, 0001 to 11:59:59 P.M., December 31, 9999
Data Interval in Days, Hours, Minutes, Seconds and Milliseconds, where each of those properties can hold a Double value
Standard Microsoft Globally Unique Identifier (GUID)
Holds an in-memory DataTable
Can hold an Image file or any binary content. The Long value is the maximum size of the content.
The Decimal type allows calculation with higher precision than the Double type. However, math operations using Decimal can be 40 times slower than using Double. So the Decimal type should only be used when Double precision is not enough.
Timer is a built-in integer type that can be used to generate precise timing signals. Timers have the following varieties:
For SquareWave, Pulse, and Comparer, the tag toggles between 0 and the StartValue (instead of 0 and 1) if you set the tag StartValue.
Reference tags allow dynamic addressing of variables.
The way you use Reference tags in FactoryStudio is closer to how you use references in .NET programming than it is to the old C++ pointers. Reference tags are similar to .NET references because they both have a type. When you create a reference tag, you need to define the type of object the reference will point to. Unlike C++ pointers, a Reference tag cannot be defined to point to invalid memory areas that would cause errors in the application.
The target type for the Reference types is defined in the Parameters columns.
Typed references bring advantages in both the engineering stage and in runtime. In the engineering stage, it allows IntelliSense to directly browse the template members if a reference is pointing to a template. In runtime, it allows string data validation.
All Reference tags have an additional runtime attribute. This is the link, and it specifies which tag that the reference will be linked to during execution.
Essentially, the link property is a string property that needs to receive the target tag name before using the reference tag. You can assign a string directly or by using a string expression. The best way to set the link property is to use the method GetName(), which will create the string based on the current tag name. This way, you can rename the tag without having to search the strings. This also shows the tag names linked on the cross-reference utility.
An example project (ReferenceTags) ships with FactoryStudio.
@Tag.Reference1.Link = @Tag.TagName.GetName() (VB)
@Tag.Reference1.Link = @Tag.TagName.GetName(); (C#)
@Tag.Reference1.Link = "Tag.TagName"; (C#)
@Tag.Reference1.Link = "Tag.TagNa" + "me"; (C#)
The reason for using the GetName() method, instead of using strings directly, is that with GetName() you retain the benefits of Cross-Reference and Refactoring.
Creating and Editing Tags
To create and edit tags:
Enter a name for the tag. The system lets you know if the name is not valid.
Select the tag type, which may be a built-in type or a user-defined template.
Configure any parameters. The parameters vary based on the tag type. Once the type is entered, you can double click on the parameters field to see a dropdown menu with any applicable parameters.
When this field is blank, the tag is not an array.
When the field contains an integer value of N, an Array is created from position 0 to N.
For example, if the field contains the value 5, the Array is created from Tag to Tag. This means that 6 elements are created.
Two programming styles are accommodated by this method; one that counts elements from 0 to less than five, and one that counts from 1 to 5.
The columns above are visible by default. To add or remove one of the column below, right-click the column heading area and check or uncheck the columns that should be visible.
Enter the engineering units of measure that you want to use as a label for this tag.
Enter a starting value for this tag. This is the value the tag will be initialized with when FactoryStudio starts.
Enter a default format for displaying the data. For example:
Select the option to save the value of the tag and its internal properties to the database every time the value changes. This retains the value when the application shuts down and makes the value available when the application next starts.
Enter the minimum value that is valid for the object.
Enter the maximum value that is valid for the object.
Select the value visibility on the OPC server for remote projects:
Tag value for the entire project or value specific to each client display.
Enter any comments about this tag.
Select which groups have the right to read the Tag. Tag Security protection can be configured in Display > Client Settings
Enter the scale min value for communication.
Enter the scale max value for communication.
Read-only. Show which communication point is related to the tag (if related)
Select which groups have the ability to write in the Tag. Tag Security protection can be configured in Display > Client Settings
For definitions of other columns that are available in this table, see "Common Column Definitions".
Continue adding as many tags as you need.
You can create a tag from anywhere in FactoryStudio by clicking New Tag in the toolbar.
Like any other configuration table, you can import CSV files or copy/paste content directly from an Excel spreadsheet or from other applications.
With FactoryStudio, you can replace names at any time. An easy way to create a tag is to click on the Name column of the insertion row, then press space and enter. Each time you do this, the system will create the same type of tag that was last created. In the insertion row, select the Type, then click on the header or any other part of that grid. This will create a tag with a default name. Also, you can configure more than one row at a time by selecting the rows with the Shift button, then right-click and select "Edit Combined Rows". A new popup will open with the information for the rows. The settings changed in this window will change all of the selected rows. If a column has , it shows that this column has more than one configuration.
The format property defines the display format of tag values. These formats follow the specifications provided in Microsoft .NET. For valid numeric formats, refer to Standard Numeric Format Strings. For example: N1 (number with 1 decimal place).
For valid date and time formats, refer to Standard Date and Time Format Strings. For example: d (short date).
For a more in-depth discussion of format strings, refer to Formatting Types.
Numeric format examples
Number with no decimal places
Number with 3 decimal places
Hexadecimal (supported only for integral types)
Date/time format examples
Long time pattern (equivalent to HH:mm:ss).
Short date pattern (equivalent to M/d/yyyy (month/day/year) for en-us).
Show the day of the month as a number from 01 through 31.
Show the abbreviated name of the day of the week.
Show the full name of the day of the week.
Show the month as a number from 01 through 12.
Show the abbreviated name of the month.
Show the year as a two-digit number.
Show the year as a four-digit number.
Show the hour as a number from 01 through 12.
Show the hour as a number from 00 through 23.
Show the minute as a number from 00 through 59.
Show the second as a number from 00 through 59.
Show the millisecond as a number from 000 through 999.
Show the A.M./P.M. designator.
Templates let you create new tag types based on existing built-in types.
To create a tag template:
Enter or select information, as needed. The properties are the same ones for Tags. See Creating and Editing Tags.
Assets let you configure additional metadata for your project when you have the Enterprise version of FactoryStudio. For example, you can organize the objects in your project into a hierarchy. This lets you group tags that are related to each other. The hierarchy may reflect such things as the area of your manufacturing floor or the location of your machinery.
To create assets:
If you have the Enterprise version of FactoryStudio, you can create user-defined categories of data that you can use as tag metadata. Categories are useful for filtering, both when creating the project and during runtime.
To create categories:
All project tags are available in the runtime modules as .NET objects for the Tag Namespace.
All of the built-in tag types share a common set of properties and methods which are defined in the base class TagObj. The tags created from user defined templates are implemented by the base class UserType.
Base classes to all Tag objects.
Runtime properties for tags of Type Digital.
Runtime properties for all Analog Tag Types.
Runtime properties for tags of Type Integer.
Runtime properties for tags of Type Long.
Runtime properties for tags of Type Decimal.
Runtime properties for tags of Type Double.
Runtime properties for tags of Type Text.
Runtime properties for tags of Type DateTime.
Runtime properties for tags of Type Timer.
Runtime properties for tags of Type TimeSpan.
Runtime properties for tags of Type Reference.
Runtime properties for tags of Type DataTable.
Runtime properties for tags from Templates.
See Namespaces for the complete programming reference on runtime objects.