Funzioni Standard

Il protocollo Modbus definisce un set di funzioni standard per la comunicazione tra client e server, ognuna identificata da un codice numerico. Queste funzioni permettono di leggere o scrivere dati in vari tipi di registri e coil, offrendo flessibilità per diverse applicazioni industriali.

Codice funzione

Nome Funzione

Descrizione

0x01

Read Coils

lettura di coil digitali (bit)   

0x02

Read Discrete Inputs

lettura di ingressi digitali (bit)

0x03

Read Holding Registers

lettura di registri di holding (16 bit)

0x04

Read Input Registers

lettura di registri di input (16 bit)

0x05

Write Single Coil

scrittura di un singolo coil digitale

0x06

Write Single Register

scrittura di un singolo registro di holding (16 bit)

0x07

Read Exception Status

lettura dello stato di eccezione

Oltre a queste, esistono funzioni più avanzate come la scrittura multipla di coil o registri, diagnostica, e altro, non utilizzate nel nostro progetto per mantenere semplicità ed efficienza.


Struttura di un Frame RTU

Ogni frame Modbus RTU è composto da:

Indirizzo Slave (1 byte)

Codice Funzione (1 byte)

Dati (N byte variabile)

CRC (2 byte)


Gestione degli errori ( execption response)

Quando un dispositivo slave non può eseguire la richiesta, risponde con un messaggio di eccezione. AL struttura del messaggio di Execption e':

Indirizzo Slave (1 byte)

Codice Funzione + 0X80 (1 byte)

Codice Eccezione (1 byte)

CRC (2 byte)

I codici di Eccezione sono:

Codice

Nome

Descrizione

0x01

Illegal Function                  

La funzione richiesta non è implementata nel server

0x02

Illegal Data Address             

L’indirizzo non esiste tra quelli implementati

0x03

Illegal Data Value               

Il valore del dato non è nell’intervallo richiesto

0x04

Slave Device Failure            

Il server non può eseguire la funzione richiesta