Recevoir des données (liaison MEWNET)
Cette instruction reçoit des données d’une autre station via des modules de liaison dans un réseau.
Entrée
Zone de 32 bits de sauvegarde des données de contrôle
Type d’opérandes source pour sauvegarder les données dans la station de destination. Sélectionnez la zone en définissant l’adresse 0 (par ex. DT0 ou WR0, ...) (zone de données dans la station source)
Adresse de départ de la zone 16 bits pour les opérandes source spécifiées par s2_AdrType (zone de données dans la station source)
Adresse de départ de la zone 16 bits pour sauvegarder les données reçues (zone de données dans la station de destination). Doit être une constante
Les variables s2_AdrType, s2_AdrOffs et d_Start doivent être du même type de données.
Caractéristiques de s1_Control :
Octet de poids fort de s1 |
Octet de poids faible de s1 |
|
---|---|---|
1. N° de liaison (LK : 1 à 3, la station elle-même) |
1. Transfert de mots |
|
Possibilité de connecter jusqu’à 3 unités de liaison à 1 unité centrale. |
F = 0 |
Transfert de mots |
n2 = 0 |
Transfert du mot lorsque "0" est défini |
|
Parmi les 3 unités de liaison, LK sélectionne l’unité de liaison source. |
n1 = 11–16 |
Indique le nombre de mots qui doivent être envoyés |
2. N° de la station de liaison (UN : 1 à 63, une autre station) |
2. Transfert de bits |
|
Possibilité de connecter jusqu’à 63 stations à 1 unité de liaison. |
F = 1 |
Transfert de bits |
UN sélectionne le numéro de station de destination |
n2 = 0–15 |
N° du bit de destination |
n1 = 0–15 |
N° du bit source |
Pour en savoir plus, voir le manuel technique du module intelligent correspondant.
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
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
La fonction est exécutée lorsque la variable start est sur TRUE.
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;