Skip to main content

Blocco funzione: ModbusRichiesta

Biblioteca: IoDrvModbusTCP

Con questo modulo funzione è possibile, oltre a quelli presenti nella tab Canale del server Modbus I comandi Modbus predefiniti possono eseguire dinamicamente comandi aggiuntivi nell'applicazione. Tuttavia per questi comandi generati a livello di codice non esiste alcuna mappatura I/O ma solo aree dati di ingresso/uscita sotto forma di ARRAY OF BYTE o ARRAY OF WORD.

Tabella 13. Ingressi (VAR_INPUT)

Nome

Tipo di dati

Valore iniziale

Descrizione

Slave

Modbus TCP slave

xExecute

BOOL

Fronte di salita: l'azione inizia.

Fronte di discesa: le uscite vengono ripristinate quando si verifica un fronte di discesa prima che il blocco funzione abbia terminato l'azione. Le uscite si comportano come di consueto e vengono resettate solo se l'azione è terminata o è stata interrotta (xAbort), o se si è verificato un errore. In questo caso, i valori di uscita corrispondenti (xDone, xError, iError) esistono alle uscite esattamente per un ciclo.

xAbort

BOOL

TRUE: l'azione viene interrotta immediatamente e tutte le uscite vengono impostate sui valori iniziali.

usiUnitID

UINT

16#FF

L'ID unità viene utilizzato solo per l'inoltro (gateway) a un bus seriale Modbus.

Per TCP/IP, il server MODBUS viene indirizzato tramite l'indirizzo IP. In questo caso non viene utilizzato l'ID unità MODBUS (deve essere utilizzato il valore 0xFF).

Per una connessione seriale, i dispositivi Modbus vengono indirizzati con ID unità da 1 a 247 (0 è utilizzato per gli indirizzi broadcast).

ModbusCommand

ModbusCommand

Il comando Modbus da eseguire. Sono supportati blocchi funzione per l'accesso a bit e parole.

pSendData

POINTER TO BYTE

Puntatore a un buffer con i dati inviati al server.

Per l'accesso al registro, il buffer è di tipo Array[0..ModbusCommand.uiWriteLen - 1] OF WORD. Per l'accesso ai bit, il buffer è di tipo ARRAY[0..ModbusCommand.uiWriteLen / 8] OF BYTE.

pRecvData

POINTER TO BYTE

Puntatore a un buffer in cui vengono scritti i dati ricevuti dal server.

Per l'accesso al registro, il buffer è di tipo ARRAY[0..ModbusCommand.uiReadLen - 1] OF WORD. Per l'accesso ai bit, il buffer è di tipo ARRAY[0..ModbusCommand.uiReadLen / 8] OF BYTE.



Tabella 14. Uscite (VAR_OUTPUT)

Nome

Tipo di dati

Valore iniziale

Descrizione

xDone

BOOL

FALSE

TRUE quando una richiesta è stata conclusa con successo

xBusy

BOOL

FALSE

TRUE finché la richiesta è in elaborazione

xError

BOOL

FALSE

TRUE quando una richiesta è stata conclusa con errori

xAborted

BOOL

FALSE

TRUE quando la richiesta è stata annullata dall'utente

ModbusError

MB_ErrorCodes

Errore attuale; definito nell'enumerazione MB_ErrorCodes.