IoT Publish

IoT publish

Open Automation Software is excited to announce it’s new IoT Publish feature for Azure IoT, AWS IoT Gateway and MQTT

IoT Publish

With Open Automation’s IoT Publish you can configure tags from a single or multiple data sources in OAS and publish them to Azure IoT, AWS IoT Gateway or an MQTT Broker. Tags can be published to a single topic or to multiple topics (one for each tag). Publishes can be scheduled to happen at a certain time of day, be event driven with a trigger tag and can also be continuous. The configurable publish interval setting allows you to publish at a specified rate.

Data is sent to Azure, AWS or MQTT as JSON packets which include device id, topic, tag id, quality and timestamp. Options are available to change the key names and to send without quality and/or timestamp. Timestamp can be formatted in ISO 8601, Unix seconds or milliseconds, Ticks or you can customize your own. Additional options are available to publish the latest value only and to include all tags in each publish or only those whose value has changed.

The Store and Forward feature of OAS can be turned on to prevent data loss in case of communication failure. If a communication failure occurs, OAS will buffer the data on your hard drive in the directory that you specify until communication is restored. Then it parses the data out to your destination.

For step by step instructions for the IoT Publish, watch the video below:

Supported Data Sources

  • Allen Bradley
  • Modbus
  • Siemens
  • OPC UA
  • OPC DA
  • MTConnect
  • OPTO-22
  • Rest API
  • Database
  • HMI
  • Other IoT Endpoints

Below are some examples of what the published data will look like with different options selected:

Publish All Values as One Topic Publish Latest Value Only as One Topic Publish Each Tag as a Separate Topic
{
“deviceId”: “OASIOT”,
“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”
}
]
}
{
  “deviceId”: “OASIOT”,
  “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”
    }
  ]
}
{
  “deviceId”: “OASIOT”,
  “id”: “Ramp”,
  “value”: 35,
  “quality”: true,
  “timestamp”: “2022-03-21T09:07:15.000Z”
}
{
  “deviceId”: “OASIOT”,
  “id”: “Sine”,
  “value”: -1,
  “quality”: true,
  “timestamp”: “2022-03-21T09:07:15.000Z”
}
{
  “deviceId”: “OASIOT”,
  “id”: “Random”,
  “value”: 83,
  “quality”: true,
  “timestamp”: “2022-03-21T09:07:15.000Z”
}

The Power of an Open Architecture

A comparison of features and benefits of an open architecture platform vs. an off-the-shelf solution for Industrial Automation and IoT

In Information Technology it has become almost axiomatic that it’s cheaper to purchase an off-the-shelf solution instead of building your own application from scratch. A custom piece of software can very expensive because it is being built for a single purpose and with one customer in mind. It usually takes much longer to get up and running and to work out all of the bugs.  But developing custom software is still embarked upon because it comes with some significant benefits, especially if you are an OEM, interested in reselling the solution.

What if there was a software platform that provided the benefits custom development, but also mitigated the risks of rolling out your own solution, and even dramatically reduced costs over time?

So let’s explore this a bit further, breaking down the pros and cons of both custom development  and off-the-shelf products. We’ll then demonstrate how the OAS Platform is unique in the IIoT space and what an open architecture can do for you.

Off-The-Shelf Products

The pros and cons of off-the-shelf (OTS) or “canned solutions”, which may still include some tools for designing HMI screens and logic, but within proprietary environments.

PROS

Rapid configuration

One of the most attractive features is the relative ease at which OTS products can be configured and deployed since the feature set and tools are well-defined.

Built-in tools and applications

In order to speed up and simplify deployment, most OTS products include many tools for creating things like HMIs, and often have full-blown applications ready to be used in production.

Generally well-supported

Coming from many well-established companies, these products usually come with a team of support personnel and documentation, which usually comes at an additional cost.

Great for demos or proofs-of-concept

When an OTS platform is narrowly focused on a solution domain, and when tools and applications are proprietary, these products are impressive during tightly controlled demos. Little or no programming is required to get up and running.

CONS

Difficult (or impossible) to customize

Once you start using these products, you’ll quickly find that you need some functionality that they do not provide within the basic toolset. So then you must resort to using APIs with some custom development to
extend them. Other times, customization is not even possible.

Strict licensing, difficult for OEMs

