Daten empfangen (MEWNET-Link)
Dieser Befehl empfängt Daten von einem anderen Teilnehmer über Verbindungseinheiten im Netz.
Eingang
32-Bit-Speicherregister für die Steuerdaten
Typ der Quelloperanden zum Speichern von Daten in der Zielstation. Vergewissern Sie sich diesen Bereich zu wählen, indem sie die Adresse auf 0 setzen (z.B. DT0 oder WR0, ...). (Datenbereich an der Quellstation)
16-Bit-Startbereichsadresse für den in s2_AdrType (Datenbereich an der Quellstation) angegebenen Quelloperanden
16-Bit-Startbereichsadresse zum Speichern der empfangenen Daten (Datenbereich an der Zielstation), muss eine Konstante sein
Die Variablen s2_AdrType, s2_AdrOffs und d_Start müssen vom gleichen Datentyp sein.
Spezifikationen von s1_Control:
s1 höherwertiges Byte |
s1 niederwertiges Byte |
|
---|---|---|
1. Auswahl der Link-Nr. (LK: 1–3, die Station selbst) |
1. Worttransfer |
|
Bis zu 3 Koppelmodule können mit einer CPU verbunden werden. |
F = 0 |
Wortdateneinheitsselektion |
n2 = 0 |
Das Wort wird transferiert wenn "0" gesetzt ist. |
|
Dieses Koppelmodul (LK) wählt das Quellkoppelmodul der 3 aus. |
n1 = 11–16 |
Anzahl der zu sendenden Worte |
2. Adresse des empfangenden Koppelmoduls (UN: 1–63) |
2. Bittransfer |
|
Bis zu 63 Adressen können mit einem Koppelmodul verbunden werden. |
F = 1 |
Bittransfer |
Diese (UN) legt die Koppelstellenadresse des empfangenden Moduls fest. |
n2 = 0–15 |
Bitnummer im Zielbereich |
n1 = 0–15 |
Bitnummer im Quellbereich |
Weitere Informationen und Programmbeispiele entnehmen Sie bitte der technischen Spezifikation zum jeweiligen Spezialmodul.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
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
Wenn die Variable start auf TRUE gesetzt wird, wird die Funktion ausgeführt.
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;