DeviceSupervisor Agent
The software described in this manual is according to the license agreement, can only be used in accordance with the terms of the agreement.
© 2024 InHand Networks All rights reserved.
The InHand logo is a registered trademark of InHand Networks.
The company reserves the right to change this manual, and the products are subject to subsequent changes without prior notice. 9. We shall not be responsible for any direct, indirect, intentional or unintentional damage or hidden trouble caused by improper installation or use.
Protocol Name | Interface Type | note |
DLT645-1997 | Serial port | Chinese standards for electric power meters |
DLT645-2007 | Serial port | Chinese standards for electric power meters |
DLT645-2007 over TCP | Ethernet | Chinese standards for electric power meters |
*DLT698 | Serial port | - |
DNP3 TCP | Ethernet | - |
DNP3 UDP | Ethernet | - |
DNP3 RTU | Serial port | - |
IEC 101 | Serial port | - |
IEC 103 (NR Electric) | Serial port | NR Electric |
IEC 104 | Ethernet | - |
IEC61850 | Ethernet | - |
Interface Type |
note |
|
Northbound Cloud Service
List:
Northbound
Protocol Conversion List:
SparkplugB is an industrial IoT data transfer specification built on MQTT 3.1.1. |
|
Docking with Siemens' MindSphere IoT platform. Internal beta, some issues may exist. |
Fast function processing module:
Northbound protocol conversion:
Turn on the power to the gateway and connect the IG gateway to the PLC according to the topology using an Ethernet cable/serial cable.(The topology diagrams for the EC and IG series are the same, using the IG502 as an example.)
The wiring instructions for the IG502 serial port are as follows:
For details about the default IP address of the InGateway network port, see the IP address information on the nameplate. In order for the InGateway to access the Ethernet PLC through the network port, the network port must be in the same network segment as the PLC.
When using DSA, the firmware version should be 'V2.0.10' or later for the EC942 and 'V2.0.1' or later for the EC312
Update the firmware version as shown in the figure (the firmware version will take effect after the firmware version is restarted):
When using DSA, the SDK version should be py3sdk-V1.4.5 or later. Please refer to the table for the minimum firmware version requirements:
IG Series | The firmware version number of the lowest legacy naming convention | The firmware version number of the minimum new version of the naming convention |
IG974 | V2.0.0.r14106 | V2.0.3 |
IG902 | V2.0.0.r14047 | V2.0.3 |
IG532 | V2.0.0.r14238 | V2.0.1 |
IG504 | none | V2.0.5 |
IG502 | V2.0.0.r14045 | V2.0.5 |
Update the SDK as shown in the image:
Please refer to the following procedure to install and run DSA in EC series:
Click the "Add" button and select the DSA package file to be installed, then click Confirm.
After a successful import, you can view the imported App as shown in the following diagram:
If the installed App supports modifying the runtime method by importing a configuration file, you can follow the process below to update the App's runtime configuration:
After a successful import, it will run according to the imported configuration file.
To update the DSA version simply import the new version of the DSA package on the following page as shown below:
After the update is completed, it will appear as shown below:
View/download the logs during the DSA run in the screen shown:
After selecting the log level in "Level", logs lower than this level will not be displayed and saved. Log level sorting: ERROR>WARN>INFO>DEBUG>All.
To download the log, click the "Download" button.
Refer to the following procedure to install and run DSA in IG Series:
You need to ensure that the Python SDK is installed and the Python Edge Engine is enabled before installing the DSA, as shown below:
Click the "Add" button and select the App package file you need to install, then click confirm.
After a successful import, you can view the imported DSA as shown in the diagram below:
Check the “Enable” box to run the App.
Once enabled, the App will run on IG series products and automatically run every time the device is powered on.
If you need to update the global configuration file of the DSA, you can refer to the following procedure:
Restart the DSA after a successful import and it will run according to the imported configuration file after the restart is complete.
To update the version of DSA, you typically only need to import the new version of the App.
After the update is completed, the interface will appear as shown in the diagram below:
View/download the logs during the running of the DSA in the interface as shown:
After setting the log level, logs higher than this level will be displayed and saved. The log level is set in the Parameter Settings interface, and the log level is sorted: ERROR>WARN>INFO>DEBUG.
This tutorial takes the Modbus TCP protocol as an example to get a quick start on the simple and practicalities of using the DSA to capture ModRSsim2 analogue device data and upload the data directly to the EMQX MQTT public cloud service and convert it to Modbus TCP slaves for Modbus poll collection, as well as edge measurement data processing. The overall flow of the configuration is shown below:
The tutorial uses ModRSsim2 as the Modbus TCP Slave. Run the ModRSsim2.exe software and configure the port number as shown in the diagram:
After running device_supervisor, add a southbound controller. In the controller protocol, select the Modbus TCP protocol and configure the relevant parameters.
In the list of measuring points, add the device measuring points needed for collection and configure the measuring point's name, address, data type, etc., as shown in the diagram below:
Once configured, click “Confirm” to add the measuring points. After creating the measuring points, wait a few seconds; if the controller connection status is still disconnected, perform the following actions to find the reason:
After the southbound acquisition configuration is complete, you can see the status and acquisition data of the controller and the measurement point in the measurement point monitoring page, as shown in the following figure:
Enable the MQTT cloud service and configure the server address, MQTT client ID, port number, and other parameters as shown in the diagram:
If the connection drops after a while, check if the MQTT client ID has been used, or consider changing the client ID.
After the MQTT connection is successful, add a publishing script as shown below:
As shown in the figure below, add a subscription script:
# Enter your python code.
import json
from common.Logger import logger
from quickfaas.measure import write_plc_values
def write_callback(message, userdata):
logger.debug("write plc response: %s, userdata:%s" % (message, userdata))
def main(topic, payload, cloudName):
logger.debug("subscribe topic: %s, payload: %s, cloudName: %s" % (topic, payload, cloudName))
write_plc_values(message=json.loads(payload), callback=write_callback, userdata="")
The tutorial uses the client tool provided by the EMQX official website to connect to the public EMQX broker to view the data uploaded by the gateway to the MQTT Broker.
On the EMQX official website (https://www.emqx.com/en/mqtt/public-mqtt5-broker), choose to use the MQTT client tool online for testing
Click "New Connection" in the pop-up window that opens. After filling in the Name field in the pop-up interface, the rest of the configuration does not need to be modified. Finally, click "Connect".
In the MQTT client, write the value of the simulator collected by the gateway, as shown in the following figure, modify the value of the measurement point "WORD" collected by the gateway to 10, Paylaod:{"WORD": 10}
Click Protocol Conversion, find the Modbus TCP Slave menu bar, select "Configuration", set the information and submit. As shown in the figure below:
Adopt the default slave address 1, click "Batch Add", set the starting mapping address, select the measurement point under the corresponding controller and click submit, as shown in the following figure:
When the addition is complete, it is shown in the following figure:
The Mapped Address column shows the register address information for the corresponding measurement point.
Use Modbus Poll software as Master to collect the data from the gateway, set the connection information to the IP address and port number of the gateway, the slave address is set to 1, the start address of the register read is 40001, and the length of the register is 4, as shown in the following figure:
The data read after successful setup is the same as the data seen on the page of the Measure Monitor, as shown in the figure below:
In the Custom QuickFunctions menu bar, click to add a "Periodic trigger" QuickFunctions, set to run in 10-second cycles, the function code for the recall of a southbound collection of data, as shown in the figure below:
# Enter your python code.
from common.Logger import logger
from quickfaas.measure import recall2
def recall2_callback(message, userdata):
logger.info("recall2 response message: %s, userdata:%s" % (message, userdata))
def main():
logger.info("Timer start")
recall2(callback=recall2_callback, userdata="")
logger.info("Timer end")
In the Custom QuickFunctions menu bar, click to add a "Local Subscription Message Trigger" quickfunction, subscribe to the theme is: ds2/eventbus/south/read/+, the theme is the south to the driver to release the controller measurement point value of the message bus, used to get to the south of the cycle acquisition data, as follows shown in the figure:
After the settings are completed, submit. Each time a round of data is collected in the southward direction, this script will be triggered once and the collected data will be output to the log.
In the Custom QuickFunctions menu, click to add a "Power trigger" quickfunction to indicate that the script will be triggered once when the DSA starts up, as shown in the following figure:
Once set up, the script is triggered to run once when the DSA starts.
Name | Description |
Controller | The controller refers to the component on the gateway page that enables and manages various collection protocols. |
(Southbound) Driver | The (southbound) driver refers to the software program in the gateway that communicates with PLC devices. It is usually developed specifically for certain manufacturers or device types and communicates using the device manufacturer's management protocols or APIs, such as Modbus, OPC, etc. |
Measuring Point | A measuring point refers to a collection point for PLC devices configured on the gateway. |
Grouping | Grouping refers to dividing measuring point data or alarm items into different groups within the gateway according to different needs and application scenarios for easier management. |
Historical Database | Store the historical collected data of the measurement points in the sqlite3 database. |
QuickFunction | The publishing, subscribing and custom quick functions configured in DSA are executed in the form of independent threads. |
Protocol Conversion | Protocol conversion refers to forwarding data collected from the southbound direction through other protocols. |
Alarm | An alarm refers to the configuration of alarm conditions for collected data within the gateway, which triggers an alarm when activated. |
Event Bus | The event bus refers to the message channel used for communication between various services within the gateway using MQTT messages. |
Data Transformation | The collected data can configure data operations and mapping values in the gateway. |
In the "Monitoring List" interface, you can add controllers and measuring points to collect PLC data, and view the status and configuration information of the controller as well as data collection information.
On the current page, the controller can be edited, copied, deleted, etc.; the measuring points can be added, imported, exported, deleted, etc.
The page display of the monitoring list is as shown in the figure:
Click the "Add"/"Edit" button, select the controller protocol, such as Modbus RTU, and configure the controller's slave address, communication method, polling cycle and other parameters on the add controller page. Note: Controller names cannot be repeated.
In the advanced settings, the controller's message processing can be configured. For example, in the advanced settings of the Modbus RTU controller, parameters such as byte order, timeout time, and communication time can be configured.
In industrial settings, there are often many similar PLC configuration parameters and measuring point configurations. To achieve rapid configuration, we have introduced the "Copy Controller" function. This feature allows us to quickly add controllers and measurement point configurations with similar settings, avoiding repetitive configuration tasks. Click on the "..." in the top right corner of the controller card to display more controller actions, then click "Copy". After configuring one controller, you can quickly add a second one; the copy controller will duplicate all the measurement points under the controller.
After clicking the "Copy" button, you can modify the differing configurations as needed, such as the controller name, slave address, etc., and then submit.
Upon completion of the copy, as shown in the diagram, the system will automatically generate measurement points and controller information identical to the first controller:
When collecting data from multiple PLC devices and the gateway controller status or collected data is abnormal, we enable only the problematic controller for easy log viewing and real-time communication packet inspection. Click on the "..." in the top right corner of the controller card to display more controller actions, and select "Disable". After that, the controller will no longer perform data collection and reporting.
After disabling, the controller card will turn gray, as shown in the diagram.
When you want to re-enable the controller, click on the "..." in the top right corner of the controller card and select "Enable". The controller will then resume data collection and reporting.
When the controller status displays as abnormal or there is abnormal data collection, viewing the real-time communication messages between the gateway controller and the PLC devices becomes crucial. DSA supports displaying channel real-time communication messages. Select a controller at will, click "..." in the upper right corner of the controller card, and click "Real-time Communication Messages" to display all communication message interactions of the current channel.For example, if two Modbus RTU protocol controllers are enabled and both use an RS485 communication port, the real-time communication messages will show the communication messages of both controllers.
The display effect of real-time communication messages is as follows (Note: If you need to download communication messages, you need to enable "Store Communication Messages" in the advanced settings of the controller configuration before the "Download" button will be displayed. Communication messages of all controllers The text is displayed and saved in HEX format):
In the "Measuring Point List," you can add measuring points to collect data from PLC devices. Click the "Add" button, and in the pop-up box, configure the measuring point parameters, such as adding a measurement point under a Modbus RTU protocol controller and configuring the measurement point name, address, data type, etc. (Note: The measurement point name must be unique within its controller).
In the "Measuring Point List," the "Import" button allows you to import the measurement points from a CSV file into the current gateway; the "Export" button enables you to export the current gateway's measurement point configurations to a CSV file. For details on the specific measurement point CSV file, refer to the Measuring Point CSV File Parameter Description.
Group allows you to manage measuring points in the monitoring list by dividing them into groups. After the measuring points are grouped, the storage of historical data and measuring point reporting intervals are managed according to the configured groups. If you need to configure different reporting intervals for the measuring points or need to report corresponding data of the measuring points according to different MQTT topics, you can add a new group to manage the measuring points with different requirements. (Note: The default group cannot be deleted)
The group interface is shown in the figure:
For specific group CSV files, please refer to the Grouping CSV File Parameter Description
Add a new group on the group page. The interface is as follows:
Add group parameters Introduction:
- Max Number: The maximum number of historical data stored in a single group.
- Storage policy: Storage interval of historical data
- Same AS the Reporting Interval: Store historical data according to reporting interval.
- Independent Storage Interval: customize the storage interval of historical data.
- Storage Method: The storage method of historical data. Switching the storage path will clear the stored historical data
- Gateway Storage: Historical data is stored in the storage space of the gateway itself.
- USB: Historical data is stored in a USB storage space external to the gateway.
- SD Card: Historical data is stored in the SD card storage space external to the gateway.
After adding a group, when adding a measuring point, you can choose to associate the measuring point with the group or select the measuring point in the list of measuring points to add to the specified group. The measuring points in the group will report data according to the reporting interval of the group.
Click "Export Historical Data" to export the group's historical data in CSV format
Click "Clear Historical Data" to clear the historical data stored in this group.
The historical database is used to store the historical data of the measuring points. After enabling the "Store Historical Data" function in the configuration of the measuring points, the data of the measuring points can be stored in the historical database. The historical data of measuring points is stored according to the groups they belong to. This arrangement makes it more convenient to locate and export historical data for specific measuring points.
After configuring alarm rules and when alarms are triggered, the real-time alarm page will display all triggered alarm items.
In the real-time alarm table, some parameters from the alarm configuration, such as "Name," "Controller," "Alarm Level," etc., will be shown.
Below is an example of a real-time alarm display interface.
Alarm rules can help us monitor the value of measuring points on the gateway side, and remind us in time when it exceeds the normal range. For example, in industrial scenarios, the range of voltage and current values and the start and stop status of some equipment need to be focused on. When we configure the alarm rules for collecting these data measuring points on the gateway side, if an alarm is triggered, the MQTT cloud service can be used to report the notification in time to avoid unnecessary losses.
On the alarm rules page, configure the alarm rules by clicking the "Add" button. In the pop-up box, set up the alarm rule parameters. The parameters include:
- Judgment condition: Support "=", "! = ", ">", "≥", "<", "≤"
- Logical conditions:
- No logic condition: The alarm is judged only by a single judgment condition
- && : Judging an alarm by two judging conditions
- | | : To determine an alarm, use a logical OR relationship between two conditions. This means that the alarm is triggered if either of the two conditions is met.
The following picture shows an alarm with alarm level of alert, which belongs to the default tag. This alarm is generated when the value of the measuring point is >30 and <50; When it is not in this range, no alarm will be generated or the alarm will be eliminated.
In the "Alarm Rules" page, "Import" and "Export" CSV files of alarm rules refer to the Alarm Rules CSV file parameter description
The "Add to Label" function can help us quickly switch multiple alarm items to the alarm label. The following picture is the batch addition of alarm items to the "group_test" alarm label.
The historical alarms page can help us view the history of all alarm items, including triggered and recovered alarms. This function can help us understand the reason and time when the gateway side triggers/recovers the alarm items.
In the current page, you will see information about all the historical alarms that have been triggered and recovered.
The current page displays parameters that include those configured on the "Alarm Rules" page, such as "Name," "Controller," "Alarm Level," and "Alarm Content." Other parameters in the table are as follows:
The alarm label can help us manage the alarm items. When the alarm item triggers an alarm, the MQTT message needs to be reported. Directly selecting the alarm label can quickly include all the alarm items under the alarm label. And when we need to report MQTT messages with different topics, we can add an alarm label to group different alarm items, and then select the corresponding label in different MQTT topics.
Go to the alarm label page to view the content of the alarm label.
In the table on the current page, there will be an alarm label named "default" by default (Note: this label cannot be deleted, and the rest of the added alarm labels can be deleted).
After clicking the "Add" button, configure the name of the alarm label in the pop-up box. (Note: This name is unique throughout the alarm label and cannot be repeated).
In the "Alarm Label" page, "Import" and "Export" Alarm rule CSV files, please refer to the Alarm label CSV file parameter introduction
Note: When deleting a label, the alarm items belonging to the current label in the "Alarm Rule" will be deleted together
In industrial scenarios, the collected data needs to be reported to the cloud platform to help enterprises achieve centralized management, intelligent analysis and remote management of data. In DSA, we can enable and configure corresponding cloud services in the cloud service interface to help customers quickly connect to use mainstream cloud services.
In the current page, you can view the connection status and configuration information of the current MQTT cloud service, and you can edit, import, export and other operations on the MQTT cloud service. Click the "Add" button to add a new MQTT cloud platform. For example, when we need to report data to multiple cloud platforms at the same time, we can add a new MQTT platform to connect to the cloud platform to report data. (Note: the name of the MQTT platform cannot be repeated, and the name of the default MQTT cloud platform is "Default"). As shown in the figure, add an MQTT platform with the name "test" :
The interface after adding is as shown in the figure:
After checking Enable cloud services, MQTT cloud services can be selected in the "Cloud Types" of the configuration interface. "Cloud Types" : The currently supported cloud platforms are "MQTT", "MQTT SparkPlugB", "iSCADA Cloud", "Eagle Energy Manager", "Alibaba Cloud", "AWS IoT", "Azure IoT".
In industrial settings, data often exhibits diversity and complexity, and different application scenarios may require different communication protocols to meet their specific needs. DSA's protocol conversion functionality enables data to be uploaded in various application scenarios through different protocols. For example, using the Modbus TCP Slave protocol, data collected by controllers can be forwarded to SCADA servers.
The status page allows you to view the connection and running status of the current protocol (Note: not all protocols have status pages, such as BACnet Server protocol)
The configuration page can configure and view the connection parameters and add the mapping table function for the current protocol. For example, in the Modbus TCP Slave configuration interface, you can configure the Modbus TCP Slave port number, the maximum number of connections and other parameters. In the mapping table, you can perform add/edit, import/export and other operations.
For the specific mapping table CSV file, please refer to the Mapping table CSV file parameter introduction
For specific protocol configuration, please refer to the Appendix: Protocol conversion
In the parameter setting screen, you can configure the general Settings of the gateway. Such as setting gateway serial port parameters, storage configuration and custom parameters.
In the serial port Settings page, you can configure the parameters of the serial port, such as the configuration of the serial port baud rate, data bits, etc.
The parameters of serial port Settings are shown in the figure:
The parameters are explained as follows (same for RS232 and RS485) :
Click the "Submit" button to save your configuration after you've modified it.
In the storage configuration interface, you can configure the log storage of the gateway, the MQTT offline data storage and the communication packet storage of the controller.
The parameters of storage configuration are shown in the figure:
The parameters are explained as follows:
After modifying the configuration, click the "Submit" button to save the configuration. If you do not want to save the current changes, click the "Reset" button to restore the last saved configuration
Custom parameters are to define some global parameters, which can be used in cloud service configuration, fast function scripts. Set a global parameter to use, you can modify it more conveniently and quickly. For example, when a parameter needs to be used in multiple custom fast functions, if a custom parameter is used, then when the parameter value is changed, only the parameter value of the custom parameter interface is changed.
The parameters for custom parameters look like this:
By default, there are two parameters (note: these two parameters cannot be deleted or modified) :
If you want to add custom parameters, click the "Add" button, fill in the "Parameters" and "Parameters value" in the pop-up window, and click the "Confirm" button to add the modified value.
The "Import" and "Export" buttons can import the custom parameter configuration file to the current gateway and export the custom parameter of the current gateway into a configuration file respectively. For the specific CSV file, please refer to: Custom parameters CSV file parameter introduction
You can add your own common parameters in custom parameters to be used as wildcards in cloud services and custom fast functions. The method is ${parameter name}, as shown in the following figure:
Custom parameters can also be used in scripts to get all custom parameters via the get_global_parameter() function.
An example script is as follows: (This script can output all the custom parameters in a log)
from common.Logger import logger
from quickfaas.global_dict import get_global_parameter
def main():
logger.debug('get global dict: %s' % get_global_parameter())
The output will be:
In the custom quickfunctions screen, you can add Python scripts to implement private logic (new scripts are enabled in a threaded manner). Custom fast function scripts support three trigger modes: periodic trigger; Local Subscription Message Trigger; QuickFunction start trigger.
The custom quick function interface button is introduced as shown below:
A period-triggered quickfunction will trigger the script to run after the period ends
Below is a custom quickfunction that adds a 10-second cycle trigger, using the default script. This script will log "Timer start" and "Timer end" every 10 seconds.
The instructions for each parameter are as follows:
Local subscribe message trigger triggers the run script once when subscribed to the Topic that needs to be subscribed. The Topic on the gateway Event Bus can be looked from the Event BUS
Below is the local subscribe message fast function that adds a subscribe controller write value message. This script will be triggered when a value is written to the controller. With the default script, the write value message will be printed to the log
The parameters are described as follows:
The QuickFunction start trigger, only when the fast function start is complete, triggers the run script once.
The diagram below shows how to add a quickfunction in the QuickFunction Start Trigger mode. Using the default script, "QuickFunction start" will be printed in the logs when the quickfunction is initiated.
The parameters are described as follows:
This feature is only supported on IG. The third-party libraries and the description file lib.info are packaged and compressed together on the IG gateway, and can be imported and installed at this page. lib.info describes the information of the library file in the format of json as follows:
{
"name": "rsa", //library name
"version": "4.9", //library version number
"desc": "", //library descriptive information
"files": "rsa" //library file paths, more than one separated by spaces
}
Then put the lib.info file and the library file information together in a compressed package as a .zip or .tar.gz file, and then import and install it.
*ABB Robot
ABB Robot is a range of industrial robotic products manufactured by ABB for use in a variety of applications on automated production lines.ABB Robot communicates with external devices, control systems or host computers via the TCP/IP protocol for data exchange, control and monitoring functions.
EtherNet/IP is an industrial Ethernet protocol, which is used to realize communication and data exchange between devices in industrial control systems. It is based on the standard TCP/IP protocol stack, and added to it the application layer protocol used in the field of industrial automation, providing the support of real-time, reliability and security.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measuring point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameters" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the " Realtime Communication Message " page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
A1: Consistent with the PLC address, pay attention to the data type should also be consistent;
Program:MainProgram.A1: If the variable is local, prefix it with the program name;
slot=2; A1: Addresses can also carry additional slot information;
i=A[0] : If A in PLC is based on A bool array of uint type, each bit in A can be accessed using this way;
B[0] : If B is an array, each element can be accessed using an index
EtherNet/IP (Micro) is a variant of the EtherNet/IP protocol designed for smaller devices and resource-constrained environments. Compared with the standard EtherNet/IP protocol, EtherNet/IP (Micro) uses a more simplified message format and lightweight communication mechanism in the communication process to reduce resource consumption and communication overhead.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measuring point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameters" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the " Realtime Communication Message " page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
Adding measuring points
A1: Consistent with the PLC address, pay attention to the data type should also be consistent;Program:MainProgram.A1: If the variable is local, prefix it with the program name;slot=2; A1: Addresses can also carry additional slot information;i=A[0] : If A in PLC is based on A bool array of uint type, each bit in A can be accessed using this way;B[0] : If B is an array, each element can be accessed using an index
EtherNet/IP (MicroLogix) refers to the use of EtherNet/IP protocol for communication in the MicroLogix controller family
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measuring point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameters" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the " Realtime Communication Message " page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
A9:0: ASCII
B2:0: Bit
N2:0:Integer
L17:0:Long Integer
ST2:0:String
F8:5:Floating
S:1/15:Status
C2:0:Counter
T2:0:Timer
I:0/15:Input
O:0/15:Output
EtherNet/IP (Unconnected) refers to a method of communication used in the EtherNet/IP protocol. Unconnected means that there is no need to establish a persistent connection when communicating, and each communication is independent and immediate. This method is similar to the connectionless communication method in the UDP protocol, which is more lightweight and flexible, and is suitable for some scenarios with less stringent real-time requirements.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measuring point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameters" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the " Realtime Communication Message " page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
Adding measuring points
A1: Consistent with the PLC address, pay attention to the data type should also be consistent;
Program:MainProgram.A1: If the variable is local, prefix it with the program name;
slot=2; A1: Addresses can also carry additional slot information;
i=A[0] : If A in PLC is based on A bool array of uint type, each bit in A can be accessed using this way;
B[0] : If B is an array, each element can be accessed using an index
SLC Net stands for "Symbian Limited Compatibility Network" and it is the network communication protocol for Symbian OS. Symbian OS is a kind of operating system that has been widely used in smart phones and mobile devices. It provides a wealth of functions and application support.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measuring point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameters" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the " Realtime Communication Message " page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
A9:0: ASCII variable
B2:0: Bit variable
N2:0: Integer variables
F8:5: Floating point
S:1/15: Status variable
ST2:0: String
C2:0: Counter
I:0/15: Input
O:0/15: Output
R9:0: Control
T2:0: Timer
L9:0: Long Integer
BACnet is a communication protocol used in building automation and control systems for data communication and control between building devices. Communication is based on the Internet Protocol (IP).BACnet IP uses a standard IP network as the communication medium to connect building devices via network devices such as Ethernet or Wi-Fi for data exchange and control between devices.
Advanced Settings:
BACnet MS/TP (Master-Slave/Token-Passing) is a variant of the BACnet protocol used to communicate in serial networks in building automation systems.MS/TP is a common BACnet physical layer protocol typically used to connect building devices such as sensors, actuators, and controllers via serial communication for data exchange and control.
Advanced Settings:
A communication protocol and communication mechanism commonly used in Beckhoff industrial automation systems, ADS is a high-performance, real-time communication protocol for communication between Beckhoff controllers, Engineering Stations and other ADS-enabled devices.
Advanced Settings:
CJT188-2004 is a Chinese communication standard for data transmission and communication in monitoring and control systems. This standard is mainly applicable to monitoring and control systems in the fields of electric power systems, power transmission and distribution equipment, substations, etc., in order to realise data exchange, monitoring and control between equipment.
Advanced Settings:
Delta TCP refers to the communication method based on the TCP/IP protocol used by Delta Electronics.Delta TCP can be used for data acquisition and processing applications. By connecting to a data acquisition device or database system, real-time acquisition, storage and analysis of equipment data can be achieved to monitor and optimise the production process.
Advanced Settings:
Delta Serial refers to the serial communication method used by Delta Electronics. It can be used for data acquisition and processing applications. By connecting with data acquisition equipment or database systems, real-time acquisition, storage and analysis of equipment data can be achieved to monitor and optimise production processes.
Delta Serial refers to the serial communication method used by Delta Electronics. It uses ASCII code as the encoding format for data. It can be used for data acquisition and processing applications. By connecting to a data acquisition device or database system, real-time acquisition, storage and analysis of equipment data can be achieved to monitor and optimise the production process.
Delta Serial over TCP is a method of transmitting Serial Communication over a TCP/IP network. Delta Electronics typically uses this method for remote monitoring, remote control, and data acquisition of its equipment.
Advanced Settings:
DLT645-1997 is a version of the Chinese national standard GB/T 645-1997 "Multi-function Meter Communication Protocol". This standard specifies the communication protocol and data format between the multi-function meter and the external equipment, which is used for data exchange and communication between the meter and the monitoring system.
DLT645-2007 is a version of the Chinese national standard GB/T 645-2007 "Multi-function Meter Communication Protocol". This standard is an important version of the DLT645 series of standards, which is used to specify the communication protocol and data format between the multifunctional electric energy meter and the external equipment.
- WORD: 16-bit unsigned integer
- INT: 16-bit signed integer
- DWORD: 32-bit unsigned integer
- DINT: 32-bit signed integer
- FLOAT: 32-bit floating point number
- DOUBLE: A 64-bit floating point number
- STRING: 8-bit string
- Read: read-only, not writable
- Read/Write: Readable and writable
- Periodic: Periodically reports data according to the reporting period of the group it belongs to
- Onchange: When the value of the measuring point changes, the data will be reported periodically according to the reporting period of the group
- Never: Only used locally, no need to upload data from the cloud
- Decimal Places: The number of decimal places that need to be retained after the operation
- Data High Limit: The upper limit of the data of the measuring point
- Data lower Limit: the lower limit of the data at the measuring point
- High Limit Of Proportion: the upper limit of the data after the proportion operation
- Lower Limit Of Proportion: The lower limit of the data after the scale operation
- Decimal Places: The number of decimal places to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- Start Bit: The bit offset at which the intercept of the original data begins
- End Bit: The bit offset that ends the interception of the original data
- Decimal Places: The number of decimal places that need to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- PT: Additional PT multiplier
- CT: Additional CT magnification
- Source Value: The raw value of the collected measuring point.
- Target Value: The expected value of the converted measuring point.
DLT645-2007 over TCP refers to the DLT645-2007 communication protocol applied to TCP/IP network communication mode. DLT645-2007 is a version of the multi-function meter communication protocol, and TCP is a common transmission control protocol used to achieve reliable data transmission in the network. The communication mode of DLT645-2007 over TCP can make full use of the reliability and stability of TCP protocol to ensure the safe transmission and reliable reception of data. This method is suitable for remote monitoring and management of electric energy data scenarios, such as power system monitoring, energy management systems, etc.
Advanced Settings:
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measuring point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
- Initialize activation: Whether to activate the command when opening the serial port. After opening, add FE FE FE FE to the packet frame header.
- Communication Timing Settings:
- Communication Interval: The interval time between message exchanges, i.e., after receiving a response from the device, it will wait for a communication interval before sending the next request message.
- Communication Message Settings:
- Storage of communication messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameters" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the " Realtime Communication Message " page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
DLT698 is an implementation of Chinese national standard GB/T 26880-2011 "Power information acquisition system communication protocol", it is based on the IEC 62056 series standard (DLT645) power information acquisition system communication protocol. DLT698 is mainly used for data acquisition, transmission and management in electric power information acquisition system. It is a general communication protocol in electric power industry.
DNP3 TCP (Distributed Network Protocol 3 over TCP/IP) is a reliable and efficient communication protocol for remote monitoring and control systems, and is oriented towards communication protocols for remote monitoring and control systems, which are applicable to the automation of infrastructure such as electric power systems and water systems.
Advanced Settings:
DNP3 UDP is an application of the DNP3 protocol on the transport layer of the UDP network.UDP is a connectionless oriented transport protocol that provides simple data transfer services and is usually used in scenarios that require high real-time performance, small data transfer volumes, and low data reliability requirements. For example, in applications such as remote monitoring, telemetry, and remote control, DNP3 UDP can be used for data transmission for real-time monitoring and control.
Advanced Settings:
In DNP3 RTU, RTU is a kind of remote terminal unit, which is used for tasks such as data acquisition, monitoring and control, etc. DNP3 RTU is an RTU device based on the DNP3 protocol, which is usually used for real-time monitoring and control of electric power systems, water systems, gas systems and other industrial control fields.
Advanced Settings:
EFORT Robot is a series of industrial robots produced by EFORT Intelligent Equipment Co., Ltd. which can exchange data, control, monitor and access the robot remotely via TCP/IP protocol.
Advanced Settings:
Adding measuring points
Euromap-63 is a standard protocol for communication between industrial robots and injection moulding machines. The injection moulding machine can send relevant data of the injection process to the industrial robot, such as information on mould opening and closing status, injection speed, temperature, etc. The industrial robot can perform corresponding actions based on these data, such as adjusting the gripping position and speed of action in time, in order to achieve efficient operation of the automated production line.
Advanced Settings:
FANUC Robot is a series of industrial robot products produced by Japan's FANUC company, its robot products are widely used in automotive manufacturing, electronics manufacturing, metal processing, logistics and other fields.
Advanced Settings:
FANUC CNC 0i is a type of numerical control system manufactured by FANUC Corporation in Japan. This type of CNC system is mainly used to control metalworking machine tools, such as CNC lathes, CNC milling machines, CNC grinding machines, etc., so that they can automate machining operations.FANUC CNC 0i CNC systems usually have a network communication function, allowing data monitoring and communication through the TCP/IP protocol. The TCP/IP protocol allows the user to establish a network connection with the FANUC CNC 0i system, monitor its status, read data, and send commands.
Advanced Settings:
The Programe Port provides a physical connection, usually a port, through which communication with the FATEK PLC can take place. This programming port is the interface used to connect the PLC to a programming device (e.g. a programmer or PC) for programming, debugging and data transfer.
Advanced Settings:
FATEK PLC products typically support a variety of communication methods, including programming and data communication over Ethernet (TCP/IP). By mapping the FATEK Programe Port onto a TCP/IP network, users can connect to the PLC over the network and use the appropriate programming software or tools to program, monitor and debug with the PLC.
Advanced Settings:
The SPB series PLCs are a series of programmable logic controller (PLC) products manufactured by Fuji.The SPB series PLCs usually support a variety of communication protocols and network connections, such as Ethernet, serial communications, etc., to facilitate data exchange and communication with other devices or higher-level systems.
Advanced Settings:
A communication method that encapsulates communication data from Fuji SPB series programmable logic controllers (PLCs) using serial communication protocols (e.g., RS-232, RS-485) and transmits it over a TCP/IP network.
Advanced Settings:
Fuji's SPH Net is one of Fuji Electric's (Fuji Electric) product lines, and it is a proprietary communication protocol.SPH Net is typically used to connect PLCs (Programmable Logic Controllers) and other automation equipment for data exchange and control.
Advanced Settings:
SRTP is a specific sub-protocol of the SNP protocol, which stands for Real-Time Protocol of SNP (Series Network Protocol).SRTP is usually used for real-time data transmission with high speed and low latency, and is suitable for application scenarios with high real-time requirements, such as control systems and data acquisition, and so on.
Advanced Settings:
HJ212-2005 is the earliest version of the HJ212 standard, which was released in 2005. It defines the communication protocol between the monitoring equipment and the data acquisition system, including data frame format, data transmission method, communication parameters, etc.
Advanced Settings:
HJ212-2017 is an update and improvement of the original HJ212 standard, released in 2017. It optimises and extends the 2005 protocol, making data transmission more stable, reliable and efficient.
Advanced Settings:
IEC 101 is a standard protocol developed by the International Electrotechnical Commission (IEC) for telecommunication. It is a communication protocol for monitoring and control of power systems, which is mainly used for applications such as remote monitoring, control, data acquisition and protection in power systems.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the " Realtime Communication Message " page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
Adding measuring points
IEC 104 is an international standard protocol for remote communication in power systems. It was developed by the International Electrotechnical Commission (IEC) and is a communication protocol for monitoring, controlling, and protecting power systems. The IEC 104 protocol is built on top of the TCP/IP network protocol and usually uses TCP or UDP as the transport layer protocol to achieve reliable transmission of data in the network. It adopts a distributed and object-oriented communication model, and supports client-server and multicast communication modes.
IEC 104 protocol is mainly used for communication between remote terminal unit (RTU), remote control device, remote communication device and other equipment. It provides an efficient and reliable data transmission mechanism, which supports a variety of data types and function codes, such as telemetry data collection, remote communication information transmission, remote operation execution, etc.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
The IEC 61850 standard is a set of standards for power system automation, of which MMS is a part, defining the format and transmission of communication messages.IEC 61850 MMS provides a flexible communication mechanism that can be used for exchanging, controlling and monitoring data between different devices in a power system.
Advanced Settings:
Inovance Serial is a protocol for communication between Inovance devices, typically used to connect Inovance PLCs (Programmable Logic Controllers), HMIs (Human Machine Interfaces), or other devices for data transfer and communication.
Advanced Settings:
The communication protocol used by Inovance industrial automation devices is based on TCP/IP networks. With Inovance TCP, Inovance devices can communicate with other devices (e.g. PLCs, HMIs, SCADA systems, etc.) over a TCP/IP network. This communication method provides a reliable, real-time data exchange mechanism that allows users to remotely monitor, control and manage the Inovance devices to realise various functions of the industrial automation system, such as data acquisition, remote control, troubleshooting and so on.
Advanced Settings:
A communication method that transmits the serial communication protocol originally used by Inovance industrial automation equipment over a TCP/IP network. Serial data is converted to TCP/IP data so that it can be transmitted over an Ethernet network. This feature allows remote communication between serial devices while utilising the existing Ethernet network infrastructure.
Advanced Settings:
The KEBA Socket protocol is a communication protocol developed by the Austrian automation company KEBA to communicate with its industrial automation devices. This protocol is typically used to connect to KEBA devices over a network (usually Ethernet) for data exchange and control. In the KEBA Socket Protocol, the gateway is used as a TCP Server.
Advanced Settings:
Keyence KV Series PLC Ethernet Communication Protocol (MC 3E Frame)
Advanced Settings:
KEYENCE's Nano Series PLC is a family of small programmable logic controllers (PLCs) manufactured by the company. These PLCs are typically used to control simple automation tasks such as the control of small machines, equipment and workstations. Their features typically include compact size, ease of installation and programming, and reliability and stability for a variety of industrial environments.
Advanced Settings:
KEYENCE Nano Series PLCs use the TCP/IP protocol for communication functions or options. The TCP/IP protocol allows the Nano Series PLC to communicate with other devices (such as PCs, HMIs, sensors, etc.) for data exchange, remote monitoring and control, and other functions.
Advanced Settings:
Modbus ASCII is a Modbus communication protocol based on ASCII character encoding for data exchange and device control in serial communication. It is a variant of the Modbus protocol and usually runs on serial communication media such as RS-232 or RS-485. The Modbus ASCII protocol is commonly used in industrial control systems for data exchange between devices and control operations. It supports a variety of function codes, including read/write registers, read/write coils, etc., which can be used to realize the monitoring and control of remote devices. The Modbus ASCII protocol is simple and easy to use, and is suitable for smaller scale systems and devices
- 16 Bit Int: Both AB and BA are supported, and AB endianness is used by default
- 32 Bit Int: Supports ABCD, CDAB, DCBA, BADC, defaults to ABCD byte order
- 32 Bit Float: ABCD, CDAB, DCBA, BADC are supported, and ABCD byte order is used by default
- 64 Bit Int: supports ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG, defaults to ABCDEFGH
- 64 Bit Float: ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG are supported
Byte order, ABCDEFGH is used by default
- Continuous Collection Address: After enabling continuous collection, the maximum number of measurement points allowed to be collected at one time should be configured.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Communication Interval Time: the interval time of packet interaction, that is, after receiving the response of the device, it will wait for a communication interval before sending the next request packet.
- Write function code settings:
- Coil Outputs Write Function Code: Supports 15 (to write multiple coil registers at once) and 05 (to write a single coil register at a time), 15 is used by default
- Holding Register Write Function Code: Supports 16 (write multiple hold registers at a time) and 06 (write a single hold register at a time), uses 16 by default
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
Modbus RTU (Remote Terminal Unit) is a commonly used serial communication protocol, which is used for data exchange and control operations between devices in industrial control systems. It is a variant of the Modbus protocol and usually runs on serial communication media (such as RS-232, RS-485). The Modbus RTU protocol supports a variety of function codes, including read/write hold registers, read/write coils, etc., which can be used to monitor and control remote devices. It has been widely used in the field of industrial control, because of its simple to use, low cost, reliable and stable characteristics, suitable for all sizes and types of industrial control systems.
- 16 Bit Int: Both AB and BA are supported, and AB endianness is used by default
- 32 Bit Int: Supports ABCD, CDAB, DCBA, BADC, defaults to ABCD byte order
- 32 Bit Float: ABCD, CDAB, DCBA, BADC are supported, and ABCD byte order is used by default
- 64 Bit Int: supports ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG, defaults to ABCDEFGH
- 64 Bit Float: ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG are supported
- Byte order, ABCDEFGH is used by default
- Continuous Collection Address: After enabling continuous collection, the maximum number of measurement points allowed to be collected at one time should be configured.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Communication Interval Time: the interval time of packet interaction, that is, after receiving the response of the device, it will wait for a communication interval before sending the next request packet.
- Coil Outputs Write Function Code: Supports 15 (to write multiple coil registers at once) and 05 (to write a single coil register at a time), 15 is used by default
- Holding Register Write Function Code: Supports 16 (write multiple hold registers at a time) and 06 (write a single hold register at a time), uses 16 by default
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
Modbus RTU over TCP refers to a way to wrap the Modbus RTU protocol in the TCP/IP network protocol for transmission. In this mode, Modbus RTU data frames are encapsulated in TCP packets and transmitted over the TCP/IP network. In Modbus RTU over TCP, Modbus RTU data frames are encapsulated in the data part of the TCP packet and transmitted over a TCP connection. After receiving the TCP packet, the receiver parses it out of the Modbus RTU data frame before processing and responding. This method retains the original characteristics of Modbus RTU protocol, while taking advantage of the reliability and flexibility provided by TCP/IP network, and is suitable for industrial control systems of all sizes and complexities.
- 16 Bit Int: Both AB and BA are supported, and AB endianness is used by default
- 32 Bit Int: Supports ABCD, CDAB, DCBA, BADC, defaults to ABCD byte order
- 32 Bit Float: ABCD, CDAB, DCBA, BADC are supported, and ABCD byte order is used by default
- 64 Bit Int: supports ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG, defaults to ABCDEFGH
- 64 Bit Float: ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG are supported
Byte order, ABCDEFGH is used by default
- Continuous Collection Address: After enabling continuous collection, the maximum number of measurement points allowed to be collected at one time should be configured.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Communication Interval Time: the interval time of packet interaction, that is, after receiving the response of the device, it will wait for a communication interval before sending the next request packet.
- Coil Outputs Write Function Code: Supports 15 (to write multiple coil registers at once) and 05 (to write a single coil register at a time), 15 is used by default
- Holding Register Write Function Code: Supports 16 (write multiple hold registers at a time) and 06 (write a single hold register at a time), uses 16 by default
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
Modbus TCP is an Ethernet-based version of the Modbus protocol that uses the TCP/IP protocol for communication. Unlike the traditional Modbus RTU protocol, Modbus TCP allows devices to communicate directly over Ethernet without any dedicated hardware or communication interfaces. Therefore, Modbus TCP has a higher communication rate and a wider range of applications.
- 16 Bit Int: Both AB and BA are supported, and AB endianness is used by default
- 32 Bit Int: Supports ABCD, CDAB, DCBA, BADC, defaults to ABCD byte order
- 32 Bit Float: ABCD, CDAB, DCBA, BADC are supported, and ABCD byte order is used by default
- 64 Bit Int: supports ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG, defaults to ABCDEFGH
- 64 Bit Float: ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG are supported
Byte order, ABCDEFGH is used by default
- Continuous Collection Address: After enabling continuous collection, the maximum number of measurement points allowed to be collected at one time should be configured.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Communication Interval Time: the interval time of packet interaction, that is, after receiving the response of the device, it will wait for a communication interval before sending the next request packet.
- Coil Outputs Write Function Code: Supports 15 (to write multiple coil registers at once) and 05 (to write a single coil register at a time), 15 is used by default
- Holding Register Write Function Code: Supports 16 (write multiple hold registers at a time) and 06 (write a single hold register at a time), uses 16 by default
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
A Modbus RTU Slave is a party that exists as a passive device in the Modbus RTU communication protocol, which receives and responds to commands from the Master and provides data to the master.
In the controller of the gateway, the Modbus RTU Slave is used as a read-only collector, and the registers in the Slave are configured to passively wait for the data packets sent by the master.
- 16 Bit Int: Both AB and BA are supported, and AB endianness is used by default
- 32 Bit Int: Supports ABCD, CDAB, DCBA, BADC, defaults to ABCD byte order
- 32 Bit Float: ABCD, CDAB, DCBA, BADC are supported, and ABCD byte order is used by default
- 64 Bit Int: supports ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG, defaults to ABCDEFGH
- 64 Bit Float: ABCDEFGH, GHEFCDAB, HGEFDCBA, BADCFEHG are supported
Byte order, ABCDEFGH is used by default
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
- BIT: 0 or 1
- WORD: 16-bit unsigned integer
- INT: 16-bit signed integer
- BCD16:16-bit BCD code
- DWORD: 32-bit unsigned integer
- DINT: 32-bit signed integer
- BCD32:32-bit BCD code
- FLOAT: 32-bit floating point number
- DOUBLE: 64-bit floating point number
- ULONG: 64-bit unsigned integer
- LONG: 64-bit signed integer
- STRING: 8-bit string
- Read: read-only, not writable
- Read/Write: Readable and writable
- Write: Only write, not read
- Periodic: Periodically reports data according to the reporting period of the group it belongs to
- Onchange: When the value of the measuring point changes, the data will be reported periodically according to the reporting period of the group
- Never: Only used locally, no need to upload data from the cloud
- Decimal Places: The number of decimal places that need to be retained after the operation
- Data High Limit: The upper limit of the data of the measuring point
- Data lower Limit: the lower limit of the data at the measuring point
- High Limit Of Proportion: the upper limit of the data after the proportion operation
- Lower Limit Of Proportion: The lower limit of the data after the scale operation
- Decimal Places: The number of decimal places to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- Start Bit: The bit offset at which the intercept of the original data begins
- End Bit: The bit offset that ends the interception of the original data
- Decimal Places: The number of decimal places that need to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- PT: Additional PT multiplier
- CT: Additional CT magnification
- Value mapping: Configurable measuring points for specific values converted to other values.
- Source Value: The raw value of the collected measuring point.
- Target Value: The expected value of the converted measuring point.
MITSUBISHI FX Links is a communication protocol for connecting MITSUBISHI FX Series Programmable Logic Controllers (PLCs).FX Links is typically used to connect a PC, HMI (Human Machine Interface) or other device to communicate with a MITSUBISHI FX Series PLC.
FX Links over TCP is a communication method that encapsulates MITSUBISHI's FX Links protocol for transmission over a TCP/IP network. Normally, the FX Links protocol is based on serial communication, but with FX Links over TCP, it is possible to connect to and communicate with a MITSUBISHI FX-series Programmable Logic Controller (PLC) over a TCP/IP network.
A communication method that encapsulates the communication data of MITSUBISHI FX series programmable logic controllers (PLCs) using serial communication protocols (such as RS-232 and RS-485) and transmits it over a TCP/IP network.
Mitsubishi PLC MC Protocol is a protocol used for data communication between Mitsubishi PLC and the host computer, also known as Mitsubishi Communication Protocol.This protocol supports various communication methods such as serial port and Ethernet, and can realise real-time data collection and exchange.
1E frame, the message format of the A-series Ethernet interface module. In Ethernet communication, A-1E is an earlier version of communication with a limited range of operations on the address (D0~D6143, D9000~D9255 in the data register area).
Mitsubishi PLC MC Protocol is a protocol used for data communication between Mitsubishi PLC and the host computer, also known as Mitsubishi Communication Protocol.This protocol supports various communication methods such as serial port and Ethernet, and can realise real-time data collection and exchange.
3E frame, the message format of QnA series Ethernet interface module, is compatible with the message format of SLMP. qna-3E can access the D0~D12287 data
3C Frame, QnA Series Serial Communication Module Special Protocol (Qna Frame). Mitsubishi PLC MC Protocol is a protocol used for data communication between Mitsubishi PLC and the host computer, also known as Mitsubishi Communication Protocol.This protocol supports various communication methods such as serial port and Ethernet, which enables real-time data collection and exchange.
MC 3C over TCP is a mode in which the MC 3C protocol is encapsulated in a TCP/IP network protocol for transmission. In this mode, MC 3C data frames are encapsulated in TCP messages and transmitted over a TCP/IP network.
MC Protocol for Mitsubishi's R Series. Mitsubishi PLC MC Protocol is a protocol used for data communication between Mitsubishi PLC and the host computer, also known as Mitsubishi Communication Protocol.This protocol supports various communication methods such as serial port and Ethernet, which can realise real-time data collection and exchange.
The Programe Port provides a physical connection, usually a port, through which communication with a Mitsubishi PLC can take place. This programming port is the interface used to connect the PLC to a programming device such as a programmer or PC for programming, debugging and data transfer.
OMRON's C-Mode is a communication protocol specific to its industrial automation devices.C-Mode is a protocol used by OMRON for communication between devices, and is typically used to connect OMRON's PLCs (Programmable Logic Controllers) or other devices for data transfer and communication.
OMRON industrial automation equipment uses the C-Mode communication protocol for communication using a TCP/IP network. In this case, packets of the C-Mode communication protocol are encapsulated in TCP/IP packets and transmitted over the TCP/IP network. This communication method enables OMRON equipment to be remotely monitored, controlled, and data exchanged over the network.
EtherNet/IP is an Ethernet-based industrial communication protocol that allows real-time data exchange and communication between devices.CompactLogix PLCs support the EtherNet/IP protocol through the Ethernet interface, which allows them to communicate with other devices that support the same protocol (e.g. HMIs, SCADA systems, drives, etc.).
Advanced Settings:
In EtherNet/IP, the Unconnected method allows data communication between devices in a connectionless manner. This means that the sender can send data directly to the receiver without having to establish a connection beforehand. Each message contains the identifier of the target device as well as the data to be transferred, and the receiver can process the message as soon as it is received.
Advanced Settings:
FINS is a communication protocol used by Omron industrial automation equipment. It is a protocol used to communicate between Omron devices, including PLCs (Programmable Logic Controllers), HMIs (Human Machine Interfaces), and so on.
FINS (Factory Interface Network Service) is a protocol for communication between Omron industrial automation devices. In contrast to FINS TCP, FINS UDP is a communication method that uses the User Datagram Protocol (UDP) as the transport layer, which is a connectionless, unreliable transport protocol that, unlike TCP, does not establish a connection and does not guarantee the reliability or sequentiality of the data. FINS UDP allows devices to communicate with each other via the UDP protocol, which is suitable for application scenarios where the requirements for real-time are high but the requirements for data reliability are relatively low. requirements but relatively low data reliability requirements.
HostLink is a serial communication protocol commonly found in Omron industrial automation equipment. It is a communication protocol used to connect between Omron PLCs (Programmable Logic Controllers) and other devices such as PCs, HMIs, etc. The HostLink protocol typically communicates via a serial interface such as RS-232, RS-422, or RS-485. It defines the data format, transmission protocol, and communication specifications for communication to ensure compatibility and stability between devices.
HostLink over TCP refers to emulating the HostLink protocol for communication over a TCP/IP network. Normally, HostLink is carried out through serial communication, but by encapsulating HostLink packets in TCP packets, HostLink communication over TCP/IP network can be realised.
OPC DA stands for "OPC Data Access" and is a communication specification for enabling real-time data communication and exchange. It is based on Microsoft's COM/DCOM (Component Object Model/Distributed Component Object Model) technology, which aims to provide a standardized method for the development of OPC DA. It enables industrial automation equipment from different manufacturers to exchange data with OPC DA compatible software.
- Continuous Collection Address: After enabling batch acquisition, the maximum number of measurement points allowed to be collected at one time should be configured.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connection Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
- BIT: 0 or 1
- BYTE: An 8-bit unsigned number
- SINT: 8-bit signed number
- WORD: 16-bit unsigned integer
- INT: 16-bit signed integer
- DWORD: 32-bit unsigned integer
- DINT: 32-bit signed integer
- FLOAT: 32-bit floating point number
- DOUBLE: 64-bit floating point number
- ULONG: 64-bit unsigned integer
- LONG: 64-bit signed integer
- STRING: 8-bit string
- Read: read-only, not writable
- Read/Write: Readable and writable
- Write: Only write, not read
- Periodic: Periodically reports data according to the reporting period of the group it belongs to
- Onchange: When the value of the measuring point changes, the data will be reported periodically according to the reporting period of the group
- Never: Only used locally, no need to upload data from the cloud
- Decimal Places: The number of decimal places that need to be retained after the operation
- Data High Limit: The upper limit of the data of the measuring point
- Data lower Limit: the lower limit of the data at the measuring point
- High Limit Of Proportion: the upper limit of the data after the proportion operation
- Lower Limit Of Proportion: The lower limit of the data after the scale operation
- Decimal Places: The number of decimal places to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- Start Bit: The bit offset at which the intercept of the original data begins
- End Bit: The bit offset that ends the interception of the original data
- Decimal Places: The number of decimal places that need to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- PT: Additional PT multiplier
- CT: Additional CT magnification
- Source Value: The raw value of the collected measuring point.
- Target Value: The expected value of the converted measuring point.
OPC UA is a machine-to-machine communication protocol for industrial automation, developed and maintained by the OPC Foundation. OPC UA provides a standardized way to enable different devices and systems to communicate with each other.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connection Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
- BIT: 0 or 1
- BYTE: An 8-bit unsigned number
- SINT: 8-bit signed number
- WORD: 16-bit unsigned integer
- INT: 16-bit signed integer
- DWORD: 32-bit unsigned integer
- DINT: 32-bit signed integer
- FLOAT: 32-bit floating point number
- DOUBLE: 64-bit floating point number
- ULONG: 64-bit unsigned integer
- LONG: 64-bit signed integer
- STRING: 8-bit string
- Array Index:Represents the position of the current point in the array, for example, the first element is indexed at 0, the second element is indexed at 1, and so on.
- Read: read-only, not writable
- Read/Write: Readable and writable
- Periodic: Periodically reports data according to the reporting period of the group it belongs to
- Onchange: When the value of the measuring point changes, the data will be reported periodically according to the reporting period of the group
- Never: Only used locally, no need to upload data from the cloud
- Decimal Places: The number of decimal places that need to be retained after the operation
- Data High Limit: The upper limit of the data of the measuring point
- Data lower Limit: the lower limit of the data at the measuring point
- High Limit Of Proportion: the upper limit of the data after the proportion operation
- Lower Limit Of Proportion: The lower limit of the data after the scale operation
- Decimal Places: The number of decimal places to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- Start Bit: The bit offset at which the intercept of the original data begins
- End Bit: The bit offset that ends the interception of the original data
- Decimal Places: The number of decimal places that need to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- PT: Additional PT multiplier
- CT: Additional CT magnification
- Source Value: The raw value of the collected measuring point.
- Target Value: The expected value of the converted measuring point.
OPC UA PUBSUB is a communication mechanism in OPC UA (OPC Unified Architecture), which stands for "OPC UA Publisher/Subscriber". It is a communication method based on publish/subscribe model, which is used to publish and subscribe real-time data in industrial automation system.
Panasonic's Mewtocol is a proprietary communication protocol used for communication between Panasonic industrial automation devices.Mewtocol is commonly used to connect Panasonic's PLCs for data transfer and control between devices.
Panasonic industrial automation equipment uses a TCP/IP network to transmit the Mewtocol communication protocol. Normally, the Mewtocol protocol is designed based on serial communication (e.g. RS-232, RS-485, etc.), but with Mewtocol over TCP, it is possible to transmit Mewtocol data encapsulated in TCP packets over a TCP/IP network. This communication method allows Panasonic devices to communicate with each other over a standard TCP/IP network for remote monitoring, control and data transfer.
Panasonic MC 3E is a PLC (Programmable Logic Controller) product line manufactured by Panasonic. These PLCs are typically used in industrial automation and control systems to perform a variety of control tasks such as logic control, data processing, and motion control. They usually support a variety of communication interfaces and communication protocols to facilitate data exchange and communication with other devices.
"Fetch/Write" refers to a data exchange operation commonly found in the field of industrial automation. It is commonly used to describe the process of fetching data (Fetch) from and writing data (Write) to a control device (e.g. PLC, sensor, etc.).
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
"ISO on TCP" refers to communication over TCP/IP networks using a set of standards defined by ISO (International Organization for Standardization). ISO is an international standard-setting organization responsible for developing standards for a variety of industries, including information technology, communications, manufacturing, and more.
In the field of industrial automation, ISO provides many standards related to communication and data exchange, some of which can be applied to TCP/IP networks. These standards usually cover the data exchange protocol, communication interface, data format and other aspects of the specification, so that different equipment and systems can exchange data and communication.
- Rack/Slot:
- Rack number: The rack number of the PLC
- Slot number: The slot number information of the PLC
- TSAP:
- Client TSAP: Usually includes Rack number, Slot number as well as specific TSAP address
- Server-side TSAP: Usually includes Rack number, Slot number, and specific TSAP address
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connect Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
- Rack/Slot mode:
- I: Input register
- Q: Output register
- M: Internal register
- DB: Data register
- TSAP mode:
- I: Input register
- Q: Output register
- M: Internal register
- V: Data register
- C: Counter register
- T: Timer register
- BIT: 0 or 1
- BYTE: An 8-bit unsigned number
- SINT: 8-bit signed number
- BCD16:16-bit BCD code
- WORD: 16-bit unsigned integer
- INT: 16-bit signed integer
- DWORD: 32-bit unsigned integer
- DINT: 32-bit signed integer
- FLOAT: 32-bit floating point number
- DOUBLE: 64-bit floating point number
- ULONG: 64-bit unsigned integer
- LONG: 64-bit signed integer
- STRING: 8-bit string
- Read: read-only, not writable
- Read/Write: Readable and writable
- Periodic: Periodically reports data according to the reporting period of the group it belongs to
- Onchange: When the value of the measuring point changes, the data will be reported periodically according to the reporting period of the group
- Never: Only used locally, no need to upload data from the cloud
- Decimal Places: The number of decimal places that need to be retained after the operation
- Data High Limit: The upper limit of the data of the measuring point
- Data lower Limit: the lower limit of the data at the measuring point
- High Limit Of Proportion: the upper limit of the data after the proportion operation
- Lower Limit Of Proportion: The lower limit of the data after the scale operation
- Decimal Places: The number of decimal places to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- Start Bit: The bit offset at which the intercept of the original data begins
- End Bit: The bit offset that ends the interception of the original data
- Decimal Places: The number of decimal places that need to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- PT: Additional PT multiplier
- CT: Additional CT magnification
- Source Value: The raw value of the collected measuring point.
- Target Value: The expected value of the converted measuring point.
PPI (Point-to-Point Interface) is a serial communication interface protocol developed by Siemens Corporation to connect the Siemens S7 series programmable logic controller (PLC) and its peripheral devices. PPI is mainly used for simple data transmission and communication tasks, such as connecting HMI (Human-Machine Interface), programming devices, and other external devices.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Communication Interval Time: the interval time of packet interaction, that is, after receiving the response of the device, it will wait for a communication interval before sending the next request packet.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
- I: Input register
- Q: Output register
- M: Internal register
- V: Data register
- BIT: 0 or 1
- BYTE: An 8-bit unsigned number
- SINT: 8-bit signed number
- BCD16:16-bit BCD code
- WORD: 16-bit unsigned integer
- INT: 16-bit signed integer
- DWORD: 32-bit unsigned integer
- DINT: 32-bit signed integer
- FLOAT: 32-bit floating point number
- DOUBLE: 64-bit floating point number
- ULONG: 64-bit unsigned integer
- LONG: 64-bit signed integer
- STRING: 8-bit string
- Read: read-only, not writable
- Read/Write: Readable and writable
- Periodic: Periodically reports data according to the reporting period of the group it belongs to
- Onchange: When the value of the measuring point changes, the data will be reported periodically according to the reporting period of the group
- Never: Only used locally, no need to upload data from the cloud
- Decimal Places: The number of decimal places that need to be retained after the operation
- Data High Limit: The upper limit of the data of the measuring point
- Data lower Limit: the lower limit of the data at the measuring point
- High Limit Of Proportion: the upper limit of the data after the proportion operation
- Lower Limit Of Proportion: The lower limit of the data after the scale operation
- Decimal Places: The number of decimal places to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- Start Bit: The bit offset at which the intercept of the original data begins
- End Bit: The bit offset that ends the interception of the original data
- Decimal Places: The number of decimal places that need to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- PT: Additional PT multiplier
- CT: Additional CT magnification
- Source Value: The raw value of the collected measuring point.
- Target Value: The expected value of the converted measuring point.
"PPI over TCP" refers to the communication mode of transmitting PPI (Point-to-Point Interface) data over TCP/IP network. In traditional industrial automation systems, PPI is usually connected to Siemens S7 series programmable logic controllers (PLCS) and their peripheral devices through serial interfaces (such as RS485). However, with the development of industrial networks, more and more applications begin to use TCP/IP networks to replace the traditional serial connection for remote access and data exchange.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connection Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
- BIT: 0 or 1
- BYTE: An 8-bit unsigned number
- SINT: 8-bit signed number
- BCD16:16-bit BCD code
- WORD: 16-bit unsigned integer
- INT: 16-bit signed integer
- DWORD: 32-bit unsigned integer
- DINT: 32-bit signed integer
- FLOAT: 32-bit floating point number
- DOUBLE: 64-bit floating point number
- ULONG: 64-bit unsigned integer
- LONG: 64-bit signed integer
- STRING: 8-bit string
- Read: read-only, not writable
- Read/Write: Readable and writable
- Periodic: Periodically reports data according to the reporting period of the group it belongs to
- Onchange: When the value of the measuring point changes, the data will be reported periodically according to the reporting period of the group
- Never: Only used locally, no need to upload data from the cloud
- Decimal Places: The number of decimal places that need to be retained after the operation
- Data High Limit: The upper limit of the data of the measuring point
- Data lower Limit: the lower limit of the data at the measuring point
- High Limit Of Proportion: the upper limit of the data after the proportion operation
- Lower Limit Of Proportion: The lower limit of the data after the scale operation
- Decimal Places: The number of decimal places to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- Start Bit: The bit offset at which the intercept of the original data begins
- End Bit: The bit offset that ends the interception of the original data
- Decimal Places: The number of decimal places that need to be retained after the operation
- Magnification: The multiplier that needs to be scaled up or down
- Offset: The data value that needs to be increased or decreased after the multiplier operation
- PT: Additional PT multiplier
- CT: Additional CT magnification
- Source Value: The raw value of the collected measuring point.
- Target Value: The expected value of the converted measuring point.
Siemens' Web API (Web Application Programming Interface) is an HTTP-based interface for communication and data exchange with Siemens' industrial automation equipment and systems. It allows developers to access and manipulate data and functions on Siemens devices through network connections, enabling the monitoring, control, and integration of automation systems.
- Timeout: The timeout time for the device to respond after the reading request is initiated to the device when the measurement point is collected. If the device does not respond to the reading request within the set collection timeout time, it is still the failure of this collection.
- Connection Timeout: the timeout time for establishing the connection.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
Serial communication protocol used by VIGOR industrial automation equipment. This protocol is commonly used to connect Von Vick's PLCs (Programmable Logic Controllers) or other devices for data transfer and communication between devices.
VIGOR industrial automation equipment uses a serial communication protocol that is transmitted over a TCP/IP network. This protocol allows data transfer that would otherwise be carried out via serial communications (e.g. RS-232, RS-485, etc.) to be converted and transmitted over a TCP/IP network. Remote monitoring, control and data exchange between devices is achieved over the network, making industrial automation systems more flexible and convenient.
XINJE industrial automation equipment uses the proprietary TCP/IP communication protocol. This protocol was developed by XINJE specifically for communication between its devices.
XINJE TCP (Modbus) refers to the TCP/IP communication method based on the Modbus protocol used by XINJE industrial automation devices.Modbus is a common industrial communication protocol used for data transmission and communication between devices in industrial control systems. With XINJE TCP (Modbus), XINJE devices can communicate with other devices over a TCP/IP network. This communication method provides a reliable, real-time data exchange mechanism, which allows users to remotely monitor, control and manage Xinjie devices, and realise various functions of industrial automation systems, such as data acquisition, remote control, and troubleshooting.
XINJE Serial refers to the serial communication protocol used by XINJE industrial automation devices. This protocol is typically used to connect XINJE PLCs (Programmable Logic Controllers), HMIs (Human Machine Interfaces), or other devices for data transfer and communication between devices.XINJE Serial protocol typically includes a set of communication specifications and data formats to ensure compatibility and stability between different devices. Through XINJE Serial, users can realise the functions of monitoring, controlling and data acquisition of XINJE devices.
Serial interface for connecting Cygnus industrial automation equipment to a TCP/IP network. This protocol allows serial communications to be transmitted over a TCP/IP network, allowing equipment to be remotely monitored and controlled over the network. Typically, this protocol allows connection to a Shinseki PLC (Programmable Logic Controller) or HMI (Human Machine Interface) device over a network for remote access, data acquisition and control.
A communication protocol used to connect Yokogawa industrial automation equipment. It is a communication protocol based on TCP/IP networks for data transfer and communication between devices in industrial control systems. Link TCP enables Yokogawa devices to exchange data with other devices and realise functions such as real-time monitoring, control and data acquisition.
One of the distinguishing features of industrial automation is "fragmentation". This feature brings a lot of work and obstacles to digital work. In industry, there is such a kind of equipment:
A large number of models;
The function of a single device (from the perspective of communication) is relatively simple, the number of data (measuring points) is small, and the need for read and write fetch instructions is not many;
The communication protocol is question-answering, that is, "request-response" model;
Each model has its own unique communication protocol, which is usually a relatively simple parsing of binary bytes;
The length of the packet is generally less than 100 bytes, and the parsing is relatively simple for engineers to understand;
Simple Drive protocol is a general data acquisition protocol, which can solve the above problems.
- Read Command: Hex formulates long request packet, the dynamic data part of the packet needs to be filled with 00
- Response Length: The length of the response packet
- Response header check:
- Head Length: The length in bytes of the header of the packet
- Expect Head: The hexadecimal value of the header of the desired packet
- Response checksum check:
- Start Byte: The number of bytes in the packet in which the content of the start check is located
- End Byte: The length of the check content
- Check Method: support CRC16, SUN16, SUM8, default use CRC16
- Check Byte order: Support "Consistent with the controller" and " As opposed to the controller ". If SUM8 is selected for validation, this option is not present. Controller endianness is configured in advanced settings
- Write Command: Hex formulates long request packet, the dynamic data part of the packet needs to be filled with 00
- Add Parity:
- Check Method: Support CRC16, SUN16, SUM8, default is CRC16
- Start Byte: Start from the first byte to calculate the check value
- End Byte: The number of bytes to check from the start byte
- Check Byte Order: supports "Consistent with the controller" and " As opposed to the controller ". If SUM8 is selected for validation, this option is not present. Controller endianness is configured in Advanced Settings
- Response Length: The length of the response packet after the data is written. Range 1-256 bytes
- Response header Check:
- Head Length: The length of the header of the packet
- Expect head: The hexadecimal value of the header of the desired packet
- Response Checksum Check:
- Start Byte: The number of bytes in the packet in which the content of the start check is located
- End Byte: The length of the check content
- Check Method: support CRC16, SUN16, SUM8, default use CRC16
- Check Byte Order: Support "consistent with the controller" and "contrary to the controller". If SUM8 is selected for validation, this option is not present. Controller endianness is configured in Advanced Settings
- Communication Interval Time: the interval time of packet interaction, that is, after receiving the response of the device, it will wait for a communication interval before sending the next request packet.
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
- Read Command: Hex formulates long request packet, the dynamic data part of the packet needs to be filled with 00
- Response Length: The length of the response packet
- Response header check:
- Head Length: The length in bytes of the header of the packet
- Expect Head: The hexadecimal value of the header of the desired packet
- Response checksum check:
- Start Byte: The number of bytes in the packet in which the content of the start check is located
- End Byte: The length of the check content
- Check Method: support CRC16, SUN16, SUM8, default use CRC16
- Check Byte order: Support "Consistent with the controller" and " As opposed to the controller ". If SUM8 is selected for validation, this option is not present. Controller endianness is configured in advanced settings
- Check Method: Support CRC16, SUN16, SUM8, default is CRC16
- Start Byte: Start from the first byte to calculate the check value
- End Byte: The number of bytes to check from the start byte
- Check Byte Order: supports "Consistent with the controller" and " As opposed to the controller ". If SUM8 is selected for validation, this option is not present. Controller endianness is configured in Advanced Settings
- Head Length: The length of the header of the packet
- Expect head: The hexadecimal value of the header of the desired packet
- Start Byte: The number of bytes in the packet in which the content of the start check is located
- End Byte: The length of the check content
- Check Method: support CRC16, SUN16, SUM8, default use CRC16
- Check Byte Order: Support "consistent with the controller" and "contrary to the controller". If SUM8 is selected for validation, this option is not present. Controller endianness is configured in Advanced Settings
- Store Communication Messages: The controller with this function enabled will store communication messages. The storage path and number can be set in the "Default Parameter" of the "Parameter Settings" page. If you need to download the stored communication message, you can enter the "Realtime Communication Message" page of the specified controller in the "Measure Monitor" page, and click the "Download" button to download.
The virtual controller is mainly a data display controller designed for secondary development equipment acquisition by the gateway. The data collected by the secondary development App can be transmitted to the internal gateway through the internal MQTT message bus, and the data is displayed in the virtual controller's measurement point by calling the script API that writes the controller's measurement point value.
In the Modbus TCP Slave configuration page,
enable Modbus TCP Slave, the interface is shown as follows:
Modbus TCP Slave configuration interface parameters:
After configuring Modbus TCP Slave
parameters, click "Submit" button to enable Modbus TCP Slave
function. In the Status of Modbus TCP Slave page, you can view the running
status and connected device information.
Click the "Add" button in the interface that pops up to configure a mapping table with a different slave address (Note: map table name and slave address are not repeatable)
The figure is to add a Modbus mapping table with name 2 and slave address 2
After the successful addition, the
interface displays as shown in the figure:
Click the "Edit" button to modify the slave address on the mapping table of the current page. When the number of mapping tables of the page is greater than 2, click the "Delete" button to delete the mapping table. Delete mapping table 2 as shown below:
Introduction to batch adding mapping
parameters:
On the IEC 104 Server configuration page,
after enabling IEC 104 Server, the interface is as shown below:
IEC 104 Server configuration interface parameters description:
Basic Settings:
- TCP server:
- Port Number: Configure the port of the TCP server
- TCP Client:
- Server IP address/domain name: Configured in client mode, TCP server address or domain name you want to connect to
- Port Number: The port of the server
If the serial number in the Server list is greater than 2, then you can remove the unwanted ASDU address. Here's how to delete an ASDU address with serial number 1:
Advanced Settings:
After the IEC 104 Server parameters are
configured, click the "Submit" button to enable the IEC 104 Server
function. In the Status page of IEC 104 Server, you can view the operating
status and connected device information.
The following figure is to add the measurement points to the IEC 104
Server mapping table (note: read-only measurement points can be mapped only once, read-write measurement
points can be mapped twice) :
Introduction to adding mapping parameters:
Display based on point data permissions and data types:
- Single-Point Information (read-only or read-write points, supported point type: BIT) :
[1] M_SP_NA_1
[30] M_SP_TB_1
- Double-Point Information (read-only or read-write points, supported point types: all point types except BIT,FLOAT and STRING) :
[3] M_DP_NA_1
[31] M_DP_TB_1
- Step Position Information (read-only or read-write points are acceptable, supported point types are BYTE,SINT) :
[5] M_ST_NA_1
[32] M_ST_TB_1
- Bitstring (32 bit) (read-only or read/write point, support site types: BYTE, SINT, WORD, INT, DWORD, DINT, BCD) :
[7] M_BO_NA_1
[33] M_BO_TB_1
- Measured Value (Normalized) (read-only or read/write point, support site types: BYTE, SINT, WORD, INT, DWORD, DINT, FLOAT, BCD) :
[9] M_ME_NA_1
[21] M_ME_ND_1
[34] M_ME_TD_1
- Measured Value(Scaled) (read-only or read-write points, supported point types: BYTE,SINT,WORD,INT,BCD) :
[11] M_ME_NB_1
[35] M_ME_TE_1
- Measured Value (Short Float) (read-only or read/write point, support site types: BYTE, SINT, WORD, INT, DWORD, DINT, Float, BCD) :
[13] M_ME_NC_1
[36] M_ME_TF_1
- Integrated the Totals (read-only or read/write point, support site types: BYTE, SINT, WORD, INT, DWORD, DINT, BCD) :
[15] M_IT_NA_1
[37] M_IT_TB_1
- Parameter (read-only or read/write point, support site types: BYTE, SINT, WORD, INT, DWORD, DINT, FLOAT, BCD) :
[110] P_ME_NA_1
[111] P_ME_NB_1
[112] P_ME_NC_1
- Single Command (read and write points only, BIT type supported) :
[45] C_SC_NA_1: Single remote command
[58] C_SC_TA_1: Single remote command with time tag.
- Double Command (read and write points only, all points except BIT,FLOAT and STRING are supported) :
[46] C_DC_NA_1
[59] C_DC_TA_1
- Regulating Step Command (only read and write points are supported, supported point types: BYTE,SINT) :
[47] C_RC_NA_1
[60] C_RC_TA_1
- Set point command - Measured Value (Normalized) (measuring point only supports, speaking, reading and writing, and support the site types: BYTE, SINT, WORD, INT, DWORD, DINT, FLOAT, BCD) :
[48] C_SE_NA_1
[61] C_SE_TA_1
- Set point command-Measured Value(Scaled) (read and write points only supported, supported point types: BYTE,SINT,WORD,INT,BCD) :
[49] C_SE_NB_1
[62] C_SE_TB_1
- The Set point command - Measured Value (Short Float) (measuring point only supports, speaking, reading and writing, and support the point of types: BYTE, SINT, WORD, INT, DWORD, DINT, Float, BCD) :
[50] C_SE_NC_1
[63] C_SE_TC_1
- Bitstring command (32 bit) (only point support, speaking, reading and writing, and support the site types: BYTE, SINT, WORD, INT, DWORD, DINT, BCD) :
[51] C_BO_NA_1
[64] C_BO_TA_1
The following figure is batch adding
measurement points to the IEC 104 Server mapping table
Batch adding mapping interface parameters:
Refer to the type ID in the introduction to Add Mapping parameters for specific types.
On the OPCUA Server configuration page, after enabling OPCUA Server, the interface is as shown below:
OPCUA Server configuration interface parameters description:
- UserName: Set the username used by the client connection
- Password: Set the password used for the client connection
After the username and password are configured, the client connection will not be able to connect to the server without entering the correct username and password.
After configuring the OPCUA Server parameters, click the "Submit" button to enable the OPCUA Server function. On the status page of OPCUA Server, you can view the operating status and connected device information.
The following figure is to add measurement
points to the OPCUA Server mapping table:
Check the point you want to add to the mapping table. Finally, click "OK" to add the point to the mapping table
In the configuration page of Modbus RTU Slave, after enabling Modbus RTU Slave, the interface is as shown below:
Modbus RTU Slave configuration interface
parameters:
After configuring Modbus RTU Slave parameters, click "Submit" button to enable Modbus RTU Slave function. In the status page of Modbus RTU Slave, you can view the running status information.
Configuring the Modbus RTU Slave mapping table can be referred to Configuring the Modbus TCP Slave mapping table
On the IEC 101 Server configuration page,
after enabling IEC 101 Server, the interface is as shown below:
IEC 101 Server configuration interface parameters description:
Basic Settings:
If the order number in the Server list is
greater than 2, then the unwanted ASDU address can be removed. (Server list serial number is greater than or equal to 1),
the following figure is to delete an ASDU address with serial number 1:
If the communication mode is selected TCP
transparent transmission parameter description:
After the addition is complete, you can edit and delete the destination address you added.
Advanced Settings:
Once the IEC 101 Server parameters are configured, click the "Submit" button to enable the IEC 101 Server function. In the status page of IEC 101 Server, you can check the running status.
The mapping table of IEC 101 Server supports three types: Telemetering, Telesignalling and Telecontrol.
The following figure shows the addition of measurement points to the IEC 101 Server mapping table
Introduction to adding mapping parameters:
The following figure is batch adding measurement points to the IEC 101 Server mapping table
Batch adding mapping interface parameters (batch added measurement points only show the measurement points that meet the type ID and meet the search criteria) :
On the configuration page of SL651, after enabling SL651, the interface looks like the following picture:
IEC 101 Server configuration interface parameters description:
After configuring the SL651 parameters, click the "Submit" button to enable the SL651 function. On the status page of the SL651, you can view the running status and connected device information.
The following figure is to add the
measurement points to the SL651 mapping table (Note: Feature type measurement
points are configured in order to be added to the mapping table.)
The introduction to the parameters of the Add Map interface is as follows:
In the Configuration page of HJ212 Client, after enabling HJ212 Client, the interface is as shown below:
HJ212 Client Configuration interface parameters description:
After clicking the "Add" button, the following screen will be displayed:
Add platform parameter introduction:
- Platform Name: Custom do not repeat the name
- Platform IP Address: The IP address of the server
- Platform Port: The port number of the server
- MN Coding: Unique identification of the device with a maximum support of 24 characters
- Password: A security credential for authentication that cannot exceed 24 characters
- Communication Mode: Only Upload Mode is supported
- TCP Heartbeat Interval: In TCP communication, the time interval between sending heartbeat packets
- TCP Reconnect Interval: The time interval between reattempts to establish a connection after a TCP connection has been dropped
Data Settings:
Add Dataset parameters Introduction:
After configuring the HJ212 Client parameters, click the "Submit" button to enable the HJ212 Clinet function. In the HJ212 Clinet status page, you can view the running status and connected device information.
The following figure is to add the measurement points to the HJ212 Client mapping table (Note: The mapping table can only be added if the measurement points are filled in for both the monitoring factor and the data set. If only one item is filled in, click the "Confirm" button and an error will be reported)
Description of parameters for adding mapping:
On the protocol conversion configuration page, click Add, and select BACnet IP Server, as shown in the following figure:
Then enter the configuration page of BACnet IP Server, set the relevant parameters and click Submit, as shown in the following figure:
BACnet IP Server Configuration interface parameters description:
The following figure is to add measurement points to the BACnet IP Server Mapping Table:
Add mapping interface parameters:
The following figure is batch adding measurement points to the BACnet IP Server mapping table:
Introduction of parameters for Batch Add Map:
On the Protocol Conversion Configuration page, click Add and select BACnet MS/TP Server, as shown in the following figure:
Then enter the Configuration page of BACnet MS/TP Server, set the relevant parameters and click Submit, as shown in the following figure:
Description of BACnet MS/TP Server configuration interface parameters:
The following figure shows the Add Measurement Points to BACnet MS/TP Server mapping table:
Add a description of the mapping interface parameters:
The following figure shows the Batch Add Measurement Points to BACnet MS/TP Server mapping table:
Introduction to the parameters for adding mappings in bulk:
On the DNP3 Outstation Configuration page, after enabling DNP3 Outstation, the interface is as follows:
DNP3 Outstation Configuration interface parameters:
Basic Settings:
- Remote IP Address: The IP address to which the UDP datagram is sent
- Remote Port: The destination address port from which the UDP datagram is sent
Advanced Settings:
- Unsolicited confirm timeout: The timeout that the Outstation waits for the response of the master after sending data to the master. If the Outstation does not receive a response from the master within the timeout period, the Outstation may consider the communication failed
- Data link response timeout: The link message timeout is the timeout period for waiting for a link message after establishing a communication link between the master station and the Outstation
After configuring the DNP3 Outstation parameters, click the "Submit" button to enable the DNP3 Outstation function. On the status page of DNP3 Outstation, you can view the operating status and connected device information.
Here's how to add a single measurement point to the DNP3 Outstation mapping table:
Description of the parameters for adding the mapping:
The following figure is batch adding measurement points to DNP3 Outstation mapping table:
Introduction to Batch Add Map parameters:
On the IEC 61850 Server Configuration page, after enabling IEC 61850 Server, the interface is as shown below:
IEC 61850 Server Configuration interface parameters:
Basic Settings:
- Password: Set the connection password for connecting to IEC 61850 Server
Data set Settings:
Add dataset interface parameters Instructions:
- Report Control Name: Defines the parameters and behavior of the report. A report control block will typically be assigned a unique name that is used to refer to and identify the report in the configuration.
- Report ID: A value that uniquely identifies the report control block.
- Configuration revision: Used to identify the specific version of a configuration file or configuration item
- Buffer: Events that occur in the reporting mechanism are temporarily stored in a buffer inside the device or system to wait for transmission to the client
- Integrity period: The period for checking the integrity of the data in the report. It defines the update frequency of the reported data, that is, how long the data in the report remains valid and reliable
- Buffer time: The time interval during which the reported data is buffered before it is sent. When data in a report is updated, the data can be buffered for a certain amount of time so that other data updates that occur during that time can be merged into the same report, reducing the number of reported transmissions and the communication load
- Trigger Options: Trigger conditions for sending report data, support "Data change", "Quality change ", "Data update", "Integrity", "General Interrogation" (multiple options)
- Optional Fields: After selecting the parameters, the received report will contain the configurable optional parameter information. Support "Sequence number", "Time stamp", "Reason for inclusion", "Dataset name", "Data reference", "Buffer overflow", "Entry ID", "Configuration revision" (multiple options)
After configuring the IEC 61850 Server parameters, click the "Submit" button to enable the IEC 61850 Server function. In the status page of IEC 61850 Server, you can view the operating status and connected device information.
The following figure is to add measurement point 1 of the southbound controller to the mapping table of the IEC 61850 Server:
Description of parameters to add the mapping:
- BIT: Single point state information, controllable single point
- SINT BYTE, WORD, INT, BCD, DWORD, DINT, BCD32, ULONG, LONG: two point state information, controllable double points, integer status information, controllable state of integer
- SINT BYTE, WORD, INT, BCD, DWORD, DINT, BCD32, ULONG, LONG, FLOAT, DOUBLE, measurements, controllable simulation instruction information.
- Dataset Name: Enable After adding to a dataset, select from the drop-down box. The content of the drop-down box is the configured data set when IEC 61850 Server is configured.
The following figure is the configuration interface for batch adding measurement points to the IEC 61850 Server mapping table (Note: "dataset name" is optional) :
Introduction to Batch Add Map parameters:
On the Configuration page of the SNMP Agent, after enabling the SNMP Agent, the interface is as shown below:
SNMP Agent configuration interface parameters description:
- User Name: The SNMPv3 secure name used to authenticate during communication.
- Enable Auth: Once enabled:
- Authentication Method: MD5 and SHA are supported
- Authentication password: Authentication mechanism, under authNoPriv and authPriv level, the authentication password needs to be provided to verify the identity of the sender of the message.
- Enable Encipher: When configuring SNMPv3 users, you need to ensure that the encryption option is enabled for each user and provide the corresponding encrypted password.
- Encryption Method: supports DES, AES128
- Encryption Password: Encrypts the content of the message.
- Community: This is similar to a password and is used to identify the user or management system that is allowed to access the SNMP agent
- Trap Ip: The destination address IP of the reported Trap message
- Trap Port: The port of the destination address of the reported Trap message, default is 162
- Version: Three major versions are supported, namely V1, V2C, V3. The default is the V3 version used
- If the protocol version used is V3:
- Engine ID: The engine ID is used to generate and verify the security parameters of the message, such as authentication password and encryption password. Usually a hexadecimal string of variable length
- User Name: The SNMPv3 secure name used to authenticate during communication.
- Enable Auth:
- Authentication enabled or not: Once enabled:
- Auth Method: MD5 and SHA are supported
- Auth Password: Authentication mechanism, under authNoPriv and authPriv level, the authentication password needs to be provided to verify the identity of the sender of the message.
- Whether encryption is enabled or not: When configuring SNMPv3 users, you need to ensure that the encryption option is enabled for each user and provide the corresponding encrypted password.
- Auth Method: supports DES, AES128
- Auth Password: Encrypts the content of the message.
- If using V1 or V2C:
- Community: This is similar to a password and is used to identify the user or management system that is allowed to access the SNMP agent
After configuring the SNMP Agent
parameters, click the "Submit" button to enable the SNMP Agent
function. In the status page of SNMP Agent, you can view the running status
information.
The following image is to add the
measurement point 1 of the southbound controller to the SNMP Agent:
Description of the parameters to add the mapping:
Shown below is to choose the point after 2, 4, generate the OID node
address, measuring point correspondence address is 2, point 4 correspondence
address is 3 (batch add OID node address mapping
interface omitted ". 1.3.6.1.4.1.36153.1.2.0. ")
Introduction to Batch Add Map parameters:
The EMQX's official website (https://www.emqx.com/en/mqtt/public-mqtt5-broker), select online using MQTT client tool for testing
Click on "New Connection" in the pop-up window that opens, after filling in the Name field in the interface that pops up afterwards, the rest of the configuration does not need to be modified, and finally click on "Connect".
The data collection configuration for
standard MQTT cloud services is shown in the diagram (for configuring the
Modbus controller and instructions, please refer to the Quick Start):
On the “MQTT Cloud Service” page, after enabling cloud services, select "MQTT" in the "Cloud Types" section and fill in the corresponding parameters.Here's the configuration information for our example:
Leave the rest as default
Click the "Submit" button when
the configuration is complete, as shown below:
The description of each parameter is as follows:
- MQTT username: The Username needed to connect to the MQTT server after the server has enabled the authentication mechanism for username passwords
- MQTT password: The Password to be used to connect to the MQTT server after the server has enabled the authentication mechanism for username and password
Advanced Settings:
- Disable: Turns off TLS encryption
- Symmetric Encryption (client and server share one account and key) :
- Identity: The account number saved on the server and used to verify identity
- Pre-shared Key: The key associated with the account stored on the server that is used to encrypt the request or the digest of the request
- Asymmetric Encryption (client generates a unique key pair, and client and server share the public key) :
- Verification Method: Two types are supported: Verify client CA and Verify client cer and key
- Verify Server Cert: When enabled, the server certificate will be verified for validity
- Verify client CA: This uses a certificate issued by a third-party trusted certificate authority that is preinstalled with the gateway
- Verify client cer and key: It uses a certificate issued by a certificate authority it creates
- rootCA: The CA root certificate
- Client Private Key: The certificate file used for data encryption and decryption
- Client Cert: The certificate file used for client authentication
Last-Will and Testament:
Publish and subscribe messages in Message
Management configuration after submission. Here's how to configure a publish
message with the name inhand_pub and the Topic pubdata:
The publish message configuration
parameters are described as follows:
Subscribe to messages in the EMQX online client
After the connection is successful, select the message type as JSON, click "New Subscription", in the pop-up window, Topic and Qos fill in the Topic and Qos of the message published by the gateway, and finally click "Confirm". Finally, you can view the data reported by the gateway
Here's a subscribe message configured with the name inhand_sub,Topic subdata, and JSON Payload:
The subscribe message configuration parameters are explained as follows:
Publish a message in the EMQX online client
Using the publish function of the online tool, fill out the publish message and choose JSON for the message type. The Topic, Qos and the Topic, Qos subscribed by the gateway are kept the same, and finally click the "Publish" button, that is, the published message can be viewed in the gateway log
Use Ignition software to view the data uploaded by the gateway and the data delivered to the gateway. You can download the Ignition software Download Ignition by Inductive Automation
After installation, do the following
In the window that appears, select "Standard Edition." Set a username password and finally click on "Start Gateway"
Set the Ignition login username password
Download "Designer Launcher" and add Designer after installation
Click here to download the MQTT-Engine-signed.modl module.
Import the MQTT-Engine-signed.modl module you just downloaded from Config > Modules
After adding, an MQTT ENGINE configuration item will appear in the Config interface menu bar. Click to enter the Configuration
Uncheck these two functions. Fill in the address of the server, the EMQX server, for example, URL: TCP: / / broker. EMQX. IO: 1883. Finally click "Save Changes"
Once the configuration is complete, open the Designer Launcher software and double-click on the Designer you just added. Fill in Ignition's username and password.
Create a Project, just add a Project Name and finally click "Create New Project"
The data collection configuration for Standard MQTT Cloud Services is illustrated in the diagram (for Modbus controller setup and instructions, please refer to the Quick Start):
On the MQTT Cloud Services page, after enabling cloud services, select "MQTT SparkPlugB" in the "Cloud Types" section and fill in the corresponding parameters.
This example uses the EMQX server as a case study. The sample configuration is as follows:
The rest of the settings can be left as default.
After submitting the configuration, the gateway will automatically generate scripts for publishing and subscribing.
The parameters are explained as follows:
Basic Settings:
- MQTT username: The Username needed to connect to the MQTT server after the server has enabled the authentication mechanism for username passwords
- MQTT password: The Password to be used to connect to the MQTT server after the server has enabled the authentication mechanism for username and password
Advanced Settings:
- Disable: Turns off TLS encryption
- Symmetric Encryption (client and server share one account and key) :
- Identity: The account number saved on the server and used to verify identity
- Pre-shared Key: The key associated with the account stored on the server that is used to encrypt the request or the digest of the request
- Asymmetric Encryption (client generates a unique key pair, and client and server share the public key) :
- Verification Method: Two types are supported: Verify client CA and Verify client cer and key
- Verify Server Cert: When enabled, the server certificate will be verified for validity
- Verify client CA: This uses a certificate issued by a third-party trusted certificate authority that is preinstalled with the gateway
- rootCA: The CA root certificate
- Client Private Key: The certificate file used for data encryption and decryption
- Client Cert: The certificate file used for client authentication
- Verify client cer and key: It uses a certificate issued by a certificate authority it creates
View the data published by the gateway via Ignition. (Note: The software cannot parse some data types because the values of the gateway and this software defined data type are different)
Double-click the value of the point you want to modify in Ignition, and then type Enter. In the subsequent pop-up window, click "Write Once". Finally, you can see the modified value in the point monitor on the gateway.
If you have already configured the corresponding products and devices in Alibaba Cloud's iot cloud platform, you can directly check the next section Edge Computing Gateway Configuration. Otherwise, please follow the following process to configure the products and devices in the iot cloud platform. Visit Alibaba Cloud official website https://www.aliyun.com and log in. After logging in, select "Iot Platform".
Click "Activited" after entering the Iot Platform
Step 1: Create the product
Enter the
following page and click "Create Product".
Here is an example of adding a street
lighting product. Note: The data format only supports "ICA Standard Data
Format", and the authentication method only supports "Device Secret".
Step 2: Define features for the product (optional)
Once created, click "Go to Function Definition"
Click "Edit Draft" to configure
the feature definition for your product.
Click "Add Self-defined Feature"
and configure the corresponding "services" and "events,"
see Add Single TSL Model for an introduction to services and events. Note: When configuring the service, the invocation mode only
supports asynchronous.
Configuring the service (not required when using Custom Topic)
Click "Add Parameter" under "Input Parameter" and configure the appropriate input parameters
Configure the “Events” (you don't need to configure this when using custom Topic)
Under "Output Parameter" click "Add Parameter" and configure the appropriate output parameters.
Click "Release Online" when the configuration is complete to submit the configuration.
Step 3: Export the Object Model TSL
After the product configuration is
completed, click "TSL Model" on the "Define Feature" page,
then select "Full TSL" and click "Export TSL File" for
subsequent use. Note: Do not select "reduced
object model" when exporting object model, otherwise it may lead to
abnormal data reporting.
Go to Devices > Devices > Device List
and click Add Device.
Select the product created in the previous
step and configure the other parameters.
Click "Learn more" to view the details of the device after adding successfully.
The "Device Information" page
looks like this:
At this point, the corresponding products and devices have been configured in the iot cloud platform of Alibaba Cloud.
The data collection configuration for Standard MQTT Cloud Services is illustrated in the diagram (for Modbus controller setup and instructions, please refer to the Quick Start):
On the MQTT Cloud Service page, check "Enable Cloud " and select the type as "Alibaba Cloud" Alibaba Cloud IoT has two authentication methods: Unique-certificate-per-device Authentication and Unique-certificate-per-product. For detailed information about authentication methods, please refer to Alibaba Cloud device security certification
When
connecting to Alibaba Cloud IoT using the " Unique-certificate-per-device
Authentication " authentication method, choose the authentication method
as " Unique-certificate-per-device Authentication." The example
configuration is as follows:
The parameters are described as follows:
When using the authentication method of "Unique-certificate-per-product" to establish a connection with Alibaba Cloud IoT, choose the authentication method of "Unique-certificate-per-product". The example configuration is as follows:
Note:
When the authentication method is " Unique-certificate-per-product ", "Dynamic Registration" needs to be enabled.
Only non-activated
devices support the establishment of connection with Alibab Cloud IoT through
the mode of Unique-certificate-per-product and the device is automatically
activated after the connection is established. After activation, the device
switches to Unique-certificate-per-device Authentication connection with Ali
Cloud IoT. You can check whether the device has an activation time on the
device page to determine whether the device has been activated.
The parameters are explained as follows:
The following figure shows the successful
connection to Alibaba Cloud IoT:
Add publish on the MQTT Cloud Service page. There are three types of Add publish supported: Custom Topic, Properties, and Events.
For the data format requirements during data reporting, refer to the TSL model development
Note: When using Attribute reporting and Event reporting, please ensure that the "TSL Model TSL" matches the thing model of the product in Alibaba Cloud IoT.
An example configuration for Posting a
message with a Custom Topic type is as follows:
The Posting message configuration parameters are described as follows:
You can go to "Devices> Product
> Aliyun IoT > Define Feature" page to view the product attribute
events and other information. The example product has an attribute named
"Working Status" with the identifier of "LightStatus".
Using the example script, the value of the "LightStatus" variable can
be uploaded to Alibaba Cloud IoT through the attribute report, and the
configuration is as follows.
Please refer to Custom topic for the description of the configuration parameters of the release message.
Use the default Topic.
Example function code:
# Enter your python code. import json import random from common.Logger import logger from quickfaas.aliyuniot import thing_post_property def main(message): logger.debug(message) for measure in message['measures']: if measure['name'] == 'LightStatus': thing_post_property(__topic__, {"LightStatus": measure['value']})
The attribute status can be viewed in
"Devices> Devices > IoTTest > TSL Data > Status" page of
Alibaba Cloud IoT.
You can go to the "Device Management > Product > Ali Cloud IoT > Function Feature" page to view the product's attribute events and other information. The sample product has an event named "Event test" with an identifier of "event_test". Using the example script, the value of "event_test" variable can be uploaded to Alibaba Cloud IoT through event reporting, as configured below.
See Custom topic for a description of the configuration parameters for publishing messages.
Use the default Topic.
Example function code:
# Enter your python code.
import json
import random
from common.Logger import logger
from quickfaas.aliyuniot import thing_trigger_event
def main(message):
logger.debug(message)
if message['measureName'] == 'event_test':
thing_trigger_event(__topic__, ("event_test", {"ErrorCode": message['value']}))
When triggering an event report, you need to configure an alarm rule for the "event_test" measurement point. The alarm information is as follows (for configuring alarm rules, please refer to: 2.2 Alarm Rules):
After configuring the alarm rule, modifying the measurement point's value to be greater than 15 will trigger an event message report. You can view the property status on the "Devices > Devices > IoTTest > TSL Data > Events" page in Alibaba Cloud IoT.
On the MQTT Cloud Services page, add subscription messages under "Message Management > Subscribe". Subscription messages support four types of messages: Custom Topic, Service Call, Property Setting and RRPC.
An example configuration with a custom
topic message type is as follows:
The subscribe message configuration
parameters are explained as follows:
The following is an example of a service
call that can accept the "Service test" setup instruction issued by
Aliyun IoT. Note: When using the service test, make sure that the "TSL Model"
in the gateway is consistent with the thing model of the product in Aliyun IoT.
For the explanation of Service Call parameters, please refer to Custom Topic. (Note: Unlike Custom Topic, you need to modify the default Topic. The service identifier can be obtained under "Devices > Product> Aliyun IoT >Define Feature ").
Example function code:
# Enter your python code.
import json
import random
from common.Logger import logger
from quickfaas.aliyuniot import thing_answer_service
def main(topic, payload):
logger.info(topic)
topic = topic + "_reply"
thing_answer_service(topic, {"Power": random.randint(0, 10)})
Enter the "Maintenance > Online
debug > Debugging real equipment > service calls" page of Alibaba
Cloud IoT to select the corresponding products and equipment for service call
test; Check the service call information in the "Devices > Devices >
IoTTset> TSL Model> Invoke Service" page.
The following is an example of property
setting, which can accept the "Working status" instruction issued by
Ali Cloud IoT. Note: When using the property Settings, make sure that the
"TSL Model" in the gateway is consistent with the TSL Model of the
product in Aliyun IoT.
Please refer to Custom topic for instructions on subscribe message configuration parameters.
Example function code:
# Enter your python code.
import json
from common.Logger import logger
from quickfaas.measure import write_plc_values
def write_callback(message, userdata):
logger.debug("write plc response: %s, userdata:%s" % (message, userdata))
def main(topic, payload, cloudName):
logger.debug("subscribe topic: %s, payload: %s, cloudName: %s" % (topic, payload, cloudName))
write_plc_values(message={"LightStatus":json.loads(payload)['params']['LightStatus']}, callback=write_callback, userdata="")
Enter the "Maintenance > Online
Debug > Debugging real equipment > Property Debugging" page of Ali
Cloud IoT to select the corresponding products, devices, debugging functions
and methods for attribute setting testing; Check the running status of the
equipment in the "Devices > Devices> IoTTest >TSL Model > Status"
page.
See Custom topic for instructions on subscribe message configuration parameters. (Note: Please select Base64 for Payload type)
Example code function:
# Enter your python code.
import json
import base64
from common.Logger import logger
from quickfaas.aliyuniot import thing_answer_rrpc
def main(topic, payload):
logger.debug(topic)
logger.debug(base64.b64decode(payload))
topic = topic.replace("request", "response")
thing_answer_rrpc(topic, payload)
After configuring the gateway, click the link here to enter the
interface of calling RRPC service.
When the value of "success" in the result information is true, the delivery is considered successful
"RequestBase64Byte" means you want to send a Base64-encoded message. For example, the Base64-encoded value for {" Power ":1} is eyJQb3dlciI6IDF9.
Finally, you will be able to view the sent
message in the gateway log
If you've already configured the things,
policies, and certificates in the AWS IoT console, you can go straight to the
next section Edge Computing Gateway Configuration. Otherwise,
follow the process below to configure the IoT console. Visit the AWS official
website https://aws.amazon.com/
and log in to the console. Users in China region can use AWS services in AWS
China region at https://cn-northwest-1.console.amazonaws.cn.
It should be noted that the data of the two are
independent of each other. Select "IoT Core" after logging
into the console, or "AWS IoT" when using AWS services in China. Once
logged in, search for "Amazon IoT" and once inside create an item and
attach policies and download certificates.
The data collection configuration for the
Standard MQTT Cloud Service is illustrated in the diagram (for Modbus
controller setup and instructions, please refer to the Quick Start):
On the
MQTT Cloud Services page, check "Enable Cloud" and select the type as
"AWS IoT." An example configuration is as follows:
The parameters are described as follows:
Use the default configuration for the rest
Add a publish message in MQTT Cloud Service
> Message Management with the following configuration:
Example function code:
# Enter your python code.
import json
from common.Logger import logger
from quickfaas.awsiot import awsiot_publish
def main(message):
logger.debug(message)
awsiot_publish(__topic__, json.dumps(message), __qos__)
The publish message configuration
parameters are described as follows:
Subscribe to messages in AWS IoT
Go to the "test /MQTT test client"
page of AWS IoT and enter the publishing Topic of the gateway in "Subscribe
to a topic", this document is awsiot/test.
After subscribing to the message, after subscribing
to the topic, you can view the content of the received message in the Subscribe
topic page.
Add a subscribe message in MQTT Cloud
Services > Message Management with the following configuration:
Configure the Topic and Payload of the
published message in AWS. After clicking Publish, the published message will be
viewed in the gateway's log
If you have already configured the corresponding IoT Hub and IoT device in Azure IoT, you can directly check the next section Edge Computing Gateway configuration. Otherwise, follow the process below to configure Azure IoT. Log in to Azure by visiting https://portal.azure.cn/.
Once logged in to Azure, select "IoT Hub"
Click "Create" to create an IoT
Hub.
Click "Create new" to create a
resource group, or use an existing resource group.
The following screenshot shows the
successful creation:
The data collection configuration for the
Standard MQTT Cloud Service is illustrated in the diagram (for Modbus
controller setup and instructions, please refer to the Quick start):
On the
MQTT Cloud Service page, select Enable Cloud Service and set Type to Azure IoT.
The following is an example configuration:
The parameters are described as follows:
Add a publish message in MQTT Cloud
Services > Message Management with the following configuration:
The release message configuration
parameters are explained as follows:
Use VS Code's Azure IoT Tools plugin to establish a connection to IoT Hub
Once you've posted your message after
submitting, use the Azure IoT Tools plugin of Visual Studio Code software
(hereinafter referred to as VS Code) to view the messages sent to Azure IoT.
You can visit: https://code.visualstudio.com/Download for the corresponding
Visual Studio Code software (hereinafter referred to as the v Code). Once VS
Code is installed, open VS Code and click on "Extensions", enter
Azure IoT Tools in the search box and install the Azure IoT Tools plugin.
You can see the Azure module on the left
after the installation.
Click on "Explorer > AZURE IOT
HUB" to expand AZURE IOT HUB. Click on "... > Set IoT Hub
Connection String "Set the IoT Hub connection string. Enter the IoT Hub
connection string in the prompt box. The connection string for the IoT Hub is
available from the "Policy Name > iothubowner" page for the
specified IoT hub.
Enter the connection string and press Enter under "AZURE IOT HUB" to see the created Azure IoT Device and the connection status.
Right click on the specified Azure IoT
Device and select Start Monitoring Built-in Event Endpoint from the menu to see
the data pushed by the gateway to the IoT Hub.
Fill in the string shown below in the
pop-up window to view the reported data
Add a subscribe message in MQTT Cloud
Services > Message Management with the following configuration:
# Enter your python code.
import json
from common.Logger import logger
def main(topic, payload):
logger.debug(topic)
logger.debug(payload)
Enter the data you want to send in the send
box, such as {" message ":" hello "}
After hitting Enter to send the data, you
can see a log of the successful delivery of the message in the Output window
At the same time, you can also view the sent message in the log of the gateway side
Parameter Name | Interface Configuration Items |
MeasuringPointName | Name of measurement point |
ControllerName | Controller name |
GroupName | Subgroups |
UploadType | Upload mode, support periodic, onchange, never |
DeadZonePercent | variation deadband |
DataType | data type |
ArrayIndex | Array index, configure this parameter only if it is an OPC UA protocol or an OPC UA PUBSUB protocol. |
EnableBit | rounding up to the nearest integer |
BitIndex | classifier for honorific people |
reverseBit | retrieve the opposite of what one intended |
Address | measurement point address |
Decimal | Decimal places, this parameter is configured when the data type is FLOAT or DOUBLE. |
Len | Length, configured when the data type is STRING. |
CodeType | Character encoding format, this parameter is configured when the data type is STRING. |
ReadWrite | read-write access |
Unit | unit (of measure) |
Description | descriptions |
Transform Type | Data operations, none is none, gain is proportional conversion, zoom is offset and scaling, ptct is PT/CT, bit is bit interception |
MaxValue | Data ceiling |
MinValue | lower limit of data |
MaxScale | Percentage cap |
MinScale | lower limit of proportionality |
Gain | magnification |
Offset | offset |
startBit | starting position |
endBit | end position |
Pt | Pt |
Ct | Ct |
Mapping_table | A mapping table for numeric mapping, e.g. to configure the original value to be 1 and the mapped value to be 2, the content of this item would be [{'source': 1, 'target': 2}]. |
TransDecimal | Data operations are proportional conversions, offsets and scaling, and decimal place parameters in PT/CT configuration. |
bitMap | When the data type is BIT, or after using bitwise interception, the enabled value maps to 1, and vice versa to 0 |
msecSample | When group packet reporting is enabled by the controller, the measurement point is configured for group packet reporting as 1 and vice versa as 0 |
storageLwTSDB | Storing Historical Data |
DataEndianReverse | Measurement point byte order of measurement points for simple drive protocols, 0 for agreement with the controller, 1 for the opposite of the controller |
ReadOffset | Start reading bytes |
ReadLength | Read byte length |
WriteOffset | Start write byte |
WriteLength | Write Byte Length |
DataParseMethod | Resolution of measurement points for simple driver protocols |
BitId | abandoned |
pollCycle | Polling cycle. 0 is the polling cycle, 1 is the polling cycle 2 |
Description of the address of the measuring point:
Controllers | Address Example | Instructions |
DNP3 TCP | 0-2-3-4 | 0: Digital input 2: Group number 3: Variants 4: Address |
*EFORT Robot | ReadEfortData_0 | Robot Details |
*FANUC Robot | ReadFanucData_0 | Robot Details |
*FANUC CNC 0i | ReadSpindleSpeed_0 | Mainframe Rotation |
FATEK Programe Port/ FATEK Programe Port over TCP | X1 | X: address type; 1: address |
*HJ212-2005-Serial/ HJ212-2017-Serial | 1-Rtd/1-Flag | 1: address; - Rtd: contaminant real-time data / - Flag: contaminant sampling flag |
IEC 61850 MMS | simpleIOGenericIO/LLN0.NamPlt.ldNs[ST] | simpleIOGenericIO/LLN0.NamPlt.ldNs: object references, ST: functional constraints |
Modbus ASCII Modbus RTU over TCP Modbus TCP Modbus RTU Slave | 0X0001 | 0X: Coil register 3X: Input register (not supported by Modbus RTU Slave) 4X: Holding register |
MC 1E/MC 3E/MC 3C/MC 3C over TCP/MITSUBISHI Programe Port (Programming Port) | X1 | X: address type; 1: address |
FINS TCP/FINS UDP/HostLink | D1 | D: address type; 1: address |
OPC UA | ns=1;s=1 | ns= : NS (namespace index); s=: address type String, or "i=" if address type is Number |
*OPC UA PUBSUB | 100;1,200;2/100;1 | 100: Subscription Group ID 1: Subscription Write ID 200: Release group ID 2: Publish Write ID If the measuring point is read-only, only a 100;1 subscription grouping and write ID is required |
Mewtocol | X1 | X: address type; 1: address |
ISO-on-TCP/PPI | I1 | I: address type; 1: address |
Remaining controllers | 1 | For the rest of the controllers, just fill in an integer for the address of the measurement point. |
ABB Robot Address Notes:
Read Type | Address |
Current control status | GetCtrlState_0 |
current error state | GetErrorState_0 |
Physical joint information | GetJointTarget_0 |
Speed Ratio Information | GetSpeedRatio_0 |
Current working mode | GetOperationMode_0 |
Local Input IO | GetIOIn_0 |
Local Output IO | GetIOOut_0 |
Local input IO2 | GetIO2In_0 |
Local output IO2 | GetIO2Out_0 |
Logging | GetLog_{"length":10} |
System Information | GetSystem_0 |
Target coordinate information | GetRobotTarget_0 |
Servo Enable State | GetServoEnable_0 |
Current program running status | GetRapidExecution_0 |
Task List | GetRapidTasks_0 |
Address description for BACnet IP / BACnet MS/TP (the address parameters are all set to 1):
Object Type | Address |
analogue input | AI,1 |
analogue output | AO,1 |
analogue value | AV,1 |
digital input | BI,1 |
digital output | BO,1 |
numerical value | BV,1 |
Polymorphic inputs | MSI,1 |
polymorphic output | MSO,1 |
polymorphic value | MSV,1 |
control loop | LOOP,1 |
Trend recording | TRENDLOG,1 |
Minimum Extended Object | PROPRIETARY_MIN,1 |
CJT188-2004 Measuring point address description:
Data Message Name | Data Identification | Point | Address (<Data Identification: Point Serial Number>) |
Reading of metrological data | 901F-16 (optional when meter type in controller is 10, 11, 12, 13, 30, 40) | Current cumulative traffic; Current cumulative flow units; Accumulated traffic on the settlement date; Cumulative flow units on the settlement date; Real time (writable) status word | 901F-16:00 901F-16:01 901F-16:02 901F-16:03 901F-16:04 901F-16:05 |
901F-2E (optional when meter type in controller is 20, 21) | Settlement day calories. Settlement day heat unit; Current heat; Current heat units; Thermal power; Thermal power units; Flow; Flow units; Cumulative flow; Cumulative flow units; Water supply temperature; Return water temperature; Accumulation of working hours; Real time; (writable) status word | 901F-2E:06 901F-2E:07 901F-2E:08 901F-2E:09 901F-2E:0A 901F-2E:0B 901F-2E:0C 901F-2E:0D 901F-2E:0E 901F-2E:0F 901F-2E:10 901F-2E:11 901F-2E:12 901F-2E:04 901F-2E:05 | |
Historical measurement data | D120~D12B (12 addresses in total) 10 : A 11 : B | Settlement date of last X months (cumulative flow/heat) Settlement date of last X months (cumulative flow/calorie) units | D12X:13 D12X:14 |
Read the price list | 8102 | Price I; (optional) Dosage I; (may be written) Price II; (optional) Dosage II; (may be written) Price III (optional) | 8102:15 8102:16 8102:17 8102:18 8102:19 |
invoice date | 8103 | Closing date (optional) | 8103:1A |
meter reading day | 8104 | Day of meter reading (optional) | 8104:1B |
Read purchase amount | 8105 | Serial number of this purchase; (optional) Amount of the current purchase; (optional) Cumulative purchase amount; Remaining amount status word | 8105:1C 8105:1D 8105:1E 8105:1F 8105:05 |
IEC 101/IEC 103/IEC 104 Address description (the value of the IOA address is fixed to 1):
Address Type | Address |
Single-Point Information | 1 1 |
Double-Point Information | 3 1 |
Step Position Information | 5 1 |
Bitstring(32bit) | 7 1 |
Measured Value (Normalised) | 9 1 |
Measured Value (Scaled) | 11 1 |
Measured Value (Short Float) | 13 1 |
Integrated Totals | 15 1 |
Parameter | 110 1 |
Single Command | 45 1 |
Double Command | 46 1 |
Regulating Step Command | 47 1 |
Set point command-Measured Value (Normalised) | 48 1 |
Set point command-Measured Value (Scaled) | 49 1 |
Set point command-Measured Value (Short Float) | 50 1 |
Bitstring command(32bit) | 51 1 |
Parameter Name | Interface Configuration Items |
GroupName | Name of the subgroup |
UploadInterval | Reporting cycle |
EnablePerOnchange | Periodic reporting of Onchange data |
OnchangePeriod | Onchange reporting cycle |
LwTSDBSize | Maximum number of bars. Range 1-150,000 |
strategy | Storage strategy. 1: synchronised with reporting cycle; 2: independent storage cycle |
storagePeriod | Storage period in seconds. Range 1-86400 |
historyDataMode | Storage method. gateway: gateway storage; usb: USB; sd: SD card |
historyDataPath | Storage path |
Parameter Name | Interface Configuration Items |
AlarmName | Alarm name |
ControllerName | Controller Name |
MeasuringPointName | Name of measurement point |
AlarmLevel | warning level |
Condition1 | Judgement condition 1."=", "! =", ">", "≥", "<", "≤ " correspond to "eq", "neq", "gt", "egt ", "lt", "elt". |
Operand1 | The value of condition 1 can only be an integer or a decimal. |
CombineMethod | Judgement conditions. none: no logical condition; and: && logical condition; or: || logical condition |
Condition2 | Judgement condition 2."=", "! =", ">", "≥", "<", "≤ " correspond to "eq", "neq", "gt", "egt ", "lt", "elt". |
Operand2 | The value of condition 2 can only be an integer or a decimal. |
AlarmContent | Alarm content, can't exceed 70 characters |
AlarmTag | warning label |
Parameter Name | Interface Configuration Items |
AlarmLableName | Alarm label name, range 1-240 bytes |
Parameter Name | Interface Configuration Items |
MeasuringPointName | Name of measurement point |
ControllerName | Controller Name |
GroupName | Name of the subgroup |
UploadName | Name of the upward cloud measurement point |
Hide | Shielded. 0 is an unshielded test point; 1 is a shielded test point. |
Parameter Name | Interface Configuration Items |
Measuring Point Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
Start Mapping Address | Starting address in the Modbus TCP Slave's registers. |
Parameter Name | Interface Configuration Items |
Measuring Point Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
ASDU | ASDU address, selected from the server list in the IEC 104 Server configuration. Range 0-65534 |
Type Id | Type ID |
startIOA | Starting IOA address, range 1-16777215 |
Parameter Name | Interface Configuration Items |
Measuring Point Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
Start Mapping Address | Starting address in the Modbus RTU Slave's registers. |
Parameter Name | Interface Configuration Items |
Measuring Point Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
ASDU | ASDU address, selected from the server list in the IEC 104 Server configuration. Range 0-65534 |
Type Id | Type ID |
startIOA | Starting IOA address, range 1-16777215 |
Parameter Name | Interface Configuration Items |
Measuring Point Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
Identifi | Type of element |
Parameter Name | Interface Configuration Items |
Measuring Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
Encode | Monitoring Factor Coding |
Block | data set |
Parameter Name | Interface Configuration Items |
Control Name | Name of the controller to which the measurement point belongs |
Measuring Point Name | Name of measurement point |
Read/Write | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
Object Type | Object types. Analogue Input: AI, Analogue Output: AO, Analogue Value: AV, Multistate Input: MSI, Multistate Output: MSO, Multistate Value: MSV |
Instance Number | Instance number, range 0-1023 |
Parameter Name | Interface Configuration Items |
Control Name | Name of the controller to which the measurement point belongs |
Measuring Point Name | Name of measurement point |
Read/Write | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
Object Type | Object types. Analogue Input: AI, Analogue Output: AO, Analogue Value: AV, Multistate Input: MSI, Multistate Output: MSO, Multistate Value: MSV |
Instance Number | Instance number, range 0-1023 |
Parameter Name | Interface Configuration Items |
Measuring Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
Object Type | Address type of the mapped address |
Instance Number | mapping address |
Parameter Name | Interface Configuration Items |
Measuring Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
CDC Type | Data object type |
Data Attribute Reference | mapping address |
Add Data Set | Add to dataset |
Data Set Name | Data set name |
Parameter Name | Interface Configuration Items |
Measuring Name | Name of measurement point |
Controller Name | Name of the controller to which the measurement point belongs |
readWrite | Read and write permissions, with values consistent with the read and write permissions of the measurement points in the controller. |
Data Type | Raw data type, consistent with the data type of this measurement point in the controller |
Mapping Data Type | Mapping Data Types |
EnableBit | Consistent with the per-bit value of this measurement point in the controller, 1 if the measurement point is enabled, 0 if it is not enabled, and null if it does not have this configuration, e.g. EnableBit is null if the original data type of the measurement point is FLOAT. |
OID | OID node address |
Note: The exported CSV file does not contain information about SN and MAC
Parameter Name | Interface Configuration Items |
key | parameters |
value | parameter value |
Parameter Name | Interface Configuration Items |
clouds | Configuration information for cloud services |
type | "Standard MQTT" |
cacheSize | Cache size setting, range 1~65535 |
enable | 0: Disable cloud services, 1: Enable cloud services |
args | Parameter sets specific to different cloud services |
host | server address |
clientId | Client ID |
auth | 0: user authentication is not enabled; 1: user authentication is enabled |
username | user ID |
passwd | cryptographic |
key | Client Private Key |
cert | Client Certificates |
rootCA | CA certificate |
port | port number |
keepalive | Keep Alive |
tls | 0: TLS encryption not enabled; 1: symmetric encryption; 2: asymmetric encryption |
cleanSession | Clear Session |
mqttVersion | MQTT version; v3.1/v3.1.1 |
tlsAuth | Authentication method ("caSigned": CA signature; "caSelfSigned": CA self-signature) |
verifyServer | Validating server certificates |
willTopic | Wills MessageTopic |
willQos | Probate Message Qos |
willRetain | Will Message Retain |
willPayload | Probate Message Payload |
rootCA_content | CA certificate contents |
cert_content | Client private key contents |
key_content | Client certificate contents |
uploadRules | Configuration of cloud measurement points |
quickfaas | Message Management Configuration |
uploadFuncs | Publishing Script Configuration |
downloadFuncs | Subscription Script Configuration |
Parameter Name | Interface Configuration Items |
clouds | Configuration information for cloud services |
type | "SparkPlugB MQTT." |
cacheSize | Cache size setting, range 1~65535 |
enable | 0: Disable cloud services, 1: Enable cloud services |
args | Parameter sets specific to different cloud services |
host | server address |
clientId | Client ID |
groupId | Grouping ID |
auth | 0: user authentication is not enabled; 1: user authentication is enabled |
username | user ID |
passwd | cryptographic |
key | Client Private Key |
cert | Client Certificates |
rootCA | CA certificate |
port | port number |
keepalive | Keep Alive |
tls | 0: TLS encryption not enabled; 1: symmetric encryption; 2: asymmetric encryption |
cleanSession | Clear Session |
mqttVersion | MQTT version; v3.1/v3.1.1 |
tlsAuth | Authentication method ("caSigned": CA signature; "caSelfSigned": CA self-signature) |
verifyServer | Validating server certificates |
rootCA_content | CA certificate contents |
cert_content | Client private key contents |
key_content | Client certificate contents |
uploadRules | Configuration of cloud measurement points |
quickfaas | Message Management Configuration |
uploadFuncs | Publishing Script Configuration |
downloadFuncs | Subscription Script Configuration |
Parameter Name | Interface Configuration Items |
clouds | Configuration information for cloud services |
type | "Aliyun IoT" |
cacheSize | Cache size setting, range 1~65535 |
enable | 0: Disable cloud services, 1: Enable cloud services |
args | Parameter sets specific to different cloud services |
host | Region ID |
connType | Authentication type: 0: one machine, one secret; 1: one type, one secret |
productKey | AliCloud ProductKey |
deviceName | Aliyun DeviceName |
deviceSecret | AliCloud DeviceSecret (one machine, one secret) |
productSecret | AliCloud ProductSecret (one type, one secret) |
thingTSL | AliCloud Object Model TSL |
rootCA | CA certificate |
port | port number |
keepalive | Keep Alive |
tls | 0: TLS encryption not enabled; 1: symmetric encryption; 2: asymmetric encryption |
cleanSession | Clear Session |
mqttVersion | MQTT version; v3.1/v3.1.1 |
uploadRules | Configuration of cloud measurement points |
quickfaas | Message Management Configuration |
uploadFuncs | Publishing Script Configuration |
downloadFuncs | Subscription Script Configuration |
Parameter Name | Interface Configuration Items |
clouds | Configuration information for cloud services |
type | "AWS IoT." |
cacheSize | Cache size setting, range 1~65535 |
enable | 0: Disable cloud services, 1: Enable cloud services |
args | Parameter sets specific to different cloud services |
endPoint | AWS IoT End Nodes |
clientId | Client ID |
cert | Certificates for items |
key | private key |
rootCA | CA certificate |
port | port number |
keepalive | Keep Alive |
cleanSession | Clear Session |
mqttVersion | MQTT version; v3.1/v3.1.1 |
rootCA_content | CA certificate contents |
cert_content | Contents of certificates for items |
key_content | private key content |
uploadRules | Configuration of cloud measurement points |
quickfaas | Message Management Configuration |
uploadFuncs | Publishing Script Configuration |
downloadFuncs | Subscription Script Configuration |
Parameter Name | Interface Configuration Items |
clouds | Configuration information for cloud services |
type | "Azure IoT." |
cacheSize | Cache size setting, range 1~65535 |
enable | 0: Disable cloud services, 1: Enable cloud services |
args | Parameter sets specific to different cloud services |
authType | Authentication method |
connectionString | Azure IoT connection string |
deviceCA | Azure IoT Device Certificates |
deviceKey | Azure IoT private key |
uploadRules | Configuration of cloud measurement points |
quickfaas | Message Management Configuration |
uploadFuncs | Publishing Script Configuration |
downloadFuncs | Subscription Script Configuration |
This section describes the Python API used internally by the gateway, which provides a set of featent-rich interfaces that enable users to implement various operations and data processing on the gateway by writing Python scripts. This section will provide you with the necessary information and sample code to help you take full advantage of the features and performance of the product.
from quickfaas.remotebus import publish
publish(topic, payload, qos=1, wizard_data=None, cloud_name="default")
- topic: The topic to publish the data on
- payload: The payload of the published data
- qos: The message level at which the data is published
- wizard_data: When the first push message fails, it is stored in the offline cache according to the topic, payload, qos specified by wizard_data (or using the sent topic, payload, qos if wizard_data is not specified), waiting for the connection to be restored and then uploaded to the MQTT server in chronological order
- The wizard_data format is as follows:
{"topic":<topic>, "qos":<qos>, "payload":<payload>}
- cloud_name: This specifies which cloud to publish to and can be used when multiple clouds are used together
When configuring the "publish" fast function, the message parameter of the fast function has two formats (depending on whether it is passed to wizard_api or not).
The entry
function contains wizard_api parameter. The following script is an example
(default script)
# Enter your python code.
import json
from common.Logger import logger
from quickfaas.remotebus import publish
def main(message, wizard_api, cloudName):
logger.debug("publish topic:%s, payload: %s, cloudName: %s" % (__topic__, message, cloudName))
publish(__topic__, json.dumps(message), __qos__, cloud_name=cloudName)
Example of the incoming message data format:
{
"timestamp": 1713498600,
"timestampMsec": 1713498600121,
"group_name": "default",
"values": {
"Modbus": {
"word": {
"raw_data": 22,
"timestamp": 1713498592,
"status": 1,
"timestampMsec": 1713498592261
}
}
}
}
The Entry Function does not contain a wizard_api parameter,
and an example script looks like this:
# Enter your python code.
import json
from common.Logger import logger
from quickfaas.remotebus import publish
def main(message, cloudName):
logger.debug("publish topic:%s, payload: %s, cloudName: %s" % (__topic__, message, cloudName))
publish(__topic__, json.dumps(message), __qos__, cloud_name=cloudName)
Example of the incoming message data
format:
{
"timestamp": 1713498680,
"timestampMsec": 1713498680121,
"group": "default",
"measures": [
{
"ctrlName": "Modbus",
"name": "word",
"health": 1,
"timestamp": 1713498672,
"timestampMsec": 1713498672278,
"value": 22
}
]
}
This interface is a synchronous write value interface. After the call is made, it will wait until the write value response message is received before returning.
def write(message, timeout=60, cloudName=None)
Format 1: {"measures1": 12}. If the measurepoint name is duplicated or does not exist, an exception will be thrown indicating that the write value has failed
Format 2: {"controller1": {"measures1": 12}}
Format 3: [{" name ":" controller1 ", "measures" : [{" name ":" measures1 ", "value" : 12}]}]
An example script is as follows (write) :
from common.Logger import logger
from quickfaas.measure import write
def action_name():
write_request = {"measures1": 12}
logger.debug('write plc response: %s' % write(write_request))
write_request = {"controller1": {"measures1": 12}}
logger.debug('write plc response: %s' % write(write_request))
write_request = [{"name": "controller1", "measures":[{"name": "measures1", "value": 12}]}]
logger.debug('write plc response: %s' % write(write_request))
Format 1 and Format 2 return data content (write) :
[
{
"device": "controller1",
"var_name": "measures1",
"Result ": "OK",# "OK" represents success, "Failed" represents failure
"error": "Success"
}
]
Format 3's return data content (write) :
[
{
"name": "controller1",
"measures":[
{
"name": "measures1",
"error_code": 0, # 0 represents success, non 0 represents failure
"error_reason": "Success"
}
]
}
]
This interface is an asynchronous write value interface. The write value response message will trigger the callback function interface.
API prototype
def write_plc_values(message, callback=None, userdata=None, timeout=60, cloudName=None)
Format 1: {"measures1": 12}. If the measurepoint name is duplicated or does not exist, an exception will be thrown indicating that the write value has failed
Format 2: {"controller1": {"measures1": 12}}
Format 3: [{" name ":" controller1 ", "measures" : [{" name ":" measures1 ", "value" : 12}]}]
For DS1.0 compatibility, the callback function also supports three arguments
An example script (write_plc_values) :
from common.Logger import logger
from quickfaas.measure import write_plc_values
def write_callback(message, userdata):
logger.debug("write plc response: %s, userdata:%s" % (message, userdata))
def write_callback2(message, userdata, wizard_api):
logger.debug("write plc response: %s, userdata:%s" % (message, userdata))
def action_name():
write_request = {"measures1": 12}
write_plc_values(message=write_request, callback=write_callback, userdata="")
write_request = {"controller1": {"measures1": 12}}
write_plc_values(message=write_request, callback=write_callback, userdata="")
write_request = [{"name": "controller1", "measures":[{"name": "measures1", "value": 12}]}]
write_plc_values(message=write_request, callback=write_callback2, userdata="")
Format 1 and Format 2 callback functions return the data
contents (write_plc_values) :
[
{
"device": "controller1",
"var_name": "measures1",
"Result ": "OK",# "OK" represents success, "Failed" represents failure
"error": "Success"
}
]
The callback function for Format 3 returns the data
contents (write_plc_values) :
[
{
"name": "controller1",
"measures":[
{
"name": "measures1",
"error_code": 0, # 0 represents success, non 0 represents failure
"error_reason": "Success"
}
]
}
]
API prototype
def recall(names=None, recall_type="measure", timeout=10, realTime=False)
- names: List of recall names
- When recall_type is "measure" :
None or [], which means get all measure points from all controllers[{"name": "controller1", "measures": []}], to get all measures for controller1
[{"name": "controller1", "measures": ["measure1", "measure2"]}], stands for getting data from measure1 and measure2 under controller1
- When recall_type is "group" :
["group1", "group2"] for getting data from groups "group1" and "group2"
recall_type:
The type of data to recall
- "measure": Recall data by measure point (if names=[], that is, if no measure name is specified, recall all measure points on the device)
- "group": Recall data by measure point (this mode data is uploaded via the group data message channel)
- timeout: recall test point response timeout, default 10 seconds
- realTime: Whether to read real-time data, set to True will immediately re-read a recall point and return the latest read value; Defaults to False and only works if recall_type = "measure"
An example script is as follows (recall) :
from common.Logger import logger from quickfaas.measure import recall def action_name(): #Recall all measurement point data under all controllers logger.debug('recall all plc measures: %s' % recall()) #Recall all measurement point data under controller 1 logger.debug('recall controller1 plc measures: %s' % recall([{"name": "controller1", "measures": []}])) #Recall the data of measurement points "measure1" and "measure2" under controller 1 logger.debug('recall controller1 plc measures: %s' % recall([{"name": "controller1", "measures": ["measure1", "measure2"]}])) #Recall data for groups "group1" and "group2" recall(["group1", "group2"], "group")
Data content to be recalled (recall) :
[ { "name": "controller1", "health": 1, "timestamp": 1582771955, "measures":[ { "name": "measures1", "health": 1, "timestamp": 1582771955, "value": 12 }, { "name": "measures2", "health": 1, "timestamp": 1582771955, "value": 1.23 } ] }
This interface is an asynchronous read interface. The response message will trigger the callback function interface.
API prototype
def recall2(names=None, recall_type="measure", callback=None, userdata=None, timeout=10, realTime=False)
- names: List of recall names
- When recall_type is "measure" :
None or [], which means get all measure points from all controllers
[{"name": "controller1", "measures": []}], to get all measures for controller1
[{"name": "controller1", "measures": ["measure1", "measure2"]}], which means to get data from "measure1" and "measure2" in controller1
- When recall_type is "group" :
["group1", "group2"] for getting data from groups "group1" and "group2"
- "measure": Recall data by measure point (if names=[], that is, if no measure name is specified, recall all measure points on the device)
- "group": Recall data by measure point (this mode data is uploaded via the group data message channel)
For compatibility with DS1.0, the callback function also supports three parameters
An example script is as follows (recall2) :
from common. Logger import logger
from quickfaas.measure import recall2
def recall2_callback(message, userdata):
logger.debug("recall2 response message: %s, userdata:%s" % (message, userdata))
def recall2_callback2(message, userdata, wizard_api):
logger.debug("recall2 response message: %s, userdata:%s" % (message, userdata))
def action_name():
#Recall all measurement point data under all controllers
recall2(callback=recall2_callback, userdata="")
#Recall all measurement point data under controller 1
recall2(names=[{"name": "controller1", "measures": []}], callback=recall2_callback, userdata="")
#Recall the data of measurement points "measure1" and "measure2" under controller 1
recall2(names=[{"name": "controller1", "measures": ["measure1", "measure2"]}], callback=recall2_callback2, userdata="")
#Recall data for groups "group1" and "group2"
recall2(["group1", "group2"], "group")
Data content of the recall (recall2) :
{
"timestamp": 1589507333.2521989,
"values": {
"controller1": {
"measure1": {
"raw_data": 12,
"timestamp": 1582771955,
"status": 1
},
"measure2": {
"raw_data": 1.23,
"timestamp": 1582771955,
"status": 1
}
}
}
}
API prototype
def get()
Script examples are as follows:
from common.Logger import logger
from quickfaas.global_dict import get
def action_name():
logger.debug('get global dict: %s' % get())
Returned data content:
[
{
"key": "SN",
"value": "GL9021025088033"
}
]
API prototype
def get_global_parameter()
Script examples are as follows:
from common.Logger import logger
from quickfaas.global_dict import get_global_parameter
def action_name():
logger.debug('get global dict: %s' % get_global_parameter())
Returned data content:
{
"SN": "GL9021025088033"
}
API prototype
def get_status(controller=None)
Script examples are as follows:
from common.Logger import logger
from quickfaas.controller import get_status
def action_name():
logger.debug('controller status: %s' % get_status())
Returned data content:
[
{
"name": "dev1",
"health": 0,
"timestamp": 1606784851
}
]
API prototype
def get_controller_status(controller=None)
Script examples are as follows:
from common.Logger import logger
from quickfaas.controller import get_controller_status
def action_name():
logger.debug('controller status: %s' % get_controller_status())
Returned data content:
{
"dev1": {
"health": 0,
"timestamp": 1606784851
}
}
API prototype:
def get_status(cloud_name="default")
The script example is as follows:
from common.Logger import logger
from quickfaas.clouds import get_status
def action_name():
logger.debug('cloud connection status: %s' % get_status())
Return data content:
#Online return to True
#Offline return false
API prototype:
def get(runningConfig=True, timeout=10)
The script example is as follows:
from common.Logger import logger
from quickfaas.config import get
def action_name():
logger.debug('globle config: %s' % get())
Return data content:
#Global JSON configuration information
def set(config, timeout=10)
The script example is as follows:
from common.Logger import logger
from quickfaas.config import get, set
def action_name():
global_config = get()
#Example Modify the global_config configuration
logger.debug('set config result: %s' % set(global_config))
Return data content
#Successful return: success
#Failed return: failed
API prototype:
def faas_read_file(filePath, mode='r', encode='utf-8', size=-1)
FilePath: The file path;
Mode: Mode determines the mode of opening a file: read-only, write, append, etc. All available values can be found in the complete list below. This parameter is non mandatory, and the default file access mode is read-only (r). Consistent with the mode parameter in the open function interface in Python
Encode: Encoding format, consistent with the encoding parameter in the open function interface in Python, defaults to utf-8
Size: The length of bytes read. If size is not specified, the entire file is returned, which is consistent with the size parameter in the read function interface in Python
The script example is as follows:
# Enter your python code.
import json
from common.Logger import logger
from quickfaas.file import faas_read_file
def main(message):
try:
file_path = "/var/user/app/device_supervisor/test.txt"
data = faas_read_file(file_path, mode='r', encode='utf-8')
if data:
logger.info("data: %s" % data)
except Exception as e:
logger.error("Exception: %s" % (e))
Return data content:
#The string of all contents in the file; If an error occurs, an exception will be thrown
API prototype:
def faas_write_file(filePath, mode='w', data='', encode='utf-8')
FilePath: The file path;
Mode: Mode determines the mode of opening a file: read-only, write, append, etc. All available values can be found in the complete list below. This parameter is non mandatory, and the default file access mode is to only write 'w'. Consistent with the mode parameter in the open function interface in Python
Data: The content (string) that needs to be written to the file; Default to empty string
Encode: Encoding format, consistent with the encoding parameter in the open function interface in Python, defaults to utf-8
The script example is as follows:
# Enter your python code. import json from common.Logger import logger from quickfaas.file import faas_write_file,faas_read_file def main(message): try: file_path = "/var/user/app/device_supervisor/test.txt" faas_write_file(file_path, mode='w', data="test3", encode='utf-8') except Exception as e: logger.error("Exception: %s" % (e))
API prototype:
def get_group(self)
The script example is as follows:
# Enter your python code.
import json
from common.Logger import logger
def main(message, wizard_api):
#Get grouping configuration
response = wizard_api.get_group()
logger.debug("group config:%s" % response)
Returned data content:
[
{
"name": "default",
"uploadInterval": 10
},
{
"name": "group1",
"uploadInterval": 10
}
]
API prototype:
def update_group(self, group_data)
The script example is as follows:
# Enter your python code.
import json
from common.Logger import logger
def main(message, wizard_api):
#Update grouping configuration information
group_data = {"group_name":"group1", "upload_interval": 10}
response = wizard_api.update_group(group_data)
logger.debug("update group config response:%s" % response)
Return data content:
{
"results": {
"group_name":"group1",
"upload_interval": 10
}
}
API prototype:
def insert_request(table_name, insert_data, noack=0, callback=None, userdata=None, timeout=30)
Parameter Description:
Table_name: Data table name
Insert_data: The data that needs to be inserted into the database
The format is: {"<timestamp>": {"controller1": {"measure1": [<measure1_health>,<measure1_value>], "measure2": [<measure2_health>,<measure2_value>]}}
Noack: Do we need a response; 0: Response required, 1: No response required
Callback: the callback function for data return; Can be set to None to indicate not receiving return data (this parameter is only meaningful when noack is 0)
Prototype: def insert_callback (message, userdata)
Userdata: The parameter passed to the callback function (only meaningful when noack is 0)
Timeout: Request timeout time (default 30 seconds)
The script example is as follows:
import time
from common.Logger import logger
from quickfaas.LWTSDB import insert_request
def insert_callback(message, userdata):
logger.debug("%s response message:%s" % (userdata, message))
def action_name():
insert_data = [
{str(int(time.time())): {"controller1": {"measure1": [1, 100], "measure2": [1, "test"]}}}
]
#Insert a piece of data into the temporal database without requiring a response
insert_request('default', insert_data, 1)
#Inserting a piece of data into a temporal database requires a response
insert_request('default', insert_data, 0, callback=insert_callback, userdata="insert")
Data example returned by the callback function:
{
"return_code": 0,
"return_msg":"okay"
}
API prototype:
def query_request(table_name, start_time=None, end_time=None, filter=None, limit=1000, offest=0, callback=None, userdata=None, timeout=30)
Parameter Description:
Tablename: Data table name
Start_time: start time; The format is:% Y -% m -% d% H:% M:% S, for example: 2023-01-09 12:00:00
End_time: End time; The format is:% Y -% m -% d% H:% M:% S, for example: 2023-01-09 16:00:00
Filter: The filtering rule for obtaining data (filtering measurement point names and setting black and white lists); The format is:
{"default": "accept_all", "black_list": {"controller1": ["measure1", "measure2"]}, "white_list": {}}
default:
"Accept all": returns all measurement points by default, except for those in the blacklist;
"Deny_all": By default, all measurement points are not returned, except for those in the whitelist list;
Black_list: Blacklist of measurement point names on the blacklist
White_list: List of whitelist measurement point names
Limit: limits the maximum number of entries that can be obtained at once;
Offer: Skip the number of records that match the record, usually used in combination with limit;
Callback: Retrieve the callback function returned from the data
Prototype: def query_callback (message, userdata)
Userdata: passing parameters to callback functions
Timeout: Request timeout time (default 30 seconds)
remarks:
When the start_time field is None, it indicates TIMESTAMP<end_time, which is arranged in descending order by default
When the end_time field is None, it indicates TIMESTAMP>=start_time, which is arranged in ascending order by default
When start_time and end_time are both None, it means querying the entire data table, which is arranged in ascending order by default
The script example is as follows:
from common.Logger import logger
from quickfaas.LWTSDB import query_request
def query_callback(message, userdata):
logger.debug("%s response message:%s" % (userdata, message))
def action_name():
#Query all data in the default data table
query_request('default', callback=query_callback, userdata="query")
#Query default data table data (data after 12:00:00 on January 9, 2023)
query_request('default', '2023-01-09 12:00:00', callback=query_callback, userdata="query")
#Query default data table data (the latest data after 16:00:00 on January 9, 2023)
query_request('default', '2022-12-09 16:00:00', limit=1, callback=query_callback, userdata="query")
#Query default data table data (data before 16:00:00 on January 9, 2023)
query_request('default', end_time='2023-01-09 16:00:00', callback=query_callback, userdata="query")
#Query default data table data (the last data before 16:00:00 on January 9, 2023)
query_request('default', end_time='2023-01-09 16:00:00', limit=1, callback=query_callback, userdata="query")
#Query default data table data (from '2023-01-09 12:00:00' to '2023-01-09 16:00:00')
query_request('default', '2023-01-09 12:00:00', '2023-01-09 16:00:00', callback=query_callback, userdata="query")
#Query the default data table data (from '2023-01-09 12:00:00' to '2023-01-09 16:00:00', and filter out measurement points with the name 'measure1')
filter = {"default": "accept_all", "black_list": {"controller1": ["measure1"]}}
query_request('default', '2023-01-09 12:00:00', '2023-01-09 16:00:00', filter, callback=query_callback, userdata="query")
#Query the default data table data (from '2023-01-09 12:00:00' to '2023-01-09 16:00:00', as long as the measurement point name is' measure1 ')
filter = {"default": "deny_all", "white_list": {"controller1": ["measure1"]}}
query_request('default', '2023-01-09 12:00:00', '2023-01-09 16:00:00', filter, callback=query_callback, userdata="query")
Example of callback function returning data:
{
"total": 1000,
"offset": 0,
"size": 100,
"data":[
{"1669630340": {"controller1": {"measure1": [1, 100], "measure2": [1, "test1"]}}},
{"1669630350": {"controller1": {"measure1": [1, 101], "measure2": [1, "test2"]}}}
]
}
API prototype:
def remove_request(table_name, start_time=None, end_time=None, noack=0, callback=None, userdata=None, timeout=30)
Parameter Description:
Tablename: Data table name;
Start_time: the starting time of the temporal data; When start_time is None, it means TIMESTAMP<end_time
End_time: The deadline for time series data; When end_time is None, it means TIMESTAMP>=starttime
Noack: Do we need a response; 0: Response required, 1: No response required
Callback: the callback function for data return; Can be set to None to indicate not receiving return data (this parameter is only meaningful when noack is 0)
Prototype: def remove_callback (message, userdata)
Userdata: The parameter passed to the callback function (only meaningful when noack is 0)
Timeout: Request timeout time (default 30 seconds)
Explanation: When start_time and end_time are both None, it means clearing the entire data table
The script example is as follows:
from common. Logger import logger
from quickfaas.LWTSDB import remove_request
def remove_callback(message, userdata):
logger.debug("%s response message:%s" % (userdata, message))
def action_name():
#Clear the temporal database data and require a response
remove_request('default', callback=remove_callback, userdata="remove")
#Clear temporal database data, no response required
remove_request('default', noack=1)
#Delete temporal database data (from '2023-01-09 12:00:00' to '2023-01-09 16:00:00') and require a response
remove_request('default', '2023-01-09 12:00:00', '2022-12-09 16:00:00', 0, callback=remove_callback, userdata="remove")
#Delete temporal database data (delete data after 16:00:00 on January 9, 2023) and require a response
remove_request('default', '2023-01-09 16:00:00', callback=remove_callback, userdata="remove")
#Delete temporal database data (delete data before 16:00:00 on January 9, 2023) and require a response
remove_request('default', end_time='2023-01-09 16:00:00', callback=remove_callback, userdata="remove")
Example of callback function returning data:
{
"return_code": 0,
"return_msg":"okay"
}
This chapter will introduce the important topics and Payloads of the gateway's internal message bus. By reading this chapter, you can understand how to use specific topics and Payloads to achieve data transmission and processing. This will facilitate more flexible use of gateway functions.
MQTT server address: 127.0.0.1
Port number: 9105
User name: inhand
Password: inhand
Create and add a controller and measurement point in the measurement point monitoring. As shown in the figure:
After adding the controller and measurement points, enter the EC device backend and install mosquito in the backend. Execute the command as shown in the figure:
After installation, execute the command shown in the figure to subscribe to the measurement point message published by the driver with driverServiceId 2000:
MQTT server address: 127.0.0.1
Port number: 9009
Create a controller and measuring point in the monitoring of the measuring point, as shown in the figure:
After entering the IG series device backend and executing the following command, you can subscribe to the measurement point messages published by the driver with driverServiceId of 2000
Topic:ds2/eventbus/south/read/{driverServiceId}
{driverServiceId}: The ServiceId of the current driver, which can be viewed in the log.
The following figure shows how the enabled ModbusDriver can view the ServiceId (note: ModbusDriver is not fixed at 2000, and the ServiceId varies depending on the order in which the controller is enabled). Please refer to the ServiceId displayed in the log for the actual driverServiceId:
Payload:
{
"controllers": [
{
"name": "con1",
"version": "d3b0c5fc05cb72e7759c95f346e29f8d",
"health": 1,
"timestamp": 1582771955,
"measures":[
{
"name": "measures1",
"health": 1,
"timestamp": 1582771955,
"timestampMsec": 1582771955000,
"value": 12
}
]
}
]
}
Explain:
Name in controllers: Controller name
Version: Controller configuration version information (virtual controllers can omit this field)
Health in controllers: controller health status, 1- normal, 0- abnormal
Timestamp: The second-level time for the update of the controller's health status
timestampMsec:The millisecond-level time for the update of the controller's health status
Name in measures:the name of the measurement point
Health in measures: the health status of the measurement point, 1- normal, 0- abnormal
Timestamp: Query operation Unix timestamp
Value: Measurement point value
Topic:ds2/eventbus/south/upload/msec/data/{controllerName}
{controllerName}: The name of the controller that publishes millisecond level data
Payload:
[
{
"controller":["con1", 1, 1646910377],
"measure": {
"mea1": [1, 100],
"mea2": [1, 100]
}
},
{
"controller":["con1", 1, 1646910377],
"measure": {
"mea1": [1, 100],
"mea2": [1, 100]
}
}
]
explain:
Controller data: controller [0] represents the name of the controller, controller [1] represents the health status of the controller, and controller [2] represents the collection timestamp
Measure data: key represents the name of the measurement point, measure [0] represents the health status of the measurement point, and measure [1] represents the value of the measurement point
Topic:ds2/eventbus/south/write/{requestServiceId}
{requestServiceId}: Message publisher, ServiceId of DataHub is 1010
Payload:
{
"msg_id": 43461834341,
"timestamp": 1610335020088,
"payload": [
{
"name": "con1",
"measures":[
{
"name": "measures1",
"value": 12
}
]
}
]
}
explain:
Msg_id: Message ID
Timestamp: timestamp
Name in payload: Controller name
Name in measure: The name of the measuring point
Value: Measurement point value
Topic:ds2/eventbus/south/write/{requestServiceId}/response
{requestServiceId}: Message publisher, ServiceId of DataHub is 1010
Payload:
{
"msg_id": 43461834341,
"timestamp": 1610335020088,
"payload": [
{
"name": "con1",
"measures":[
{
"name": "measures1",
"value": 12,
"error_code": 0,
"error_reason": ""
}
]
}
]
}
explain:
Msg_id: Message ID
Timestamp: timestamp
Name in payload: Controller name
Name in measure: The name of the measuring point
Value: Measurement point value
Error code: 0: Successful, 1: Write failed
Error reason: Error reason description
Topic:ds2/eventbus/south/modbus/broadcast/write
Payload:
{
"protocol": "Modbus-RTU",
"endpoint": "rs485",
"slave": 1,
"registers": [
{
"function": 1,
"address": 100,
"length": 1,
"value": ""
}
]
}
explain:
Protocol: Communication protocol, Modbus-RTU/Modbus-TCP
Endpoint: Serial port/IP address
Slave: Slave address
Function: Function code
Address: Address
Length: length
Value: The value that needs to be written to the register, base64 encoded
Topic:ds2/eventbus/north/measures/{groupName}
{groupName}: Group name
Payload:
{
"group": "group_aaa",
"measures":[
{
"ctrlName": "con1",
"name": "measures1",
"health": 1,
"timestamp": 1582771955,
"timestampMsec": 1582771955000,
"value": 12,
}
]
}
explain:
Group: Upload message groups
Name: Measurement point name
Health: Measurement point 0 is offline, and measurement point 1 is online.
Timestamp: The second-level timestamp at the moment of data reporting
timestampMsec:The millisecond-level timestamp at the moment of data reporting
Value: Measurement point value
Topic:
ds2/eventbus/north/changed/measures/{groupName}
{groupName}: Group name
Payload:
{
"group": "group_aaa",
"measures":[
{
"ctrlName": "con1",
"name": "measures1",
"health": 1,
"timestamp": 1582771955,
"timestampMsec": 1582771955000,
"value": 12,
}
]
}
explain:
Group: Upload message groups
Name: Measurement point name
Health: Measurement point 0 is offline, and measurement point 1 is online.
Timestamp: The second-level timestamp at the moment of data reporting
TimestampMsec:The millisecond-level timestamp at the moment of data reporting
Value: Measurement point value
Topic:
ds2/eventbus/north/alarm/{alarmName}
{alarmName}: Alarm name
Payload:
{
"name": "alarm1",
"ctrlName": "",
"measureName": "",
"priority": 1,
"timestamp": 1234646484,
"timestampMsec": 1582771955000,
"status": 0,
"value": 60,
"alarm_value": 60,
"content": "DATA IS OUT OF RANGE"
}
explain:
Name: Alarm name
CtrlName: Controller name
MeasureName: Measurement point name
Priority: With built-in alarm levels, it can support defining a maximum of 5 level value ranges [1,5]
Timestamp: Second-level timestamp
TimestampMsec:Millisecond-level timestamp
Status: 0: Release alarm 1: Trigger alarm
Value: Current measurement point value
Alarm_value: Measurement point value when an alarm is triggered
Content: Description
Topic:ds2/eventbus/north/controllers/delta
Payload:
[
{
"name": "dev1",
"health": 0,
"timestamp": 1606784851
},
{
"name": "dev2",
"health": 1,
"timestamp": 1606784852
}
]
explain:
Name: Controller name
Health: 0 Device offline, 1 device online
Timestamp: Unix timestamp of the controller state update time
Topic:
ds2/eventbus/north/write/measures
Payload:
{
"task_id": "43461834341",
"controllers": [
{
"name": "con1",
"measures":[
{
"name": "measures1",
"value": 12
},
{
"name": "measures2",
"value": 13
}
]
}
]
}
explain:
Task_id: Task ID
Name in controllers: Controller name
The name in measures is the name of the measurement point
Value: Value
Topic:
ds2/eventbus/north/write/measures/response
Payload:
{
"task_id": "43461834341",
"controllers": [
{
"name": "con1",
"measures":[
{
"name": "measures1",
"error_code": 0,
"error_reason": ""
},
{
"name": "measures2",
"error_code": 1,
"error_reason": "write failed"
},
]
}
]
}
explain:
Task_id: Task ID
Name in controllers: Controller name
The name in measures is the name of the measurement point
Error code: 0: Successful, 1: Write failed
Actively obtain controller measurement point values (summoning data).
Topic:
ds2/eventbus/north/recall/measures
Payload:
{
"task_id": "43461834341",
"recallType": "group",
"groups": ["group_name_1"],
"controllers": [
{
"name": "ctrl1",
"measures": ["measure_name_1"]
}
]
}
explain:
Task_id: Task ID, only 'recallType'=='measure' is valid
RecallType: supports group, measure
When "recallType"="group", the measurement point data is uploaded through ds2/eventbus/north/means/{groupName}, and the content can be found in the measurement point grouping report.
When "recallType"="measure", the measurement point data is uploaded through ds2/eventbus/north/recall/measures/response. At this point, the last polled measurement point value is obtained.The content is as follows: If controllers==[], the measurement point name is not specified
When "recallType" == "realtime", the measurement point data is uploaded via ds2/eventbus/north/recall/measures/response. At this time, all the recalled measurement points will be polled in real time once. The content is as follows: If controllers == [], that is, no measurement point name is specified.
Groups: List of measurement point groups, only "recallType"="group" is valid.
Controllers: List of controllers, only valid for "recallType"=="measure". The total number of measurement points needs to be limited, and the specific value is yet to be determined.
Name: Controller name
Measures: List of measurement points
Only if "recallType" == "measure".
Topic
ds2/eventbus/north/recall/measures/response
Payload
{
"task_id": "43461834341",
"recallType": "measure",
"controllers": [
{
"name": "con1",
"health": 1,
"timestamp": 1582771955,
"measures": [
{
"name"."measures1",
"health": 1,
"timestamp": 1582771955,
"value": 12
}
]
}
]
}
task_id: task ID
recallType: measure
name in controllers: device name
health in controllers: device health status, 1 -- device normal, 0 -- device abnormal
timestamp in controllers: device health status update time
name in measures: the name of the variable.
Health in measures: 0 -- measure query failed (rawbytes field is invalid), 1 -- measure query succeeded
timestamp in measures: querying Unix timestamps for operations
value: value
Topic:
ds2/eventbus/system/cloud/connection/notice
Payload:
{
"cloud_name": "name",
"status": 2,
"timestamp": 1614735490
}
cloud_name: upload message grouping
status: Connection status. 0 not enabled, 1 connecting, 2 connecting successfully, 3 unknown error, 4 registered, 5 registered
timestamp: timestamp of the moment of state change
The History Database is a lightweight timing database on the InHand series of Edge Computing Gateways. It contains the following features:
Topic:
insert/req/<table_name>/<client_id>/<operation_id>
<table_name>: the name of the data table for the operation (that is, the group name);
<client_id>: Database client ID, used to distinguish different clients. Each client should only subscribe to database messages that belong to its own ID.
Recommended format for <client_id> is ext-<MAC>-<pid>
<operation_id>: database operation ID, used to distinguish a request operation, generated by the client, it is recommended to use the UUID
Payload:
{
"noack": 0,
"data":[
{"<timestamp>": {"controller1": {"measure1": [<measure1_health>, <measure1_value>], "measure2": [&<measure2_health>, <measure2_value>]}}}
]
}
noack: 0 means response required; 1 means no response required (defaults to 0 when there is no noack field in the request payload)
data: inserted data, support multiple inserts
Parameters | Instructions |
timestamp | Timestamp when data was inserted (in seconds) |
controller1 | Controller Name |
measure1 | Name of measurement point |
measure1_health | Health status of measurement points (0: offline, 1 online) |
measure1_value | The value of the measuring point at that moment |
The insert response is received when the noack of the insert request payload is 0.
Topic:
insert/rsp/<table_name>/<client_id>/<operation_id>
Request Topic parameter description: same as insert request message definition.
Payload:
{
"return_code": 0,
"return_msg": "okay"
}
Topic:
query/req/<table_name>/<client_id>/<operation_id>
Request Topic parameter description: same as insert request message definition.
Payload:
{
"start_time": 1669696164,
"end_time": 1669696264,
"filter": {
"default": "accept_all",
"black_list": { "controller1": ["measure1", "measure2"]},
"white_list": {},
},
"limit": 1000,
"offset": 0
}
Parameter Description:
Parameters | Data type | Parameter Description | For example |
start_time | INTEGER | INTEGER: start time of timing data in seconds, contains start_time. When start_time field is negative or not present, it means TIMESTAMP < end_time, default is descending order | 1669696164 |
end_time | INTEGER | The cutoff time of the timing data in seconds without end_time. When the end_time field is negative or does not exist, it means that TIMESTAMP >= start_time and defaults to ascending order | 1669697264 |
filter.default | ENUM | "accept_all": defaults to all points except those in the blacklist; "deny_all": defaults to not returning all measurement points, except those in the whitelist list; | "filter": { "default": "deny_all", "white_list": {"controller1": ["measure1", "measure2"]} } |
filter.black_list | STRING ARRAY | List of blacklisted site names | |
filter.white_list | STRING ARRAY | List of whitelisted point names | |
limit | INTEGER | If you need to read a specified number of data records in LwTSDB, you can use the Limit method of LwTSDB. The limit method accepts a numeric parameter that specifies the number of record entries to be read from LwTSDB. If you do not specify the parameter in the limit method (or limit is 0) then all the data in the collection is displayed. LwTSDB itself limits the maximum number of reads to xxxx entries. When the number of predicted queries exceeds the limit, it is recommended that the querying application split the queries by time period. | limit:100 |
offset | INTEGER | You can use the offset method to skip a specified amount of data. The offset method also accepts a numeric argument as the number of records to skip. offset is usually used in combination with limit. | offset: 10 |
Note: When both start_time and end_time are negative, it means to query the whole data table.
Topic:
query/rsp/<table_name>/<client_id>/<operation_id>
Request Topic parameter description: same as insert request message definition.
Payload:
{
"total": 1000,
"offset": 0,
"size": 100,
"data":[
{"1669630340": {"controller1": {"measure1": [1, 100], "measure2": [1, "test1"]}}},
{"1669630350": {"controller1": {"measure1": [1, 101], "measure2": [1, "test2"]}}}
]
}
Parameter Description:
Parameters | Data type | Parameter description | For example |
total | INTEGER | The total number of rows in the query result without considering the limit and skip methods | 1000 |
offset | INTEGER | The offset position of the first line in this message in total, starting at 0. | 0 |
size | INTEGER | Number of rows of data in this message | 100 |
data[i].timestamp | INTEGER | Data row timestamp | 1669696164 |
data[i].value | dict object | A collection of controllers for dictionary objects | {"controller1": {"measure1": [1, 100], "measure2": [1, "test1"]}}} |
Topic:
remove/req/<table_name>/<client_id>/<operation_id>
Request Topic parameter description: same as insert request message definition.
Payload:
{
"noack": 0,
"start_time": 1,
"end_time": 100,
}
Parameter Description:
Parameters | Data type | Parameter description | For example |
noack | INTEGER | 0 means response required; 1 means no response required | 1 |
start_time | INTEGER | INTEGER: start time of timing data in seconds, contains start_time. When the start_time field is negative or not present, it means that TIMESTAMP < end_time | 1669696164 |
end_time | INTEGER | The cutoff time of the timing data in seconds without end_time. When the end_time field is negative or not present, it indicates that TIMESTAMP >= start_time | 1669697164 |
Note: When start_time and end_time are both negative, it means clear the whole data table.
A delete response is received when the noack of the delete request payload is 0.
Topic:
remove/rsp/<table_name>/<client_id>/<operation_id>
Request Topic parameter description: same as insert request message definition.
Payload:
{
"return_code": 0,
"return_msg": "okay"
}
Return value | Return information | Note |
0 | Okay | successes |
-1 | Request parameter error | Request parameter error |
-2 | Table <table_name> not exist | Data table does not exist |
-3 | SQL error | SQL statement execution error |
-4 | Request timeout | Request timeout |
The DSA provides a Restful API for obtaining status information, which can be used to obtain acquisition information and status information through the API.
Request URL:
POST /v1/user/login
Request header parameters:
Name | Value | Instruction |
Authorisation | Basic YWRtOjEyMzQ1Ng== | Login name and password need to be base64 encrypted and put in http header; e.g. login name: adm, password: 123456, need to be spliced into "adm:123456" string and base64 encrypted to get " YWRtOjEyMzQ1Ng==". |
Request example:
POST https://10.5.30.23/v1/user/login
Request Headers:
Authorization: Basic YWRtOjEyMzQ1Ng==
Response:
{
"results": {
"name": "adm",
"priv": 15,
"from": "10.5.30.20",
"web_session": "MTSVVdC1RwlpmBy30g6G0sErVNKfS0yv",
"first_login": 0
}
}
Description: web_session is the token information after authentication, subsequent interface requests need to include this information in the request header.
Request URL:
POST /v1/apps/device/supervisor2/controller/status
Request Header: Authorization: Bearer
MTSVVdC1RwlpmBy30g6G0sErVNKfS0yv
Request Payload:
{
"names":["Modbus TCP"]
}
Parameter Description:
Parameter name | Description |
names | List of controller names, multiple separated by the , sign. |
Response:
{
"result": [
{
"name": "Modbus TCP",
"status": 1
}
]
}
Parameter Description:
Parameter Name | Description |
name | Controller Name |
status | Controller status. 0 means offline, 1 means online |
Request URL:
POST /v1/apps/device/supervisor2/measure/reading
Request Header: Authorization: Bearer
MTSVVdC1RwlpmBy30g6G0sErVNKfS0yv
Request Payload:
{
"ctrlName": "Modbus TCP",
"names":["INT", "WORD", "FLOAT"]
}
Parameter Description:
Parameter name | Description |
ctrlName | Controller Name |
names | List of measurement point names, multiple separated by a , sign |
Response:
{
"result": [
{
"ctrlName": "Modbus TCP",
"name": "INT",
"status": 1,
"timestamp": 1721203547,
"value": 1
},
{
"ctrlName": "Modbus TCP",
"name": "WORD",
"status": 1,
"timestamp": 1721203547,
"value": 2
},
{
"ctrlName": "Modbus TCP",
"name": "FLOAT",
"status": 1,
"timestamp": 1721203547,
"value": 3.12
}
]
}
Parameter Description:
Parameter name | Instructions |
ctrlName | Controller Name |
name | Name of measurement point |
status | Measurement point acquisition status. 0 means offline, 1 means online |
timestamp | Capture timestamps in seconds |
value | acquisition value |
Request URL:
PUT /v1/apps/device/supervisor2/measure/writing
Request Header: Authorization: Bearer
MTSVVdC1RwlpmBy30g6G0sErVNKfS0yv
Payload:
[
{
"name": "Modbus TCP",
"measures":[
{
"name": "INT",
"value":10
}
]
}
]
Parameter Description:
Parameter name | Description |
name | Controller Name |
measures.name | Name of measurement point |
measures.value | Point values to be written |
Response:
{
"result": [
{
"name": "Modbus TCP",
"measures": [
{
"name": "INT",
"error_code": 0,
"error_reason": "Success",
"value": 10
}
]
}
]
}
Parameter Description:
Parameter name | Instructions |
name | Controller Name |
measures.name | Name of measurement point |
measures.error_code | Write value error code. 0 indicates success, non-0 indicates failure |
measures.error_reason | Description of the cause of the write value error |
measures.value | Write the value and get the latest value of the measurement point. |
Request URL:
GET /v1/apps/device/supervisor2/alarm/realtime?cursor=0&limit=50
Request Header: Authorization: Bearer
MTSVVdC1RwlpmBy30g6G0sErVNKfS0yv
Description of the request URL parameters:
Parameter name | Description |
cursor | Real-time alarm start entry location |
limit | Maximum number of entries returned by a real-time alarm request |
Response:
{
"cursor": 0,
"limit": 50,
"total": 1,
"result": [
{
"name": "test",
"ctrlName": "Modbus TCP",
"measureName": "WORD",
"priority": 1,
"cond1": {
"op": "gt",
"value": 10.0
},
"condOp": "none",
"content": "exceeded threshold 10"
"addr": "40002",
"value": 20,
"timestamp": 1721204607,
"status": 1
}
]
}
Parameter Description:
Parameter name | Description |
cursor | Real-time alarm start entry location |
limit | Maximum number of entries returned by a real-time alarm request |
total | Number of entries currently returned by real-time alarms |
result.name | Alarm name |
result.ctrlName | Name of the controller associated with the alarm |
result.measureName | Name of the measurement point associated with the alarm |
result.priority | Alert level. 1 Alert, 2 Warning, 3 Minor, 4 Important, 5 Serious |
result.cond1.op | Alarm conditions. eq is equal to, neq is not equal to, gt is greater than, egt is greater than or equal to, lt is less than, elt is less than or equal to |
result.cond1.value | warning threshold |
result.condOp | Conditional combinatorial logic. and, or, none |
result.content | Alarm description content |
result.addr | Address of alarm-associated measurement point |
result.value | Captured value when alarm is generated/deactivated |
result.timestamp | Timestamp when the alarm is generated/deactivated |
result.status | Alarm status: 0 disarmed, 1 alarm generated |
Request URL:
GET /v1/apps/device/supervisor2/cloud/status?name=default
Request Header: Authorization: Bearer
MTSVVdC1RwlpmBy30g6G0sErVNKfS0yv
Description of the request URL parameters:
Parameter name | Description |
name | Cloud Service Name |
Response:
{
"result": {
"status": 2,
"connTime": 127
}
}
Parameter Description:
Parameter name | Description |
status | Cloud Service Status. 0 Not Enabled, 1 Connecting, 2 Connecting Successfully, 3 Unknown Error, 4 Registering, 5 Registered |
connTime | Connection duration in seconds |
Request URL:
GET /v1/apps/device/supervisor2/north/basic/status?service=modbustcp-slave
Request Header: Authorization: Bearer
MTSVVdC1RwlpmBy30g6G0sErVNKfS0yv
Description of the request URL parameters:
Parameter name | Instructions |
service | Protocol conversion type. modbustcp-slave: Modbus TCP Server iec104-server: IEC 104 Server opcua-server: OPCUA Server modbusrtu-slave: Modbus RTU Server iec101-server: IEC 101 Server sl651-client: SL651-2014 hj212-client: HJ212 Client bacnetbip-server: BACnet IP Server bacnetmstp-server: BACnet MS/TP Server dnp3-server: DNP3 Outstation iec61850Server: IEC 61850 Server snmp_agent: SNMP Agent |
Response:
{
"result": {
"service_status": {
"status": 2,
"runtime": 84221
},
"link_status": [
{
"id": 12,
"ip": "10.5.30.20",
"port": 58220,
"status": 1,
"linktime": 84145
}
]
}
}
Parameter Description:
Parameter name | Instructions |
service_status.status | Service status. 0 not started, 2 running |
service_status.runtime | Runtime in seconds |
link_status.ip | Connected device IP address |
link_status.port | Connected Device Port Number |
link_status.status | connection status |
link_status.linktime | connection time |
{
"controllers": [],
"measures": [],
"alarms": [],
"alarmLables": ["default"],
"groups": [
{
"_id": "group59b64649c93",
"name": "default",
"uploadInterval": 10,
"LwTSDBSize": 1000,
"strategy": 1,
"enablePerOnchange": 0,
"historyDataMode": "gateway",
"historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB"
}
],
"misc": {
"maxAlarmRecordSz": 2000,
"logLvl": "INFO",
"coms": [
{
"name": "rs232",
"baud": 9600,
"bits": 8,
"stopbits": 1,
"parityChk": "n"
},
{
"name": "rs485",
"baud": 9600,
"bits": 8,
"stopbits": 1,
"parityChk": "n"
}
],
"cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata",
"cacheSize": 10000,
"debugLogPath": "/var/user/data/dbhome/device_supervisor/debugLog",
"debugLogSize": 2000,
"cacheMode": "gateway",
"cacheUploadPeriod": 200,
"cacheStrategy": 0,
"pubTimeout": 1000,
"pubRepeatNum": 3,
"debugLogMode": "gateway",
"logNum": 2,
"logSize": 1
},
"clouds": [
{
"_id": "cloud59b6464bd03",
"cacheSize": 10000,
"enable": 0,
"name": "default",
"type": "Standard MQTT",
"args": {
"host": "",
"port": 1883,
"clientId": "",
"auth": 0,
"tls": 0,
"tlsAuth": "caSelfSigned",
"groupId": "",
"cleanSession": 0,
"mqttVersion": "v3.1.1",
"keepalive": 60,
"key": "",
"cert": "",
"rootCA": "",
"verifyServer": 0,
"verifyClient": 0,
"username"."",
"passwd": "",
"willQos": 0,
"willRetain": 0,
"willTopic": "",
"willPayload": ""
},
"uploadRules": []
}
],
"labels": [],
"serverList": [],
"quickfaas": {
"genericFuncs": [],
"uploadFuncs": [],
"downloadFuncs": []
},
"mindspheres": [
{
"name": "mindsphere",
"enable": 0,
"_id": "mindsphereeafcdf",
"args": {
"hostEnvironment": "eu1",
"hostDomain": "mindsphere.io",
"appName": "",
"appVersion": "",
"clientId": "",
"clientSecret": "",
"authType": "tenant",
"hostTenant": "",
"userTenant": "",
"timeout": 10,
"statusTimeout": 300,
"enableOfflinePut": 0
},
"mindsphereputs": []
}
],
"modbusSlave": {
"enable": 0,
"protocol": "Modbus-TCP",
"port": 502,
"slaveAddr": 1,
"useRawvalue": 1,
"int16Ord": "ab",
"int32Ord": "abcd",
"float32Ord": "abcd",
"maxConnection": 5,
"mapping_table":[],
"mappingTable": [
{
"name": "1",
"slaveAddr": 1,
"_id": "modbusTCPSlave01",
"measures": []
}
]
},
"modbusRTUSlave": {
"enable": 0,
"protocol": "Modbus-RTU",
"coms": "rs485",
"useRawvalue": 1,
"slaveAddr": 1,
"int16Ord": "ab",
"int32Ord": "abcd",
"float32Ord": "abcd",
"mapping_table":[],
"mappingTable": [
{
"name": "1",
"slaveAddr": 1,
"_id": "modbusRTUSlave01",
"measures": []
}
]
},
"iec104Server": {
"enable": 0,
"cotSize": 2,
"port": 2404,
"asduLen": 2,
"connectMode": "tcpServer",
"enableSpontaneous": 1,
"uploadPeriod": 0,
"useRawvalue": 1,
"serverList": [
{
"asduAddr": 1
}
],
"kValue": 12,
"wValue": 8,
"t0": 30,
"t1": 15,
"t2": 10,
"t3": 20,
"maximumLink" : 5,
"timeSet": 1,
"byteOrder": "abcd",
"mapping_table":[]
},
"iec101Server": {
"enable": 0,
"coms": "rs485",
"mode": "UnBalance",
"enableSpontaneous": 1,
"uploadPeriod": 0,
"protocolMode": 0,
"useRawvalue": 1,
"linkLen": 2,
"linkAddr": 1,
"asduLen": 2,
"ioaLen": 3,
"cotLen": 2,
"serverList": [
{
"asduAddr": 1
}
],
"linkTimeOut": 2000,
"timeSet": 1,
"idleTimeOut": 10000,
"byteOrder": "abcd",
"mappingTable": {
"YX": [],
"YC": [],
"YK": []
}
},
"iec104Client": {
"enable": 0,
"connectType": 2,
"serverAddr": "ipower.inhandcloud.cn",
"serverPort": 2406,
"communicationCode": "",
"protocol": 1,
"asduAddr": 1,
"tls": 1,
"verification": 1,
"mapping_table": {
"YX": [],
"YC": [],
"YK": []
}
},
"opcuaServer".{
"enable": 0,
"port": 4840,
"maximumLink" : 5,
"securityMode": 0,
"certificate": "None",
"privateKey": "None",
"useRawvalue": 1,
"identifierType": "String",
"pubsub": 0,
"mapping_table":[]
},
"iec61850Server": {
"enable": 0,
"protocol": "iec61850Server",
"port": 102,
"iedName": "INHAND",
"LDName": "Gateway",
"ctrlMode": 1,
"authentication": 0,
"password": "123456",
"useRawvalue": 1,
"dataSet": [],
"mapping_table": []
},
"sl651Slave": {
"enable": 0,
"centreAaddr": 1,
"remoteAddr": "",
"addressIdentifier": "00F1",
"timeLeader": "00F0",
"reverseCRC": 0,
"addrCode": "",
"password": "",
"platform_list": [],
"useRawvalue": 1,
"mapping_table": []
},
"hj212Client": {
"enable": 0,
"useRawvalue": 1,
"platform_list": [],
"block_list": [],
"mapping_table": []
},
"bacnetServer": {
"enable": 0,
"protocol": "BACnet/IP",
"deviceId": 0,
"port": 47808,
"bbmdEnable": 0,
"useRawvalue": 1,
"mapping_table": []
},
"bacnetMSTPServer": {
"enable": 0,
"protocol": "BACnet/MSTP",
"deviceId": 0,
"coms": "rs485",
"maxInfoFrame": 6,
"mstpMac": 1,
"maxMaster": 1,
"useRawvalue": 1,
"mapping_table": []
},
"Dnp3Server": {
"enable": 0,
"protocol": "Dnp3-TCP",
"slaveAddr": 1,
"masterAddr": 2,
"port": 20000,
"useRawvalue": 1,
"enableUnsol": 0,
"maxFrasize": 4096,
"layerTimeout": 1000,
"linkRetry": 5,
"enableLink": 0,
"mapping_table": []
},
"snmpAgent": {
"enable": 0,
"port": 161,
"useRawvalue": 1,
"version": 3,
"userName": "",
"enableAuth": 0,
"readWrite": "ro",
"enable_trap": 0,
"mapping_table": []
},
"templates": {},
"bindConfig": {
"enable": 0,
"bind":{
"modelId": "",
"modelName": "",
"srcId": "",
"srcName": "",
"devId": "",
"devName": ""
},
"varGroups": [],
"variables": [],
"alerts": []
}
}
Global configuration file parameter description:
Parameter name | Instructions |
controllers | List of controllers for point monitoring |
measures | List of measurement points for point monitoring |
alarms | Alarm Rule List |
alarmLables | Alarm Label List |
groups | List of groups for point monitoring |
misc | Parameter setting information |
clouds | Cloud Services List |
labels | List of custom parameters for parameter setting |
quickfaas | Publish, subscribe and customise fast function lists |
mindspheres | *MindSphere IoT cloud services |
modbusSlave | Modbus TCP Slave Protocol Conversion Configuration |
modbusRTUSlave | Modbus RTU Slave Protocol Conversion Configuration |
iec104Server | IEC 104 Server Protocol Conversion Configuration |
iec101Server | IEC 101 Server Protocol Conversion Configuration |
iec104Client | Eagle Energy Manager (IEC 104) Cloud Service Configuration |
opcuaServer | OPCUA Server Protocol Conversion Configuration |
iec61850Server | IEC 61850 Server Protocol Conversion Configuration |
sl651Slave | SL651-2014 Protocol Conversion Configuration |
hj212Client | HJ212 Client Protocol Conversion Configuration |
bacnetServer | BACnet IP Server Protocol Conversion Configuration |
bacnetMSTPServer | BACnet MS/TP Server Protocol Conversion Configuration |
Dnp3Server | DNP3 Outstation Protocol Conversion Configuration |
snmpAgent | SNMP Agent Protocol Conversion Configuration |
In this example, Modbus TCP is adopted for southbound collection, and the following is the configuration process for southbound Modbus TCP.
Open Modbus Slave emulator, click "Connection", select "Modbus TCP/IP" connection mode, tick "Any Adress", set the Port to 502, and then click "OK", as shown in the figure below:
Set the slave address to 1;
The function code is a holding register;
Register address 0 is set to Signed data type with a value of 10; register address 1 is set to Unsigned data type with a value of 20, and register addresses 2-3 are set to "32 Bit Float" with a value of 3.12; as shown in the figure below:
Click Add Controller on the "Point Monitoring" page of the DSA and set the controller parameters, enter the IP address of the computer running the simulator as the IP address, the port number as 502, the slave address and the simulator to keep the same as 1, and set the polling period to 10 seconds. The polling period is set to 10 seconds, as shown in the following figure:
Then add the measurement points corresponding to the simulator, after adding the following figure:
You can see on the measurement point monitoring page that the collected values are the same as the values set on the simulator.
Reference: Getting Started -> Quick Start -> Northbound Cloud Service Configuration
Reference: Getting Started->Quick Start->Northbound Protocol Conversion Configuration
On the Protocol Conversion page, click Add, select "BACnet IP Server", and then enter the "Configuration" option. Leave the parameters at their default values and click Submit, as shown in the following figure:
Click the "Batch Add" button on the mapping table, select "Analogue Input" for the object type, set the instance number to 0, then tick the corresponding measurement points and click Confirm, as shown in the figure below:
Use the Yabe simulator to read the data from the BACnet IP Server. You can see that the values read are consistent with the values from the southbound acquisition measurement point, as shown below:
On the Protocol Conversion page, click Add, select the "IEC 104 Server" protocol, and then enter the "Configuration" option, keep the default values of the parameters, and click "Submit", as shown in the following figure:
Click the "Batch Add" button of the mapping table, select 1 for ASDU address, select "[13] M_ME_NC_1" for type ID, enter 1 for start IOA, and then select the corresponding measurement point and click Confirm, as shown in the figure below:
Use the "Client IEC 104 Simulator" to read the data from the IEC 104 Server. You can see that the value read is the same as the value of the southbound acquisition point, as shown in the figure below:
It mainly provides the performance test indexes of DSA software in various functions such as data acquisition and data processing, and continuously monitors the stability of software operation and CPU situation during the testing process, aiming at helping users to reasonably evaluate the system resources when using DSA, and ultimately ensuring that DSA can run smoothly and efficiently.
Single protocol, single controller, continuous measurement point | Theoretical Polling Interval | Continuous acquisition number | Communication frame interval | Actual acquisition time | Measuring point number | CPU | Configuration loading time (import overall configuration/import measuring point configuration) |
ModbusTCP | 1s | 125 | 0ms | 350ms | 6000 | 100% | 54s/75s |
1s | 125 | 10ms | 1s | 6000 | 85% | 54s/75s | |
10s | 125 | 0ms | 2.1s | 35,000 | 100% | 248s/683s | |
10s | 125 | 10ms | 9s | 40,000 | 100% | 328s/858s | |
ModbusRTU | 1s | 125 | 1ms | 1s | 250 | 13% | 6s/12s |
1s | 125 | 10ms | 1s | 250 | 11% | 6s/12s | |
10s | 125 | 1ms | 219s | 40,000 | 100% | 328s/858s | |
10s | 125 | 10ms | 222s | 40,000 | 100% | 328s/858s | |
OPCUA | 1s | 125 | - | 1s | 1200 | 43% | 15s/18s |
10s | 125 | - | 45s | 38000 | 85% | 357s/900s |
Single protocol, single controller, continuous measurement point | Theoretical Polling Interval | Continuous acquisition number | Communication frame interval | Actual acquisition time | Measuring point number | CPU | Configuration loading time (import overall configuration/import measuring point configuration) |
ModbusTCP | 1s | 125 | 0ms | 383ms | 9000 | 100% | 48s/83s |
1s | 125 | 10ms | 1s | 9000 | 85% | 48s/83s | |
10s | 125 | 0ms | 2.3s | 48000 | 100% | 247s/984s | |
10s | 125 | 10ms | 10.4s | 50000 | 100% | 285s/1080s | |
ModbusRTU | 1s | 125 | 1ms | 1s | 250 | 16% | 5s/11s |
1s | 125 | 10ms | 1s | 250 | 12% | 5s/11s | |
10s | 125 | 1ms | 272s | 50000 | 50% | 249s/984s | |
10s | 125 | 10ms | 285s | 50000 | 40% | 249s/1080s | |
OPCUA | 1s | 50 | 1s | 1200 | 10% | 10s/16s | |
10s | 50 | 125s | 80000 | 85% | 549s/2768s |
Single protocol, single controller, continuous measurement point | Theoretical Polling Interval | Continuous acquisition number | Communication frame interval | Actual acquisition time | Measuring point number | CPU | Configuration loading time (import overall configuration/import measuring point configuration) |
ModbusTCP | 1s | 125 | 0ms | 407ms | 9000 | 100% | 33s/64s |
1s | 125 | 10ms | 1s | 8000 | 65% | 42s/57s | |
10s | 125 | 0ms | 3.9s | 45,000 | 100% | 205s/694s | |
10s | 125 | 10ms | 10s | 48000 | 100% | 221s/758s | |
ModbusRTU | 1s | 125 | 1ms | 1s | 250 | 10% | 6s/11s |
1s | 125 | 10ms | 1s | 250 | 8% | 6s/11s | |
10s | 125 | 1ms | 256s | 48000 | 75% | 221s/758s | |
10s | 125 | 10ms | 271s | 48000 | 65% | 221s/758s | |
OPCUA | 1s | 125 | 1s | 1200 | 20% | 10s/15s | |
10s | 125 | 78s | 45,000 | 70% | 308s/898s |
Single protocol, single controller, continuous measurement point | Theoretical Polling Interval | Continuous acquisition number | Communication frame interval | Actual acquisition time | Measuring point number | CPU | Configuration loading time (import overall configuration/import measuring point configuration) |
ModbusTCP | 1s | 125 | 0ms | 435ms | 16000 | 100% | 47s/206s |
1s | 125 | 10ms | 1s | 9000 | 70% | 31s/115s | |
10s | 125 | 0ms | 1.1s | 45,000 | 85% | 120s/987s | |
10s | 125 | 10ms | 10.3s | 45,000 | 65% | 120s/987s | |
ModbusRTU | 1s | 125 | 1ms | 1s | 250 | 10% | 6s/11s |
1s | 125 | 10ms | 1s | 250 | 8% | 6s/11s | |
10s | 125 | 1ms | 243s | 45,000 | 50% | 120s/987s | |
10s | 125 | 10ms | 248s | 45,000 | 40% | 120s/987s | |
OPCUA | 1s | 50 | 1s | 1200 | 40% | 10s/20s | |
10s | 50 | 42.7s | 42400 | 100% | 303s/1034s |
Single protocol, single controller, continuous measurement point | Theoretical Polling Interval | Continuous acquisition number | Communication frame interval | Actual acquisition time | Measuring point number | CPU | Configuration loading time (import overall configuration/import measuring point configuration) |
ModbusTCP | 1s | 125 | 0ms | 1s | 40,000 | 50% | 42s/279s |
1s | 125 | 10ms | 1s | 9000 | 15% | 12s/28s | |
10s | 125 | 0ms | 5s | 190000 | 60% | 233s/2694s | |
10s | 125 | 10ms | 65s | 190000 | 40% | 233s/2694s | |
ModbusRTU | 1s | 125 | 1ms | 1s | 250 | 5% | 4s/11s |
1s | 125 | 10ms | 1s | 250 | 5% | 4s/11s | |
10s | 125 | 1ms | 850s | 190000 | 30% | 233s/2694s | |
10s | 125 | 10ms | 1029s | 190000 | 24% | 233s/2694s | |
OPCUA | 1s | 50 | 1s | 1200 | 13% | 11s/12s | |
10s | 50 | 74s | 80000 | 30% | 116s/1103s |
1 What southbound acquisition protocols does the DSA support?
Support. Reference: Getting Started->Introduction->List of functions->Southbound Acquisition Protocol List
2 What northbound cloud services does DSA support?
Support. Reference: Getting Started->Introduction->List of functions->Northbound Cloud Service List
3 What northbound protocol conversion services does the DSA support?
Support. Reference: Getting Started->Introduction->List of functions->Northbound Protocol Conversion List
4 Does it support device reverse control?
Support. You can write values online via web pages, call Python API interface in Quickfunctions write values via internal MQTT messages, and write values via Restful API.
5 Does it support the development of its own southbound acquisition driver?
Support. Create a "virtual controller" on the measurement point monitoring page, and the self-developed southbound acquisition driver publishes the data in the way of southbound message bus, and you can see the acquired data and status in the "virtual controller".
6 Is offline data storage supported?
Support. After opening the cloud service, if the gateway is offline it will store the reported data during the offline period, by default it is stored in the storage media of the gateway, storing 1w offline data (rolling storage), you can modify the parameters in Parameter Settings->Storage Configuration.
7 Does it support storing historical data?
Supported. If you want to store historical data, you need to enable "Store Historical Data" in the configuration of the measurement point, and the storage policy of historical data can be modified in the Measure Monitor->Groups->Historical data.
1 New IEC101/104 and IEC61850 functions for obtaining measurement point information by scanning;
2 New third-party library management function;
3 Added the function of offline data reporting policy setting;
4 Added IEC101/104 Slave cycle reporting function;
5 Modify the collection period and reporting period range to 1-999999s;
6 Modify the total number of cloud services to be limited to 54;
7 Added northbound BACnet MS/TP Server protocol conversion function;
8. Add the ModbusTCP Slave Driver southward collection protocol;
9. Add the C and T address types of the S7 protocol;
1 Fix connection failure when standard MQTT has only username but no password;
2 Fix IEC61850 get MMS data type incorrect issue;
3 Fix Panasonic protocol address type error issue;
4 Fix the problem of unsuccessful connection of Eagle Energy Manager、iSCADA.
1 A new specified number of acquisitions has been added to the protocol measurement points for the non-general call category;
2 The new Eagle Energy Manager platform adds a new setting for the type of data to be uploaded to the cloud;
3 When the stereotype Feature information is zxsz, the function of importing and exporting all measurement points of all controllers is added;
4 IEC104 protocol conversion using TCP Client mode adds sending access request messages;
5 AliCloud added connectivity to the new version of public instances and enterprise instances;
6 Northbound protocol conversion added SL651 protocol conversion;
7 Supports viewing and configuring the IEC104 protocol conversion mapping table at the measurement point monitor when the stereotype Feature information is zxsz;
8 SL651-2014 protocol conversion parameters optimised to support reporting of negative numbers;
9 IEC61850 has a new single-point acquisition function;
10 IEC61850 adds recall to read real-time data;
1 Fix OPCUA protocol conversion add mapping point error reporting invalid parameters;
2 Fix the standard MQTT import error for symmetric encryption parameters;
3 Fix the issue that the Quality flag of the response of the Electricity Master Call is invalid in the IEC104 protocol conversion;
4 Fix the file transfer function exception when there are multiple IEC61850 controllers at the same time;
5 Fix the problem that IEC61850 address selection error function code is still successful;
1 New function of offline data retransmission policy;
2 Added a new Eagle Energy Manager Cloud Platform type;
1 Fix some known bugs
1 Southbound support for HJ212-2017 protocol;
2 Southbound support for Modbu RTU Slave;
3 Southbound support for the CJT188-2004 protocol;
4 Southbound support for yizumi custom socket protocol;
5 New address types propriety_min and trend log have been added to the BACnet protocol;
6 The Mitsubishi protocol opens the "old and new message format" field;
7 Some read types of Fanuc CNC protocol measurement points support writable functions;
8 The Keyence protocol supports the batch acquisition function;
9 Southbound support for IEC 61850 file transfer functions;
10 Southbound supports the OPCUA Publishing Subscription feature;
11 Southbound support for the HJ212-2005 protocol;
13 The southbound DNP3 supports the Double bit Binary input data type;
14 The northbound Modbus protocol supports mapping multiple slave addresses;
15 Northbound added MQTT sparkplugB;
16 Northbound support for SNMP V1, V2C, and V3 protocols;
17 IEC 104 Server supports active connection to the IEC 104 Client as well as responding to electricity master calls;
18 Historical data is stored compressed, in order to save storage space;
19 Adaptation to the Siemens mindshpere platform;
20 Open offline data reporting frequency settings;
21 Optimise DSA performance: optimise the amount of memory space occupied by individual measurement points and controllers; optimise efficiency during driver initial configuration;
22 Supports the new recall API, which polls the measurement point once and returns the status immediately after the call;
23 Add qkfs api for reading and writing files (in multithreaded mode)
1 Fix some known bugs
1 DSA adapts to EC series (EC942, EC954, EC312, EC903) products;
2 The cloud name is available in the publish and subscribe scripts, as well as the default scripts for updating publish and subscribe;
3 The EC942 and EC954 platforms support setting the serial port mode;
1 Fix the memory leakage problem of S7 protocol in EC312, EC954 platform;
2 Fix some known bugs
1 New Northbound IEC61850 Server protocol conversion function;
2 New Northbound DNP3 Outstation protocol conversion function;
3 New southbound multi-polling collection function;
4 Added northbound BACnet IP Server protocol conversion function;
5 Added the function to set the string encoding of the controller;
6 Added docking to the new White Eagle Energy platform;
7 New "Power On Trigger" custom fast function;
1 Fix some known bugs
1 New S7 protocol millisecond acquisition function;
2 New point reporting mode supports dead zone setting;
3 New web page to display endpoint information on controller cards;
4 Modify the default value of the "frame interval" parameter of the serial port protocol to 100ms;
5 New northbound SL651 protocol conversion function;
6 Support iSCADA overseas version;
7 New IEC101 northbound protocol conversion function, IG532 supports IEC101 national network encryption function;
8 Added support for historical data export function;
9 Added a new southbound collection template function;
10 New Modbus protocol BCD 32-bit data type;
11 Added southbound Euromap 63 acquisition protocol;
12 Added southbound DNP3.0 acquisition protocol;
13 Add a new controller enable parameter;
14 New controller "Description" parameter;
15 Added OPCUA array reading function;
16 Added southbound BACnet IP/MSTP capture protocol;
17 Added Southbound Robotics, CNC Acquisition Protocol;
18 Added southbound simple Ethernet/serial protocol support write function;
19 Added southbound OPCDA acquisition protocol;
20 Added northbound HJ212 protocol conversion function;
21 New southbound real-time communication message function;
1 Fix some known bugs
1 New support for setting decimal places for values after data operations;
2 New fast function set interface;
3 Special symbols can be entered for new controller, measurement point, and alarm names;
4 New support for historical data storage;
5 A number of new southbound acquisition protocols have been added;
6 Added a new general-purpose Ethernet acquisition protocol;
7 A new function for mapping measurement point values has been added;
8 New BIT type data inverse operation;
9 New integrated fetch function;
10 New API interface for fast functions to access the history database;
1 Fix some known bugs
1 Added support for multiple MQTT cloud platforms;
2 Add customised points and names for reporting to the cloud platform;
3 New southbound FINS TCP protocol, universal serial port acquisition protocol;
4 New OpcuaDriver double data type with TLS encryption support;
5 Added PT/CT data arithmetic;
6 Added a new southbound IEC103 acquisition protocol;
7 Added support for modifying controller name, measurement point name, measurement point read/write permissions, and data type;
8 Add "Connection Timeout" parameter for all new Ethernet protocols, "Communication Interval" parameter for all new serial protocols, and "Initialisation Activation" parameter for DLT;
9 Added support for not importing CA certificates when standard MQTT has TLS enabled;
10 New historical data storage location modification;
11 Newly added support for importing and exporting CSV configurations for cloud point configurations;
12 Added IG532 gateway support for selecting lora virtual serial port;
1 Fix some known bugs
not have
1 Fix modbud-ascii batch capture failure problem;
2 Fix Opcua-driver encrypted connection failure issue;
3 Fix FATEK programming port protocol acquisition failure;
4 Fix IEC 104 balance mode capture failure issue;
5 Fix a deadlock issue with quickfunctions executing asynchronous scripts;
1 New Southbound IEC101 protocol acquisition function;
2 Added southbound Panasonic Mewtocol protocol acquisition function;
3 Added the Southbound Mitsubishi 1E protocol acquisition function;
4 New southbound Modbus ASCII and Modbus RTU Over TCP protocol functions;
5 New Modbus controller can set write value function code;
6 New Modbus write-only function;
7 Added "State Timeout" for virtual controllers;
8 Added OPCUA Server authentication and encrypted access, write functionality and support for the Numeric identifier type;
9 Added White Eagle Energy Platform to support remote control function;
10 Added southbound IEC104 Driver acquisition function;
11 Added southbound IEC101/104 write function;
12 Added southbound DLT645-1997 protocol acquisition function;
13 The newly added function of collecting through the southbound FATEK Driver.
14 Added the function of reporting data periodically when the reporting mode is onchange;
15 Added S7,Modbus protocol double data type;
16 Added standard MQTT cloud service support for probate messages;
1 Fix some known bugs
1 New opcua authentication method and continuous acquisition function;
2 New Modbus protocol INT64 and BCD data types;
3 New Modbus, Opcua protocol non-blocking mode acquisition;
4 Added support for the SUNPURE Management platform;
5 Added DLT645 southbound acquisition protocol;
6 Added White Eagle Energy Platform (IEC 104);
7 New Modbus, Opcua millisecond acquisition;
8 Added OPCUA file transfer function API;
9 New opcua protocol INT64 data type;
10 New EtherNet/IP (ControlLogix) protocol slot number setting;
11 Modbus TCP Slave and Modbus RTU Slave slave addresses support 1-255 settings;
1 Fix some known bugs
1 Added ASCII 8-bit and 16-bit communication formats for Mitsubishi 3E, 3C, and 3C over TCP protocols;
2 New Virtual Controller function;
3 New custom quickfunction function;
4 Added OMRON FINS UDP and HOSTLINK protocols;
5 Added Siemens PPI protocol;
6 New Ethernet/IP PCCC protocol communication method;
7 New Alert Label function;
1 Fix some known bugs
1 Added Mitsubishi's 3E and 3C over TCP controller protocols;
2 New OPCUA Server protocol conversion function;
3 Added Azure IoT X509 certificate authentication method;
4 New subscription quickfunction can select plaintext, jason, base64, hex Payload type;
5 Adaptation of the IG974 gateway;
1 Fix some known bugs
1 New Modbus TCP Slave, IEC 104 Server protocol conversion function;
2 New iSCADA cloud service type;
3 Add the function of publishing subscription quickfunction;
4 Added Mitsubishi's 3C and programming port protocol functions;
None