Se sei già registrato           oppure    

Orario: 01/05/2024 15:52:41  

 

Energia Alternativa ed Energia Fai Da Te > Solare Fotovoltaico

VISUALIZZA L'ALBUM

Pagine: (7)   1   2   [3]   4   5   6   7    (Ultimo Msg)


mppsolar pip raspberry usb
FinePagina

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 31/10/2017 18:13:08

Prima lettura
1000 watt
8sec dopo
Seconda lettura
500 watt
In 16 sec. hai
1000/450=2.2222
+
500/450=1.1111

Totali prodotti 3.3333 watt certo avendo un buco di 8 sec Non e poco pero questo e il sistema



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

ezanchet
Watt


Gruppo:Utente
Messaggi:93

Stato:



Inviato il: 01/11/2017 19:01:22

ok chiaro, grazie!

per curiosità ogni quanto fai una lettura ? e soprattutto leggi sollo QPIGS o anche altri comandi ?

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 01/11/2017 19:11:17

Ogni 0.6 sec ovvero 600ms effettuo qpigs e qpiri piu altri 2 o 3 comandi e effettuo il timeout in caso di risposta non conforme in base ai cicli
Per esempio in 10 secondi faccio 14 letture qpiri e qpigs e 2 diverse se x 2 o 3 cicli il formato Non e corretto ho fatto un algoritmo di predizione che 90% mi ricostruisce la stringa solo se spezzettata ma corretta a volte le letture troppo veloci vengono divise in 3 stringhe da pip



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 01/11/2017 21:09:19

ezanchet se vuoi dei contatori molto precisi, la base dei tempi la devi fare dinamica e non statica, cioè misuri il tempo che intercorre tra una risposta e la prossima del solito tipo non puoi basarti su una base dei tempi fissi perchè i tempi di risposta variano a seconda di cosa stà facento l'inverter.



---------------
Batterie? no grazie ho SSP

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 01/11/2017 22:47:36

Gruppo su 8 secondi che precisione puoi avere... e giusto una statostica credo con l hardware o con il codice non riesce a scendere sotto...



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 02/11/2017 00:10:01

se hai 8 secondi peserai 8 secondi ma non puoi calcolarli a priori staticamente perchè l'inverter risponde come gli pare possono passare anche più secondi, dalle prove che ho fatto specialmente stringendo i tempi fra più richieste non sono costanti.
e gli errori di calcolo si sommano a fine giornata.
calcolando il tempo inoltre risolvi il problema se dovese mancare una risposta in quanto la richiesta precedente verrà pesata con un tempo circa doppio.
unica attenzione nell'usare questo sistema è gestire il passaggio dell'overflow del istruzione timer() (questo in vba ma penso che il problema sia in tutti i linguaggi)
purtroppo la classe contatore che ho già scritto non è in python (presumo che col raspberry usi python) ma in vba.

vincent per capirci guarda il metodo contabilizza() se scrivi codice in vb dovrebbe capirsi il concetto che volevo esprimere.


Option Explicit
Private mvarValoreDaContabilizzare As Double
Private mvarVitaContatore As Double
Private mvarContatore As Double
Private mvarSecondOld As Double
Private mvarNomecomando As String
Private mvarReset As Boolean
Private mvarRiga As Long
Private mvarCol As Integer
'Private pesold
'Definizione in input della proprietà "".
'Public Property Let Row(ByVal vDatin As Integer)
'    mvarRiga = vDatin
'End Property

'Definizione in output della proprietà "".
Public Property Get Row() As Integer
    Row = mvarRiga
End Property

'Definizione in input della proprietà "".
Public Property Let col(ByVal vDatin As Integer)
    mvarCol = vDatin
End Property

'Definizione in output della proprietà "".
Public Property Get col() As Integer
    col = mvarCol
End Property

'Static valore
'Definizione in input della proprietà "".
Public Property Let nomeCmd(ByVal vDatin As String)
    mvarNomecomando = vDatin
End Property

'Definizione in output della proprietà "".
Public Property Get nomeCmd() As String
    nomeCmd = mvarNomecomando
End Property


'Definizione in input della proprietà "".
Public Property Let valoredaContabilizzare(ByVal vDati As Double)
    mvarValoreDaContabilizzare = vDati
