Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Feature Description

outlinefalseindentexcludeFeature Descriptiontypelistprintabletrueclass

The Tag Editor is a core feature of CIMON Canvas that links abstract process variables with physical control devices. Nearly every feature Canvas provides has its functionality based on the tags defined in the Tag Editor. These tags can be numerous data types, and within a Canvas application, tags can be accessed and updated by UI elements, external devices, scripts, and various utility functions (recipes, alarm groups, etc). Tags are easily created, modified, and organized inside the Tag Editor pane or exported and imported from spreadsheet-type software (i.e., Microsoft Excel and Google Sheets), allowing easy management and printing.

WIP + Appendix link

Table of ContentsmaxLevel4minLevel1include

For more details on the tag editor, please visit Tag Editor Information to learn more.

Designer Functionalities

Tag Editor

Pane

Click View > Tag Editor to open the Tag Editor pane, as displayed on the right:

Here, all created tags, and their designated names, data types, connected I/O devices, assigned I/O addresses, initial values, persistent attributes, and descriptions are shown. Users can create, group, edit, paste, copy, cut, and delete tags from this pane by clicking the icons or using the right-click menu. The user can also click the Tag Count icon to see how many tags of each type or device have been created.

The Tag Editor pane can be undocked by dragging the pane's header to be placed to the user’s user's liking.

Tag Editor Groups

To add a tag group, click the Add tag group icon in the Tag Editor pane. After pressing the button, a text field will open in the Tag Editor pane where a name for the tag group can be assigned.

If the user has too many tags in a single pane, finding and managing individual tags may be challenging. Tag groups allow the user users to organize tags based on category, with a tree structure for subordinate tags. The grouped tags are displayed and managed in the Tag Editor pane.

