F385_Positioning_WriteData_Backup

Écrire les paramètres de positionnement avec sauvegarde

Cette instruction est utilisée pour écrire les paramètres de positionnement et les données de la table de positionnement suivants avec des programmes utilisateur :

  • Informations générales telles que les voies/axes utilisés, les nombres de répétitions et les codes d’erreur

  • Informations sur les axes telles que l’état de l’exécution en cours et le nombre actuel de répétitions

  • Informations sur les paramètres des axes telles que les codes de contrôle de la sortie impulsionnelle, les paramètres de retour à l'origine, et les paramètres de vitesse, d’accélération et de décélération

  • Les données des tables de positionnement telles que les codes de contrôle et profils, les paramètres de vitesse, d’accélération et de décélération

Cette instruction écrit le nombre de mots (n_Number ) des données sauvegardées dans la zone à partir de l’adresse spécifiée par s2_Start et sauvegarde ces données dans la zone mémoire de positionnement à partir de l’offset de l’adresse indiqué par d_Offset. Pour garder les données écrites même après la mise hors tension de l’automate, les données peuvent être sauvegardées dans une zone mémoire persistante.

Paramètres

Entrée

s1_Channel (WORD, INT, UINT)

Numéro de voie

Configurator PMX : SYS_PMX_CHANNEL_0SYS_PMX_CHANNEL_3

Configurator PM7 : SYS_PM7_AXIS_1SYS_PM7_AXIS_8

s2_Start (WORD, INT, UINT)

Adresse de départ des zones de la mémoire de travail dans l’unité centrale dans lesquelles les données à écrire sont sauvegardées (adresse source)

n_Number (WORD, INT, UINT)

Nombre de mots qui doivent être écrits.

s1_Area (WORD, INT, UINT)

Zone mémoire de positionnement :

d_Offset (WORD, INT, UINT)

Offset de l’adresse de départ de la mémoire de positionnement dans l’unité centrale dans laquelle les données écrites sont sauvegardées (adresse de destination)

s1_WriteToPersistentMemory (WORD, INT, UINT)
  • TRUE : Les données sont sauvegardées dans la zone maintenue.

    Endommagement possible de la FROM

    En spécifiant 16#80 à 16#83 (enregistrer dans la FROM) pour les 8 bits de poids fort du paramètre d’entrée s1_Channel (le bit de poids fort étant 1), les données spécifiées sont écrites dans la mémoire flash de l’unité centrale. L’écriture dans la FROM peut être exécutée jusqu'à 10000 fois. Nous recommandons d’utiliser un front montant pour empêcher l’écriture continue dans la FROM.

  • FALSE : Les données ne sont pas sauvegardées.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si le numéro de voie spécifié par s1_Channel est invalide.

  • Si l’offset de la mémoire de positionnement spécifié par d_Offset est en dehors de la limite autorisée pour la zone mémoire de positionnement

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si le numéro de voie spécifié par s1_Channel est invalide.

  • Si l’offset de la mémoire de positionnement spécifié par d_Offset est en dehors de la limite autorisée pour la zone mémoire de positionnement

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
		bWriteData: BOOL:=FALSE;
		awData: ARRAY [0..9] OF WORD:=[10(0)];
	END_VAR
	VAR CONSTANT
		bBACKUP_DATA: BOOL:=TRUE;
	END_VAR
	VAR
	END_VAR

Corps en LD

La fonction est exécutée lorsque la variable bWriteData passe de FALSE à TRUE.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_COMMENT,,ø^Settings for s1_Channel:ø^	PMX-Configurator:  SYS_PMX_CHANNEL_0 ... SYS_PMX_CHANNEL_3ø^	PM7-Configurator: 	SYS_PM7_AXIS_1 ... SYS_PM7_AXIS_8ø^,2,1,49,6,);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 9 ;
        NETWORK_BODY
B(B_CONTACT,,bWriteData,9,1,11,3,R);
B(B_F,F385_Positioning_WriteData_Backup!,,20,0,37,9,,?DEN?Ds1_Channel?Ds2_Start?Dn_Number?Ds1_Area?Dd_Offset?Ds1_WriteToPersistentMemory?AENO);
B(B_VARIN,,SYS_PMX_CHANNEL_0,18,2,20,4,);
B(B_VARIN,,awData,11,3,13,5,);
B(B_F,Adr_Of_Var_I!,,13,3,20,5,,?D?C);
B(B_F,Size_Of_Var!,,13,4,20,6,,?D?C);
B(B_VARIN,,SYS_POSITIONING_AREA_AXIS_SETTING,18,5,20,7,);
B(B_VARIN,,155,18,6,20,8,);
B(B_VARIN,,bBACKUP_DATA,18,7,20,9,);
L(1,0,1,9);
L(1,2,9,2);
L(11,2,20,2);
L(13,4,13,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

(*Settings for s1_Channel:
	PMX-Configurator:  SYS_PMX_CHANNEL_0 ... SYS_PMX_CHANNEL_3
	PM7-Configurator: 	SYS_PM7_AXIS_1 ... SYS_PM7_AXIS_8*)
if DF(bWriteData) then
    F385_Positioning_WriteData_Backup(s1_Channel := SYS_PMX_CHANNEL_0,
                                      s2_Start := Adr_Of_Var(awData),
                                      n_Number := Size_Of_Var(awData),
                                      s1_Area := SYS_POSITIONING_AREA_AXIS_SETTING, 
                                      d_Offset := 155,
                                      s1_WriteToPersistentMemory := bBACKUP_DATA);
end_if;

Modifié le : 2024-06-19Commentaires sur cette pageAssistance téléphonique