Mi Piace! Mi Piace!:  0
NON mi piace! NON mi piace!:  0
Grazie! Grazie!:  0
Visualizzazione dei risultati da 1 a 10 su 10

Discussione: ABB PVI 6000-TL-OUTD Comunicazione RS485

  1. #1
    Novizio/a

    User Info Menu

    Predefinito ABB PVI 6000-TL-OUTD Comunicazione RS485



    Salve,
    sto tentando di dialogare con il mio inverter ABB. Sono riuscito a leggere varie misure con un dongle USB che traduce da UART a RS485. Attualmente sto tentando di passare ad una maggiore integrazione dell'hardware, attraverso una RS485 Breakout board di cui il link di seguito:

    RS-485 Breakout - BOB-09823 - SparkFun Electronics

    Il chip in questione non gestisce autonomente il duplexing quindi ha un pin dedicato alla commutazione da trasmissione a ricezione. Dopo vari tentativi sono riuscito ad effettuare delle letture (Vgrid e Pout) commutando manualmente con un GPIO tale pin. In pseudocodice:

    codice:
     GPIO.SET(1)
     SERIAL.WRITE(REQUEST, 10) //Len 10 as per (http://www.drhack.it/images/PDF/AuroraCommunicationProtocol_4_2.pdf)
     SLEEP((10+2 /* GUARD */) * 8.0 / 19200) // keep the GPIO high for the time of the request to be sent
     GPIO.SET(0)
     WHILE (RES.len < 8)  
          RES+=SERIAL.READ()
     //... checksum + decode...
    Ciò che osservo è che a volte la lettura ha successo mentre altre volte no. Apparentemente in molti casi di insuccesso il motivo è che quando vado a leggere il risultato sulla seriale, i bit che leggo sono shiftati in su o in giù di svariate posizioni e conseguentemente, il checksum fallisce diciamo 9 volte su 10.

    Analizzando con un oscilloscopio le linee A-B vedo la richiesta e la risposta:

    correct.jpgcorrect_response.jpg

    Quando la risposta è campionata correttamente sulla seriale, vedo le immagini che vi riporto sull'oscilloscopio, e la response (che si caratterizza da un fronte di segnale con ampiezza maggiore rispetto alla richiesta, sulla destra nelle immagini) che leggo è per esempio:

    codice:
    00064372ccea53e1
    La response qui riportata ha il checksum corretto e il risultato è nel caso specifico una Vgrid di 242V (ed è uguale a quello che leggo sul display dell'inverter.. quindi non è decisamente un caso).

    Nella maggioranza dei casi tuttavia i valori letti sono senza senso e il CRC fallisce.
    Noto che la parte iniziale (000643) è invariata quando il reading è corretto e il checksum ha successo.
    Noto anche che capita spesso di leggere 00000..643.. oppure 00..C86., ovvero valori corretti ma shiftati in su o in giù di N-bit posizioni.
    Altre volte leggo semplicemente garbage (o per lo meno roba che non ha un pattern riconoscibile).
    Una cosa importante che osservo è che il ritardo tra la fine della richiesta e l'inizio della risposta dall'inverter sulle linee A-B cambia di molto, e che quando ho successo nella lettura è sempre uguale e minimo, come nelle immagini riportate. Quando fallisco invece, la risposta può trovarsi anche più di una dozzina di divisioni (deltaT dell'oscilloscopio) ritardata rispetto alla richiesta: per capirci nelle immagini riportate, la finestra temporale potrebbe non catturare la response.

    L'idea che mi son fatto è che l'inverter risponda a intervalli periodici regolari, quindi, quando io mando la richiesta di misura, lui la tenga in coda finchè non scatta il momento in cui è cadenzato l'eventuale invio di una risposta. Se la richiesta arriva proprio appena prima che tale intervallo scada, il risultato è che richiesta e risposta sono sufficientemente vicine da permettere di leggere il valore al momento in cui leggo la seriale. Se la richiesta è mandata troppo in anticipo rispetto a tale intervallo la lettura dalla seriale legge garbage.

    Stranamente questo fenomeno era gestito perfettamente dal dongle USB (che credo usi un MAX232 qualcosa)..

    Tenete presente che a inverter spento, se faccio una lettura leggo garbage.. quindi nono ho niente se non quella iniziale sequenza di 000643 ed il checksum finale, per determinare l'inizio della risposta..

    Avete suggerimenti su come rilevare correttamente l'inizio della risposta ?


    Grazie,
    R

  2. #2
    Paladino del Forum

    User Info Menu

    Predefinito

    In diversi nel forum usiamo questo 1pcs USB to RS485 485 Converter Adapter Support Win7 XP Vista Linux Mac OS WinCE5.0-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group nessun problema .... perchè vuoi utilizzare quella schedina ? se cerchi come logger troverai che tutti siamo con dispositivi ARM e 123solar come monitoraggio degli inverter , io uso un Orange PI costa 10€ + la USB-RS485 senza incasinarsi nel gestire niente , trovi tutto pronto....
    Forum che si professa ecologico , con gli sponsor che vendono fumarole a biomassa

    **** Non ho nessuna intenzione di RIsottoscrivere le regole , visto che sono stato sanzionato senza nessuna giustificazione ****

  3. #3
    Novizio/a

    User Info Menu

    Predefinito

    Quote Originariamente inviata da spider61 Visualizza il messaggio
    In diversi nel forum usiamo questo 1pcs USB to RS485 485 Converter Adapter Support Win7 XP Vista Linux Mac OS WinCE5.0-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group nessun problema .... perchè vuoi utilizzare quella schedina ? se cerchi come logger troverai che tutti siamo con dispositivi ARM e 123solar come monitoraggio degli inverter , io uso un Orange PI costa 10€ + la USB-RS485 senza incasinarsi nel gestire niente , trovi tutto pronto....
    Si, infatti, anche io ho lo stesso setup hardware (orange PI + USB-RS485 del link) e funziona, ma vorrei sostituire quell'USB dongle con la mia scheda per integrare il tutto nel boxing della orange Pi.

  4. #4
    Novizio/a

    User Info Menu

    Predefinito

    E' possibile che il fatto di leggere roba spuria sulla seriale possa essere un cattivo o mancato biasing delle linee A e B ?

  5. #5
    Novizio/a

    User Info Menu

    Predefinito

    Ciao, scusate se riesumo questo thread, ma volevo sapere se alla fine è stata trovata una soluzione al problema o no... Io volevo fare letture dello stesso inverter con un circuitino simile (quindi conversione RS485-UART con abilitazione dei driver attraverso GPIO), e non avendo un oscilloscopio non avrò mai la possibilità di fare un'analisi dettagliata e approfondita come è stata fatta da riccardomanfrin, però questo thread già mi aiuta in anticipo a sapere a quali possibili problematiche si può andare incontro.

    // EDIT Riccardino, visto che sei in possesso di una dongle USB <-> RS485 potresti fare dei test di comunicazione fra microchip e dongle, intanto può essere utile per cercare di scremare il problema. Un'altra cosa che vorrei chiederti è se il bus è "biasato" per mantenerlo in uno stato noto durante l'idle (per intenderci: pull-up di A e pull-down di B, più info qui)

  6. #6
    Novizio/a

    User Info Menu

    Predefinito

    Quote Originariamente inviata da barbie Visualizza il messaggio
    Ciao, scusate se riesumo questo thread, ma volevo sapere se alla fine è stata trovata una soluzione al problema o no... Io volevo fare letture dello stesso inverter con un circuitino simile (quindi conversione RS485-UART con abilitazione dei driver attraverso GPIO), e non avendo un oscilloscopio non avrò mai la possibilità di fare un'analisi dettagliata e approfondita come è stata fatta da riccardomanfrin, però questo thread già mi aiuta in anticipo a sapere a quali possibili problematiche si può andare incontro.

    // EDIT Riccardino, visto che sei in possesso di una dongle USB <-> RS485 potresti fare dei test di comunicazione fra microchip e dongle, intanto può essere utile per cercare di scremare il problema. Un'altra cosa che vorrei chiederti è se il bus è "biasato" per mantenerlo in uno stato noto durante l'idle (per intenderci: pull-up di A e pull-down di B, più info qui)

    Consiglio questo:
    UART TTL to RS485 Converter
    Risolve e non ti devi pilotare a mano il duplexing con il DE e suo negato, e ti evita di usare una porta USB.
    Trovi anche su amazon. provato con RPIZero W
    Che io abbia visto tutti quanti sono pull up/pull down in idle (o almeno l'oscilloscopio sembra dire di si, anche dalle immagini). Non ti so dire se le resistenze di pull up/down siano collegate a monte sull'inverter o sul circuito integrato (ti devi guardare lo schematic), o su entrambi (<- secondo me è entrambi).

  7. #7
    Seguace

    User Info Menu

    Predefinito

    Ciao. Io all'epoca , 4 anni fa scrissi il software per leggere da arduino i medesimi dati e metterli su pvoutput.
    Purtroppo il fallimento del crc é intrinseco nel firmware del inverter per colpa della scarsa sincronia tra hardware dell'inverter e sistema di lettura. Su 10 letture che effettuò con tutti i dati dell'inverter é normale che faccia anche due tentativi a vuoto prima di farcela a leggerli consecutivamente tutti e 10.
    si ti confermo che l'inverter risponde seguendo la frequenza del suo clock. Se non ricordo male la rs ha una apertura di comunicazione ogni 10 ms
    FV: 3.5kWp - 14xWaris 250 Poli + Aurora Power One 3.0 Installato 7/10/14 - Allaccio 25/11/14
    2 pannelli solari termici piani con boiler a "svuotamento" 300L Ariston e caldaia instantanea a condensazione Class Premium Evo 30 kW Installato 4/11/13
    Prov. Mantova - SUD+15° - Tilt 21°
    Altre stufe a pellet e a legna di poca importanza

  8. #8
    Novizio/a

    User Info Menu

    Predefinito

    Quote Originariamente inviata da thecas Visualizza il messaggio
    Ciao. Io all'epoca , 4 anni fa scrissi il software per leggere da arduino i medesimi dati e metterli su pvoutput.
    Purtroppo il fallimento del crc é intrinseco nel firmware del inverter per colpa della scarsa sincronia tra hardware dell'inverter e sistema di lettura. Su 10 letture che effettuò con tutti i dati dell'inverter é normale che faccia anche due tentativi a vuoto prima di farcela a leggerli consecutivamente tutti e 10.
    si ti confermo che l'inverter risponde seguendo la frequenza del suo clock. Se non ricordo male la rs ha una apertura di comunicazione ogni 10 ms
    Confermo con quanto riporti, credo che in qualche modo i vari integrati MAX... pilotino il fronte iniziale del segnale per untempo sufficiente a garantire che il l'apertura di comunicazione dell'ABB rilevi l'inizio di un payload.

    Anche io su N tentativi ne imbroccavo N/2 circa.. peggiorando /migliorando la statistica a seconda del ritardo con cui commutavo TX in RX

  9. #9
    Seguace

    User Info Menu

    Predefinito

    A questo punto se vuoi fai l'integrazione con pvoutput. E' un buon servizio gratuito che fa da memoria di tutti i dati presenti e passati
    FV: 3.5kWp - 14xWaris 250 Poli + Aurora Power One 3.0 Installato 7/10/14 - Allaccio 25/11/14
    2 pannelli solari termici piani con boiler a "svuotamento" 300L Ariston e caldaia instantanea a condensazione Class Premium Evo 30 kW Installato 4/11/13
    Prov. Mantova - SUD+15° - Tilt 21°
    Altre stufe a pellet e a legna di poca importanza

  10. #10
    Novizio/a

    User Info Menu

    Predefinito

    Quote Originariamente inviata da thecas Visualizza il messaggio
    A questo punto se vuoi fai l'integrazione con pvoutput. E' un buon servizio gratuito che fa da memoria di tutti i dati presenti e passati
    to mi faccio un pò di pubblicità
    flask + redis + aurorapy + highcharts + raspberry + Yeeco 3,5 Millimetri Produzione Corrente AC Sensore Transformers Blu Alimentazione Elettrica SCT 013-030 30A / 1V: Amazon.it: Fai da te + 4 diodi per raddizzare e un cap per smoothare + ADC adafruit

    tutto su github
    Screenshot_2018-12-21_16-50-38.png

  11. RAD

Discussioni simili

  1. problema inverter pvi 6000 collegamento al pc tramite rs485 usb
    Da rolandd nel forum Tecnica, componentistica e installazione
    Risposte: 30
    Ultimo messaggio: 09-05-2014, 11:38
  2. comunicazione con inverter Aurora power-one PVI-6000-OUTD-IT
    Da champion59 nel forum Tecnica, componentistica e installazione
    Risposte: 114
    Ultimo messaggio: 27-10-2013, 21:29
  3. inverter power-one pvi-6000-TL-OUTD
    Da richo nel forum Fai Da Te
    Risposte: 5
    Ultimo messaggio: 29-10-2012, 00:02
  4. Aggiornamento pvi 6000 outd d a cei 0-21
    Da zo.daniele nel forum Tecnica, componentistica e installazione
    Risposte: 1
    Ultimo messaggio: 15-10-2012, 22:15
  5. Siac-Soleil 6000 e interfaccia RS485
    Da shark04 nel forum Cablaggi
    Risposte: 2
    Ultimo messaggio: 27-02-2012, 12:58

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •