La versione 1.1 di EcoStruxure Machine Expert non supporta i controllori M258, LMC058 e LMC078.

WRITE_READ_VARWRITE_READ_VAR: lettura e scrittura dei registri interni su un dispositivo Modbus

Descrizione della funzione

Questa funzione legge e scrive i registri interni (solo di tipo MW) in un dispositivo esterno nel protocollo Modbus. Le operazioni di lettura e scrittura sono contenute in un'unica transazione.

L'operazione di scrittura viene eseguita per prima. La funzione WRITE_READ_VAR può quindi eseguire:

ola lettura di due registri interni consecutivi e l'immediata rilettura dei relativi valori a scopo di verifica

ola scrittura di alcuni registri interni consecutivi e la lettura di altri nell'ambito di un'unica richiesta

Rappresentazione grafica

G-SE-0005963.1.gif-high.gif

 

 

WRITE_READ_VAR - Descrizione specifica del parametro

Ingresso

Tipo

Commento

ObjType

ObjectType

ObjType è il tipo di oggetto da scrivere e da leggere (solo MW).

FirstWriteObj

DINT

FirstWriteObj è l'indice del primo oggetto da scrivere.

WriteQuantity

UINT

WriteQuantity è il numero di oggetti da scrivere:

o1...121: registri (tipo MW)

WriteBuffer

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. È necessario utilizzare la funzione ADR per passare l'indirizzo del primo byte dell'array (vedere il grafico CFC nell'esempio).

FirstReadObj

DINT

ReadFirstObj è l'indice del primo oggetto da leggere.

ReadQuantity

UINT

ReadQuantity rappresenta il numero di oggetti da leggere:

o1...125: registri (tipo MW)

ReadBuffer

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. È 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 le dimensioni dell'array collegato all'ingresso Buffer sia uguale o superiore ai dati che verranno scritti o ricevuti dal dispositivo di destinazione. È buona prassi collegare la Quantity di dati definita da scrivere o 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 funzione delle librerie PLCCommunication sono descritti in altre sezioni.

Esempio

Questo esempio mostra l'implementazione del blocco funzione WRITE_READ_VAR in combinazione con il blocco funzione ADDM per scrivere due registri a partire dall'indirizzo 11 e leggere altri 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.

G-SE-0002101.2.gif-high.gif