+++
title = "Modbus"
weight = 4
categories = "Modbus"
+++

# Modbus - Documentation

## Common

The controller exposes a Modbus 'Master' at the specified TCP interface on port 502.

There are dedicated registers for the VFD, PIDs and internal values.

## System Registers

| Name | Component ID  | Address | RW |  Function Code | Value |Register Description|
|------|----------|----|----|----|----|-------|
| System | 1 | 9 | -W | 0x6 | 1 | Print Modbus Queue  |
| System | 1 | 9 | -W | 0x6 | 2 | Print Component Modbus Registers  |
| System | 1 | 100 | -W | 0x6 | 1 | Reset Controller  |
| System | 1 | 19 | -W | 0x6 | 1 | Print PID controller states  |

**Remarks**

- Implementation for these calls : short ModbusBridge::loop() ./ModbusBridge.cpp
- It requires a USB cable connected, with 19200 bauds, 8 bits, no parity and 1 stop bit. You  can use Arduino's 'Serial Monitor' to see the output.

## Component Registers

| Name | ID  | Address | RW |  Function Code | Number Addresses |Register Description|
|------|----------|----|----|----|----|-------|
| Stepper | 601 | 15 | RW | 3 | 4 |  |
| Stepper | 602 | 18 | RW | 3 | 4 |  |
| POT | 400 | 5 | RW | 3 | 1 |  |
| POT | 401 | 6 | RW | 3 | 1 |  |
| POT | 402 | 7 | RW | 3 | 1 |  |
| Pos3Analog | 501 | 8 | RW | 3 | 1 | - Read Position : Address=8(8) -> [Up:1  Middle:0 Down:2] |
