Controllare il bit RUN/IDLE per lo stato di comunicazione ciclica
Questa istruzione FP controlla lo stato della comunicazione ciclica leggendo il bitRUN/IDLE di ciascun nodo registrato dalla tabelle dei numeri di nodo e memorizza i valori nella variabile di uscita del tipo FP_ETHERNETIP_STATE_TABLE_DUT.
Uscita
Destinazione in cui viene scritto il dato
Bit corrispondente al numero di nodo di FP7 la cui connessione è registrata. Quando le seguenti due condizioni vengono soddisfatte, passa a TRUE, in altre condizioni passa a FALSE.
La comunicazione con il nodo target (FP7) viene eseguita normalmente.
La comunicazione con tutti i nodi ad eccezione di FP7 viene eseguita normalmente se il nodo target (FP7) è in Modo RUN.
se l'area di lettura supera l'intervallo utilizzabile
se l'istruzione viene eseguita in un programma di interrupt
se l'area di lettura supera l'intervallo utilizzabile
se l'istruzione viene eseguita in un programma di interrupt
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;
dutNodes_RunIdleNodeTable: FP_ETHERNETIP_STATE_TABLE_DUT;
END_VAR
Quando la variabile bEnable è impostata su TRUE, la funzione viene eseguita.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_VAROUT,,dutNodes_RunIdleNodeTable,30,2,32,4,);
B(B_CONTACT,,bEnable,4,1,6,3,);
B(B_F,FP_ETHERNETIP_GET_STATE_TABLE_RUN_IDLE!,,8,0,30,4,,?DEN?AENO?Cd_dutStateTable);
L(1,2,4,2);
L(6,2,8,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF (bEnable) then
FP_ETHERNETIP_GET_STATE_TABLE_RUN_IDLE(d_dutStateTable => dutNodes_RunIdleNodeTable);
END_IF;