F152_RMRD

Lire des données de la station esclave

Cette instruction lit les données d’un module intelligent de la station esclave MEWNET-F.

Paramètres

Entrée

s1_Control (DWORD)

Sauvegarde les données de contrôle pour la configuration maître/esclave

s2_Start (WORD, INT, UINT)

Adresse de départ de la zone mémoire à lire

n_Number (INT)

Nombre de mots qui doivent être lus (32 mots max.)

d_Start (WORD, INT, UINT)

Zone de départ de 16 bits dans laquelle les mots lus sont sauvegardés (voir F153)

Les variables s2_Start et d_Start doivent être du même type de données.

Remarques

  • Il n’est pas possible d’exécuter plusieurs instructions F152_RMRD et F153_RMWT en même temps. Le programme doit être configuré de manière à ce que ces instructions F152_RMRD/F153_RMWT soient exécutées lorsque le drapeau autorisant l’exécution de l’instruction sys_bIsMewnetFNotActive est TRUE.

    sys_bIsMewnetFNotActive

    0 : Exécution non autorisée (une instruction F152_RMRD/F153_RMWT est en cours d’exécution)

    1 : Exécution autorisée

  • L’instruction F152_RMRD ne fait qu’accepter une demande. Le traitement réel est exécuté à la fin de la scrutation. Le drapeau de fin d’exécution de l’instruction F152_RMRD/F153_RMWT (R9036) peut être utilisé pour vérifier si l’instruction a été exécutée.

    sys_bIsMewnetFError

    0 : Exécution terminée normalement

    1 : Terminée avec une erreur (code de l’erreur sauvegardé dans sys_wMewnetFErrorCode)

    sys_wMewnetFErrorCode

    Si une erreur apparaît lorsque la transmission est terminée (sys_bIsMewnetFError (passe à TRUE et reste TRUE) , le contenu de l’erreur (code de l’erreur) est sauvegardé.

    Code d’erreur (HEX)

    Description

    16#5B

    Temps d’attente dépassé (pas de module intelligent trouvé à l’endroit indiqué)

    16#68

    Pas de mémoire (pas de mémoire trouvée à l’adresse indiquée)

    16#71

    Temps d’attente d’envoi de la réponse dépassé

    16#72

    Temps d’attente dépassé, mémoire tampon d’envoi pleine

    16#73

    Erreur réponse hors délai

  • Le code d’erreur 16#71–16#73 signifie que la communication a été interrompue après que le temps d’attente spécifié a été dépassé. Le temps d’attente peut être défini de 10,0ms à 81,9s (unités de 10ms) à l’aide du registre système 32. La valeur par défaut est de 2 secondes.

  • s1 sauvegarde les données de contrôle pour la configuration des stations maîtres et esclaves du réseau. n mots sont lus à partir de l’adresse de la mémoire partagée du module intelligent, spécifiée par s2_Start. Le résultat est sauvegardé dans d.

    Caractéristiques de s1_Control :

    1.  (1) Mot de poids fort s1
    2.  (2) Bit
    3.  (3) Mot de poids fort s1
    4.  (4) N° de banc (16#0016#FF si un banc doit être spécifié, sinon 16#00)
    5.  (5) N° de connecteur (16#0016#1F, FP3 : 16#0016#17)
    6.  (6) Mot de poids faible s1
    7.  (7) Mot de poids faible s1
    8.  (8) N° de la station maître (16#0116#04)
    9.  (9) N° de la station esclave (16#0116#20)
Conseil

Module intelligent avec banc de mémoire : Module mémoire des données FP3

Référence : AFP32091 AFP32092

Drapeaux d’erreur

sys_bIsOperationErrorHold
  • Si les données de contrôle s1_Control sont en dehors de l’intervalle indiqué.

  • Si aucune unité maître MEWNET-F n’a été trouvée.

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

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si les données de contrôle s1_Control sont en dehors de l’intervalle indiqué.

  • Si aucune unité maître MEWNET-F n’a été trouvée.

  • Si les données lues sont en dehors de la zone de s2_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.

  1.  (1) Station maître 1
  2.  (2) Données de contrôle = 16#A0105
  3.  (3) Module intelligent (mémoire partagée)
	VAR
		Start: BOOL:=FALSE;
		ControlData: DWORD:=16#000A0105;
			(*No bank, 
slot no. 10, 
Master station 1, 
Slave station 5*)
		StartingAddress: WORD:=0;
		NoWordsWrite: INT:=5;
		WordsWritten: ARRAY [0..4] OF WORD:=[5(0)];
	END_VAR

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,F152_RMRD,,11,1,20,8,,?DEN?D@'s1'?Ds2?Dn?Dd?AENO);
B(B_CONTACT,,Start,5,1,7,3,);
B(B_VARIN,,ControlData,9,3,11,5,);
B(B_VARIN,,StartingAddSlave,9,4,11,6,);
B(B_VARIN,,NumberWordsRead,9,5,11,7,);
B(B_VARIN,,WordsRead[0],9,6,11,8,);
L(1,0,1,8);
L(1,2,5,2);
L(7,2,11,2);
L(11,2,11,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

If (Start) Then
    F152_RMRD(s1_Control := ControlData,
              s2_Start := StartingAddress,
              n_Number := NoWordsWrite,
              d_Start := WordsRead[0]);
End_if;

Modifié le : 2024-03-07Commentaires sur cette pageAssistance téléphonique