Skip to main content

Blocco funzione: ModbusRequest

Biblioteca: IoDrvModbusTCP

Oltre ai comandi Modbus predefiniti definiti sul Canale del server Modbus tab, questo blocco funzione consente di eseguire dinamicamente comandi aggiuntivi nell'applicazione. Tuttavia, per questi comandi creati a livello di programmazione, non esiste alcuna mapping I/O, ma solo intervalli di dati di input/output di tipo ARRAY OF BYTE O ARRAY OF WORD.

Tabella 13. Input (VAR_INPUT)

Nome

Tipo di dati

Valore iniziale

Descrizione

Slave

ModbusTCPSlave

xExecute

BOOL

Fronte di salita: l'azione inizia.

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

xAbort

BOOL

TRUE: L'azione viene interrotta immediatamente e tutti gli output vengono impostati sui loro 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, l'ID dell'unità MODBUS non viene utilizzato (deve essere utilizzato il valore 0xFF).

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

ModbusCommand

ModbusCommand

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

pSendData

POINTER TO BYTE

Puntatore a un buffer con 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 se una richiesta è stata terminata con successo

xBusy

BOOL

FALSE

TRUE mentre la richiesta è in fase di elaborazione

xError

BOOL

FALSE

TRUE se una richiesta è stata terminata con errori

xAborted

BOOL

FALSE

TRUE quando la richiesta è stata annullata dall'utente

ModbusError

MB_ErrorCodes

Errore attuale; definito nel MB_ErrorCodes enumerazione.