Parameter Properties

Ramp Tag

Tag Name

The Tag Name is used to identify the specific point and all of its parameters. The Tag can be included within a Group.

For example the following would be the full path for a Tag within a Group:

  • myGroup.myTag
  • The client applications will reference the tag name and parameter by name.
  • myGroup.myTag.Value, myGroup.myTag.AlarmStatusHighHigh, or myGroup.myTag.ValueTimeOn.

Data Type

The data type of a Parameter can be set to one of the following types:

  • Double Float (64 bit)
  • Unsigned Byte (8 bit)
  • Integer (32 bit)
  • Unsigned Long Integer (64 bit)
  • Array Double (64 bit)
  • Array Bool
  • Single Float (32 bit)
  • Short Integer (16 bit)
  • Unsigned Integer (32 bit)
  • Boolean
  • Array Integer (32 bit)
  • Object Type  (Any custom object, array, or structure)
  • Signed Byte (8 bit)
  • Unsigned Short Integer (16 bit)
  • Long Integer (64 bit)
  • String
  • Array Single (32 bit)
  • Array Byte (8 bit)

Reset Value to False

When enabled for a Boolean Tag a write of False will be sent immediately when the value transitions from False to True.

Trend Point

Enable Trend Point to have the Parameter available for trending from OAS Trend .NET and OAS Web Trend. You can data log a Parameter value without trending the point if desired.

Value

The current value of the Parameter. The source of the Value is determined by the Data Source. If the Data Source is set to Value this remains fixed and can be changed directly. All other Data Sources will determine what the Value is.

Gain

The Gain is a multiplier to the raw incoming value except when the Data Source is Value:

Value = RawValue * Gain + Offset

When writing to an OPC Item the calculation is reversed:

OutputValue = (Value – Offset) / Gain

Offset

The Offset is an addition to the raw incoming value except when the Data Source is Value:

Value = RawValue * Gain + Offset

When writing to an OPC Item the calculation is reversed:

OutputValue = (Value – Offset) / Gain

High Range

The default Y Axis Range High for a trend pen.

Low Range

The default Y Axis Range Low for a trend pen.

Read Only

The value of the parameter cannot be written to.

Out Of Range

The limit if the value exceeds the alarm will be disabled.

An example is the High Alarm Limit is set to 80 and the Out Of Range is set to 1000:

  • If the Value is below 80 there is no alarm.
  • If the Value is greater than 80 and less than 1000 the tag is in a High Alarm State.
  • If the Value is 1000 or greater there is no alarm.

Alarm Limit

The current value of the alarm limit Parameter. The source of the Alarm Limit is determined by the Data Source.  If the Data Source is set to Value this remains fixed and can be changed directly. All other Data Sources will determine what the Alarm Limit is.

ROC Alarm Type

There are three (3) Rate of Change alarm types:

  1. Negative And Positive alarms on a rise or fall of the value by more than the limit.
  2. Negative Only alarms on a fall of the value by more than the limit.
  3. Positive Only alarms on a rise of the value by more than the limit.

Data Source

The source of where the value will come from. The Data Source can be set to one of the following types:

  • Value: Fixed value that can be set in configuration or from any client.
  • AB Classic: Communications to Allen Bradley MicroLogix, SLC 500, and PLC-5.
  • AB Logix: Communications to Allen Bradley ControlLogix, CompactLogix, GuardLogix, and Micro800.
  • AWS IoT Gateway: Amazon Web Services IoT Gateway.
  • Calculation: Math equation with multiple tag parameters as a data source. The result is read only and cannot be written to. View the following video to see how to define a Calculation.
  • CANBus: CanBus interface.
  • Database: Read and update database individual column of record in table field name and where statement to specify which record.
  • File-Binary: Reads value from binary file with the file name of the full tag path and parameter name and extension .bin located in the ConfigFiles directory. When value is written to Tag the file will be updated with new value.
  • File-Text: Reads value from text file with the file name of the full tag path and parameter name and extension .txt located in the ConfigFiles directory. When value is written to Tag the file will be updated with new value.
  • File-XML: Reads value from xml file with the file name of the full tag path and parameter name and extension .xml located in the ConfigFiles directory. When value is written to Tag the file will be updated with new value.
  • GPIO: General Purpose Input Output for Raspberry Pi.
  • JSON: Tag values generate JSON key value pairs.
  • Kafka: Communications to Kafka clusters.
  • Modbus: Modbus master communications for Modbus TCP, Modbus RTU, and Modbus ASCII all supported on both Ethernet and Serial interfaces.
  • MQTT: Communications to MQTT brokers to send and receive data to MQTT devices and software.
  • MTConnect: Automated tag creation and live value update from MTConnect.
  • OPC: Value from Classic DA 2.XX or 3.0 OPC Server.
  • OPC UA: OPC UA Server.
  • Siemens: Communications to Siemens S7-200, S7-300, S7-400, S7-1200, and S7-1500.
  • Simulation: Dynamic simulation of data.
  • Sparkplug B: Communications to Sparkplug B MQTT brokers to send and receive data to Sparkplug B devices and software.
  • Tag: Value is from another tag parameter from the same service or remote service. The result is read only and cannot be written to.
  • Time: Date and time from the CPU clock.
    • Year: The current year as an Integer. Value is read only.
    • Month: The current month as an Integer. Value is read only.
    • Day: The current day as an Integer. Value is read only.
    • Hour: The current hour as an Integer. Value is read only.
    • Minute: The current minute as an Integer. Value is read only.
    • Second: The current second as an Integer. Value is read only.
    • SecondToday: The total number of seconds elapsed in the current day as an Integer. Value is read only.
    • Weekday: The current weekday as an Integer. Value is read only.  0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday.
    • WeekdayName: The current weekday as a String. Value is read only.
    • DateTimeString: The current date and time as a String. Value is read only.
    • UTCYear: The current Universal Time Code year as an Integer. Value is read only.
    • UTCMonth: The current Universal Time Code month as an Integer. Value is read only.
    • UTCDay: The current Universal Time Code day as an Integer. Value is read only.
    • UTCHour: The current Universal Time Code hour as an Integer. Value is read only.
    • UTCMinute: The current Universal Time Code minute as an Integer. Value is read only.
    • UTCSecond: The current Universal Time Code second as an Integer. Value is read only.
    • UTCSecondToday: The total number of seconds elapsed in the current Universal Time Code day as an Integer. Value is read only.
    • UTCWeekday: The current Universal Time Code weekday as an Integer. Value is read only.  0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday.
    • UTCWeekdayName: The current Universal Time Code weekday as a String. Value is read only.
    • UTCDateTimeString: The current Universal Time Code date and time as a String. Value is read only.
  • UDPClientTag: Remote tag from another service that is setup for UDP Broadcast. Value is read only.

Tag Data Source

Path of the Tag and Parameter for the value if the data source is selected as Tag. This can be tag value from a remote service with the syntax of \Network Node or IP AddressTag.Value.

Source When Bad

Allows the value and data quality to be overridden when the value quality is bad when the Data Source is set to OPC Item, Tag, Calculation, or UDP Client Tag.

The following are the three (3) available options for Source When Bad:

  1. Normal Bad Quality: When the data source is bad quality the result is bad quality. With Calculations any one of the source tags in the calculation being bad quality will cause the result to be bad quality.
  2. Set Sources To Default Value: When the data source quality is bad the source value is overridden to be what is set as Default Value with the data type of Default Value Type. With Calculations that have multiple tag parameters as a source each individual tag value in the calculation will be set to the Default Value when its individual data quality is bad. This will result in the calculation performing the equation with the remaining actual values with tags with good quality and overriding the values for the tags that are bad quality.
  3. Hold Sources To Last Good Value: When the data sources quality changes to bad quality the last good value will be used as the data source.  With Calculations that have multiple tag parameters as a source each individual tag value in the calculation will be held with its last good value when its individual data quality is bad. This will result in the calculation performing the equation with remaining actual values with tags with good quality and overriding the values for the tags that are bad quality with each individual tags last good quality.
  4. Set Sources To Tag Value: When the data sources quality is bad the value from another Open Automation Software Tag will be used.  With Calculations that have multiple tag parameters as a source each individual tag value in the calculation will be set from the other Tag value. This will result in the calculation performing the equation with remaining actual values with tags with good quality and overriding the values for the tags that are bad quality with the assigned tag’s value.

Source Tag On Bad Quality

When Source When Bad is set to Set Sources To Tag Value this is the tag parameter to use for the value to set the source when the data quality is bad.

Default Value Type

The data type to use when the Source When Bad is set to Set Sources to Default Value. See Source When Bad for full description.

Default Value

The value to use when the Source When Bad is set to Set Sources to Default Value.  See Source When Bad for full description.

Override OPC Quality On Bad Quality

Forces the OPC Quality that is passed onto the OPC Systems.NET OPC Server to good quality when the Data Source When Bad Quality is set to something other than the default of Normal Bad Quality and the Data Source is set to an OPC Item.

OPC Update Rate

Update rate of the OPC Item for the value if the data source is selected as OPC Item.

Keep OPC Item On Scan

With this option selected the communications to the OPC Item will always be enabled unless the Device Read option is selected.

When this option is disabled communications to the OPC Item will be enabled only when one or more clients are requesting the value from the Tag. If the point is trended, enabled for alarm monitoring with any one of the alarm limits enabled, or set as a Target output to another OPC Item this OPC Item will always be on scan regardless if there is a requesting client.

