READ_VAR: lettura di dati da un dispositivo Modbus

Descrizione della funzione

Il blocco funzionale READ_VAR legge i dati da un dispositivo esterno nel protocollo Modbus.

Rappresentazione grafica

G-RU-0010455.2.gif-high.gif

 

 

READ_VAR - Descrizione specifica del parametro

Ingresso

Tipo

Commento

ObjType

ObjectType

ObjType è il tipo di oggetto da leggere (MW, I, IW, Q).

FirstObj

DINT

FirstObj è l'indice del primo oggetto da leggere.

Quantity

UINT

Quantity è il numero di oggetti da leggere:

o1...125: registri (tipi MW e IW)

o1...2000: bit (tipi I e Q)

Buffer

POINTER TO BYTE

Indirizzo del puntatore all'array che contiene i dati ricevuti che sono stati letti dal dispositivo di destinazione. L'array deve essere uguale o maggiore dei dati che devono essere letti. Ad esempio, la lettura di 4 registri richiede un array di 4 parole e la lettura di 32 bit richiede un array di 2 parole o 4 byte, nei quali ciascun bit è impostato sul valore corrispondente del dispositivo remoto. È necessario utilizzare la funzione ADR per passare l'indirizzo del primo byte dell'array (vedere il grafico CFC nell'esempio).

NOTA: Per evitare la violazione di accesso alla memoria causata da un accesso puntatore non valido (fuori limiti), occorre accertarsi che la dimensione dell'array collegato all'ingresso Buffer sia uguale o superiore ai dati che verranno ricevuti dal dispositivo di destinazione. È buona prassi collegare la Quantity di dati definita da leggere nella dichiarazione del buffer come spiegato nel seguente esempio.

G-SE-0068765.1.gif-high.gif

 

 

I parametri di ingresso e di uscita comuni a tutti i blocchi funzionali della libreria PLCCommuni­cation sono descritti in altre sezioni.

Esempio

Questo esempio mostra l'implementazione del blocco funzione READ_VAR in combinazione con il blocco funzione ADDM per leggere due registri a partire dall'indirizzo 1 di uno slave Modbus. Lo slave Modbus è specificato con indirizzo 8 e deve essere accessibile tramite l'interfaccia seriale 1. Un presupposto è che Modbus Manager  sia configurato come master nell'interfaccia di linea seriale 1.

Questa figura mostra la dichiarazione e l'utilizzo della funzione READ_VAR:

G-SE-0005663.2.gif-high.gif