A dedicated control map is required for each Modbus device. However, this control map can be reused for devices of the same type from the same manufacturer. For example, if you have multiple 30C3 converters in your microgrid application, you can use the same control map for all of them.

Required Parameters

name
string
required
The unique name of the control command.Example: getMeasurements
commands
string
required
This contains a list of read or write commands that will be executed when the control command is called upon.Example: measurements1? | measurements2? | measurements3? | measurements4?
Note the difference between read and write commands:
  • Read Commands:
    • Add a ‘?’ after every register to be read.
    • Separate each register with a ‘|’.
  • Write Commands:
    • Place a ‘=’ between the control register and the value to be written.
    • Separate each control register with a ‘|’.
Please refer to the example control map below for more clarity. The control command getMeasurements is essential for every control map for Modbus devices. This command lists all the read registers from the address map that the controller needs to retrieve from the connected Modbus device. These can be individual read registers or grouped as multi-read registers. Other control commands are optional.

Example

modbus_control_map.json
[
	{
    "name": "getMeasurements",
    "commands": "measurements1? | measurements2? | measurements3? | measurements4?"
  },
  {
    "name": "initialize",
    "commands": "control.ports.port1.method = uncontrolled | control.ports.port2.method = constant-voltage | control.ports.port3.method = disabled | control.mode = auto"
  },
  {
    "name": "start",
    "commands": "control.enable = 1"
  },
  {
    "name": "stop",
    "commands": "control.disable = 1"
  },
  {
    "name": "faultReset",
    "commands": "control.fault.reset = 1"
  }
]