EOS SCADA Data
Current values of data points within EOS SCADA can be published to MQTT clients.
EOS MQTT Server is an MQTT server running within EOS SCADA Runtime and providing data communication between MQTT clients and EOS SCADA.
The server listens on the configured IP address and TCP port. MQTT clients can connect to this address to SUBSCRIBE to EOS SCADA data or send MQTT messages.
IP_ADDRESS:PORT
When the server is active, MQTT clients can establish connections with it. Client connections, disconnections, subscription and unsubscribe operations can be monitored by EOS SCADA.
EOS MQTT Server combines the publish/subscribe architecture of MQTT with the real-time data structure of EOS SCADA.
EOS MQTT Server is designed to be directly integrated with the EOS SCADA data structure rather than operating as a standalone application. The server reads information about EOS data points and creates MQTT topics accordingly.
Current values of data points within EOS SCADA can be published to MQTT clients.
When a data value changes, the new value is published to clients through the corresponding MQTT topic.
Multiple MQTT clients can subscribe to different topic filters.
The server can also receive PUBLISH messages from clients and determine the corresponding EOS data point through the topic.
The operating parameters of EOS MQTT Server are configured through the EOS SCADA Project Settings. The IP address on which the server operates, the port used by MQTT clients to connect, and the data update interval can be defined in the project settings.
| Parameter | Description | Default Value |
|---|---|---|
| IP Address | The IP address on which the MQTT Server listens for incoming client connections. | mqtt://IP_Address (Project Settings) |
| MQTT Port | The TCP port used by MQTT clients to connect to EOS MQTT Server. | Default 1883 |
| Data Type | Determines the scope of EOS SCADA data to be published through MQTT. | One of All, Digital, Analog or Selected |
| Update Interval | Determines how frequently EOS MQTT Server checks EOS SCADA data and publishes changed values through MQTT. | Default 1 second |
The default value for the MQTT Port is 1883. This is the standard TCP communication port for MQTT and can be changed through the Project Settings if required.
The Update Interval is set to 1 second by default. This interval determines how frequently EOS SCADA data is checked by the MQTT Server. When the value of a data point changes, the new value is published to the corresponding MQTT topic.
When the MQTT Server is started, it begins accepting MQTT client connections on the IP address and port specified in the Project Settings.
Instead of publishing all EOS data, EOS MQTT Server can provide a specific group of data through MQTT according to the configured selection.
Allows all available EOS data points to be provided through MQTT.
Includes integer-type data whose data type name contains int.
Includes analog data whose data type name contains real or double.
Provides the data points selected within EOS SCADA through MQTT.
EOS MQTT Server creates MQTT topics using the group structure of the EOS SCADA data tree. The topic structure is created by combining the names of the parent groups with the data name.
TOP_GROUP/SUB_GROUP/DATA_NAME
For example, if the EOS SCADA data tree contains the following structure: Plant / Turbine1 / ActivePower the MQTT topic can be created as follows:
Plant/Turbine1/ActivePower
This structure establishes a direct relationship between the MQTT topic hierarchy and the EOS SCADA data hierarchy.
EOS MQTT Server scans only the data required by clients that have subscribed to the corresponding topics. Therefore, data that has not been requested by any client is not unnecessarily published.
The last published value is stored for each data point. When the EOS SCADA value differs from the previously published value, a new MQTT message is created and published through the corresponding topic.
EOS SCADA Value
↓
Is there a subscribed client?
↓
Has the value changed?
↓
MQTT PUBLISH
↓
Send to clients through the topic
This mechanism helps reduce MQTT traffic by preventing the same value from being published repeatedly during every scan cycle.
The MQTT Quality of Service level for messages generated by EOS MQTT Server is set to At Most Once.
| Property | Value |
|---|---|
| QoS | 0 – At Most Once |
| Payload | Textual representation of the EOS data value |
| Topic | MQTT topic created from the EOS data tree |
Since QoS 0 does not provide a delivery guarantee, it is suitable for real-time data transmission with low protocol overhead.
MQTT clients can SUBSCRIBE to the topics or topic filters they require. EOS MQTT Server tracks these subscription details on both client and data point levels.
| MQTT Filter | Description | Example |
|---|---|---|
| Topic | Monitors a single topic. | Plant/Turbine1/ActivePower |
| + | Matches a single topic level. | Plant/+/ActivePower |
| # | Multi-level wildcard covering the remaining topic levels. | Plant/# |
The topic matching mechanism of the server supports the + and # wildcard characters.
EOS MQTT Server tracks which topics each client has subscribed to. For this purpose, a relationship is maintained between the client identifier and the corresponding data points.
The EOS data points subscribed to by each MQTT client are tracked.
The MQTT clients subscribed to each EOS data point are also tracked.
The client topic filter is compared with the EOS topic to determine the corresponding data points.
When a client removes a subscription, the related data and client mappings are updated.
The server monitors the basic connection and subscription events of MQTT clients.
| Event | Description |
|---|---|
| Client Connected | Occurs when an MQTT client connects to the server. |
| Client Disconnected | Occurs when an MQTT client's connection is disconnected. |
| Client Subscribed | Occurs when a client subscribes to an MQTT topic filter. |
| Client Unsubscribed | Occurs when a client unsubscribes from an MQTT topic filter. |
| Client Publish | Received when a client sends an MQTT message to the server. |
MQTT clients can send PUBLISH messages to EOS MQTT Server. The server receives the topic and payload information from the message and compares the topic with EOS data points.
MQTT Client
│
│ PUBLISH
│ Topic + Payload
â–¼
EOS MQTT Server
│
│ Topic Matching
â–¼
EOS Data ID
If the incoming topic matches one of the topics defined in EOS MQTT Server, the corresponding Data ID can be determined. The data type of the message can also be obtained from the EOS data definition.
In the current application code, the part required for validating the payload, converting it to the appropriate data type, and writing it to the corresponding EOS data point is not yet completed. Therefore, in the current version, the PUBLISH message received from the client can be processed and the corresponding data mapping can be determined, but the automatic writing of the value to the EOS data point has not yet been implemented.
After connecting to the server, an MQTT client can monitor EOS SCADA data by subscribing to the corresponding topics.
For a specific data point:
Plant/Turbine1/ActivePower
To monitor all data under a specific group:
Plant/Turbine1/#
To monitor the same data name for any device at a specific topic level:
Plant/+/ActivePower
For example, using an MQTT client:
mosquitto_sub -h IP_ADDRESS -p 1883 -t "Plant/Turbine1/#"
To send a message from the client to EOS MQTT Server:
mosquitto_pub -h IP_ADDRESS -p 1883 -t "Plant/Turbine1/ActivePower" -m "125.4"
The data publishing process of EOS MQTT Server is performed periodically within the MQTT update cycle of EOS SCADA.
Is the MQTT Server running?
│
â–¼
Is there subscribed data?
│
â–¼
Read EOS data value
│
â–¼
Check data type
│
â–¼
Compare with the last published value
│
Has it changed?
/ \
No Yes
│ │
│ ▼
│ MQTT PUBLISH
│ │
└─────────────┘
If no MQTT client is subscribed to the server, the data to be published is not scanned. This reduces unnecessary processing and network traffic caused by unused MQTT publications.
EOS MQTT Server can be started and stopped by EOS SCADA. The operating state of the server can be monitored through the MQTT status mechanism within EOS SCADA.
| Operation | Description |
|---|---|
| StartMQTTServer | Starts the MQTT server and begins accepting client connections. |
| UpdateMQTTServer | Runs the MQTT data publishing cycle. |
| StopMQTTServer | Stops the MQTT server. |
Through MQTT's publish/subscribe architecture, EOS SCADA data can be accessed by multiple software applications or devices on the same network using standard MQTT clients.
EOS MQTT Server is an integrated MQTT server that provides real-time data from the EOS SCADA system to external applications and MQTT clients through the MQTT protocol.
The server automatically creates MQTT topics from the EOS data tree, tracks client subscription status, and publishes only changes to data points that have active subscriptions.
With support for the + and # wildcards, clients can subscribe to a single data point, a specific topic level, or an entire topic tree.
PUBLISH messages received from MQTT clients can also be received and mapped between the topic and the EOS Data ID. In the current application structure, writing the received value to the EOS data point has not yet been completed.
With these capabilities, EOS MQTT Server can be used as a practical communication layer connecting EOS SCADA systems with MQTT-based industrial IoT, data monitoring, and external application integration.