Note: Not recommended for OPC Items from RS-Linx OPC Server as it does not handle dynamic adding and removing items well.

OPC Access Path

OPC Access Path of the OPC Item for the value if the data source is selected as OPC Item.  Most OPC Servers do not require this parameter, only servers that need to have a special topic like old DDE servers that have been converted to support OPC.

OPC Enable by Tag

When this option is enabled a Boolean Tag is defined to enable or disable OPC asynchronous communications.

Note: For standard asynchronous communications this should not be enabled.

Device Read

When enabled the Boolean Tag that is specified will cause a one-time read of OPC data when it transitions from False to True. Also when this attribute is enabled the normal asynchronous connection is disabled and the item is only polled on the transition from False to True for the Device Read Tag specified.

When a read is performed it informs the OPC Server to do a Device Read from the device to obtain the very latest value at that time.

Note: For standard asynchronous communications this should not be enabled.

OPC Enumerate

This is a list of string values returned from the OPC Server Browse that represent the specific meaning for each integer value that is returned from the OPC Item.

The string arrays are separated by a pipe character ‘|’.

Enumerate Index

If the integer value for OPC Enumerate does not begin with 0 or is not continuous numbers to convert to the string array for OPC Enumerate you can enable Enumerate Index to provide an index array of integer values to convert to.

Following is an example:

  • The value 123 should result in the string value Test0.
  • The value 456 should result in the string value Test1.
  • The value 789 should result in the string value Test2.
  • All other values will result in bad quality.
  • In OPC Enumerate specify Test0|Test1|Test2
  • In Enumerate Index specify 123|456|789
  • The integer arrays are separated by a pipe character ‘|’.

Description

Description of the Tag used as the default Trend Pen Description.

Also used as the default Alarm Text when an Alarm Limit is first enabled.

Units

Engineering Units of the Tag used as the default Trend Pen Units.

Document

This is typically a URL path to launch a document that is sent to the Windows and Web alarm windows when an alarm occurs. It can also be used for your own document purposes as a string to launch other documents from a .NET or web application.

Enable Alarm

Select each desired alarm limit to enable the alarm evaluation.

Alarm Enable With Tag

This property allows a Boolean Tag to be defined that will control if the Alarm Limit is enabled or disabled.

Alarm Group

Used in .Net Alarm and Web Alarm components and alarm logging for filtering alarms based on group. Simply enter the new alarm group or select from the existing list of groups.  OPC, System, and Tag Client are default alarm groups used to identify system and communication alarms.

Alarm Priority

Used in .NET Alarm and Web Alarm components and alarm logging for filtering alarms based on priority. The valid range is from 0 to Int32.Max.

Deadband

For Analog Alarm Limits the amount that the value must be within the limit before the alarm condition is cleared.

Time Delay

The time delay in seconds that the alarm condition must remain active before the alarm is posted as an active alarm. The date and time when the alarm first became active is used as the alarm date and time, not the date and time it was posted as an active alarm.

If you would like the AlarmStatus parameter to be set immediate and not wait for the Time Delay use Configure-Options to set Update Alarm Status Immediately without Alarm Time Delay.

Alarm Text

Description of the Tag used as the alarm text when the alarm is active.

Also used as the Alarm Text for .NET Alarm and Web Alarm components and Alarm Logging.

The Alarm Text can be fixed or dynamic with the Dynamic Alarm Text attribute.

Dynamic Alarm Text

The Alarm Text of an alarm message can be dynamic based on other Tag values.

The following options can be used for changing the Alarm Text:

  • Static Alarm Text: No change to the alarm text is performed, the default Alarm Text is used.
  • Prepend Alarm Text: Adds the value of the dynamic alarm text tag ahead of the base Alarm Text.
  • Overwrite Alarm Text: Replaces the alarm text entirely with the value of the dynamic alarm text tag.
  • Append Alarm Text: Appends the value of the dynamic alarm text after the base Alarm Text.

When the alarm occurs the current value of the alarm message is locked for that instance of the alarm so when it is acknowledged or it clears the message is the same for all states.

Alarm Text Append True

The text that can be appended to the static or dynamic alarm text for a Digital Alarm Limit when the value is true.

Alarm Text Append False

The text that can be appended to the static or dynamic alarm text for a Digital Alarm Limit when the value is false.

Log As Event

When the Value reaches the alarm limit the event will not be indicated and recorded as an alarm with acknowledge state, but instead as an event that just records the one instance of when it reaches the alarm limit.

Time Stamp Offset

The amount of time to offset the alarm timestamp to match a particular time zone.  If you prefer to use Universal Time Code enable the property Use UTC Timestamp under Configure-Options.

Daily Disable

Disable the alarm daily between the Start Hour and Minute and the End Hour and Minute.

Date Disable

Disable the alarm between the Start date and End date.

Units / Hour

The alarm limit for Rate of Change alarms that is specified in Units per Hour.

Use the Sample Rate to determine how frequently to compare the rate of change.

Sample Rate

The sampling rate in seconds on how frequently the rate of change alarm is evaluated.

Acknowledge Alarm Groups

Enable this feature to automatically acknowledge all alarms defined to the alarm groups defined in the property Alarm Groups to Acknowledge. The alarms are acknowledged when the Tag Value transitions from False to True.

If the Tag Value remains True no further acknowledge will occur until the value goes to False and then True again. If you desire to acknowledge all alarms in the local service leave the Alarm Groups to Acknowledge field blank.

Alarm Groups To Acknowledge

When the Acknowledge Alarm Groups property is enabled this is the list of Alarm Groups that will determine which alarms will be acknowledged automatically when the Tag Value transitions from False to True. If you desire to acknowledge all alarms in the local service leave this field blank.

Target Enable Write to OPC Item

Enables the OPC Route feature to send the Tag Value to an OPC Item.

This feature is not required to just write to an OPC Item from a client application. If the Data Source of a Tag is set to OPC Item and write occurs to the Tag the OPC Item will be written to.

The Target feature is mainly used to transfer values from OPC Servers to other OPC Servers or Calculation results to OPC Servers. Often used for remote data transfer over the Internet from OPC Server to OPC Server.

Target OPC Item

The OPC Item to write the Tag Value to.

Target Update Rate

The OPC Update Rate for the Target OPC Item.

Target OPC Access Path

The OPC Access Path of the OPC Item to write the Tag Value to. Most OPC Servers do not require this parameter, only servers that need to have a special topic like old DDE servers that have been converted to support OPC.

Target Float Deadband

For floating point values this is the amount to compare with current value from OPC Item and if within range it does not write a new value. If the source Value is different than the current Target OPC Item value by more than the Float Deadband a write will occur.

Target Write Continuously

When this property is disabled writes will only occur when the source Value is different than the target OPC Item.

When this property is enabled writes will continuously be performed at the rate of Target Write Continuously Frequency even if the source Value is the same as the target OPC Item value.

Note: When this feature is changed either the source Value must change or restart the service for the parameter to take effect.

Target Write Continuously Frequency

The rate at which the value is written to the destination if the continuous writing is enabled.

When this property is enabled writes will continuously be performed at the rate of Target Write Continuously Frequency.

Note: When this feature is changed either the source Value must change or restart the service for the parameter to take effect.

Tag Parameters

Value

Value Parameter

Each Tag has a Value Parameter which acts as the Tag’s value for evaluating alarm conditions. All parameter types can be trended and data logged, but this is usually the default value for those features.

High High Limit Parameter

Each Tag has a High High Limit Parameter which acts as the Tag’s High High Alarm Limit for evaluating alarm conditions from the Value Parameter.  If the value of the Value Parameter exceeds the High High Limit the Tag is considered to be in a High High alarm condition.

High Limit Parameter

Each Tag has a High Limit Parameter which acts as the Tag’s High Alarm Limit for evaluating alarm conditions from the Value Parameter.  If the value of the Value Parameter exceeds the High Limit the Tag is considered to be in a High alarm condition.

Low Limit Parameter

Each Tag has a Low Limit Parameter which acts as the Tag’s Low Alarm Limit for evaluating alarm conditions from the Value Parameter.  If the value of the Value Parameter exceeds the Low Limit the Tag is considered to be in a Low alarm condition.

Low Low Limit Parameter

Each Tag has a Low Low Limit Parameter which acts as the Tag’s Low Low Alarm Limit for evaluating alarm conditions from the Value Parameter.  If the value of the Value Parameter exceeds the Low Low Limit the Tag is considered to be in a Low Low alarm condition.

Digital Limit Parameter

Each Tag has a Digital Limit Parameter which acts as the Tag’s Digital Alarm Limit for evaluating alarm conditions from the Value Parameter.  If the value of the Value Parameter equals the Digital Limit the Tag is considered to be in a Digital alarm condition.

Rate of Change Limit Parameter

Each Tag has a Rate of Change Limit Parameter which acts as the Tag’s Rate of Change Alarm Limit for evaluating alarm conditions from the Value Parameter.  If the value of the Value Parameter changes by more than the Units / Minute limit between samples that are sampled at the Sample Rate the Rate of Change Limit the Tag is considered to be in a ROC alarm condition.

Target Parameter

Each Tag has a Target Parameter that can be enabled to write a value back to an OPC Item. Because each Tag can have another Tag as a data source a Tag value can be transferred to unlimited numbers of OPC Items on both a local OAS Service or on other remote OAS Services.

Delete Group

