Vai al contenuto
PLC Forum


PENELOPE 2 Plus (centralina autoconsumo): poco hardware, tanto software.


Luigi Marchi

Messaggi consigliati

           Dopo le tante discussioni sulla centralina autoconsumo, e sulle modifiche proposte in corso d’opera, ecco il file software, predisposto per PLC Forum, che riassume il contenuto dei dibattiti.   

           Circa l’hardware rimane fermo l’utilizzo di Arduino UNO cui sono collegati 2 contatori digitali tramite un partitore resistivo (100 ohm sul lato 5 volt positivi e 39 K sul lato massa con SO+ allacciato alla resistenza da 100 ohm e SO- allacciato a quella da 39k unitamente al cavetto che va a A1 o A2).  

           Anche questa versione di PENELOPE  è’ un software potenzialmente con qualche “baco”, come accade anche al miglior software professionale, ma posso assicurare di averlo verificato con attenzione, sul campo, cioè con impianto fotovoltaico in funzione e stufetta allacciata.    

           Ecco le modifiche implementate:

       1) Ha il sistema di “cattura” impulsi più sofisticato (pin A1 e A2), per adattarsi a diversi modelli di contatori digitali. 

          2) Ha il display 2x16 SERIALE per la visualizzazione delle informazioni (A4 e A5).

       3) Ha 3 uscite multiple (D6, D9 e D10), che consentono di attivare fino a 3 carichi, tramite RSS, con priorità al primo e, in subordine, al secondo.

           Per adattare i più diversi contatori digitali, circa il numero di impulsi per Kwh (1.000 - 2.000 - 3.200), occorre modificare 2 righe di software, anzi 2 numeri. Il software è impostato, di default, per contatori da 3200 impulsi perchè sono preferibili, in quanto più reattivi.

 

 

 

Link al commento
Condividi su altri siti


La visualizzazione delle informazioni (in 2 videate a rotazione) sono quelle solite:

- nella prima ci sono i watt di produzione e i watt dei consumi domestici, che non hanno bisogno di interpretazioni.

- nella seconda a sinistra viene visualizzata la differenza, in watt, tra produzione e consumi indicata come "W_GSE" se la produzione supera i consumi e "W_Enel" se stiamo prelevando energia, cioè se i consumi superano la produzione (come accade di notte).

A destra, di questa seconda videata, appare il ciclopwm (duty cycle) espresso in percentuale, che va interpretato. Infatti accade che questo numero può essere compreso tra 0 e 314.

Se è un numero compreso tra zero e cento significa che è attiva la resistenza pilotata dal primo RSS.

Se il numero è compreso tra 100 e 200 significa che è attiva la resistenza sul secondo carico PWM, vuoi perchè funziona il primo PWM e c'è ancora energia da "spendere", oppure perchè il PWM numero 1 è attivo, ma il termostato ha staccato il carico e quindi funziona solo il numero 2.

Stesso discorso per il numero 3 che è attivo quando il ciclopwm "viaggia" tra 200% e 300%

Se appare un numero superiore a 300 (segnatamente 314) significa che abbiamo un esubero di energia rispetto ai carichi attivi e quindi stiamo immettendo energia in rete, come poi viene evidenziato nelle altre letture sul display.

Quello che accade è tutto trasparente.

Qualcuno mi ha chiesto di mettere anche dei led, sulla centralina, per capire meglio cosa accade sul versante carichi. Si può fare.

 

Link al commento
Condividi su altri siti

Scaricati Atmel Studio 6.2 e Visual Micro per Atmel Studio 6.2 , installali ....sopra ad arduino ide .

Incomincia ad impostare i tuoi progetti in forma professionale perche poi quando il sw diventa corposo non ne vai fuori piu .

ciao

Link al commento
Condividi su altri siti

Lo Hw sarà anche poco, ma almeno metti gli schemi completi e leggibili altrimenti anche questa discussione va nel cestino.

 

Non puoi presentare i tuoi "elaborati" sul forum senza darne tutte le informazioni, compresi sorgenti delle eventuali librerie dedicate o modificate.

