Modbus TCP Server Docker

The Modbus TCP Server is a simple Modbus server for debugging and simulation.

Docker

docker run --name modbus-server -p 5020:5020 -d oitc/modbus-server
docker run --name modbus-server -p 5020:5020 -d -v $PWD/server_config.json:/server_config.json oitc/modbus-server -f /server_config.json

Docker Compose

    modbus-server:
      container_name: modbus-server
      image: oitc/modbus-server
      restart: always
      command: -f /server_config.json
      ports:
        - 5020:5020
      volumes:
        - ./server.json:/server_config.json:ro

Configuration

An example can be found in the GIT repo: abb_coretec_example.json

Default configuration

{
"server": {
  "listenerAddress": "0.0.0.0",
  "listenerPort": 5020,
  "tlsParams": {
    "description": "path to certificate and private key to enable tls",
    "privateKey": null,
    "certificate": null
    },
  "logging": {
    "format": "%(asctime)-15s %(threadName)-15s  %(levelname)-8s %(module)-15s:%(lineno)-8s %(message)s",
    "logLevel": "DEBUG"
    }
  },
"registers": {
  "description": "initial values for the register types",
  "zeroMode": false,
  "initializeUndefinedRegisters": true,
  "discreteInput": {},
  "coils": {},
  "holdingRegister": {},
  "inputRegister": {}
  }
}

Predefined registers

{
"server": {
  "listenerAddress": "0.0.0.0",
  "listenerPort": 5020,
  "tlsParams": {
    "description": "path to certificate and private key to enable tls",
    "privateKey": null,
    "certificate": null
    },
  "logging": {
    "format": "%(asctime)-15s %(threadName)-15s  %(levelname)-8s %(module)-15s:%(lineno)-8s %(message)s",
    "logLevel": "DEBUG"
    }
  },
"registers": {
  "description": "initial values for the register types",
  "zeroMode": false,
  "initializeUndefinedRegisters": true,
  "discreteInput": {},
  "coils": {},
  "holdingRegister": {
    "123": "0xAABB",
    "246": "0x0101"
  },
  "inputRegister": {}
  }
}

References