To delete a Group of the selected Service select the desired Group and perform one of the following:

  • Right click on the Group and select Delete.

Delete Group

  • Use the Delete key on the Keyboard.

To delete all Tags and Groups in the configuration select the top  Tags Group and right click on the top object and select Delete All.

Delete All Tags

Delete Tag

To delete a Tag of the selected Service select the desired Tag and perform one of the following:

  • Right click on the Tag and select Delete.

Delete Tag

  • Use the Delete key on the Keyboard.

To delete all Tags and Groups in the configuration select the top Tags Group and right click and select Delete All.

Delete All Tags

Add Tag

To add a Tag to the Service at the Root Level select the Tags Group at the top and perform one of the following:

  • Right click on the Tags Group and select Add Tag.

Add Tag

  • Or select the Add Tag Button on the Menu Bar.

Add Tag

To add a Tag to a Group select the desired Group and perform one of the following:

  • Right click on the Group and select Add Tag.

Add Tag

  • Or select the Add Tag Button on the Menu Bar.

Add Tag

Add Group

To add a Group to the Service at the Root Level select the Tags Group at the top and perform one of the following:

  • Right click on the Service and select Add Group.

Add Group

  • Or select the Add Group Button on the Menu Bar .

Add Group

To add a Group to a Group select the desired Group and perform one of the following:

  • Right click on the Group and select Add Group.

 Add Group

  • Or select the Group and select the Add Group Button on the Menu Bar .

Add Group

Getting Started MQTT

To interface OAS with another MQTT Client please see the Getting Started MQTT Broker guide.

To send and receive data to a Sparkplug B Edge of Network Nodes see the Getting Started Sparkplug B Host App guide.

To enable OAS as a Sparkplug B EoN Node to interface with Host and Client Applications see the Getting Started Sparkplug B EoN Node guide.

Configure an MQTT Driver

Tags can be defined to connect to MQTT devices and software brokers with the built in MQTT Driver Interface.  The following steps can be used to setup direct communications with a MQTT Broker.

Step 1

OASStart Configure OAS application from the program group Open Automation Software.

Step 2

Select Configure-License and verify that MQTT is one of the available Drivers in the lower left of the form.  If you do not see the MQTT driver available contact support@oasiot.com to update your license.

Enabled Drivers

Note: You will need to be running Open Automation Software Version 8.26 or greater to support MQTT communications.  You can download the latest version at www.openautomationsoftware.com/downloads/open-automation-software/

Step 3

Select Configure-Drivers.

Configure Drivers

Step 4

Select localhost or the remote service you wish to modify with the Select button to the right of the Network Node list.

Network Node

Note: Optionally select the Live Data Cloud node if you are hosting Allen Bradley data over the Internet with a standard Internet connection.

Step 5

Enter a meaningful Driver Interface Name that you will refer to this physical connection when defining Tags with MQTT Source.

Define the properties for the desired physical connection.

Note: You may need to Set Default Network Adapter for Driver Interfaces of the operating system.

Set the driver to MQTT. Enter the IP Address of the broker. The default port is 1883.

MQTT Driver Configuration

Enter the User Name and Password if required.

Keep Alive Time – Default is 60 Seconds.

Reconnect Time – Default 10 Seconds. If the connection to the broker is lost the Reconnect Time determines how long to wait before attempting to reconnect.

Optionally define a secondary failover MQTT Broker if the primary MQTT Broker fails with the property Enable Failover.

If both the primary and secondary broker are offline the Return to Online settings determines the retry frequency.

View Driver Interface Failover for more information and and video demonstrating communications failover.

Step 6

Select the Add button in the lower part of the form to add the Driver Interface as an available selection when defining Tags in the next step.

Add Driver

Note: If you need to define several Driver Interfaces you can use the CSV Export and CSV Import on the toolbar in the upper right together with Microsoft Excel.

Publish Selected Tags to MQTT Broker

There are 2 ways to publish data from OAS to a MQTT Broker.  Both require Tags to be setup first for the data sources you want to transfer.

Note: If you wish to receive data from a MQTT Broker just to Reading Data from MQTT Broker below.

View the following video for a complete demonstration of how to publish data to MQTT Brokers, Azure IoT, and AWS IoT Gateway.

  • 00:00 – Introduction
  • 00:23 – Set up Tags in OAS
  • 00:41 – Configure Azure IoT
  • 01:53 – Publish Selected Tags
  • 05:31 – Visual Studio Code
  • 08:00 – Step by step instructions
  • 08:12 – Bulk Publish to AWS IOT
  • 09:21 – Step by step instructions / Publish Data to AWS IOT Gateway
  • 09:33 – Bulk Publish to mqtt broker
  • 10:29 – MQTT Explorer
  • 11:20 – Step by step instructions/ Getting Started MQTT
  • 11:34 – Save button of the OAS Configuration tool

