This is the OPC UA gateway specifically developed for the umati.app Dashboard.
The client subscribes to values from one or more machine instances on a single OPC UA server and then publishes them using MQTT in a JSON encoding format.
All instances are read based on OPC UA ObjectType-definitions.
Invalid instances (e.g., those missing mandatory nodes) are skipped.
To maintain uniform output via MQTT, additional nodes not specified are also ignored.
- Flatglass 🌖
- Textil Test Devices 🌖
- Geometrical Measuring Systems ✔️
- MachineTools ✔️
- PlasticsRubber ✔️
- WoodWorking ✔️
- Robotics ✔️
- Surface Technology 🌖
- Additive Manufacturing DRAFT 🌖
- MachineVision Part 2 Release Canidate 🌖
- IJT Tightening 🌖
- Typed Objects ✔️
- Objects with InterfaceType ✔️
- Custom DataType with TypeDictionary 1.04 🌖
- Custom DataType based on DataTypeTypeDefinition
The Dashboard-OPCUA-Client
can be run either as a standalone application or as a container image.
To install and configure the client, please follow these instructions:
You can use the client for instance testing or for connecting to the umati.app Dashboard.
Follow these instructions to use the client as a testing tool for your implementation: Model Testing usage
Local requirements
For the local instance testing you need to run your own MQTT Broker and a MQTT Client. See MQTT Doc for more information and instructions
Follow these instructions to use the client for connecting your local OPC UA Server to the umati.app Dashboard: umati Dashboard Connection
- Easylogging
- JSON for Modern C++
- Eclipse Paho in C and C++
- tinyxml2
- Googletest
- Open62541
- Open62541Cpp
- Python
This project uses cmake for building.
The following packages are necessary for building:
- git
- build-essential
- gcc
- g++
- cmake
- python3
# Clone the repository and initialize the submodules
git clone git@github.com:umati/Dashboard-OPCUA-Client.git
cd Dashboard-OPCUA-Client
git submodule update --init --recursive
# Build the dependencies
cd .github
mkdir build
cd build
cmake ..
make
# Build the Dashboard OPC UA Client
cd ../..
mkdir build
cd build
cmake ..
make
# Adjust configuration regading your setup
cp configuration.json.example configuration.json
nano configuration.json
# Start the Dashboard OPC UA Client
./DashboardOpcUaClient
# Alternatively build everything in one go:
mkdir -p install
mkdir -p build
cd build
cmake ../.github/ -DCMAKE_INSTALL_PREFIX:PATH=<PATH/TO/>Dashboard-OPCUA-Client/install/ -DCMAKE_BUILD_TYPE=Debug
cmake --build .
- ModelOpcUa An abstration for OPC UA Type Definitions and OPC UA Types (e.g. NodeId and BrowseName)
- DashboardClient Read available OPC UA types and check instances and prepare data for publishing. Defines Interfaces for the OPC UA client and the publisher.
- MachineObserver Looks for new machines and publishes a list of all online machines. Uses the interfaces defined by the DashboardClient
- MqttPublisher Paho An implementation of a publisher for MQTT using Eclipse Paho.
- OpcUaClient Implementation of an OPC UA client for the Dashboard using Unified Automation C++ SDK
- Tests Some basic test, mainly for debugging past errors.
- Util General purpose code, e.g. Encoding of machine IDs
Unless otherwise specified, source code in this repository is licensed under the Mozilla Public License v2.0 (MPLv2).