Situation

A renewable energy plant needs to provide the direct marketer with the minimum, maximum and average values of the feed power. The renewable energy plant issues a Modbus value containing it’s feed power. The direct marketer requests a Modbus protocol value containing the feed power values. The feed power values need to be computed and provided to the direct marketer via Modbus. Data transmission and computation takes place using an INSYS Smart Device (industrial router) located in the renewable energy plant using a secure VPN connection.

cg ids modbus minmaxavg

Solution

The icom Data Suite running on the INSYS Smart Device (industrial router) will act as a computer of the Modbus value and provide the minimum, maximum and average of the value. The icom Data Suite acts as a Modbus Master and reads the feed power from a Modbus register of the control of the renewable energy plant that acts as a Modbus slave. The icom Data Suite will then compute the minimum, maximum and average of the value. The icom Data Suite will act as a Modbus slave and provide the values to the direct marketer that acts as a Modbus master in a Modbus register.
Please note that the values are computed from the feed power captured over time, i.e. all values acquired in the period will be used for determining the result. The period starts with the start of the acquisition and could be reset by an action if desired.

It is prerequisite that you have access to the web interface of the icom Data Suite.
It is also prerequisite that the INSYS Smart Device (industrial router) is properly configured to establish the VPN connection to the direct marketer as well as the Modbus connection to the control of the renewable energy plant.

Configuring the Modbus Connection to the renewable energy plant

  1. In the Data pointsModbus menu, add a new device () and edit it ():

    • Description: Modbus connection to renewable energy plant

    • Type: select the connection type TCP (TCP/IP) or RTU (serial) depending on the Modbus connection

    • Enter address and port for TCP or the serial parameters for RTU [1]

    • Polling interval: 5

    • Slave address: enter the Modbus slave address of the control of the renewable energy plant

    • Byte order: select as requested by the protocol

  2. Click on Save settings.

  3. In the Data pointsModbus menu in the Data points section, add a new data point () and edit it (): [2]

    • Description: Feed power

    • Type: Holding register [3]

    • Register: 1 [4]

    • Format: Unsigned integer 16 [5]

  4. Click on Save settings.

Configuring the Value Computation

  1. In the ALUFunctions menu, add a new function () and edit it (): [6]

    • Description: Feed power minimum

    • Type: Minimum

    • Capture value over time:

    • Input data points: Check the data point for feed power added above

  2. Click on Save settings.

  3. In the ALUFunctions menu, add a new function () and edit it (): [7]

    • Description: Feed power maximum

    • Type: Maximum

    • Capture value over time:

    • Input data points: Check the data point for feed power added above

  4. Click on Save settings.

  5. In the ALUFunctions menu, add a new function () and edit it (): [8]

    • Description: Feed power average

    • Type: Moving average

    • Capture value over time:

    • Input data points: Check the data point for feed power added above

  6. Click on Save settings.

Configuring the Modbus Connection to the Direct Marketer

  1. In the GatewayModbus menu, add a new device () and edit it ():

    • Description: Modbus gateway to direct marketer

    • Type: TCP

    • Port: 502

    • Slave address: Enter the slave address of the direct marketer [9]

    • Byte order: select as requested by the protocol

  2. Click on Save settings.

  3. In the GatewayModbus menu in the Mappings section, add a new mapping () and edit it (): [10]

    • Data point: function1 - Feed power minimum

    • Type: Holding register

    • Register: Enter a register address for the feed power minimum value

    • Format: Unsigned integer 16

  4. Click on Save settings.

  5. In the GatewayModbus menu in the Mappings section, add a new mapping () and edit it (): [11]

    • Data point: function2 - Feed power maximum

    • Type: Holding register

    • Register: Enter a register address for the feed power maximum value

    • Format: Unsigned integer 16

  6. Click on Save settings.

  7. In the GatewayModbus menu in the Mappings section, add a new mapping () and edit it (): [12]

    • Data point: function3 - Feed power average

    • Type: Holding register

    • Register: Enter a register address for the feed power average value

    • Format: Unsigned integer 16

  8. Click on Save settings.

  9. Activate the profile ().

Troubleshooting

  • View the StatusCurrent values page to check whether the flags receive the feed power request values. If the values are missing/incorrect there, check the configuration of the gateways in the icom Data Suite. If the correct values are displayed there, check the Modbus slave connection in the icom Data Suite.

  • View the appropriate logs in the StatusLog view page (also of the router) to locate possible problems.

Resources

The following ASCII configuration can be taken over using copy & paste. It must be observed that the individual parameters need to be adapted to the own application. Correct numbering must be observed for numbered parameters. Moreover, it must be observed that no existing parameters with the same number will be overwritten. A proper functionality can only be ensured if the opened profile has been created from default settings before.