Tags can be defined and configured inside the Tag Editor pane. Within a Canvas project, tags can be accessed and updated by UI elements, external devices, scripts, and various utility functions (recipes, alarm groups, etc).

  • Support for remote and Shared tags which can connect to an external device and Local tags which are used internally.

  • Support for group,

    Canvas currently has three types of tags: Remote, Virtual, and Virtual (Runtime Only). Remote tags write and read their value to and from external devices. Virtual tags allow access to the Xpanel's gateway and can be accessed by other devices through the Data Server feature. Virtual (Runtime Only) tags are only used internally within the Xpanel. They simulate devices and processes, process input data, and store data describing the application state.

    Each tag supports boolean, analog, and string tags with the following data types: BOOL, REAL, LREAL, SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT, and STRING.

  • Project status and local tag values can be maintained when stopping and restarting the project, allowing operators to continue their work.

  • Image Removed

    Image Added

    Edit Tag

    To create a new tag, click the Add tag icon to open the Edit Tag window. This window will also pop up when double-clicking an existing tag or right-clicking an existing tag and clicking Edit Tag. In this window, tag names, data types, I/O devices, I/O addresses, etc may be assigned. One field, Path, may not be assigned, but it shows the location where the tag is being created or resides. When selecting Virtual or Virtual (Runtime Only) in the I/O Device field, a Type field populates in the I/O Address Editor. The options of this drop-down are shown in the image at the top right. All options are available to Virtual (Runtime Only), whereas some are unavailable to Virtual. Each chosen option populates another Value field with pre-set selections to do particular functions.
    The visibility of the Advanced section and the fields shown inside depend on the Data Type field. The BOOL data type does not show the Advanced drop-down, whereas some data types do not have the Encoding field. Shown at the bottom right, the STRING data type is selected, which has a different Advanced section than the others:

    Image Added

    Image AddedImage Added
    Panel
    panelIconIdatlassian-warning
    panelIcon:warning:
    bgColor#FFF0B3
    • When creating a tag, use a name that follows the criteria listed below:

      • The following special characters are not allowed: $, #, +, /, ?, ., {, }, [, ].

      • Tags are not case-sensitive (i.e., dig and DIG will give a duplicate name error).

      • The user cannot use the same tag name more than once in the same tag group. However, tags may use the same name

    if they are
      • in different tag groups.

    To add a new tag, click Add tag icon, and Edit Tag pop-up window will appear.

    Image Removed

    General Settings

    This setting contains pertinent data for all tag types.

    Item

    Description

    Tag Name

    Input the desired tag name

    Path

    Outlines the group path of the tag

    Type

    Allows the user to select from 12 possible data types. The available fields in the advanced options tab will change based on the selected data type.

    Info

    Please refer to Tag Types for a detailed breakdown.

    I/O Device

    For remote tags, select the external device to associate the tag with. The user can check the name of external devices by clicking Tools > I/O Device Editor.

    For shared tags, a Data Server must be set up to allow communication with these tags.

    I/O Address

    Enter the external device address to associate the tag with. The user must enter the address using the device’s addressing method. For example, for a CIMON PLC, valid bit addresses include “X00”, “Y1E”, etc. This field is enabled only when an I/O device is selected.

    Persistent

    When this option is true, the last state of the tag is stored when the project is closed. When the user executes the project again, the tag values will be reloaded.

    Value Changed

    With this option enabled, a user-defined script or action list will be performed when the tag value changes.

    Quality Changed

    With this option enabled, a user-defined script or action list will be performed when the quality of the tag changes. In this case, quality refers to the communications status of the tag.

    Advanced Settings (Analog Type)

    This setting is only available for analog tag type and string tag type.

    Item

    Description

    Encoding

    Selecting the BCD option from the drop down menu enables binary-coded decimal encoding. With this mode enabled, a binary sequence will represent the analog tag’s value. Note that binary-coded decimal does not function the same as converting a decimal number to binary.

    Clamp Mode

    This option dictates how the tag will handle values outside of the specified maximum/minimum values. Note that this setting only applies to write requests, and will not change values read from the PLC.

    Clamp High

    To use this feature, select Clamp High from the drop-down menu. Next, enter the desired Engineering Max value. Any tag value greater than the assigned Engineering Max value will be overwritten to the Engineering Max value.

    Clamp Low

    To use this feature, select Clamp Low from the drop-down menu. Next, enter the desired Engineering Min value. Any tag value less than the assigned Engineering Min value will be overwritten to the Engineering Min value.

    Clamp Both

    To use this feature, select Clamp Both from the drop-down menu. Next, enter the desired Engineering Max and Engineering Min values. Any tag value greater than the assigned Engineering Max value will be overwritten to the Engineering Max value, and any tag value less than the assigned Engineering Min value will be overwritten to the Engineer Min value.

    Reject High

    To use this feature, select Reject High from the drop-down menu. Next, enter the desired Engineering Max value. Any tag value greater than the assigned Engineering Max value will be discarded, and the tag value will remain at the last recorded tag value.

    Reject Low

    To use this feature, select Reject Low from the drop-down menu. Next, enter the desired Engineering Min value. Any tag value less than the assigned Engineering Min value will be discarded, and the tag value will remain at the last recorded tag value.

    Reject Both

    To use this feature, select Reject Both from the drop-down menu. Next, enter the desired Engineering Max and Engineering Min values. Any tag value greater than the assigned Engineering Max value will be discarded, and the tag value will remain at the last recorded tag value. Any tag value less than the assigned Engineering Min value will be discarded, and the tag value will remain at the last recorded tag value.

    Deadband Type

    Filters the original input data and discards any new input data that falls within a specified range of the last recorded tag value.

    Absolute

    To use this feature, select Absolute from the Deadband drop down menu. Next, assign any numeric value in the Deadband field. If the absolute difference between the current tag value and the last recorded tag value is greater than the Deadband value, the current value of the tag is sent. If the absolute difference is less than the Deadband value, the current value is filtered.

    Example: Select a DINT tag type and an Absolute Deadband type. For a Deadband of 10:

    Last Recorded Tag Value: 40

    Current Tag Value: 12

    Absolute Difference = |Last Recorded Tag Value - Current Tag Value|

    For this case, the absolute difference between the two tags is 28. The absolute difference is higher than the Deadband, so the current tag value will be recorded. Next, say that the last recorded tag value remains at 40 with a new current tag value of 32. The absolute difference in this case would be less than the deadband, so the current tag value would be filtered and the tag value would remain as the last recorded tag value.

    Percent

    To use this feature, select Percent from the Deadband drop-down menu. Next, assign a numeric value between 1 and 100 in the Deadband field. If the percent difference between the current tag value and the last recorded tag value is greater than the Deadband value, the tag's current value is sent. The current value is filtered if the percent difference is less than the Deadband value.

    Example: Select a DINT tag type and a Percent Deadband type. For a Deadband of 10:

    Last Recorded Tag Value: 40

    Current Tag Value: 12

    Percent Difference = |Last Recorded Tag Value - Current Tag Value| /(Last Recorded Tag Value) * 100

    For this case, the percent difference between the two tags is 70%. The percent difference is higher than the Deadband, so the current tag value will be recorded. Next, say that the last recorded tag value remains at 40 with a new current tag value of 37. The percent difference in this case would be less than the deadband, so the current tag value would be filtered and the tag value would remain as the last recorded tag value.

    Scale Mode

    Converts the original input data into a new value using one of four methods.

    Linear Range

    To use this feature, select Linear Range from the drop-down menu. Next, enter the desired Raw Low, Raw High, Scaled Low, and Scaled High values. With this option, the tag value will be linearly scaled such that the Raw Low is converted to the Scaled Low and the Raw High is converted to the Scaled High. Intermediate values are scaled linearly. For a given input (raw) value, the exact output (tag) value can be calculated using the formula below:

    Tag Value = (Input Value – Raw Low) / (Raw High – Raw Low) * (Scaled High– Scaled Low) + Scaled Low

    Example: Select a REAL tag type. Set the Raw Low to zero and the Raw High to one. Set the Scaled Low to zero and the Scaled High to 100. Now, PLC values (on the left) will be converted to the following tag values (on the right):

    -17.0 becomes 0
    0.0 becomes 0
    0.25 becomes 25
    0.75 becomes 75
    1.0 becomes 100
    24.0 becomes 100

    Any input value below the Raw Low will be converted to the Scaled Low. Any input above the Raw High will be converted to the Scaled High.

    For a given tag value, the corresponding input value can be calculated using the formula below:

    Input Value = (Tag Value – Raw Low) / (Scaled High – Scaled Low) * ( Raw High– Raw Low) + Raw Low

    Linear Slope

    To use this feature, select Linear Slope from the drop-down menu. Next, enter the desired Slope and Intercept values in their respective fields. With this option, the tag value will be calculated using the formula below:

    Tag Value = (Input Value * Slope) + Intercept

    Example: Select an analog tag with data type UINT. For a Slope of 0.1 and an Intercept of 10:

    Minimum value: (0 * 0.1) + 10 = 10,
    Maximum value: (65535 * 0.1) + 10 = 6563.5

    For a given tag value, the corresponding input value can be calculated using the formula below:

    Input Value = (Tag Value – Intercept) / Slope

    Square Root

    To use this feature, select Square Root from the drop-down menu. Next, enter the desired Raw Low, Raw High, Scaled Low, and Scaled High values. With this option, the tag value will be exponentially scaled, such that the Raw Low is converted to the Scaled Low and the Raw High is converted to the Scaled High. Intermediate values are scaled exponentially, with a fixed exponent of 1/2. For a given input (raw) value, the exact output (tag) value can be calculated using the formula below:

    Tag Value = (Scaled High – Scaled Low) * sqrt((Input Value - Raw Low) /(Raw High – Raw Low)) + Scaled Low

    Any input value below the Raw Low will be converted to the Scaled Low. Any input above the Raw High will be converted to the Scaled High.

    For a given tag value, the corresponding input value can be calculated using the formula below:

    Input Value = ((Tag Value – Scaled Low) / (Scaled High – Scaled Low))^2 * ( Raw High – Raw Low) + Raw Low

    Polynomial

    To use this feature, select Polynomial from the drop-down menu. Next, enter the desired Exponent, Slope, and Intercept values. With this option, the tag value will be exponentially scaled. For this option, the tag value will be calculated using the formula below:

    Tag Value = Slope * (Input Value)^Exponent + Intercept

    For a given tag value, the corresponding input value can be calculated using the formula below:

    Input Value = ((Tag Value - Intercept)/(Slope)) ^ (1/Exponent)

    Advanced Settings (String Type)

    This setting is only available for analog tag type and string tag type.

    Item

    Description

    Max Length

    Assign the maximum string length that can be written to the tag. For local tags, the user can choose a value between 1 and 2147483647. For remote tags, the maximum length is only limited by the device memory. Note: Be careful to avoid overlapping device addresses. For example, if one string tag “STR1” begins at address D00 on a CIMON PLC, and another string tag begins at address D07, then STR1 should be no longer than 14 characters (7 words * (16 bits/word) / (8 bits/character) = 14 characters). Otherwise, editing one string may affect the other.

    Tag Types

    Data Type

    Description

    BOOL

    Represent ON/OFF status, 0 or 1, True or False, or other values with only two possible states. If a boolean tag is tied to a device address with more than one bit, then any value other than one will be treated as a one.

    Do not have Advanced Settings section on the Edit Tag pop-up window.

    Analog

    Represent 8, 16, 32, or 64-bit numeric values. Choosing the correct data type for interpreting your data (INT16, UINT32, Float, etc.) is crucial.

    Analog refers to multi-bit numeric values within Canvas but not necessarily values with an analog input source.

    Analog Data Type

    Description

    Range

    SINT(INT8)

    Signed 8-bit integer. Enables the Encoding, Clamp Mode, Deadband Type, and Scale Mode advanced options.

    -128 – 127

    INT(INT16)

    Signed 16-bit integer. Enables the Encoding, Clamp Mode, Deadband Type, and Scale Mode advanced options.

    -32768 – 32767

    DINT(INT32)

    Signed 32-bit integer. Enables the Encoding, Clamp Mode, Deadband Type, and Scale Mode advanced options.

    -2147483648 – 2147483647

    LINT(INT64)

    Signed 64-bit integer. Enables the Clamp Mode, Deadband Type, and Scale Mode advanced options.

    -9223372036854775808 – 9223372036854775807

    USINT(UINT8)

    Unsigned (non-negative) 8-bit integer. Enables the Encoding, Clamp Mode, Deadband Type, and Scale Mode advanced options.

    0 – 255

    UINT(UINT16)

    Unsigned (non-negative) 16-bit integer. Enables the Encoding, Clamp Mode, Deadband Type, and Scale Mode advanced options.

    0 – 65535

    UDINT(UINT32)

    Unsigned (non-negative) 32-bit integer. Enables the Encoding, Clamp Mode, Deadband Type, and Scale Mode advanced options.

    0 – 4294967295

    ULINT(UINT64)

    Unsigned (non-negative) 64-bit integer. Enables the Clamp Mode, Deadband Type, and Scale Mode advanced options.

    0 – 18446744073709551615

    REAL(FLOAT)

    32-bit floating-point number. Enables the Clamp Mode, Deadband Type, and Scale Mode advanced options.

    -3.403e+038 – 3.403e+038

    LREAL(DOUBLE)

    64-bit floating-point number. Enables the Clamp Mode, Deadband Type, and Scale Mode advanced options.

    -1.798e+308 – 1.798e+308

    STRING

    Stores a string value composed of ASCII characters. For local tags, strings up to 22 characters long can be created. For remote tags, strings will use a contiguous data block on the target device.

    Image Removed
    • It is important to verify that the data type of every tag matches the data type used within the paired device. If there is a mismatch, data may be incorrectly represented or manipulated.

    • For data types that span multiple addresses (namely 32-bit double words), only the first address is needed. The address of the remaining words or bytes is implied. Note that Modbus devices typically only send and receive one 16-bit word per address. Therefore, Modbus double words may not be directly accessible via a single real tag.

    Spreadsheet Compatability

    Copying from the Tag Editor to Spreadsheet

    • It is important to verify that the data type of every tag matches the data type used within the paired device. If there is a mismatch, data may be incorrectly represented or manipulated.

    • Only the first address is needed for data types that span multiple addresses (namely 32-bit double words). The address of the remaining words or bytes is implied. Modbus devices typically only send and receive one 16-bit word per address.

    Tags can be bound to objects and their parameters. Within Canvas projects, tags can be bound to specific values in objects, and some objects require tags to be bound to them before they can function properly. To bind a tag to an object parameter, users must hover over any parameter that can have a tag bound to it. Once hovering over, there will be a Link icon, and clicking on this icon will open the Binding Properties window. Clicking the Tag field will open a tag window and display all tags in the project. Users can select a tag from the page, which will then be bound to the parameter. Users can pick the direction for how the tag will function. Users can pick Tag to Property, Property to Tag, or Bidirectional.

    Users can also Drag and drop the tag onto the parameter. To bind a tag to a property, click and hold the tag's name from the Tag Editor. While holding, drag onto the property that the tag needs to be bound to, and once the Link icon appears, let go of the tag, and it will automatically be bound to the property. After this, no further input will be required for the tag unless necessary.

    Depending on the tag type, users can also add Formatting Options. These options can specify how many decimal places, how many leading zeroes, or even if the base should be decimal or hexadecimal, or if there should be a thousand separators. These will only work on tags that are bound to Text.

    Image Added

    Image Added

    Smart Binding

    Some objects can be bound by just dragging the tag onto the object. This will automatically bind the tag to a specific property of the object. An example of this would be a Text Box. When the user smart binds to a Text Box, it will automatically bind the tag to the text. To smart bind, click and hold the tag's name from the Tag Editor. While holding, drag onto the object that the tag needs to be bound to, and the cursor will change, indicating it can be bound to. Once the cursor changes, let go, and it will be bound, requiring no further input on the object. Objects that have a bindable parameter in basic properties will be able to have tags smart bound to them.

    Image Added

    Back to Top of Tags

    Custom Expression

    Custom Expressions can be used on object parameters. Custom expressions can be used in place of a tag to have an object parameter function in a specific way. There are currently six expressions that are possible in the Custom Expressions. There is a Condition Map, Boolean Value, Multilanguage String, Scale Tag Value, Date/Time String, and Custom Expressions. Each of them can perform a specific function; for more information on what they do, please look at the Appendix, as there will be more details on each Expression.

    Not all parameters can access all of these choices. Specific parameters will only have access to some of the parameters listed above.

    Image Added

    Spreadsheet Compatability

    1. Select the tag(s) or tag group(s) to be copied to

    Excel
    1. a spreadsheet. The user can select multiple tags using the [Ctrl] + Left-click. The subordinate tags are also selected when the user chooses a group tag.

    Image Removed
    1. Copy ([Ctrl] + [C]) the selected tags to the clipboard.

    2. Paste ([Ctrl] + [V]) the contents directly into

    Excel
    1. a spreadsheet. Each column stores a different tag attribute.

    Please refer to the table in the next section for details.Image Removed
    1. These tag attributes match the ones described in the Edit Tagwindow. A detailed description of the tag attributes and their intended functions can be found here. Note that the associated attributes of Encoding, Clamp Mode, Deadband Type, and Scale Mode populate in a spreadsheet, even if their parent attribute is disabled.

    2. Edit the tag(s)/tag group(s) in

    Excel
    1. the spreadsheet.

    The user
    1. Users can automatically create consecutive tags with

    Excel’s
    1. a spreadsheet's increment/decrement feature. Note:

    Excel’s auto
    1. Most Auto-increment

    feature does
    1. features do not work for hexadecimal values. Please double-check that word and bit addresses for real tags follow the correct device address format.

    Image Removed
    Pasting from Spreadsheet to the Tag Editor
    1. Select the rows in the spreadsheet to copy.

    Image Removed
    1. Copy ([Ctrl] + [C]) the rows to the clipboard and paste ([Ctrl] + [V]) them to the Canvas Tag Editor pane. The pasted contents will replace tags with the same name.

    Image Removed

    Excel Tag Attributes

    The tag attributes listed in Excel match the ones described in section 4.1.2 Settings. A detailed description of the tag attributes and their intended functions can be found here. Note that the associated attributes of Encoding, Clamp Mode, Deadband Type, & Scale Mode populate in excel, even if their parent attribute is disabled.
    1. All tag attributes must be copied for Canvas to paste into the Tag Editor pane.

    Image AddedImage AddedImage Added