Plugin Reference
This page details the register address format, plugin properties (channel/device-level configuration), and variable properties (variable-level configuration) for each plugin.
- Plugin Properties: Configured at the channel or device level, used to set communication parameters, connection methods, etc.
- Variable Properties: Configured at the variable level, used to set variable-specific parameters, such as data type, RPC enable, etc.
- Register Address Format: Only exists in collection plugins, used to specify the address of a variable in a device
- Address Data Conversion Parameters: Can be appended via semicolon in the register address, used to override the default data parsing method
Address Data Conversion Parameters
In the register address, data conversion parameters can be appended via semicolon (;) to override the plugin's default data parsing method. This allows different variables of the same plugin to use different byte order, string length, or encoding rules.
General conversion parameters only apply to raw byte communication-based collection plugins (Modbus Master, Siemens S7, DLT645-2007, etc.). Plugins such as OPC UA, OPC DA, MQTT provide typed data directly from the server or JSON, and do not need or support these byte-level conversion parameters.
General Conversion Parameters
The following parameters apply to all collection plugins:
| Parameter | Format | Optional Values | Description |
|---|---|---|---|
| Data Format | data=ABCD | ABCD (big-endian), BADC (big-endian byte swap), CDAB (little-endian byte swap), DCBA (little-endian) | Byte order for 4-byte data (float/int/uint, etc.) |
| String Length | len=N | Positive integer | Byte length of string type variable, must be specified for string read/write |
| BCD Format | bcd=C8421 | C8421, C5421, C2421, C3, Gray | BCD encoding format |
| Character Encoding | encoding=UTF-8 | UTF-8, ASCII, Default, Unicode, etc. | String encoding type |
| Variable-length String | vsl=true | true/false | Whether it is a variable-length string (in S7, the first 2 bytes of a variable-length string are the length) |
General Examples:
40001;data=CDAB— Holding register, parse float/int using little-endian byte swap format40001;len=10;encoding=UTF-8— Holding register, read 10-byte UTF-8 encoded string40001;bcd=C8421— Holding register, use BCD 8421 encodingDB1.DBW0;vsl=true;len=20— S7 data block, variable-length string, max 20 bytes
Plugin-specific Conversion Parameters
Some plugins support unique address parameters in addition to the general parameters:
| Plugin | Parameter | Format | Description | Example |
|---|---|---|---|---|
| Modbus Master | Station Number | s=N | Specify device station number, override channel default station number | 40001;s=2 |
| Modbus Master | Write Function Code | w=N | Specify function code for writing (6 or 16) | 40001;w=16 |
| Modbus Master | Function Code | f=N | Directly specify read function code | 40001;f=3 |
| Siemens S7 | Wide String | W=true | Enable WString (wide string/Unicode), in S7 the first 4 bytes are the length header | DB1.DBW0;W=true |
- Conversion parameters and the address, as well as parameters themselves, are separated by semicolon (
;) - Parameters are case-insensitive (both parameter names and enumeration values)
- If no conversion parameters are specified, the default values configured in the plugin properties are used
- String type variables must specify
len=Nin the address, otherwise read/write will report an error
Collection Plugins
Collection plugins are used to read data from external devices or systems, each collection plugin corresponds to a communication protocol or data source.
Modbus Master
Register Address Format
| Address Range | Register Type | Function Code | Example |
|---|---|---|---|
| 00001~09999 | Coil Register | 01 (read) / 05 (write) | 00001 |
| 10001~19999 | Discrete Input Register | 02 (read-only) | 10001 |
| 30001~39999 | Input Register | 04 (read-only) | 30001 |
| 40001~49999 | Holding Register | 03 (read) / 06/16 (write) | 40001 |
Modbus-specific Address Parameters (semicolon-separated, see Address Data Conversion Parameters for general conversion parameters):
| Parameter | Format | Description | Example |
|---|---|---|---|
| Station Number | s=N | Specify device station number, override channel default station number | 40001;s=2 |
| Write Function Code | w=N | Specify function code for writing (6 or 16) | 40001;w=16 |
| Function Code | f=N | Directly specify read function code | 40001;f=3 |
| Bit Index | .N | Specify bit index in register | 40001.3 |
Examples:
40001— First holding register40001;s=2— First holding register with station number 240001;w=16— First holding register, use 0x10 function code for writing40001;data=CDAB— Holding register, parse using little-endian byte swap format40001;len=10;encoding=UTF-8— Holding register, read 10-byte UTF-8 string
Plugin Properties
After selecting the Modbus Master plugin, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Modbus Type | Enum | - | ModbusTcp (TCP format) / ModbusRtu (RTU format) |
| Default Station Number | Byte | 1 | Default device station number |
| FC1 Max Read Coil Bits | UInt16 | 1600 | Maximum coil bits per FC1 request; range 1–2000 |
| FC2 Max Read Discrete Input Bits | UInt16 | 1600 | Maximum discrete-input bits per FC2 request; range 1–2000 |
| FC3 Max Read Holding Registers | UInt16 | 100 | Maximum holding registers per FC3 request; range 1–125 |
| FC4 Max Read Input Registers | UInt16 | 100 | Maximum input registers per FC4 request; range 1–125 |
| FC15 Max Batch-Write Coil Bits | UInt16 | 1968 | Maximum coil bits per FC15 request; range 1–1968 |
| FC16 Max Batch-Write Registers | UInt16 | 123 | Maximum registers per FC16 request; range 1–123 |
| Read/Write Timeout | UInt16 | 3000 | Read/write operation timeout (ms) |
| Frame Lead Time | Int32 | 0 | Delay time before sending frame (ms) |
| String Reverse Bytes | Boolean | false | Whether string bytes are reversed by word |
| Data Parsing Order | Enum | - | Data byte order (ABCD/DCBA/BADC/CDAB) |
| DTU ID | String | - | Default DTU ID |
| Retry Count on Failure | Int32 | 3 | Number of retries on read/write failure |
| Read/Write Duty Ratio | Int32 | 3 | One read operation is performed every n write operations |
| Write Priority | Boolean | false | Force cancel read operation when writing |
The old Modbus Master MaxPack / Max Pack Length field has been removed. After upgrading, open every Modbus Master device and review all six function-code limits; the old value is not automatically mapped. A variable read length or batch write that exceeds its applicable limit is rejected before a frame is built. Lower the limit further when the device supports less than the Modbus protocol maximum.
Siemens S7
Register Address Format
| Prefix | Register Type | Example | Description |
|---|---|---|---|
I | Input (I area) | I0.0, IB0, IW0, ID0 | Supports bit/byte/word/double word |
Q | Output (Q area) | Q0.0, QB0, QW0, QD0 | Supports bit/byte/word/double word |
M | Memory (M area) | M0.0, MB0, MW0, MD0 | Supports bit/byte/word/double word |
DB | Data Block (DB area) | DB1.DBX0.0, DB1.DBB0, DB1.DBW0, DB1.DBD0 | Format: DB number.address |
AI | Analog Input | AI0, AIW0 | Analog input |
AQ | Analog Output | AQ0, AQW0 | Analog output |
T | Timer | T0 | Timer register |
C | Counter | C0 | Counter register |
V | V area (S200 specific) | V0, VB0, VW0, VD0 | Equivalent to DB1 |
S7-specific Address Parameters (semicolon-separated, see Address Data Conversion Parameters for general conversion parameters):
| Parameter | Format | Description | Example |
|---|---|---|---|
| Wide String | W=true/false | Whether to enable wide string (WString), when enabled string is Unicode encoded, first 4 bytes are length header for non-SMART200 | DB1.DBW0;W=true |
S7 String Description:
- Normal string (
vsl=true): First 2 bytes are length header for non-SMART200, first 1 byte for SMART200 - Wide string (
W=true): First 4 bytes are length header for non-SMART200, first 1 byte for SMART200 - Fixed-length string (
len=N): No length header, directly reads N bytes
Examples:
DB1.DBW0— DB1 data block, word address 0DB1.DBW0;W=true— DB1 data block, wide stringDB1.DBW0;vsl=true;len=20— DB1 data block, variable-length string, max 20 bytesDB1.DBW0;data=CDAB— DB1 data block, use little-endian byte swap format
Address Type Prefix Description:
| Prefix | Description |
|---|---|
X | Bit |
B | Byte |
W | Word (16-bit) |
D | Double Word (32-bit) |
Plugin Properties
After selecting the Siemens S7 plugin, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| PLC Type | Enum | - | S200/S200Smart/S300/S400/S1200/S1500 |
| Rack | Byte | 0 | Rack number |
| Slot | Byte | 0 | Slot number |
| Local TSAP | Int32 | 0 | Local TSAP |
| Max Pack Length | UInt16 | 200 | Maximum pack length per request |
| Read/Write Timeout | UInt16 | 3000 | Read/write operation timeout (ms) |
| Frame Lead Time | Int32 | 0 | Delay time before sending frame (ms) |
| String Reverse Bytes | Boolean | false | Whether string bytes are reversed by word |
| Data Parsing Order | Enum | - | Data byte order |
| Retry Count on Failure | Int32 | 3 | Number of retries on read/write failure |
| Read/Write Duty Ratio | Int32 | 3 | One read operation is performed every n write operations |
| Write Priority | Boolean | false | Force cancel read operation when writing |
DLT645-2007
Register Address Format
DLT645-2007 uses data identifiers as addresses, formatted as 8-digit hexadecimal data identifier codes. See Address Data Conversion Parameters for general conversion parameters.
DLT645-specific Address Parameters (semicolon-separated):
| Parameter | Format | Description | Example |
|---|---|---|---|
| Station Number | s=XXXXXXXXXXXX | 12-digit meter address | 02010100;s=111111111111 |
Common Data Identifiers:
| Address | Description |
|---|---|
02010100 | Phase A voltage |
02020100 | Phase A current |
02030000 | Instantaneous total active power |
00000000 | (Current) Combined active total energy |
00010000 | (Current) Forward active total energy |
For complete data identifiers, please refer to the DL/T 645-2007 protocol documentation.
Plugin Properties
After selecting the DLT645-2007 plugin, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Default Address | String | 111111111111 | Default meter address (12 digits) |
| Password | String | - | Communication password |
| Operator Code | String | - | Operator code |
| Preamble Header | String | FEFEFEFE | Preamble header |
| Read/Write Timeout | UInt16 | 3000 | Read/write operation timeout (ms) |
| Frame Lead Time | Int32 | 0 | Delay time before sending frame (ms) |
| String Reverse Bytes | Boolean | false | Whether string bytes are reversed by word |
| Data Parsing Order | Enum | - | Data byte order |
| DTU ID | String | - | Default DTU ID |
| Retry Count on Failure | Int32 | 3 | Number of retries on read/write failure |
| Read/Write Duty Ratio | Int32 | 3 | One read operation is performed every n write operations |
| Write Priority | Boolean | false | Force cancel read operation when writing |
OPC UA Client
Register Address Format
OPC UA uses the node's ItemId as the address, simply fill in the node identifier of the OPC UA server.
Examples:
ns=2;s=Channel1.Device1.Tag1ns=2;i=1001
Plugin Properties
After selecting the OPC UA Client plugin, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Connection URL | String | opc.tcp://127.0.0.1:49320 | OPC UA server address |
| Login Account | String | - | Username authentication |
| Login Password | String | - | Password authentication |
| Data Change Trigger | Enum | StatusValue | Subscription data change trigger condition |
| Security Policy | Boolean | false | Enable it when the OPC UA server requires a secure session and certificate trust. |
| Application Name | String | ThingsGateway_OPC_UA_Master | Client application name shown to the OPC UA server. |
| Certificate | Certificate Selection | - | Client certificate selected from Certificate Management when secure connection or certificate authentication is required. |
| Use SourceTime | Boolean | true | Whether to use server timestamp |
| Load Server Data Types | Boolean | true | Whether to load server data types |
| Activate Subscription | Boolean | true | Whether to use subscription mode |
| Update Frequency | Int32 | 1000 | Subscription update frequency (ms) |
| Deadband | Double | 0 | Subscription deadband percentage |
| Max Group Size | Int32 | 500 | Maximum number of nodes per subscription group |
| Heartbeat Frequency | Int32 | 3000 | Heartbeat interval (ms) |
| Retry Count on Failure | Int32 | 3 | Number of retries on read/write failure |
| Read/Write Duty Ratio | Int32 | 3 | One read operation is performed every n write operations |
| Write Priority | Boolean | false | Force cancel read operation when writing |
The OPC DA plugin only supports Windows systems.
OPC DA Client
Register Address Format
OPC DA uses the node's ItemName as the address, simply fill in the item name of the OPC DA server.
Examples:
Channel1.Device1.Group1.Tag1
Plugin Properties
After selecting the OPC DA Client plugin, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| OPC Server IP | String | localhost | OPC DA server IP address |
| OPC Server Name | String | Kepware.KEPServerEX.V6 | OPC DA server ProgID |
| Server Time | Boolean | true | Whether to use server timestamp |
| Subscription Mode | Boolean | true | Whether to use subscription mode |
| Reconnect Detection Frequency (min) | Int32 | 10 | Reconnect detection interval (minutes) |
| Deadband | Float | 0 | Subscription deadband percentage |
| Max Group Size | Int32 | 500 | Maximum number of items per subscription group |
| Subscription Update Frequency | Int32 | 1000 | Subscription update frequency (ms) |
| Retry Count on Failure | Int32 | 3 | Number of retries on read/write failure |
| Read/Write Duty Ratio | Int32 | 3 | One read operation is performed every n write operations |
| Write Priority | Boolean | false | Force cancel read operation when writing |
The OPC DA plugin only supports Windows systems, based on COM/DCOM technology.
MQTT Collection Client
Register Address Format
The variable address format for MQTT collection client is:
${mqtt_topic};${payload_item};${Condition}
| Part | Description |
|---|---|
mqtt_topic | MQTT topic |
payload_item | Field path in JSON payload (supports . nesting) |
Condition | Optional, condition name (determined via script) |
Payload Example:
{
"ModuleUnoccupied": {
"EquipId": "E12",
"CarrierId": "C12",
"SubstrateLocId": "S12",
"LotId": 1,
"DesignId": "D12",
"EventTime": "12322131"
}
}
Examples:
vendor/device;ModuleUnoccupied.EquipId— Result is"E12"vendor/device;ModuleUnoccupied.EquipId;ConditionName— Returns"E12"when script determines LotId equals 1
Plugin Properties
After selecting the MQTT Collection Client plugin, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Connection Type | Enum | Tcp | Tcp/WebSocket |
| IP Address | String | localhost | MQTT server address |
| Port | Int32 | 1883 | MQTT server port |
| WebSocket Path | String | /mqtt | WebSocket connection path |
| Enable SSL | Boolean | false | Whether to use SSL/TLS |
| SSL Target Hostname | String | - | SSL certificate verification hostname |
| Client Certificate Name | Certificate Selection | - | Client SSL certificate |
| CA Name | Certificate Selection | - | CA certificate |
| Allow Untrusted Certificates | Boolean | true | Whether to allow untrusted certificates |
| SSL Protocol Version | Enum | None | SSL/TLS protocol version |
| Check Certificate Revocation | Boolean | false | Whether to check certificate revocation |
| Client ID | String | - | MQTT client identifier |
| Username | String | - | Authentication username |
| Password | String | - | Authentication password |
| Keep Alive | Int32 | 60 | Keep Alive time (seconds) |
| Clean Session | Boolean | true | Whether to clean session |
| MQTT Protocol Version | Enum | V311 | MQTT protocol version |
| QoS Level | Enum | AtMostOnce | QoS level (0/1/2) |
| Detailed Log | Boolean | false | Whether to display detailed log |
| Connection Timeout | Int32 | 3000 | Connection timeout (ms) |
| Clean Check Time | Int32 | 60000 | Clean check time (ms) |
MQTT Collection Server
Register Address Format
Same as MQTT collection client address format:
${mqtt_topic};${payload_item};${Condition}
Plugin Properties
After selecting the MQTT Collection Server plugin, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Connection Type | Enum | Tcp | Tcp/WebSocket |
| Port | Int32 | 1883 | MQTT service listening port |
| WebSocket Path | String | /mqtt | WebSocket path |
| Enable SSL | Boolean | false | Whether to use SSL/TLS |
| Server Certificate Name | Certificate Selection | - | Server SSL certificate |
| CA Name | Certificate Selection | - | CA certificate |
| Allow Untrusted Certificates | Boolean | true | Whether to allow untrusted certificates |
| SSL Protocol Version | Enum | None | SSL/TLS protocol version |
| Check Certificate Revocation | Boolean | false | Whether to check certificate revocation |
| Allowed Connection ID Prefix | String | - | Allowed client ID prefix for connections |
| Username | String | - | Authentication username |
| Password | String | - | Authentication password |
| Detailed Log | Boolean | false | Whether to display detailed log |
| Clean Check Time | Int32 | 60000 | Clean check time (ms) |
Data Forward Plugins
Data forwarding plugins are used for data processing and forwarding, pushing collected data to external systems.
Modbus Slave
Plugin Properties
After selecting a Modbus Slave target, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Modbus Type | Enum | - | ModbusTcp/ModbusRtu |
| Default Station Number | Byte | 1 | Default device station number |
| Data Parsing Order | Enum | - | Data byte order |
| String Reverse Bytes | Boolean | false | Whether string bytes are reversed by word |
| Multi-station Mode | Boolean | true | Whether to enable multi-station mode |
| Allow RPC Write | Boolean | true | Whether to allow RPC write |
| Immediate Write to Memory | Boolean | true | Whether to write to memory immediately |
| Send Delay Time | Int32 | 0 | Send delay time (ms) |
Variable Properties
| Property | Type | Default Value | Required | Description |
|---|---|---|---|---|
| Enabled | Boolean | true | No | Whether the variable is enabled |
| Slave Variable Address | String | - | Yes | Modbus slave variable address |
| Data Type | Enum | Int16 | No | Variable data type |
| Allow RPC Write | Boolean | false | No | Whether to allow RPC write |
MQTT Client Producer
Plugin Properties
After selecting the MQTT Client Producer target, the plugin property area commonly includes the following configuration items:
MQTT Connection Configuration:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Connection Type | Enum | Tcp | Tcp/WebSocket |
| IP Address | String | localhost | MQTT server address |
| Port | Int32 | 1883 | MQTT server port |
| WebSocket Path | String | /mqtt | WebSocket connection path |
| Enable SSL | Boolean | false | Whether to use SSL/TLS |
| SSL Target Hostname | String | - | SSL certificate verification hostname |
| Client Certificate Name | Certificate Selection | - | Client SSL certificate |
| CA Name | Certificate Selection | - | CA certificate |
| Allow Untrusted Certificates | Boolean | true | Whether to allow untrusted certificates |
| SSL Protocol Version | Enum | None | SSL/TLS protocol version |
| Check Certificate Revocation | Boolean | false | Whether to check certificate revocation |
| Client ID | String | - | MQTT client identifier |
| Username | String | - | Authentication username |
| Password | String | - | Authentication password |
| Keep Alive | Int32 | 60 | Keep Alive time (seconds) |
| Clean Session | Boolean | true | Whether to clean session |
| MQTT Protocol Version | Enum | V311 | MQTT protocol version |
| QoS Level | Enum | AtMostOnce | QoS level (0/1/2) |
| Retain Message | Boolean | false | Whether to retain message |
RPC Configuration:
| Property | Type | Default Value | Description |
|---|---|---|---|
| RPC Write Topic | String | - | Write topic, actual is {RpcWrite/+}, return is {RpcWrite/+/Response} |
| Data Request Topic | String | - | Trigger full upload after receiving data |
| RPC Script | Script Selection | - | MQTT dynamic RPC script |
Data Upload Configuration:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Enable Cache | Boolean | false | Whether to enable offline cache |
| Cache File Max Lines | Int32 | 262144 | Cache file max lines |
| Upload List Max Count | Int32 | 2000 | Max count per upload |
| Memory Queue Max Count | Int32 | 100000 | Memory queue max count |
| Online Filter | Boolean | false | Only upload online device data |
| Detailed Log | Boolean | false | Whether to display detailed log |
| JSON Indent Format | Boolean | true | Whether JSON is indented and formatted |
| JSON Ignore Null | Boolean | true | Whether JSON ignores Null values |
| Device List Upload | Boolean | true | Whether to upload device list |
| Variable List Upload | Boolean | true | Whether to upload variable list |
| Variable Dictionary Upload | Boolean | false | When variable list upload is enabled, organize data as device name -> variable name -> variable data. |
| Alarm List Upload | Boolean | true | Whether to upload alarm list |
| Alarm Dictionary Upload | Boolean | false | When alarm list upload is enabled, organize data as device name -> variable name -> alarm data. |
| Plugin Event List Upload | Boolean | true | Whether to upload plugin event list |
| Device Topic Template | String | - | Device data upload topic, supports ${key} matching |
| Variable Topic Template | String | ThingsGateway/Variable | Variable data upload topic |
| Alarm Topic Template | String | - | Alarm data upload topic |
| Plugin Event Topic Template | String | - | Plugin event upload topic |
| Device Entity Script | Script Selection | - | Custom device entity model script |
| Variable Entity Script | Script Selection | - | Custom variable entity model script |
| Alarm Entity Script | Script Selection | - | Custom alarm entity model script |
| Plugin Event Entity Script | Script Selection | - | Custom plugin event entity model script |
Variable Properties
| Property | Type | Default Value | Required | Description |
|---|---|---|---|---|
| Enabled | Boolean | true | No | Whether the variable is enabled |
| Data 1~Data 10 | String | - | No | Custom data fields |
| Allow RPC Write | Boolean | false | No | Whether to allow RPC write |
MQTT Server Producer
Plugin Properties
After selecting the MQTT Server Producer target, the plugin runs as an MQTT server and commonly includes the following configuration items:
MQTT Server Configuration:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Connection Type | Enum | Tcp | Tcp/WebSocket |
| Port | Int32 | 1883 | MQTT service listening port |
| WebSocket Path | String | /mqtt | WebSocket path |
| Enable SSL | Boolean | false | Whether to use SSL/TLS |
| Server Certificate Name | Certificate Selection | - | Server SSL certificate |
| CA Name | Certificate Selection | - | CA certificate |
| Allow Untrusted Certificates | Boolean | true | Whether to allow untrusted certificates |
| SSL Protocol Version | Enum | None | SSL/TLS protocol version |
| Check Certificate Revocation | Boolean | false | Whether to check certificate revocation |
| Allowed Connection ID Prefix | String | - | Allowed client ID prefix for connections |
| Username | String | - | Authentication username |
| Password | String | - | Authentication password |
| QoS Level | Enum | AtMostOnce | QoS level |
| Retain Message | Boolean | false | Whether to retain message |
| RPC Write Topic | String | - | Write topic |
| Data Request Topic | String | - | Trigger full upload after receiving data |
| RPC Script | Script Selection | - | MQTT dynamic RPC script |
Data upload configuration is the same as MQTT Client Producer.
Variable Properties
Same as MQTT Client Producer variable properties.
OPC UA Server
Plugin Properties
After selecting the OPC UA Server target, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Service Address | String | opc.tcp://127.0.0.1:49321 | OPC UA service address (multiple URLs can be set with semicolon separator) |
| Application Name | String | ThingsGateway_OPC_UA_Server | OPC UA server application name shown to clients. |
| Security Policy | Boolean | false | Enable it when OPC UA clients must connect through secure policy and trust the server certificate. |
| Allow RPC Write | Boolean | true | Whether OPC UA clients are allowed to write gateway variables. Disable it for read-only publishing. |
| Username | String | - | OPC UA client login username. |
| Password | String | - | OPC UA client login password. |
| Server Certificate Name | Certificate Selection | - | Server certificate selected from Certificate Management. |
Variable Properties
| Property | Type | Default Value | Required | Description |
|---|---|---|---|---|
| Enabled | Boolean | true | No | Whether the variable is enabled |
| Data Type | Enum | Object | No | Variable data type |
| Allow RPC Write | Boolean | true | No | Whether this variable allows writes from OPC UA clients. |
Kafka Producer
Plugin Properties
After selecting the Kafka Producer target, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Service Address | String | 127.0.0.1:9092 | Kafka Bootstrap server address |
| Publish Timeout | Int32 | 5000 | Publish timeout (ms) |
| Username | String | - | SASL authentication username |
| Password | String | - | SASL authentication password |
| Security Protocol | Enum | Plaintext | Security protocol type |
| SASL Mechanism | Enum | Plain | SASL authentication mechanism |
Data upload configuration is the same as MQTT Client Producer.
Variable Properties
| Property | Type | Default Value | Required | Description |
|---|---|---|---|---|
| Enabled | Boolean | true | No | Whether the variable is enabled |
| Data 1~Data 10 | String | - | No | Custom data fields |
RabbitMQ Producer
Plugin Properties
After selecting the RabbitMQ Producer target, the plugin property area commonly includes the following configuration items:
| Property | Type | Default Value | Description |
|---|---|---|---|
| IP Address | String | localhost | RabbitMQ server address |
| Port | Int32 | 5672 | RabbitMQ server port |
| Username | String | guest | Authentication username |
| Password | String | guest | Authentication password |
| Declare Queue | Boolean | false | Whether to auto-declare queue |
| Declare Exchange | Boolean | false | Whether to auto-declare exchange |
| Exchange Type | String | topic | Exchange type (direct/topic/fanout/headers) |
| Publish Timeout | Int32 | 5000 | Publish timeout (ms) |
| Virtual Host | String | / | RabbitMQ virtual host |
| Exchange Name | String | TG | Exchange name |
Data upload configuration is the same as MQTT Client Producer.
Variable Properties
| Property | Type | Default Value | Required | Description |
|---|---|---|---|---|
| Enabled | Boolean | true | No | Whether the variable is enabled |
| Data 1~Data 10 | String | - | No | Custom data fields |
Historical Data Target
Plugin Properties
The historical data target writes variable values into a history database. Whether a value is stored depends on the forwarding group scope, target sampling settings, and optional variable-level sampling settings.
| Property | Type | Default Value | Description |
|---|---|---|---|
| Database Type | Enum | SqlServer | Database type used for historical data. The connection string must match this type. |
| Custom SQL Mode | Boolean | false | Enable it only when an existing table structure or custom SQL template is required. |
| Split Table Strategy | Enum | - | Used to split large history data by time or another strategy. |
| Connection String | String | Example connection string | Database connection information, including server, database, account, password, and encryption options. |
| Numeric History Table Name | String | historyNumberValue | Table name for numeric variables. |
| String History Table Name | String | historyStringValue | Table name for string variables. |
| Retention Days | Int32 | 3650 | Historical data retention period. Check storage capacity before increasing it. |
| History Table Script | Script Selection | - | Custom table creation or write logic. Use it only when the database schema has special requirements. |
| Time Zone Offset | String | +08:00 | Time zone used when writing timestamps. Confirm it carefully for cross-time-zone deployments or UTC databases. |
| Force Insert | Boolean | false | Write every received value without reducing records by sampling. This can greatly increase database pressure. |
| Default Sampling Strategy | Enum | Change | Default storage strategy for variables without variable-level settings. |
| Default Sampling Interval | Int32 | - | Used by interval sampling, in milliseconds. |
| Default Condition Expression | String | - | Used by condition sampling. Data is stored only when the expression condition is met. |
| Custom Template Config | Dialog | - | Field template settings used by custom SQL mode. |
The historical data target supports offline cache, upload batch size, memory queue limit, offline-data filtering, and upload concurrency. If the database is slow, reduce the upload batch size; if the network is unstable, enable offline cache and check disk capacity.
Variable Properties
| Property | Type | Default Value | Required | Description |
|---|---|---|---|---|
| Sampling Strategy | Enum | Change | No | Storage strategy for this variable in the selected historical data target. |
| Sampling Interval | Int32 | - | No | Used by interval sampling, in milliseconds. |
| Condition Expression | String | - | No | Used by condition sampling, such as storing only while equipment is running. |
Real-time Data Target
Plugin Properties
The real-time data target writes the latest variable values into a real-time table for external systems to read current state.
| Property | Type | Default Value | Description |
|---|---|---|---|
| Database Type | Enum | SqlServer | Database type used for real-time data. |
| Connection String | String | Example connection string | Database connection information. The account needs create, update, and write permissions. |
| Real-time Table Name | String | realValue | Table that stores the latest variable values. |
| Real-time Table Script | Script Selection | - | Custom real-time table structure or write logic. |
| Time Zone Offset | String | +08:00 | Time zone used when writing timestamps. |
The real-time data target also supports cache and queue settings. For high real-time requirements, avoid setting an overly large upload batch size.
Historical Alarm Target
Plugin Properties
The historical alarm target stores alarm and recovery events for traceability, statistics, and export.
| Property | Type | Default Value | Description |
|---|---|---|---|
| Database Type | Enum | SqlServer | Database type used for historical alarm records. |
| Split Table Strategy | Enum | - | Used when alarm volume is large or retention is long. |
| Connection String | String | Example connection string | Historical alarm database connection information. |
| Historical Alarm Table Name | String | historyAlarm | Table that stores alarm events. |
| Retention Days | Int32 | 3650 | Alarm retention period. It should meet site audit and traceability requirements. |
| Historical Alarm Table Script | Script Selection | - | Custom alarm table structure or write logic. |
| Time Zone Offset | String | +08:00 | Time zone used when writing alarm event timestamps. |
| Minimum Alarm Level | Int32 | 0 | Only alarms at this level or higher are stored. Keep it low when all alarms should be recorded. |
Webhook
Plugin Properties
After selecting the Webhook target, the variable Topic template is used as the request URL. The default variable URL is http://127.0.0.1:7502/ThingsGateway/Variable.
Webhook also uses the same cache, topic template, entity script, list upload, dictionary upload, and upload template settings as MQTT-style data upload targets.
Variable Properties
| Property | Type | Default Value | Required | Description |
|---|---|---|---|---|
| Enabled | Boolean | true | No | Whether the variable is enabled |
| Data 1~Data 10 | String | - | No | Custom data fields |
Common Property Description
The following properties are common across multiple plugins and are described here uniformly.
Collection Plugin Common Properties
| Property | Type | Default Value | Description |
|---|---|---|---|
| Retry Count on Failure | Int32 | 3 | Number of retries on read/write failure |
| Read/Write Duty Ratio | Int32 | 3 | One read operation is performed every n write operations |
| Write Priority | Boolean | false | Force cancel read operation when writing |
Cache Common Properties
| Property | Type | Default Value | Description |
|---|---|---|---|
| Enable Cache | Boolean | false | Whether to enable offline cache |
| Cache File Max Lines | Int32 | 262144 | Max lines per cache file |
| Upload List Max Count | Int32 | 2000 | Max count per upload |
| Memory Queue Max Count | Int32 | 100000 | Memory queue max count, transfers to file cache when exceeded |
| Online Filter | Boolean | false | Only upload online device data |
| Upload Concurrency | Int32 | 1 | Number of parallel upload tasks for the same target. Keep it at 1 when strict ordering is required. |
Variable Property Common Fields
Data forwarding plugin variable properties include the following custom data fields by default:
| Property | Type | Default Value | Description |
|---|---|---|---|
| Enabled | Boolean | true | Whether the variable is enabled |
| Data 1 | String | - | Custom data field 1 |
| Data 2 | String | - | Custom data field 2 |
| Data 3 | String | - | Custom data field 3 |
| Data 4 | String | - | Custom data field 4 |
| Data 5 | String | - | Custom data field 5 |
| Data 6 | String | - | Custom data field 6 |
| Data 7 | String | - | Custom data field 7 |
| Data 8 | String | - | Custom data field 8 |
| Data 9 | String | - | Custom data field 9 |
| Data 10 | String | - | Custom data field 10 |
Related Links
- Data Management - Channel, device, variable configuration
- Plugin Management - Plugin enable/disable/sync
- Device Debug - Device communication debugging