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.
Entrée
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'
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 |
---|---|
|
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. |
|
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'
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
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.
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.
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.
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.
Si l’instruction est exécutée pendant l’initialisation d’Ethernet, sys_iEthernetConnectionErrorCode est définie sur "11 : initialisation Ethernet en cours".
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
Lorsque bSetLogTransferFTP et bDisableLogTransferFTP sont TRUE, l’instruction est exécutée.
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
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;