Overview – Networking

Networking in OAS is a core feature and allows you to design your network architecture in the way that best suits your business needs and your desired level of security.

OAS uses TCP communications with encryption and compression to achieve the performance, reliability and security that you need. When data is transported to clients, only the data each client has requested is transferred. Network traffic is minimized by ensuring that the packet size is as small as possible. This is achieved using a compressed binary payload to transfer the value, timestamp, and quality of each tag value to the client. To further optimize the data transfer, once all of the requested values are transferred, only tag value changes are transmitted in the next packet.

Whether you want to run OAS as a single server instance, separate your OT and IT networks, isolate a critical network with one-way communications, or host OAS in a DMZ or internet facing network, the OAS networking features have you covered. There are three key networking methods included with a network enabled license that you can use independently or together to achieve almost any networking topology that you require.

Basic Networking

The Basic Networking method is the most common method and is used whenever your OAS instances have a static IP address, fixed host name or a registered domain name and the instances are reachable on the network. This is a direct and bidirectional method of communication used for OAS Engine to OAS Engine and OAS Engine to client data transfer and configuration.

👉 More information about Basic Networking 🔗

Live Data Cloud

The Live Data Cloud method is useful for allowing clients or OAS Engines on an external network (for example a Public Zone) to communicate with OAS Engines that are within an internal network (for example a Private Zone) and may not always have a fixed IP address. This method is also commonly used to provide external and public clients access to data without exposing internal OAS Engines through the use of a DMZ networking zone.

The Live Data Cloud method works by having an OAS Engine with Live Data Cloud enabled hosted in a network between the private network and the public network, like in a DMZ as mentioned previously, and registering this instance with a registered domain or fixed IP address (for example: iotdata.xyz). The internal OAS Engines will register themselves using an alias in the Live Data Cloud instance. The Live Data Cloud instance will handle the data routing between clients and external OAS Engines and the internal OAS Engines without exposing the internal engines to the public network.

👉 More information about Live Data Cloud 🔗

Unidirectional Network Gateway

The Unidirectional Network Gateway method of communication is used where a networking architecture requires the most secure isolation of networks possible. This method can be used where all standard bidirectional TCP traffic to and from any other network is blocked. This special configuration uses the UDP protocol to ensure that data changes can only flow out of the secure network and never in. The UDP protocol is specifically designed for this type of data broadcasting where no replies from the receiving network are expected.

👉 More information about Unidirectional Network Gateway 🔗

Technical Information

Basic Networking and Live Data Cloud

OAS Engines and clients will poll the OAS Engine for new data every 30ms by default. This can be adjusted in the OAS Configuration tool using Configure > Options > Networking tab. This value should be increased to 100ms if there are more than 100 client connections, and to 1000ms if there are more than 1000 client connections.

On the first poll, all requested tag values are transmitted to the requesting OAS Engine or client.

After the first poll, only data changes are transmitted to the requesting OAS Engine or client.

If a client does not receive a response from the OAS Engine being polled the connection will be considered lost immediately on both the server and the client side.

If you have several remote clients that need the same data from a remote service, a second service can be set up with remote Tags as a data source from the remote service, and all of the clients can communicate with the second service. This would be for all read-only data to reduce the communications from a data source service from a remote location with low bandwidth. Any points that need to be written can be made directly by each client to the remote service.

Unidirectional Network Gateway

All tag values configured in the UDP Broadcast are transmitted to the UDP Receiver instance in each data transfer.

The transmitting node will not know that the receiving node has received the values; thus, store and forward are not supported by this networking method. The receiving node does have an adjustable timeout, so if values for each tag are not received within that specified time, the quality of the local tag will be set to bad quality, indicating a network loss.

Communication Methods by Feature

All features of Open Automation Software including configuration tools and all .NET components support remote connections over your LAN, WAN, VPN, and the Internet. Visit the OAS IoT Network 🔗 page for comparison of advantages over typical cloud networks which are push/pull communications.

Product / Application

Basic Networking

Live Data Cloud

One Way Broadcast

Open UIEngineRead / WriteRead / WriteRead Only
WinForm HMI .NETRead / WriteRead / WriteRead Only
WPF HMI .NETRead / WriteRead / WriteRead Only
Web TrendRead OnlyRead OnlyRead Only
.NET TrendRead OnlyRead OnlyRead Only
Web AlarmRead / AckRead / AckRead Only
.NET AlarmRead / AckRead / AckRead Only
.NET Data ConnectorRead / WriteRead / WriteRead Only
REST APIRead / WriteRead / WriteRead Only
Data LoggingReceive / Store and ForwardReceive / Store and ForwardReceive Only
Alarm LoggingReceive / Store and ForwardReceive / Store and ForwardReceive Only
Alarm NotificationSend / AckSend / AckSend Only
RecipesWriteWriteNot Applicable
Automated ReportsNot ApplicableNot ApplicableNot Applicable
Excel ConnectorRead / WriteRead / WriteRead Only
Data RouteSend / ReceiveSend / ReceiveSend Only
Calculation TagsRead OnlyRead OnlyRead Only
Azure IoT Data HubPublish / Store and ForwardPublish / Store and ForwardPublish Only
Azure IoT Event HubPublish / Store and ForwardPublish / Store and ForwardPublish Only
AWS IoT GatewayRead / Write / Publish / Store and ForwardRead / Write / Publish / Store and ForwardRead / Publish Only
MQTTRead / Write / Publish / Store and ForwardRead / Write / Publish / Store and ForwardRead Only
KafkaRead / Write / PublishRead / Write / PublishPublish Only
OAS OPC DA ServerRead / WriteRead / WriteRead Only
OAS OPC UA ServerRead / WriteRead / WriteRead Only
OAS Configure AppGet / SetGet / SetNot Applicable
.NET Configure InterfaceGet / SetGet / SetNot Applicable
REST API ConfigureGet / SetGet / SetNot Applicable

Visit the Getting Started-Networking 🔗 page for helpful features like network node aliasing in client applications and how to check if your TCP port is open.

Data Destinations

Deliver your data to almost any application or database.




Data Route

Use OAS Data Route when you need to transfer data from one OAS Tag value to another Tag, MQTT Broker, Azure IoT Data Hub or IoT Edge. The Tags can be local or remote. When a Tag is set as a Destination values will be written to the Data Source defined in that Tag.

View the following video for a demonstration of transferring a value from one tag to another:


Data Logging

You can log data to SQL Server, Oracle, Access, MySQL, PostgreSQL, Cassandra, MongoDB, MariaDB, SQLite, InfluxDB, and CSV files based on event, continuously, time of day, or on data change.

View the following video for a demonstration of setting up Data Logging:


Alarm Logging

You can log alarms to SQL Server, Oracle, Access, mySQL, PostgreSQL, Cassandra, MongoDB, MariaDB, SQLite, and CSV files based on event, continuously, time of day, or on data change.

View the following for a quick tutorial on alarm logging:


Alarm Notification

Send alarms via e-mail SMS Text or Voice to users matching specific filter criteria.

View the following to see how to setup alarm limits in real-time tag configuration:


Excel

The OAS Excel Connector product provides connectivity to Microsoft Excel Workbooks for both read and write functionality.

View the following video to learn a simple setup for read and write functions in Microsoft Excel:


Reports

The OAS Report Product can generate reports for HTML web pages, Acrobat Reader PDF files, Microsoft Word RTF files, Graphic TIF files, text files, or even directly to the default system printer.

View the following to learn how to setup automated reports:


OPC Client

The OPC Client Connector product enables unlimited local and remote OPC Clients to communicate with a licensed OAS Service.

View the following video to learn how to connect third party OPC Clients for both local and Internet connections.:


Azure IoT

View the following video for a complete demonstration of how to send live data to Azure IoT Data Hub:


.NET WPF User Interface

The WPF HMI .NET product provides Human Machine Interface .NET controls and real-time data communications components for Windows Presentation Foundation applications.

View the following video to learn how to create graphic operator interface applications with OPCWPFHMI.NET and Expression Blend:


.NET WinForm User Interface

The OPC .NET WinForm HMI .NET product provides Human Machine Interface (HMI) .NET controls and real-time data communications components. The product includes the Windows Services to read and write OPC Items and Tag Parameters and process data to unlimited local and remote applications developed with the OPC Controls components.

View the following video to learn how to create classic WinForm HMI applications using OPCWindowsHMI.NET:


.NET Trend

The OAS .NET Trend product provides real-time trending for WinForm and WPF applications and historical trending when combined with the product feature OAS Data Log.

