IoTUnified_UserGuides_v3
IoTUnified_UserGuides_v3
User Guide
Created By Gabriel Turmail, Logan Kraus
Revision D
Revision Date: 5/09/2023
The information in this documentation is subject to change without notice and does not represent a
commitment. The software described in this documentation is furnished under a license or nondisclosure
agreement. This software may be used or copied only in accordance with the terms of these agreements.
Table of Contents
Introduction
ABOUT THIS MANUAL
This manual is divided into a series of logical building block chapters that describe the various aspects of
using the SORBA IOT Unified Platform. The SORBA IOT Unified Users Guide will help you familiarize yourself
with the SORBA IOT Unified Platform and its tools.
Assumptions:
Users are familiar with Operating System: Windows, Linux, or Mac OS.
Users are knowledgeable of how-to use of a mouse, Windows menus, select options, browser navigation,
and accessing online Help.
Users are experienced with SORBA SDE user interface and Web configuration Tools interface.
TECHNICAL SUPPORT
Our Technical Support team offers a variety of support options to answer any questions on the SORBA IOT
Unified product and their implementation.
Prior to contacting technical support, please refer to the relevant chapter(s) in your SORBA IOT Unified
User's Guide for a possible solution to any problem(s) you may have with your system. If you find it
necessary to contact technical support for assistance, please make sure to have the following information
available:
System Overview
ACCESSING THE SYSTEM OVERVIEW
System Overview is the first page you will access when you go into your instance.
DEVICE D ETAILS
Device details has general information about your device, including the device name, serial name,
operating system, device up time, and the current system time.
Device Details
CONNECTIONS
Connections shows you the current connection status, including the connection to the SORBA Cloud, the
connection to the VPN, and whether the device is connected to the internet
Connections
HARDWARE RESOURCES
Hardware resources shows you a summary of the resources available on your device.
Hardware Resources
DISK VOLUMES
Disk volumes shows you how much storage space is left on your device.
Disk Volumes
NETWORK USAGE
Network usage presents a summary of your device’s network usage over time.
Network Usage
NETWORK INTERFACES
Network interfaces shows you a list of your device’s current network interfaces.
Network Interfaces
DATA COLLECTION
Data collection shows you a summary of your data collection, including your current data collection rate.
Data Collection
DEVICE NODES
Device nodes shows you a summary of nodes and will display how many nodes of each different node
type you have within your IOT Unified Workspace (we will cover nodes in more detail in a later section of
this guide).
Device Nodes
SYSTEM EVENTS
System events is a summary of the events on your IOT Unified system including errors, warning, and
information events.
System Events
DEVICE GEOLOCATION
Device Geolocation provides you with the GPS location of your device so you can locate it. If you are
using a cloud instance with multiple devices you will be able to see all device locations.
Device Geolocation
WORKSPACE
DASHBOARDS
WORKFLOWS
DATA VIEW
OEE
VIBRATION
SYSTEM SUPERVISOR
TASK FLOW
This icon will take you to the task flow, an area for deploying custom code and for receiving and
deploying over-the-air updates.
IDENTITY SERVER
SYSTEM EVENTS
ALARMS
EXTRA TOOLS
Extra tools
From the wrench icon you can access the ping check, the port check, and your terminal.
PROFILE TOOLS
You can click on your profile to access the manage account, backup and restore, note types, about, and
logout options.
Profile Tools
Workspace
ACCESSING THE WORKSPACE PAGE
The workspace can be accessed by clicking on this button on the left side of your SORBA Platform.
Generic Node
Then we have the device node. The device node represents the actual edge device that is in place within
your plant. The edge device on an IOT Unified Edge, there will only be one device node. However, on the
IOT Unified Cloud platform you should see multiple device nodes to represent each of the different devices
that are part of that cloud.
Device Node
ASSETS
Within your device node you will have a variety of assets. Assets are the base level of organization within
your data. An asset could represent an individual machine, or could represent a production line, it could even
represent an entire plant. It comes down to what level of granularity you want to achieve with your asset
organization.
Asset Node
Within an asset, you have Alarms, Channels, Dashboard, Flows, Groups, IOT connectors, Model Instances,
and Scripts.
ALARMS
Alarms are used to tell you when certain data values go outside of set ranges. Alarms can also be used to
compare the value from one data tag to the value of another data tag.
Alarms Node
CHANNELS
Channels are where you organize your data pipelines. This is where you establish connections between
SORBA and the machine you are trying to connect to.
Channels Node
Dashboards Node
GROUPS
Groups are one of the most important parts of an asset. Within an asset, you use groups to organize your
individual data tags. You can add any groups you feel will help with data organization, and you can layer
groups within one another. But you’ll eventually get down within a group to an individual data tag. An
individual data tag represents a single variable that you are capturing within SORBA.
Groups Node
IOT CONNECTORS
You also have IOT connectors. IOT connectors are used to establish a connection between SORBA and an
external database and can also be used to establish connections between one SORBA platform and another
SORBA platform.
MODEL INSTANCES
Model instances is where you will deploy and control your machine learning models after you create them
in the SORBA machine learning trainer.
SCRIPTS
Finally, scripts provide you with a pipeline engine in which you can create simple logic to control your data.
Scripts Node
INDIVIDUAL VS GLOBAL
All these nodes are represented within your individual assets but can also be represented on a global level.
If you make any of these on a global level, they will be accessible to every asset that is in that device, and
they will also be able to access information from any of your individual assets.
Device Node
ABOUT DEVICE NODES
Within your IOT Unified Workspace, you can either go to an existing device to edit it, or you can go to your
instances and click the drop-down menu to add a new device. From your device node you will be able to
control all of the basic settings for your SORBA Edge Device as well as controlling the different networking
connections set up for that device. You can also import license or device credential right from the device
overview.
DEVICE INFO
The first section is device info, which includes the name of the device, an optional description for the device,
if you want the device to follow class changes, and whether the device is enabled.
Lower on the page you can set the device into debug mode, which will give you system events with additional
information for the device, which will help debug problems in the SDC.
Device Info
Below are settings to enable the Modbus TCP Server and the OPC UA Server, both of which will expand
with options to set them up if enabled.
OPC UA Server
DATA POLICY
Then we have the Data Policy, which changes how long data is retained on the device. Below we have the
location for the device.
Data Policy
In-Memory Database
THE CORE
Below are settings for the Core. The core is the main heartbeat of SORBA that controls the data flow within
SORBA. You can set the database being used for Hot Data Storage, the in-memory database number, and
the connection number.
Core Settings
In Other Options, you can change the batch size of how much data is being sent at once, the maximum body
size for the data packages, and the sample collection rate. You can also change how often the system
parameter is being updated, and the interrupt frequency and event control frequency. You can change how
many decimals are stored within the data and change if the timestamp source is internal or external.
Changing the timestamp source determines whether timestamp info from outside or inside the database is
prioritized. You can change the maximum number of OPC UA nodes to read, which helps prevent overloading
the OPC server by controlling the max number of possible nodes that it can read from the OPC UA. You can
control the internal queue max size as well. Next, you can enable or disable the in-memory database
subscribe and publish features, as well as their update frequency and whether a delay is enabled. You may
need to include a delay in situations where you have a large amount of data, so that way all of it actually
gets through.
EVENTS MIDDLEWARE
Below you can control the Events Middleware, where you can change the database from its default for hot
data storage or database number from its defaults for the in-memory database.
Events Middleware
OS INFO
Below you can change the OS info as well which lets you change the database number from default if you
need to for any reason.
OS Info
HOUSEKEEPER
Next is the Housekeeper. This section controls how often things are being removed from the SDC, typically
system events. You can change whether it removes measurements, switch the frequency mode from cyclic to
scheduled, and then set that schedule to daily, weekly, or monthly and then specific that schedule with more
granular info like setting specific days for housekeeping. You can also change the batch size for how much
info is removed at once.
Housekeeper
IOT CONNECTORS
Below we have the IOT Connectors, where you can control the maximum data queue size for the IOT
Connectors.
IOT Connector
Below this, we can enable or disable whether we are using the Local Machine Learning API. If you want to
use the machine learning trainer that is associated with this SDC you can keep it on the local default value.
or you can specify the URL to use another API. This is typically used if you want to use a stronger central
computer to run machine learning training for a weaker edge device.
DASHBOARD D ESIGNER
Below you can change settings for the Dashboard Designer. You can either use the default dashboard
designer or specify the URL for a different one, alongside controlling the API user and password for this
dashboard.
Dashboard Designer
SCRIPT ENGINE
Below is the Script Engine, where you can control the cycle time for the entire script engine, starting with
cycle time. If you have a script that has a cycle time shorter than this cycle time, the script will default to this
master setting. You can also change whether it retains values within the script engine and edit the cycle time
for data retention.
Script Engine
NETWORKING
Below this we can control the networking for the device, allowing you to modify, add, or delete interfaces
for both Ethernet and Wi-Fi interfaces.
Routing
CUSTOM FIELDS
Finally, you can add custom fields to your device node if you choose.
Custom Fields
CREATING A GROUP
To create a group, go into an asset, go to your groups, and then click on the Add Group button.
GROUP GRANULARITY
With your group created, you can now go to the options menu, go to add node, and you can add a tag to
your group, add a new group to create a nested group, or add a sibling group to create a separate
group on the same level of the tree as the current group.
Channel Creation
CREATING A CHANNEL
Firstly, navigate to your workspace. Then go into the device and asset you want to create a channel in.
From here you go to the channel portion, go to options, add node, and add channel.
Tag Creation
WHAT IS A TAG
A tag is the most basic unit within your data tree structure that you create in your IOT Unified Workspace.
Remember that the data tree structure works going from an asset down to group, and finally down to an
individual tag.
CREATING A TAG
To create a tag, first select the group that you want the tag to go into. Then go to options, select Add
Node, and select Add Tag.
TYPES OF TAGS
First you select your type of tag. Your tag can be a Boolean, a Byte, a Sint, a Word, an Integer, a Double
Word, a Double Integer, a Real Value, or a String. You can also include a unit for your tag, which is a
piece of metadata and will not impact anything about tag configuration. You may select any
preprocessing you want on the tag, including having the tag give you the minimum value, maximum value,
average value, or time interval. If you select a preprocessing type, you can then enter the total number of
samples you want the preprocessing value to act on. This means that if we want the maximum value over
10 samples, we select Max for preprocessing and then set the total samples to 10. You can also set the
low limit and high limit for a tag, which are also metadata and will not impact the tag itself.
TRIGGERING TAGS
Once the tag is configured, you can set up how you want the tag to trigger. This is essentially how you
want the data to be pulled. The most common trigger type is Cyclic data, which simply has the data
logged on a cyclic basis that you set using the trigger time and time unit. You can also have tags trigger
based on raw time value, which is like Cyclic but does not keep the trigger time synchronized between all
devices. There is also raw time with differential trigger, which triggers every time value only if the data is
above a certain threshold. Next is reach value, which triggers if the data passes a certain threshold value.
The tag can log on change, which is only when the data changes and is past a certain threshold value. Then
there is rising edge or falling edge, which log when the data reaches a high or low value. Always is the
fastest mode of data collection, which logs all values the system picks up. The final method is Based on
Event Trigger, which allows you to select another tag within your device and trigger this tag when that
target tag itself is triggered.
FINISHING TAG
Once your tag is ready, click save, and then apply the change. Once this is done, press on the refresh
button to refresh the page and you should be able to see the new tag that you created.
Alarms
HOW TO CREATE A NEW ALARM
Firstly, navigate to your workspace. Then go into the device and asset you want to create an alarm for.
From here you go to the alarms portion and click on Add Alarm.
Add Alarm menu, with name, alias, description, and follow class changes fields
Next, enter in the alarm debounce time, which is how long the alarm should wait to trigger again once it is
triggered. Then set the alarm type to one of LowLow, Low, High, HighHigh, Warning, or Info. Then you can
set the alarm priority level and the message you want to appear when the alarm is triggered.
From here, you can choose a notification channel that you have configured to link this alarm to. You can
also select the Alarm states that will trigger a notification. This can be set to trigger when the alarm is
activated, deactivated, and/or acknowledged. If this is enabled, a notification will be sent through the
associated notification channel when that status is true.
SAVING ALARMS
Once your alarm is ready, click save, and then apply the change. Once this is done, press on the refresh
button to refresh the page and you should be able to see the new alarm that you created in the data tree.
Alarms Page
On the page you can filter by alarm status, data range, alarm type, whether the alarm was
acknowledged, and the priority.
Notification Channels
HOW TO CREATE A NOTIFICATION CHANNEL
First, navigate, to your Workspace and find the Notification node as shown below.
SORBA supports Email, SMS, Slack, and Teams notification channels. Once you have finished configuring
your channel, you can use the Test Provider button next to the Save button to test your notification channel.
EMAIL
For an email channel, you can use Sendgrid, SES, G-Mail, or Office 365. Each of these options has
different information required for the configuration that can be obtained from the email provider.
SMS
For text message notification, Sorba supports Twilio. To set up this channel, you will need the Messaging
Service SID, the Account SID, the Auth Token, and the SMS receiver.
Script Engine
WHAT IS THE SCRIPT ENGINE?
The script engine is a powerful tool within SORBA that allows you to manipulate variables in order to
create new variables that can then be used for data visualization, or directly used in your machine-
learning models.
SCRIPT SETTINGS
Once in the New Script menu, you must add a name for the script. You can enter an alias or description if
wanted, and toggle whether you want your script to follow class changes and if it should be enabled or
disabled.
New Script Menu with name, alias, description, and follow class changes fields
Below, you will enter in the information required for script configuration. First, specify if you want the script
to be run cyclically, on start, or on stop. The most common usage is with cyclic scripts. For this, you will enter
in a cyclic time in milliseconds that will control how frequently the script is run. You will also set the timeout,
or how long the script will take before the script times out. In addition to running the script cyclically, you
can also run the script on start or on stop, which will only run the script once, when the device starts or
stops. These are usually used for initialization of values, or for logging values when the machine stops so
they can be used later.
Python Editor
Python Editor
Once you have entered in your script configuration you will go into the python editor to create your script.
The python editor is a basic python engine that uses the same rules and syntax as python.
However, there is one important addition that is special to the SORBA Script Engine. That is the ability to
pull in a tag from your asset. You do this by typing the function sde[“asset.group.tag”], replacing asset,
group, and tag with the respective names of the asset group and tag that you want to pull into your script.
By placing that function on the left side of an equal sign you can set the value of that tag, and by placing
it on the right side of an equal sign you can set a temporary variable within your script to the current value
of the tag. You can also replace the name of the asset you are calling with the keyword ASSET (without
quotes around it) to refer to whatever asset the script is being created in. This allows the script to function
even if you make copies of the asset through a template or other means. In addition, you can use the
debug feature by typing the function debug(x) to check the current value of “x” variable, whatever you
want to check.
IOT Connectors
WHAT ARE IOT CONNECTORS USED FOR?
IOT Connectors are used to send and receive information from external databases. This can be used to
send information to an external database, receive information from an external database, send
information to another SORBA SDC, receive information from another SORBA SDC. IOT Connectors are
ways to send and receive information using common communication protocols.
Source Menu
The next options on this menu have you input the information for the source and destination, and each
source and destination will have different parameters that you will have to enter on this section of the
menu. Any source that is within the SORBA SDC will allow you to select which tags you want to include in
the data sent for this IOT Connector, and any destination that is within the SORBA SDC will require you to
select the destination tags that you want data sent to.
DASHBOARD REPORTS
From a Dashboard node, you can click on the Add Dashboard Report button to set up automatic dashboard
reports.
You can set the frequency at which reports are generated from the Schedule dropdown. You can set the
data range displayed by the report from the Report Time dropdown. Finally, link the dashboard to a
notification channel and save.
Here we can see the variable table_name with the default value of DEV183.MOTOR.
Within our panel for this dashboard, we can see the variable being used to define where the data is
being pulled from.
When making a dashboard report, you can input a value for the variable as shown below.
This allows you to change what this variable is set equal to when the dashboard report is sent. This alows
users to send different reports for different assets all while using a single dashboard. When templating out
a solution this can save time as it removes the need to create multiple similar dashboards for each of your
assets, using instead only a single one for all of your reporting.
Custom Fields
WHAT ARE CUSTOM FIELDS
Custom Fields are additional metadata that can be added on to any node within SORBA to give the user
additional information about that node. Custom Fields do not have a functional use within SORBA, they
exist so you can add in additional information so that other users of the software can better understand
what you were trying to accomplish. This extra information can help with organization, data management,
and with recording the intention behind different nodes.
TEXT
The text custom field will give you a textbox that you can type into.
LONG TEXT
The long text custom field will give you a large textbox that can hold more words than the regular text
custom field.
NUMBER
The number custom field gives you a textbox that you can enter a number into.
SELECT
The select custom field will allow you to enter comma separated values for the different options. Once you
add this field, it will generate a drop-down menu with those options.
CHECKBOX
The checkbox custom field will allow you to enter comma separated values for the different options. Once
you add this field, it will generate checkboxes for each of those options.
Custom Field
RADIO
The radio custom field will allow you to enter comma separated values for the different options. Once you
add this field, it will generate a toggle field that lets you select only one of those options.
Apply Changes
WHAT DOES APPLYING CHANGES DO?
The Apply button is used whenever you want to take the changes that you made in your SORBA SDC and
apply them to your actual runtime. For example, if you create a script and save it, it will not begin running
until you apply the changes to your runtime. You can make many changes on your SDC before you apply
changes, which could speed up the process if you are making many changes all at once to your SORBA
SDC.
Cloud Synchronization
DIFFERENCE BETWEEN SORBA CLOUD AND EDGE
Within SORBA you can have both an IOT Unified Cloud as well as an Edge instance. From the IOT Unified
Cloud you can monitor all your different devices across all of your different facilities. Any nodes that are
not synchronized to the cloud will appear with a small red marker on them in the data tree of an edge
device to signify that they need to be synchronized.
Red Marker for showing which nodes are not yet synchronized to the cloud
In this section we will discuss how to synchronize a cloud device to an edge device.
HOW TO SYNCHRONIZE
You can synchronize from both cloud devices and edge devices.
The Options menu, Synchronization menu, and Get config from IoT Cloud and Send config to IoT Cloud buttons
Get config from IoT Cloud will download the most recent version of the device config from the cloud to the
edge, while Send config to IOT Cloud will upload the most recent version of the device config on the edge
to the cloud.
SYNC MENU
Whether you’re getting or sending the config from the device or the cloud, the menu operates the same
way. You select which steps you want to sync, set the local queue timeout in seconds and the task remaining
timeout in seconds and then press the Sync button.
Sync Menu (Send configuration to IoT Cloud menu pictured for example)
Snapshots
WHAT ARE SNAPSHOTS?
From your IOT Unified Workspace, you can generate a snapshot of your data structure that you can then
restore in case anything happens to your SDC.
Workspace Tools
TOOLS WITHIN THE OPTIONS MENU
In the options menu on a node, there are a few things we can do. We can Move the node, Clone the node,
and Delete the node.
MOVE
Move Node allows you to move your selected node from one section of your data tree to another one. To
access move node, open the options menu on the node you want to move, then press the Move button.
CLONE
Clone Node allows you to create a copy of your selected node. To access clone node, open the options
menu on the node you want to clone, then press the Clone button.
DELETE
You can also delete a node with a tool near the options menu. To delete a node, open the node you want
to delete and press on the red trash can icon next to the options menu button.
Node ID Location
MULTISELECT
Open the options menu at the top of the data tree and click on the Enable multiselect button to enable
multiselect mode.
Multiselect Example
Multiselect lets you take actions within the node options menu like Move, Clone, and Delete on multiple
nodes at the same time so you do not need to do things one by one.
PING
Pressing the Ping button in the wrench menu will open the Ping menu, where you can enter the IP address
that you want to ping and select how many times you want to retry the ping.
Ping Menu
When you are ready, press the Ping button to attempt to ping that IP address. The results of this operation
will be displayed in this menu.
PORT CHECK
The Port Check tool allows you to check the status of a specific port and see if it is open or closed. Pressing
the Port Check button in the wrench menu will open the Port Check menu, where you can enter the IP
address of the host and then enter the port you want to check.
TERMINAL
Pressing the Terminal button in the wrench menu will open an SSH terminal that you can use to do back-end
changes to the SORBA platform. Typically, the terminal is only used to perform maintenance on the system,
and not day-to-day usage.
CREATING A BACKUP
On the Backup and Restore page, you can either create a backup immediately or schedule automatic
backups.
To create a backup, go to the Backups tab on the page and press the Create Backups button.
To schedule automatic backups, go to the Autobackup Settings tab on the page, click the checkbox to
enable automatic backups, and then enter the repeat frequency you want SORBA to create these
automatic backups.
RESTORING A BACKUP
To restore a backup, you can go to the Backups tab on the Backup and Restore page and click on the
Upload from Disk button.
Data View
WHAT IS DATA VIEW?
Data View is used after you have already completed your data configuration, or while you are doing
your data configuration, to give you a quick look at the current values for each of your data tags.
Gear Icon
In the settings menu you can change between polling mode and subscription mode, changing the update
frequency for polling mode if you have it selected. Polling mode shows you a new value after every
amount of time that you specify in the menu. In subscription mode, the value of each tag will change every
time the tag changes to a new value.
Settings Menu
When you are happy with which mode you have selected, press the Apply button to confirm the change.
Workflows
WHAT ARE WORKFLOWS?
The Workflows provides you with a drag-and-drop program that can do essentially anything that the
script engine can do. You can use this to manipulate and control your data.
From this blank workflow, you can use the drag-and-drop program to drag on different nodes from the
panel on the left and then connect them to each other to control the flow of the logic.
Logic Flow
For full documentation about how these nodes and logic work, you can access the node red website at
https://nodered.org/docs/ for more resources.
creation when selecting if the tag is read, write, or read/write) in your SORBA SDC. Note that you can
have multiple outputs go into one single sorba out node, but to do so they must be organized as an array
of values and must match up to a tag within SORBA to ensure that the data writes to the tag correctly.
Deploy Button
Dashboards
WHAT ARE DASHBOARDS?
Dashboards are your main tool within SORBA for visualizing and analyzing your Data.
Save Dashboard
The first time you save your dashboard it will open the Save Dashboard as menu, where you can name
your dashboard and select which folder to save it into.
Identity Server
HOW TO ACCESS THE IDENTITY SERVER
To access the identity server, click on this icon shown below.
USERS
From the Users section, you can view all current users, assign their roles, edit existing users, reset user
passwords, delete users, and create new users.
When you add a new user, you will input their name, email, roles, username, and password.
ROLES
Roles allow you to set permission levels within Sorba. At a default level, Sorba has three roles: Admin,
Viewer, and Editor. However, the permissions granted to these levels can be customized and entirely new
roles with their own custom permissions can be added as well from this section.
Once you assign a user to a role with these assigned permissions, they will then only be able to access and
make changes to the portions of the platform that their role allows them to access and edit.
TENANTS
From the Tenants section of the Identity Server, you can add additional tenants. The default tenant is
sorba_sde. However, you can use this portion of the Identity Server to add new tenants and multi-tenancy is
supported.
APIS
This section allows you to view and edit the APIs that make up the SORBA platform. From here you can
also import and add new APIs as well.
Task Flow
WHAT IS THE TASK FLOW?
The Sorba Task Flow has two primary uses. From this area, you can add and deploy custom code within
SORBA. Additionally, this is where users can find over-the-air updates for SORBA and can deploy new
releases of the platform
To add a new release, click the New Release button shown above. From here you will enter a name for the
release, and you will then select your files and entry point for the release. You can then go to the
Workspace portion of the task flow and click on “Create Deployment” as shown below.
From here you can then select a release to create a deployment for, define a category for later sorting,
set a rollout schedule, and add pauses between the different deployment stages.
It is often helpful to schedule releases to occur outside of normal operation time and to instead happen
overnight or during a less busy time.
Once you have scheduled your release, its progress and status can be viewed from the Deployment section
of the Task Flow. The Active section shows deployments that are currently being processed. The Scheduled
tab shows all upcoming deployments that have been scheduled. Finally, the Finished tab shows all finished
releases as well as their statuses, as shown below.
System Events
HOW TO ACCESS SYSTEM EVENTS
To access the System Events, go to the icons on the left side of the screen and press on the System Events
button.
To use the System Events page, you want to filter down the list of events to see only more specific events.
The first filtering option is to filter by Date, which allows you to select a time range to see events from
within. The next option is Severity, which allows you to select which levels of event severity you want to see.
The next option is Source, which is a drop-down menu that lets you select which source of events you want
to see events from. The next option is User, a drop-down menu that lets you select which user you want to
see events that triggered. The next option is Device, which is a drop-down menu that lets you select which
device you want to see events that trigger from. The final option is Deployment, which is a drop-down
menu that lets you select the deployment you want to see events from within.
You can control the view of what information is displayed within the System Events manager by opening
the columns drop-down menu and selecting which columns you want visible by checking or unchecking their
checkboxes.
TASKS EXECUTION
Tasks Execution lets you set the Local Queue Timeout and Task Running Timeout in seconds, as well as
modify them both at once with a buffer using the Increment Percent in Timeout field, entering a percentage
to apply to the two other fields.
Tasks Execution
PLATFORM API
Platform API lets you determine if you are using the local default SORBA Platform API, you can uncheck the
box and enter a different platform API.
ML TRAINER API
ML Trainer API lets you determine if you are using the local default SORBA Machine Learning API, you can
uncheck the box and enter a different ML API.
ML Trainer API
MQTT BROKER
MQTT Broker lets you choose whether to use the SORBA MQTT Broker, and if you do you can set the host
and the port here.
MQTT Broker
DASHBOARD D ESIGNER
Dashboard Designer lets you either use the default SORBA Dashboard Designer or uncheck the box and
specify a different dashboard designer URL and API.
Dashboard Designer
Deploying Models
HOW TO DEPLOY A MACHINE LEARNING MODEL
Once you are done with the process of creating a machine learning model (we go over this in another one
of our guides), it is time to deploy it into a real-time environment. To do so, you are going to want to return
to your IOT Unified Workspace and open the relevant asset for the machine learning model. From the
asset, you should open the model instances node, open the options drop-down menu, open the side menu
for Add Node, and click on the Add Model Instance button.
Model Instances Node, Options Menu, Add Node Menu, and Add Model Instance Button
This will open the New Model menu, which is where you can begin creating your new model. First you want
to name your model, and optionally add a description.
Below this you can check whether you want the model to be enabled and whether you want it to follow
class changes. The next section is Model Details, where you specify the Project, Analysis, and Model that
you want to use. The menu will then pull details from you model, and new fields will be added based on
the type of model you select.
Model Details
In addition, when you are deploying a model, you can choose whether to automatically create a
dashboard that will show you the outputs from your model. You can select a dashboard template for the
automatically created dashboard, and there are templates for each algorithm type already within
SORBA.
MAPPING
Your model uses inputs that need data from the tags in the asset it is attached to. You must make sure the
inputs are lined up to the correct tags from the asset. When entering a tag into the model menu, you can
either type in the data path of the tag or begin typing its name and select the correct tag from the options
that are listed above the field.
OUTPUT MAPPING
The output tags in the model try and match themselves to tags within your asset automatically. If the correct
tags do not exist, you can open the Mapping menu by clicking the Suggest New Mapping button.
To enable auto learning in a machine learning model you must first select a trigger tag, which is the tag
that will determine when you are going to conduct auto learning. The trigger tag must be a Boolean tag,
and when it becomes true the system will enter auto learning mode, and then set the tag back to false
when it is done retraining the model.
Time Range
The next step is to determine if you want the model to keep auto learning parameters. If checked, the
model will keep all its parameters between times it retrains. If unchecked, the parameters will reset after
each time it automatically relearns, which will disable autolearning since it is not on by default.
Appendix A: Installation
This section goes over how to install Sorba. First, we will install the operating system (Ubuntu 18.04). Then
we will install Sorba through an installation script.
MINIMUM REQUIREMENTS
-RAM: 16 GB
-HDD: 80 GB
-Cores: 8
-OS: Ubuntu 18.04 live server
1. Select Language.
4. Select Proxy. If you do not have a proxy, then press [DONE] to continue.
6. Install updates. Select Continue without updating and press [ENTER] to continue.
7. Storage configuration. Do not make edits, this part is 3 separate screens, click [DONE] on each of
the three.
8. Set Username and Password.
9. SSH Setup. Make sure to check the box to install OpenSSH server.
INSTALLING SORBA
1. Connect and copy the installation script. You must know the IP address that you defined in step 3
of the OS installation above. If you are using Windows, you can use Putty to connect and WinSCP
to copy the installation file.
2. Copy files to /home/sdc
3. Login as root.
4. List files.
7. Let the script run until you see the message SUCCESS INSTALLATION
BASIC SCRIPT
global perc, count
sde["CAR.ENGINE.ENGINE_SPEED_PERC"]=perc(sde["CAR.ENGINE.ENGINE_SPEED"],60000)
if sde["CAR.ENGINE.CAR_SPEED"]>30:
count += 1
This script shows several concepts. First, it shows the use of a global function as well as a global variable.
These will be initialized in a following script. This script also shows the use of the sde function which is used to
read and write tags to the IOT Unified Workspace. If the sde function is placed to the left of the equals sign,
it will set the value of that tag equal to whatever is on the right side. If the function is on the right side, the
function will return the current value of that tag. The debug function is used to display items in the debug menu
within the script engine. In this case the debug is being used to display the string COUNT: followed by the
current value of the global variable count.
INITIALIZATION SCRIPT
global perc, count
count=0
def perc(value,base):
return value/base*100
This script is being used to initialize a global variable, count, and a global function, perc. The variable is then
initialized in the script with the value 0, and the function perc is defined. Importantly, note that this script is not
being run cyclically, but is instead being run as an On Start script.
QUALITY FUNCTIONS
quality['ASSET.GROUP.TAG']
quality_check[List of tags]
quality_str(param)
quality_assert([List of tags])
The first of these, the quality function checks if the tag currently has a good quality.
The second function returns true if all tags within the list are good, false if any are not.
The third function gives the quality of every tag that is included in the list.
The final function checks if all tags in the list are currently of good quality. If any are not, the script will be
exited, and an error message will be sent.
my_custom_iot_data_processors = {
"my_proc_category.crazy_processor": {
"function": crazy_data_proc,
"ui-config": {
"name": "Crazy Processor",
"description": "This is just for show an example. Check every value to know if it is a multiple of "
"Number 1 , then replace them wit Number 2",
"kwargs": {
"num1": {
"name": "Number 1",
"required": True,
"type": "number",
"default": 2,
"min": 0,
"max": 10,
"step": 1
},
"num2": {
"name": "Number 2",
"required": True,
"type": "number",
"default": 0,
"min": 0,
"max": 10,
"step": 1
}
}
}
}
}
This example shows how to create a custom data processor for use with IOT Connectors in the script engine.
This script works by defining some function that is to be carried out by the data processor. In this example, the
processor will check to see if a number is divisible by another number. If it is not, the number will be replaced
with that number. Once you have defined the function that the processor is to carry out, most of the script is
then defining the processor by defining the inputs that will be shown in the Data Processor UI. For this
example, you can see below what this processor would look like when making an IOT Connector.
INFLUX TO MQTT
This IOT Connector is sending the tag MOTOR.RT.SPEED from Influx to MQTT, using the topic
DEV183/MOTOR. No Data Processors are being used. There is a single server in the cluster.
MQTT TO INFLUX
This IOT Connector is doing the reverse of the previous one. It is taking the data that we sent to MQTT with
the previous connector and sending it from MQTT to Influx. To find the topic, you can click on Discover Topics.
Then to map the data to the correct tag, you can click on Update Mapping on the topic. Once again, no data
processors are being used.
This IOT Connector is the same as the previous, reading data from MQTT and sending it to Influx. However,
this one is sending the data through a Data Processor to calculate a moving mean. This function will take a
number of values equal to the Window Size defined within the data processor and will return the average of
those values.
This IOT Connector is once again taking the SPEED tag from MQTT and sending to Influx. However, this one is
using a MinMaxScaler data processor. This data processor will scale the values to values within the minimum
and maximum set within the processor. Note that with both of these examples, you are able to add multiple
data processors and the results of one will feed into the next and so on.
OPC UA
This shows an example of how to set up an OPC UA channel. Note that when setting the endpoint it should be
in the format opc.tcp://[ip address]:[port]. You can also set a security policy if necessary for the OPC server
you are connecting to. When using this type of channel, if you go to map a tag you will be able to do a
discovery option to discover all tags on the OPC server you are connected to.
SIEMENS
This shows a connection to a SIEMENS Profinet PLC. For this channel, you will need the PLC type. In this case it
is an S7 300/400. You will also need the connection number, IP address, rack, and slot.
MODBUS
This channel is showing a connection to Modbus TCP. For this channel, you will need the IP address, port, and
device ID. Note that when you are mapping tags connected to a Modbus TCP channel, you will need to input
the offset, not the actual address when configuring your tag.
3. Access IoT Unified Web Page using the IP address discovered with the scanning software.
4. If this method fails, you can also boot up the VM and access the IP address using the command
ifconfig once you are signed in. This will display the IP address associated with the VM.
3. Send this information to the SORBA team in order to obtain a license key in return.
4. Access the Workspace and upload the license key as shown below: