Home > Foro > Programación IEC 61131 (LogicLab) > Bloque de funciones para la conexión al servidor FTP
- Este tema tiene 10 respuestas, 4 participantes y se actualizó por última vez 4 años, hace 6 meses da Sergio Bertana.
-
autorPublicación
-
Febrero 17, 2016 en 10: 21 am #35948Sergio BertanaAdministrador del foro
Hemos lanzado el nuevo bloque de funciones FtpClient (Extracto manual), con este bloque de funciones puede conectarse a un servidor FTP, realizar la autenticación y transferir archivos desde y hacia el servidor.
El comando Tienda le permite transferir un archivo local desde el sistema de archivos del sistema al servidor FTP.
El comando Recuperar le permite transferir un archivo desde el servidor FTP al sistema de archivos local del sistema.Publiqué el proyecto FTPTest que permite probar el funcionamiento del nuevo FB (Descarga del proyecto).
Marzo 1, 2016 en 5: 01 pm #39423Giuliopartícipe¿Existe la posibilidad de usar el cliente dentro de una LAN, deshabilitando DNS de alguna manera?
Marzo 2, 2016 en 7: 33 am #39424Sergio BertanaAdministrador del foroNo es necesario deshabilitar nada, solo defina la IP en lugar de la URL, ejemplo:
http://FTP.FTPServer:=ADR('192.168.0.10'); (* Servidor FTP *)
El bloque de funciones reconoce que el servidor se indica como una dirección IP (punteada) y se conecta directamente a la dirección indicada.
Marzo 11, 2016 en 10: 38 am #39446Luca MaranipartícipeDada la adición del cliente FTP, quería que el PLC enviara un archivo todos los días a la misma hora. Todo funciona, excepto si superpone el envío del archivo con la escritura del archivo.
Pensé que resolvería el problema creando una copia del archivo para enviar cada vez que se cambia el original. La copia se realizará solo si no estoy enviando el archivo (en su ejemplo, solo si CaseNr = 0), y el envío se pondrá en espera hasta el final de la escritura. ¿El problema es copiar el archivo, hay un bloque de función que hace esto o tengo que leer todo el archivo original y guardar el contenido en la copia?
Marzo 11, 2016 en 10: 42 am #39447Sergio BertanaAdministrador del foroPor supuesto, la operación de enviar un archivo al servidor FTP toma un tiempo determinado (cuanto más largo es el archivo), y durante este tiempo el archivo debe estar bloqueado para escritura, no debe haber ningún otro programa que acceda al archivo. escrito.
Seguramente es una buena idea crear una copia del archivo original que luego se utilizará para la transferencia FTP, lamentablemente no hay copia de archivo FB, por lo que si quieres hacer una copia tienes que gestionar la lectura del archivo fuente y la escritura del archivo. archivo de destino.
Pero le aconsejo que pase operaciones de escritura en el archivo local desde un FB FIFOFile (Tema), de esta manera cada vez que el programa tiene que escribir en el archivo, realmente escribe en el archivo de soporte FIFO y luego, si el archivo transferido en FTP es libre, puede extraer los datos del FIFO y escribirlos en el archivo.
Entonces, durante la carga FTP del archivo, el FIFO continúa acumulando los datos (manteniéndolos incluso en el apagado) y luego, cuando finalizan las operaciones FTP, puede leer desde el FIFO y completar su archivo FTP de soporte.
Marzo 11, 2016 en 5: 22 pm #39449Luca MaranipartícipePerfecto, gracias, pero tengo un problema y un informe.
El problema es: ¿sigue creciendo el archivo donde se guarda el FIFO? ¿Tengo que preocuparme por eliminarlo si es demasiado grande? ¿Para qué se utiliza el comando Del?
El mensaje se refiere a la versión del bloque de funciones. El de su ejemplo funciona, pero es diferente del contenido en la nueva biblioteca eLLabLogLib_B100.plclib. ¿Hacen lo mismo solo con diferentes nombres de parámetros?
Marzo 11, 2016 en 5: 25 pm #39450Sergio BertanaAdministrador del foroEn la gestión de la FIFO se define en FIFOSize el tamaño máximo del archivo de soporte, el FB automáticamente mantiene el archivo en ese tamaño. En la práctica, el FB comienza a escribir en el archivo, luego, una vez que se alcanza el tamaño límite, reanuda la escritura desde el principio. Esto significa que cuanto más grande sea el archivo, más datos podrá contener el FIFO sin sobrescribir los más antiguos.
Siempre es recomendable utilizar la versión más reciente de la biblioteca que seguramente contiene los FB más actualizados. El comando Del estaba presente en la primera versión del FB porque se esperaba leer un registro con el comando Oct y luego decidir eliminarlo de la FIFO con el comando Del.
En la última versión de FB, el comando se ha ido, ejecutando el FB con el comando Oct activo, el registro insertado primero se devuelve a la salida y se elimina automáticamente del FIFO. La próxima vez que se ejecute el FB con el comando Out activo, se devuelve el siguiente registro y así sucesivamente hasta que se vacíe el FIFO.
Septiembre 26, 2019 en 12: 04 pm #50054RuboxpartícipeBuenas noches, hay una cosa que no tengo muy clara sobre el bloque FTPClient_v1. En todos los ejemplos hay una dirección IP o un nombre genérico "miservidor". Pero si lo pongo como ejemplo
FTPServer: = ADR ('my.serverftp.com')
¿Funciona o no? Todo el día abro puertos en el router al que está conectado el PLC y en el que está el servidor FTP, creando reglas… pero nada. Siempre me da un error de resolución de dirección.
Sin embargo, si me conecto desde la LAN donde está el PLC al servidor FTP con FileZilla puedo acceder al servidor FTP.
Septiembre 26, 2019 en 12: 09 pm #50077Sergio BertanaAdministrador del foroSi usa un sistema basado en Cortex M7 puede poner la URL, el sistema maneja automáticamente la solicitud al servidor DNS (Por supuesto, debe haber configurado correctamente la dirección IP del servidor DNS en la configuración de red).
Pero no entiendo qué tiene que ver con la creación de reglas en el enrutador al que está conectado el PLC, el FTPClient es solo un cliente, por lo que automáticamente sale de la red. Quizás su problema es no haber configurado correctamente la puerta de enlace en la configuración de red.
Intente conectarse en telnet de local a SlimLine ejecutar un comando ping a una URL de Internet (ejemplo Ping google.com), así que verifique si SlimLine puede acceder a internet. Si no funciona, tiene problemas para configurar la puerta de enlace.
Septiembre 26, 2019 en 2: 05 pm #50078RuboxpartícipePor la tarde, el problema fue que en la página de configuración web del PLC me mostró la puerta de enlace correcta y los valores DNS, mientras leía los valores con el PLC y la función SysOSIDValue encontré otros. Escribí los valores del PLC y ahora parece funcionar correctamente.
Pido disculpas por las preguntas triviales, incluso en la otra publicación, pero honestamente ya no sabía qué pescar, así que abrí los puertos en el enrutador del lado del PLC y verifiqué y recreé las reglas en el enrutador del lado del servidor FTP.
Septiembre 26, 2019 en 2: 49 pm #50091Sergio BertanaAdministrador del foroEl comportamiento de la configuración del sistema de página web se muestra en este tema.
-
autorPublicación
- Debe iniciar sesión para responder a este tema.