View the following video to learn how to add a trend window to WPF or WinForm application for local and remote connections:


.NET Alarm

The OAS Alarm .NET product provides the features of viewing real-time and historical alarms on unlimited local and remote systems, alarm logging, alarm notification, and alarm statistics.

View the following video to learnh how to add alarm windows to WPF and WinForm applications for local and remote connections:


Smart Client Deployment

Applications developed with 100% managed components can be executed on remote systems without installing the application itself on the remote systems. This makes application updates extremely simple and provides a better user experience than web applications provide.

View the following video for an overview of Smart Client HMI applications and how they work:


Trend and Alarm Dashboard

View the following video to learn how how to use the Trend and Alarm Historian container. Pre-built application to run locally and remotely:


One Click HMI

Automatically setup Tags, Alarm Limits, Data Logging, Trending, Alarming, and HMI Smart Client in one step:


Web User Interface

The OAS Web HMI provides a flexible, platform-independent way to integrate with Open Automation Software Servers.

View the following video for a demonstration of Web HMI for live data using HTML5, CSS, Javascript, JQuery, and JSON:


Web Alarm

The Alarm Control allows you to retrieve and interact with real time and historical alarms from the OPC Server.

View the following video for a demonstration of HTML5 Web Alarm window for live and historical alarms:


Web Trend

Web Trend allows you to retrieve and interact with real time and historical trend data from the OAS Server.


IOS and Android User Interface

Build iOS, Android, Windows Phone and Universal Windows Platform (UWP) apps in a familiar .NET environment – all with a single shared code base.

View the following video to learn how to create iOS and Android Native Apps for live data read and write access:


Connectors

CHOOSE CONNECTORS

OAS connects to all commonly used industrial and business data sources. Select a data source to learn more about its setup:

  1. Configure Allen Bradley Driver Interface
  2. Configure Tags
    OAS provides multiple ways to configure tags including:

  1. Configure AWS IoT Driver Interface
  2. Configure Tags
  1. Configure Siemens Driver Interface
  2. Configure Tags
    OAS provides multiple ways to configure tags including:

  1. Configure Modbus Driver Interface
  2. Configure Tags
    OAS provides multiple ways to configure tags including:

  1. Configure MQTT Driver Interface
  2. Configure Tags
    OAS provides multiple ways to configure tags including:

  1. Configure MTConnect Driver Interface
  2. Configure Tags
    OAS provides multiple ways to configure tags including:

  1. Configure Sparkplug B Driver Interface
  2. Configure Tags
    OAS provides multiple ways to configure tags including:

  1. Configure OPC UA Driver Interface
  2. Configure Tags
    OAS provides multiple ways to configure tags including:

Connect to OPC Clients like WinCC Cimplicity, RS View etc. by making OAS tags available as OPC items. Sample client Add OPC items from OPC Server Our OPC server makes OPC items to connect to

Connect OAS local and remote tags to OPC UA Clients.

Use the OAS Excel Tag Browser application to browse OAS tags and enable OAS read / write values from/to an Excel workbook

Use the Configure Recipes interface to configure data transfer from databases to OAS data sources. The data target can be from local or remote OAS Services of Tag Parameter Values. Execution can be continuous or event driven from a Tag Parameter value, or at a specific time of day.  The database providers can be SQL Server, Access, Oracle, mySQL, PostgreSQL, InfluxDB, MongoDB, MariaDB, SQLite, and more.

Add real-time read data to a C#, C++, or Visual Basic.NET WPF, WinForm, or Windows Service application. It is a very powerful method to make any data from a .NET application become a realtime data source.

Read local and remote data from the Open Automation Software realtime database tags where the data source is a web application or web service. You can make use of the OAS products Web HMI, Web Trend, Web Alarm or for greater control use the OAS REST API or the HTTP API.

Create cross platform communication drivers to deploy locally or remotely with custom configuration and optional automated setup.

Connectors are configured using the OAS Configuration tool or the OAS APIs.

Connectors Overview

Modbus Data Source

If your data source is a Modbus slave device with either Ethernet or Serial physical interface with Modbus TCP, Modbus RTU, or Modbus ASCII protocol use Configure-Drivers and Configure-Tags to setup communications to the devices.

Refer to Getting Started Modbus under System Configuration-Tags for a quick guide on how to set it up.