Step 1

Enable Publish Selected Tags at the bottom of the Driver configuration.

Step 2

Select to publish data continuously at a specified interval, based on event, or at a specific time of day.

IoT Publish Type

If Event Driven browse for a local or remote OAS tag that will trigger the publish.  Select a Boolean tag that will change state from false to true, true to false, or both.  Or choose an Integer tag that trigger a publish anytime the value changes other than 0.

IoT Publish by Event

Step 3

Enable Publish Latest Value Only to send only the latest value of each tag when published or disable to send all value changes since the last time a publish occurred.

Enabled Include All Tags Each Publish to send at least the latest value of each tag when published or disable to only send the tags that have changed since the last publish.

Enable Publish All Tags As One Topic to publish all tag values as one topic or disable to send each tag as its own topic.

IoT Publish Options

See examples in Step 6 below for each selectable option.

Step 4

Specify the Publish Topic Id if choosing to Publish All Tags As One Topic.

Specify the Tag Id, Value Id, an optional Quality Id, and Timestamp Id for each tag value that is sent.

IoT Publish Ids

When including the Timestamp Id also specify the timestamp format, use Custom to specify your own date and time format.

Step 5

Specify local and remote OAS tag variables to include in each publish and specify the Id.  Value is the current value from the data source or you can select any of the over 600 tag variables of each tag to publish.

IoT Publish Tags

Optionally use CSV Export and CSV Import buttons to set up additional tags to publish using Microsoft Excel.

When selecting remote tags use Basic Networking syntax or Live Data Cloud syntax in the tag path.

Step 6

Select Apply Changes to begin publishing to AWS IoT Gateway.  Select Save to save the new driver configuration within the tag file.

Examples:

Examples of publishing every 2 seconds with each tag value changing every second:

IoT Publish Options

Topic: oas_tags
{
  “values”: [
    {
      “id”: “Ramp”,
      “value”: 39,
      “quality”: true,
      “timestamp”: “2022-03-21T08:55:39.000Z”
    },
    {
      “id”: “Sine”,
      “value”: 0.8090169943749475,
      “quality”: true,
      “timestamp”: “2022-03-21T08:55:39.000Z”
    },
    {
      “id”: “Random”,
      “value”: 10,
      “quality”: true,
      “timestamp”: “2022-03-21T08:55:39.000Z”
    }
  ]
}
 
IoT Publish All Value Chagnes
 
Topic: oas_tags
{
  “values”: [
    {
      “id”: “Ramp”,
      “value”: 16,
      “quality”: true,
      “timestamp”: “2022-03-21T09:03:36.000Z”
    },
    {
      “id”: “Sine”,
      “value”: 0.587785252292473,
      “quality”: true,
      “timestamp”: “2022-03-21T09:03:36.000Z”
    },
    {
      “id”: “Random”,
      “value”: 96,
      “quality”: true,
      “timestamp”: “2022-03-21T09:03:36.000Z”
    },
    {
      “id”: “Ramp”,
      “value”: 17,
      “quality”: true,
      “timestamp”: “2022-03-21T09:03:37.000Z”
    },
    {
      “id”: “Sine”,
      “value”: 0.6691306063588583,
      “quality”: true,
      “timestamp”: “2022-03-21T09:03:37.000Z”
    },
    {
      “id”: “Random”,
      “value”: 26,
      “quality”: true,
      “timestamp”: “2022-03-21T09:03:37.000Z”
    }
  ]
}
 
IoT Publish Tag Id Topics
 
Topic: Ramp
{
  “value”: 35,
  “quality”: true,
  “timestamp”: “2022-03-21T09:07:15.000Z”
}
Topic: Sine
{
  “value”: -1,
  “quality”: true,
  “timestamp”: “2022-03-21T09:07:15.000Z”
}
Topic: Random
{
  “value”: 83,
  “quality”: true,
  “timestamp”: “2022-03-21T09:07:15.000Z”
}
 

Use Data Route to Send Data to MQTT

Step 1

See Getting Started – Data Route to define a Target tag in any source tag.

Reading Data from MQTT Broker

Step 1

Select Configure-Tags.

Configure Tags

Select localhost or the remote service you wish to modify with the Select button to the right of the Network Node list.

Network Node

Note: Optionally select the Live Data Cloud node if you are hosting Allen Bradley data over the Internet with a standard Internet connection.

Step 2

Select to Add a Tag.

Note: You can also add organizational Groups as many levels deep as you prefer and add tags to groups.  To do this first add a Group to Tags Group at the root level, then right click on the Group in the right window to add additional Groups or Tags.

Add Group

Step 3

Change the Data Source Tag property to MQTT.

Data Source MQTT

Step 4

