Indice dei contenuti
ToggleQuando si legge il protocollo Modbus, si incontrano sempre alcuni termini confusi, che creano problemi nell'interpretazione del protocollo. In questo articolo forniamo spiegazioni pertinenti per i termini del protocollo Modbus che possono creare confusione.

1. Codice funzione:
I codici funzione sono utilizzati per rappresentare la funzione dei frame di informazione nel protocollo modbus. I codici funzione comunemente utilizzati sono 03, 04, 06, 16, ecc. Tra questi, il codice funzione 03 viene utilizzato per leggere il contenuto del registro di mantenimento e il codice funzione 04 per leggere il contenuto del registro di ingresso (la differenza tra i registri di ingresso e i registri di mantenimento (vedi sotto)), il contenuto del codice funzione 06 serve a preimpostare un singolo registro di mantenimento e il contenuto del codice funzione 16 serve a preimpostare più registri di mantenimento.
2. Registri di ingresso e registri di mantenimento:
Il codice funzione 04 serve a leggere il registro di ingresso, mentre il codice funzione 03 serve a leggere il registro di mantenimento. Molte persone sperano sempre di trovare la differenza tra i due codici funzione quando li vedono. Il registro di mantenimento e l'ingresso Qual è la differenza tra i registri? Il protocollo Modbus è stato originariamente utilizzato per risolvere il problema del protocollo di comunicazione del PLC. Viene utilizzato principalmente per l'ingresso e l'uscita di segnali digitali e analogici. Il cosiddetto registro di ingresso deriva dall'ingresso del segnale analogico, cioè il registro può essere modificato solo dall'estremità dell'ingresso del segnale analogico e l'host non può modificare i dati del registro di ingresso emettendo istruzioni. Il registro di mantenimento viene utilizzato per l'uscita dei segnali analogici. L'host può modificare i dati del registro. In altre parole, per quanto riguarda l'host, il registro di ingresso è di sola lettura, mentre il registro di mantenimento può essere letto e scritto. Quando l'host utilizza le istruzioni del codice funzione 06, 16 per preimpostare il registro di ingresso, il dispositivo restituisce un codice di errore 0x81, ovvero Si è tentato di scrivere su un registro di sola lettura.
3.Formato dell'indirizzo dati in Modbus:
Nel protocollo Modbus compaiono spesso registri simili a 3xxxx e 4xxxx, che rappresentano i tipi di dati supportati dal registro. A titolo di esempio, utilizziamo un elenco e il formato dell'indirizzo dei dati Modbus inizia da 0. Ad esempio, il seguente registro 40009 indica un registro di mantenimento. L'indirizzo del registro è 00 08. Formati di indirizzo dati simili sono spesso utilizzati nel software di configurazione e nei sistemi PLC. .
| Indirizzo di mappatura | codice funzione utilizzato | Tipo di indirizzo | Metodo di accesso | descrivere |
| 0XXXX | 01,05,15 | Uscita discreta | Lettura e scrittura | Ogni volume rappresenta un singolo bit di commutazione |
| 1XXXX | 02 | ingresso discreto | solo lettura | Ogni volume rappresenta un singolo bit di commutazione |
| 2XXXX | 03,04,06,16 | registro in virgola mobile | solo lettura/ lettura-scrittura | Due registri consecutivi a 16 bit rappresentano un numero in virgola mobile |
| 3XXXX | 04 | registro di ingresso | solo lettura | Ogni registro rappresenta un intero senza segno a 16 bit. |
| 4XXXX | 03,06,16 | registro di detenzione | Lettura e scrittura | Ogni registro rappresenta un intero senza segno a 16 bit. |
| 5XXXX | 03,04,06,16 | Caratteri ASCII | Lettura e scrittura | Ogni registro rappresenta due codici ASCII |
4.Modbus RTU/ASCII/TCP:
Il protocollo Modbus è stato originariamente utilizzato per la comunicazione tra controllori logici programmabili (PLC). Grazie alla sua apertura, è ampiamente utilizzato negli strumenti intelligenti di campo. Esistono diverse varianti del protocollo Modbus, le più famose delle quali sono Modbus RTU /I protocolli di comunicazione Modbus ASCII e Modbus TCP. Il protocollo RTU/ASCII si basa sulla comunicazione via porta seriale, mentre il protocollo TCP si basa sulla comunicazione Ethernet.
5.Tabella dei codici di errore Modbus:
Il Modbus dispone di codici funzione, codici di controllo, codici funzione anomali e codici di errore, tra i quali i codici funzione anomali e i codici di errore sono molto facili da confondere. In generale, il codice di funzione anomalo si riferisce al codice di funzione anomalo corrispondente che si verifica quando viene eseguito un determinato codice di funzione. In genere, al codice funzione viene aggiunto 0x80. Ad esempio, il codice di eccezione che appare nel codice funzione 03 è il codice funzione anomalo 0x83. Il codice di funzione anomalo corrispondente al codice funzione 16 è 0x90 e il codice di errore indica la situazione specifica dell'errore. Ad esempio, l'indirizzo del registro non esiste. Sia in lettura che in scrittura, se l'indirizzo del registro non esiste, il codice di errore è 02.