Allen Bradley Data Source

If your data source is an Allen Bradley controller use Configure-Drivers and Configure-Tags to setup communications to the devices.
Refer to Getting Started Allen Bradley under System Configuration-Tags for a quick guide on how to set it up.

Siemens Data Source

If your data source is a Siemens controller use Configure-Drivers and Configure-Tags to setup communications to the devices.
Refer to Getting Started Siemens under System Configuration-Tags for a quick guide on how to set it up.

MQTT Data Source

If your data source is MQTT use Configure-Drivers and Configure-Tags to setup communications to the devices.
Refer to Getting Started MQTT under System Configuration-Tags for a quick guide on how to set it up.

Sparkplug B Data Source

If your data source is a Sparkplug B Edge of Network Node use Configure-Drivers and Configure-Tags to setup communications to the devices.
Refer to Getting Started Sparkplug B Host App under System Configuration-Tags for a quick guide on how to set it up.

Note: OAS can also act as an Edge of Network Node as a data destination to publish data to a Host and receive Metric values with a NCMD or DCMD command.

MTConnect Data Source

If your data source is MTConnect use Configure-Drivers and Configure-Tags to setup communications to the devices.  The MTConnect driver will automatically generate OAS Tags based on the MTConnect device information received from the Live Data Url.

Refer to  Getting Started MTConnect under System Configuration-Tags for a quick guide on how to set it up.

OPC Server Data Source

If your data source is an OPC Server use Configure-Tags to define a Tag with a Data Source of OPC Item or you can use DirectOPC from the database.
For a detailed presentation of connecting to OPC Servers view the following video:

View Getting Started OPC Server and also the reference for Tags in this help file.

OPC UA Server Data Source

If your data source is an OPC UA Server use Configurat-Drivers and Configure-Tags to define a Tag with a Data Source of OPC UA.

View Getting Started OPC UA Server and also the reference for Tags in this help file.

OPC Clients Data Source

If your data will be coming directly from an OPC Client you can implement the OPC Client Connector product feature which supports local and remote OPC Clients without DCOM.
View the following 4 minute video on OPC Client Connector:

View the OPC Client Connector Quick Start and reference on OPC Client Connector in this help file.

OPC UA Clients Data Source

If your data will be coming directly from an OPC UA Client you can implement the OPC Client Connector product feature which supports local and remote OPC UA Clients to connect to local and remote OAS Tags.
View the Getting Started – OPC UA Client reference.

Microsoft Excel Data Source

You can use Microsoft Excel as a data source for Open Automation Software with the product feature OAS Excel Connector.
View the following video on  OAS Excel Connector:

View Getting Started OAS Excel Connector and reference on OAS Excel Connector in this help file.

Databases Data Source

You can use SQL Server, Oracle, Access, and MySQL as a data source for Open Automation Software with the product feature Recipe.NET.
View the following 27 minute video on Recipe.NET:

View the Getting Started Recipe.NET and reference on Recipe.NET in this help file.

.NET Applications Data Source

By implementing a Windows Service, WinForm application, HTML application and WPF application as a data source the type data to be able to share with Open Automation Software is almost unlimited. This is implemented with the data component from OPC .NET WinForm HMI .NET.

Universal Driver Interface

Create your own driver for OAS that can be deployed either locally or remotely, even for cross platform support.
See the UDI Technical Overview for an introduction and follow the Create a Driver help topic for step by step instructions.
For an overview of a UDI example view the following video:

Calculations

How to setup math equations and logic as a Data Source with the built-in Calculation engine for all products.

View the Getting Started – Calculations reference guide.

Data Route – Data Transfer

How to setup automated data transfer from one source to another locally or over on your LAN, WAN, and Internet.

View the Getting Started – Data Route reference on how to define targets from source tags.

HTML Web Application

OAS communicates with HTML-based applications using JSON over HTTP/S.

API Access

OAS provides the following API access for integrating with custom clients and for full programmatic access to live and historical data:

  • REST API – The OAS REST API exposes functionality for reading and writing real-time and historical Tag Data, Trend Data, and Alarms. Additionally, the API can be used for managing OAS Server configurations.
  • HTTP API – Make HTTP calls using JSON data structures

.NET Application Data Source

