Preconditions
- SGC500 software version: 3.02.01 or higher
- Connect Liquiline Modbus TCP device to LAN network. Make sure port 502 is accessible.
- The field device health data must be integrated in Netilion.
Configuration for Analytics service
Modbus TCP protocol does not provide field device information by default. An asset cannot be created fully automatically. Device information must be added manually as described here:
- On page Edge Device Details create a new Field Gateway / Device.
- Select type "Liquiline Platform".
- Add a name (displayed on field gateway / device pages only).
- Add IP address of the Modbus TCP Liquiline device.
- Press button Save.
Within next 20 minutes the edge device will read the new field gateway / device configuration.
An asset will be created based on serial number read from the device.
A tag will be created based on tag information read from the device and linked to asset.
For all connected sensors an asset will be created with the serial number of the sensor and an instrumentation with the sensor tag. The sensor assets are assigned to the Liquilline as child assets. The tag is linked to the corresponding asset.
Configuration for Value
With Modbus devices, measured values are stored in specific registers. The following Modbus information from the field device must be available for configuration and varies for each device type:
- Modbus command
- register number
- data type
- Netilion unit code (Value service only)
Modbus configurations are imported as a file on field gateway / device page created above. The format is json and requires the file extension mbconf.
{
"config_version": 1,
"config_type": "specifications",
"configuration": {
<see chapter value service related below>
}
}
}
file name e.g.: example.mbconf
Within next 20 minutes the edge device will read the Modbus configuration and collect data. With configuration changes we have the same behavior.
Value service related
The following example shows the configuration of a measured value:
- Modbus command: Input
- register number: 210
- data type: Float
- byte order: 1-0-3-2
- Netilion unit code: degree Celsius
{
"config_version": 1,
"config_type": "specifications",
"configuration": {
"config.modbus_3_210": {
"value": "0;Temperature;degree_celsius;1;10"
}
}
}
The configuration key is defined as: config.modbus_<modbus command number>_<register number>
from our example: config.modbus_3_210
modbus command number | |
3 | Read Holding Register |
4 | Read Input Register |
register number |
0 to 65535 |
The configuration value is defined as:
<channel number>;<value name>;<netilion unit code>;<endpoint>;<datatype>
from our example: 0;Temperature;degree_celsius;1;10
Item | Value | Description | |
<channel number> | [0-8] |
0 : assign the read value to the Modbus device itself [1-8]: Channel number of the connected sensors |
|
<value name> | [a-z][A-Z][0-9][_.-] | displayed value name in Netilion | |
<Netilion unit code> | [a-z][0-9][_] | Code defined on Netilion API endpoint Unit, see appendix Netilion_API_Units.csv | |
<endpoint> | 1 | used for Netilion Value | |
<datatype> | 2 | Signed 8 | |
3 | Unsigned 8 | ||
4 | Signed 16 | ||
5 | Unsigned 16 | ||
6 | Signed 32 | ||
7 | Unsigned 32 | ||
8 | Signed 64 | ||
9 | Unsigned 64 | ||
10 |
Float (32 bit Float) |
||
11 |
Double (64 bit Float) |
||
13 | DateTime* |
*The DateTime format is based on Liquiline platform. In case the device uses another formatting for date and time SGC500 does not support this.
Status information
Each Modbus configuration will be checked from the edge and a status provided. The status information is stored in the same file in which the configurations are made. They are available via export functionality on field gateway / device page.
The list below shows possible status information:
status | description |
OK | Configuration is OK and value can be read from edge device. |
UNDEFINED | The related configuration is new or has changed and the edge did not process the configuration yet. |
error.modbus_variable_not_mapped_in_liquiline | No value is assigned to this Modbus variable in the Liquiline. |
error.invalid_pv_name_specified | Process variable name contains invalid characters. Process value cannot be written to Netilion. |
error.invalid_pv_name_size | PV name to long |
error.pv_name_not_unique_in_channel_scope | Process Variable name is not unique in the channel scope. In Netillion the process variable contains data from all inputs with same name. |
error.channel_and_pv_name_config_error | Invalid format of the configuration value. This Modbus configuration item is ignored by the FieldEdge. |
error.invalid_modbus_command_number | Not a valid Modbus command number used. |
error.invalid_modbus_register_number | Modbus register number is not in the allowed range and cannot be processed. |
error.invalid_modbus_variable | Invalid Modbus variable name. |
error.invalid_channel_number | Channel not in range 0-8 or not a number. |
error.invalid_netilion_unit_code | Not a valid Netilion unit code is used. |
error.invalid_netilion_unit_code_size | Unit code to long. |
error.invalid_endpoint | Not a valid endpoint is used. |
error.invalid_datatype | Not a valid datatype is used. |
error.invalid_modbus_config | Unknown configuration key prefix used. |
error.invalid_modbus_config_key_size | Modbus key size has not the correct number of items. |
error.invalid_modbus_config_value_size | Modbus value size has not the correct number of items. |
error.config_not_supported | Configuration not valid for generic Modbus device. |
error.generic_config_not_supported | Unknown generic Modbus parameter. |
error.generic_config_serial_number_issue | Invalid serial number size. |
error.generic_config_tag_issue | Invalid tag size. |
error.generic_config_byte_order_issue | Invalid byte order configured. |
error.generic_config_endpoint_not_unique | Endpoint is configured more than once. |
Note: The listed checks are only related to configurations issues. Problems that may occur during the register query are not listed. The status would still be OK.
To see the correct unit symbols open excel and import the csv file.