WRITE_VAR: scrittura di dati in un dispositivo Modbus
Il blocco funzione WRITE_VAR scrive i dati in un dispositivo esterno nel protocollo Modbus.
WRITE_VAR - Descrizione specifica del parametro
Ingresso |
Tipo |
Commento |
---|---|---|
ObjType |
ObjectType |
ObjType descrive il tipo di oggetto da scrivere (MW, Q). |
FirstObj |
DINT |
FirstObj è l'indice del primo oggetto da scrivere. |
Quantity |
UINT |
Quantity è il numero di oggetti da leggere: o1...123: registri (tipo MW) o1...1968: bit (tipo Q) |
Buffer |
POINTER TO BYTE |
Indirizzo del puntatore all'array che contiene i dati da scrivere nel dispositivo di destinazione. L'array deve essere uguale o maggiore dei dati che devono essere scritti. Ad esempio, la scrittura di 4 registri richiede un array di 4 parole e la scrittura 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 scritti nel dispositivo di destinazione. È buona prassi collegare la Quantity di dati definita da scrivere nella dichiarazione del buffer come spiegato nel seguente esempio.
|
INCOMPATIBILITÀ DEI DATI SCAMBIATI |
Verificare che i dati scambiati siano compatibili perché gli allineamenti della struttura dati non sono gli stessi per tutti i dispositivi. |
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature. |
Questo esempio mostra l'implementazione del blocco funzione WRITE_VAR in combinazione con il blocco funzione ADDM per scrivere 10 uscite (bobine) a partire dall'indirizzo 0 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.