Blocco funzione per connessione a server FTP
Home › Forum › Programmazione IEC 61131 (LogicLab) › Blocco funzione per connessione a server FTP
- Questo topic ha 10 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 5 anni, 6 mesi fa da
Sergio Bertana.
-
AutorePost
-
Febbraio 17, 2016 alle 10:21 am #35948
Sergio Bertana
Amministratore del forumAbbiamo rilasciato il nuovo blocco funzione FTPClient (Estratto manuale), utilizzando questo blocco funzione è possibile connettersi ad un server FTP, eseguire l’autenticazione e trasferire file da e verso il server.
Il comando Store permette di trasferire un file locale dal file system del sistema verso il server FTP.
Il comando Retrieve permette di trasferire un file dal server FTP nel file system locale del sistema.Ho pubblicato il progetto FTPTest che permette di testare il funzionamento del nuovo FB (Download progetto).
Marzo 1, 2016 alle 5:01 pm #39423Giulio
PartecipanteEsiste la possibilità di utilizzare il client all’interno di una LAN, disabilitando in qualche maniera il DNS ?
Marzo 2, 2016 alle 7:33 am #39424Sergio Bertana
Amministratore del forumNon occorre disabilitare nulla basta definire l’IP anzichè l’URL, esempio:
http://FTP.FTPServer:=ADR(‘192.168.0.10’); (* Server FTP *)
Il blocco funzione riconosce che il server è indicato come indirizzo IP (Dotted) e si connette direttamente all’indizizzo indicato.
Marzo 11, 2016 alle 10:38 am #39446Luca Marani
PartecipanteVista l’aggiunta del Client FTP volevo far in modo che il PLC inviasse un file ogni giorno alla stessa ora. Tutto funziona, tranne se si accavalla l’invio del file con la scrittura del file stesso.
Pensavo di risolvere il problema creando una copia del file da inviare ogni volta che l’originale viene modificato. La copia sarebbe eseguita solo se non sto inviando il file (nel tuo esempio, solo se CaseNr = 0), e l’invio eventualmente messo in attesa fino alla fine della scrittura. Il problema è la copia del file, c’è un blocco funzione che lo fa, o devo leggere tutti il file originale e salvare il contenuto nella copia ?
Marzo 11, 2016 alle 10:42 am #39447Sergio Bertana
Amministratore del forumNaturalmente l’operazione di invio di un file verso il server FTP occupa un certo tempo (Tanto più lungo quanto è più lungo il file), e durante questo tempo il file deve essere bloccato in scrittura, non devono esserci altri accessi da programma sul file in scrittura.
Sicuramente è buona l’idea di creare una copia del file originale che poi verrà utilizzata per il trasferimento in FTP, purtroppo non esiste un FB di copia files, quindi se vuoi fare una copia devi gestire la lettura del file di origine e la scrittura del file di destinazione.
Ma io ti consiglierei di fare transitare le operazioni di scrittura nel file locale da un FB FIFOFile (Topic), in questo modo ogni volta che il programma deve scrivere nel file in realtà scrive nel file di appoggio del FIFO e poi se il file trasferito in FTP è libero puoi estrarre i dati dal FIFO e scriverli nel file.
Così durante l’upload in FTP del file il FIFO continua ad accumulare i dati (Mantenendoli anche allo spegnimento) e poi quando le operazioni di FTP sono terminate potrai leggere dal FIFO e popolare il tuo file FTP di appoggio.
Marzo 11, 2016 alle 5:22 pm #39449Luca Marani
PartecipantePerfetto, grazie, però ho un problema e una segnalazione.
Il problema è: il file dove salva la FIFO continua a crescere ? Mi devo preoccupare io di cancellarlo se diventa troppo grande ? Cosa serve il comando Del ?
La segnalazione riguarda la versione del blocco funzione. Quello nel tuo esempio funziona, però è diverso da quello contenuto nella nuova libreria eLLabLogLib_B100.plclib. Fanno la stessa cosa solo con nomi dei parametri diversi ?
Marzo 11, 2016 alle 5:25 pm #39450Sergio Bertana
Amministratore del forumNella gestione del FIFO si definisce in FIFOSize la dimensione massima del file di appoggio, il FB automaticamente mantiene il file a quella dimensione. In pratica il FB inizia a scrivere nel file, poi raggiunta la dimensione limite riprende la scrittura dall’inizio. Questo vuol dire che più grande è il file più il FIFO può contenere dati senza sovrascrivere quelli più datati.
Conviene sempre utilizzare la versione più recente di libreria che sicuramente contiene i FB più aggiornati. Il comando Del era presente nella prima versione del FB perchè era previsto leggere un record con il comando Out e poi decidere di eliminarlo dal FIFO con il comando Del.
Nell’ultima versione di FB il comando è sparito, eseguendo il FB con il comando Out attivo il record inserito per primo viene ritornato in uscita ed automaticamente cancellato dal FIFO. Alla prossima esecuzione del FB con il comando di Out attivo viene ritornato il record successivo e così via fino allo svuotamento del FIFO.
Settembre 26, 2019 alle 12:04 pm #50054Rubox
PartecipanteBuonasera, c’è una cosa che non mi è ben chiara sul blocco FTPClient_v1. In tutti gli esempi o c’è un indirizzo IP, oppure c’è un generico nome “myserver”. Ma se io ci metto ad esempio
FTPServer:=ADR(‘mio.serverftp.com’)
funziona oppure no? E’ tutto il giorno che apro porte sul router a cui è collegato il PLC e quello su cui c’è il server FTP, che creo regole… ma niente. Mi da sempre errore di risoluzione indirizzo.
Però se mi collego dalla LAN dove c’è il PLC al server FTP con FileZilla riesco ad accedere al server FTP.
Settembre 26, 2019 alle 12:09 pm #50077Sergio Bertana
Amministratore del forumSe usi un sistema basato su Cortex M7 puoi mettere l’URL, il sistema gestisce automaticamente la richiesta al server DNS (Naturalmente devi avere impostato correttamente l’indirizzo IP del server DNS nella configurazione di rete).
Ma non capisco cosa c’entra il creare regole sul router a cui è collegato il PLC, l’FTPClient è appunto un client quindi esce automaticamente sulla rete. Magari il tuo problema è il non avere settato correttamente il gateway nelle impostazioni di rete.
Prova connettendoti in telnet da locale allo SlimLine ad eseguire un comando di ping verso un URL su Internet (Esempio Ping google.com) così verifichi se lo SlimLine può accedere alla rete Internet. Se non funziona hai problemi nella impostazione del gateway.
Settembre 26, 2019 alle 2:05 pm #50078Rubox
PartecipanteBuonpomeriggio, il problema era che nella pagina di configurazione web del PLC mi faceva vedere dei valori di gateway e DNS impostati correttamente, invece leggendo i valori con il PLC e la funzione SysOSIDValue me ne trovavo altri. Ho scritto i valori da PLC e adesso sembra funzionare correttamente.
Mi scuso per le domande banali, anche nell’altro post, ma onestamente non sapevo più che pesci pigliare e quindi ho comunque aperto le porte sul router lato PLC e verificato e ricreato le regole sul router lato server FTP.
Settembre 26, 2019 alle 2:49 pm #50091Sergio Bertana
Amministratore del forumIl comportamento della configurazione del sistema da pagina web è riportato in questo topic.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.