Se non vuoi o non puoi astieniti.

 

PS per fare uno schema decente non c'è bisogno di costosi programmi CAD basta anche un programma gratuito e open source come FIDOCAD.;)

Link al commento
Condividi su altri siti

Dott. Cicala.

Ciclopwm è una variabile numerica che può assumere un valore compreso tra zero e ottocento.

Arduino misura continuamente i watt di produzione fotovoltaica e i consumi domestici (espressi con un numero) e, ad ogni ciclo, aumenta il valore della variabile "ciclopwm" se la produzione supera i consumi, e viceversa. Perchè la differenza tra i due valori deve tendere a zero e l'unico sistema che abbiamo "sposato" è quello di aumentare i consumi.

Se non è allacciato nessun consumo supplementare, che compensi la produzione, la variabile ciclopwm arriva in pochi secondi al massimo, cioè a quota 800, che tradotta in percentuale - considerato che Arduino misura il duty cycle in segmenti da 0 a 255 - fa 314, in percentuale.

Il duty cycle - di compensazione dei consumi - viene spalmato su diverse uscite pwm. E' il meccanismo già descritto nella discussione sulle uscite PWM nultiple.

Ho solo applicato quanto definito a livello teorico. Avevo anche precisato come, con qualche riga di codice. Funziona. Ho solo dovuto apportato qualche piccolo correttivo, perchè le variabili numeriche di Arduino sono "difficili" da gestire. tra quelle "int", "unsigned long", "int long" e compagnia cantante. Quando si debbono fare calcoli bisogna tenerne conto, diversamente escono dei dati che disorientano.

C'ero già arrivato un anno fa, quando il 10 maggio sono partito per il Perù sapendo che con l'impianto fotovoltaico dovevo mettere energia nei 3 boiler della missione. 

E' solo la dimostrazione che il PWM di Arduino è facile da gestire, con i RSS.

 

 

Link al commento
Condividi su altri siti

Come disegnatore sono un disastro, ma spero si capisca qualcosa.

D'altro lato è tutto semplicissimo: ci sono solo 2 contatori digitali collegati ad Arduino (A1 e A2) con 4 resistenze e un display seriale (A4 e A5) cui vanno aggiunti i 3 RSS (D6, D9 e D10) collegati direttamente ad Arduino.

L'alimentazione di Arduino a 9-12 volt è affidata a un trasformatorino da pochi milliamper, tipo Nokia esterno o integrato DIN.

Meno di così è impossibile trovare !!!!!!!

 

 

Penelope 2 schema elettrico_2.jpg

Link al commento
Condividi su altri siti

Quote

Se non è allacciato nessun consumo supplementare, che compensi la produzione, la variabile ciclopwm arriva in pochi secondi al massimo, cioè a quota 800, che tradotta in percentuale - considerato che Arduino misura il duty cycle in segmenti da 0 a 255 - fa 314, in percentuale

 

Scusa perchè tutta questa complicazione che, tra l'altro, introduce anche errori di arrotondamento.

Dato che arduino limita il duty cycle tra 1 e 254 (0 e 225 signifca uscita 0 e uscita a +5V) perchè non normalizzare il tutto a questi valori? Molto più semplice ed efficiente.

Io, dalle prime letture del software, ho tratto l'impressione che a non c'è stato a monte un lavoro di progettazione, ma è stato scritto a pezzi secondo bisogno ed estro del momento.

Questo non è solo un fatto formale, ma porta poi a inefficienz e malfunzionamenti, anche di difficile inidvidiazione.

Link al commento
Condividi su altri siti

Luigi non importa se disegni male, io disegno molto peggio e proprio per questo uso strumenti di disegno computerizzati.:)

L'importante è poter capire e d avere i dati per studiare l'applicazione.

 

Vediamo se ho capito correttamente lo schema.

Le uscite di potenza sono 3 relè SSR in AC. Come sono pilotati? In PWM? Quali sono i loro carichi?

I due contatori digitali cosa danno in uscita? Un segnale variabile tra 0-5V proprozionale alla potenza? Oppure sfrutti gli ingressi analogici come ingressi digitali per contare impulsi?

Nel secondo caso dacci qualche parametro che metta in relazione la potenza con il numero di impulsi e la loro frequenza, magari, se ce lo hai, il link al datasheet.

Link al commento
Condividi su altri siti

I valori (numerici o in percentuale) dei ciclipwm del relè 1, del relè2 e del relè 3 li ho (basta visionare il mio codice), di momento in momento.

Posso anche visualizzarli, su un display 4x20.

O anche in una terza videata del display 2x16. Ci stanno anche in una riga da 16 caratteri.

Si può fare tutto. Come idea non è male. Suggerimento utile. E' molto meglio che dei banali led, che mi stanno assai antipatici.

Link al commento
Condividi su altri siti

Scusa ma non son sicuro di aver capito.

Tu moduli a circa 420 Hz (frequenza di default) in PWM il comado di questi SSR ? Ho capito correttamente?

Link al commento
Condividi su altri siti

Adelino Rossi

a mio parere, se l'energia prodotta dal fv è inferiore o pari all'autoconsumo questa soddisfa le necessità dell'abitazione e l'eccesso va all'esterno,

viceversa se è inferiore la quota mancante viene presa dall'ente esterno.

Dato per assunto che questo fantomatico boiler laddove esiste è sempre acceso, sia che ci sia fv oppure no,

per soddisfare, se si vuole impedire che l'eccesso vada all'esterno l'unica soluzione è limitare la produzione dell'inverter fv.

le misure di energia sono già visibili in modo preciso e FISCALE sui gruppi misura esistenti.

Al di la del diletto hobbistico, a che serve arduino?

 

 

Link al commento
Condividi su altri siti

Il software non sa cosa è collegato ad ogni singolo relè (potrebbe essere uno scaldabagno da 400 w, oppure una stufetta da 1 Kw, oppure un boiler da 2 Kw). E potrebbe anche essere un carico momentaneamente disattivato dal termostato.

Per questo motivo il software, dopo aver catturato gli impulsi e aver determinato i watt in base alla distanza tra un impulso e l'altro, provvede semplicemente ad aumentare il ciclopwm (un numero generico, come abbiamo visto) quando "vede" che la produzione supera i consumi e lo fa ripetutamente fino ad ottenere il pareggio di produzione e consumi.

Quando diminuisce la produzione, o aumentano i consumi domestici, per l'accensione di un elettrodomestico, avviene il processo inverso.

Questo ciclopwm generico viene spalmato (del tutto, o in parte, da 0 a 255) su ciascun relè.

Il codice che attiva l'uscita PWM è il seguente:

 

      analogWrite(pin_carico1, ciclopwm1);
      analogWrite(pin_carico2, ciclopwm2);
      analogWrite(pin_carico3, ciclopwm3);

 

La frequenza di ciascuna uscita PWM (di D6, D9 e D10) è quella standard. Cambia solo il duty cycle.

 

Link al commento
Condividi su altri siti

Circa la cattura del segnale ne abbiamo parlato a lungo nelle discussioni precedenti.

E' un problema del software e per rendere più flessibile e sicura la cattura degli impulsi, in dipendenza di variazioni verificate del livello del segnale tra un contatore ed un altro, ho dovuto ricorrere (è un paradosso) agli ingressi analogici, abbandonando gli ingressi digitali usati in precedenza. 

Il motivo è che gli ingressi analogici mi danno un livello di segnale diviso in 1024 segmenti, cioè una misura piuttosto precisa rispetto a 5 volt (li utilizzo per fare le misure delle tensioni in ULISSE), mentre gli ingressi digitali mi danno ON (oppure 1) se il segnale supera 2,5 volt e mi danno OFF (oppure 0) se il segnale è inferiore a 2,5 volt.

Ho fissato in 1 volt soltanto il livello che mi segnala la presenza di un impulso.

Link al commento
Condividi su altri siti

nel mio caso saranno cosi':

ESTATE:

1 BOILER 50 litri

2 BOILER pannelli solari 180 litri

3 LAMPADE alogene

INVERNO:

1 BOILER 50 litri

2 RESISTENZA impianto VMC per scaldare aria

3 BOILER pannelli solari 180 litri 

 

Link al commento
Condividi su altri siti

Quote

Angelino: "se si vuole impedire che l'eccesso vada all'esterno l'unica soluzione è limitare la produzione dell'inverter fv."

 

 

Certamente. Concettualmente non fa una piega.

Modificando leggermente il software PENELOPE è possibile limitare la produzione quando non serve avere energia. Basta connettere il o i RSS sulle stringhe di pannelli in corrente continua a monte dell'inverter. Può essere una sola stringa o due.

Faccio però notare che le stringhe di pannelli possono avere tensioni di parecchie centinaia di volt e relè per corrente continua di tensione adeguata io non li ho trovati, ma neppure cercati più di tanto.

A me pare comunque discutibile simulare la nuvoletta, con un RSS gestito PWM: è molto meglio "vendere" o regalare l'energia in più alla comunità, anche perchè non è che i pannelli durano di più se non li si fa lavorare. Non si stancano, sono lavoratori indefessi. Ovviamente occorre essere convenzionati con Enel e avere lo "scambio sul posto".

Altra cosa è utilizzare il surplus di energia disponibile con consumi utili. E ce ne sono.

Quanto al boiler sempre acceso non è la soluzione che propongo. Propongo di collegare la resistenza del boiler alla rete con un deviatore che mi devia la fase come segue: 1) prelievo tramite il "rubinetto" del relè a stato solido, gestito da Penelope; 2) prelievo diretto da rete.

Questo deviatore mi serve per avere l'acqua calda anche quando per molte ore o giorni l'impianto fotovoltaico produce poco o nulla. da noi accade spesso d'inverno.

Sinora ho previsto l'attivazione del deviatore a manina, ma nulla vieta di attivarlo automaticamente via software, con un sensore di temperatura. Ci sto pensando.

 

 

 

 

Link al commento
Condividi su altri siti

Luigi te lo dico  per l'ultima volta , poi parto , vengo a Parma o Reggio O Bologna o dove sei e ti vengo a prendere  in casa e ti meno ;)

Scaricati questo software gratis che serve per disegnare i progettini con arduino 

Se non vedo entro domani sera il disegno fatto con fritsing sai gia cosa ti succederà ...... :)

http://fritzing.org/home/

Link al commento
Condividi su altri siti

I disegnini con la Breadboard sono molto carini, ma non mi sono mai cimentato. La breadboard non ce l'ho proprio. Sono affezionato alla millefori. E faccio in un attimo a mettere giù un circuito per il verso, pronto per il PCB, senza usare il software.

Gli schemi elettrici ce l'ho disegnati in testa e vado avanti senza carta e matita.

Cambiare le proprie abitudini è davvero difficile. Mi sa che mi devi proprio menare.

Uso talmente da tanti anni la tastiera del computer che non so prendere più una penna in mano, se non per fare (male) la mia firma. Uso il computer per fare tutto, ma sono testardo e non uso il software che è di ausilio a chi si occupa di elettronica. Sono le contraddizioni di chi ha la mia età (68 anni).

 


 

Link al commento
Condividi su altri siti

Sto prendendo nota dei sugerimenti. Si sa che con il software le variazioni sul tema cono infinite e le migliorie di più.

Livio Orsini: visualizzare sul display il duty cycle di ogni uscita PWM, cioè ciclopwm1, ciclopw2, ciclopw3. Certo che si può fare, a display potrebbe risultare: R1=100% R2=56% R3=0%  e cosi via. Ottimo.

Angelino Rossi: gestione boiler. Automatizzare la gestione della temperatura, tramite un sensore collegato ad Arduino. Quando la temperatura scende sotto un certo valore (esempio 40 gradi) Arduino manda tensione pwm al RSS cioè la 230 CA al boiler, indipendentemente dalla presenza di un surplus di energia. Serve per avere sempre acqua calda, specie in inverno quando il fotovoltaico produce poco. La modifica è semplicissima.