Select the correct Driver Interface from the Driver Interface pull down list.

Step 5

Enter the topic.

MQTT Topic

Step 6

Select the Quality of Service.

Step 7

Set the Topic Timeout – 0 = Topic will never timeout. Any number greater than 0 will cause the data to be Bad Data Quality if the broker does not publish within the time frame specified.

MQTT Topic Timeout

Step 8

Select to include Timestamp and or Data Quality to the topic.

This will publish to the specified topic above OAS/Items Sent/Timestamp  and or OAS/ItemsSent/Quality.

MQTT Settings

Configuring the Default Network Adapter

If the communications for the MQTT driver is not working at all you may need to set the default network adapter priority in the operating system.

Step 9

To setup automated data transfer of any OAS Tag to any MQTT Broker see Getting-Started – Data Route and set the Target Destination to MQTT.

Step 10

To define multiple tags use the CSV Export and CSV Import on the toolbar in the upper right together with Microsoft Excel.

Note: You can also programmatically define Tags using the free to use OASConfig .NET Standard assembly,  OPCSystems .NET Framework 4 assembly, or REST API.

Step 11

Select the Save button on the toolbar at the top.

Save Button

Step 12

Create a directory on the local C: drive with the name OASDemo.

Save the file DemoTags.tags in the directory C:\OASDemo.  Of course use the correct path for Linux.

Save Tags

Step 13

Under Configure – Options set the Default Tag Configuration File so when the computer restarts the tag file will automatically be loaded.

View Post

Siemens Address Syntax

Open Automation Software Tags can be defined to connect directly to Siemens controllers with the built in Siemens Driver Interfaces which support communications over Ethernet to S7-200, S7-300, S7-400, S7-1200, and S7-1500.

The following steps can be used to setup direct communications with Siemens controllers:

Syntax

Standard Types:

<Memory Area><Data Width><Address>
<Memory Area><Data Width><Address>.<Bit>

S7-200 Timer and Counter:

<Memory Type><Address>

Data Block:

DB<Number>.DB<Data Width><Address>
DB<Number>.DB<Data Width><Address>.<Bit>

Memory Areas

Memory
Area
Description Bit
Access
Byte
Access
Word
Access
DWord
Access
I,
E
Discrete
Inputs and Image Register
R/W R/W R/W R/W
Q,
A
Discrete
Outputs and Image Register 
R/W R/W R/W R/W
M Internal Memory
Bits
R/W R/W R/W R/W
SM Special
memory Bits
R/W R/W R/W R/W
V Variable
Memory
R/W R/W R/W R/W
T Timer
Current and Timer Bit
R/W
(T.Bit)
no T.Current
R/W
no
C Counter Current
and Counter Bit
R/W
(C.Bit)
no C.Current
R/W
no
HC High-speed
Counter
no no no RO
AI Analog
Inputs
no no RO no
AQ Analog
Outputs
no no RW no
AC Accumulator no no no no
L Local
Variable Memory
no no no no
S SCR R/W R/W R/W R/W


S7-300, S7-400

Memory
Area

Description

Bit
Access

Byte
Access

Word
Access

DWord
Access

I,
E

Discrete
Inputs and Image Register

R/W

R/W

R/W

R/W

Q,
A

Discrete
Outputs and Image Register 

R/W

R/W

R/W

R/W

M,
F

Internal Memory
Bits

R/W

R/W

R/W

R/W

PI,
PE

Peripheral
Inputs

R/W

R/W

R/W

R/W

PQ,
PA

Peripheral
Outputs

R/W

R/W

R/W

R/W

DB

Datablock
Memory

R/W

R/W

R/W

R/W

 

S7-1200, S7-1500

Memory
Area

Description

Bit
Access

Byte
Access

Word
Access

DWord
Access

I,
E

Discrete
Inputs and Image Register

R/W

R/W

R/W

R/W

Q,
A

Discrete
Outputs and Image Register 

R/W

R/W

R/W

R/W

M,
F

Internal Memory
Bits

R/W

R/W

R/W

R/W

DB

Datablock
Memory

R/W

R/W

R/W

R/W

 

Data Width

Data
Width Specifier

Description

Bits

Supported
Data Types

X,
none

Bit

1

Boolean

B

Byte

8

SByte,
Byte, BCD8, String, Structured Types

W

Word

16

Int16,
UInt16, BCD16, WString

D

DWord

32

Int32,
UInt32, BCD32, Single

 

Address

Address is controller family and model dependent. Consult controller documentation for valid ranges.

Bit

Data
Width Specifier

Description

Valid
Range

B

Byte

0..7

W

Word

0..15

D

DWord

0..31

Note: If error code 0x00000005 – Address does not exist or is out of range is returned as a system error uncheck Optimized block access attribute of dbOptimized in the controller program and re-compile and upload to the controller.

Getting Started Siemens

Open Automation Software Tags can be defined to connect directly to Siemens controllers with the built in Siemens Driver Interfaces which support communications over Ethernet to S7-200, S7-300, S7-400, S7-1200, and S7-1500.

Step 1 – Check Siemens License

OAS

Start Configure OAS application from the program group Open Automation Software.

Select Configure-License and verify that Siemens is one of the available Drivers in the lower left of the form.  If you do not see Siemens driver available contact support@oasiot.com to update your license.

NOTE: To configure remote OAS Engines enter the IP Address or node name in the Network Node field and click on Select.

Network Node
Enabled Drivers

Note: You will need to be running Open Automation Software Version 8.0.0.10 or greater to support direct Siemens communications.  You can download the latest version from our downloads page.

Step 2 – Configure Siemens Driver

Select Configure-Drivers.

Configure Drivers

Enter a meaningful Driver Interface Name that you will refer to this physical connection when defining Tags with a Siemens Data Source.

Siemens Driver Interface

Set the Driver type to Siemens.

Siemens Driver Type

Define the IP Address of the controller to interface with.

IP Address

NOTE: When connecting to a S7-200 append the TSAP Local and Remote to the IP Address. Ex: 192.168.1.1.1000,1000. Here is a link to the Siemens Documentation on TSAP: https://support.industry.siemens.com/tf/ww/en/posts/is-tsap-hard-to-understand/26160/?page=0&pageSize=10#top

Select the Processor Type for the controller.

Siemens Processor Type

Select the Link Type.

Siemens Link Type

Set the Rack and CPU Slot number.

Siemens Rack and CPU Slot

Optionally define a secondary failover of controller if the primary controller fails with the property Enable Failover.


If both the primary and secondary controllers are offline the Return to Online settings determines the retry frequency.

View Driver Interface Failover for more information and and video demonstrating communications failover.

Select the Add Driver button above the Driver list in the left pane to add the Driver Interface as an available selection when defining Tags in the next step.

Add Driver

NOTE: If you need to define several Driver Interfaces you can use the CSV Export and CSV Import on the toolbar in the upper right together with Microsoft Excel.

CSV Import and Export

Drivers can also be programmatically assigned with the OAS REST API or .NET Server Configuration interface.

Step 7 – Configure Siemens Tags

Select Configure-Tags.

Menu Configure Tags

Select Add Group to add a group to place tags in.

Add Group
Add Tag Group

NOTE: You can add organizational Groups as many levels deep as you prefer and add tags to groups.  To do this first add a Group to the root level, then right click on the Group in the right window to add additional Groups or Tags.

Tag Group Options

Select Add Tag to add a tag to the group selected.

Add Tag
Add Tag to Group

Change the Data Source Tag property to Siemens.

Siemens Data Source

Select the correct Driver Interface from the Driver Interface pull down list.

Siemens Driver Selection

Specify the Address of the variable to access.

Siemens Address

See Siemens Address Syntax how to define memory addresses.

Example: DB1.DBD1 would be used to access a single float variable from data block 1.

Select the correct Siemens Data Type.

Siemens Data Type

Specify the desired Polling Rate for the Tag.

Polling Rate

To disable communications to the device you can use Enable by Tag to control when communications is active. Leave this property disabled to establish communications at all times.

Enable by Tag

The Device Read property can be used to disable continuous polling and request data on event from the transition from false to true of a value of a Boolean tag. Leave this property disabled to establish communications at all times.

Device Read

Select Apply Changes to make the changes active on the tag.

Apply Changes

Check that the data quality of the tag is Good Quality and the value from the device is returned.

Good Quality

If the data quality is Bad Quality view Troubleshooting Siemens Bad Data for solutions to common errors.

Note: If error code 0x00000005 – Address does not exist or is out of range is returned as a System Error uncheck Optimized block access attribute of dbOptimized in the controller program and re-compile and upload to the controller.

To define multiple tags use the CSV Export and CSV Import on the toolbar together with Microsoft Excel.

CSV Import and Export

When exporting tags choose which columns to include in the CSV file. There are over 800 properties available for use in each tag and reducing the amount of data can help to focus on the properties of interest.

Siemens CSV Export

NOTE: Tags can also be programmatically assigned with the OAS REST API or .NET Server Configuration interface.

Step 4 – Save Siemens Tags and Drivers

Select the Save button on the toolbar at the top.

Load and Save

Enter a file name to be saved in C:\ProgramData\OpenAutomationSoftware\ConfigFiles directory on Windows or ConfigFiles subdirectory on Linux.

When prompted to set the file as the default configuration to load on startup select Yes.

Set Default Tag File

The tags defined are now ready for use in all OAS features like Data Logging, Data Route, and Open UIEngine.