Lire les données de modules intelligents
Cette fonction permet de lire les données de la mémoire partagée d’un module intelligent.
Entrée
Indique le numéro du banc/connecteur dans la mémoire partagée du module intelligent
Indique l’adresse de départ dans la mémoire partagée du module intelligent (adresse source)
Indique le nombre de mots qui doivent être lus
Adresse de départ dans l’unité centrale pour sauvegarder les données lues (adresse de destination)
Les données en mots (n_Number) sauvegardées dans la mémoire partagée du module (ou de la carte) intelligent désigné par s1_BankSlot1 sont lues à partir de l’adresse indiquée par s2_Start et sauvegardées dans la zone de l’unité centrale, indiquée par d_Start.
Le nombre d’arguments de variables aux entrées est limité par la disponibilité des registres d’index de l’automate.
Définir s1_BankSlot
Module intelligent sans banc de mémoire
Indiquez le numéro du connecteur dans lequel le module intelligent cible a été installé.
Module intelligent avec banc de mémoire
Indiquez le numéro du connecteur (constante hex.) dans lequel le module intelligent cible a été installé et le numéro du banc (constante hex.).
Nom |
Numéro de commande |
|
Module mémoire des données FP3 |
AFP32091 AFP32092 |
|
Module mémoire des données FPS |
AFPG201 |
Si s1_BankSlot est en dehors de l’intervalle indiqué
Si les données lues sont en dehors de la zone de d_Start
Si s1_BankSlot est en dehors de l’intervalle indiqué
Si les données lues sont en dehors de la zone de d_Start
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.
VAR
Start: BOOL:=FALSE;
(*activates the function*)
SlotNo: WORD:=16#03;
(*if start is TRUE, this value
gets 2 words from the address
1 from the unit-slot 0*)
AddrDataToRead: INT:=19;
NoWordsToRead: INT:=4;
DestAddrCPU: ARRAY [0..3] OF INT:=[4(0)];
(*Starting address in CPU to store data read*)
END_VAR
Cette fonction lit 4 mots des données sauvegardées dans les adresses à partir de l’adresse 19 spécifiée dans AddrDataToRead de la mémoire partagée du module intelligent (situé dans le connecteur 3). Puis, elle les sauvegarde dans le tableau DestAddrCPU, lorsque Start est TRUE.
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,F150_READ!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
B(B_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,NoWordsToRead,11,4,13,6,);
B(B_VARIN,,NoWordsToRead,11,5,13,7,);
B(B_VARIN,,DestAddrCPU[0],11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
L(9,3,13,3);
L(1,3,7,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF start then
F150_READ( s1_BankSlot:= SlotNo,
s2_Start:= AddrDataToRead,
n_Number:= NoWordsToRead,
d_Start:= DestAddrCPU[0]);
END_IF;