Ricevere i dati (link MEWNET)
Questa istruzione riceve il dato da un'altra stazione tramite le unità di link nella rete.
Ingresso
Area a 32 bit per memorizzare il dato di controllo
Tipo degli operandi di origine per la memorizzazione del dato nella stazione di destinazione. Assicuratevi di selezionare l'area impostando l'indirizzo 0 (p.es. DT0 o WR0, ...) (area dati nella stazione di origine)
Indirizzo dell'area a 16 bit iniziale per l'operando di origine specificato in s2_AdrType (area dati nella stazione di origine)
Indirizzo dell'area a 16 bit iniziale per la memorizzazione del dato ricevuto area dati presso la stazione di destinazione, deve essere una costante
Le variabili s2_AdrType, s2_AdrOffs e d_Start devono presentare lo stesso tipo di dato.
Specifiche di s1_Control:
Byte alto di s1 |
Byte basso di s1 |
|
---|---|---|
1. Selezione n. LINK (LK: da 1 a 3, la stazione stessa) |
1. Selezione invio unità word |
|
Fino a 3 unità di link possono essere collegate a 1 CPU. |
F = 0 |
Selezione unità word |
n2 = 0 |
Impostare "0" quando l'unità word è selezionata |
|
Questo (LK) seleziona l'unità di link di origine delle tre. |
n1 = 11–16 |
Specificare il numero di word da inviare |
2. Selezione n. stazione di link (UN: da 1 a 63, un'altra stazione) |
2. Selezione invio unità bit |
|
Fino a 63 stazioni possono essere collegate a 1 unità di link. |
F = 1 |
Selezione unità bit |
Questa (UN) seleziona quindi il n. stazione di destinazione |
n2 = 0–15 |
N. bit di destinazione |
n1 = 0–15 |
N. bit di origine |
Per informazioni dettagliate vedere il relativo manuale tecnico dell'unità intelligente.
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.
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_VARIN,,control_value,7,3,9,5,);
B(B_VARIN,,start_address,7,4,9,6,);
B(B_VARIN,,offset,7,5,9,7,);
B(B_VARIN,,output_value,7,6,9,8,);
B(B_CONTACT,,start,3,2,5,4,);
B(B_F,F146_RECV!,Instance,9,1,17,8,,?DEN?Ds1_Control?Ds2_AdrType?Ds2_AdrOffs?Dd_Start?AENO);
L(1,3,3,3);
L(5,3,9,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Quando la variabile start è impostata su TRUE, la funzione viene eseguita.
VAR
start: BOOL:=FALSE;
(*activates the function*)
control_value: DWORD:=0;
(*32-bit area for storing
control data*)
start_address: WORD:=0;
(*Starting 16-bit area
address for the source
operand specified in s2*)
output_value: WORD:=0;
(*Starting 16-bit area
address for storing data
received*)
offset: INT:=0;
END_VAR
IF start then
F146_RECV( s1_Control:= control_value, s2_AdrType:= start_address, n_AdrOffs:= offset,
d_Start:= output_value);
END_IF;