The .NET Data Connector product can be implemented to turn your .NET code variables into live data for the OAS Engine. The WriteTags method is used to pass in an array of tag name, array of values to write, and optionally timestamps to maintain 100 nanosecond resolution to the final destination from the OAS Engine.

The OASData.dll assembly is a .NET Standard 2.0 assembly which enables read and write access to all OAS Engines running locally or remotely.

Applications can target the following frameworks.

  • .NET 5
  • .NET Core 2.o or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater

The same access can also be provided in the legacy assemblies for Framework 4.6 or less using the legacy assembly OPCSystemsDataConnector.dll.

The OAS Example Service Code is a working example of reading and writing tags synchronously and asynchronously.  This includes example projects for both C# and VB for .NET Core Console App to run on all operating systems including…

  • Linux
  • Windows
  • Mac
  • Android
  • iOS

There is also C# and VB projects to run as a Windows Service.  The code examples in all 4 projects are the same to show adding tags programmatically and the asynchronous and synchronous methods for reading and writing data.

Refer to .NET Realtime Data Access for details on all methods supported

Visualization – .NET Application

The OAS .NET products provide Human Machine Interface .NET controls and real-time data communications components for Windows Presentation Foundation (WPF) and WinForm applications.

HMI applications can be developed using Microsoft Visual Studio 2010 (or later), Xamarin or Microsoft Blend.

  • WPF HMIAdd visualization to a C#, or Visual Basic.NET application using WPF
  • Winform HMI Add visualization to a C#, or Visual Basic.NET application using WinForm
  • .NET Trend Add real-time trending for WinForm and WPF applications and historical trending when combined with the product feature OAS Data Log
  • .NET Alarm View real-time and historical alarms for WinForm and WPF applications
  • Realtime Data Access – Programmatic Reference write local and remote data of the Open Automation Software realtime database tags

More:

Visualization – HTML Web Application

OAS communicates with HTML-based applications using JSON over HTTP/S. Creating applications is straightforward – code a custom interface then add OAS Javascript libraries and OAS specific code.

  •  Web HMI – create user interfaces to display and interact with real time server data, enabling a whole range of applications on any device with a web browser.
  • Web Trend – add real time animated charting to display server tag values on any device with a web browser.
  • Web Alarm – retrieve and interact with real time and historical alarms from the server.

API Access

OAS provides the following API access for integrating with custom clients and for full programmatic access to live and historical data:

  • REST API – The OAS REST API exposes functionality for reading and writing real-time and historical Tag Data, Trend Data, and Alarms. Additionally, the API can be used for managing OAS Server configurations.
  • HTTP API – Make HTTP calls using JSON data structures

More:

Getting Started – CANBus

Open Automation Software Tags can be defined to connect directly to devices using the CANBus standard using OAS built in CANBus Driver Interfaces.

The following steps can be used to setup direct communications with controllers using the CANBus standard.

Step 1

Getting Started-Tags 1Start Configure OAS application from the program group Open Automation Software.

Step 2

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

Getting Started Modbus 1

Note: You will need to be running Open Automation Software Version 8.0.0.10 or greater to support direct CANBus communications.  You can download the latest version here.

Step 3

Select Configure-Drivers.

Getting Started Modbus 2

Step 4

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

Getting Started Modbus 3

Note: Optionally select the Live Data Cloud node if you are hosting CANBus 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 a CANBus Data 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.

Note: Set the Driver to CANBus.

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.

Getting Started Modbus 6

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.

Step 7

Select Configure-Tags.

Getting Started Modbus 7

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

Getting Started Modbus 3

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

Step 8

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 the root level, then right click on the Group in the right window to add additional Groups or Tags.

Getting Started-Tags 8

Step 9

Change the Data Source Tag property to CANBus.

Step 10

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

Step 11

Specify the desired Polling Rate for the Tag.

Specify the Address of the variable to read and write to.

Step 12

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 OPC Systems component as demonstrated in the Form FormConfigureCSV in the WinForm Example Code application that installs with Open Automation Software in the Program Group Open Automation Software.  This component can be used in any .NET application includes Web Services, Windows Services, WPF Applications, and ASP.NET or .NET MVC Web Applications.

Step 13

Select the Save button on the toolbar at the top.

Getting Started-Tags 19

Step 14

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

Save the file DemoTags.tags in the directory C:OPCSystemsDemo.

Getting Started-Tags 20

Step 15

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