Écrire dans la mémoire des modules intelligents
Cette instruction écrit les données dans la mémoire partagée d’un module intelligent.
Entrée
Indique le numéro du banc/slot dans la mémoire partagée du module intelligent
Adresse de départ des données de la mémoire partagée de l’unité centrale
Indique le nombre de mots qui doivent être écrits vers la mémoire partagée
Indique l’adresse de départ dans le module intelligent pour sauvegarder les données écrites (adresse de destination)
Cette fonction permet d’écrire les mots (n_Number) des données initiales de la zone de l’unité centrale indiquée par s2_Start vers l’adresse spécifiée par d_Start de la mémoire partagée du module intelligent désigné par s1_BankSlot.
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 slot dans lequel le module intelligent cible a été installé.
Module intelligent avec banc de mémoire
Indiquez le numéro du slot (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
Si s1_BankSlot est en dehors de l’intervalle indiqué
Si les données lues sont en dehors de la zone de d
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#0D;
(*if start is TRUE, this value
will be written to the address
1 from the unit-slot 0*)
CPUDataToWrt: ARRAY [0..4] OF INT:=[5,10,15,20,25];
NoWordsToWrite: INT:=5;
DestinationAddr: INT:=0;
END_VAR
Cinq mots des données définies dans CPUDataToWrt sont écrits dans les adresses à partir des adresses de 0 à 4 de la mémoire partagée du module intelligent (situé dans le connecteur 0) 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_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,CPUDataToWrt[0],11,4,13,6,);
B(B_VARIN,,NoWordsToWrite,11,5,13,7,);
B(B_VARIN,,DestinationAddr,11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
B(B_F,F151_WRT!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
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
F151_WRT( s1_BankSlot:= SlotNo,
s2_Start:= CPUDataToWrt[0],
n_Number:= NoWordsToWrite,
d_Start:= DestinationAddr);
END_IF;