-
Notifications
You must be signed in to change notification settings - Fork 12
Home
The Wiki documents properties and application of a lightweight MODBUS implementation in STM8 eForth. A binary for the C0135 4-Relay-Board is provided. For using this firmware no knowledge of Forth is required. Instead it provides powerful features that can be used to jump-start Forth programming!
The MODBUS implementation covers basic FCs and implements a subset of MODBUS V1.1b that can be used to create simple MODBUS servers (e.g. 2-chip sensor nodes, I/O boards etc).
Using STM8 Forth for MODBUS has many advantages: while the implementation is extraordinarily compact it gives applications access to features like independent I/O-logic execution in the background, an on-line interpreter, interactive debugging or on-line compilation of control logic.
MBSERVER
contains MODBUS function plug-ins with the following function codes (FC):
FC | Description | Support |
---|---|---|
1 | Read Coils | implemented |
2 | Read Discrete Inputs | implemented |
3 | Read Holding Registers | implemented |
4 | Read Input Registers | implemented |
5 | Write Single Coil | implemented |
6 | Write Single (Holding) Register | implemented |
15 | Write Multiple Coils | implemented |
16 | Write Multiple Registers | implemented |
The architecture is "layered" and very simple:
Layer | Source file | Description |
---|---|---|
5 |
C0135/board.fs or main.fs
|
configuration and application layer |
4 | MBSERVER |
MODBUS FC plug-ins |
3 | MBPROTO |
MODBUS protocol layer with FC plug-ins and action hooks (mbpre , mbact ) |
2 | UARTISR |
buffered UART communication |
1 | BUSCTRL |
bus access (i.e. RS485 direction control) |
0 | STM8 eForth | lightweight interactive multi-tasking OS with interpreter and compiler |