F151_WRT

Écrire dans la mémoire des modules intelligents

Cette instruction écrit les données dans la mémoire partagée d’un module intelligent.

Paramètres

Entrée

s1_BankSlot (WORD, INT, UINT)

Indique le numéro du banc/slot dans la mémoire partagée du module intelligent

s2_Start (WORD, INT, UINT)

Adresse de départ des données de la mémoire partagée de l’unité centrale

n_Number (INT)

Indique le nombre de mots qui doivent être écrits vers la mémoire partagée

d_Start (WORD, INT, UINT)

Indique l’adresse de départ dans le module intelligent pour sauvegarder les données écrites (adresse de destination)

Remarques

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

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si s1_BankSlot est en dehors de l’intervalle indiqué

  • Si les données lues sont en dehors de la zone de d

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si s1_BankSlot est en dehors de l’intervalle indiqué

  • Si les données lues sont en dehors de la zone de d

Exemple

En-tête du POU

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

Corps du POU

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.

  1. N° de connecteur
  2. CPU
  3. Unité intelligente
  4. 5 mots

Corps en LD

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

Corps en ST

IF start then
    F151_WRT( s1_BankSlot:= SlotNo,
         s2_Start:= CPUDataToWrt[0],
         n_Number:= NoWordsToWrite,
         d_Start:= DestinationAddr);
END_IF;

Modifié le : 2021-08-09Commentaires sur cette pageAssistance téléphonique