To protect their intellectual property and branding, software vendors tend to limit OTS platforms by the number of users connected to them, and it can become very expensive and restrictive very quickly for OEMs, making it difficult to fit these products into your business model.

Proprietary data format

Another way license restrictions are enforced is to lock down the data within the system. OTS vendors provide tools for importing or exporting data, but the data is usually stored in a proprietary format.

Proprietary tools and user interfaces

If your requirements are to generate an application with a specific user interface, you may find an OTS solution limiting. Many of them provide a large library of symbols and objects, but your application will
look like many others, and will unlikely include your own company branding. You’re also required to use the vendors tools for configuration and modification.

Specialists are expensive and scarce

OTS vendors generally sell to a niche market, so while the install base and investments may be large, the actual number of individuals with the skills to use the software is a small pool relative to the global software and IT community. Few consultants have the necessary skill to work with each OTS product, and if so, come at a high price even when they are available.

You’re paying for features you don’t need

Most of these products have wide variety of features, but since they’re developed for most situations and not just yours, you end up paying for features you will never use. During an evaluation of an OTS product, the number and depth of features is a selling point, but are rarely ever used in production.

Custom Development

The classic alternative to off-the-shelf products is a fully customized application developed from the ground up. Like a well-tailored suit, this can be the best fit for your needs, but comes with its own challenges. And just like a well-tailored suit, custom software development doesn’t always respond well to size and scope changes.

PROS

Fully Customizable

Since the solution is developed for your specific needs, it can contain any feature you require and nothing else

Open data formats

You can choose your data store, and are not locked into proprietary tools for import/export, or license restrictions on your own data.

Affordable and highly available resources

Choosing your own development languages and tools also means that you can create your custom solution using ubiquitous technologies. Software engineers and consultants are abundantly available at reasonable prices.

No licensing restrictions

If the solution is yours, your only licensing restrictions would come from any contracts established with your development team and any underlying technologies utilized in the development of the architecture.

Use any data source and data store

Utilizing APIs and communication protocols within custom development means that almost any device and data source can be integrated. Also, every open data store can be used and even mixed within a custom solution. This makes the underlying data available at any time for real time monitoring, historical analysis, and reporting using the tools of your choice.

Can host any user interface

Since the data is open, this also means any possible user interface can be developed, with your own company branding, which is necessary for OEMs and software resellers.

CONS

Upfront development may be required

With a custom solution, there’s no avoiding it. The software needs to be developed and tested before it can be rolled out into production.

No built-in user interface or apps

Because you’re starting with a blank slate, you can have any interface you would like, but that means none exist. All of the interfaces and tools need to be created.

Requires customization when requirements change

If your company grows, your requirements change, or you realize that your original assumptions were not entirely correct, the solution must be modified. Whenever a custom solution needs modification, that usually means more custom development, unless the modifications were planned upfront.

A Third Way: The Open Architecture

The OAS Platform is a robust alternative for building an Industrial Automation or IoT solution. The Platform mitigates many of the risks of pure custom development, while still offering all of the advantages of a custom solution. How is this possible? OAS provides a robust and scalable networked platform that can be connected to data sources and data stores, all through a set of configuration applications. At the same time, the OAS platform exposes a series of APIs and developer tools for the creation of custom applications and the complete automation of the entire system. The following are just a few of the features OAS offers:

Universal Data Connector

The UDC is a server platform that manages connectivity to devices, databases, file systems and more. It also includes native drivers for many standard PLCs and IoT components that can be connected and configured with no programming required. The UDC is able to be networked with other instances, distributing and aggregating data as needed at the fastest speeds possible.

Learn more about the Universal Data Connector

Flexible licensing for end users and OEMs alike

The OAS Platform offers flexible licensing. Whether you are an automation engineer, systems integrator, or software developer looking to use the platform as a component of your own products, OAS licensing can be adjusted to meet your needs. Licenses are based on the number and type of data sources being connected, not the number of clients connected.

Learn more about OAS Platform Pricing 

Open data model

Your data is your data, so when the OAS platform moves data between source and destination, or when the data is stored in a database, it is always available in open formats. No proprietary tools are required, and no additional licenses are needed just to read or even move that data using other tools that you prefer.

Learn more about Device and Data Connectors 
Learn more about the Data Historian 

Automated configuration and deployment

Every aspect of the server configuration can be automated using the various APIs that are exposed for .NET and REST clients. This means an OAS Platform can be programmatically configured and deployed, dramatically reducing costs for rolling out new installations when your organization or install base grows.

Learn more about OAS Developer Tools and APIs 

Infinitely customizable using open development tools and APIs

Access to the OAS APIs and development components is available using open tools and with popular development environments and languages. Desktop applications can be written in any .NET language using Visual Studio. Many visual components are provided for both WinForms and WPF for real time data access and control, as well as for Trend and Alarm visualization. Web application developers can use the Web HMI, Web Trend, and Web Alarm products to deploy web-based visualizations on any web platform and any web browser, desktop or mobile. And using the .NET Core Components, native iOS and Android applications can be integrated into your solution.

The UDC also exposes several APIs for automation and customization. Software developers are free to build their own user interfaces using completely custom code, or they can use the many tools and controls provided for desktop, web, and mobile applications.

Learn more about OAS Developer Tools and APIs 

Highly available and affordable resources

Because the OAS Platform can be configured and automated using open development tools and popular languages, it becomes much more affordable to apply resources to your next project. The pool of .NET and web developers available is one of the largest in the IT market, so ongoing maintenance risks are greatly reduced as well.

Open Visualizations with OAS

Are you constrained by your current HMI builder tools?
Are you facing burdensome licensing costs with your current solution?
Is it difficult to customize your visualizations to meet your specific needs?

These are but a few problems you may be faced with when you’re locked into using a proprietary or “canned” HMI solution. Of course, every product has its benefits, and your current solution is no exception. Proprietary solutions do a great job of getting you up and running quickly, and are geared towards developing visualizations with little or no programming skills. But these benefits come with a cost: lock-in.

In order to develop these drag-and-drop or non-programmatic HMIs, vendors supply proprietary tools and deployment platforms. You’re often restricted on what type of visualization you can create within their sandbox, limited on what applications you can share data with, and you can rarely integrate with your own custom graphics and applications.

The solution? An open architecture such as the OAS Platform.

When a product uses an open architecture, you can use commodity servers, development tools, and they are built from the ground up for integration. The OAS Platform even exposes multiple APIs for automation and data visualization development in ANY application platform and language.

Benefits of Open Visualization

  • Ubiquitous or common skills needed to develop a visualization
    With an open platform, you can build a team from the millions of developers and consultants with .NET and web application development experience. Common languages and popular development tools are all supported such as C#, VB, Javascript, Python, Visual Studio and your favorite code editor.
  • Licensing and distribution costs are dramatically lower
    Incremental costs can typically be capped when adding new clients or screens. The OAS Platform allows for unlimited client connections with no additional fees or per-seat charges, so you’re free to expand without breaking the bank.
  • No limitations on the type of visualizations possible
    Using common tools for developing your own symbols and screens, or using any 3rd party set of graphics, you can now create the screen you need and not just settle for what your HMI builder supports. Create images and symbols in popular graphics editing suites, 3D modeling packages, or anything that can produce standard files such as JPG and PNG to be used in Windows, web, and native applications.
  • No vendor lock-in
    You are free to integrate existing products for the best solution. Don’t get rid of what you already have, enhance and improve it by integrating an Open Visualization.

How-to Develop an Open Visualization

Step 1: Connect your data to the OAS Platform

The OAS platform supports connectivity to virtually any data source through options such as native device drivers, database access, or API integrations

Step 2: Organize your data structures

Configure, aggregate, and organize your data points within the OAS Platform allowing you to expose them through APIs and Developer Tools for .NET, web, and REST API clients on any platform.

Step 3: Connect your visualizations

Display dynamic, real time and historical data in your custom visualizations. Build native apps for Windows as well as iOS and Android mobile devices in .NET and Xamarin. Build cross-platform web visualizations using any web application environment and any browser. Build custom integrations and visualizations on any platform using the REST API.

OAS: the Customizable IIoT Platform for OEMs

OAS Customization

OAS CustomizationWith OAS, OEMs and systems integrators can build custom solutions for automation and monitoring

Original Equipment Manufacturers (OEMs) and system integrators need a platform that minimizes integration efforts while maximizing flexibility. When developing a solution for resale, it must meet the individual needs of many customers. Each installation comes with its own unique challenges. Many other products allow for connectivity between systems and provide tools for doing so. Yet they often lack either full customization options or licensing that hinders products from being viable. The OAS Platform is a clear advantage in terms of connectivity, customization, and flexible licensing.

Unparalleled Connectivity

Native Device Drivers
OAS includes native drivers for Allen Bradley, Siemens, and MODBUS devices, as well as the ability to move data from OPC servers and clients. Using native drivers, data transfer speeds are maximized over the use of intermediate OPC servers.

Databases
Built into the OAS Platform are database drivers for high speed logging to MS SQL Server, Oracle, MySQL, PostgreSQL, MongoDB, SQLite and more. Additionally, using the Recipe feature, OAS can consume data from any supported database for real time data access

Non-standard or Proprietary Interfaces
Using the OAS Universal Data Interface (UDI) you can write drivers that read and write data from proprietary or non-standard APIs and applications. These are first-class drivers within the OAS Platform and can then be configured visually or programmatically within the built-in tools.

Customization Features

SDKs for Any Development Platform
Whether you are a .NET or Web developer, and no matter what language or development platform you prefer, OAS has solutions for the creation of fully customizable HMIs or user interfaces. Included with every installation of the OAS platform are components and libraries, and with the OAS REST API real time and historical data can be delivered to any client. Additionally, the full platform can be programmatically configured to ease rollouts or to support your own custom configuration tools.

Private Labeling for Configuration Tools
With a simple configuration file, the built-in configuration applications can be branded with your company logo, documentation, and titles. This allows you to ship a packaged product to your customers that maintains your company brand and messaging.

Deployment Flexibility
Networking is at the core of the OAS Platform, so you’re free to build a solution that features independent installations at customer sites. You can also deploy OAS so that data is centrally managed within your own company. Or, you can choose a hybrid approach to get the best performance and control of your data. OAS even has server runtimes for both Windows and Linux so you can work with the greatest number of customers and cater to their architectural preferences.

Licensing

The OAS Platform is licensed at the data source and based on the features and number of data points being tracked. This means that unlimited clients and applications can access the data with no additional cost. Also, all of the configuration tools can be used from any number of local or remote clients with no additional cost.

Learn More

If you’d like to discuss how OAS can be an integral part of your custom solutions, contact us at any time to schedule a demo or to speak with our sales team for more information.

REST API Configuration

Programmatic Setup of OAS Configurations

OAS REST API Configuration

Open Automation Software now support all configuration properties through the OAS REST API.  This allows you to develop automated configuration of OAS servers using any language or platform. Configuration through the REST API is a free feature included in all OAS engines. Now you can read, write, and update individual configurations, or create bulk configurations in a single call. This includes Tag creation, Communication Drivers, Data Logging, Security, and more.

Visit https://restapi.openautomationsoftware.com to view syntax for all available configuration types under the Server Configuration folder.

  • Tags
  • Drivers
  • Data Logging
  • Alarm Logging
  • Alarm Notification
  • AE OPC Servers
  • Save and Load Configurations
  • Reports
  • Recipes
  • UDP Broadcast/Receive
  • Security and Users
  • Live Data Cloud
  • Global Server Options

View the Getting Started – REST API article in our knowledge base to view and easy to follow guide on how to get connected with OAS configurations and a video on what is REST API and how to access live data.

View the following video on how to interface with live data for both read and write access from data sources like Modbus, Allen Bradley, Siemens, MQTT, OPC UA, AWS IoT, and several other Industry 4.0 data sources.

IoT Unidirectional Network Gateway

IoT Communication Diode

Secure your data with Communications Diodes

Communication diodes are used to protect data on a network to allow network traffic only one way.  This eliminates the threat of cyberattacks and access to intellectual property.  Customers rely on OAS to transfer selected real-time KPIs through communication diodes 

The OAS Unidirectional Network Gateway feature was designed and published in 2005 for our nuclear power customers to transfer OPC data from 20 different nuclear reactors for data collection and visualization.

Unidirectional Network Gateway

This unique network feature of OAS has been adopted by manufacturing and municipality organizations to protect their control systems from attack with data diodes in place to protect their assets.  All OAS data sources including Modbus devices, Allen Bradley PLCs, Siemens controllers, OPC UA, MQTT, and .NET applications can be shared to applications of the protected network securely.  The data that is received outside of the DMZ can be achieved, visualized in Web or .NET applications, generate alarm notifications, or transferred to third party cloud systems like AWS IoT Gateway and Azure IoT Data Hub.

Security and Flexibility

