FP_ETHERNETIP_REFRESH_OUTPUT

Aggiornare l'uscita EtherNet/IP

Questa istruzione FP aggiorna i dati di uscita per il nodo e il numero di connessione specificati. I dati vengono copiati dalla memoria operativa del PLC bel buffer di invio del PLC.

Parametri

Ingresso

s1_NodeNumber (WORD, INT, UINT)

Numero del nodo dei dati di uscita da aggiornare. Intervallo lista scan: 1–256

Si verifica un errore quando il valore specificato supera l'intervallo lista scan.

La mappa I/O viene utilizzata per inviare dati a un dispositivo target (PLC).

s2_ConnectionNumber (WORD, INT, UINT)

Numero della connessione dei dati di uscita da aggiornare. Intervallo: 1–256

Si verifica un errore quando il valore specificato supera l'intervallo lista scan.

Uscita

d_Result (WORD)

Area di memoria per la memorizzazione dei risultati di aggiornamento. Se questa istruzione viene eseguita in cicli più veloci di RPI, l'aggiornamento dell'uscita potrebbe non essere eseguito.

  • 0: Operazione di aggiornamento completata con successo.

  • 1: Nessun dato ricevuto. Aggiornamento non eseguito.

  • 2: EtherNet/IP non pronto per la comunicazione.

Note

  • Prima di eseguire l'istruzione, controllare se la comunicazione di una determinata connessione funziona normalmente utilizzando FP_ETHERNETIP_GET_STATE_TABLE_RUN.

  • Richiamare questa istruzione dopo che sys_bIsEtherNetIPReady passa a TRUE. Se viene richiamata prima che sys_bIsEtherNetIPReady passi a TRUE, viene restituito un errore che indica che EtherNet/IP non è pronto per la comunicazione.

  • Non eseguire continuamente questa istruzione in una scansione per ridurre il carico di comunicazione.

  • Utilizzare questa istruzione solo per la connessione per la quale l'istruzione viene selezionata come Metodo di aggiornamento in impostazione EtherNet/IP.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se la funzione EtherNet/IP non è utilizzata nella configurazione dell'unità Ethernet.

  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.

  • se la mappa I/O o il nodo/la connessione specificata da s1_NodeNumber e s2_ConnectionNumber non esiste.

  • se il metodo di aggiornamento selezionato per la connessione è diverso da istruzione.

  • se il numero di dati di uscita della connessione specificata è 0.

  • se il numero di dati aggiornati della connessione specificata è 0.

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se la funzione EtherNet/IP non è utilizzata nella configurazione dell'unità Ethernet.

  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.

  • se la mappa I/O o il nodo/la connessione specificata da s1_NodeNumber e s2_ConnectionNumber non esiste.

  • se il metodo di aggiornamento selezionato per la connessione è diverso da istruzione.

  • se il numero di dati di uscita della connessione specificata è 0.

  • se il numero di dati aggiornati della connessione specificata è 0.

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	VAR
		bEnable: BOOL:=FALSE;
		iNodeNumber: INT:=0;
		iConnectionNumber: INT:=0;
		wResult: WORD:=0;
	END_VAR

Corpo del POU

Quando le variabili sys_bIsEtherNetIPReady e bEnable sono impostate su TRUE, la funzione viene eseguita.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 9 ;
        NETWORK_BODY
B(B_VARIN,,iNodeNumber,13,4,15,6,);
B(B_VARIN,,iConnectionNumber,13,5,15,7,);
B(B_VAROUT,,wResult,32,4,34,6,);
B(B_CONTACT,,bEnable,13,1,15,3,);
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,1,7,3,);
B(B_F,FP_ETHERNETIP_REFRESH_OUTPUT!,,15,2,32,7,,?DEN?Ds1_NodeNumber?Ds2_ConnectionNumber?AENO?Cd_Result);
L(1,2,5,2);
L(7,2,13,2);
L(15,2,15,4);
L(1,0,1,9);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

IF (sys_bIsEtherNetIPReady) AND (bEnable) then
    FP_ETHERNETIP_REFRESH_OUTPUT(s1_NodeNumber := iNodeNumber,
                                 s2_ConnectionNumber := iConnectionNumber,
                                d_Result => wResult);
END_IF;

L'ultima revisione: 2024-03-07Feedback su questa paginaPanasonic hotline