ASCII configuration
datapoints.modbus.device.add
datapoints.modbus.device[1].active=1
datapoints.modbus.device[1].description=Modbus connection to renewable energy plant
datapoints.modbus.device[1].type=tcp
datapoints.modbus.device[1].ip_address=192.168.101.13
datapoints.modbus.device[1].tcp_port=502
datapoints.modbus.device[1].serial_port=---
datapoints.modbus.device[1].serial_speed=115200
datapoints.modbus.device[1].serial_databits=8
datapoints.modbus.device[1].serial_parity=par_none
datapoints.modbus.device[1].serial_stopbits=1
datapoints.modbus.device[1].polling_interval=5
datapoints.modbus.device[1].slave_address=1
datapoints.modbus.device[1].endianess=big_abcd
datapoints.modbus.device[1].response_timeout=500
datapoints.modbus.device[1].byte_timeout=500
datapoints.modbus.device[1].read_delay=0

datapoints.modbus.device[1].datapoint.add
datapoints.modbus.device[1].datapoint[1].datapoint_active=1
datapoints.modbus.device[1].datapoint[1].datapoint_description=Feed power
datapoints.modbus.device[1].datapoint[1].datapoint_type=holding_register
datapoints.modbus.device[1].datapoint[1].datapoint_register=1
datapoints.modbus.device[1].datapoint[1].datapoint_bit=
datapoints.modbus.device[1].datapoint[1].datapoint_format=uint16

alu.functions.function.add
alu.functions.function[1].active=1
alu.functions.function[1].description=Feed power minimum
alu.functions.function[1].type=min
alu.functions.function[1].datapoint=mdbDp1
alu.functions.function[1].time_based=1

alu.functions.function.add
alu.functions.function[2].active=1
alu.functions.function[2].description=Feed power maximum
alu.functions.function[2].type=max
alu.functions.function[2].datapoint=mdbDp1
alu.functions.function[2].time_based=1

alu.functions.function.add
alu.functions.function[3].active=1
alu.functions.function[3].description=Feed power average
alu.functions.function[3].type=moving_average
alu.functions.function[3].datapoint=mdbDp1
alu.functions.function[3].time_based=1

gateway.modbus.gateway.add
gateway.modbus.gateway[1].active=1
gateway.modbus.gateway[1].description=Modbus gateway to direct marketer
gateway.modbus.gateway[1].type=tcp
gateway.modbus.gateway[1].tcp_port=502
gateway.modbus.gateway[1].serial_port=---
gateway.modbus.gateway[1].serial_speed=115200
gateway.modbus.gateway[1].serial_databits=8
gateway.modbus.gateway[1].serial_parity=par_none
gateway.modbus.gateway[1].serial_stopbits=1
gateway.modbus.gateway[1].slave_address=2
gateway.modbus.gateway[1].endianess=big_abcd

gateway.modbus.gateway[1].mapping.add
gateway.modbus.gateway[1].mapping[1].map_active=1
gateway.modbus.gateway[1].mapping[1].map_datapoint=function1
gateway.modbus.gateway[1].mapping[1].map_type=holding_register
gateway.modbus.gateway[1].mapping[1].map_register=1
gateway.modbus.gateway[1].mapping[1].map_bit=
gateway.modbus.gateway[1].mapping[1].map_format=uint16

gateway.modbus.gateway[1].mapping.add
gateway.modbus.gateway[1].mapping[2].map_active=1
gateway.modbus.gateway[1].mapping[2].map_datapoint=function2
gateway.modbus.gateway[1].mapping[2].map_type=holding_register
gateway.modbus.gateway[1].mapping[2].map_register=2
gateway.modbus.gateway[1].mapping[2].map_bit=
gateway.modbus.gateway[1].mapping[2].map_format=uint16

gateway.modbus.gateway[1].mapping.add
gateway.modbus.gateway[1].mapping[3].map_active=1
gateway.modbus.gateway[1].mapping[3].map_datapoint=function3
gateway.modbus.gateway[1].mapping[3].map_type=holding_register
gateway.modbus.gateway[1].mapping[3].map_register=3
gateway.modbus.gateway[1].mapping[3].map_bit=
gateway.modbus.gateway[1].mapping[3].map_format=uint16

1. Serial parameters, addresses and protocol parameters are available from the manufacturer of the renewable energy plant.
2. This adds a data point that reads the feed power from the control of the renewable energy plant.
3. The type can be taken from the protocol description that should be provided by the renewable energy plant.
4. The register address can also be taken from the protocol description.
5. The value format can also be taken from the protocol description.
6. This adds a function that computes the minimum of a value.
7. This adds a function that computes the maximum of a value.
8. This adds a function that computes the average of a value.
9. Request this address from the direct marketer.
10. This adds a mapping that provides the feed power minimum value in a Modbus register.
11. This adds a mapping that provides the feed power maximum value in a Modbus register.
12. This adds a mapping that provides the feed power average value in a Modbus register.