Vai al contenuto

tommas.cavallini

Risposte nei forum create

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Autore
    Post
  • in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #58986
    tommas.cavallini
    Partecipante

    Anzitutto mi scuso per la confusione: devo leggere sia gli EnergyMeter che le elettrovavole, su queste ultime devo effettuare anche la scrittura: dato che entrambe comunicano in RTU ho pensato di poter chiedere direttamente qui senza dover per forza aprire un altro topic.

    Venendo a noi, non ho ben capito la soluzione proposta: pensavo di separare la fase di lettura e scrittura non collegando i FB in cascata. Infatti, la lettura deve essere continuativa mentre la scrittura avviene solo quando e se voglio cambiare dei parametri.

    in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #58983
    tommas.cavallini
    Partecipante

    Perfetto, adesso il mio problema sta nella gestione temporale di lettura e scrittura di dieci elettrovalvole.

    Se per la lettura basta associare il programma al task Back in modo tale da essere eseguita periodicamente, la scrittura invece vorrei poterla eseguire solo in seguito ad una particolare condizione: ho visto che LogicLab non mette a disposizione dei task ad evento, quindi come potrei fare?

    in risposta a: Realizzare una connessione Modbus TCP/IP #58949
    tommas.cavallini
    Partecipante

    Perfetto, ho provato tutto per come mi ha spiegato Lei e funziona, quindi La ringrazio davvero.

    Adesso però ho un altro problema: mi è stato chiesto di ritardare la lettura in Modbus in modo da eseguire una lettura al minuto. Per fare ciò ho pensato di agire sulla voce Delay: è corretto mettere un delay di 60 per il mio fine o sarebbe meglio mettere un eTON prima di Enable in modo da ritardare con il timer?

    Nel caso in cui vada a modificare il Delay (mettendo 60), avendo due modbusMaster in cascata, alla voce Delay del secondo FB dovrei mettere 61 (60 del precedente + 1 di ritardo tra le due letture) o mi basta solo inserire il ritardo tra le due letture (1 sec) e nel primo lasciare 60?

    in risposta a: Realizzare una connessione Modbus TCP/IP #58909
    tommas.cavallini
    Partecipante

    Le dico subito che purtroppo la lettura dei valori dal datataker non va a buon fine se uso VarSwap (avevo pensato di usare proprio questo all’inizio, ma viene fuori un numero altissimo) mentre se uso il FB BEArrayToVar funziona e mi restituisce il valore letto in modo corretto.

    Per il resto, 36 dei 40 sono in registri consecutivi, quindi per questi posso eseguire un unico comando di lettura (specificando alla voce Address il primo indirizzo da cui partire e alla voce Points del ModbusMaster quanti dati voglio leggere, nel mio caso 36*2, 72). Nel buffer del ModbusMaster quindi metterò un array che sia in grado di contenere 36 dati (chiamato per intenderci ArrayA), questo array poi sarà collegato a BEArrayToVar alla voce Source e in Destination metterò un altro array (ArrayB) che conterrà tutti i valori letti in modo corretto, giusto?

    La mia domanda è: automaticamente, dopo ogni lettura, il dato letto va in ArrayA, viene eseguito BEArrayToVar e viene memorizzato in ArrayB. Al ciclo di lettura successivo, il secondo dato letto va in ArrayA subito dopo il precendente in automatico, per poi andare in ArrayB memorizzato sempre di fila, giusto?

    in risposta a: Realizzare una connessione Modbus TCP/IP #58905
    tommas.cavallini
    Partecipante

    Ho realizzato una comunicazione Modbus TCP/IP con un datataker utilizzando i FB SysTCPClient e ModbusMaster, al termine del quale, una volta ricevuto il dato in IEE754, ho effettuato una conversione con il FB BEArrayToVar.

    A questo punto, il problema è che devo leggere 40 valori dallo stesso dispositivo e salvare ciascuno di essi in una variabile a sé stante: come potrei fare?

    Ho visto anche il FB consigliato da lei, il ACModbus, ma il problema è che una volta lette queste variabili devo necessariamente effettuare la conversione con BEArrayToVar per ciascuno di essi singolarmente e instanziare una variabile per ciascuno dei dati, quindi temo che non posso utilizzarlo.

    Cosa mi consiglia di fare per risolvere il problema?

    in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #58894
    tommas.cavallini
    Partecipante

    Adesso è venuto fuori il problema che tramite connessione ModBus RTU voglio anche scrivere dei dati. Mi chiedevo quindi: se per la lettura usavamo il FB varSwap per convertire in REAL i valori, per la scrittura come faccio?

    Pensavo di inserire i valori da scrivere alla voce Buffer del FB ModbusMaster, ma credo di aver capito che non posso scrivere un valore REAL ma un valore nello standard IEE754, giusto?

    Come faccio ad eseguire quindi la conversione inversa di VarSwap?

    in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #58808
    tommas.cavallini
    Partecipante

    Ho provato il metodo con i FB ModbusMaster in cascata e funziona, grazie mille per l’aiuto!

    I suoi video e le sue spiegazioni sono stati fondamentali soprattutto perchè mi sono appena affacciato al mondo dei PLC, gliene sono veramente grato. Nel caso avessi altri dubbi, scriverò sul forum che è molto ben fatto e le risposte sono più celeri di quanto mi aspettassi.

    in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #58805
    tommas.cavallini
    Partecipante

    Buongiorno, intanto grazie mille per l’attenzione. Nel mio progetto ho utilizzato i FB SysSerialPort e ModbusMaster e VarSwap.

    Ho provato in seguito a collegare un altro FB ModbusMaster (che identifica il secondo SDM120 avente nodo 2) utilizzando lo stesso FB per  la porta seriale. Nella porta EN del secondo ModbusMaster ho aggiunto un eTON con tempo di 200ms, però riesco sempre a leggere solo il primo (collegato al primo FB ModbusMaster). Ho provato anche a separare il tutto in due programmi diversi associandoli anche a task diversi, ma il risultato non cambia, anzi, non legge più nemmeno il primo.

    Come posso risolvere? Grazie ancora in anticipo.

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)