End Property


'Definizione in output della proprietà "".
Public Property Get valoredaContabilizzare() As Double
    valoredaContabilizzare = mvarValoreDaContabilizzare
End Property

'Definizione in input della proprietà "".
'Public Property Let VitaContatore(ByVal vDati2 As Double)
'    mvarVitaContatore = vDati2
'End Property

'Definizione in output della proprietà "".
Public Property Get VitaContatore() As Double
    VitaContatore = mvarVitaContatore
End Property

'Definizione in input della proprietà "".
Public Property Let Contatore(ByVal vDati3 As Double)
    mvarContatore = vDati3
End Property

'Definizione in output della proprietà "".
Public Property Get Contatore() As Double
    Contatore = mvarContatore
End Property

Public Sub Contabilizza()
    Static contatoreOld As Double
    'Static secondold As Integer
    'Static valore
    'Dim Contatore As Double
    If mvarReset Then
       contatoreOld = 0
       mvarReset = False
    End If
    mvarVitaContatore = Timer() - mvarSecondOld
    If mvarVitaContatore < 0 Then
       contatoreOld = 0
       mvarVitaContatore = Timer()
       mvarSecondOld = 0
    Else
       contatoreOld = mvarContatore
    End If
    mvarContatore = (mvarValoreDaContabilizzare * mvarVitaContatore) / 3600 + contatoreOld
    mvarSecondOld = mvarSecondOld + mvarVitaContatore
    contatoreOld = mvarContatore
End Sub
Public Sub Registra()
    ' inserire qui il codice per registrare i dati
    ' nome contatore e data
    mvarRiga = Sheets("contatori").Cells(Rows.Count, 1).End(xlUp).Row
    If Sheets("contatori").Cells(mvarRiga, 1) <> Date Then
       mvarRiga = mvarRiga + 1
       Sheets("contatori").Cells(mvarRiga, 1) = Date
    End If
    Sheets("contatori").Cells(mvarRiga, mvarCol) = mvarContatore
End Sub
Public Sub Reset()
Static secondold As Integer
    mvarValoreDaContabilizzare = 0
    mvarVitaContatore = 0
    mvarSecondOld = Timer()
    mvarReset = True
End Sub
Public Sub leggiRegistro()
    mvarRiga = Sheets("contatori").Cells(Rows.Count, 1).End(xlUp).Row
    If Sheets("contatori").Cells(mvarRiga, 1) = Date Then
       mvarContatore = Sheets("contatori").Cells(mvarRiga, mvarCol)
       mvarSecondOld = Timer()
    End If
    
End Sub



Modificato da gruppo - 02/11/2017, 00:17:41


---------------
Batterie? no grazie ho SSP

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 02/11/2017 07:28:40

Si avevo gia capito la tua idea la trovo valida io faccio letture ogni 0.6 e conteggio ogni sec uso un buffer e mi trovo bene le letture sono sempre buone
Certo poi dipende dal hardware e dall linguaggio farlo su arduino richiede qualche accorgimento

Se la lettura tarda io ho ancora il buffer dati vecchio e conto quello ma con 600ms lo prendo sempre poi ogniuno usa la propria strada...
La mia .. La tua ..quella di wp.. Se funzionano sono valide

L unica cosa che mi sento di dire e che su campionamento di 8 sec non possiamo parlare di precisione ... Bisogna arrivare a 1.. 2 secondi per avere qualcosa di accettabile ...se possibile



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

ezanchet
Watt


Gruppo:Utente
Messaggi:93

Stato:



Inviato il: 02/11/2017 09:25:05

Ciao, sto sviluppando in Java su Raspberry, per il momento sto solo provando la comunicazione e implementando il parsing delle varie risposte.

Attualmente faccio una lettura ogni 4 secondi e leggendo in modo alternato i comandi QPIGS e QMOD.
La risposta mi arriva come evento e salvo il timestamp di lettura del comando precedente (dello stesso tipo) e il timestamp della lettura attuale. Ho quindi i millisecondi trascorsi fra le due letture dello stesso comando.
Appena comincio l'implementazione vera e propria pensavo di accorciare e leggere ogni 500ms il comando QPIGS e ogni 10 o 20 letture fare una lettura di QMOD.