The broadcast server can be set to transfer all live values from the local system or be set to transfer a selected list tag variables from other OAS servers within the organizations DMZ.  Each broadcast server can target multiple receiving servers and each receiving server can process data from multiple broadcast servers providing a possible many to many network configuration.

More:

Other OAS Network Options

Getting Started – Unidirectional Network Gateway

Ten Common IIoT Points of Failure and Ways To Avoid Them

10 IIoT Failures

Industrial Internet of Things (IIoT) applications’ data accuracy and reliability are highly dependent on the uptime of several factors.  Many solutions work perfectly well under normal circumstances, but only those systems designed to anticipate and respond to failure are appropriate for industrial applications.

Failure is not fatal, but failure to change might be.
– John Wooden

Typical Industrial System Architecture

Deploying Open Automation Software as an Edge solution can help to avoid data loss and downtime due to communication breakdown, database failures, network loss, and application errors. First, let’s take a look at a typical end-to-end industrial application and all of the possible points of failure. In this example, the system consists of a data source, PLC, data server, database, and finally an application or HMI reading data from the data server. Each component and connection is a potential source of failures.

10 IIoT Points of Failure
(1)Data SourceIndustrial equipment generating data or being controlled
(3)PLCa logic controller collecting and tracking data from the source
(5)Data ServerSoftware used to monitor, log, and expose data to external applications
(8)Databasethe location of historical data logged by the Data Server
(10)Application or HMIAn interface intended to present the data to end-users for monitoring and control
(2)(4)(7)(9)CommunicationsAll communications channels between system components

Now, let’s explore all of the possible ways a system can fail and how using the OAS Platform as your Data Server can mitigate these failures. In most cases, OAS can even prevent data loss and increase availability of data to end-users.

Communications And Data Source Failures

Points of Failure

IIoT Communication Failure
Communication Failure

1 – Equipment

Equipment can be down due to scheduled maintenance or components of the physical systems can fail causing production to be stopped.

2 – Sensor Failure

In the case of instrumentation failure the sensor data will be in error and will be collected with bad quality flags, indicating the data is not reliable and should not be used.

3 – Controller Failure

PLCs and controllers can lose power without a backup power supply in place, or can be set in offline mode to update control programs.

4 – Controller Communications Failure

A failure in network communications to the controller or OPC server can cause a loss of data during production.

Solutions

IIoT Communication Redundancy
Communication Redundancy

1 – Automated Switchover

Open Automation Software (OAS) can disable and enable communications based on data quality or from other independent signals using the property Enable Communications from Tag.

2 – Switch Value Source from Quality 

To account for equipment or sensor failure redundant equipment should be in place as alternate data source.

OAS has the ability to automatically switch or override a data source with the property Source When Bad to one of the 4 following options.

  1. Report as Normal Bad Quality
  2. Hold Source to Last Good Quality
  3. Set Source to Default Value
  4. Set Source to Alternate Tag Value

3 – Driver Interface Failover

OAS has built into each driver interface the ability to define a failover IP address or url to account for failures in communications with Modbus devices, Siemens S-7 controllers, Allen Bradley PLCs, MQTT Brokers, AWS IoT Gateways, MTConnect data streams, OPC DA Servers, and OPC UA Servers.  Read more about Driver Interface Failover and how to easily setup automated communication backup.

4 – Buffer Data in Controller

The OAS data historian has built in handshaking support to obtain buffered data within the controller and pass back confirmation for data synchronization with the controller.  Read how to Log Buffered Data from a PLC or Controller which is also applicable for OPC DA and OPC UA Servers as well.

 

Data Server Failures

IIoT Server Failure
Server Failure

5 – Server or Network Failure

A server hardware or network failure can cause a data server to become unreachable.

6 – Offline Configuration

Some IIoT gateways do not permit online changes, possibly due to a custom application that needs to be compiled, or long delays can be caused during software updates.

IIoT Server Redundancy
Server Redundancy

5 – Redundant Servers

OAS can be deployed in parallel for as many redundant servers as desired, each having the same configurations with the ability to automatically enable or disable communications, archiving, and notification based on which server is the master.  Read more about OAS Redundancy.

6 – Online Configuration

OAS permits changes to all configuration attributes while a system is operational eliminating the need to take a system down.  OAS supports manual, CSV import, and programmatic updates via .NET or REST API.  OAS also has built Automated Update feature to upgrade OAS platform reducing downtime for a complete update.

 

