E2C Field Software Product User Manual
Software Version: V2.0.3.0
Document Version: V1.0
About This Document
This document explains how to install, configure, operate, and maintain E2C Field. It helps users complete common tasks for Data Collection (including LoRaWAN device management and LNS configuration), Data to Cloud, Data Forwarding, automation and control, Alarm Management, visual analysis, and system administration.
Copyright © 2021 Guangzhou Robustel Intelligent Technology Co., Ltd. All rights reserved.
Trademark Notice: Robustel is a trademark of Guangzhou Robustel Intelligent Technology Co., Ltd. Other trademarks and trade names mentioned in this manual belong to their respective owners.
Disclaimer: No part of this document may be reproduced in any form without permission from the copyright owner. Because products, designs, and manufacturing processes are continuously improved, this document may be updated or revised without prior notice.
Version History
Updated | Software Version | Document Version | Description |
2026-08-21 | V2.0.3.0 | V1.0 | Initial release |
Terms and Abbreviations
Software Terms
Term | Description |
Device | A logical representation of a field data source, such as a PLC, controller, sensor, or instrument. Each Device is associated with a communication protocol and connection parameters to establish a data channel with the field equipment. A Device can be a LoRaWAN Device connected through the built-in LNS or a wired Device connected through an industrial protocol. |
Tag | A logical mapping of a readable or writable data point in a field Device, such as temperature, pressure, running status, production count, or a start/stop command. Each Tag is configured with an address, data type, and other parameters to correspond to a specific data point in the Device. LoRaWAN Tags are defined and generated by a Payload Codec, while wired Device Tags normally map to specific data addresses. |
Virtual Tag | A Tag that does not directly map to a field Device address. Its value is derived from constants, expressions, or other Tags, and can be used for data computation, logic evaluation, or data organization. |
Publish | To deploy the configured Devices, Tags, and related services to the runtime environment, making the new configuration take effect. |
Device Profile | A configuration template that defines the communication parameters and regional settings for a specific type of LoRaWAN Device, including MAC Version, Regional Parameters Revision, activation method, and Device Class. It also associates the applicable Payload Codec. |
Payload Codec | A script that encodes downlink commands and decodes uplink Payloads for LoRaWAN Devices, converting binary data to readable Tag values and vice versa. |
Live Frames | Real-time LoRaWAN frame data displayed in the LNS Configuration module, showing uplink and downlink messages exchanged between LoRaWAN Devices and the network server. |
Z-touch Onboarding | A function for adding LoRaWAN Devices in batches. After Device information is imported through a template, the system automatically validates the data, creates Devices and Tags, and synchronizes and publishes the LNS configuration. |
Tag Group | A collection of one or more Tags organized as a Data to Cloud source, with configurable reporting strategies such as periodic, on-change, or combined periodic and on-change reporting. |
Cloud Service | Connection configuration for sending edge data to cloud platforms through MQTT, HTTP, or Sparkplug B. |
Resumable Transfer | A mechanism that caches data locally on the gateway when a Cloud Service is unreachable and forwards the buffered data according to the configured rules after the connection is restored. |
Data Forwarding | Providing Tag data to third-party clients through protocol servers such as Modbus TCP Slave, Opcua Server, or BACnet IP Server. |
Data Original Value | The original data value read from a field Device before the configured Data Operation is applied. |
Data Operation Value | The result obtained after applying the configured Data Operation, such as scaling, offset, or function transformation, to the Data Original Value. |
Scenario Management | The automated task-management function of this system. It consists of Scenario Types and Action Types. A Scenario defines when a task is triggered, while an Action defines the operation performed after the trigger. The system supports six Scenario Types: Scheduled Control, Cycle Control, Power-on Execution, Data Linkage, Alarm Control, and Cloud Command; and three Action Types: Execute Function, Write Tag Value, and DO Control. |
Shared Action | A preconfigured set of frequently used Actions supporting custom JavaScript function execution, Tag write operations, and DO (Digital Output) control. It can be referenced by multiple Scenarios to avoid duplicating the same Action configuration and improve automation configuration efficiency. |
Logic Orchestration | A visual flow-editing function based on Node-RED. It provides dedicated nodes for subscribing to Device data, updating Device data, controlling DO, and writing Virtual Tags. Users can combine data input, conditional logic, data processing, and Device control through drag-and-drop node orchestration to implement custom logic. |
Gateway SN | The serial number of the gateway, serving as its unique identifier. This number is required for software license binding and upgrades. |
License Activation | The process of importing a license file into the system and binding it to a specific Gateway SN. Upon successful activation, the system unlocks the corresponding functions and resource limits according to the License Entitlement. |
License Entitlement | The scope of resources permitted by the current software license, including the number of Devices and Tags, communication protocols, bound Tags, and functional modules. |
Industry Terms and Abbreviations
Term or Abbreviation | Full Name | Description |
LoRaWAN | Long Range Wide Area Network | A low-power, long-range wireless communication protocol designed for IoT Devices. |
LNS | LoRaWAN Network Server | A network server that manages LoRaWAN Device communications, including join procedures, session management, and data routing. |
DevEUI | DevEUI — End-device Identifier | A globally unique 64-bit identifier assigned to a LoRaWAN Device. |
JoinEUI | JoinEUI — Join-Server Identifier | A 64-bit identifier used by a LoRaWAN Device during OTAA activation, formerly known as AppEUI. |
AppKey | Application Key | A root key used by a LoRaWAN Device during OTAA activation for Device authentication and session-key generation. |
OTAA | Over-the-Air Activation | A LoRaWAN activation method in which a Device joins the network by performing a join procedure. |
ABP | Activation by Personalization | A LoRaWAN activation method in which the Device address and session keys are preconfigured. |
Uplink | Uplink | The communication direction from a LoRaWAN Device to the network server. |
Downlink | Downlink | The communication direction from the network server to a LoRaWAN Device. |
FPort | Frame Port | The port identifier used by a LoRaWAN application Payload. For downlink control, FPort must match the Device protocol and Payload Codec definition. |
CmdType | Command Type | A field in the E2C Field downlink Tag configuration that identifies the command type. Its value must exactly match the cmdType used by the corresponding downlink command in the Payload Codec. |
PLC | Programmable Logic Controller | A programmable industrial controller. |
BBMD | BACnet Broadcast Management Device | A BACnet Device or function that forwards BACnet/IP broadcast messages between different networks. |
BDT | Broadcast Distribution Table | A table used by a BBMD to record information about remote BACnet/IP networks. |
MQTT | Message Queuing Telemetry Transport | A lightweight publish-and-subscribe messaging protocol. |
MQTT Broker | MQTT Broker | A server that receives, routes, and distributes MQTT messages. |
QoS | Quality of Service | The MQTT service level used for message delivery. |
HTTP | Hypertext Transfer Protocol | A request-and-response network communication protocol. |
HTTPS | Hypertext Transfer Protocol Secure | HTTP protected by TLS encryption. |
API | Application Programming Interface | An interface used by software components to exchange data or invoke functions. |
JSON | JavaScript Object Notation | A text format commonly used to exchange structured data between systems. |
TLS | Transport Layer Security | A protocol used to protect network communications through encryption. |
CA Certificate | Certificate Authority Certificate | A certificate used to verify that the issuer of a communication certificate is trusted. |
Sparkplug B | Sparkplug B | An MQTT-based industrial IoT data specification that defines Topic organization, Device state, and Payload structure. |
SCADA | Supervisory Control and Data Acquisition | A system for supervisory control and data acquisition. |
HMI | Human-Machine Interface | An interface used to display Device or process status and support operator interaction. |
MES | Manufacturing Execution System | A system used to manage and execute manufacturing operations. |
ERP | Enterprise Resource Planning | A system used to manage enterprise resources and business processes. |
BMS | Building Management System | A system used to monitor and manage building facilities. |
Node-RED | Node-RED | A flow-based low-code orchestration tool. |
1. Product Overview
1.1 Product Introduction
E2C Field is industrial edge data software within the E2C Trinity product family, designed for distributed field environments and running on compatible Robustel edge computing gateways. It connects sensors, meters, controllers, and other field devices across dispersed locations through LoRaWAN and wired protocols such as Modbus, OPC UA, and BACnet. It provides edge data collection, processing, storage, visualization, and system integration, creating a unified data foundation for remote monitoring, field operations and maintenance, and integration with SCADA, BMS, EMS, and cloud platforms.
Built on the RobustOS Pro edge runtime, E2C Field includes an integrated LoRaWAN Network Server (LNS) based on ChirpStack, enabling direct LoRaWAN device management without an external network server. For supported devices, its built-in device codec library automatically decodes uplink payloads and generates tags, reducing manual decoding and mapping work. Together with wired protocol support and northbound interfaces, E2C Field aggregates wireless and wired device data on a single gateway and delivers usable data to local operational systems and cloud applications.
1.2 6C Core Capabilities
Built on E2C Trinity’s 6C edge computing capabilities, E2C Field establishes a complete data flow from distributed field equipment to business systems:
- Collect: Connect and manage LoRaWAN sensors through the integrated LNS and device codec library, while collecting data from wired devices across different vendors and protocols.
- Compute: Perform data processing, logic evaluation, and automation orchestration at the site through Node-RED, custom scripts, and Scenario Management, enabling faster local response and reducing reliance on the cloud and central servers.
- Continuity: Use local storage and store-and-forward mechanisms to retain relevant data during network interruptions and continue uploading it after connectivity is restored, improving data continuity in remote or weak-network environments.
- Canvas: Present equipment status, alarms, and trends through Web SCADA and charts, providing clear operational visibility across distributed sites.
- Connect: Deliver processed data to MQTT Brokers, HTTP servers, and cloud platforms through Data to Cloud, and provide data to SCADA, BMS, EMS, or other clients through Data Forwarding.
- Control: Trigger tag value updates and equipment control through local rules, alarm events, or cloud commands, supporting bidirectional workflows from monitoring to operational response where the connected devices allow it.
1.3 Typical Application Scenarios
Distributed Energy, Utilities, and Field Assets
Suitable for municipal water systems, pumping stations, distributed photovoltaic sites, oil and gas facilities, and other remote monitoring locations. E2C Field collects equipment status, environmental data, and operational metrics from LoRaWAN sensors, meters, and wired devices, and sends the data to headquarters or cloud platforms over cellular networks. During a network interruption, store-and-forward mechanisms retain relevant data locally and continue uploading it after connectivity is restored.
LoRaWAN Extension for Smart Buildings and Campuses
Suitable for retrofit projects that need to add wireless sensors to an existing BMS or building system. LoRaWAN devices for indoor air quality, temperature and humidity, water leakage, occupancy, and energy metering can be deployed without extensive rewiring. Their data can then be delivered to existing BMS, SCADA, and energy management systems through BACnet, Modbus, OPC UA, or other northbound interfaces.
Large-Area Outdoor and Agricultural IoT
Suitable for farms, growing areas, water infrastructure, and other outdoor environments where assets are dispersed, power is limited, or wired communication is impractical. Using LoRaWAN’s long-range, low-power connectivity, users can monitor soil conditions, weather, water levels, tanks, pumping stations, and other remote assets, while combining cellular backhaul, local data processing, and alarms in a centralized remote monitoring solution.
2. Software Architecture and Deployment Planning
2.1 Supported Hardware Models
The software is compatible with the LG3120 gateway model, which requires a minimum of 2 GB of RAM and RobustOS Pro version 2.4.111 or later.
2.2 Software Architecture and Working Principle
Figure 2-1: E2C Field software architecture panoramic diagram
E2C Field establishes a data path between field devices and upper-level systems:
- Southbound device connectivity: Use the built-in LNS to connect LoRaWAN sensors over long-range wireless links. Use applicable Drivers to connect wired PLCs, controllers, sensors, meters, or other data sources through Modbus, OPC UA, or BACnet protocols.
- Edge processing and applications: Perform Alarm Management, Logic Orchestration, Scenario Management, and SCADA tasks on the gateway. The built-in LNS manages LoRaWAN network parameters, device profiles, payload codecs, and live frame monitoring.
- Northbound system integration: Use Data to Cloud to deliver data to MQTT Brokers, HTTP servers, or cloud platforms through MQTT, HTTP, or Sparkplug B. Use Data Forwarding to provide data to SCADA, MES, BMS, ERP, or other clients through Modbus TCP Slave, OPC UA Server, or BACnet IP Server.
See the applicable functional chapters for supported protocols, configuration procedures, and validation methods.
3. Installation, Upgrade, and Licensing
3.1 Deployment and Pre-installation Checks
Before installing and configuring E2C Field, prepare the gateway, management network, and field devices required by the project. Only the device types and communication links used in the actual project need to be prepared.
Figure 3-1: Hardware preparation and network architecture
3.1.1 Prepare the Gateway and Management Network
- Connect the LG3120e to an appropriate industrial power supply according to its hardware installation guide, and securely install the antennas required by the project on their corresponding connectors. A LoRaWAN antenna is required when LoRaWAN devices are used. Install the cellular or Wi-Fi antennas only when the corresponding communication link is used.
- Connect the management computer to the gateway network and ensure that the computer and gateway are on the same subnet.
- Open a browser, go to the default gateway management address http://192.168.0.1, and log in to the gateway web interface. Google Chrome is recommended.
- Check the gateway model, RobustOS Pro firmware version, and RAM on the home page, and compare them with the requirements in Section 2.1, "Supported Hardware Models."
Figure 3-2: Gateway web home page showing the firmware version
- If the firmware version is earlier than the minimum version required for the gateway model, visit the Robustel Support Center and find the RobustOS Pro upgrade guide applicable to the gateway model and current version.
- If the project connects to a local upper-level system, remote management platform, or cloud platform, plan the routing and network access from the gateway to the target system in advance. Ethernet, Wi-Fi, or a cellular network can be used to access public network services, depending on the project. When a cellular network is used, install a valid SIM card and confirm that its data service is available. Internet access is not required for deployments that only perform local data collection, processing, or forwarding.
Notice: Before upgrading the firmware, read the RobustOS Pro upgrade guide applicable to the gateway model and current version, and confirm the compatibility, configuration retention, restart, downtime, and recovery requirements.
3.1.2 Prepare LoRaWAN Devices (As Required)
When LoRaWAN devices are used, complete the following preparations:
- Confirm that the operating frequency band of each device matches the LoRaWAN frequency band supported by the LG3120e and the Region configured in the system, and that it complies with the spectrum requirements of the deployment location.
- Prepare the device manufacturer, model, and related product documentation so that a matching Device Profile and Payload Codec can be selected or created.
- For OTAA, prepare the DevEUI, JoinEUI, and AppKey. For ABP, prepare the device address and the corresponding session keys. These parameters are typically available on the device label, in its configuration tool, or in the manufacturer's documentation.
- Confirm that the device power supply or battery is in normal condition. During device onboarding and data verification, place the device within the LoRaWAN coverage area of the gateway.
For detailed Device Profile, Payload Codec, and device onboarding instructions, see Chapter 6, "LoRaWAN Device Management."
3.1.3 Prepare Wired Devices (As Required)
When wired devices are used, complete the following preparations:
- Complete the power supply and wiring according to the hardware installation guides for the gateway and field devices.
- Connect Ethernet-based devices to the gateway LAN interface or to an industrial network accessible from the gateway.
- Connect RS-232 or RS-485 devices to the corresponding serial port on the gateway, and confirm that the interface type and wiring are correct.
- Connect field switches, relays, alarm signals, or other I/O signals to the corresponding gateway interfaces, and confirm that the signal type and electrical specifications meet the gateway requirements.
- Prepare the applicable Driver, device network address or serial port parameters, device address, Tag addresses, data types, and other required configuration information.
For supported protocols, connection parameters, and configuration procedures, see Chapter 7, "Wired Device Management," and the applicable protocol user guide.
3.1.4 Confirm the Gateway Time
E2C Field uses the RobustOS Pro system time and does not maintain a separate clock. Before using this system for the first time, confirm that the gateway time zone and system time are correct.
An incorrect gateway time can cause incorrect timestamps or time displays in Data Collection, Data to Cloud, Data Forwarding, and other functions. It can also affect time-based statistics and calculations, resulting in abnormal durations or even negative values. Set the correct time before collecting, archiving, reporting, or forwarding production data.
Log in to the RobustOS Pro web interface, go to Services > NTP, and configure the time according to the gateway's network environment:
Figure 3-3 NTP client configuration for an online gateway
- The gateway can access an NTP server: Select the Time Zone for the project location, enable the NTP client, and configure an NTP server accessible to the gateway. The default NTP Update Interval value of 0 synchronizes the time only once. An interval of 30 min is recommended for periodic synchronization. After submitting the configuration, open the Status tab and confirm that System Time and Last Update Time are correct.
- The gateway cannot access an NTP server: First confirm that the date, time, and time zone of the management computer are correct. Open the Status tab and click Sync to synchronize the gateway with the computer time. For a gateway operating offline for an extended period, check the system time regularly and synchronize it manually if a time difference is found.
Notice: Set the correct time before production data is generated whenever possible. If the gateway time is changed during operation, check the latest data and any time-based calculation results.
3.2 Install or Upgrade the Software
The software covered by this manual and its installation requirements are as follows:
Software | Installation Requirement | Purpose |
E2C Field | Required | Provides the main functions described in this manual. |
Node-RED | Required | Provides the runtime environment for Logic Orchestration. |
Download all of the above software from the E2C Field APP Download page. Uploading a package for the first time installs the software. If an earlier version is already installed, upload the new package directly to upgrade it. Installation and upgrade use the same entry and procedure.
3.2.1 Before You Start
- Confirm that the gateway meets the requirements in Section 2.1, "Supported Hardware Models," and complete Section 3.1, "Pre-installation Check."
- Download the package to install or upgrade from the E2C Field APP Download page.
- Confirm that the management computer can access the gateway web interface.
Warning: Do not power off the gateway, close the current page, or submit the installation operation again during installation or restart.
Notice: To upgrade the software, upload the new package directly and install it over the existing version. Existing E2C Field data is retained. Do not uninstall the earlier version first. Reinstalling after uninstallation deletes the existing data.
3.2.2 Installation or Upgrade Steps
Figure 3-4: Installing E2C Field in App Center
- Log in to the gateway web interface and go to System > App Center.
- Select the package to install or upgrade, and then click Install.
- Follow the on-screen prompt to confirm the installation.
- When the restart prompt appears after installation, click OK to restart the gateway immediately.
- After the gateway restarts, log in again. If other software must be installed or upgraded, repeat the same steps.
After installation, see "Getting Started with E2C Field" for instructions on opening E2C Field and using the main interface.
3.3 View or Upgrade the License
Figure 3-5: License Activation
The gateway includes the Free Edition of E2C Field by default. You can use the functions included in the Free Edition without uploading a license file. A software upgrade updates the E2C Field version. A license upgrade increases Device or Tag capacity, protocols, or features. One does not replace the other.
3.3.1 View the Current License
Go to System Settings > License Activation and review the following information:
Item | Description |
License Version | The currently active license edition. |
Device Serial Number (SN) | The unique identifier of the gateway. Provide this identifier to the software supplier when upgrading the license. |
Current Entitlements | The Devices, Tags, protocols, codecs, and functional modules allowed by the current license. |
The system verifies hardware capabilities during license activation. Gateways with 2 GB of RAM support a maximum of 2,000 Tags. Gateways with 8 GB of RAM support up to 5,000 Tags. If the uploaded license file exceeds the hardware limit, the system aborts activation and displays a hardware limit error message.
3.3.2 Upgrade the License
If the current license does not provide the required Device capacity, Tag capacity, protocols, or features, purchase and activate a new license to increase the available entitlements.
- Provide the Device Serial Number (SN) shown on the License Activation page to the software supplier and obtain a license file.
- Upload the license file on the License Activation page.
- Click Confirm Activation.
- After the new license is activated, verify the displayed License Version and Current Entitlements.
The activation process does not require a gateway restart and will not affect ongoing data collection or forwarding tasks.
3.4 Uninstall the Software
When E2C Field is no longer required, uninstall it through the gateway web interface.
Warning: Uninstalling E2C Field deletes its existing data. Do not uninstall the application if you still need this data.
3.4.1 Uninstallation Steps
- Log in to the gateway web interface.
- Go to System > App Center.
- Locate e2c-field in the installed application list, and then click X.
- Follow the on-screen prompt to confirm the uninstallation.
- When the operation is complete, return to System > App Center and confirm that e2c-field is no longer displayed.
4. Getting Started with E2C Field
This chapter explains how to open E2C Field, complete the initial setup, and use the global functions of the main interface.
4.1 Open E2C Field
Figure 4-1: Edge Computing menu entry in the gateway navigation
Before you begin, make sure that E2C Field is installed and enabled.
- Log in to the gateway management interface.
- Locate Edge Computing in the left or top navigation area.
- Open E2C Field.
The E2C Field operation page opens in a new browser tab.
E2C Field is enabled by default after installation. To verify or change its operating status, go to Edge Computing > E2C Field, and use the Enable toggle to enable or disable the software.
4.2 Understand the Main Interface
The main interface contains the following global areas:
Figure 4-2: Main Interface
- Menu navigation area: Located on the left side of the page. Use it to open E2C Field functions.
- Workspace: Located in the center of the page. It displays the list, configuration form, operating status, or operation result for the selected function.
- User menu area: Located in the upper-right corner. Use it to view the current account and software information, open common entries, or log out.
The available menus vary with the software license. If a function is not included in the current license, its corresponding menu is not displayed.
4.3 Use the User Menu
Open the user menu in the upper-right corner to view the current account and software information and access common entries.
UI Item | Description |
Nickname | The nickname of the current user. |
Account | The current login account. |
Role | The role assigned to the current account. |
Software Version | The installed E2C Field software version. |
License Version | The current software license version. |
License Activation | Opens License Activation. For complete license management instructions, see "Installation, Upgrade, and Licensing." |
Online User Manual | Opens the online user manual. |
Logout | Logs out of the current account. |
5. Quick Start
This chapter uses a minimum example to complete a closed loop covering LoRaWAN Data Collection and Data to Cloud. The example onboards a Dragino LDDS75 LoRaWAN distance sensor, adds its distance Tag to a Tag Group, and reports the Tag to an MQTT Broker through Standard MQTT.
This chapter covers only the key settings required to complete the closed loop. For software installation, MQTT test-environment preparation, Data Forwarding, Alarm Management, troubleshooting, and other related tasks, see E2C Field Quick Start.
5.1 Before You Begin
Before starting the configuration, confirm the following:
- E2C Field is installed and can be opened, and the gateway network and system time are configured correctly.
- The LoRa antenna is installed correctly, and a real LoRaWAN device is available within the gateway coverage area. This example uses a Dragino LDDS75 operating in the EU868 Region.
- The LoRaWAN Region, MAC Version, Regional Parameters Revision, Activation Method, Device Class, Expected Uplink Interval, and heartbeat period supported by the device are available.
- The Device EUI, Join EUI when applicable, and Application Key used for OTAA are available.
- You know how to trigger a Join or Uplink by powering on, restarting, or manually operating the device.
- An MQTT Broker accessible from the gateway and a receiver capable of subscribing to and displaying MQTT messages are available.
A real device is required to validate LoRaWAN onboarding and radio data. Do not create a device by using a fabricated Device EUI, Join EUI, or Application Key.
If no MQTT Broker is available, follow the instructions in E2C Field Quick Start to prepare a temporary test environment with Mosquitto and MQTTX.
5.2 Configuration Workflow
Complete the following two main steps:
- Collect LoRaWAN data: Confirm the Payload Codec, create and publish a Device Profile, add and publish the LoRaWAN device, and then validate the distance Tag.
- Report MQTT data: Create a Tag Group and a Standard MQTT Cloud Service, configure a Publish message, and then validate the result at the MQTT receiver.
5.3 Step 1: Collect LoRaWAN Data
5.3.1 Prepare the Payload Codec and Device Profile
Go to LNS Configuration > Payload Codecs and locate the Codec for the target device. This example uses Dragino / LD / LDDS75.
- If the applicable Codec is available and published, continue to create the Device Profile.
- If no applicable Codec is available, follow the instructions in Chapter 6, “LoRaWAN Device Management,” to import, test, and publish the Codec. Then return to this section.
Go to LNS Configuration > Device Profiles, click Create New, and configure the Device Profile as follows. When using another device model or Region, replace the applicable values according to the device documentation.
Field | Value in This Example | Description |
Payload Codec | Dragino / LD / LDDS75 | Select the verified and published Codec for the device. |
Name | Profile_LDDS75_EU868 | Enter a recognizable Profile name. |
Region | EU868 | Select the LoRaWAN frequency band used at the deployment location. |
Region Configuration | EU868 | Select the channel-plan configuration corresponding to the Region. |
MAC version | LoRaWAN 1.0.3 | Must match the LoRaWAN version supported by the device. |
Regional parameters revision | A | Must match the Regional Parameters revision supported by the device. |
Expected uplink interval (secs) | 3600 | Set this value according to the actual reporting interval. This example uses 1 hr. |
Activation Method | OTAA | Select the activation method used by the device. |
Device Class | Class-A | The battery-powered device in this example uses Class A. |
Keep the default values for the other fields. After confirming the configuration, click Publish. A device can reference the Device Profile only after the Profile is published.
Figure 5-1 Create the LDDS75 Device Profile
5.3.2 Add and Publish the LoRaWAN Device
Go to Data Collection > LoRaWAN Devices, click Add Device, and configure the device as follows. Replace the Device EUI, Join EUI, and Application Key with the values configured for the actual device.
Field | Value in This Example | Description |
Device Profile | Profile_LDDS75_EU868 | Select the Profile created and published in the previous section. |
Name | LDDS75_Sensor_01 | Enter a unique name that identifies the device location or purpose. |
Device EUI (EUI64) | a84041xxxxxxxxxx | Enter the actual globally unique 16-character hexadecimal identifier configured for the device. |
Join EUI (EUI64) | Leave blank; defaults to 0000000000000000 | Leave this field blank only when the Device is configured to use the default value 0000000000000000. If the Device uses another JoinEUI, enter the value configured on the Device. This field is not used for ABP. |
Online Detection Threshold | 3600 | The system marks the device as offline when no Uplink is received for this period. The value must not be less than the Expected Uplink Interval in the Profile. |
TTL | 86400 | Specifies how long a downlink command remains valid in the queue. This example uses the default value of 86400 sec, or 24 hr. |
Application key | ae0f079aff0cxxxxxxxxxxxxxxxxxxxx | Enter the actual 32-character hexadecimal AES-128 root key used by the device. |
After completing the form, click Next to open Tag Verification. The system generates business Tags and system Tags according to the Payload Codec. Keep the Tags required by the project, confirm their names and data types, and then click Confirm.
This example keeps distance, whose Data Type is int (int32).
After returning to the device list, click Publish LoRa in the upper-right corner and wait until synchronization succeeds. A new or modified device configuration takes effect only after it is published.
Figure 5-2 Add and publish the LoRaWAN device
5.3.3 Validate LoRaWAN Data
- Power on, restart, or manually trigger the sensor according to the manufacturer instructions so that the device generates a Join or Uplink.
- Go to Data Collection > LoRaWAN Devices and confirm that LDDS75_Sensor_01 is online.
- Click View Tags in the device operation column.
- Confirm that the Data Type of distance is int (int32), and check its Latest Value and Update Time.
- Trigger another Uplink or wait for one complete device reporting interval, and confirm that Update Time refreshes.
If the device does not join or distance has no value, first check Events for the device. To inspect raw messages and Codec decoding results, go to LNS Configuration > Live Frames.
Figure 5-3 Validate the distance Tag
Continue to Data to Cloud only after distance has a valid Latest Value and its Update Time continues to refresh.
5.4 Step 2: Report MQTT Data
This section adds the distance Tag of LDDS75_Sensor_01 to a Tag Group and reports its latest value through Standard MQTT.
5.4.1 Create a Tag Group
Go to Data to Cloud > Tag Group, click Create Group, configure the group as follows, and then click Save.
Field | Value in This Example | Description |
Name | Group_01 | Identifies the data source used by the Publish message. |
Report Type | Period | Generates data at a fixed interval for continuous validation. |
Cycle Unit | sec | Uses seconds as the reporting interval unit. |
Report Interval | 10 sec | Generates data for reporting every 10 sec. For production use, set the interval according to the data update rate, network traffic, and target-platform requirements. |
After the first save, locate LDDS75_Sensor_01 in the Tag selection window, add the published distance Tag to Group_01, and then click Save again.
The Tag Group takes effect when saved and does not need to be published separately.
The LoRaWAN device sends an Uplink according to its own reporting or heartbeat settings. The Tag Group reports the latest value already received by this system according to the interval configured in this section. Changing the MQTT reporting interval does not change how frequently the LoRaWAN device sends an Uplink.
5.4.2 Create a Standard MQTT Cloud Service
Go to Data to Cloud, click Create Cloud Service, set Cloud Service Type to MQTT, enter MQTT_Service_01 as the Name, and click Save.
Select the new Cloud Service and configure Connection Configuration as follows. The address and security settings in the table apply to the local test environment described in the standalone Quick Start. When connecting to a real MQTT service, replace them with the parameters provided by the target service.
Field | Value in This Example | Description |
Cloud Platform Type | Standard MQTT | Connects to a standard MQTT Broker. |
Server Address | 192.168.0.89 | Enter a Broker address accessible from the gateway. Do not enter localhost or 127.0.0.1 when the Broker runs on another computer. |
Port | 1883 | This example uses the common Port for unencrypted MQTT. |
MQTT Client ID | E2C_Field_Gateway_01 | Uniquely identifies this system to the Broker. It must be different from the Client ID used by MQTTX or any other connected client. |
Keep Alive | 60 | Sets the MQTT connection heartbeat interval. |
SSL/TLS | Off | The local test environment does not use encryption. Follow the security requirements of the target service when using a real Broker. |
Clear Session | No | Retains the existing MQTT session state. |
MQTT Version | v3.1.1 | Must match the MQTT version supported by the Broker. |
User Authentication | Off | The local test environment does not use authentication. Enable it and enter the credentials when required by the target service. |
The Off settings for SSL/TLS and User Authentication apply only to the local test environment. They are not default recommendations for production deployment.
After saving, confirm that the Cloud Service is enabled and check its connection status. A Connected status confirms only that this system is connected to the MQTT Broker. It does not confirm that distance is being reported.
Figure 5-4 Create and configure the Standard MQTT Cloud Service
5.4.3 Configure a Publish Message and Validate Data
In Message Management for MQTT_Service_01, select Publish, click Add, configure the message as follows, and then click Save.
Field | Value in This Example | Description |
Group | Group_01 | Selects the Tag Group containing distance. |
Topic | /field/quickstart/data | The MQTT Broker uses this value to route messages. The receiver must subscribe to the same value. |
Topic Alias | distance | Identifies the Publish configuration within this system. |
QoS | 0 | Uses QoS 0 for basic validation. |
Enabled | Yes | The system publishes messages according to the Tag Group settings only when this configuration is enabled. |
Do not configure a Subtopic in this example. Keep the default values for the other fields. After saving, confirm that the Publish message is enabled.
Figure 5-5 Configure the MQTT Publish message
Validate the reported data as follows:
- When using the test environment, connect MQTTX to the corresponding MQTT Broker and subscribe to /field/quickstart/data. Keep the Client ID automatically generated by MQTTX and confirm that it is different from E2C_Field_Gateway_01.
- When using a real MQTT service, subscribe to or view the same Topic in the target platform, actual MQTT client, or data-viewing page provided by the platform.
- Wait for at least one complete Tag Group reporting interval and confirm that the received message contains distance and its latest value.
- When it is safe to do so, change the measured distance and trigger an Uplink according to the device instructions, or wait for the next scheduled Uplink.
- Confirm that the distance value received by the MQTT receiver matches the Latest Value displayed in Data Collection.
When validation succeeds, the complete data path from the LoRaWAN device to the MQTT Broker is operating correctly.
If the Cloud Service is connected but no data is received, check the following in order:
- distance has a valid Latest Value in Data Collection.
- Group_01 contains distance.
- The Publish message is enabled.
- The configured Topic exactly matches the topic subscribed to by the receiver.
- This system and the receiver are connected to the same MQTT Broker.
If the cause is still unclear, go to Debug Logs and review the Data to Cloud logs.
6. LoRaWAN Device Management
This chapter explains how to prepare the LNS, Payload Codec, and Device Profile required by a LoRaWAN device, add and publish devices, and verify device onboarding and data collection in E2C Field.
Before adding a device, ensure that the built-in LNS is operating normally and that a matching Payload Codec and Device Profile are available. A Payload Codec and Device Profile can normally be reused by multiple devices of the same model, while activation parameters such as the DevEUI, JoinEUI, and AppKey are specific to each device.
If the required LNS, Payload Codec, and Device Profile are already available, proceed directly to Section 6.2.
6.1 Prerequisites
Complete the following three prerequisite steps before adding a LoRaWAN device.
6.1.1 Prerequisite Step 1: Verify the LNS Service
The built-in LNS manages LoRaWAN network communication, device activation, and sessions. Before adding a device, confirm that the LNS is operating normally:
- Go to LNS Configuration > Service Information.
- Confirm that the LNS service status is Running.
- Confirm that the configured Region matches the frequency band supported by the LG3120e, the operating frequency band of the LoRaWAN device, and the project deployment location.
If the LNS service is not running, restart the gateway and check again. If the issue persists, go to Debug Logs and review the LNS-related log entries.
6.1.2 Prerequisite Step 2: Prepare a Payload Codec
A Payload Codec converts an uplink payload from a LoRaWAN device into readable Tag values. If the device supports downlink control, it can also encode control data into a downlink payload that the device can interpret.
A Payload Codec is normally configured per sensor model. Multiple devices of the same model that use the same payload format can share one Codec.
6.1.2.1 Check the Codecs in the System
- Go to LNS Configuration > Payload Codecs.
- Use the page search function to enter the device manufacturer or model as a keyword.
- Confirm whether the Codec in the search results matches the actual device model, firmware version, and payload format.
- Review the fields provided by the Codec and confirm that they include the data that the project needs to collect or write.
If a matching Codec is available, proceed directly to Section 6.1.3 to prepare the Device Profile.
If no matching Codec is available, select one of the following methods:
- If the manufacturer provides a raw Codec file, use E2C Trinity Codec Converter to convert it into a TOML file supported by this system.
- If no convertible Codec is available, or if an existing Codec must be adjusted, an engineer familiar with JavaScript and the device payload specification can create a Codec or copy and modify a similar Codec.
6.1.2.2 Obtain a Manufacturer-provided Codec
Some LoRaWAN sensor manufacturers provide raw Codec files for integrating their devices with different LoRaWAN platforms. These files may be available from a product website, official GitHub repository, device documentation package, technical support, or another offline channel.
Confirm that the Codec file matches the actual device model and firmware version.
Sources for some common manufacturers and device repositories include:
- Milesight: https://github.com/Milesight-IoT/SensorDecoders
- Dragino: https://github.com/dragino/dragino-end-node-decoder
- Other vendor device repositories: https://github.com/TheThingsNetwork/lorawan-devices
Download the complete Codec file or archive and extract it on the management computer.
6.1.2.3 Convert the Codec File
If the manufacturer-provided Codec cannot be imported directly into this system, use E2C Trinity Codec Converter to convert it into a TOML file.
- Download E2C Trinity Codec Converter from the E2C Field APP Download page.
- Place the conversion tool and the extracted manufacturer Codec folder in the same directory.
- Run e2c-trinity-codec-converter.exe.
- Select the sensor Vendor and Model.
- Click Generate Codec TOML to generate the TOML file.
Figure 6-1: E2C Trinity Codec Converter interface
For supported Codec formats, conversion preparation, and the complete procedure, see How to Convert LoRaWAN Sensor Codec Formats and Import to E2C Field.
6.1.2.4 Import the Codec
After conversion, import the generated TOML file into E2C Field:
- Go to LNS Configuration > Payload Codecs.
- Click Import Codec > Import from file.
- Select the generated TOML file and complete the import.
- Locate the imported Codec in the Payload Codecs list and confirm that its name, vendor, and model are correct.
Figure 6-2: Importing a Codec from a file
6.1.2.5 Test and Publish the Codec
Whether the Codec was imported from a file or created by an engineer, it must be tested before it is associated with a Device Profile:
- Open Uplink Test for the Codec.
- Enter a sample hexadecimal payload provided in the device documentation, and then click Run Decode.
- Compare the decoded output with the expected result in the device documentation. Confirm that the field names, data types, and values are correct.
- If the device supports downlink control, open Downlink Test, enter the test data, and confirm that the generated byte array and fPort comply with the device protocol.
- If the test returns errors or warnings, correct the Codec and run the test again.
- After the test passes, click Publish.
Notice: Successful code execution alone does not confirm that the decoded result is correct. Always validate the actual decoded values using a known payload and its expected result.
To create or modify a Codec, an engineer can write the uplink decoding and downlink encoding logic in JavaScript Code Preview. This requires knowledge of JavaScript and the device payload specification and is not covered in this user guide.
Figure 6-3: Available Codecs on the Payload Codecs page
6.1.3 Prerequisite Step 3: Prepare a Device Profile
A Device Profile defines the network and communication parameters shared by a type of LoRaWAN device, including its Region, LoRaWAN version, Regional Parameters Revision, activation method, and Device Class. It also associates the Payload Codec used to interpret device data.
The same Device Profile can be reused by multiple devices with the same model, Region, and communication configuration.
6.1.3.1 Check the Device Profiles in the System
- Go to LNS Configuration > Device Profiles.
- Search for a Profile matching the device model, Region, activation method, and LoRaWAN version.
- If a matching Profile is available, confirm that it uses the correct Payload Codec.
- If no matching Profile is available, click Create New or copy a Profile with similar settings, and adjust its parameters according to the device product documentation.
6.1.3.2 Configure the Device Profile
Configure the following key fields according to the device product documentation:
Field | Description | Recommended or Example Value |
Payload Codec | Select the Codec that was confirmed, tested, and published in Section 6.1.2. | e.g., AM102_Codec |
Name | A name that identifies the device model and configuration. Include the device model and Region in the name when practical. | e.g., Profile_AM102_EU868 |
Description | Optional. Describes the applicable device model, deployment region, or purpose of the Profile. | e.g., Milesight AM102 sensor profile |
Region | The LoRaWAN regional frequency band used by the device. It must match the device, the frequency band supported by the LG3120e, and the deployment location. | e.g., EU868, US915, AU915, AS923, or CN470 |
MAC Version | The LoRaWAN MAC version supported by the device. Refer to the device product documentation. | e.g., 1.0.3 |
Regional parameters revision | The LoRaWAN Regional Parameters revision followed by the device. An incorrect value may prevent normal communication. | e.g., A, B, or RP002-1.0.0 |
ADR algorithm | The ADR algorithm used by the LNS to optimize the data rate and radio parameters. Keep the default value unless the project has a specific requirement. | e.g., Default ADR algorithm |
Flush queue on activate | Determines whether pending downlink messages are cleared when the device is reactivated or rejoins the network. This is normally recommended for OTAA devices. | e.g., Enabled |
RX1 Delay | The delay before the first receive window after an uplink message. Keep the default value unless otherwise specified in the device documentation. | e.g., 1 sec |
Expected Uplink interval (seconds) | The expected interval between normal uplink messages. Configure it according to the actual device reporting interval so that communication status can be evaluated correctly. | e.g., 3600 |
Activation Method | The activation method used by the device. It must match the actual device configuration. | OTAA or ABP |
Device Class | The LoRaWAN Class used by the device. It must match the actual device capabilities and operating mode. | e.g., Class A or Class C |
After completing the configuration, click Publish.
Figure 6-4: Creating a Device Profile
6.2 Configuration Workflow
This section assumes that the LNS is running and that the required Payload Codec and Device Profile have been prepared as described in Section 6.1.
Add and verify LoRaWAN devices in the following two steps:
- Configuration Step 1: Add and Publish DevicesSelect Z-touch Onboarding, batch import, or single-device addition according to the number of devices and their Profile distribution. After adding the devices, synchronize their configuration with the LNS. Z-touch Onboarding publishes automatically. Batch import and single-device addition require Publish LoRa.
- Configuration Step 2: Verify DataConfirm that the devices have joined the network, and check their latest Tag values and update times. If a device supports downlink control, also verify data writing.
6.3 Configuration Step 1: Add and Publish Devices
Select one device addition method according to the deployment scenario:
Method | Applicable Scenario | Characteristics |
Z-touch Onboarding | Initial deployment of multiple devices that may use different Profiles | Configures devices with different Profiles in one template and automatically completes data validation, device creation, Tag creation, and LNS synchronization and publishing. |
Batch Import (Same Profile) | Adding multiple devices that use the same Profile | Uses an import template to add multiple devices of the same type and requires manual publishing after import. |
Add a Single Device | Adding only a few devices or confirming device parameters individually | Adds devices individually through a form, allows the required Tags to be selected, and requires manual publishing after saving. |
All three methods add LoRaWAN devices. Select only the method applicable to the current project.
6.3.1 Method 1: Z-touch Onboarding (Recommended for Initial Deployment)
Z-touch Onboarding adds LoRaWAN devices in batches. After device information is entered in an Excel template and uploaded, the system automatically completes data validation, device creation, Tag creation, and LNS synchronization and publishing. Devices using different Device Profiles can be included in the same template.
Go to Data Collection > Z-touch Onboarding.
The feature contains three tabs: Overview, Onboarding, and History.
6.3.1.1 Overview
The Overview page introduces the applicable scenarios and overall workflow of Z-touch Onboarding.
Key characteristics include:
- Batch device addition: Add multiple devices with a standard template without completing a form for each device.
- Automatic validation: Check required fields, DevEUI formats, duplicate data, Profile names, and license capacity, and identify the affected row.
- Multiple Profile support: Include devices using different Device Profiles in the same template.
- Automatic end-to-end execution: Create devices and Tags and synchronize and publish the configuration to the LNS.
The overall workflow is as follows:
- Download and complete the template.
- Upload and validate the file.
- Automatically create devices and Tags.
- Automatically synchronize and publish the configuration to the LNS.
- Review the execution result and handle failed records.
Click Get Started to open the Onboarding tab.
6.3.1.2 Onboarding
Step 1: Download and Complete the Template
- Click Download Template on the Onboarding page.
- Open the downloaded XLSX file and complete the device information according to the field comments in the template.
- Ensure that each Profile name exactly matches a published Profile name on the Device Profiles page, including capitalization.
- A maximum of 2,000 devices can be imported in one task.
Step 2: Upload and Validate
- Click the upload area and select the completed template.
- Confirm that the file is correct, and then click Next.
- The system checks the file format, required fields, device identifiers, duplicate data, Profile names, and license capacity.
- If validation fails, correct the template according to the displayed row and failure reason, and then upload it again.
If the imported Tags exceed the current license capacity, reduce the import quantity or go to System Settings > License Activation to upgrade the license.
Step 3: Automatic Execution
After validation passes, the system performs the following tasks in sequence:
- Validate the template content.
- Create the devices.
- Create the Tags associated with the devices.
- Synchronize and publish the device configuration to the LNS.
The current progress is displayed on the page. After the task enters the LNS synchronization phase, other functions in the system can be opened. The result can later be reviewed in History.
During execution:
- Do not refresh or close the browser page.
- Do not modify or publish LoRaWAN devices in Data Collection > LoRaWAN Devices at the same time, because this may conflict with the current task.
After execution, the page displays:
- Total Devices: Total number of devices in the template.
- Successful: Number of devices that completed all steps.
- Failed: Number of devices that failed during any step.
Step 4: Handle Failed Records
If failed records exist, a failure list appears at the bottom of the page. Review the reason for each failure and export the failed records when required.
After correcting the template, click Upload again to upload it again.
If only LNS synchronization fails, the devices and Tags may have been created successfully, but their configuration has not been published to the LNS. In this case:
- Click Retry on the current task page; or
- Go to Data Collection and click Publish LoRa to synchronize again.
Figure 6-5: Z-touch Onboarding execution results and failed records
6.3.1.3 History
The History page displays up to 50 recent import records.
Each record contains the file name, import time, total number of devices, successful count, and failed count. The page supports:
- Searching for records by file name.
- Exporting history records.
- Exporting failed records from the Action column.
- Reviewing the result of a background task after leaving the execution page.
Figure 6-6: Z-touch Onboarding History page
When Z-touch Onboarding completes successfully, the device configuration has already been synchronized and published to the LNS. Do not click Publish LoRa again. Proceed to Section 6.4 to verify the data.
6.3.2 Method 2: Batch Import (Same Profile)
Batch import is intended for multiple devices using the same Device Profile, such as sensors with the same model, Region, and activation method.
- Go to Data Collection > LoRaWAN Devices.
- Click Batch Import.
- Download the import template provided on the current page.
- Complete the device names, device identifiers, and activation parameters according to the field comments in the template.
- Upload the completed file. The system automatically validates the file and imports valid data.
- Review the import result. If failed records exist, download the failure list, correct the data according to the failure reason, and import it again.
- After the import is complete, click Publish LoRa to synchronize and publish the new devices to the LNS.
Batch import applies only to devices using the same Profile. If the same deployment includes multiple Profiles, use Z-touch Onboarding.
6.3.3 Method 3: Add a Single Device
Single-device addition is intended for adding only a few devices or confirming device parameters individually.
- Go to Data Collection > LoRaWAN Devices.
- Click Add Device.
- Configure the device according to the following table:
Field | Description | Recommended or Example Value |
Device Profile | Select the Profile confirmed or created in Section 6.1.3. The system applies the LoRaWAN network parameters and Payload Codec from this Profile. | e.g., Profile_AM102_EU868 |
Name | A name that identifies the physical device. Include its installation location or device number when practical. | e.g., MeetingRoom_Sensor_01 |
Description | Optional. Describes the device installation location, purpose, or other supplementary information. | e.g., 3rd Floor Meeting Room A |
Device EUI (EUI64) | The globally unique 16-character hexadecimal identifier of the device. It is normally available on the device label, packaging, or configuration tool. | e.g., 24E124128C012345 |
Join EUI (AppEUI) | The 16-character hexadecimal identifier used during OTAA activation and provided by the device manufacturer. | e.g., 5572404C696E6B4C |
Application Key (AppKey) | The 32-character hexadecimal root key used for OTAA activation. This is a sensitive credential and must be protected. | e.g., 5572404C696E6B4C6F52613230313823 |
- Click Next to select Tags.
- The system displays the Tags provided by the Payload Codec associated with the Device Profile.
- Select the Tags that the project needs to collect or write, and then click Confirm.
- Click Publish LoRa to synchronize and publish the device configuration to the LNS.
Figure 6-7: Add Device form with Tag association
6.4 Configuration Step 2: Verify Data
After adding and publishing the devices, power on or restart each LoRaWAN device and ensure that it is within the LoRaWAN coverage area of the LG3120e.
6.4.1 Verify Uplink Data
- Go to Data Collection > LoRaWAN Devices.
- Check the target device Status. A green status icon indicates that the device has successfully joined the network and is communicating with the LNS.
Figure 6-8: LoRaWAN Device list showing the connection status
- Click the View Tags icon next to the device.
- Review Latest Value and Update Time.
- Confirm that Latest Value displays reasonable device data and that Update Time continues to update according to the device reporting interval.
Figure 6-9: Latest Value and Update Time in View Tags
If the device reports data but its Tag values are empty or incorrectly decoded, go to LNS Configuration > Live Frames, compare the raw payload with the decoded result, and confirm that the Device Profile uses the correct Payload Codec.
If the device does not join or report uplink data, check the following items in order:
- Confirm that the device is powered on and within the gateway coverage area.
- Confirm that the LNS service status is Running.
- Confirm that the Region matches the frequency band supported by the device and LG3120e.
- Confirm that the Device Profile matches the device configuration.
- Confirm that the DevEUI, JoinEUI, and AppKey are correct.
- Confirm that the actual device reporting interval is not longer than the current waiting time.
- Review Debug Logs for LNS or device activation errors.
6.4.2 Verify Downlink Data (Optional)
Perform the operations in this section only when both the LoRaWAN Device and its associated Payload Codec support downlink control.
LoRaWAN Tags generated automatically by the system use Read Only permission by default. Even when the Payload Codec contains downlink Tags and encoding logic, the user must manually configure the permission and downlink parameters of the target Tag.
- Go to Data Collection > LoRaWAN Devices.
- Click the View Tags icon beside the target Device.
- Locate the Tag to be used for downlink control and click its edit icon.
- Set R/W Permission to Read & Write.
- Enter FPort and CmdType according to the definition of the corresponding downlink Tag in the Payload Codec.
- Click Save.
Core Field | Meaning and Notes |
R/W Permission | LoRaWAN Tags generated automatically by the system are Read Only by default. Change the target Tag to Read & Write when downlink control is required. |
FPort | The application port used for the LoRaWAN downlink message. The value must exactly match the FPort used by the corresponding downlink Tag in the Payload Codec. |
CmdType | The command type used by the Payload Codec to identify and encode the downlink command. The value must exactly match the CmdType used by the corresponding downlink Tag in the Payload Codec. |
Figure 6-10: Configuring a writable LoRaWAN Tag
After configuring the Tag, verify the downlink control:
- In the Device View Tags page, locate the Tag configured as Read & Write.
- Click the Modify Tag Value icon.
- Enter the command or value to write, and then click Confirm.
- Confirm that the command was executed by checking the actual Device state or subsequent uplink data.
Figure 6-11: Modify Tag Value dialog for a downlink command
Notes:
- FPort and CmdType must exactly match the definition of the corresponding downlink Tag in the Payload Codec. Otherwise, the Payload Codec may be unable to generate the correct downlink payload.
- A Tag can be used for downlink control only when the Payload Codec defines the corresponding downlink Tag and encoding logic. Manually changing an arbitrary Tag to Read & Write does not add downlink support when the Payload Codec does not support that Tag.
- Some LoRaWAN Devices enter sleep mode to reduce power consumption. For these Devices, a downlink command is queued and transmitted when the Device opens a receive window after its next uplink. A successful write result in the interface does not necessarily mean that the physical Device has executed the command immediately.
7. Wired Device Management
Wired device data collection is achieved through three steps: creating a device, adding or importing Tags, and publishing. Wired devices communicate with the gateway over Ethernet or serial connections using standard industrial protocols.
Supported Protocols
Protocol Category | Protocol List |
General Protocols | Modbus TCP, Modbus RTU, OPC UA, BACnet IP, BACnet MS/TP, DI/DO |
For connection parameters, Tag addresses, and detailed configuration instructions for a specific Driver, select the applicable protocol in the E2C Field How To.
7.1 Before You Begin
- Make sure network addresses, serial settings, unit IDs, Tag addresses, and data types match the field device.
- Make sure the southbound Device is powered on and connected to the gateway through Ethernet, a serial port, or the required physical interface.
- Prepare the Device Driver, connection parameters, and Tag address list.
- Make sure the network addresses, serial settings, Unit IDs, Tag addresses, and data types match the field Device.
7.2 Configuration Workflow
- The following general workflow applies to all wired Device protocols supported by this system. The fields displayed when adding a Device or Tag vary according to the selected Driver and connection method. Complete the configuration according to the field Device documentation and actual communication parameters.
- Create a Device, add or confirm Tags, save the settings, and publish the configuration.
- Check the Device Status and real-time Tag data.
For wired Devices, add Tags individually or import a point table.
For protocol-specific connection parameters, Tag-address rules, and configuration examples, refer to the following supplemental guides where applicable:
- E2C Trinity Modbus Protocol (Southbound) User Guide
- E2C Trinity BACnet Protocol (Southbound) User Guide
7.3 Create a Wired Device
7.3.1 Add a Wired Device
- Go to Data Collection > Device and click Add.
- Select the Driver and enter the device name and connection parameters required by that Driver.
- Click Save. To add Tags immediately, click Save and Configure Tag.
Configuration notes:
- The device name must be unique and cannot contain special characters or spaces.
- Each Driver requires different connection parameters. For example, Modbus TCP requires IP Address, Port, and Slave Address, while OPC UA requires Server URL and Authentication Method. Use the field device parameters and the form displayed for the selected Driver.
- Device status shows as online only after data is reported for the first time.
Figure 7-1: Add a Wired Device
7.3.2 Add a DI/DO Device
- Go to Data Collection > Device and click Add.
- Select protocol IO Device > DO/DI and fill in the device information.
- Click Save. An IO device can only be added once. The polling period supports millisecond level, minimum 100 ms, default 100 ms.
- Click Read IO to automatically obtain the current gateway IO information. No manual Tag addition is required.
- Use the mode toggle to switch DI/DO mode. The system reads the latest data based on the actual mode.
Note: When DI is in counting mode, counting does not start from 0 upon publishing. Click the clear button to reset the value to zero.
7.4 Add Tags
The system supports two ways to add Tags for wired devices: adding them individually and importing a point table.
7.4.1 Add Tags Individually
- Select the target device under Data Collection > Device.
- Click Add above the Tag list.
- Enter the Tag information required by the selected Driver.
- Click Save.
Figure 7-2: Add a Tag
7.4.2 Import a Point Table
Importing a point table allows you to add, update, or delete multiple Tags for the selected Device. Because Tag fields vary by Driver, use a point table that matches the Driver of the target Device.
To reduce troubleshooting costs caused by batch import errors, it is recommended to add one tag manually first, verify communication, and confirm the address format is correct before performing the batch import.
- Go to Data Collection > Device, select the target Device, and click Import.
- If you already have a point table for the current Driver and software version, select that file. Otherwise, click Click to download the import template to download a template from the current system.
- Complete the template, upload the file, and click Next Step.
- Select Add Tags, Update Tags, or Delete Tags as required. You can select all three operations for the same import.
- Start the import and review the result. The system processes valid entries and reports the Tags that were added, updated, deleted, skipped, or rejected. An invalid entry does not prevent other valid entries from being imported.
Figure 7-3: Import a Point Table
Import operations:
Operation | Processing rule |
Add Tags | If a Tag name does not exist on the selected Device, the system creates it. An existing Tag with the same name is not duplicated. |
Update Tags | If a Tag name already exists, the system updates its configuration. Fields that cannot be updated are skipped. |
Delete Tags | A Tag that exists on the Device but is not included in the point table is deleted. Tags listed in the point table are not affected. |
Point table rules:
- Download a new template from the software version currently in use. A template from an earlier version may not match the current fields.
- The point table must match the Driver of the target Device. Do not use a template created for another Driver.
- The file must be in xls or xlsx format. Do not rename or reorder the column headers, merge or split cells, or insert blank rows.
- The system uses the Tag name to determine whether to add or update. Tag names must be unique within the same Device and within the same Tag Group.
- If a Group named in the point table does not exist, the system creates it automatically.
Warning: When Delete Tags is selected, the system deletes existing Tags that are not included in the point table. Before continuing, make sure the file contains every Tag that must be retained. It is recommended that you click Export Point Table to back up the current configuration first. Deleting a Tag can also invalidate downstream configurations that reference it, including Alarm Management, Scenario Management, Data to Cloud, Data Forwarding, and SCADA Management.
7.4.3 Export Tags
- Export Point Table : Go to Data Collection > Device and click Export Point Table to export device Tags for import into other devices.
7.5 Publish and Verify
After Device or Tag information changes, click Publish Wired. The new Data Collection configuration takes effect only after it is deployed. Tags added, updated, or deleted through a point-table import must also be published.
Modifications requiring device synchronization take effect only after successful sync via Publish. Device-agnostic changes (such as Tag units or device descriptions) take effect in the system instantly without sync.
7.5.1 Verify Collected Data
- Review the import result first if a point table was imported. Correct rejected or skipped entries and import again.
- Publish the configuration, then check the collection status of the target Device in the Device list.
Figure 7-4: Device Status
- Confirm that Latest Value is correct and that the update time continues to refresh.
- If the result is abnormal, check device power, the physical connection, network or serial settings, the selected Driver, the Tag address, and the data type.
- If the issue remains, open Debug Logs and review the collection success, failure, and runtime information.
Figure 7-5: Data Monitoring
7.6 Understand Device Status, Tag Status, and Communication Statistics
The status shown on the page represents the Data Collection communication state. It does not represent the physical online state or network connection state of the field device.
- Device Status: Indicates whether the collection engine determines that the Device can currently provide valid data. Polling Drivers use periodic read results. The exact rule can vary by Driver.
- Tag Status: Indicates whether the Tag currently has valid collection data. A successful poll or a received subscription update refreshes the Tag data.
- Success/Failure Count: Records successful and failed collection communication events to help evaluate communication quality. It is not a count of Device online or offline transitions.
- Active Time: While Device Status is normal, the system continuously refreshes Active Time. When Device Status becomes abnormal, Active Time stops updating, and the retained time indicates approximately when the Device became abnormal.
When a status is abnormal, check the latest Tag value, update time, and Debug Logs together. Do not use only the status icon on the Device card to determine whether the field device is physically online.
7.7 Manage Devices and Tags
7.7.1 Modify the Value of a Writable Tag
The write icon in the Latest Value column is available only when Read/Write Permission is set to Read & Write and the Tag currently has valid communication data.
- Locate the target Tag and click the write icon in the Latest Value column.
- In the Modify Tag Value dialog, enter or select a value that matches the Tag data type.
- Click Save, and then confirm that the latest value and update time are as expected.
Write rules by data type:
- Bool: Select true or false from the drop-down list.
- Integer types: Enter an integer within both the data type range and the range accepted by the field device.
- Floating-point types: Enter an integer or decimal value. The actual precision and displayed result depend on the data type, southbound protocol, and field device.
- String, Raw Data, and BCD: The value must not exceed the length configured for the Tag or supported by the field device, and its character encoding must match the field device.
Note: If Data Operation is configured for the Tag, the page displays the calculated value, but the write operation sends the raw device value. Convert the required displayed value back to its raw value before writing.
Warning: This operation writes data to the field device and may change the device or process state. Before writing, confirm the target Tag, value, permitted range, and site conditions.
7.7.2 Manage Devices
The system supports the following device management operations:
- Edit a Device: Modify device information.
- Copy a Device: The device name is not copied. Tags are copied without their associated Groups.
- Enable or disable a Device: A disabled Device stops collecting data, and downstream functions that depend on it can no longer receive new data. After enabling the Device again, check each downstream function.
- Delete a Device: Cannot be undone and invalidates downstream configurations. Creating another Device with the same name does not guarantee restoration of original downstream configurations.
Notes:
- After editing or copying a Device, save the changes and publish the configuration again.
- Before deleting a Device, make sure related functions no longer use it. After deletion, check and reconfigure every affected function.
7.7.3 Manage Tags
The system supports the following Tag management operations:
- Edit a Tag: Modify Tag information.
- Delete a Tag: Can affect configurations that depend on it.
- Batch delete Tags: Select multiple Tags and delete them together.
Notes:
- After editing a Tag, publish the configuration again.
- Before deleting a Tag, check and remove any associations that are no longer required.
- Auto-generated IO tags are system-protected and cannot be deleted manually.
8. Data to Cloud
8.1 Overview
Data to Cloud sends data collected or processed by the gateway to a third-party cloud platform, MQTT Broker, or business system that provides an HTTP API.
8.2 Before You Begin
Before configuration, confirm the following:
- The Devices and Tags to be reported have been published, Device communication is normal, and the Tags continuously generate valid data.
- The gateway can access the target Server Address and the required Ports are open.
- You have obtained the Server Address, Port, authentication information, certificates, Topics, or HTTP API information from the target-platform administrator.
- You have confirmed the data format, reporting frequency, and validation method required by the target platform.
For cloud commands or field-device writeback, also confirm that the target Tag is set to Read/Write, the southbound protocol and field Device support write operations, and the operation has been tested in a safe environment.
8.3 Configuration Workflow
A third-party Cloud Service cannot select an individual Device Tag directly. Organize the Tags to be reported into a Tag Group before configuring the Cloud Service.
Data to Report | Data Source | Read First |
Current Device Tag values, such as temperature, status, output, and energy consumption | Tag Group | 8.4 Tag Groups |
After configuring the Tag Group, select the applicable Cloud Service section based on the connection method provided by the target platform:
Connection Method Provided by the Target Platform | Cloud Service | Section |
MQTT Broker, Topics, and authentication information | MQTT | 8.5 MQTT Cloud Service |
HTTP or HTTPS API | HTTP Server | 8.6 HTTP Cloud Service |
Explicit support for or requirement to use Sparkplug B | Sparkplug B | 8.7 Sparkplug B Cloud Service |
Use the following reading sequence:
- MQTT data reporting: Read Section 8.4 first, followed by Sections 8.5.2, 8.5.3, and 8.5.5. If no real MQTT service is available, read Section 8.5.1 first. For cloud commands or Tag writeback, also read Section 8.5.4.
- HTTP data reporting: Read Section 8.4 first, followed by Sections 8.6.1 and 8.6.2.
- Sparkplug B data reporting: Read Section 8.4 first, followed by Sections 8.7.1, 8.7.2, and 8.7.3.
Tags in the same Tag Group are reported as one data set. When planning Tag Groups, consider the business relationship between Tags, their update frequency, reporting interval, and the target platform's processing method. Avoid putting Tags with substantially different purposes or reporting frequencies in the same Group.
For every Cloud Service, configure the connection, associate the data source, and validate the actual data on the target platform. A connected status or successful connection test confirms only the basic connection and does not replace actual data validation.
8.4 Tag Groups
A Tag Group organizes the Device Tags to be reported and applies unified reporting rules to them.
8.4.1 Create a Tag Group
Figure 8-1 Example Tag Group configuration using Group_01 and distance
- Go to Data to Cloud > [Tag Group] and click [Create Group].
- Enter the [Name], select the [Report Type], and configure the [Cycle Unit] and [Report Interval] as required.
- Click [Save and Configure Tag] and select the published Tags to be reported.
- Save the configuration. The Tag Group can then be selected as the data source of a Cloud Service.
Core Field | Meaning and Notes |
Name | Identifies the data source and must be unique. |
Report Type | Supports Period, Change, and Change & Period. It cannot be changed after creation. |
Cycle Unit | Applies to periodic reporting and cannot be changed after creation. |
Report Interval | Determines the periodic reporting interval. An excessively short interval increases gateway load, network traffic, and target-platform processing load. |
Select a reporting mode according to the application:
- Period: Sends data at a fixed interval. Use it when the target platform requires continuous, complete data snapshots.
- Change: Sends data when a Tag value changes. Use it for status changes, event notifications, or scenarios where lower traffic is preferred.
- Change & Period: Sends data immediately when a value changes and also at a fixed interval. Use it when both timely changes and data continuity are required.
Notes:
- [Report Type] and [Cycle Unit] cannot be changed after creation. Confirm the target platform's timeliness and data-volume requirements before the first save.
- If High-speed Data Collection is enabled for a Device with a polling interval below 1 second, the system automatically generates a corresponding High-speed Data Collection Group. Its Name, Cycle Unit, and Report Interval are inherited from the Device configuration and cannot be changed in Tag Groups.
- Duplicate Tag names are not allowed in the same Tag Group because the receiver cannot reliably identify the data by name.
- After changing the Tags or reporting rules in a Group, validate the data received by the target platform again.
8.5 MQTT Cloud Service
An MQTT Cloud Service reports Tag Group data to an MQTT Broker through Publish messages and can receive cloud commands through Subscribe messages. If only data reporting is required, do not configure a Subscribe message.
The complete configuration contains up to five steps. Skip the optional steps that do not apply to your use case:
- 8.5.1 Prepare an MQTT Test Environment: Use this step only when no real MQTT service is available. Skip it when a real Broker or target platform is available.
- 8.5.2 Create and Configure an MQTT Cloud Service: Select Standard MQTT, Azure IoT, or AWS IoT and establish the connection.
- 8.5.3 Configure a Publish Message: Reports Tag Group data. Skip it only when MQTT is used exclusively to receive cloud commands without reporting data.
- 8.5.4 Configure a Subscribe Message: Receives cloud commands or writes values to Tags. Skip it when only data reporting is required.
- 8.5.5 Validate MQTT Data and Troubleshoot: Validate the connection, Publish messages, and Subscribe messages according to the actual configuration.
8.5.1 Prepare an MQTT Test Environment (Optional)
If a real MQTT Broker or target platform is available, use its connection parameters and skip this section. If no MQTT service is available, Mosquitto can be used as a test Broker and MQTTX can be used to verify message reception.
Figure 8-2 Example of a locally running Mosquitto test Broker
For complete test-environment preparation and example parameters, see Chapter 4, Configure MQTT Reporting and Validate Data, in the E2C Field Quick Start. Section 4.2, Prepare an MQTT Test Environment (Optional), describes the Mosquitto and MQTTX test environment, while Sections 4.3 through 4.5 provide the complete Tag Group, MQTT Cloud Service, Publish message, and data-validation example. The test environment validates only the basic data path and does not replace validation of the real platform's authentication, permissions, security, or data format.
8.5.2 Create and Configure an MQTT Cloud Service
Figure 8-3 Example interface for creating an MQTT Cloud Service
- Go to Data to Cloud and click [Create Cloud Service].
- Set [Cloud Service Type] to MQTT, enter the [Cloud Service Name], and save the configuration. Cloud Service Type cannot be changed after creation.
- Under [Connection Configuration], select the [Cloud Platform Type]. The system supports Standard MQTT, Azure IoT, and AWS IoT.
- Complete the connection configuration according to the target-platform requirements and save it.
- Check the Cloud Service connection status. After the connection succeeds, configure a Publish or Subscribe message as required.
Note: [Connected] means only that the system is connected to the MQTT Broker. It does not mean that Tag data has been successfully reported. Continue by configuring a Publish message and validating actual data at the receiver.
8.5.2.1 Standard MQTT
Core Field | Meaning and Notes |
Server Address, Port | Enter the Broker IP address or domain name and listener Port. Do not include a protocol prefix such as mqtt:// or mqtts:// in Server Address. The Port must match the SSL/TLS setting. |
MQTT Client ID | Must be unique within the same Broker. Duplicate Client IDs may cause the Broker to disconnect an existing client. |
SSL/TLS | Select the encryption method required by the Broker. For a pre-shared key connection, enter [identity] and [Pre-shared Key(PSK)]. For certificate-based encryption, configure [Certificate] and [SSL Secure]. |
Certificate | For a server certificate issued by a trusted CA, select CA signed server certificate; no certificate file needs to be uploaded. For a private CA or self-signed certificate, select CA or Self signed certificates and upload the [CA File]. For mutual TLS, also upload the matching [Client Certificate File] and [Client Key File]. |
SSL Secure | When enabled, the system verifies the server certificate provided by the Broker. The certificate content, domain name, and validity period must meet the Broker's security requirements. |
Clear Session | Determines whether session state is cleared when reconnecting. Set it according to Broker and application requirements for offline messages and subscription state. |
MQTT Version | Select a version supported by the Broker. |
User Authentication | Enable it when required by the Broker and enter the [MQTT Username] and [MQTT Password]. |
[Response Topic] and [Qos] under [Advanced Configuration] allow a custom function to return processing results to a specified Topic. Leave them unconfigured when the target platform does not require this response.
[Last Will Message] allows the Broker to publish a preset message if the gateway disconnects unexpectedly, helping the target platform detect an abnormal offline state. Configure [Topic], [Qos], [Retain], and [Payload] only when the target platform uses this mechanism.
When sending production data over a public or untrusted network, use SSL/TLS and authentication as required by the target platform to avoid transmitting credentials and business data in plain text.
8.5.2.2 Azure IoT
Core Field | Meaning and Notes |
Azure Auto-fill | Paste the target Device's Connection String so that the system can parse and complete the connection information. This method is recommended to reduce manual input errors. |
IoTHub Name | The Azure IoT Hub Server Address, which can be generated by Auto-fill. |
Device ID | Must match the target Device registered in Azure IoT. |
Port | Usually 8883. Follow the current Azure IoT connection requirements. |
Verify Server Certificate | When enabled, upload the [CA File] required by Azure IoT. |
User Authentication | When enabled, enter the [Shared Access Policy Name] and [Shared Access Policy Key]. Auto-fill can generate them from the Connection String. |
8.5.2.3 AWS IoT
Core Field | Meaning and Notes |
Terminal Node | Enter the AWS IoT Core Device data endpoint for the target AWS account and Region. |
Port | Usually 8883. Follow the current AWS IoT Core connection requirements. |
MQTT Client ID | Must comply with the AWS IoT policy and must not duplicate another online client ID. |
CA File, Device Certificate, Client Key File | Upload the certificate files required by AWS IoT Core. The Device Certificate and Client Key File must match. |
Clear Session | Set it according to project session requirements. |
MQTT Version | Select a version supported by the Broker. |
8.5.3 Configure a Publish Message
Figure 8-4 Example interface for configuring an MQTT Publish message
Saving the connection configuration does not start data reporting. A Publish message must also be created and enabled.
- Under [Message Management] in the Cloud Service details, select [Publish] and click [Add].
- Enter the [Topic Alias] and [Topic], and select the [Group] and [Qos].
- Configure [Function Code] only when the default message structure must be changed for the target platform.
- Save the configuration and confirm that the Publish message is enabled.
Core Field | Meaning and Notes |
Topic Alias | Identifies the Publish configuration within this system. |
Topic | The Publish Topic used by the Broker to route messages. The receiver must subscribe to the same Topic or a subscription that matches it. A Publish Topic cannot contain subscription wildcards such as # or +. |
Group | Select an existing Tag Group that continuously generates valid data. Tags in the Group are organized into the same reported message. |
Qos | Select 0, 1, or 2 according to the level supported by the target platform and the message-delivery requirements. |
Function Code | Generates or transforms the reported data and must return valid, non-empty data. See 8.8 Function Code Advanced Configuration (Optional) and Appendix A.2, Function Code Reference. |
To send different Tags in the same Group to different Topic levels, use [Subtopic Configuration] to map Tags to Subtopics. Changing the Group referenced by a Publish message clears the existing Subtopic configuration. Confirm the impact before making the change.
8.5.4 Configure a Subscribe Message (Skip When Only Reporting Data)
A Subscribe message receives control commands, parameter settings, or other downstream data from an MQTT Broker or cloud platform.
- Under [Message Management] in the Cloud Service details, select [Subscribe] and click [Add].
- Under [Subscribe Topic], enter the [Topic Alias] and [Topic], and select the [Qos].
- To return the processing result to the target platform, configure the [Topic] and [Qos] under [Response Topic]. Otherwise, leave them empty.
- Configure [Tag Configuration] and [Function Code] to define downstream-message parsing and Tag write operations.
- Save the configuration and confirm that the Subscribe message is enabled.
Core Field | Meaning and Notes |
Topic Alias | Identifies the Subscribe configuration within this system. |
Subscribe Topic | The Topic and Qos used to receive commands. The Topic must match the Topic used by the target platform to publish commands and must be unique within the same Cloud Service. |
Response Topic | Returns the processing result to the target platform. It cannot be the same as the Subscribe Topic. Leave it empty when no response is required. |
Tag Configuration | Maps fields in a downstream message to target Tags. Cloud field names must exactly match the target Tag names, including capitalization. |
Function Code | Parses the downstream message and performs the configured processing. See 8.8 Function Code Advanced Configuration (Optional) and Appendix A.2, Function Code Reference. |
Warning: Before first using cloud writeback, validate the target Tag, write value, and Device action in a safe test environment. For commands that start or stop equipment or change operating parameters, ensure that personnel and equipment safety will not be affected.
For writeback, also confirm the following:
- The target Device and Tag exist, have been published, and communicate normally.
- The target Tag is set to Read/Write.
- The write value matches the Tag data type and the range accepted by the field Device.
- The southbound protocol and field Device support write operations.
8.5.5 Validate MQTT Data and Troubleshoot
8.5.5.1 Validate a Publish Message
- Confirm that both the Cloud Service and Publish message are enabled and that the Cloud Service status is [Connected].
- Under [Data Collection], confirm that the source Tag has a valid [Latest Value] and that its [Update Time] continues to refresh.
- On the real platform or in MQTTX, subscribe to the [Topic] configured in the Publish message.
- Wait for at least one complete Report Interval and confirm that messages are received.
- Check the fields, values, timestamps, data format, and reporting frequency.
8.5.5.2 Validate a Subscribe Message and Tag Writeback
- Confirm that the Subscribe message is enabled.
- From the real platform or MQTTX, send a test message that meets the Tag Configuration and Function Code requirements to the [Topic] in the Subscribe configuration.
- Under [Data Collection], confirm that the target Tag value changes as expected and that the field Device performs the intended action.
- If a [Response Topic] is configured, confirm that the target platform receives the processing result.
8.5.5.3 Common Issues
Symptom | Possible Cause | Solution |
MQTT connection fails | The Broker is not running or accepts only local connections. | Confirm that the Broker is running and listening on a network interface accessible to the gateway. |
MQTT connection fails | Server Address, Port, network, or firewall problem | Confirm that the gateway can access the Broker address and Port, and check intermediate network policies and the Broker computer's firewall. |
The MQTT connection repeatedly drops | The MQTT Client ID duplicates another client's ID. | Use a unique Client ID for E2C Field, MQTTX, and every other client. |
MQTT connection fails | Authentication, MQTT version, or SSL/TLS configuration mismatch | Check the username, password, MQTT version, encryption method, certificates, and keys against the Broker requirements. |
The status is Connected but the receiver gets no data | No valid source value, an empty Group, a disabled Publish message, or the wrong Group | Check the data and associations in this order: Data Collection, Tag Group, and Publish. |
The status is Connected but the receiver gets no data | The receiver subscribes to the wrong Topic, or Function Code returns empty data. | Subscribe to the Topic in the Publish configuration and debug the Function Code return value. |
Cloud writeback fails | Topic, message structure, Tag name, or capitalization mismatch | Check the Subscribe Topic, downstream message format, Tag Configuration, and Function Code. |
Cloud writeback fails | The Tag is not writable, the data type is incorrect, or the Device does not support writes. | Confirm that the Tag is Read/Write, the value matches the type and range, and both the protocol and Device support writes. |
If these checks do not identify the problem, go to [Debug Logs] and locate the error by Cloud Service name, event time, and error message.
8.6 HTTP Cloud Service
An HTTP Cloud Service sends Tag Group data to a cloud platform, Web server, or another system that provides an HTTP API through HTTP POST or PUT requests. Each HTTP Cloud Service is directly associated with one Group and does not require a separate Publish message.
An HTTP Cloud Service contains the following two steps:
- 8.6.1 Create and Configure an HTTP Cloud Service: Configure the target API, Headers, and Tag Group. If the target API accepts the default JSON format, do not enable Packet Reassembly or configure Function Code.
- 8.6.2 Validate HTTP Data and Troubleshoot: Confirm the request and actual data on the target server or in the business system.
8.6.1 Create and Configure an HTTP Cloud Service
Figure 8-5 Example interface for creating an HTTP Cloud Service
- Go to Data to Cloud and click [Create Cloud Service].
- Set [Cloud Service Type] to HTTP Server, enter the [Cloud Service Name], and save the configuration.
- Select the [Method], enter the complete [Server Address], and configure Headers according to the target API requirements.
- Select the [Group].
- Configure [Packet Reassembly] and [Function Code] only when the default request body must be transformed, and set [Request Timeout] according to the target-server response time.
- Save the configuration and confirm that the HTTP Cloud Service is enabled.
Core Field | Meaning and Notes |
Method | Select POST or PUT according to the target API requirements. |
Server Address | Enter the complete HTTP or HTTPS address, including the protocol, host, Port, and API path. Omitting http:// or https:// causes the request to fail. |
Parameter Name, Parameter Value | Configure HTTP Headers. The system uses content-type: application/json by default. Put authentication information in Headers as required by the target API; do not place it in the URL. |
Group | Select an existing Tag Group that continuously generates valid data. Each HTTP Cloud Service can be associated with only one Group. |
Packet Reassembly | Filters, calculates, or transforms the default request data. Leave it disabled when the target API accepts the default JSON format. |
Function Code | Used when Packet Reassembly is enabled. It must return valid, non-empty data. Validate the result with the page's debugging function before saving. See 8.8 Function Code Advanced Configuration (Optional) and Appendix A.2, Function Code Reference. |
Request Timeout | Sets the maximum time to wait for a server response. Configure it according to network quality and API response time to avoid treating a normal request as timed out. |
[Server Address] supports a Tag name enclosed in braces, such as {Tag Name}, as a placeholder for dynamically generating the request address from the Tag value. The referenced Tag must be in the current data source, its name must match exactly, and it must have a valid value. Otherwise, the system may generate an invalid address and the request may fail.
When sending production data over a public or untrusted network, use HTTPS and do not enter production credentials in a public test service.
8.6.2 Validate HTTP Data and Troubleshoot
- Confirm that the HTTP Cloud Service has been saved and enabled and that the selected Group continuously generates valid data.
- Wait for at least one complete Report Interval.
- Check API request records, server logs, or the actual received data on the target server.
- Verify the Method, Server Address, Headers, request body, data values, and reporting frequency.
A successful server status means only that the request reached the server and received a response. It does not necessarily mean that the target business system processed the data correctly. Confirm the final result using the HTTP response, server logs, and actual data on the target platform.
Symptom | Possible Cause | Solution |
The HTTP request times out or cannot connect | Server Address has no protocol, DNS resolution fails, the Port is closed, or the network is blocked. | Check the complete URL, DNS, target Port, firewall, and network path from the gateway to the server. |
The server returns an authentication error | Incorrect Header name, authentication value, or credential | Check the Headers and credentials against the target API documentation. Do not place sensitive authentication information in the URL. |
The server receives no data | The Group has no valid data or the Cloud Service is disabled. | Check Latest Value and Update Time under Data Collection, and confirm the Group and Cloud Service status. |
The request address is invalid | The placeholder Tag does not exist, its name does not match, or its value is empty. | Confirm that the placeholder references a valid Tag in the current Group and check the Tag name and capitalization. |
The request arrives with an empty or invalid body | Packet Reassembly or Function Code returns an invalid result. | Check the function output with the page's debugging function. Disable Packet Reassembly when the target API accepts the default JSON. |
The response is successful but the business system has no data | The API accepted the request, but downstream business processing failed. | Check the HTTP response body, target-server logs, and final data in the business system. |
If these checks do not identify the problem, go to [Debug Logs] and continue troubleshooting with the target-server logs.
8.7 Sparkplug B Cloud Service
A Sparkplug B Cloud Service sends a Tag Group to a supported industrial platform using standardized Device, Tag, and status structures. The system automatically handles standard Topics, the Protobuf data format, and Device lifecycle messages.
A Sparkplug B Cloud Service contains the following three steps, all of which are required to complete data reporting:
- 8.7.1 Create and Configure a Sparkplug B Cloud Service: Establish the Broker connection and configure the Sparkplug B node identifiers.
- 8.7.2 Configure Data Publishing: Associate the Tag Group and confirm the Device ID.
- 8.7.3 Validate Sparkplug B Data and Troubleshoot: Check the Edge Node, Device, Tag values, and data quality on the target platform.
8.7.1 Create and Configure a Sparkplug B Cloud Service
Figure 8-6 Example interface for creating a Sparkplug B Cloud Service
- Go to Data to Cloud and click [Create Cloud Service].
- Set [Cloud Service Type] to Sparkplug B, enter the [Cloud Service Name], and save the configuration.
- Enter the connection information and configure authentication and SSL/TLS as required by the target platform.
- Save the configuration and check the connection status.
Core Field | Meaning and Notes |
Server Address, Port | Enter the MQTT Broker address and Port used by the target Sparkplug B platform. |
Group ID | A Sparkplug B logical group identifier used to organize gateway data by area, production line, or another business structure on a target platform such as SCADA. |
Edge Node ID | Identifies the current edge node and serves as the gateway's node identifier under the Group ID. The Device serial number is entered by default. |
SSL/TLS | Select whether to use certificate-based encryption according to the Broker requirements. When enabled, configure [Certificate] and [SSL Secure] for the certificate type. |
Certificate | Select CA signed server certificate for a trusted CA certificate. For a private CA or self-signed certificate, select CA or Self signed certificates and upload the [CA File]. For mutual TLS, also upload the matching [Client Certificate File] and [Client Key File]. |
User Authentication | Enable it when required by the Broker and enter the [MQTT Username] and [MQTT Password]. |
The combination of [Group ID] and [Edge Node ID] must be unique in the system. Changing the Edge Node ID causes the existing offline data for that node to be lost. Confirm the impact before saving.
Sparkplug B uses MQTT v3.1.1 and forces [Clear Session] off. These settings are locked and do not need to be changed.
8.7.2 Configure Data Publishing
- Under [Message Management], click [Add].
- Select the [Group].
- Confirm the [Device ID]. By default, the system uses the Group ID as the Device ID. You can change it according to the target platform's Device plan. A Device ID must be unique within the same Sparkplug B Cloud Service.
- Save the configuration and confirm that the Publish configuration is enabled.
The system automatically handles standard Topics, Device Birth and Death messages, and data messages. You do not need to configure Topics manually. Sparkplug B does not support Function Code reassembly or Subscribe messages.
[Device ID] identifies the data source under the Edge Node ID. When Tag collection fails, the system sets is_valid in the Sparkplug B Metric PropertySet to false and sets error_code to 500 (GeneralError). The target platform should evaluate Tag values together with is_valid and error_code.
8.7.3 Validate Sparkplug B Data and Troubleshoot
- Confirm that the Cloud Service and Publish configuration are enabled and that the connection status is normal.
- Confirm that the referenced Tag Group continuously generates valid data.
- On the target platform, check whether the configured Group ID and Edge Node ID are displayed.
- Check whether the corresponding Device ID is displayed under the node.
- Wait for at least one complete Report Interval and confirm that Tag values, update times, and data quality continue to update.
Symptom | Possible Cause | Solution |
The Broker connection fails | The address, Port, authentication information, or certificate does not meet the target-platform requirements. | Check the Broker connection information, network, user credentials, and certificates. |
The target platform does not display the Edge Node | The target platform does not support Sparkplug B, or the Group ID and Edge Node ID do not follow the platform plan. | Confirm platform compatibility and check the identifiers and their uniqueness. |
The Edge Node exists but no Device is displayed | The Publish configuration is disabled, the Group has no valid data, or the Device ID conflicts. | Check the Publish status, data source, and Device IDs within the same Cloud Service. |
Tags do not update or their quality is invalid | Tag collection has failed or the data source has stopped updating. | Check Latest Value and Update Time under Data Collection, and check is_valid and error_code on the target platform. |
If these checks do not identify the problem, go to [Debug Logs] and continue troubleshooting with the Broker logs and node status on the target Sparkplug B platform.
8.8 Function Code Advanced Configuration (Optional)
Use Function Code when the default message format or processing logic does not meet the requirements of the target platform. Function Code is supported in the following configurations:
- MQTT Publish messages: transforms the data sent to the MQTT Broker.
- MQTT Subscribe messages: parses received messages and performs Tag writes or other processing.
- HTTP Packet Reassembly: transforms the data sent in an HTTP request.
Sparkplug B does not support Function Code.
If the target platform can use the default message format provided by the system, Function Code is not required. For common examples, see Appendix A.2, Function Code Reference. For input and return structures, system APIs, and additional examples, see the E2C Trinity Script Development Guide.
8.8.1 Edit and Validate Function Code
The Function Code editor provides the following supporting functions:
Function | Description |
Data Format | Displays the data structure passed to Function Code by the current function. |
View Tags | Displays the Devices and Tags that can be referenced by Function Code. |
View Parameters | Displays system or custom parameters that can be used by Function Code. |
View Help | Displays the supported methods, input structure, and return requirements for the current function. |
Run | Runs Function Code using the entered test data. |
Result | Displays the function result so that its data structure and content can be checked. |
To configure Function Code:
- Write or adjust the Function Code according to the requirements of the target platform.
- Use Data Format to confirm the input structure, and use View Tags, View Parameters, and View Help as required.
- Enter representative test JSON data and click Run.
- Under Result, confirm that the returned result is not empty and that its structure, fields, and values meet the requirements of the target platform.
- Save the configuration only after the result has been verified.
If the function returns an empty result or an error, check the input structure, field names, parameter references, and return structure. Related execution information can also be reviewed under Debug Logs.
8.8.2 Use RSA Encryption or Decryption in Function Code
When the target platform requires RSA encryption or decryption of MQTT or HTTP message content, Function Code can use the following methods:
Purpose | Method | Parameters | Return Value |
RSA encryption | Edge.EncryptRSAString(publicKey, contentStr) | publicKey: public-key file name; contentStr: content to encrypt. | Returns the encrypted hexadecimal string on success or an empty string on failure. |
RSA decryption | Edge.DecryptRSAString(privateKey, contentStr) | privateKey: private-key file name; contentStr: content to decrypt. | Returns the decrypted string on success or an empty string on failure. |
Before using these methods, upload the required public-key or private-key file as described in 17.4 Certificates.
The file name used in Function Code must include its file extension and exactly match the File Name displayed on the Certificates page. Before saving the Function Code, use Run to check the result. If the method returns an empty string, check the file name and extension, key type, and input content.
Note: Certificates in this section stores public-key and private-key files referenced by Function Code for RSA encryption or decryption. TLS certificates used by MQTT, HTTP, or Sparkplug B connections must still be uploaded or selected in the connection configuration of the applicable Cloud Service. These certificates serve different purposes.
9. Data Forwarding
Data Forwarding converts Tags collected by the system into standard industrial protocol data for SCADA, MES, BMS, HMI, host software, or other third-party systems. For a writable mapping, the third-party system can also modify the corresponding Tag through the forwarding protocol.
Data Forwarding supports Device Tags as mapping sources. The service configuration, mapping, and validation workflow is the same for all source types; this chapter uses Device Tags as the example.
The following forwarding services are supported:
Forwarding Service | Applicable Scenario | Main Configuration Characteristics |
Modbus TCP Slave | Connects to PLCs, SCADA, HMIs, or host software that use Modbus TCP. | Requires a Slave Address, function code, and register address. |
Opcua Server | Connects to SCADA, MES, or industrial software that supports OPC UA. | Provides data through nodes and supports authentication and secure connections. |
BACnet IP Server | Connects to a BMS, building automation system, or BACnet client. | Requires a Local Device ID, object type, and instance number. |
Only one service of each forwarding type can be created. If a service of the same type already exists in the list, edit the existing service.
9.1 Before You Begin
Before configuring Data Forwarding, confirm the following:
- Complete the Device and Tag configuration under Data Collection, and confirm that the Tags to be forwarded continuously provide valid data.
- Make sure the third-party system can reach the gateway IP address and planned service port.
- Determine the forwarding protocol, data type, address, and read/write permission required by the third-party system.
- Identify the actual target system that will receive the forwarded data. If the target system is temporarily unavailable or additional troubleshooting is required, prepare one of the optional test tools recommended in this chapter.
- For write-back, confirm that both the source Tag and southbound device support writes, and make sure a test write cannot cause unintended equipment operation.
Warning: Write-back changes the source Tag and may further affect field equipment or process states. For initial verification, use a safe test Tag and test value. Restore the Tag to its original state after verification.
9.2 Configuration Workflow and General Information
Complete the following four main tasks to configure Data Forwarding:
- Create and configure a forwarding service.
- Add Tag mappings.
- Submit and apply the configuration.
- Verify the forwarded data. If write-back is required, also verify data writes.
9.2.1 Select the Mapped Value
All three forwarding services can expose either the Data Operation Value or Data Original Value of a Tag.
Mapped Value | Description | Applicable Scenario |
Data Operation Value | Provides the result after the configured Data Operation is applied to the Tag. | The target system needs an engineering value after scaling, unit conversion, or another calculation. |
Data Original Value | Provides the original value collected from the field device without applying the Tag's Data Operation. | The collected data is being commissioned, or the target system processes the original value. |
Mapped Value Setting selects the value used by the current mapping. Default Mapped Value Setting in the service Basic Settings affects only mappings created afterward and does not change existing mappings. To change the value source or another non-editable setting of an existing mapping, delete and recreate the mapping.
9.2.2 Write-Back Requirements
The ability to read a mapping does not necessarily mean that the mapping is writable. Write-back requires all of the following conditions:
- The mapping permission allows writes.
- The Modbus function code, OPC UA node, or BACnet object type supports writes.
- The source Tag is configured as Read & Write.
- The southbound device and corresponding data address support writes.
- The written value matches the data type and permitted range of the target device.
9.3 Configure Modbus TCP Slave
Modbus TCP slave maps Tags to Coils, Discrete Inputs, Input Registers, or Holding Registers. A third-party Modbus TCP client reads the data by using the gateway IP address, service port, Slave Address, function code, and Mapped Address.
Related Guide: For an end-to-end example covering Modbus TCP Slave configuration, Tag-to-register mapping, client connection, data verification, and write-back testing, see the E2C Trinity Modbus TCP Slave Protocol (Northbound) User Guide.
The guide provides a complete application example for the E2C Trinity product family and may use another E2C application in its screenshots or procedures. For E2C Field, follow the interface names, configuration rules, and supported features described in this manual and displayed in the actual software interface.
9.3.1 Create and Configure the Service
- Go to Data Forwarding and click Create.
- Select Modbus TCP Slave for Driver, and then click Save.
- Open the Configuration tab for Modbus TCP Slave and enable the service.
- Complete the Basic Settings, and then click Submit.
Setting | Description |
Port Number | Service port used by Modbus TCP clients. The range is 1 to 65535. The client must use the same port. |
16-bit Integer Byte Order | Byte order for 16-bit integers. The current read-only default is AB. |
32-bit Integer Byte Order | Byte order for 32-bit integers. The current read-only default is ABCD. |
32-bit Float Byte Order | Byte order for 32-bit floating-point values. The current read-only default is ABCD. |
64-bit Integer Byte Order | Byte order for 64-bit integers. The current read-only default is ABCDEFGH. |
Maximum Connections | Number of Modbus TCP clients that can connect at the same time. The range is 1 to 32. |
Default Mapped Value Setting | Selects Data Operation Value or Data Original Value as the default for mappings created afterward. |
The Port Number must not conflict with another service running on the gateway. If the service cannot start, check whether the configured Port is already in use. When changing the Port, configure the Modbus TCP client to use the same value.
Click Reset to discard unsubmitted changes to the Basic Settings and restore the last submitted configuration.
9.3.2 Add a Slave
Modbus TCP mappings are organized by Slave. Each Slave has an independent Modbus Mapping Table.
Figure 9-1 Example interface for adding a Modbus TCP Slave
- In the Slave list, click [Add].
- Enter the [Mapping Table Name] and [Slave Address].
- Click [Save]. Open the new Modbus Mapping Table to add Tag mappings.
Core Field | Description and Notes |
Mapping Table Name | Identifies the Modbus Mapping Table. It cannot be changed after saving. |
Slave Address | Identifies the Slave accessed by the Modbus TCP client. Slave Addresses within the same Modbus TCP Slave service must be unique. |
9.3.3 Add Modbus Mappings
Add mappings individually, or select multiple Tags from the same Device and assign consecutive addresses in a batch.
9.3.3.1 Add One Mapping
- Open the Modbus Mapping Table for the required slave and click Add.
- Select Device and Tag. The system displays the source Tag's R/W Permission and Original Data Type.
- Configure the mapped value, mapped data type, function code, and initial address.
- Click Save.
Setting | Description |
Device | Selects the southbound Device that owns the source Tag. |
Tag | Selects the Tag to forward. |
Mapped Value Setting | Selects Data Operation Value or Data Original Value for the current mapping. |
Mapped Data Type | Defines the data type read by the third-party client. It must be compatible with the source data and client decoding method. |
Bit Position | When an integer source type is mapped to bool, selects the Bit to extract. Bit positions start at 0. |
Initial Mapping Function Code | Selects the Modbus data area used by the mapping. |
Initial Mapped Address | Defines the initial address of the mapping. The range is 1 to 65536. |
Mapped Address | Client address automatically generated from the function code, initial address, and data type. |
The Modbus data areas and read/write methods are as follows:
Data Area | Read Function Code | Write Function Code | Read/Write Characteristics |
Coil | 01 | 05, 15 | bool, Read & Write. |
Discrete Input | 02 | Not supported | bool, Read Only. |
Input Register | 04 | Not supported | Register data, Read Only. |
Holding Register | 03 | 06, 16 | Register data, Read & Write. |
9.3.3.2 Batch Add Mappings
- Open the Modbus Mapping Table for the required slave and click Batch Add.
- Select Initial Mapping Function Code and Initial Mapped Address.
- Select a Device and then select the Tags to map.
- Set Mapped Value Setting and Mapped Data Type for the selected Tags. Enter Bit Position when Bit mapping is required.
- Check the addresses generated by the system, and then click Save.
The system assigns consecutive addresses according to the initial address, Tag order, and register quantity occupied by each data type. For example, 32-bit data normally occupies two consecutive 16-bit registers. Address ranges occupied by different mappings must not duplicate or overlap.
Note:
- A mapping that extracts a specified Bit from an integer source and maps it to bool is Read Only.
- When editing an existing mapping, only Initial Mapped Address and Bit Position can be changed. To change another field, delete and recreate the mapping.
- Different Modbus clients may use offsets starting at 0 or reference addresses such as 00001, 30001, and 40001. When configuring the client, use the function code and Mapped Address displayed in the mapping table and confirm the address base used by the client.
9.3.4 Data Verification and Troubleshooting
After configuration, use the actual Modbus TCP master, SCADA, HMI, or host software to verify the forwarding result. Modbus Poll is optional and is only required when the actual target system is temporarily unavailable or additional troubleshooting is needed.
9.3.4.1 Verify with the Actual Target System
- Open the Status tab and confirm that the service is started.
- In the actual target system, enter the gateway IP address and service port, and configure the same Slave ID, function code, initial address, and quantity as the mapping.
- Decode the data according to the Mapped Data Type and byte order, and compare the result with the source Tag under Data Collection.
- Change safe test data and confirm that the value in the target system updates accordingly.
- If the project requires write-back, write a safe value to a Read & Write test mapping. After confirming that the source Tag and southbound device are updated, restore the original value.
9.3.4.2 Verify with Modbus Poll (Optional)
Recommended download: Modbus Poll official download page
- Start Modbus Poll and go to Connection > Connect.
- Select Modbus TCP/IP as the connection method, enter the gateway IP address and configured service port, and then connect.
- Go to Setup > Read/Write Definition, and configure the same Slave ID, function code, initial address, and quantity as the mapping.
- Set the data display format according to the Mapped Data Type. For example, for a float mapping, select the target registers in the data area and use Format to select a floating-point format that matches the service byte order.
- Compare the Modbus Poll value with the source Tag under Data Collection. Change safe test data and confirm that the value updates accordingly.
- To verify write-back, double-click a writable test Coil or register and write a safe test value. After confirming that the source Tag and southbound device are updated, restore the original value.
If verification fails, check the applicable symptom below:
Symptom | Solution |
The client cannot connect | Check whether the service is enabled and started, whether the gateway IP address and port match, whether the network is reachable, whether the firewall allows the port, and whether the current connection count has reached the configured maximum. |
The client connects, but the value is 0, incorrect, or does not update | Check the Slave ID, function code, address base, quantity, displayed data type, and byte order. Also confirm that the source Tag continuously provides valid data. For multi-register data, the read range must completely cover the consecutive addresses occupied by the value. |
Write-back fails | Check the source Tag permission, mapped data area and write function code, write address, data type, and value range. Also confirm that the southbound device supports writes. Bit mappings do not support write-back. |
9.4 Configure Opcua Server
Opcua Server exposes Tags as OPC UA nodes for SCADA, MES, industrial software, or another system that supports OPC UA.
9.4.1 Create and Configure the Service
Figure 9-2: Opcua Server connection configuration
- Go to Data Forwarding and click Create.
- Select Opcua Server for Driver, and then click Save.
- Open the Configuration tab for Opcua Server and enable the service.
- Complete the Basic Settings. For User authentication, enter the Username and Password. For Sign&Encrypt, upload the Server Certificate and Server Private Key.
- Click Submit and apply the latest configuration.
Setting | Description |
Port Number | Port used by OPC UA clients. The range is 1 to 65535. |
Maximum Connections | Number of OPC UA clients that can connect at the same time. The range is 1 to 32. |
Default Mapped Value Setting | Selects Data Operation Value or Data Original Value as the default for mappings created afterward. |
Authentication Mode | Anonymous allows a client to connect anonymously. User requires the client to use the Username and Password configured on this page. |
Username | Required for User authentication and used by the OPC UA client to connect. |
Password | Required for User authentication and must match the client setting. |
Security Mode | None does not sign or encrypt messages. Sign&Encrypt signs and encrypts messages. |
Server Certificate | Required for Sign&Encrypt and must match the Server Private Key. |
Server Private Key | Required for Sign&Encrypt and must match the Server Certificate. |
Note: Username and Password are required when User is selected. Server Certificate and Server Private Key are required when Sign&Encrypt is selected.
9.4.2 Add Tag Mappings
Opcua Server adds mappings through batch selection. Select one or more Tags at a time.
- Click Add in OPCUA Mapping Table.
- Select a Device and then select the Tags to expose to the OPC UA client.
- Set Mapped Value Setting and Mapped Data Type for the selected Tags. Enter Bit Position when Bit mapping is required.
- Click Save and apply the latest mapping configuration.
Setting | Description |
Device | Selects the southbound Device that owns the source Tag. |
Tag | Selects the Tags to expose as OPC UA nodes. Multiple Tags can be selected. |
R/W Permission | Displays the client's read/write permission for the node. Actual writes also depend on whether the source Tag and southbound device support writes. |
Original Data Type | Displays the data type of the source Tag. |
Mapped Value Setting | Selects Data Operation Value or Data Original Value for the current mapping. |
Mapped Data Type | Defines the data type exposed by the OPC UA node. It must be compatible with the source data. |
Bit Position | When an integer source type is mapped to bool, selects the Bit to extract. Bit positions start at 0, and this mapping is Read Only. |
To change the value source, data type, or another non-editable setting, delete and recreate the mapping.
9.4.3 Data Verification and Troubleshooting
After configuration, use the actual OPC UA client, SCADA, MES, or other industrial software to verify the forwarding result. UaExpert is optional and is only required when the actual target system is temporarily unavailable or additional troubleshooting is needed.
The client connection address format is opc.tcp://gateway-IP-address:port, for example, opc.tcp://192.168.0.1:4840.
9.4.3.1 Verify with the Actual Target System
- Open the Status tab and confirm that the service is started.
- Add the Opcua Server connection address in the actual target system, and select the same Authentication Mode and Security Mode as the service.
- Connect and browse the mapped nodes. Compare the node values with the source Tags under Data Collection.
- Change safe test data and confirm that the node value in the target system updates accordingly.
- If the project requires write-back, write a safe value to a writable test node. After confirming that the source Tag and southbound device are updated, restore the original value.
9.4.3.2 Verify with UaExpert (Optional)
Recommended download: UaExpert official download page
- Start UaExpert and click Add Server on the toolbar, or go to Server > Add.
- Under Advanced, enter the Opcua Server connection address and select the same Authentication Mode and Security Mode as the service. For User authentication, also enter the Username and Password.
- Connect. When using a secure connection for the first time, follow the UaExpert prompt to trust the Server Certificate.
- Locate the mapped Tag nodes under Address Space and drag the required nodes to Data Access View.
- Compare the node values with the source Tags under Data Collection. Change safe test data and confirm that the node values update accordingly.
- To verify write-back, double-click the Value of a writable test node and enter a safe test value. After confirming that the source Tag and southbound device are updated, restore the original value.
If verification fails, check the applicable symptom below:
Symptom | Solution |
The client cannot connect | Check whether the service is enabled and started, whether the server address and port match, whether the network is reachable, whether the firewall allows the port, and whether the current connection count has reached the configured maximum. For User authentication, also check the Username and Password. |
The client connects, but no nodes or node data are available | Confirm that the required mappings have been added and the latest configuration has been applied. Check whether the source Device is online, whether the source Tags continuously provide valid data, and whether the Mapped Data Type is compatible. |
A secure connection fails | Confirm that the client and service use the same Security Mode, and check whether the Server Certificate and Server Private Key match. For the initial connection, also follow the client prompt to trust the Server Certificate. |
Write-back fails | Check the node permission, source Tag permission, written data type, and value range. Also confirm that the southbound device supports writes. Bit mappings do not support write-back. |
9.5 Configure BACnet IP Server
BACnet IP Server converts Tags into standard BACnet objects for a BMS, building automation system, SCADA, or other BACnet client to discover and access.
Related Guide: For an end-to-end example covering BACnet IP Server configuration, Tag-to-BACnet-object mapping, and data verification with Yabe, see the E2C Trinity BACnet Protocol (Northbound) User Guide.
The guide provides a complete application example for the E2C Trinity product family and may use another E2C application in its screenshots or procedures. For E2C Field, follow the interface names, configuration rules, and supported features described in this manual and displayed in the actual software interface.
9.5.1 Create and Configure the Service
- Go to Data Forwarding and click Create.
- Select BACnet IP Server for Driver, and then click Save.
- Open the Configuration tab for BACnet IP Server and enable the service.
- Complete the Basic Settings. Enable BBMD and configure the BDT only when broadcasts must be forwarded across BACnet/IP networks.
- Click Submit and apply the latest configuration.
Setting | Description |
Local Network Port | Selects the gateway interface connected to the BACnet network. The client must be able to reach the service through the network of this interface. |
Port Number | UDP port used by BACnet/IP. The range is 1 to 65535. It must not duplicate a port used by BACnet Data Collection in the system or another UDP port already in use. |
Local Device ID | Device Object Instance ID of the system on the BACnet network. The range is 0 to 4194303, and the ID must be unique on the same BACnet network. |
Default Mapped Value Setting | Selects Data Operation Value or Data Original Value as the default for mappings created afterward. |
Enable BBMD | Enables BACnet Broadcast Management Device to forward broadcasts across BACnet/IP networks. |
BDT List | Defines the remote BACnet/IP networks that participate in broadcast forwarding. Entries can be added, imported, and exported. |
9.5.1.1 Configure the BDT (Optional)
When the client and gateway are on different BACnet/IP networks and the project uses BBMD to forward broadcasts, enable Enable BBMD and maintain the BDT List.
Each BDT entry contains the following information:
Setting | Description |
IP Address | IP address of the remote BBMD or BACnet/IP network. |
Port Number | UDP port used by the remote BACnet/IP service. The range is 1 to 65535, and the default is 47808. |
Host Mask | Defines the broadcast forwarding range. The default is 255.255.255.255. Enter the value according to the BACnet network plan. |
BDT entries with the same IP Address, Port Number, and Host Mask cannot be added more than once. BBMD is normally not required when devices are discovered and accessed directly within the same subnet.
9.5.2 Add BACnet Mappings
Add BACnet objects individually, or select one Mapping Object Type and add multiple Tags in a batch.
9.5.2.1 Add One Mapping
- Click Add in BACnet IP Mapping Table.
- Select Mapping Object Type, Device, and Tag.
- Complete Instance number, Conversion Mode, Enable +1 Offset, or Status Count as applicable to the selected object type.
- Click Save and apply the latest mapping configuration.
9.5.2.2 Batch Add Mappings
Figure 9-3: BACnet batch add mapping configuration
- Click Batch Add in BACnet IP Mapping Table.
- Select Mapping Object Type, enter Initial Mapped Address, and set Conversion Mode and Offset Setting as required.
- Select a Device and then select the Tags to map.
- Set Mapped Value Setting for the selected Tags. For a multi-state object, also check or enter Status Count.
- Check the consecutive instance numbers generated by the system, and then click Save and apply the latest mapping configuration.
Setting | Description |
Mapping Object Type | Selects the BACnet object type exposed to clients. |
Device | Selects the southbound Device that owns the source Tag. |
Tag | Selects the source Tag to map. |
R/W Permission | Displays the object's read/write permission. Actual writes also depend on whether the source Tag and southbound device support writes. |
Original Data Type | Displays the data type of the source Tag. |
Mapped Value Setting | Selects Data Operation Value or Data Original Value for the current mapping. |
Mapped Data Type | Displays the data type exposed by the BACnet object. |
Instance number | Identifies the BACnet object in the current service. The range is 0 to 4194303, and it must be unique within the service. |
Mapped Address | Automatically generated from the object type and instance number, for example, AI:2. |
Conversion Mode | Defines how values are converted. Round, Ceil, and Floor are supported. This setting applies to both forwarding and write-back. |
Enable +1 Offset / Offset Setting | Enable +1 Offset is displayed when adding one mapping, and Offset Setting is displayed when adding mappings in a batch. When enabled, source values starting at 0 are converted to BACnet multi-state values starting at 1. |
Status Count | For MSI, MSO, or MSV, defines the number of states available to the object. The range is 1 to 256. |
The BACnet object types and conversion rules are as follows:
Mapping Object Type | Read/Write Characteristics | Allowed Source Types | Conversion Rule |
AI | Read Only | ushort, short, uint, int, ulong, long, float, double | Converted to REAL (float32). Converting high-precision data may cause precision loss, and an out-of-range value may fail to process. |
AO, AV | Read & Write | ushort, short, uint, int, ulong, long, float, double | Converted to REAL (float32). Converting high-precision data may cause precision loss, and an out-of-range value may fail to process. |
BI | Read Only | Types other than string, Raw Data, and BCD | 0 maps to OFF or INACTIVE; a non-zero value maps to ON or ACTIVE. |
BO, BV | Read & Write | Types other than string, Raw Data, and BCD | 0 maps to OFF or INACTIVE; a non-zero value maps to ON or ACTIVE. |
MSI | Read Only | ushort, short, uint, int, ulong, long | Uses the integer value. BACnet multi-state values start at 1. |
MSO, MSV | Read & Write | ushort, short, uint, int, ulong, long | Uses the integer value. BACnet multi-state values start at 1. |
Note:
- When Enable +1 Offset or Offset Setting is enabled, source values 0, 1, 2, and 3 are converted to BACnet multi-state values 1, 2, 3, and 4. When disabled, the source values are preserved. A negative source value triggers a fault flag.
- For a BACnet source Device, Status Count is obtained from the Tag information. After changing Status Count under Data Collection, delete and recreate the corresponding mapping.
- For a non-BACnet source Device, enter Status Count.
- During batch addition, the system generates consecutive instance numbers from Initial Mapped Address. If any generated instance number duplicates an existing mapping, the entire batch fails to save. Change the initial address and save again.
9.5.3 Data Verification and Troubleshooting
After configuration, use the actual BMS, SCADA, or other BACnet client to verify the forwarding result. Yabe is optional and is only required when the actual target system is temporarily unavailable or additional troubleshooting is needed.
9.5.3.1 Verify with the Actual Target System
- Open the Status tab and confirm that the service is started.
- In the actual target system, select a network interface that can communicate with the gateway BACnet interface, and use the same BACnet/IP port as the service.
- Discover BACnet devices and identify the service by its Local Device ID.
- Browse the mapped objects and compare Present_Value with the source Tag under Data Collection.
- Change safe test data and confirm that Present_Value in the target system updates accordingly.
- If the project requires write-back, write a safe value to a writable test object. After confirming that the source Tag and southbound device are updated, restore the original value.
9.5.3.2 Verify with Yabe (Optional)
Recommended download: Yabe project download page
- Start Yabe and click Add device.
- Select BACnet/IP, select a computer network adapter that can communicate with the gateway BACnet interface, set the same port as BACnet IP Server, and then start discovery.
- Under Devices, identify the BACnet Device provided by the system by its Local Device ID.
- Expand the Device, select the required object, and view Present_Value under Properties.
- Compare Present_Value with the source Tag under Data Collection. Change safe test data and confirm that Present_Value updates accordingly.
- To verify write-back, execute Write Property on a writable test object such as AO, AV, BO, BV, MSO, or MSV, and modify Present_Value. After confirming that the source Tag and southbound device are updated, restore the original value.
If verification fails, check the applicable symptom below:
Symptom | Solution |
The client cannot discover the service | Check whether the service is enabled and started, whether Local Network Port and Port Number are correct, whether Local Device ID conflicts with another Device, whether the client uses the correct network adapter, and whether the client and gateway are on the same subnet. For discovery across subnets, also check the BBMD and BDT configuration. |
The client discovers the service, but no mapped objects or object data are available | Confirm that the required mappings have been added and the latest configuration has been applied. Check whether the source Device is online, whether the source Tags continuously provide valid data, and whether the object type is compatible with the source data type. |
The object value is incorrect | Check Mapped Value Setting, Mapping Object Type, Conversion Mode, Offset Setting, and Status Count. For a multi-state object, also confirm that the source value is within the valid state range. |
Write-back fails | Confirm that the selected object type is writable, and check the source Tag permission, written data type, value range, and whether the southbound device supports writes. |
If a forwarding service must be accessed across an untrusted network, restrict its access source according to project security requirements and avoid exposing industrial protocol services directly to the public internet.
10. Scenario Management
Scenario Management converts time schedules, system startup, field data, alarms, and cloud commands into automated tasks. A Scenario defines when a task is triggered, while an action defines the operation performed after the trigger. By combining Scenarios and actions, users can automate repetitive operations and respond to changes in field conditions.
10.1 Scenario Types
The system supports the following six Scenario types:
Scenario Type | Trigger Method | Typical Use |
Scheduled Control | Runs the configured actions at the specified time. | Change an operating parameter at a scheduled time or control auxiliary equipment during a planned period. |
Cycle Control | Runs the configured actions repeatedly at the specified interval in seconds, minutes, or hours. | Refresh a setpoint or operate auxiliary equipment at regular intervals. |
Power-on Execution | Runs the configured actions when the system starts. | Write initialization values or set a DO to a predefined state after system startup. |
Data Linkage | Runs the configured actions when the selected Tag meets the specified condition. | Start a fan when temperature exceeds a threshold or control drainage equipment according to a water-level Tag. |
Alarm Control | Runs the configured actions when the selected alarm is triggered. | Activate an indicator or perform a predefined response when an equipment alarm occurs. |
Cloud Command | Runs the configured actions when the selected Cloud Service receives a message on the specified subscription Topic. | Execute a permitted remote operation after receiving a command from the cloud. |
These examples illustrate common configuration approaches. Select the actual trigger conditions and actions according to the project requirements.
10.2 Action Types
Each Scenario can use one or more of the following action types:
Action Type | Description | Typical Use |
Execute Function | Runs the configured JavaScript function. | Apply custom data processing or control logic. See Appendix A.2, Function Code Reference. |
Write Tag Value | Writes the configured value to the selected Tag. | Change a writable setpoint or equipment parameter. |
DO Control | Controls the selected gateway DO. | Operate switching equipment such as an indicator, relay, fan, or solenoid valve. |
An action can be configured in either of the following ways:
- Shared action: Create the action under Action Management, and then use Reference when configuring a Scenario. This is suitable when the same action is used by multiple Scenarios.
- Scenario-specific action: Use Add while configuring a Scenario. This action is used only by the current Scenario.
10.3 Before You Start
Complete the applicable preparations for the Scenario type and action:
- For Data Linkage, publish the target Device and Tags under Data Collection, and confirm that the Tags provide valid data.
- For Alarm Control, create the required Alarm Rule and confirm that the alarm can be triggered.
- For Cloud Command, configure the required Cloud Service and prepare the subscription Topic.
- For Write Tag Value, confirm that the target Tag supports writing and that Device communication is normal.
- For DO Control, check the target DO, external wiring, and connected equipment.
- For Execute Function, prepare and verify the function according to the intended processing or control logic.
Warning: Execute Function, Write Tag Value, and DO Control can change equipment or process states. Before enabling a Scenario for the first time, verify the target Device, Tag, value, DO wiring, and site conditions. Use safe, controlled test conditions that do not affect normal operations.
10.4 Configuration Workflow
Configure and verify a Scenario as follows:
- If the same action will be reused by multiple Scenarios, create a shared action under Action Management. See Section 10.5.
- Create a Scenario, configure its trigger conditions and actions, and save it. See Section 10.6.
- Enable the Scenario and verify the trigger and action results under safe test conditions. See Section 10.7.
If the action is used only by one Scenario, skip Step 1 and create the action directly while configuring the Scenario.
10.5 Configure a Shared Action (Optional)
Use Action Management to configure an action that can be referenced by multiple Scenarios.
Figure 10-1 Action Management page
- Go to Scenario Management > Action Management.
- Select the Execute Function, Write Tag Value, or DO Control tab.
- Click Add.
- Enter the action name and complete the settings for the selected action type.
- Click Save.
After the action is saved, it can be selected through Reference when creating or editing a Scenario.
Use the operation controls on the applicable tab to edit or delete a shared action. Before editing or deleting an action, confirm whether it is referenced by an active Scenario and verify the affected Scenarios after the change.
10.6 Create a Scenario
- Go to Scenario Management and click Add.
- Enter the Scenario name and select the required Scenario Type.
- Configure the trigger according to the selected Scenario type.
Figure 10-2 Add Scenario page
Scenario Type | Required Trigger Configuration |
Scheduled Control | Set the execution time. |
Cycle Control | Set the execution interval and select seconds, minutes, or hours. |
Power-on Execution | No additional trigger condition is required. The actions run when the system starts. |
Data Linkage | Select the target Tag and configure the trigger condition. |
Alarm Control | Select the alarm that triggers the Scenario. |
Cloud Command | Select the Cloud Service and enter the subscription Topic. |
- In the action area, click Reference to select a shared action from Action Management. To create an action used only by the current Scenario, click Add, select Execute Function, Write Tag Value, or DO Control, and complete the applicable settings.
- Check the trigger condition and action target, and then click Save.
After saving, return to the Scenario list and enable the Scenario when it is ready to run.
10.7 Verify the Scenario
Verify the Scenario under safe, controlled conditions before using it for normal operations.
- Select test equipment, a test Tag, or a DO that will not affect normal operations.
- Enable the Scenario.
- Trigger the Scenario according to its type:
- For Scheduled Control or Cycle Control, wait for the configured time or interval.
- For Power-on Execution, restart the system under controlled conditions.
- For Data Linkage, make the selected Tag meet the configured condition.
- For Alarm Control, trigger the selected alarm.
- For Cloud Command, send a test message to the configured subscription Topic through the selected Cloud Service.
- Confirm that the function runs, the target Tag value changes, or the DO and connected equipment respond as expected.
- Restore the test condition, written value, or equipment state after verification.
For Cycle Control, observe more than one execution interval to confirm that the Scenario runs at the configured frequency.
10.8 Manage Scenarios
Use the operation controls on the Scenario Management page to edit, delete, enable, or disable a Scenario.
Figure 10-3 Scenario management operations
- Edit: Modify the Scenario settings. After saving the change, verify the trigger and action again.
- Delete: Delete a Scenario that is no longer required. Confirm the deletion in the confirmation dialog.
- Enable: Start monitoring the configured trigger condition and allow the Scenario to run its actions.
- Disable: Stop the Scenario from running its actions without deleting its configuration.
Before deleting a Scenario or shared action, confirm that the configuration is no longer required.
10.9 Troubleshooting
10.9.1 An Enabled Scenario Does Not Run
Check the following items:
- Confirm that the Scenario is enabled.
- For Scheduled Control and Cycle Control, confirm that the gateway time, time zone, and configured execution time or interval are correct.
- For Data Linkage, confirm that the selected Tag provides valid data and meets the configured condition.
- For Alarm Control, confirm that the selected alarm has been generated.
- For Cloud Command, confirm that the selected Cloud Service is connected and that the subscription Topic matches the Topic used by the sender.
- Confirm that the Scenario references the intended shared action or contains the required Scenario-specific action.
10.9.2 The Scenario Runs but the Target Does Not Respond
- For Execute Function, check the function logic and the Device and Tag names referenced by the function.
- For Write Tag Value, confirm that the target Tag is writable, the Device is online, and the value is valid for the target equipment.
- For DO Control, check the selected DO, output settings, external wiring, and connected equipment.
- If a shared action is used, confirm that the correct action is referenced and that its current settings are valid.
- Repeat the verification with safe test equipment or conditions after correcting the configuration.
11. Logic Orchestration
Logic Orchestration builds on Node-RED's native visual flow capabilities and provides four dedicated nodes for subscribing to Device Tag and Tag Group data, updating device or Virtual Tag values, and controlling DO outputs. Users can create custom flows by dragging and connecting nodes to combine data input, conditional logic, data processing, and device control. Processing results written to Virtual Tags can also be reported to the cloud through Data to Cloud.
11.1 E2C Nodes
The following four dedicated nodes are available under E2C Node in the node palette on the Logic Orchestration page:
Node | Purpose | Main Settings |
Subscription Device Data | Subscribes to data from one or more Device Tags and passes the data to downstream nodes. | Name and Tags to monitor. |
Subscription Group Data | Subscribes to data in one or more Tag Groups. The Tags in each Group originate from Data Collection. | Name and Tag Groups. |
Update Device Data | Writes a fixed value or a value from an upstream message to a selected Tag, including a writable Device Tag or Virtual Tag. | Name, Tag to update, and Mapping. |
DO Control | Sets a gateway DO output. | Name, DO Variable, Set DO Output, and Run Mode. Duration is also required when Specified Duration is selected. |
Note: Use the built-in Node-RED nodes and the dedicated nodes under E2C Node. User-installed third-party nodes may cause compatibility issues and are outside the supported product scope.
11.2 Example: Update Device Data
This example uses an Inject node to send test data and then uses Update Device Data to write specified data from the upstream message to a published writable test Tag. It demonstrates how a dedicated E2C node receives and uses data passed from an upstream node.
Other dedicated E2C nodes use the same basic approach: select the object to read, update, or control, and then connect the dedicated node to the required built-in Node-RED nodes according to the business logic. For information about built-in nodes and additional orchestration methods, see the Node-RED documentation.
11.3 Before You Begin
- Prepare a published writable test Tag under Data Collection and confirm that Device communication is normal.
- Make sure the test value matches the data type of the target Tag and is within the range permitted by the Device.
- Use a simulator or test equipment isolated from the production environment for the first verification.
- Confirm that Node-RED is installed and can be opened from the Logic Orchestration page.
Warning: Update Device Data and DO Control can change field equipment or process states. Before deploying a flow, verify the write target, Mapping, trigger conditions, and site safety measures. Do not run this example on production equipment before assessing its impact.
11.4 Create and Deploy the Flow
This example connects only the Inject node and Update Device Data.
11.4.1 Configure the Inject Node
In normal use, configure payload according to the data structure required by the downstream node.
Figure 11-1 Inject node configuration
- Drag an Inject node to the workspace.
- Open the node configuration, set the payload data type to JSON, enter {"Pressure":"20"}, and click Save.
11.4.2 Configure Update Device Data
- Drag Update Device Data from E2C Node to the workspace.
- Select the target Device and published writable test Tag, enter {payload.Pressure} in Mapping, and click Save.
In normal use, select the Device and Tag to update, and configure Mapping according to the source of the value:
- When writing a fixed value, enter the value directly, for example 100.
- When using data from an upstream array, enter the applicable expression, for example {payload[0].value}.
- When using data from an upstream object, enter the applicable expression, for example {payload.value}.
In this example, {payload.Pressure} reads the Pressure field from the data sent by the Inject node, which is an example of using data from an upstream object.
11.4.3 Connect and Deploy the Flow
- Connect the Inject node to Update Device Data.
- After confirming the flow and node configurations, click Deploy to apply the flow.
11.5 Trigger and Verify the Flow
- Trigger the Inject node manually.
Figure 11-2 Node-RED Logic Orchestration flow
- Under Data Collection or on the test Device, confirm that the target Tag has been updated to 20.
- After verification, restore the original value and disable or delete the test flow.
11.6 Troubleshooting
11.6.1 The Flow Does Not Run
- Confirm that the Node-RED flow is fully connected and that Deploy has been clicked.
- Confirm that the Inject node has been triggered and that the upstream node sends data to the downstream node.
- Check that the connections between nodes are in the correct direction.
11.6.2 The Target Tag Is Not Updated
- Confirm that the target Tag is published and writable and that Device communication is normal.
- Confirm that Mapping is set to {payload.Pressure}.
- Confirm that the upstream message contains the Pressure field and that the field name and capitalization match exactly.
- Confirm that the value data type and range meet the requirements of the target Tag and Device.
- After correcting the configuration, deploy the flow again and repeat the verification under safe test conditions.
12. Alarm Management
Alarm Management monitors abnormal states in Device Tags. Based on Alarm Rules, the system generates alarms for review and handling, displays active alarms under Real-time Alarms, and retains traceable records under Alarm History. When external notifications are required, the system can send alarms to specified Contacts through SMS, Email, or WeCom (Webhook Bot).
12.1 Functions
- Real-time Alarms: View and manually handle active alarms.
- Alarm Rules: Define the monitored Tags, trigger conditions, alarm content, alarm level, and notification strategy.
- Alarm History: Search and delete historical alarm records.
- Alarm Tags: Categorize alarms by location, Device type, business system, or responsibility.
- Alarm Notification Template: Configure the notification content for SMS, Email, and WeCom, together with the sending settings required for Email.
- Contacts: Maintain recipients and bind each Contact to SMS, Email, SMS and Email, or WeCom (Webhook Bot) through Alarm Notification Method.
12.2 Before You Start
Before configuration, make sure that:
- The Devices and Tags to be monitored have been published under Data Collection, and their Latest Value and Update Time are normal.
- You have planned the alarm names, levels, and categories.
- The recipients' phone numbers are available if SMS notifications are required.
- The recipients' email addresses and the sending mailbox's SMTP settings are available if Email notifications are required.
- A Webhook Bot has been created in the target WeCom group and its Robot Address is available if WeCom notifications are required.
- The current account has permission to configure Alarm Rules, Alarm Notification Template, and Contacts.
If alarms only need to be viewed and handled in this system, skip the notification-template and Contact configuration and disable Push Enabled in the Alarm Rule.
12.3 Configuration Workflow
The most complete alarm configuration workflow includes the following five steps. Read the referenced sections in order and skip the steps that are not required for your scenario.
- Step 1: Configure Alarm Tags to categorize alarms. See Section 12.4.
- Step 2: Configure Alarm Notification Templates to define the message content and related sending settings for each notification channel. See Section 12.5.
- Step 3: Configure Contacts to maintain destination information and select an Alarm Notification Method for each Contact. See Section 12.6.
- Step 4: Create an Alarm Rule to define the monitored objects, trigger conditions, and notification strategy. See Section 12.7.
- Step 5: Verify alarm generation and notification delivery, and then view or handle alarms to confirm that the configuration is effective. See Sections 12.8 and 12.9.
If alarm categorization is not required, skip Step 1.
If external notifications are not required, skip Steps 2 and 3 and disable Push Enabled when creating the Alarm Rule.
If external notifications are required, configure the template for the applicable channel. Under Contacts, enter a Phone Number, Email, or Robot Address for the Contact and select the matching Alarm Notification Method.
Alarm History uses the default system storage rules. To adjust the maximum number of records or retention period, see Section 12.10.
12.4 Configure Alarm Tags (Optional)
Alarm Tags categorize alarms by location, production line, Device type, business system, or responsibility.
- Go to Alarm Management > Alarm Tags.
- Click Add.
- Enter the Tag name.
- Click Save.
An Alarm Rule can be created without an Alarm Tag. Skip this step if alarm categorization is not required.
Warning: Deleting an Alarm Tag also deletes all Alarm Rules associated with that Tag. Make sure that the Rules are no longer required before deleting the Tag.
12.5 Configure Alarm Notification Templates (When Notifications Are Required)
Alarm Notification Template defines the message content and related sending settings for each notification channel. A template can use the alarm variables provided by the system. When a message is sent, the system replaces the variables with data from the current alarm.
Figure 12-1 Alarm Notification Template
Channel | Main Settings | Destination | Related Section |
SMS | Template Content | Phone Number in Contacts | 12.5.1 template; 12.6 Contacts |
Email Subject, mail server settings, and Template Content | Email in Contacts | 12.5.2 template; 12.6 Contacts | |
WeCom (Webhook Bot) | Template Content | Robot Address in Contacts | 12.5.3 template; 12.6 Contacts |
12.5.1 Configure an SMS Template
- Go to Alarm Management > Alarm Notification Template > SMS.
- Enter the SMS message in Template Content and add alarm variables as required.
- Click Save.
The destination phone number comes from Contacts. The Contact must contain a Phone Number, and Alarm Notification Method must be set to SMS or SMS and Email. When creating the Alarm Rule, also select the Contact under Push Target.
12.5.2 Configure an Email Template
- Go to Alarm Management > Alarm Notification Template > Email.
- Enter the email subject, sending server, username, authorization code, and Port.
- Set SSL according to the requirements of the mail server.
- Enter the email body in Template Content and add alarm variables as required.
- Click Save.
Field | Description |
Email Subject | Subject of the Alarm email. |
SMTP Server | SMTP server used by the sending mailbox. |
Username | Mailbox account or username used to sign in to the mail server. |
License Code | Authorization code or application password issued by the email provider. |
SSL | Enables an encrypted connection when required by the mail server. |
Port | SMTP Port. It must match the SSL setting. |
Template Content | Email body. System-provided alarm variables can be included. |
The destination Email address comes from Contacts. The Contact must contain an Email address, and Alarm Notification Method must be set to Email or SMS and Email. When creating the Alarm Rule, also select the Contact under Push Target.
12.5.3 Configure a WeCom Template
- Create a Webhook Bot in the destination WeCom group and obtain its Robot Address.
- Go to Alarm Management > Alarm Notification Template > WeCom.
- Enter the notification message in Template Content and add alarm variables as required.
- Click Save.
The WeCom Robot Address is not configured in the template. It comes from Contacts. The Contact must contain a Robot Address, and Alarm Notification Method must be set to WeCom (Webhook Bot). When creating the Alarm Rule, also select the Contact under Push Target.
12.6 Configure Contacts (When Notifications Are Required)
Contacts maintains alarm recipients and their destination information. Alarm Notification Method specifies the notification channel bound to each Contact.
- Go to Alarm Management > Contacts and click Add.
- Complete the Contact information and select Alarm Notification Method.
- Click Save.
Field | Description |
Name | Contact name. Select this name under Push Target when creating an Alarm Rule. |
Country | Country or region of the phone number, used to determine the country code. |
Phone Number | Destination for SMS alarms. Complete this field when SMS or SMS and Email is selected. |
Destination for Email alarms. Complete this field when Email or SMS and Email is selected. | |
Robot Address | Address of the WeCom Webhook Bot. Complete this field when WeCom (Webhook Bot) is selected. |
Alarm Notification Method | Binds the Contact to SMS, Email, SMS and Email, or WeCom (Webhook Bot). |
Make sure that the destination information required by the selected Alarm Notification Method is complete. Otherwise, the notification cannot be delivered. For example, when SMS and Email is selected, both Phone Number and Email must be provided.
12.7 Create an Alarm Rule
- Go to Alarm Management > Alarm Rules and click Add.
- Complete the Alarm Rule configuration.
- Review the configuration and click Save.
Figure 12-2 Alarm Rule configuration
The main Alarm Rule fields are described below.
Field | Description |
Alarm Name | Identifies the Alarm Rule and the alarm records generated by it. |
Alarm Content | Content displayed and sent when the alarm is triggered. Include information that helps identify the abnormal condition. |
Alarm Level | Indicates the severity of the Alarm. Available values are Low, Medium, High, and Fatal. |
Alarm Tags | Categorizes the Alarm. This field is optional. |
Device and Tag | Data source to monitor. Multiple monitoring conditions can be added. |
Condition and Comparison Value | Defines the condition under which the Tag data is considered abnormal. |
Condition Relationship | Trigger if any condition is met triggers the Alarm when any condition is satisfied. Trigger only if all conditions are met triggers the Alarm when all conditions are satisfied at the same time. |
Trigger Interval | Works with Trigger Count to evaluate abnormal data. |
Trigger Count | Works with Trigger Interval to evaluate abnormal data. |
Push Enabled | Controls whether an external Alarm notification is sent. Disable it when Alarms only need to be viewed in this system. |
Notification Method | Select Push by Rule or Push Immediately. |
Push Target | Select Contacts from Contacts. The actual notification channel is determined by each Contact's Alarm Notification Method. |
12.7.1 Configuration Notes
Setting | Rule | Example |
Trigger Interval and Trigger Count | An Alarm is generated when the accumulated anomaly count reaches Trigger Count within Trigger Interval. The anomalies do not need to be consecutive. Normal values between anomalies do not clear the accumulated count. | Industrial signals can show brief anomalies because of interference. To generate an Alarm only after cooling-water temperature exceeds its process limit three times within 10 min, set Trigger Interval to 10 min and Trigger Count to 3. The Alarm is generated on the third anomaly even if the temperature returns to normal between the anomalies. |
Active Alarm from the same Rule | While an Alarm generated by an Alarm Rule remains active, other conditions in that Rule do not generate another Alarm. | A Motor Overtemperature Rule monitors winding temperature and bearing temperature and uses Trigger if any condition is met. After a winding-temperature Alarm is generated, a subsequent bearing-temperature anomaly does not create another Alarm from the same Rule until the active Alarm is cleared. |
Push by Rule | Based on abnormal data, sends one notification when Anomaly Count reaches the configured value within Time Window. Use it to monitor anomaly density and reduce notifications caused by intermittent fluctuations. | For supply-voltage fluctuations that may recover quickly, configure Time Window and Anomaly Count so that maintenance personnel are notified only when the anomaly frequency reaches the required level. |
Push Immediately | Based on Alarm events, sends one notification whenever a new Alarm is generated. Use it for state changes that require a prompt response. | For an emergency stop or critical Device offline event, notify the operator as soon as a new Alarm is generated. |
If the selected Tags belong to multiple Devices, only Trigger if any condition is met is supported.
If external notifications are not required, disable Push Enabled. The Alarm is still displayed under Real-time Alarms and retained under Alarm History after it ends or is handled.
Select one or more Contacts under Push Target. The system sends notifications according to each Contact's Alarm Notification Method and its Phone Number, Email, or Robot Address.
12.8 Verify Alarms and Notifications
Use safe, controlled test conditions. Do not write a test value to production equipment if it could cause a hazardous action.
- Make the target Tag satisfy the trigger conditions of the Alarm Rule.
- Go to Alarm Management > Real-time Alarms, confirm that the alarm appears, and verify its name, level, content, and Tag information.
- Under Data Collection, confirm that the alarm count for the applicable level is correct in the Device statistics.
- If external notifications are enabled, confirm that every Push Target receives the alarm through its bound notification method.
- Restore the test condition and resolve the actual abnormal condition, and then use Manual Clear when required.
- Return to Data Collection and confirm that the applicable alarm count has decreased.
- Go to Alarm History and confirm that the alarm record can be found and that its information is correct.
12.9 View and Handle Alarms
12.9.1 Real-time Alarms
Go to Alarm Management > Real-time Alarms to view active Alarms.
Figure 12-3 Real-time Alarms
When the Alarm condition is no longer met, the system automatically clears the Alarm and moves its record to Alarm History. For example, if a Rule triggers when a status equals 1, the Alarm is automatically cleared after the status returns to 0.
To end an Alarm while its condition is still met, check the cause and Device status first, and then use Manual Clear for an individual Alarm or selected Alarms.
Note: Manual Clear handles only the active Alarm record in this system. It does not correct the actual abnormal condition of the Device or Tag. Resolve and confirm the field abnormality before performing this operation.
12.9.2 Alarm History
Go to Alarm Management > Alarm History to search for records that have ended or been handled. Use the filters provided on the page to locate the required records.
Before deleting an individual record or using Batch Delete, make sure that the record is no longer required for troubleshooting or audit.
Warning: Deleted Alarm History records cannot be recovered.
12.10 Configure Alarm History Storage (Optional)
By default, the system stores up to 1000 Alarm History records and retains each record for up to 30 days. To change these rules:
- Go to System Settings > Storage > Alarm History.
- Set Maximum number of records. The maximum value is 5000.
- Set Discard after expiration. The maximum value is 180 days.
- Click Save.
The system monitors both the record limit and retention period:
- When the total number of records reaches the configured limit, the system removes the oldest records on a first-in, first-out basis to make space for new records.
- The system performs a scheduled daily check and deletes records older than the configured number of days, regardless of whether the record limit has been reached.
12.11 Troubleshooting
12.11.1 No Alarm Is Generated
- Confirm that the target Device and Tag have been published and that the Tag provides valid data.
- Confirm that Device, Tag, Condition, and Comparison Value are configured correctly.
- Confirm that the selected any-condition or all-condition trigger logic meets the actual requirement.
- Check Trigger Interval and Trigger Count and confirm that the number of anomalies meets the trigger requirement.
12.11.2 An Alarm Is Generated but No Notification Is Received
- Confirm that Push Enabled is enabled in the Alarm Rule, and check Notification Method and its related parameters.
- Confirm that the correct Contacts are selected under Push Target.
- Under Contacts, check each Contact's Alarm Notification Method and corresponding information: Phone Number for SMS, Email for Email, and Robot Address for WeCom.
- Confirm that the applicable Alarm Notification Template has been saved. For Email, also check SMTP Server, Username, License Code, SSL, and Port.
- Confirm that the gateway can access the applicable SMS, Email, or WeCom service.
- After correcting the configuration, trigger the alarm again under controlled conditions and verify the notification.
12.11.3 Push by Rule Does Not Send a Notification
- Confirm that the number of anomalies within Time Window has reached Anomaly Count.
- Distinguish Trigger Interval and Trigger Count in the alarm-generation conditions from Time Window and Anomaly Count in the notification conditions. The former determine when an alarm is generated; the latter determine when Push by Rule sends a notification.
- To send a notification whenever a new alarm is generated, select Push Immediately according to the project requirements.
13. SCADA Management
SCADA Management is used to create and run visual monitoring pages. A page can display real-time Device Tags from Data Collection, alarms, charts, and key indicators. It can also provide Device control functions according to the project design and user permissions.
SCADA Management provides two usage modes:
- Design mode: Create and maintain SCADA pages.
- Runtime mode: View SCADA pages and perform authorized operations.
For detailed page-design instructions, component parameters, complete examples, and troubleshooting, see the E2C Trinity SCADA Manual.
13.1 Before You Begin
Before creating a SCADA project, make sure that:
- The Devices and Tags to be displayed have been published under Data Collection, and the Tags provide valid real-time data.
- If the page displays alarm information, the required Alarm Rules have been configured and can generate alarms correctly.
- You have planned the required Web Pages, Mobile Pages, or Popup Pages and the objects to display or control on each page.
- If the page includes Device control, the target Tags are writable, Device communication is normal, and the impact on field equipment has been assessed.
- The current account has the permissions required to create, design, run, or share a SCADA project.
13.2 Configuration Workflow
Creating and using a SCADA project normally involves the following steps:
- Step 1: Create or import a SCADA project. See Section 13.3.
- Step 2: Enter design mode, complete the page design, and save it. See Section 13.4.
- Step 3: Enter runtime mode and verify the page display and interactions. See Section 13.5.
- Optional Step 4: Share the SCADA runtime page. See Section 13.6.
13.3 Create or Import a SCADA Project
Go to SCADA Management in the left navigation menu. This menu is located below Alarm Management. Select an operation according to the task:
Figure 13-1 SCADA Management page
- Click Add to create a SCADA project.
- Click Import to import an existing SCADA project.
- Click Template Management to manage reusable SCADA templates.
After the project is created, select Design, Run, or Share on its project card.
13.4 Use Design Mode
Click Design for the target project. The system opens SCADA Designer in a new browser window.
Figure 13-2 SCADA Designer
Design mode provides the following main functions:
- Create and manage Web Pages, Mobile Pages, and Popup Pages.
- Build page layouts by dragging components onto the canvas.
- Bind real-time Device Tags from Data Collection and alarm information.
- Configure value, status, chart, list, and control components.
- Configure interactions such as page switching, popups, and conditional display.
- Preview, save, and reuse page designs.
After completing the design, save the project and return to SCADA Management to enter runtime mode. For detailed Designer operations, see the E2C Trinity SCADA Manual.
13.5 Use Runtime Mode and Verify the Page
- Click Run for the target project.
- The system opens the runtime page in a new browser window.
- Confirm that real-time Tags, alarms, charts, and key indicators are displayed as designed.
- If the page contains interactions or Device controls, verify the applicable operations under safe conditions.
Figure 13-3 SCADA runtime page
The content of the runtime page depends on the SCADA project design. Users with Designer permission can perform Device control operations configured on the page. Users with Client permission can only view the runtime page.
Warning: Before controlling a Device, verify the target Device, Tag, and write value, and confirm that the site conditions are safe. This prevents an incorrect operation from affecting field equipment.
13.6 Share a SCADA Runtime Page (Optional)
A SCADA runtime page can be shared through an intranet link or QR code. The recipient's network must be able to access the gateway.
- Click Share for the target project.
- Under Permission, select the option that grants Client or Designer permission.
- Under Valid Period, select 1 Day, 3 Days, 7 Days, 14 Days, Permanent, or Custom Days.
- Click Copy Link or Save QR Code.
A user with Designer permission can share links that grant Client or Designer permission. A user with Client permission can only share a link that grants Client permission.
Click Share Records to view generated sharing records and manage links that are no longer required.
Warning: A visitor with Designer permission may be able to control Devices from the runtime page. Verify the recipient and permission before sharing, and disable the link when it is no longer required.
14. Configuration Migration and Batch Deployment
Use Export Config and Import Config to migrate configurations from a source gateway to a target gateway, reducing repetitive work in similar projects or multi-gateway deployments. The exported configuration file can also be retained as a backup of the current configuration.
The import result depends on the software version, hardware resources, and License capacity of the target gateway. Unsupported configurations may be skipped. Insufficient License capacity or incompatible configuration structures may cause the entire import to fail.
Note: This chapter applies only to configuration migration between E2C Field gateways. Different E2C Trinity software products may have different functional modules and configuration structures. Do not migrate configuration files directly between different products.
14.1 Import and Export Scope
The exact scope of the configuration file is described on the Export Config page. Configurations and data not listed on that page are outside the scope of this function.
Note the following exclusions and migration limitations:
- Logs are not included in the import or export.
- SCADA Management projects are not included in the system configuration file. Use the separate import and export functions under SCADA Management.
- DI/DO configurations cannot be migrated through this function. The system skips these configurations during import without preventing other supported configurations from being imported.
14.2 Before You Begin
Before migrating configurations:
- Confirm that both the source and target gateways run E2C Field.
- Confirm that the configuration on the source gateway is complete and operating normally.
- Compare the gateway models, number of serial ports, and other hardware resources of the source and target gateways.
- Confirm that the target gateway License supports the Devices, Tags, protocols, and functions included in the configuration file.
- Use the same software version on the source and target gateways where possible. Avoid importing a configuration exported from a newer software version into an older version.
- If the target gateway already contains important configurations, back them up using Export Config before importing another file.
14.3 Configuration Workflow
A complete configuration migration consists of two steps:
- Export the configuration from the source gateway.
- Import the configuration to the target gateway and review the import result and migrated configuration.
If the configuration file is required only as a backup, complete the export step only.
14.4 Export the Configuration
Figure 14-1 Export Config page
- Sign in to E2C Field on the source gateway.
- Go to System Settings > Export Config.
- Review the page description and confirm the configuration scope included in the file.
- Click Export Configuration and save the generated configuration file locally.
Do not manually modify the contents or format of the exported file. Doing so may cause the import to fail.
14.5 Import the Configuration
Figure 14-2 Import Config page
- Sign in to E2C Field on the target gateway.
- Go to System Settings > Import Config.
- Click Select File and select the JSON configuration file exported from the source gateway.
- Click Import Configuration and wait for the system to finish processing.
- Review the import result and check for any skipped or failed configurations.
A successful import result does not necessarily mean that every item in the configuration file was imported. The system may skip protocols unsupported by the target gateway, configurations that reference unavailable serial ports, or other incompatible content. After the import, always review both the import result and the actual configuration on the target gateway.
14.6 Configuration Compatibility and Processing Rules
Condition | System Behavior | Required Action |
The configuration file contains a DI/DO configuration | The system skips the corresponding configuration. Other supported configurations can still be imported, and the overall import can succeed. | Review the skipped item in the import result and configure DI/DO again according to the target gateway environment. |
The source and target gateways have different numbers of serial ports | Protocol or Device configurations that reference a serial port unavailable on the target gateway are skipped. Other configurations can still be imported. For example, if a Device uses the fourth serial port but the target gateway has only two serial ports, that Device configuration is not imported. | Review the skipped Devices or protocols and reconfigure them using an available serial port on the target gateway. |
The target gateway License capacity is lower than required by the configuration file | The entire import fails. For example, a configuration containing three Devices cannot be imported if the target gateway License supports only two Devices. | Upgrade or replace the License, or reduce the configuration on the source gateway and export it again. |
The configuration file contains a protocol introduced in a newer software version that the target version does not support | Device configurations that use the unsupported protocol are skipped. Other compatible configurations can still be imported. | Upgrade the target gateway to the same or a compatible software version, or recreate the Device using a protocol supported by the target version. |
The configuration structure of the same protocol changed significantly between software versions | The entire import may fail when the target version cannot match the fields or data structure. For example, an older version may be unable to interpret a configuration exported after existing protocol fields were replaced with a new field structure. | Upgrade the target gateway to the same or a compatible software version and import the configuration again. |
Note: An unsupported newly added protocol and a structural change to an existing protocol produce different import results. The former normally causes only Devices using that protocol to be skipped. The latter may prevent the target version from parsing the configuration file and cause the entire import to fail.
14.7 Verify the Import
After the import is complete:
- Review the import result and identify failed or skipped configurations.
- According to the scope listed on the Export Config page, confirm that Devices, Tags, and related configurations were imported as expected.
- Check for configurations skipped because of DI/DO, serial-port availability, protocol support, or software-version differences.
- Confirm that the imported Devices, Tags, and functions do not exceed the License capacity of the target gateway.
- Reconfigure any items that could not be migrated according to the hardware environment of the target gateway.
- Publish the imported Data Collection configuration.
- Check Device connection status, the latest Tag values, and related functions to confirm that the imported configuration operates correctly.
14.8 Troubleshooting
14.8.1 Configuration Import Fails
- Confirm that the configuration file was exported from E2C Field and has not been modified manually.
- Confirm that the target gateway software version is the same as or compatible with the source gateway version.
- Confirm that the target gateway License capacity can accommodate the Devices, Tags, and functions in the configuration file.
- Check whether the configuration structure of the same protocol cannot be parsed because of software-version differences.
- Resolve the compatibility issue before importing again. Do not repeatedly import the same file without addressing the cause.
14.8.2 The Import Succeeds but Some Configurations Are Missing
- Review the skipped items in the import result.
- Check whether the missing configuration is DI/DO or references a serial port unavailable on the target gateway.
- Confirm that the target software version supports the applicable protocol.
- Reconfigure the skipped items according to the target gateway hardware, License, and protocol capabilities.
14.8.3 Imported Devices Have No Data
- Confirm that the imported Data Collection configuration has been published.
- Check the target gateway network addresses, serial-port parameters, wiring, and Device communication conditions.
- Confirm the Device connection status, Tag status, latest value, and update time.
- If the configuration references a network or serial-port environment specific to the source gateway, reconfigure it for the target site.
15. User and Role Management
E2C Field uses the existing user accounts on the RobustOS Pro gateway. Users do not need a separate E2C Field account and can sign in with their RobustOS Pro username and password.
RobustOS Pro and E2C Field are responsible for different parts of access management:
Configuration | Location | Purpose |
User accounts | System > User Management in RobustOS Pro | Create and maintain gateway users and their sign-in credentials. |
E2C Field function permissions | Role Management in E2C Field | Control which E2C Field functions the corresponding users can view. |
15.1 Account-to-Role Mapping
E2C Field uses the following fixed roles according to the RobustOS Pro user type:
RobustOS Pro User Type | E2C Field Role | Permission Mapping |
Sudo user | Device Admin | Uses the function permissions configured for Device Admin. |
Regular user with the User role | Regular User | Uses the shared function permissions configured for Regular User. |
Device Admin and Regular User are predefined system roles. Additional roles cannot be created. All RobustOS Pro regular users with the User role share the same Regular User permissions. Changes to this role affect all regular users.
15.2 Before You Begin
Before configuring access for regular users, make sure that:
- The current account can create or manage regular users in RobustOS Pro.
- The current account can configure Role Management in E2C Field.
- You have determined which functions regular users need to view.
- If the regular user account already exists, its RobustOS Pro Role is set to User, not Visitor.
15.3 Configuration Workflow
Complete the following steps to configure E2C Field access for regular users:
- Create a regular user in RobustOS Pro and set its Role to User. See Section 15.4.
- Configure the functions visible to Regular User in E2C Field. See Section 15.5.
- Sign in with the regular user account and verify access. See Section 15.6.
If a RobustOS Pro regular user with the User role already exists, skip Step 1.
15.4 Create a Regular User in RobustOS Pro
Figure 15-1 Create a regular user in RobustOS Pro
- Sign in to RobustOS Pro, go to System > User Management > Regular User, and click the plus button on the right side of the list.
- Enter User ID, Username, and Password.
- Select User under Role, and then click Submit.
Note: A RobustOS Pro regular user who needs to sign in to E2C Field must have the User Role. Do not select Visitor.
After submission, the new account appears in the RobustOS Pro regular user list and can be used to sign in to E2C Field.
15.5 Configure E2C Field Function Permissions for Regular Users
- Sign in to E2C Field and open Role Management.
- Select Regular User in the role list.
- In the function tree on the right, select the functions that regular users are allowed to view.
- Click Save.
The new function permissions take effect immediately and apply to all RobustOS Pro regular users with the User role.
To adjust E2C Field function permissions for the Sudo user, select Device Admin in the role list, select the required functions, and click Save.
Note: All regular users share the same Regular User role. Before changing this role, confirm that the new permission scope is appropriate for all regular users.
15.6 Verify Regular User Permissions
- Sign out of the current E2C Field account.
- Sign in to E2C Field with the username and password of a RobustOS Pro regular user.
- Check the functions displayed in the navigation menu.
- Confirm that the displayed functions match those selected for Regular User.
- Sign out of the test account after verification.
15.7 Troubleshooting
15.7.1 A Regular User Cannot Sign In to E2C Field
- In RobustOS Pro, go to System > User Management and confirm that the account exists and has not been deleted.
- Confirm that the username and password are correct.
- Confirm that the account's Role is set to User, not Visitor.
- Confirm that E2C Field is enabled and can be opened with an administrator account.
15.7.2 The Functions Visible to a Regular User Are Not as Expected
- In E2C Field, open Role Management and select Regular User.
- Check the functions selected in the function tree on the right and click Save again.
- Confirm that the current account is a RobustOS Pro regular user with the User Role.
- Sign out of the regular user account, sign in again, and check the navigation menu.
15.7.3 Changing Regular User Affects Other Regular Users
This is expected. All RobustOS Pro regular users share the same Regular User role, and separate E2C Field function permissions cannot be configured for each regular user. Adjust the Regular User permissions so that they are appropriate for all regular users.
16. Logs and Diagnostics
E2C Field provides two log entries: Debug Logs and Logs. Use Debug Logs primarily to troubleshoot Data Collection or custom-function execution. Use Logs to review recent system operation records.
Log Type | Use Case | Main Information |
Debug Logs | Data Collection issues or unexpected custom-function results | Collection success and failure information, collection performance data, and logs generated during custom-function execution. |
Logs | System operation checks and troubleshooting | Recent logs by keyword or log level, together with display-row, refresh, and log-download settings. |
16.1 Debug Logs
Figure 16-1 Debug Logs page
16.1.1 Troubleshooting Approach
For Data Collection issues, first check the Device status, latest Tag value, and update time. For LoRaWAN join or decoding issues, also check the Device status and Live Frames under LNS Configuration. For custom-function issues, first check the function input, return result, and related configuration.
If the status and prompts on the feature page do not identify the issue, open Debug Logs and review the related records. Before reproducing the issue, record the time, affected Device or function, and operation steps so that the corresponding information can be located in the logs.
16.1.2 View Real-time Logs
- Open Debug Logs.
- Reproduce the issue or wait for the target collection or function task to run.
- Find information related to the target Device, Data Collection process, or custom-function execution.
- Compare the observed issue with the collection success or failure information, collection performance data, or function output in the logs.
A custom function can use the logging API to generate debugging information. This information appears on the Debug Logs page and can help trace function execution.
16.1.3 Log Operations
Download Logs
- On the Debug Logs page, click Download Logs.
- Save the log file for further analysis or to provide it to technical support.
The maximum downloadable log file size is 2 MB.
Clear Current Logs
Use Clear Current Logs on the page to remove the logs currently displayed.
Clear Cached Logs
Click Clear Cached Logs to clear cached log files.
Note: Before clearing logs, download any logs that are still required for analysis or issue reporting. After they are cleared, these logs can no longer be viewed on the page.
16.1.4 Troubleshooting
A Device Has No Data or Its Data Is Not Updating
- On the Data Collection page, check the target Device status, Tag status, latest value, and update time.
- For a wired Device, check the Device communication parameters, wiring, and communication statistics.
- For a LoRaWAN Device, confirm that it has joined the network. Under LNS Configuration > Live Frames, check whether uplink frames are received and whether the Payload Codec decodes them correctly.
- Open Debug Logs and review the collection success and failure information for the target Device.
- Use the collection performance data to determine whether the issue continues to occur.
A Custom Function Returns an Unexpected Result
- Check the function input, configuration, and return result.
- Confirm that the Device names, Tag names, and data structures referenced by the function match the actual configuration.
- Open Debug Logs and review the information generated while the function ran.
- Use the logs to locate the applicable execution stage, and then update and verify the function again.
Most Pages Do Not Respond or Display -1
If operations on multiple pages stop responding at the same time, or a page displays -1, a page request may have failed. A network connection problem between the browser and the gateway is a common cause.
- Check whether any Ethernet cable between the management computer, network switch, and gateway is loose or disconnected, and confirm that the applicable Ethernet port indicators are operating normally.
- Confirm that the management computer can access the RobustOS Pro web interface.
- After restoring the network connection, refresh the E2C Field page or sign in again.
- If the network connection is normal but the problem persists, go to System Settings > Service Status to check the applicable service status, and then review Debug Logs or Logs.
If the problem occurs only on an individual function page, it is normally not caused by the gateway's overall network connection. Check the configuration, operating status, and related logs for that function first.
16.2 Logs
Logs is available under System Settings. Use it to configure the number of displayed rows and refresh method, view recent logs by keyword or log level, and download logs for further analysis.
16.2.1 View Logs
Figure 16-2 Logs page
- Go to System Settings > Logs.
- Select the number of displayed rows and refresh method as required.
- Enter a keyword and select a log level as required.
- Click Refresh to view the matching logs.
16.2.2 Download Logs
On the Logs page, click Download Log to save the logs for further analysis or to provide them to technical support.
17. System Settings
System Settings maintains global runtime configurations for E2C Field. This chapter covers Serial Ports, Storage, Custom Params, and Service Status. License activation, configuration migration, and system logs are described separately in their applicable chapters.
17.1 Serial Ports
Serial Ports displays and modifies the communication parameters of the gateway's existing serial ports. It does not create new serial ports. Before changing the parameters, confirm the baud rate, data bits, parity, and stop bits required by the connected Device.
Figure 17-1 Serial Ports page
- Go to System Settings > Serial Ports.
- Locate the serial port to configure.
- Set Baud Rate, Data Bit, Check Bit, and Stop Bit according to the communication parameters of the connected Device.
- Click Submit.
The new serial-port parameters take effect after submission. A Data Collection Device using this serial port must use the same communication parameters; otherwise, the Device may not communicate correctly.
To restore the default parameters provided on the page, click Reset, verify the parameters, and then submit them.
17.2 Storage
Storage supports the configuration of Resumable Transfer and Alarm History. Go to System Settings > Storage, configure the applicable storage rules, and then click Save.
Figure 17-2 Storage page
17.2.1 Resumable Transfer
When a Cloud Service is temporarily unavailable, Resumable Transfer caches pending data locally on the gateway. After the Cloud Service becomes available, the system retrieves and continues uploading the cached data according to the configured Resumable Transfer Data Rule, reducing the risk of data loss caused by a temporary network or Cloud Service interruption.
Resumable Transfer depends on local storage space. During a prolonged outage, continuous high-volume data generation, or frequent reporting, monitor the current cached-data volume and occupied space to prevent the cache from reaching its limit.
Cache Capacity
Maximum breakpoint cache size defines the maximum local space available for breakpoint data. The maximum configurable value is 10% of the gateway's total memory, so the upper limit displayed on the page varies with the gateway hardware.
Gateway Memory | Calculation | Maximum Breakpoint Cache Space |
2 GB | 2048 MB × 10% | Approximately 205 MB |
8 GB | 8192 MB × 10% | Approximately 819 MB |
To view the gateway memory status, go to System Status > System Resources in RobustOS Pro.
Retrieval Rule
Resumable Transfer Data Rule determines the order in which cached data is retrieved after the Cloud Service recovers.
Page Option | Processing Method | Use Case |
First In First Out | Uploads older data generated near the start of the interruption first, preserving the chronological order of cloud data as far as possible. | Historical data must be restored in time order. |
Last In First Out | Uploads newer data generated near the end of the interruption first, making recent field data available in the cloud sooner. | The latest status must be prioritized after recovery. |
The page displays the current amount of offline cached data and the space it occupies. The system persists offline cached data every 5 minutes. Offline cached data is retained for up to 30 days by default and is automatically cleared after the retention period. Successfully uploaded data is removed from the local cache.
Warning: Clicking Clear Cache deletes the current offline cached data, and the deletion cannot be undone. Before performing this operation, confirm that the data no longer needs to be uploaded.
17.2.2 Alarm History
Alarm History defines the maximum number of Alarm History records and their retention period. For the default values, configurable ranges, and cleanup rules, see Section 12.10, “Configure Alarm History Storage (Optional).”
17.3 Custom Params
Custom Params centrally maintains common values referenced by multiple configurations. Create a custom parameter for a value that is used repeatedly or may need to be changed centrally. When the value changes, update the parameter instead of modifying every configuration that references it.
Figure 17-3 Custom Params page
Custom parameters can be used in the following configurations:
- Function code for MQTT Publish messages under Data to Cloud.
- Function code for HTTP message reassembly under Data to Cloud.
- Function code for Execute Function actions under Scenario Management.
- Tag values for Write Tag Value actions under Scenario Management.
- The Client ID of an MQTT Cloud Service.
For example, if several MQTT configurations and functions use the same site identifier, create a custom parameter with the value Pump_Station_01 and reference it in the applicable configurations. When the site identifier changes, update this single parameter value.
Go to System Settings > Custom Params to view, add, edit, or delete custom parameters. In a function editor that supports custom parameters, open the parameter list and insert a reference to the required parameter. For a Write Tag Value action under Scenario Management, select the required parameter in the system-variable window and copy its reference to the Tag-value field.
Before deleting or renaming a parameter, confirm whether it is still referenced by another configuration. If a parameter is missing or its reference is invalid, the related function, Scenario action, or Cloud Service configuration may not operate as expected.
17.4 Certificates
Certificates manages the public-key and private-key files referenced by Function Code for RSA encryption or decryption.
- Go to System Settings > Certificates.
- Click Add.
- Enter Name and Purpose, and then select the public-key or private-key file to upload.
- Click Save and confirm the corresponding File Name in the certificate list.
When referencing a certificate in Function Code, the file name must include its extension and exactly match the File Name displayed in the certificate list.
Before deleting a certificate, confirm that it is no longer referenced by MQTT or HTTP Function Code. Deleting a certificate that is still in use may cause RSA encryption or decryption to fail.
Note: This page manages public-key and private-key files referenced by Function Code. The CA File, Device Certificate, or Client Key File required for an SSL/TLS Cloud Service connection must be managed in the connection configuration of the applicable Cloud Service.
17.5 Service Status
Service Status displays Running Status, Memory, CPU, Start Time, and Uptime for E2C Field services. Use this information for an initial check of whether the applicable services are operating normally.
Figure 17-4 E2C Field Service Status page
Go to System Settings > Service Status to view the status of each service. Click Refresh to retrieve the latest data.
This page supports viewing and refreshing service status only. It does not provide a service-restart operation. If a function is abnormal, use the prompts on its page, Service Status, and the logs described in Chapter 16 for further troubleshooting.
Appendix A
A.1 Common Issues and Troubleshooting Index
Issue | Check First | Detailed Troubleshooting |
Operations on multiple pages do not respond or display -1 | Check the Ethernet cables and network connection between the management computer, network switch, and gateway. If the network is normal, check the service status. | See 16.1.4 Troubleshooting |
Timestamps are incorrect or time-based calculation results are abnormal | Check the RobustOS Pro time zone, system time, and NTP synchronization status. | See 3.1.4 Confirm the Gateway Time. |
A wired Device has no data | Check the Device status, Tag status, update time, and communication statistics. | See the publishing, verification, and communication-status sections in Chapter 7, Wired Device Management, and Chapter 16, Logs and Diagnostics. |
Data from a wired Device Tag is not updating | Check the Tag status, update time, and Device communication statistics. | See the publishing, verification, and communication-status sections in Chapter 7, Wired Device Management, and Chapter 16, Logs and Diagnostics. |
A LoRaWAN Device does not join the network or has no data | Check the LNS service status, Device Profile, Region, DevEUI, JoinEUI, and AppKey. | See 6.1.1 Prerequisite Step 1: Verify the LNS Service, 6.1.3 Prerequisite Step 3: Prepare a Device Profile, and 6.4.1 Verify Uplink Data. |
The Tags generated for a LoRaWAN Device are missing, contain extra fields, or have incorrect definitions | Check the Payload Codec associated with the Device Profile and review the Run Code result. Confirm that the Tag names, quantity, and data types comply with the device protocol. | See 6.1.2.5 Test and Publish the Codec. After correcting the Payload Codec, run the code again and confirm the result before saving and publishing it. |
A LoRaWAN Tag cannot be written or downlink control fails | Confirm that the Device and Payload Codec support downlink control, and check the Tag's R/W Permission, FPort, and CmdType. | Set the target Tag to Read & Write, and ensure that FPort and CmdType exactly match the corresponding downlink Tag definition in the Payload Codec. See 6.4.2 Verify Downlink Data (Optional). |
The MQTT Broker receives no data | Check the Cloud Service status, Broker connection, Tag Group, and Publish-message configuration. | See MQTT data validation in Chapter 8, Data to Cloud, and MQTT Publish-message configuration and validation in Chapter 5, Quick Start. |
HTTP upload fails | Check the Cloud Service status, Server Address, Headers, Tag Group, and function result. | See HTTP data validation and troubleshooting in Chapter 8, Data to Cloud. |
A Data Forwarding client cannot read data | Check the applicable service status, source Tags, and data mappings. | See the data-validation and troubleshooting section for the applicable service in Chapter 9, Data Forwarding. |
A Scenario does not run an Action | Check whether the Scenario is enabled, its trigger conditions, and its Action configuration. | See the verification and troubleshooting sections in Chapter 10, Scenario Management. |
A Node-RED Flow does not run or write to a Device | Check whether the Flow is deployed and whether the target Tag allows writing. | See the flow-creation, deployment, and verification sections in Chapter 11, Logic Orchestration. |
An Alarm is not generated or delivered | Check the Alarm Rule, Trigger Conditions, Contacts, and notification configuration. | See the verification and troubleshooting sections in Chapter 12, Alarm Management. |
Some content is missing after configuration import | Check the import result and the configuration scope that is not supported for import. | See import verification in Chapter 14, Configuration Migration and Batch Deployment. |
A regular user cannot access a function | Check the user role and function permissions. | See permission configuration and verification in Chapter 15, User and Role Management. |
Logs do not identify the issue | First confirm the issue time, affected function, and reproduction steps. | See the troubleshooting approach, real-time logs, and troubleshooting guidance in Chapter 16, Logs and Diagnostics. |
A.2 Function Code Reference
Data to Cloud, Scenario Management, and other functions support JavaScript for data processing or operation execution. The following examples demonstrate common patterns only. Before using an example, adapt its data structure, Device name, Tag name, and Device protocol to the actual project, and verify the result with the debugging function on the page.
For script runtime rules, input and return data structures, built-in system APIs, and more examples, see the E2C Trinity Script Development Guide.
A.2.1 Data to Cloud: Keep the Original Message Structure
This example applies to MQTT or HTTP Publish Messages. If the target platform accepts the default data structure provided by the system, return the original message directly.
1 return msg;A.2.2 Data to Cloud: Convert a Normal Tag Group
This example applies to a normal Tag Group whose messageType is normal. It converts the Tag object into an array.
1 var payload = msg.payload; 2 var metrics = []; 3 for (var key in payload) { 4 if (payload.hasOwnProperty(key)) { 5 var item = payload[key]; 6 metrics.push({ 7 name: item.tag, 8 value: item.value, 9 time: item.time,10 device: item.deviceName11 });12 }13 }14 return {15 messageId: msg.messageId,16 reportTime: msg.groupTime,17 group: msg.groupName,18 metrics: metrics19 };A.2.3 Cloud Command: Parse an MQTT Message and Write a Tag
This example applies to an Execute Function Action triggered by a Cloud Command. msg is the raw MQTT Payload string. The Device name, Tag name, and value in the message must match the actual configuration, and the target Tag must be writable. For equipment control, verify the function with a simulator or test Device first.
Message example:
1 {2 "deviceName": "PLC01",3 "tags": [4 {5 "tag": "setpoint_temp",6 "value": "75"7 }8 ]9 }1 var data;2 try {3 data = JSON.parse(msg);4 } catch (e) {5 Edge.Log("invalid message: " + e.message);6 return;7 }8 var result = Edge.WriteTags(data.deviceName, data.tags);9 Edge.Log("write result: " + result);A.2.4 Scenario Management: Read a Tag and Record a Log
This example applies to an Execute Function Action triggered by Cycle Control, Scheduled Control, or Power-on Execution. Replace the Device name and Tag name in the example with the actual configuration.
1 var tags = Edge.ReadTags("PLC01", ["temperature"]);2 if (tags == null) {3 Edge.Log("read failed");4 return;5 }6 Edge.Log("temperature: " + tags[0].value);A.3 Payload Codec Examples
A Payload Codec converts LoRaWAN Device Payloads into Tags and converts downlink parameters into a byte array that the Device can interpret. decodeUplink parses uplink bytes into Tags, while encodeDownlink encodes downlink parameters into bytes.
The following code demonstrates the basic structure only. Before using it, modify the fields, command types, byte order, and parameter lengths according to the actual Device model, firmware version, and Payload protocol. Complete the tests under LNS Configuration > Payload Codecs before publishing the Codec. For the preparation, testing, and publishing workflow, see 6.1.2 Prerequisite Step 2: Prepare a Payload Codec.
A.3.1 Parse Uplink Data: decodeUplink
After a Device reports data, the system calls decodeUplink. The following example reads the first byte from input.bytes and converts it into a Tag named battery.
Each Key returned under data is used to generate a corresponding Tag. Use stable Key names containing only letters, numbers, underscores, hyphens, and periods whenever practical. Tag names must not be duplicated within the same Device.
1 function decodeUplink(input) {2 return {3 data: {4 battery: input.bytes[0]5 }6 };7 }Enter the following hexadecimal Payload in Uplink Test and run the test:
1 01The expected decoded result is:
1 {2 "battery": 13 }If the decoded result contains missing or extra fields, or if a field name, data type, or value is incorrect, update the code according to the Device Payload protocol and run the test again. Save and publish the Payload Codec only after the result is correct.
A.3.2 Encode a Downlink Command: encodeDownlink
When the Device supports downlink control, the system calls encodeDownlink to convert a command type and parameters into a byte array. The following example processes the reporting-interval command whose cmdType is 01 and converts uplink_interval into a three-byte big-endian array.
1 function encodeDownlink(input) { 2 var data = input.data; 3 var bytes = []; 4 5 // Process the command type. 6 if (data.cmdType === "01") { 7 bytes.push(0x01); 8 9 // Process the uplink reporting interval.10 if (data.param && typeof data.param.uplink_interval !== "undefined") {11 var intervalValue = data.param.uplink_interval;12 13 // Convert the value to a three-byte big-endian array.14 var intervalBytes = numToBytes(intervalValue, 3);15 bytes = bytes.concat(intervalBytes);16 } else {17 bytes = bytes.concat([0x00, 0x00, 0x00]);18 }19 } else {20 return { bytes: [], fPort: 1 };21 }22 23 return {24 bytes: bytes25 };26 }27 28 /**29 * Convert a number to a byte array of the specified length.30 * @param {number} num Number to convert.31 * @param {number} length Target byte length.32 * @returns {Array} Big-endian byte array.33 */34 function numToBytes(num, length) {35 var bytes = [];36 for (var i = length - 1; i >= 0; i--) {
37 bytes[i] = num & 0xff;
38 num = num >> 8;
39 }
40 return bytes;
41 }
Enter the following business data on the Downlink Test page. When the system calls encodeDownlink, it passes this data under input.data:
1 {2 "cmdType": "01",3 "param": {4 "uplink_interval": 305 }6 }The expected decimal byte array is:
1 {2 "bytes": [3 1,4 0,5 0,6 307 ]8 }The cmdType, parameter name, parameter length, and byte order in this example are for demonstration only. The actual configuration must comply with the downlink protocol provided by the Device manufacturer.
To perform downlink control through a Device Tag, edit the target Tag on the Device View Tags page, set R/W Permission to Read & Write, and configure FPort and CmdType so that they exactly match the Payload Codec and Device protocol. If the Payload Codec does not define the corresponding downlink Tag and encoding logic, changing the Tag permission alone does not add downlink support. See 6.4.2 Verify Downlink Data (Optional) for details.