====== Envoi FTP ======
Ce wiki concerne la fonctionnalité d'envoi FTP sur les automates phoenix contact de la gamme AXC mais aussi ILC.
Images à ajouter, je n'ai pas les droits.
===== Etapes de test =====
Avant de regarder sur votre automate si ça fonctionne voici ce que vous devez faire :
* Récupérer les infos de connexion du serveur FTP (hote,mdp,...)
* Se connecter au serveur via filezilla
* Si la connexion n'est pas possible dès maintenant, il y a de grandes chances qu'il y ait des problèmes par la suite
* Chercher dans le serveur si le dossier de dépose est présent
* Créez le si besoin
L'envoi est possible, vous pouvez aller analyser dans l'automate si vous ne voyez aucun fichier sur le serveur de destination.
===== Problèmes classiques - analyses =====
Votre envoi FTP ne fonctionne pas ? Voici quelques pistes permettant d'identifier l'origine du problème.
==== Analyse via les sorties du bloc ====
strLastResponseDestFTP et strLastResponseSourceFTP :
En regardant les messages s'affichant sur ces deux sorties du bloc, vous avez une grande quantité d'informations vous permettant d'analyser où est le problème.
Cela vous permet de voir si l'erreur apparait à l'identification, à la connexion, à la transmission ....
==== Première mise en place ====
Lors du premier jour d'activation de l'envoi FTP, vérifiez que des fichiers inexistants ne bloquent pas l'envoi FTP. Si l'automate essaie d'envoyer des fichiers qu'il n'a pas créé et qu'ils restent en mémoire dans le tableau d'envoi, cela peut poser des problèmes.
==== xDone ====
Le bloc de phoenix, ne passe pas toujours son xDone à TRUE si les fichiers ont été envoyés. Vérifiez que votre fonction FTP gère ce cas.
Vous pouvez envisager de passer au fichier suivant en fonction du code récupéré sur strLastResponseDestFTP. Un code commençant par 226 indique que l'envoi est terminé.
==== Transfer Aborted ====
Si vous voyez régulièrement le message //Transfer Aborted// dans la variable strLastResponseDestFTP, que vos fichiers ne sont pas envoyés ou non complets sur le serveur de destination, alors je vous conseille de regarder l'entrée tCloseDataCon du Bloc.
Une valeur trop faible de fermeture de la connexion engendre souvent des fichiers incomplets et ce message d'erreur. (Pour les fichiers avec le plus de données)
Augmentez la valeur de tCloseDataCon.
Une valeur paramétrée à 9 secondes me permettait d'envoyer des fichiers onduleurs d'une taille de 900 mo.
Cela dépendra des serveurs FTP, une valeur laissée à 5 secondes ne posera pas de problème sur la plupart des serveurs.
==== Dossier de dépose ====
Bien vérifier que le fichier de dépose est présent sur le serveur comme vu précédemment.
Sur le standard, la valeur du paramètre du dossier de dépose doit être déclarée comme ceci :
PRM_Racine_FTP := '/Dossier_De_Depose/'
**Les / sont importants**. Si il y a des sous dossiers alors ce sera simplement :
PRM_Racine_FTP := '/Dossier1/Sous_Dossier1/Dossier_De_Depose/'
==== Mode passif/ Mode Actif ====
Le mode passif est le mode classique d'envoi des fichiers.
En mode **passif**, le serveur défini quel port est utilisé pour la transmission des données. L'automate initialise la connexion.
En mode passif, il n'y a pas de problème notable.
En mode **actif**, le client défini quel port est utilisé pour la transmission des données. le serveur initialise la connexion.
En mode actif et avec un automate AXC3050, l'envoi FTP n'est pas fonctionnel. L'automate n'autorise pas le serveur FTP à se connecter au port de connexion défini pour la transmission des données.
**Attention** : Si votre envoi est paramétré en mode actif et que vous essayez d'envoyer les fichiers avec votre AXC3050, au bout d'un certain nombre d'échecs d'envois, l'automate n'arrive plus du tout à ouvrir les socket de connexion et **tous** vos envois FTP ( si vous envoyez vos fichiers sur plusieurs serveurs) ne fonctionneront plus.
On repère facilement ce dernier problème quand votre bloc sort en erreur immédiatement après avoir été activé.
MAJ firmware prévu en 2021 par phoenix contact, si vous avez ce problème après 2021, vérifiez la version fimware de votre automate.
La variable définissant le mode actif/passif est //xSourceisServer//. En mode passif cette variable est à FALSE.
Tests éfféctués : * AXC1050 et mode actif : OK
* AXC3050 et mode actif : NOK
* ILC 191 ME/AN et mode actif : OK
==== DNS ====
Vérifier que votre Bloc DNS a bien traduit le nom d'hôte ftp en une adresse IP.
Evidemment si vous n'avez pas accès à Internet cela ne fonctionnera pas.