Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,696 a 1,710 (di 4,507 totali)
  • Autore
    Post
  • in risposta a: Connessione a FileZilla server con FTPClient #49611
    Sergio Bertana
    Amministratore del forum

    Il FB FTPClient_v1 si connette sempre in modalità passiva, invia il comando PASV al server per chiedere la porta a cui connettersi per i dati. Il server risponde indicando la porta che verrà utilizzata, il client si connette alla porta indicata.

    In questa configurazione è evidente che essendo il server dietro ad un NAT occorre provvedere al forwarding della porta. Esendo però la porta scelta arbitrariamente dal server occorre impostare nel server il range di porte da utilizzare ed eseguire il forward su tutte.

    Su FileZilla nel menù Passive mode settings spuntare Use custom port range e specificare un intervallo di porte a piacere, maggiori di 1024. Se ad esempio impostiamo un range da 2121 a 2122, dovremo configurare anche il forwarding di queste porte.

    Il FileZilla client probabilmente tenta una connessione in passive mode e poi non riuscendo a connettersi probabilmente cambierà la connessione in active mode.

    in risposta a: Comunicazione con PLC Schneider modello TM221 #49595
    Sergio Bertana
    Amministratore del forum

    I PLC  Schneider serie TM utilizzano SoMachine come tool di programmazione che è a base Codesys. Weintek ha il driver Schneider SoMachine M Series che è sviluppato appositamente per questa serie di PLC.

    in risposta a: Realizzare una FB per lettura cella da file CSV #49585
    Sergio Bertana
    Amministratore del forum

    Tutto chiaro…
    Il simulatore su PC non gestisce l’acceso al file system. Per eseguire la scrittura su file occorre disporre fisicamente del PLC.

    in risposta a: Aggiornare Data/Ora da comando Modbus #49558
    Sergio Bertana
    Amministratore del forum

    Ti allego questo semplice programma ST da eseguire in task Back.

    VAR
        MDBDateTime AT %MX100.16 : UDINT; (* Date/Time in Epoch *)
        AuxDateTime : UDINT; (* Aiuxiliary Date/Time in Epoch *)
    END_VAR
    
    // *****************************************************************************
    // PROGRAM "ST"
    // *****************************************************************************
    // Per poter aggiornare l'RTC da Modbus ho allocato la variabile "MDBDateTime"
    // di tipo UDINT nella DB 100.16 (Cambiare in base alle proprie esigenze) in
    // modo che sia accessibile da modbus all'indirizzo 40008. Scrivendo da Modbus
    // un nuovo valore in Epoch time nella variabile viene aggiornato l'RTC.
    // -----------------------------------------------------------------------------
    
        // -------------------------------------------------------------------------
        // CONTROLLO VARIABILE
        // -------------------------------------------------------------------------
        // Inizializzo valore al primo loop.
        
        IF (SysFirstLoop) THEN
            MDBDateTime:=SysDateTime; //Date/Time in Epoch
            AuxDateTime:=SysDateTime; //Aiuxiliary Date/Time in Epoch
        END_IF;
    
        // Controllo se valore cvariabile è stato modificato da Modbus.
        // Scrivendo il nuovo valore in "SysDateTime" si aggiorna l'RTC.
    
        IF (MDBDateTime <> AuxDateTime) THEN
            SysDateTime:=MDBDateTime; //Date/Time in Epoch
            AuxDateTime:=MDBDateTime; //Aiuxiliary Date/Time in Epoch
        END_IF;
    
        // Ricopio valore in variabile Modbus per aggiornarla.
    
        MDBDateTime:=SysDateTime; //Date/Time in Epoch
        AuxDateTime:=SysDateTime; //Aiuxiliary Date/Time in Epoch
    
    // [End of file]
    in risposta a: Come eseguire un factory reset dello SlimLine #49555
    Sergio Bertana
    Amministratore del forum

    Aggiungo che per riportare il sistema alla configurazione di fabbrica oltre ad effettuare il comando CfgCommit –d essendosi loggati al sistema come utente Admin, occorre anche cancellare il programma e la memoria utente. Per fare questo occorre da telnet  eseguire i comandi:

    PLCProgram -stop: Arresta l’esecuzione del programma utente
    PLCProgram -pc: Cancella il programma utente
    PLCProgram -mc: Cancella la memoria utente

    in risposta a: Pannello HMI con certificazione ATEX #49554
    Sergio Bertana
    Amministratore del forum

    Alcuni pannelli HMI serie iE (Vedi link) e serie xE (Vedi link) hanno certificazione ATEX ma sono certificati per zona II (Vedere dichiarazione di conformità ATEX  scaricabile dalla pagina del prodotto).

    Ho chiesto al fornitore se avesse qualche modello certificato in zona 1 e mi ha risposto che hanno clienti che inseriscono un pannello normale in un case certificato per zona 1 e lo gestiscono tramite un mouse esterno (Certificato ATEX, che è facile da trovare) oppure lo comandano con tasti esterni connessi al PLC.

    in risposta a: Realizzare una FB per lettura cella da file CSV #49550
    Sergio Bertana
    Amministratore del forum

    Intanto eseguendo l’apertura in ‘rw’ se nella cartella “Storage” non hai il file presente il file non viene creato. Se vuoi che venga creato devi eseguire l’apertura in ‘a’.

    Poi devi accertarti che la cartella “Storage” esista e che vi si possa scrivere all’interno (Collegati in FTP e prova a copiare un file e poi lo cancelli, eventualmente cerca nel forum come eseguire la formattazione del disco (Vedi topic, topic).

    Ecco un programma di esempio, attivando da debug la variabile WCommand viene seguita la scrittura di una riga nel file.

    VAR
        WCommand : BOOL; (* Write command *)
        i : DINT; (* Auxiliary variable *)
        Line : USINT; (* Line counter *)
        Filename : STRING[ 32 ]; (* Nome file *)
        Fp : FILEP; (* File pointer *)
        WrBuffer : STRING[ 32 ]; (* Write buffer *)
    END_VAR
    
    IF (WCommand) THEN
        WCommand:=FALSE; //Write command
        Filename:='Storage/settings.txt'; //Nome file
    
        // Apro file e se file aperto eseguo scrittura.
    
        IF (Fp = NULL) THEN Fp:=Sysfopen(Filename, 'a'); END_IF;
        IF (Fp <> NULL) THEN
            Line:=Line+1; //Line counter
            i:=SysVarfprintf(Fp, 'Line: %d$r$n', USINT_TYPE, ADR(Line));
            Fp:=Sysfclose(Fp);
        END_IF;
    END_IF;
    in risposta a: Invio dati a Beebotte da terminale Weintek #49488
    Sergio Bertana
    Amministratore del forum

    Nel frattempo ho chiesto a Weintek se avevano qualche esempio di invio dati a Beebotte, mi hanno detto che ad oggi si sono collegati con i più svariati broker senza alcun problema ma non hanno esempi con Beebotte.

    Però sono disponibili se gli inviamo un progettino di esempio a controllarlo. Se tu hai un progettino semplice e comprensibile e vuoi inviarmelo (Invialo per eMail a [email protected]) faccio delle prove io ed eventualmente lo invio a Weintek.

    in risposta a: Invio dati a Beebotte da terminale Weintek #49481
    Sergio Bertana
    Amministratore del forum

    Non ho mai realizzato personalmente una connessione a Beebotte da terminale Weintek, ma con i nostri sistemi SlimLine abbiamo applicazioni di invio dati a Beebotte utilizzando il blocco funzione MQTTClient (Vedi articolo).

    Di certo non utilizziamo una connessione SSL e devo dire che non ho avuto particolari problemi nel realizzare il semplice programma di esempio. Poi visto l’interesse per l’argomento abbiamo anche realizzato dei FB specifici che semplificano notevolmente sia la pubblicazione che la sottoscrizione a Beebotte (Vedi articolo).

    in risposta a: Conversione da modbus RTU ad over IP #49478
    Sergio Bertana
    Amministratore del forum

    Credo ti riferisca ad un convertitore Ethernet/Seriale (Come l’ATC-1200). Questo argomento è già stato trattato in questo topic.

    Con questi convertitori se ti connetti ad esempio con uno SCADA lato ethernet lo SCADA utilizzerà il protocollo Modbus over IP che verrà riportato pari pari sulla seriale. In realtà alcuni SCADA hanno la possibilità di effettuare una connessione ethernet ed utilizzare il protocollo Modbus RTU. Quello che tu chiedi è un gateway modbus come l’ATC-3002.

    in risposta a: Comunicazione con Moduli Yotta A-1xxx #49412
    Sergio Bertana
    Amministratore del forum

    Come esempio ecco un semplice programma FBD che si connette al modulo Yotta A-1012 ed acquisisce i 2 ingressi digitali e comanda le 2 uscite. Come vedi ho utilizzato le impostazioni di default del modulo 9600, n, 8, 1 e come nodo Modbus ho definito il nodo 0 che è il nodo di broadcast. Attenzione se usi nodo 0 devi avere un solo dispositivo connesso.

    Nel programma puoi aggiungere istanze del FB SAModbusCmd per gestire gli altri dati modbus, come vedi dallo screenshot del programma ho impostato tempi di timeout e delay sulla comunicazione di 1 secondo per permetterti di vedere tramite la cosole di spionaggio i dati Modbus, vedi la finestra di Toolly (Download progetto).

    in risposta a: Comunicazione con Moduli Yotta A-1xxx #49411
    Sergio Bertana
    Amministratore del forum

    Non scrivi quale modello di moduli Yotta stai utilizzando, io oggi ho provato su un PC con Windows 10 installato di “fresco”, ho installato il programma Yotta Utility vers. 5.7.32 scaricato dal nostro sito e mi sono connesso ad un modulo A-1012.

    Eseguendo il comando Search for modules (Il logo del binocolo), come dici tu, il modulo viene visto connesso alla porta seriale e con un doppio click sul modulo passo alla finestra di impostazione da cui è possibile testare e configurare il modulo.

    Ora visto che nel tuo caso non riesci ad aprire la finestra delle impostazioni proverei a reinstallare il programma, e/o eventualmente provare su di un altro PC. Non vorrei che un qualche programma che è in esecuzione sul PC ti crei il problema.

    in risposta a: App per visualizzazione cMT-SVR #48968
    Sergio Bertana
    Amministratore del forum

    L’App CMT-Viewer è disponibile per:

    Sistemi Windows (Dal 7 al 10), scaricabile direttamente dal ns sito.
    Android scaricabile dal play store o su richiesta possiamo fornire il file apk.
    Per i sistemi Apple l’App per iPhone e iPad è scaricabile dall’apple store.

    Per i sistemi Mac attualmente non esiste un’App, chi l’ha utilizzata ha scelto come workaround di installare una macchina virtuale con Windows.

    Per quanto riguarda il server VNC su cMT-SVR non è presente.

    in risposta a: Allocazione in memoria delle variabili strutturate #48965
    Sergio Bertana
    Amministratore del forum

    La selezione del size non è importante il compilatore assegnerà alla variabile la dimensione corretta indipendentemente dal size definito.

    Il campo size serve unicamente rappresentare l’associazione della variabile con posizioni fisiche nella memoria. La rappresentazione è fornita dalla concatenazione del segno di percentuale “%”, di un prefisso di allocazione, di un prefisso di dimensione e uno o due numeri interi senza segno, separati da punti (.). Esempio

    % location.size.index.index

    location può essere: I Input, Q Output, M Memory
    size può essere: X Single bit, B Byte (8 bits), W Word (16 bits), D Double word (32 bits)

    Quindi per un ingresso digitale: %IX0.0, %IX5.6, %IX0.8
    Quindi per una uscita digitale: %QX0.0, %QX5.6, %QX0.8
    Per variabili in memoria: %MX100.0, %MB100.10, %MW100.32, %MD100.64

    in risposta a: Domande varie sul modulo CPU #48678
    Sergio Bertana
    Amministratore del forum

    Premesso che chiedere all’oste se il vino è buono si corre il rischio di avere una risposta di parte… ma risponderò con sincerità alle tue domande.

    Accesso WEB, Il modulo CPU PLC SlimLine Raspberry Pi è basato sulla CPU Raspberry Pi 3B+ ed usa il noto SO Raspbian basato su Linux Debian. Quindi puoi fare tutto quello che un sistema Linux ti permette, installare Apache come Web server, installare PHP, MySQL, Node.js, Node-RED, ecc. Detto questo le pagine HTML le devi realizzare tu come faresti su qualsiasi hosting web. Io ho trovato molto comodo per realizzare l’interfaccia utente Node-RED (Vedi articolo).

    Affidabilità, i moduli Raspberry sono costruiti in milioni di pezzi quindi lo standard qualitativo è altissimo. In molte applicazioni al modulo Raspberry sono collegati in modo più o meno approssimativo moduli per interfacciare il campo che tutto hanno meno che dell’industriale ed ecco nascere problemi di crash funzionali dovuti alla realizzazione del sistema e non al modulo CPU. Nel nostro sistema il modulo CPU si interfaccia a moduli di I/O tutti galvanicamente isolati e già da anni utilizzati in ambiente industriale.

    Reperibilità, certo il modulo viene aggiornato ma la Raspberry foundation ne mantiene il layout quindi anche i nuovi moduli possono essere utilizzati. Il SO è Linux, quindi nel caso non si reperisse più il modulo Raspberry possiamo utilizzare un’altro modulo CPU basato su Linux mantenendo la piena compatibilità.

    Programmabilità, forniamo prodotti per utilizzo industriale quindi è normale utilizzare la programmazione secondo la normativa IEC-61131, è possibile utilizzare CODESYS oppure utilizzare LogicLab.

Stai visualizzando 15 post - dal 1,696 a 1,710 (di 4,507 totali)