Vai al contenuto
PLC Forum


Integrazione OpenHAB con Hplc


flavio.dallara

Messaggi consigliati

flavio.dallara

Ciao a tutti, 

ho da poco conosciuto openhab e ho già testato alcune funzionalità... direi un prodotto molto interessante..

Quello che mi è venuto subito in mente è l' integrazione con il mio impianto hplc di casa.

Pensavo di sfruttare modbus rtu tramite modulo etm3. pensate sia fattibile? come sarebbero le prestazioni?

qualcuno lo ha già fatto?

 

grazie

Link al commento
Condividi su altri siti


  • Risposte 161
  • Created
  • Ultima risposta

Top Posters In This Topic

  • flavio.dallara

    74

  • smoothhands

    63

  • del_user_56966

    19

  • ilgio80

    4

del_user_56966

q

Quote

qualcuno lo ha già fatto?

 

OpenHab è già integrato con HomePLC sia tramite HomePLC come Controller Principale...

nella versione HomePLC.Linux...

sia come Master Web su cui gira OpenHab...

mi pare che entrambe le installazioni si trovano sul File Manager dell'assistenza...

 

la versione Controller è questa...

 

Link al commento
Condividi su altri siti

flavio.dallara

Miticooo! scusami Aleandro ma non ho ben capito.... sono sul file manager di netcleaver e sotto homeplc linux trovo la cartella openhab. Quindi io che ho un impianto hplc tradizionale devo dotarmi di masterweb per utilizzare openhab. giusto?

Link al commento
Condividi su altri siti

Ciao flavio.dallara,

Quote

Quindi io che ho un impianto hplc tradizionale devo dotarmi di masterweb per utilizzare openhab

La risposta corretta è... NI :smile:.

Nel senso che potresti anche interfacciarti con HomePLC tradizionale utilizzando openHAB

tramite binding modbus... ma il binding modbus, specialmente usato in modalità RTU,

qualche comportamento strano lo presenta.

Non ho mai provato con HomePLC ma con altri sistemi domotici utilizzare il binding

modbus mi ha fatto abbastanza disperare.

Guarda queso post per farti una idea di quello di cui sto parlando.

 

Se ne hai la possibilità il MasterWEB è la cosa più indicata.

 

Link al commento
Condividi su altri siti

Di seguito una risposta più articolata...

 

Quello che è stato realizzato per HomePLC è un binding di interfacciamento tra

openHAB e HomePLC. Inizialmente è stato realizzato il binding per la versione Linux

e poi successivamente è stato adattato anche per la versione MasterWEB in modo

da poter integrare anche chi possiede HomePLC tradizionale.

 

Su MasterWEB e su HomePLC.Linux vengono installate sia openHAB che

il binding di interfacciamento con il sistema HomePLC. In questo modo

non serve un ulteriore pc acceso con una versione di openHAB in volo.

 

Oltre al binding, che permette il reale interfacciamento tra i due sistemi, è stata 

realizzata una versione leggermente modificata di openHAB per evitare alcuni

errori sui componenti software in fase di inizializzazione che causavano un

mancato avvio del sistema openHAB.

 

La versione che trovi sul FM, sebbene funzionante, non è l'ultima rilasciata in

quanto, grazie all'aiuto di alcuni utenti, si è modificata nel tempo per introdurre alcune migliorie

e sul forum di assistenza era possibile trovare tutte le prove, tutti i pacchetti e

le spiegazioni di come si è evoluto.

 

 

Link al commento
Condividi su altri siti

Tra l'altro non sono proprio sicuro che tramite l'ETM3 tu possa inviare comandi modbus RTU.

Mi pare di ricordare, da qualche vecchio post, che l'ETM3 è trasparente e quindi di suo non

effettua nessuna conversione... quindi se gli mandi comandi in modbus TCP non funziona.

Però potrei facilmente sbagliarmi. Quindi prendi questo con le pinze.

 

Diverso è se utilizzi un convertitore con rs485 e lo programmi per inviargli comandi modbus RTU.

Trovato il modo di connetterti sul bus dell'HomePLC resta però il problema che il 

funzionamento a polling tramite bus e con standard modbus RTU non può raggiungere

prestazioni sorprendenti.

 

Tramite MasterWEB e binding dedicato il ragionamento è differente.

Puoi sfruttare la rapidità del bus HomePLC con protocollo nativo che si occupa di aggiornare

la tabella delle risorse all'interno del MasterWEB e il binding realizzato apposta per 

HomePLC che genera eventi ad ogni variazione dei registri della tabella delle risorse.

A basso livello anche il binding effettua la lettura a polling delle risorse ma

lo fa accedendo direttamente ai registri e in modo nativo.

 

 

 

 

Link al commento
Condividi su altri siti

flavio.dallara

Aveva già letto quel post smoothands e infatti devo dirti che qualche timore per il modbus c'era..

Ti ringrazio per la risposta alquanto esaustiva ora mi sembra tutto chiaro... 

 

Quote

Tra l'altro non sono proprio sicuro che tramite l'ETM3 tu possa inviare comandi modbus RTU.

 

era la domanda successiva...infatti anch'io credo che l'etm3 non accettasse comandi modbus.

 

Quote

La versione che trovi sul FM, sebbene funzionante, non è l'ultima rilasciata

 

Dove trovo la versione aggiornata quindi?

Lunedì farò già l'ordine per il masterweb e proverò a caricargli openhab.

Non voglio abusare ma ho visto che te la cavi molto bene con openhab... se dovessi avere qualche problema pensi riusciresti ad aiutarmi?

Grazie intanto per le risposte!

 

Link al commento
Condividi su altri siti

Al limite l'ultima release disponibile per MasterWEB te la posto io.

Se non è possibile qui... magari in privato.

 

Ultimamente mi sto dedicando ad altro ma se hai pazienza di

attendere le risposte cerco di aiutarti volentieri.

Sul forum dell'assistenza erano indicati anche tutti i passi

per la preparazione di homeplc e della installazione di

openhab... ma non ho ancora capito se è già disponibile la

vesione nuova del forum, ne come raggiungerla.

Forse è ancora in migrazione.

 

 

Link al commento
Condividi su altri siti

flavio.dallara

Grazie smoothhands! Ho appena ordinato il Masterweb 1Ghz e 512MB RAM. Aspetto con inpazienza di mettere le mani su un così bell'oggetto...

Non ho urgenza quindi aspetterò sicuramente le tue risposte sperando di non incontrare particolari problemi...

Intanto che aspetto il MW magari se riesci ad inviarmi l'ultima release... vedi tu come riesci. Te lo dico per tempo...

Link al commento
Condividi su altri siti

del_user_56966
Quote

 

Non ho mai provato con HomePLC ma con altri sistemi domotici utilizzare il binding

modbus mi ha fatto abbastanza disperare.

 

 

per fare un paragone utilizzare il Modbus RTU rispetto al protocollo XComm con Linux è un po...

come paragonare il consumo di una lampada alogena a quello di una lampada a led...

(chiaramente XComm essendo più innovativo è il led :lol:)...

Tornando a OpenHab passando da Modbus RTU all' HomePLC Linux si passa da poche variabili in qualche secondo a migliaia di variabili in millisecondi...

Link al commento
Condividi su altri siti

flavio.dallara
Quote
 
Tornando a OpenHab passando da Modbus RTU all' HomePLC Linux si passa da poche variabili in qualche secondo a migliaia di variabili in millisecondi...

 

Direi che basta questa frase per convincere chiunque! 

 

Link al commento
Condividi su altri siti

del_user_56966

smoothhands 

su questo punto può essere anche più preciso.... intendo sulle tempistiche di refresh tra OpenHab e gli I/O...

considera che sono elaborati in Java che di base non è un linguaggio nativo...

ma se non sbaglio i tempi di refresh sono comunque molto elevati!

 

 

Link al commento
Condividi su altri siti

del_user_56966

Comunque oltre a queste informazioni se ti può essere utile considera che in parallelo a OpenHab si potrebbe utilizzare il Web Serevr con PHP e SQLite e anche girare altri programmi...

scritti in vari linguaggi tra cui appunto Java, Python, C/C++ in particolare su quest'ultimo linguaggio si potrebbe utilizzare anche l'ambiente QT della Nokia...

vedi filmato su quest'ambiente...

 

 

Link al commento
Condividi su altri siti

Quote

su questo punto può essere anche più preciso.

Il MasterWEB riceve lato bus/domotica gli aggiornamenti

dal sistema HomePLC quindi con tempistiche realtime per

le risorse digitali mentre un pò più rilassate per le rimanenti.

 

Lato Linux c'è una libreria scritta in C che scansiona le aree

della tabella dei registri HomePLC supportate dal MasterWEB.

Quando su un registro viene rilevata una variazione viene generato

un evento che successivamente viene inoltrato ad openHAB.

 

Attualmente la libreria nativa è stata impostata con un periodo

di loop per scansionare queste aree ogni 150msec.

 

Teoricamente per leggere tutti e 8000 i registri HomePLC 

vengono richiesti in media circa 500usec (0.5msec) dal loop e i successivi confronti.

Ovviamente, data la natura non realtime del SO Linux, questo dato non

è deterministico e potrebbe variare un pò in base al carico del sistema.

Per i primi 1000 registri si parla di 50..60usec. 

 

Ad ogni modo, tutto il tempo rimanente per arrivare ai 150msec, può essere

impiegato per inoltrare gli eventi alla macchina virtuale Java e successivamente