Spero che qualcuno si metta a "lavorare" sul software di base che ho proposto. Le variazioni e migliorie che si possono realizzare, nella logica della domotica, sono infinite. E' uno dei tanti vantaggi del software applicato ai microprocessori programmabili.

Link al commento
Condividi su altri siti

Allora smettiamola ssubito di raccontare balle.

Questo lavoro NON PUò FUNZIONARE!

 

Ma cosa cavolo vai a modulare con un PWM a 420 Hz un triac che lavora a 50Hz?

 

ma sai come funziona un relè allo stato solido con un triac?

 

E per favore non venire a raccontare che funziona perccho chiossà cosa hai visto

 

 

Luigi va bene non essere degli elettronici ma se non si sa quello che sis ta facendo è meglio infromarsi prima!

Link al commento
Condividi su altri siti

Uso i FOTEK SSR 25DA da oltre un anno e hanno sempre funzionato bene, cioè fanno il loro lavoro di parzializzazione dell'energia a CA, gestita tramite PWM. Come siano organizzati con Triac e quant'altro al loro interno non lo so. So che funzionano, nè se ne è mai rotto alcuno. Con potenze elevate vanno muniti di dissipatore, perchè scaldano un pò.

Vengono normalmente utilizzati dai prodotti offerti sul mercato che fanno quello che faccio con il mio Arduino e con il software Penelope.

Mi disturbano le affermazioni di quanti sostengono che una cosa non può funzionare, senza avere verificato sul campo il prodotto.

Posso sempre inviare un prototipo, se serve. Mi costa davvero poco. Ed è un altro vantaggio del progetto.

Link al commento
Condividi su altri siti

Luigi non raccontare palle!

Un  triac non può lavorare con la modulazione in PWM.

E' inutile che ci racconti che han sempre lavorato bene.

Se ne sei sinceramente convinto non sai quello che sta facendo.

Basta che ti leggi il data sheet del to SSR per capirlo (forse).

Un triac una volta innescato continua a condurre sino al passaggio per lo zero, quindi comandarlo con un PWM non serve a nulla. Per fare la regolazione si agisce o sulla fase di innesco o a pacchetti "burst", come avvien nei regolatori di temperatura.
 

Quote

 

cioè fanno il loro lavoro di parzializzazione dell'energia a CA, gestita tramite PWM.

 

 

Questa è una balla o una tua illusione.

Se non stai raccontando frottole non sai quello che sta facendo.

 

A parte tutti i problemi di sincronizzazione tra la rete a 50Hz ed il PWM a 420 Hz circa, quello che stai facendo è dare dai 4 a i 5 impulsi di larghezza variabile in un perido di 20ms della rete. in relazione alle fasi relative del primo impulso c'è una modulazione casuale della fase dell'innesco con coseguente variazione casuale della tensione rms di uscita.

Riducendo la larghezza dell'impulso con il PWM si può arrivare al punto che l'impulso non ha energia sufficiente per determinare l'innesco del triac ed allora ti sembra che il sistema abbia modulato perchè il relè rimane aperto.

Andando a leggere il datasheet Fotek si vede nelle caratteristiche di in gresso che per accendere il relè è necessario dare una tensione >2.4V mentre per garantire la non accensione bisogna che la tensione di controllo abbia un valore <1V.

Con la tua modulazione PWM tu chiudi il relè quando sei sopra il 50% circa, quindi nell'intorno di 127 come dato scritto in uscita ad arduino. Se il valore è inferiore al 20%, dato 51 circa, il relè non si chiude mai. Con valori compresi 51 e 127 circa lo stato di uscita è casuale, dipende dal rumore e da altro, potrebbe chiudersi o potrebbe rimanere aperto perchè questa è la soglia di indecisione del componente.

Tu in questo modo credi di star modulando in PWM!

 

La mancanza di strumentazione unita alla mancanza di cultura specifica, più una buona dose di supponenza fa fare di queste cose.

 

Luigi, per favore basta con queste storie.

I lavori si fanno seriamente, non si può prendere in giro il prossimo con simili panzane.

Link al commento
Condividi su altri siti

Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...