Database Failures

IIoT Database Failure
Database Failure

7 – Database Engine or Network Failure

Uptime is critical in data archiving to build accurate data models, maintain faultless production data, and validate operations performance.  Logging data remotely can cause a loss in data if the data historian does not have data buffering to account for temporary loss in communications to the database engine.

8 – Database Performance

Valid IIoT data collection systems work on a first-in-first-logged order or processing, but can get behind when there is a burst of data to log, often leading to a loss in data.

IIoT Database Store and Forward
Database Store and Forward

7 – Store and Forward

OAS data logging and alarm logging have Store and Forward built into the buffer data to a local disk for as long as the database engine is not reachable.  See OAS Store and Forward in action in the 10 Things Your Data Historian Should Do video.

8 – Bulk Inserts and Parallel Processing

OAS implements the most efficient methods to insert records to a database providing database engines to run remotely being able to insert over 1,000,000 records per call.  See Data Historian Performance Benchmarks comparing SQL Server, Oracle, mySQL, MariaDB, PostgreSQL, MongoDB, and SQLite, MSSQL providing the best performance with OAS logging over 2,000,000 values per second.  OAS also support more than 10,000 logging groups per server each logging to a separate table.

 

Interface or HMI Failures

IIoT Application Failure
Application Failure

9 – Client Network Failure

During network failure between the client application and the server can leave operators and supporting applications operating without the information needed to make informed decisions.

10 – Client Application Failure

Client application failures can leave operations personnel and production managers void of the data needed to operate safely and reliably. 

IIoT Application Redundancy
Application Redundancy

9 – Client Application Failover

All OAS .NET assemblies for programmatic interface and visualization support Client Application Failover to automatically switch from primary server to backup server on network failure or signal failure.

10 – Unlimited Clients

OAS is deployed in Distributed Network Architecture to support unlimited client applications per server.  


Read more about OAS Platform features for system reliability:

OAS Performance

OAS Performance

Open Automation Software processes data with high efficiency and speed to maintain data accuracy and reliability.

OAS can run on multiple platforms with large scalability,  from 100,000 tags on Raspberry Pi 4 up to 1,000,000 tags on Windows or Linux server.  Deployed as an edge in a Distributed Network Architecture OAS can pre-process all incoming data and deliver to the final destination for unlimited number of tags to unlimited clients.

To emphasize the scalable performance of OAS the following video demonstrates 100,000 tags running on a Raspberry Pi 4 with all tag values changing each second and then logged to a SQL Server database.

Performance Variables

Open Automation Software addresses typical deadlocks, bottlenecks, and poor synchronization found in other applications that can cause data loss or system failure.

Factors Which May Impact Software Performance

Synchronous Processing

Synchronous or poorly-scaling architectures, forcing systems to block and limit throughput.

Single-Threaded Processing

Bottlenecks communicating with external sources, causing slow downs with additional endpoints.  Processing data inline from source to completion on a single thread can cause a complete system failure if there is a breakdown at any step.

Network Traffic Bandwidth

Large data packet size and overwhelming bandwidth can slow down or even cause backups in delivery of data.

Inefficient Encoding and Decoding

Slow, or inefficient data encryption, forcing a choice between security or speed.

Single Record Processing to Database

Poorly designed database record inserts can cause backup or failure of delivery.

Network or Database Failure

If the system is not deployed as an edge solution with store and forward implemented data will be dropped and not processed.  Important to cache this data properly to be able to process further incoming values continuously.

Limited Communication Channels

Most SCADA systems are limited to 200 or less channels and require separate instances to collect data from more than 200 devices.

Only Latest Value Update

Limiting what data is delivered learning engines can affect the data model.

Separate Data Source for Each Client 

The number of clients can be restricted otherwise causing undue stress in overwhelming communications to the data source. 

OAS Performance Features

Asynchronous Event Driven Processing

Asynchronous communications by subscription to data sources.  Routines only need to execute on data change or watchdog failure.

Multi-Threaded Processing

Multi-threaded data processing while retaining first-in-first-out handling.  Separate threads to receive, process, and deliver data in order it is received. 

Optimized Compression

High speed data compression algorithms for encoding and decoding data with reduced packet size in comparison of open standards.

Optimized Encryption

High speed encryption to retain security without sacrificing speed.  Always activated to maintain secure communications at all times.

Multi-Record Processing

