FP_FTP_SET_MODE_TRANSFER_LOG

Définir le mode de transfert FTP pour les fichiers d’enregistrement des données

Cette instruction FP définit les paramètres de transfert des fichiers d’enregistrement des données via le protocole FTP.

Paramètres

Entrée

nLogID (WORD, INT, UINT)

Numéro de configuration LOG (intervalle autorisé : 0-15). Le compilateur génère la chaîne de caractères pour le numéro de fichier LOG en interne, par ex. 'LOG=0'

sOperation (STRING)

Définir les paramètres de la méthode de transfert.

  • Adresse du serveur (paramètre requis)

    Un seul serveur peut être spécifié à la fois. Entrez un numéro de serveur FTP avec trois caractères à un octet.

    Mot-clé : SV

    Valeurs : SV0–SV3 (Serveur 0–Serveur 3)

  • Méthode de transfert (paramètre optionnel)

    Syntaxe

    Méthode de transfert

    'MODE=OVW'

    Méthode "Surécrire" (par défaut)

    Transférer le fichier dont le nom est spécifié dans les paramètres de l’enregistrement des données. Lorsque le transfert est interrompu en raison de dysfonctionnement du réseau ou des serveurs, le transfert du fichier peut avoir été exécuté que partiellement. Vérifiez que le transfert a été exécuté entièrement avec succès avec une instruction telle que FP_FTP_GET_STATUS.

    'MODE=REN'

    Méthode "Renommer"

    Transférer le fichier avec un nom de fichier temporaire et le renommer avec un nom de fichier spécifié lorsque le transfert a été exécuté avec succès. Pour vérifier que le transfert du fichier a été exécuté avec succès, comparez le nom de fichier actuel avec le nom de fichier spécifié par les paramètres de l’enregistrement des données. Avec cette méthode, le temps de traitement est plus long qu’avec la méthode "Surécrire".

Exemple : envoyer le fichier d’enregistrement des données au serveur FTP 3 avec la méthode "Renommer" : 'SV3,MODE=REN'

sFTPServerDirectory (STRING)

Définir le répertoire de destination (256 caractères max.). Il est créé avec un chemin d’accès relatif à partir du répertoire de base qui a été affecté à l’utilisateur après connexion au serveur FTP. Si le répertoire de destination n’existe pas, il est créé automatiquement avec jusqu’à huit hiérarchies.

Sortie

bError (BOOL)

Devient TRUE dans les conditions suivantes :

  • Si le temps d’attente de connexion est dépassé.

  • Si une adresse IP est invalide.

Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.

Remarques

  • Les mots-clés doivent être séparés par une virgule, par ex. 'NAME=abcd,FROM=sender@server.com'

  • L’ordre des mots-clés ne doit pas être modifié. Spécifiez les mots-clés et leurs paramètres dans l’ordre indiqué ici.

  • Le nombre de caractères des données STRING ne doit pas être supérieur à 256.

  • Cette instruction n’est pas disponible dans les programmes d’interruption.

  • Avant d’exécuter l’instruction, le serveur FTP doit être spécifié à l’aide de FP_FTP_SET_CONNECTION ou de la boîte de dialogue de paramétrage du client FTP.

  • Des caractères en lettres majuscules et minuscules peuvent être utilisés pour les opérandes pour lesquels une constante de caractères peut être spécifiée. "Abcd", "ABCD" et "abcd" sont synonymes, par contre, les noms de fichiers sont sensibles à la casse.

  • L’instruction ne peut être exécutée que lorsque le drapeau de requête de transfert pour le numéro nLogID spécifié est FALSE. Lorsque le drapeau de requête de transfert est TRUE, une erreur d’opération apparaît.

  • Avant d’exécuter l’instruction, vérifiez que sys_bIsEthernetInitializing est FALSE. sys_bIsEthernetInitializing passe à TRUE lorsque l’instruction est exécutée. Lorsque l’instruction est exécutée alors que sys_bIsEthernetInitializing est TRUE, une erreur apparaît.

  • Lorsque l’instruction a été exécutée avec succès, les variables système sys_bIsCarry et sys_iEthernetConnectionErrorCode sont réinitialisées.

  • L’instruction enregistre les paramètres de transfert de l’enregistrement des données de sOperation et sFTPServerDirectory dans le fichier LOG spécifié par nLogID.

  • Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si le drapeau de requête de transfert pour un numéro nLogID spécifié est TRUE, par ex. si sys_blsLog0DataRecordingActive est TRUE.

  • Si les conditions d’enregistrement des données d’un numéro nLogID spécifié ne sont pas enregistrées.

  • Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.

  • Si l’instruction est exécutée dans un programme d’interruption.

  • Si le nombre de caractères des données STRING est supérieur à 256.

  • Si un serveur FTP spécifié n’a pas été configuré avec l’instruction FP_FTP_SET_CONNECTION ou avec la boîte de dialogue de paramétrage du client FTP.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si le drapeau de requête de transfert pour un numéro nLogID spécifié est TRUE, par ex. si sys_blsLog0DataRecordingActive est TRUE.

  • Si les conditions d’enregistrement des données d’un numéro nLogID spécifié ne sont pas enregistrées.

  • Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.

  • Si l’instruction est exécutée dans un programme d’interruption.

  • Si le nombre de caractères des données STRING est supérieur à 256.

  • Si un serveur FTP spécifié n’a pas été configuré avec l’instruction FP_FTP_SET_CONNECTION ou avec la boîte de dialogue de paramétrage du client FTP.

sys_bIsCarry (passe à TRUE pendant un cycle)
  • Si l’instruction est exécutée pendant l’initialisation d’Ethernet, sys_iEthernetConnectionErrorCode est définie sur "11 : initialisation Ethernet en cours".

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
		bSetLogTransferFTP: BOOL:=FALSE;
		bIsError: BOOL:=FALSE;
		bDisableLogTransferFTP: BOOL:=FALSE;
	END_VAR

Corps du POU

Lorsque bSetLogTransferFTP et bDisableLogTransferFTP sont TRUE, l’instruction est exécutée.

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 := 6 ;
        NETWORK_BODY
B(B_VARIN,,0,18,2,20,4,);
B(B_VARIN,,'SV0',18,3,20,5,);
B(B_VARIN,,'LogData',18,4,20,6,);
B(B_VAROUT,,bIsError,37,2,39,4,);
B(B_CONTACT,,bSetLogTransferFTP,5,1,7,3,);
B(B_F,FP_FTP_SET_MODE_TRANSFER_LOG!,,20,0,37,6,,?DEN?DnLogID?DsOperation?DsFTPServerDirectory?AENO?CbError);
L(1,2,5,2);
L(7,2,20,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bDisableLogTransferFTP,5,1,7,3,);
B(B_VARIN,,0,18,2,20,4,);
B(B_VARIN,,'DISABLE',18,3,20,5,);
B(B_VAROUT,,bIsError,39,2,41,4,);
B(B_F,FP_FTP_TRANSFER_CONTROL_LOG!,,20,0,37,5,,?DEN?DnLogID?DsControl?AENO?AbError);
L(1,2,5,2);
L(37,3,39,3);
L(7,2,20,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

If (bSetLogTransferFTP) Then
    FP_FTP_SET_MODE_TRANSFER_LOG(nLogID := 0, sOperation := 'SV0',
                                 sFTPServerDirectory := 'LogData', 
                                 bError => bIsError);
End_if;
If (bDisableLogTransferFTP) Then
    FP_FTP_TRANSFER_CONTROL_LOG(nLogID := 0, sControl := 'DISABLE', bError => bIsError);
End_if;

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