Leggere i dati dalla stazione slave
Questa istruzione legge i dati dall'unità intelligente specificata della stazione slave MEWNET-F.
Ingresso
Memorizza il dato di controllo per la configurazione master/slave
Indirizzo iniziale dell'area di memoria da leggere
Numero di word da leggere (max. 32 word)
Area a 16 bit iniziale in cui vengono memorizzate le word lette (vedere F153)
Le variabili s2_Start e d_Start devono presentare lo stesso tipo di dato.
Non è possibile eseguire istruzioni F152_RMRD multiple e istruzioni F153_RMWT contemporaneamente. Il programma va impostato in modo tale che queste istruzioni vengano eseguite quando il flag di abilitazione dell'esecuzione dell'istruzione F152_RMRD/F153_RMWT sys_bIsMewnetFNotActive è TRUE.
sys_bIsMewnetFNotActive | 0: Esecuzione non consentita (istruzione F152_RMRD/F153_RMWT in esecuzione) 1: Esecuzione abilitata |
L'istruzione F152_RMRD abilita unicamente una richiesta da accettare. L'effettiva elaborazione viene eseguita al termine della scansione. Il flag di istruzione F152_RMRD/F153_RMWT completata (R9036) può essere utilizzato per confermare l'esecuzione o meno dell'istruzione.
sys_bIsMewnetFError | 0: Completamento normale 1: Conclusa con errore (il codice di errore viene memorizzato in sys_wMewnetFErrorCode) |
sys_wMewnetFErrorCode | Se la trasmissione si è conclusa con un errore (sys_bIsMewnetFError (passa a TRUE e resta TRUE) ), vengono memorizzati i contenuti dell'errore (codice di errore). |
Codice di errore (ESADEC.) |
Descrizione |
---|---|
16#5B |
Errore di timeout (nessuna unità intelligente trovata nella posizione specifica) |
16#68 |
Errore di memoria inesistente (non esiste alcuna memoria nell'indirizzo specificato) |
16#71 |
Errore di timeout invio risposta |
16#72 |
Errore di timeout buffer di invio pieno |
16#73 |
Errore timeout di risposta |
Se il codice di errore è 16#71–16#73, significa che si è verificato un errore di timeout della comunicazione. La durata del timeout può essere modificata entro un intervallo compreso tra 10.0ms e 81.9s (in unità di 10ms) utilizzando l'impostazione del registro di sistema 32. Il valore di default è impostato su 2 secondi.
s1 memorizza il dato di controllo per la configurazione delle unità master e slave nella rete. n word vengono lette a partire dal numero di indirizzo della memoria condivisa nell'unità intelligente specificato da s2_Start. Il risultato viene memorizzato in d.
Specifiche di s1_Control:
Unità intelligente con banco: Unità di memoria dati di espansione FP3
Numero ordine: AFP32091 AFP32092
se il dato di controllo s1_Control eccede il limite dell'intervallo specificato
se non è stata trovata alcuna unità master MEWNET-F
se il dato letto eccede l'area di s2_Start
se il dato di controllo s1_Control eccede il limite dell'intervallo specificato
se non è stata trovata alcuna unità master MEWNET-F
se il dato letto eccede l'area di s2_Start
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
Start: BOOL:=FALSE;
ControlData: DWORD:=16#000A0105;
(*No bank,
slot no. 10,
Master station 1,
Slave station 5*)
StartingAddress: WORD:=0;
NoWordsWrite: INT:=5;
WordsWritten: ARRAY [0..4] OF WORD:=[5(0)];
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_F,F152_RMRD,,11,1,20,8,,?DEN?D@'s1'?Ds2?Dn?Dd?AENO);
B(B_CONTACT,,Start,5,1,7,3,);
B(B_VARIN,,ControlData,9,3,11,5,);
B(B_VARIN,,StartingAddSlave,9,4,11,6,);
B(B_VARIN,,NumberWordsRead,9,5,11,7,);
B(B_VARIN,,WordsRead[0],9,6,11,8,);
L(1,0,1,8);
L(1,2,5,2);
L(7,2,11,2);
L(11,2,11,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (Start) Then
F152_RMRD(s1_Control := ControlData,
s2_Start := StartingAddress,
n_Number := NoWordsWrite,
d_Start := WordsRead[0]);
End_if;