Data logging and alarm logging routines perform bulk inserts to pass up to one million records per call.  Eliminates data backup due to delivery error.

Store and Forward

OAS is deployed as a edge solution being able to maintain connection to the data source and can store data to disk on network or database engine failure, freeing up memory resources for continuous processing.

Unlimited Drivers per OAS Engine

OAS can connect to unlimited number of devices per server instance, proven systems in production communicating to more than 1,300 Modbus devices from one server.

First In First Out Processing

OAS delivers all values it receives from end to end, not just the latest value maintaining 100% accuracy for learning engines and reports.  This makes it possible to use slower communication networks while still maintaining data accuracy up to 100 nanoseconds.

Centralized Data Namespace

Values received from each data source are centralized to OAS tag values, to be shared to unlimited number of client applications without impacting the communication rate from the data source.

More:

Data Accuracy

Why Use OAS

Raspberry Pi Installation

Automated Setup for Open Automation Software

A summary of methods used to automate setup and deployment of Open Automation Software

Open Automation Software offers programmatic and automated setup features for OEMs to define communication interfaces and platform configurations for their customers.  OAS also provides self-adapting user interfaces allowing integrators to deploy systems efficiently to customers with varying field configurations.

Automated Setup Benefits

Embracing automated setup when deploying systems has many benefits to OEMs and their customers.

Rapid Configuration

By eliminating the time required to manually define communication interfaces, alarm limits, and how data is to be archived and presented, deployment of each system can often be reduced to a few seconds compared to weeks or months of tiresome configuration.

Ensure Standards

Automated configuration ensures that systems adhere to defined standards and policies.  Automated setup guarantees that each system is deployed to follow specific rules for data monitoring and logging.

Eliminate Human Error

The setup of large systems can be overwhelming and tedious, and repetitive tasks can often lead to careless errors. Automating this process has a positive impact on data accuracy and system performance.

Deploy Changes Quickly

Automation allows both large-scale configuration changes and small changes to be implemented quickly and consistently.

Reduce Costs

No need to hire large numbers of automation specialists to carry out system setup.  Time required to verify and troubleshoot manual changes is eliminated.

One for All User Interface

A single user interface that is able to adapt across platforms, systems and users means one code base, greatly reducing development and debug time while increasing accuracy.

Adapt to Varying Equipment

Each customer of an OEM or system integrator may have different assets in the field, which requires modifications to how data is accessed.  OEMs can deploy applications based on one code set that can read asset allocation from their customer’s database, setup all data monitoring and provides a user interface that adapts to what data is available.

Open Automation Software Solutions

All interfaces to define configurations are included with the OAS Platform at no cost.

.NET Programmatic Interface

OAS features can be fully setup programmatically, providing developers complete flexibility how OAS systems can be deployed.  This supports all configurations including Tags, Driver Interfaces, Data Logging, Alarm Logging, Alarm Notification, Recipes, Reports, Security, and more.  Setup of OAS will take just a few seconds using this programmatic method.

With the OASConfig .NET Standard 2.0 assembly applications can run on both Windows and Linux to define properties of the OAS Platform locally or remotely, with optional security.  Refer to the .NET Programmatic Server Configuration article for an overview of OAS .NET assemblies for configuration.

View the Example Service Code article where to download projects for .NET Core / .NET 5 for cross platform deployment and for .NET Framework Windows Services in both C# and Visual Basic.  The code demonstrates defining tags using the Set and Get Tag Properties methods and reading and writing live values using the Data Access Programmatic methods.

REST API

The OAS Engine has a built-in REST API to make calls locally or remotely using a web interface.  View the Getting Started – REST API guide on how easy it is to setup tags and access live data through this interface.

Automated HMI

OAS .NET and web user interfaces can be created to self-adapt based on the tags defined in each OAS Engine.  This makes it possible for OEMS to deploy one application for all customers regardless if each site has varying numbers of devices or field instruments to connect to.

One Click Database

Data Logging Groups can be automatically setup by using the One Click Database feature that browses Open Automation Software Tags automatically and creates data logging groups based on the tags in a selected services.

CSV Import

OAS configurations can be setup using CSV files.  Use the Configure OAS application to export any of the configurations to a CSV file to obtain the header names used for each configuration property.  Then use Microsoft Excel or other CSV file editor or to add or modify rows to define the setup of OAS, then use the CSV Import.

Using the same CSV format tags can also be updated or added using the .NET Programmatic CSV Import or REST API.

See the Getting Started – Tags guide for a simple walk through of setting up Tags manually and using CSV Import, which is the same steps for all configurations.

One Click OPC

The One Click OPC feature can be used to browse classic OPC DA OPC Servers and automatically create Tags and setup communications for all OPC Items for a selected server or branch within the server.

One Click OPC UA

The One Click OPC UA feature can be used to browse OPC UA Servers and automatically create or update Tags and setup communications for all Nodes in a server or Nodes under a selected Node.

One Click Allen Bradley

Tags can be automatically setup by using the One Click Allen Bradley feature that reads all variables from a controller or program file and creates tags based on the variables and data types found.

Data Accuracy in IoT

High-Speed, Reliable Data Collection and Logging

Data accuracy is highly dependent on how IoT systems collect, transport and deliver data. It is critical that information systems receive data from data acquisition solutions that can run, on-premise, as an edge solution and can store and forward data on communication failures. Edge IoT systems like Open Automation Software eliminate the dependency on network reliability that cloud solutions require, and can deliver data with high precision and greater reliability.

Open Automation Software is deployed as an edge solution to collect and process data on-premise utilizing a first-in-first-out (FIFO) data method to deliver all samples of received data over the network to user interfaces, applications, remote OAS Engines, and databases.

Example solution gathering data in real time from a PLC to an edge or on-premise OAS instance, passing the data to a remote OAS instance which is logging data to an open database such as MS SQL Server. (click image to enlarge)
Watch the video to see how OAS transports 1,000,000 samples to a Raspberry Pi device, processes it at a rate of 100 nanoseconds per sample, and inserts 1,000,000 records into MS SQL Server in one database transaction.

By running as an edge computing solution Open Automation Software provides the reliability to retain the data in all possible failure scenarios. OAS is able to achieve the highest data accuracy possible through optimized communications with controllers and applications utilizing light network transport that is both secure and has a delivery confirmation, providing high throughput performance to databases with its store and forward capability.

Controller and Application Communications Failover

OAS supports buffered communications to controllers and applications to perform bulk polling of multiple samples in one call.  This provides a sampling speed matching the controller or application time cycle. It also provides store and forward capabilities directly on the controller so that there is zero data loss in the case of temporary communication failures.

OAS also supports communications redundancy failover to a backup controller providing an automated switch from primary to secondary controller or application.

OAS can also receive data from .NET applications and REST interfaces to update tag values.  See the Real Time Data Access WriteTags method to see how timestamps can be included with values to transfer multiple values in one simple call.

Upon failure to communicate with a data source, OAS can be configured to automatically fail over to a backup source or network address. (click image to enlarge)

Handling Remote Network Communications Failures

OAS runs as an edge solution collecting and processing data on-premise enabling it to reliably process all data in the event of a network failure. When data is transferred over the network, all value changes since the last successful transfer are transmitted, not just the latest value. This is important for building accurate data models from the data source. Network packets from client to server and server to server are encrypted and compressed to achieve the smallest packet size available.

The real-time trend and alarm information is processed locally and cached on the OAS Engine so when the remote user interfaces are able to reestablish a connection all trend and alarm data is provided to 100 nanosecond accuracy.   OAS also has client and server watchdogs to notify applications when there is a network failure.  If real-time access is critical, there can be an automated client switchover from primary to backup OAS Engine within the client application. Each OAS engine can also support multiple client interfaces.

Store and Forward functionally is also built in for data logging and alarm logging so the highest possible retention of data is available during temporary network failures.

Deployed as an edge solution, if remote systems cannot be reached, the edge instance of OAS will continue to capture source data, ensuring data integrity when communications are reestablished. (click image to enlarge)

Database Performance and Data Buffering

OAS has built in store and forward functionality to account for database engines failures as well.  In the event of a communications failure attempting to write data to a database, OAS can be buffer data to a local disk. When communication is reestablished, OAS will write all data out to the database, restored as first received first sent updates to the database in bulk calls.

The database engine can be located on the same system as the OAS Engine or on a remote system, as multiple records are inserted with just one call. This eliminates any possibility for data to be dropped or lag behind in update to the database. OAS can log up to 2,000,000 values per table to SQL Server.

In the event of a failure to log data to a database, OAS will buffer the data locally and write it back out when the database is back online with zero data loss. (click image to enlarge)