Configurazione dei dispositivi tramite il canale di servizio

Panoramica

Il master Sercos può utilizzare il Canale di servizio (SVC) per leggere e scrivere IDN e comandi di procedura. La comunicazione tramite l’SVC utilizza il canale in tempo reale, ma è non ciclica. Il tempo di esecuzione tipico di un parametro da 4 byte è circa 10 cicli Sercos. In base alla disponibilità dell’SVC, il tempo di esecuzione può protrarsi in modo considerevole. Siccome in un qualsiasi buffer è possibile mettere in coda fino a 20 comandi di procedura e funzionamenti di lettura e scrittura IDN, il completamento di un dato comando di procedura o funzionamento di lettura e scrittura IDN può richiedere un tempo notevole.

 Vedere Comunicazione non ciclica Sercos tramite RTC per informazioni dettagliate su SVC e la sezione Parametri Sercos per informazioni dettagliate sui comandi di procedura.

Lettura e scrittura dei comandi di procedura

I comandi di procedura sono eseguiti in modo asincrono. Ciò significa che richiamare un comando di procedura non blocca il task. È necessario leggere lo stato del comando di procedura per sapere se è terminato.

Sono due le modalità per eseguire un comando di procedura:

oTramite FC_ExecuteProcedureCommandAsync con indirizzo topologia parametri di ingresso e IDN

oTramite FC_ExecuteProcedureCommandAsyncViaHandle con handle parametri di ingresso e IDN

Valori restituiti possibili:

DINT

Nome (ET_Result)

Descrizione

0

Ok

Comando di procedura eseguito.

8

Pending

Comando di procedura in attesa di esecuzione.

-1

DeviceManagerInvalidDeviceHandle

Il comando di procedura non può essere eseguito.

Solo per chiamata tramite handle.

-2

DeviceManagerNoPhysicalSlaveConnected

Il comando di procedura non può essere eseguito.

-11

TopologicalAddressOutOfBounds

Il comando di procedura non può essere eseguito.

Solo per chiamata tramite indirizzo topologia.

-15

ServiceChannelIdnInvalid

Il comando di procedura non può essere eseguito.

-43

ServiceChannelBusy

Il comando di procedura non può essere eseguito.

-99

UnexpectedFeedback

Il comando di procedura non può essere eseguito.

Sono due le modalità per la lettura dello stato di un comando di procedura:

oTramite FC_ReadProcedureCommandAsync con indirizzo topologia parametro di ingresso

oTramite FC_ReadProcedureCommandAsyncViaHandle con handle parametro di ingresso

I valori restituiti sono gli stessi dell'esecuzione del comando di procedura. La chiamata restituisce lo stato del comando di procedura in elaborazione. Se nessun comando di procedura è in elaborazione, la chiamata restituisce lo stato del comando di procedura successivo nella coda. Un comando di procedura è finito quando il valore restituito non è 8.

Lettura e scrittura di IDN

La lettura e la scrittura di un parametro vengono eseguite in modo asincrono. Ciò significa che il task non è bloccato.

Utilizzare il blocco funzione FB_WriteIDN per scrivere un parametro e il blocco funzione FB_ReadIDN per leggere i valori di un parametro.

Timeout è uno dei parametri di ingresso per FB_WriteIDN e FB_ReadIDN. Il valore di timeout predefinito è 1000000 µs (1 s). Il timeout inizia quando viene attivato il comando lettura o scrittura, non quando viene iniziato nella coda. In base al numero di elementi in coda e al tempo necessario per elaborarli, un comando lettura o scrittura potrebbe raggiungere il timeout anche prima di essere elaborato.