a openHAB (anch'esso scritto interamente in Java).

Generalmente inoltrare un evento a openHAB richiede altri 500usec.

 

A quel punto deve essere applicata la logica Java e poi attuato il

conseguente comando... il tempo richiesto dipende dalla complessità della logica.

Il comando di attuazione va a scrivere direttamente nella tabella di

memoria. Questo dato non ho mai tentato di calcolarlo sinceramente.

 

 

 

Link al commento
Condividi su altri siti

del_user_56966
Quote

 

Teoricamente per leggere tutti e 8000 i registri HomePLC 

vengono richiesti in media circa 500usec (0.5msec) dal loop e i successivi confronti.

Ovviamente, data la natura non realtime del SO Linux, questo dato non

è deterministico e potrebbe variare un pò in base al carico del sistema.

Per i primi 1000 registri si parla di 50..60usec. 

 

 

quando dici che non è deterministico e poi parli di micro-secondi per 8000 variabili sei mitico....

allora chi utilizza direttamente dei moduli su la LAN e il risultato su 8000 variabili è anche più lento?.... cosa dovrebbe dire.....:lol:

Link al commento
Condividi su altri siti

Beh... mi sembra giusto dire le cose come stanno realmente :lol:.

Non posso affermare che "sicuramente" e " ogni qualvolta"

i tempi sono gli stessi. 

La versione Linux utilizzata non è realtime e la risorsa è

condivisa con il processore domotico quindi potrei

scontrarmi con dei lock che ritardano leggermente

la procedura.

Però i tempi indicati sono quelli rilevati mediamente ed effettivamente lasciano

ampio margine per tutto il resto del sistema.

 

Sicuramente per chi vuole programmarsi una logica

dedicata a un compito ben preciso, e lo fa in C, la

gestione di un impianto, anche esteso, è leggerissimo

e con dei tempi di risposta pressochè istantanei.

 

Con openHAB il discorso è differente in quanto è

presente una sovrastruttura molto elaborata che consente

di avere interfaccia grafica, connettività verso l'esterno e

altro... e questo, anche perchè realizzato in Java, ha un costo.

Link al commento
Condividi su altri siti

del_user_56966
Quote

e questo, anche perchè realizzato in Java, ha un costo.

 

mi pare che in ogni caso le performance siano ottime comunque!

inoltre se un ipotetico programma in C dovesse recuperare i dati tramite un Bus utilizzando il Modbus RTU si troveremo un collo di bottiglia molte volte superiore al ritardo di elaborazione introdotto da Java...

in questo caso sia avere una potenza di elaborazione elevata e un software in codice in C senza la disponibilità immediata dei dati dal campo...

è al confronto è comunque una soluzione peggiore...

Link al commento
Condividi su altri siti

del_user_56966
Quote

certo, il confronto con l'interrogare i registri tramite modbus è impari.

 

Modo molto elegante per esprimere un concetto di estrema differenza tra le due soluzioni che in gergo popolare sarebbe più incisivo...

e per questo facilmente comprensibile anche dai non tecnici...:lol:

Link al commento
Condividi su altri siti

Allora mettiamola così...

Supponendo una linea seriale rs485 a 19200bps utilizzata per richiedere 10 registri a un dispositivo

tramite modbus rtu vediamone numericamente un confronto con l'accesso tramite linguaggio nativo

e HomePLC.Linux. 

 

Supponendo i parametri della linea seriale come 1 start bit, 8 data bit, 1 parity bit e 1 stop bit

risulta che per ogni byte inviato vengono in realtà richiesti 11bit.

Senza andare troppo nel dettaglio per la richiesta occorrono 8 byte mentre per la risposta 25 byte.

Totale (8+25) * 11 = 363 bit

Un bit rate di 19200bps corrisponde a un tempo x bit di  52 usec e ne risulta che per il trasfermento

della nostra informazione sono richiesti almeno (52usec * 363 bit) = 19 msec circa.

E questo senza contare il tempo di elaborazione del dispositivo per restituire i dati.

 

Quanti registri riesco a leggere con HomePLC.Linux in 19msec?

Se in 500usec ne leggevo 8000 risulta... (19 * 2 * 8000)  =  304000 registri 

nello stesso tempo in cui col modbus rtu ne leggevo 10.

 

Per farvi capire l'ordine di grandezza immaginate

la distanza tra Milano e Imola e l'andare a prendere il giornale

sotto casa (ovviamente percorse nello stesso tempo).

 

Link al commento
Condividi su altri siti

flavio.dallara

Preciso come sempre smoothhands.. direi che se avevo ancora dubbi se scegliere il modbus o xcomm ora sono svaniti completamente!!

A parte che poi ho giá ordinato il masterweb... tempo 15-20 giorni... saranno lunghissimi!

Link al commento
Condividi su altri siti

flavio.dallara

Domanda da 1.000.000 di dollari... avendo nell'impianto anche un master gateway per le centrali risco... secondo voi riesco a vedere anche lo stato dei sensori di allarme e lo stato del sistema se è inserito o meno?

Volendo si potrebbe riuscire ad armare e disarmare l'impianto?

Link al commento
Condividi su altri siti

Devi considerare che il MasterWEB non vede tutti e 8000 i registri

della tabella delle risorse HomePLC.

Puoi ricavarle dall'. più aggiornato di LadderHome scaricabile

dal FM.

Inoltre di tutte le aree quelle relative alle uscite realtime e all'area estesa

sono solo in lettura.

Di conseguenza se l'area associata al gateway risco non fosse inclusa

il trucco è quella di appoggiarsi su "registri di comodo".

 

Ovvero... in Ladder metterai in parallelo a ingressi e uscite "reali"

ingressi e uscite mappate in questi registri di comodo.

openHAB lavorerà con questi ultimi.

Nessuno vieta comunque di utilizzare in lettura le risorse reali rese disponibili 

dal MasterWEB.

 

Col MasterWEB devi sempre ricordarti che il controller è l'HomePLC 

quindi la logica principale è la sua.

 

La risposta comunque è si :P

Link al commento
Condividi su altri siti

Le aree del MasterWEB sono queste:

 

Aree

Registri

Modalità

 

Area I/O

1-400

Only Read

1024 I/O

144 Registri Speciali

Area Relè

400-449

R/W

800 Relè

Area Relè

500-549

R/W - Ritentivi

800 Relè Ritentivi

Area Dati

1000-1099

R/W

100   Registri

Area Dati

2000-2099

R/W - Ritentivi

100   Registri

Area Security

3500-3599

 

100 Registri

Area I/O Extender

5500-5935

Only Read

436 Registri

 

Se il tuo gateway occupa l'area 3500-3599 sei a posto.

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