F150_READ

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.

Paramètres

Entrée

s1_BankSlot (WORD, INT, UINT)

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

s2_Start (WORD, INT, UINT)

Indique l’adresse de départ dans la mémoire partagée du module intelligent (adresse source)

n_Number (INT)

Indique le nombre de mots qui doivent être lus

d_Start (WORD, INT, UINT)

Adresse de départ dans l’unité centrale pour sauvegarder les données lues (adresse de destination)

Remarques

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é.

    1.  (1) Octet de poids fort
    2.  (2) Octet de poids faible
  • 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.).

    1.  (1) Octet de poids fort
    2.  (2) Octet de poids faible
   
 

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_Start

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_Start

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#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

Corps du POU

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.

  1.  (1) Numéro de connecteur
  2.  (2) Unité intelligente
  3.  (3) CPU
  4.  (4) 4 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_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

Corps en ST

IF start then
    F150_READ( s1_BankSlot:= SlotNo,
         s2_Start:= AddrDataToRead,
         n_Number:= NoWordsToRead,
         d_Start:= DestAddrCPU[0]);
END_IF;

Modifié le : 2024-10-21Commentaires sur cette pageAssistance téléphonique