Vai al contenuto
PLC Forum


Massima dimensione codice HomePLC


Amicoadi

Messaggi consigliati

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

Link al commento
Condividi su altri siti

  • 2 weeks later...

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

Link al commento
Condividi su altri siti

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...  

Link al commento
Condividi su altri siti

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...

Link al commento
Condividi su altri siti

  • 4 weeks later...

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.

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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... 

Link al commento
Condividi su altri siti

17 ore fa, PID ha scritto:

 

Il refresh dei termoregolatori in HomePlc avviene per evento,

 

Ma avviene su interruzione o su lettura in polling?

Link al commento
Condividi su altri siti

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).

 

Link al commento
Condividi su altri siti

Ma non hai risposto.

C'è un polling o c'è un interrupt?

Perchè da quello che scrive amicoadi sembra che sia aggiornato per polling.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

 

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: da PID
Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...