Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,636 a 1,650 (di 4,482 totali)
  • Autore
    Post
  • in risposta a: Aggiunta di porta comunicazione seriale RS485 #50596
    Sergio Bertana
    Amministratore del forum

    La soluzione è utilizzare un convertritore USB/Seriale ATC-850 connesso ad una porta USB del modulo. Le porte aggiuntive assumeranno un identificativo assegnato automaticamente (Avremo /dev/ttyUSB0, /dev/ttyUSB1, ecc). Connesso il convertitore al modulo, da console SSH con il comando lsusb è possibile vedere se è stato riconosciuto. Ecco il comando eseguito su di un modulo a cui è stato connesso un convertitore ATC-810.

    #lsusb
    Bus 001 Device 008: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

    Per conoscere il nome assegnato alla porta eseguire un listing della directory /dev, ecco il comando:

    #ls /dev | grep ttyUSB
    ttyUSB0
    ttyUSB1

    In questo caso al modulo sono stati connessi 2 convertitori USB/Seriale e le porte sono identificate con /dev/ttyUSB0 e /dev/ttyUSB1.

    Per utilizzare le porte seriali da LogicLab fare riferimento al FB SysSerialPort.

    in risposta a: Rilevamento impulsi encoder e posizione asse #50588
    Sergio Bertana
    Amministratore del forum

    Il FB è disponibile anche su XTarget_11_0.

    Comunque per l’aggiornamento devi fare riferimento a questo articolo.

    in risposta a: Collegamento di più pannelli a PLC #50567
    Sergio Bertana
    Amministratore del forum

    Hai due soluzioni per raggiungere il tuo obbiettivo.

    1) Un pannello HMI centrale connesso al PLC e 5 HMI remoti connessi al pannello principale, in questa configurazione i pannelli remoti dialogano con il PLC attraverso la connessione realizzata dal pannello principale. Vantaggi hai una sola connessione al PLC (Nel caso il PLC avesse limiti sulle connessioni), ma potresti avere un rallentamento dovuto al collo di bottiglia dell’unica connessione.

    2) Tutti i pannelli connessi direttamente al PLC ma occorre verificare che il PLC accetti il numero di connessioni richieste.

    La soluzione 1 permette di connettere il pannello principale anche in seriale con il PLC permettendo poi la connessione dei pannelli remoti in ethernet con il principale.

    Puoi anche optare per soluzioni miste più pannelli principali connessi al PLC a cui connetti pannelli remoti.

    in risposta a: Rilevamento impulsi encoder e posizione asse #50499
    Sergio Bertana
    Amministratore del forum

    La FB SysGetCounter come tutti gli oggetti il cui nome inizia per Sys è una libreria embedded la trovi nella cartella librerie. Usa i tasti Ctr-L in LogicLab si apre in basso la visualizzazione degli oggetti di libreria e li trovi il FB.

    Comunque essendo embedded basta istanziare un oggetto di quel tipo lo puoi usare direttamente. Ma una domanda hai aggiornato il sistema a XTarget_12 ?

    in risposta a: Rilevamento impulsi encoder e posizione asse #50485
    Sergio Bertana
    Amministratore del forum

    Se con encoder indichi un generatore di impulsi puoi utilizzare il semplice counter che si trova sulla scheda CPU, per l’acquisizione devi utilizzare il FB SysGetCounter.

    Se invece vuoi acquisisre un vero encoder con uscite A e B sfasati di 90 gradi devi utilizzare una scheda hardware che abbia la gestione encoder ed acquisire il valore con il FB SysGetEncoder.

    in risposta a: Una soluzione per l’invio di SMS multipli #50375
    Sergio Bertana
    Amministratore del forum

    Non capisco il perchè della necessità di duplicare la FB , se ti servono più numeri o più messaggi basta aggiungerli alla FB.

    L’FB può inviare fino a 32 messaggi diversi, basta definirli nell’array Message settando il relativo bit nella variabile MsgSelector.

        MsgSelector:=16#00000007; (* Message selector *)
        Message[0]:=ADR('Messaggio 0');
        Message[1]:=ADR('Messaggio 1');
        Message[2]:=ADR('Messaggio 2');

    Ogni messaggio può essere inviato fino a 32 numeri diversi, basta definirli nell’array PhoneNr settando il relativo bit nella variabile PNrSelector

        PNrSelector:=16#00000003; (* Phone number selector *)
        PhoneNr[0]:=ADR('+39123456789');
        PhoneNr[1]:=ADR('+39123456789');

    Se hai esigenze diverse nel progetto c’è il codice sorgente della FB basta modificarla per adattarla alle tue esigenze.

    in risposta a: Utilizzo LogicLab su Raspberry standard #50314
    Sergio Bertana
    Amministratore del forum

    Il LogicLab specifico per Raspberry che viene fornito da Axel permette di utilizzare solo gli operatori standard IEC, mentre la versione che forniamo noi (sarà disponibile tra poco) permette di utilizzare tutto il set di funzioni e FB da noi sviluppate (Vedi manuale).

    Molte di queste funzioni sono state sviluppate in C++ come PlugIn di LogicLab, altre sono sviluppate direttamente in LogicLab utilizzando il linguaggio ST (Structured Text).

    E’ prevista la possibilità di fornire una distribuzione di LogicLab completa di tutte le nostre librerie utilizzabile anche su moduli Raspberry di mercato, quindi anche sul modulo che già possiedi. Stiamo lavorando proprio su questo, se ci segui, sul sito a breve, troverai notizie che riguardano la pubblicazione del frutto di questo lungo lavoro.

    in risposta a: Una soluzione per l’invio di SMS multipli #50303
    Sergio Bertana
    Amministratore del forum

    Si in effetti ho provato a compilare il vecchio progetto e vi erano i due errori che tu lamenti. Così essendo un vecchissimo progetto ho pensato di aggiornarlo utilizzando la nuova versione della libreria eLLabModemLib_F100.

    Ho riscritto il programma principale in FBD, ma non ho provato il progetto, lascio a te il compito di testarlo ed eventualmente dirmi se hai problemi, ti lascio il progetto MultipleSMS_v1 per il download.

     

    in risposta a: Comunicazione Modbus con PLC Elsist #50301
    Sergio Bertana
    Amministratore del forum

    No l’unico Data Block accessibile da Modbus è il DB100 accessibile con indirizzo Modbus 40000. Le System variables di sola lettura a cui tu fai riferimento sono mappate nel DB 0 e sono accessibili da programma utente con il loro indirizzo o meglio con il loro mnemonico, ma non possono essere lette da Modbus. La stessa cosa dicasi per le System variables di lettura e scrittura mappate nel DB 1.

    Se ti serve accedere a queste variabili da Modbus li devi appoggiare ad una variabile allocata nel DB100.

    in risposta a: Velocità comunicazione convertitore Ethernet-seriale ATC-1000 #50296
    Sergio Bertana
    Amministratore del forum

    Il convertitore Ethernet/Seriale ATC-1000 è l’entry level a basso costo di una gamma di convertitori prodotta da ATC e il processore utilizzato non è tra i più veloci della gamma. Comunque è il convertitore Ethernet/Seriale più venduto e non abbiamo mai avuto feedbacks negativi sulla velocità.

    Lo utilizzano moltissimi clienti per comunicazioni RS485 con inverter nel campo fotovoltaico o per acquisizione dati in automazione. Naturalmente come dico a tutti a volte il software di virtualizzazione introduce problemi e qui magari si può provare a utilizzare un software di virtualizzazione diverso. Puoi provare il HW VSP3 – Virtual Serial Port scaricabile dal nostro sito nella sezione download.

    Dove è possibile consiglio di non utilizzare il software di virtualizzazione COM ma di accedere direttamente al convertitore con una connessione TCP/IP.

    Venendo al tuo problema posso dirti di provare una connessione in UDP (Che non gestendo l’Ack è più veloce). Se puoi verifica la velocità con una connessione diretta in TCP senza usare il virtual COM.

    Nei parametri di configurazione nel menù UART, hai mica impostato un valore di delimitazione sul Silent time ? Perchè in questo caso il convertitore attende il tempo impostato prima di inviare il pacchetto dati.

    in risposta a: Rilasciato nuovo FB HTTPClient #50265
    Sergio Bertana
    Amministratore del forum

    Il tuo problema nasce dal fatto che non hai messo la spunta sul rispetto delle maiuscole/minuscole nel progetto, di default LogicLab lo lascia non attivo, occorre mettere manualmente la spunta. Troverai una  indicazione come questa in molti post del forum.

    Nel progetto conviene sempre attivare il tick Case sensivity, nel menù Project-> Options (Screenshot). In questo modo si controlla il case delle lettere nei nomi di variabili e funzioni evitando di dare nomi a variabili che possono essere in contrasto con nomi già predefiniti.

    Poi se vuoi un esempio completo di utilizzo puoi fare riferimento alla knowledge relativa.

    in risposta a: Assegnazione FILEP di un oggetto SysUdpClient #50263
    Sergio Bertana
    Amministratore del forum

    Come dicevo la connessione UDP client non prevede meccanismi di sincronizzazione con il server come nel caso di connessioni TCP. Quindi nel tuo caso vedrei bene utilizzare un unico SysUDPClient per gestire tutte le connessioni, e potresti istanziarlo direttamente nella tua FB. Così passi alla FB solo l’indirizzo IP e la porta a cui deve connettersi.

    In merito al FILEP, quando abiliti l’FB SysUDPClient potrebbero essre necessari più loop di programma prima che l’uscita File sia valorizzata. Nel tuo programma precedente tui passavi questa uscita sempre alla FB ModbusMaster, e quindi questa veniva eseguita magari alcuni loop senza FILEP corretto (Se guardi il log avrai degli errori) e poi quando era valorizzato il FB lavorava corettamente.

    in risposta a: Assegnazione FILEP di un oggetto SysUdpClient #50238
    Sergio Bertana
    Amministratore del forum

    Premetto che non ho ben capito il tuo problema, quello che hai fatto nella dichiarazione dei parametri del tuo blocco funzione è corretto. Dichiari un parametro in ingresso di tipo FILEP che poi lo passerai alla FB ModbusMaster che avrai istanziato nel tuo blocco funzione.

    Ora hai un errore in compilazione, oppure non ti funziona il programma ?

    Nel mdb.Done disabiliti il Connect dell’UDP client. Questo è inutile, l’UDP non è un socket come il TCP che si “ricorda” i dati di connessione, quando invii dati al file del UDP client questo li invia all’altro sistema e poi rilascia le risorse. Quindi puoi tenerlo sempre in condizione di Connect attivo, visto che hai definito un LifeTime, se su quel client non passano dati per il tempo definito automaticamente si disabilita e riabilita dopo un piccolo tempo. Ma nel tuo caso tu hai sempre comunicazione.

    Il valore di IFTime del ModbusMaster su comunicazioni UDP e TCP visto che i pacchetti sono piccoli (<1Kb) quindi sono inviati in un unico frame si può impostare a “0” con vantaggi sul tempo di comunicazione.

    in risposta a: Rilasciato nuovo FB HTTPClient #50234
    Sergio Bertana
    Amministratore del forum

    Sembra che hai definito una qualche variabile con il nome “LD” o qualcosa di simile, per capire dovresti inviare alla nostra mail di supporto il tuo progetto Logiclab così possiamo verificare direttamente per capire l’errore.

    in risposta a: Interpretazione file Logs #50226
    Sergio Bertana
    Amministratore del forum

    Per difendersi al meglio e per evitare tutte le problematiche di avere una connessione con IP pubblico, consiglio di inviare dallo SlimLine i dati nel cloud. In questo modo non devi aprire nessuna porta in ingresso e quindi non esiste la possibilità di connettersi allo SlimLine.

    Per fare questo puoi usare i protocolli MQTT o il REST (Se cerchi nella nosta Knowledge troverai molti articoli che ne parlano) puoi guardare ad esempio questo articolo o questo articolo.

Stai visualizzando 15 post - dal 1,636 a 1,650 (di 4,482 totali)