Sono ancora indeciso se tenere Raspberry con Raspbian o instllarci Android Things e fare un app android per l'interfacciamento con il PIP

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 02/11/2017 09:44:42

Tempo medio di riaposta 300ms ...
360 se ricordo bene...

400 per alcuni...

A 500 sei un po al limite xo se ci riesci ...meglio

io non sono pratico di java ma e il linguaggio usato per w power quindi credo sia il migliore



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 02/11/2017 18:27:30

ezanchet metti in preventivo che durante la giornata può succedere che hai un ritardo nella risposta anche di 4000ms.
se mandi un altro comando nel frattempo l'inverter fa casino sulla seriale tipo mescolare le risposte.

questo lo ho riscontrato sul firmware 52.30 e 72.40
ma non penso dipenda dalla versione del firmware in quanto suppongo che arrivino degli interrupt da gestire con priorità per governare l'hardware dell'inverter.



---------------
Batterie? no grazie ho SSP

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 02/11/2017 22:15:20

Altro problema e il cavo adattatore di bassa qualita a me ogni tanto si scollegava da solo e mi sparivano le porte usb...ma il portatile e cosi vecchio che prendera la pensione prima di me quindi XD
Non mi aspettavo molto



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

ezanchet
Watt


Gruppo:Utente
Messaggi:93

Stato:



Inviato il: 03/11/2017 09:01:14

L'idea è quella di non mandare altri comandi finchè non ho ricevuto la risposta.

Per il convertitore seriale usb ad oggi non ha mai dato problemi, è collegato da circa una settimana ininterrottamente.

Vediamo se ho un po di tempo nel fine settimana per cominciare a scrivere l'app definitiva... alla fine vado verso una webapp da far giare su tomcat o jetty. Sarebbe stato bello sperimentare un po con Android Things ma purtroppo il tempo è sempre troppo poco

 

maxsemp

Avatar
KiloWatt


Gruppo:Utente
Messaggi:244

Stato:



Inviato il: 03/11/2017 12:55:08

CITAZIONE (gruppo, 02/11/2017 00:10:01 ) Discussione.php?214839&3#MSG35

se hai 8 secondi peserai 8 secondi ma non puoi calcolarli a priori staticamente perchè l'inverter risponde come gli pare possono passare anche più secondi, dalle prove che ho fatto specialmente stringendo i tempi fra più richieste non sono costanti.
e gli errori di calcolo si sommano a fine giornata.
calcolando il tempo inoltre risolvi il problema se dovese mancare una risposta in quanto la richiesta precedente verrà pesata con un tempo circa doppio....
[/code]


Ragazzi, se può servire, vi faccio partecipi della mia esperienza.
Ho installato un contatore a valle dell'inverter (uscita carico) e dai conteggi che ho fatto, con le ovvie approssimazioni dato che il contatore non ha le cifre decimali, mi risulta un consumo medio pari ad 1 kWh/giorno circa in più rilevato da super solar.



---------------
Impianto fotovoltaico Off-Grid 3 kWp
10 moduli 300 W SUNERG
inverter Genius 50 - fw 32.40
8 batterie 200 Ah 12 V

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 03/11/2017 17:34:38

1kw in piu su quanto?
Puoi postare una foto ?



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

maxsemp

Avatar
KiloWatt


Gruppo:Utente
Messaggi:244

Stato:



Inviato il: 03/11/2017 18:00:27

CITAZIONE (Vincent, 03/11/2017 17:34:38 ) Discussione.php?214839&3#MSG43

1kw in piu su quanto?
Puoi postare una foto ?


Ho fatto una verifica dal 24/10/17 al 02/11/17 (circa otto giorni) ed i risultati sono questi.
Naturalmente la cosa ha bisogno di essere ulteriormente verificata.



Immagine Allegata: supersolar-11.png
 
ForumEA/S/supersolar-11.png



---------------
Impianto fotovoltaico Off-Grid 3 kWp
10 moduli 300 W SUNERG
inverter Genius 50 - fw 32.40
8 batterie 200 Ah 12 V

 
 InizioPagina
 

Pagine: (7)   1   2   [3]   4   5   6   7    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum