Amicoadi Inserito: 4 agosto 2020 Segnala Inserito: 4 agosto 2020 Buongiorno, ho installato una rete HomePLC composta da: 1 HPLC primo Master con 4 slave i/o + 2 lettori schede + 2 MCU4 (termoregolatori) + 3 slave LUX + Sonda temperatura esterna secondo Master con 5 slave i/o + 1 convertitore 0-10V + 4 MCU4 (termoregolatori) + 5 slave LUX terzo Master DMX con 2 alimentatori. Scrivendo un semplice codice con bit di gestione e bit Event le dimensioni totali sono: CODE SIZE (CODE) = 30040 IDATA SIZE (IDATA) = 41 XDATA SIZE (XDATA) = 512 Con questo codice quando lo carico sull'homeplc (download) spesso mi da errore di memoria e poi ho notato che la lettura dei dati dei MCU4 è lentissima (refresch di circa 2 minuti). Eliminando parte del codice, quindi riducendo le dimensioni, il refresch schede a circa 10 secondi. Qualcuno sa quali sono le dimensioni massime del codice? C'è modo per risolvere questo problema? Grazie
PID Inserita: 18 agosto 2020 Segnala Inserita: 18 agosto 2020 La dimensione massima della versione 2 di HomePLC è 32 Kbyte
Amicoadi Inserita: 22 agosto 2020 Autore Segnala Inserita: 22 agosto 2020 ok, grazie. Quindi nonostante mi mancano 2 Kbyte al massimo, mi tocca rivedere il codice per poter velocizzare la lettura dati degli MCU. Strano questo
PID Inserita: 24 agosto 2020 Segnala Inserita: 24 agosto 2020 La lettura dati non dipende da come scrivi il Ladder, ottimizzando il ladder con funzioni più mirate puoi arrivare alla metà o meno del codice, questo si.. Per farti un esempio, se usi le librerie dimmer al posto delle funzioni dimmer evolution il codice diventa molto molto più pesante, e la regolazione meno lineare.. è solo un esempio...
PID Inserita: 24 agosto 2020 Segnala Inserita: 24 agosto 2020 Nel caso della termoregolazione il lavoro maggiore lo esegue direttamente il termoregolatore, quindi sul ladder possono servire solo alcune forzature, che so modifica centralizzata del Riscaldamento/Raffrescamento, modifica centralizzata o per zona del Comfort/mantenimento ecc.. ma in genere anche per grandi impianti (30/40 termoregolatori) sono poche righe di codice...
Amicoadi Inserita: 17 settembre 2020 Autore Segnala Inserita: 17 settembre 2020 Concordo con te che il grosso lo fa il termoregolatore. Quello che noto di strano che più è "grosso" il codice ladder più tempo ci vuole per il refresch dati dai termoregolatori. Nel ladder ho inserito solo i bit di base (estate, inverno, mantenimento, confort ecc...). Infine nel ladder ho inserito le scalature della temperatura per poter passare ad un applicativo, realizzato in visual basic, il valore di temperatura reale letto dal termoregolatore.
Livio Orsini Inserita: 17 settembre 2020 Segnala Inserita: 17 settembre 2020 14 minuti fa, Amicoadi ha scritto: Quello che noto di strano che più è "grosso" il codice ladder più tempo ci vuole per il refresch dati dai termoregolatori. Perchè impiega più tempo ad elaborare il programma.
PID Inserita: 17 settembre 2020 Segnala Inserita: 17 settembre 2020 4 ore fa, Amicoadi ha scritto: Concordo con te che il grosso lo fa il termoregolatore. Quello che noto di strano che più è "grosso" il codice ladder più tempo ci vuole per il refresch dati dai termoregolatori In che senso? Il refresh dei termoregolatori in HomePlc avviene per evento, è non ha un tempo predefinito, dipende se vi sono variazioni... Da Visual Basic o similari infatti esiste una funzione apposita per richiedere il refresh...
Livio Orsini Inserita: 18 settembre 2020 Segnala Inserita: 18 settembre 2020 17 ore fa, PID ha scritto: Il refresh dei termoregolatori in HomePlc avviene per evento, Ma avviene su interruzione o su lettura in polling?
PID Inserita: 18 settembre 2020 Segnala Inserita: 18 settembre 2020 Quote Ma avviene su interruzione o su lettura in polling? come anticipato sopra i dati vengono inviati solo se avviene una variazione... quindi per fare un esempio in questo caso tra il PLC e i dispositivi non c'è un polling di lettura continuo dei dati (esp. tipico del modbus).
Livio Orsini Inserita: 19 settembre 2020 Segnala Inserita: 19 settembre 2020 (modificato) Ma non hai risposto. C'è un polling o c'è un interrupt? Perchè da quello che scrive amicoadi sembra che sia aggiornato per polling. Modificato: 19 settembre 2020 da Livio Orsini
PID Inserita: 19 settembre 2020 Segnala Inserita: 19 settembre 2020 (modificato) Quote Perchè da quello che scrive amicoadi sembra che sia aggiornato per polling. dato che il programma FBD/Ladder gira su una CPU distinta, quindi essendo task distinti di norma le due cose non interferiscono tra loro. Modificato: 19 settembre 2020 da PID
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora