Skip to content

Latest commit

 

History

History
61 lines (45 loc) · 3.03 KB

README.md

File metadata and controls

61 lines (45 loc) · 3.03 KB

Modbus Simulator CLI

Reliability Rating Security Rating Bugs Vulnerabilities Coverage

Modbus simulator CLI is a high-performance modbus TCP server with customizable simulation

Please see the project website for documentation

Screenshot

Features

  • High performance TCP Server
  • 100% Kotlin code - JVM (Multiplatform)
  • Ability to associate memory registers with symbols (variable names)
  • Ability to create custom simulation which can during runtime set, clear variables, execute math operations over registers, deal with specific timing requirements
  • Available as CLI tool or as docker image

Registers

The table below shows the supported registers and which datatype and simulation operation can be performed for each register.

Register Datatype Operations
Coils (0x) BOOL Set, IfEqual, IfGreater, IfLess, Toggle
Input register (1x) BOOL Set, IfEqual, IfGreater, IfLess
Discrete Input (3x) INT16 Set, Add, Sub, Random, Linear, Csv, IfEqual, IfGreater, IfLess
Holding Registers (4x) INT16, UINT16, FLOAT32 Set, Add, Sub, Random, Linear, Csv, IfEqual, IfGreater, IfLess

Quick Start

  1. Compile with gradle and generate fat Jar
./gradlew shadowJar
  1. Run it with "-sr" argument which is the most basic simulation, consisting in generating random values each time a read operation is performed.
java -jar build/libs/modbus-simulator-cli-1.0-SNAPSHOT-all.jar -sr

For customization options check full documentation

Quick Start (for Docker)

  1. Pull the Modbus Simulator
docker pull paulorb/modbus-simulator-cli
  1. Run the Modbus Simulator
docker run --rm -p 5002:5002 paulorb/modbus-simulator-cli -sr

Author

Contact me on LinkedIn