F152_RMRD

Leggere i dati dalla stazione slave

Questa istruzione legge i dati dall'unità intelligente specificata della stazione slave MEWNET-F.

Parametri

Ingresso

s1_Control (DWORD)

Memorizza il dato di controllo per la configurazione master/slave

s2_Start (WORD, INT, UINT)

Indirizzo iniziale dell'area di memoria da leggere

n_Number (INT)

Numero di word da leggere (max. 32 word)

d_Start (WORD, INT, UINT)

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.

Note

  • 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:

    1.  (1) s1 word più significativa
    2.  (2) Bit
    3.  (3) s1 word più significativa
    4.  (4) N. banco (16#0016#FF se occorre specificare un banco, altrimenti 16#00)
    5.  (5) N. di slot (16#0016#1F, FP3: 16#0016#17)
    6.  (6) s1 word meno significativa
    7.  (7) s1 word meno significativa
    8.  (8) N. stazione master (16#0116#04)
    9.  (9) N. stazione slave (16#0116#20)
Tip

Unità intelligente con banco: Unità di memoria dati di espansione FP3

Numero ordine: AFP32091 AFP32092

Flag di errore

sys_bIsOperationErrorHold
  • 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

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • 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

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.

  1.  (1) Stazione master 1
  2.  (2) Dato di controllo = 16#A0105
  3.  (3) Unità intelligente (memoria condivisa)
	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

Corpo LD

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

Corpo ST

If (Start) Then
    F152_RMRD(s1_Control := ControlData,
              s2_Start := StartingAddress,
              n_Number := NoWordsWrite,
              d_Start := WordsRead[0]);
End_if;

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