Integrazione HomePLC – HomeAssistant su Modbus
-
Alxsanti
- Messaggi: 0
- Iscritto il: sab 18 dic 2021, 14:36
Integrazione HomePLC – HomeAssistant su Modbus
Salve a tutti,
in questi giorni sto cercando di integrare la mia installazione domestica di HomePLC con un’installazione di HomeAssistant. Home Assistant gestisce nativamente sensori e switch attraverso Modbus.
Premetto che attualmente sono nella fase di proof of concept (PoC), sto cercando di capire le reali funzionalità e limiti di questo approccio.
Allo stato attuale tramite un’interfaccia USB-RS485 riesco a controllare correttamente coil e registri su HomePLC.
Ad esempio, una lampata collegata all’uscita %QX1.0, viene correttamente accesa/spenta attraverso la coil 16. Anche lo stato della lampada viene correttamente riportato sull’interfaccia di HomeAssistant. Durante i test effettuati ho notato che le PDU inviate non sempre portano all’accensione/spegnimento della coil. Questo si traduce in un’inaffidabilità dei comandi inviati, in certi casi la lampada si accende correttamente al primo invio del comando, in altri casi il comando va inviato due volte per ottenere il risultato desiderato.
Pensando ad un eventuale problema di velocità dell’interfaccia USB-RS485 ne ho testato diverse. Lo stesso problema si manifesta utilizzando l’interfaccia ETM3, con Modbus RTU incapsulato in pacchetti UDP, inviando le PDU con un simulatore.
Questo tipo di comportamento è una limitazione dell’interfaccia Modbus, oppure esiste una configurazione o un set di impostazioni che permetta il corretto funzionamento?
Per la l’interfaccia con il PLC utilizzo i parametri standard consigliati:
type: serial
method: rtu
port: /dev/ttyUSB0
baudrate: 57600
stopbits: 1
bytesize: 8
parity: N
Saluti
in questi giorni sto cercando di integrare la mia installazione domestica di HomePLC con un’installazione di HomeAssistant. Home Assistant gestisce nativamente sensori e switch attraverso Modbus.
Premetto che attualmente sono nella fase di proof of concept (PoC), sto cercando di capire le reali funzionalità e limiti di questo approccio.
Allo stato attuale tramite un’interfaccia USB-RS485 riesco a controllare correttamente coil e registri su HomePLC.
Ad esempio, una lampata collegata all’uscita %QX1.0, viene correttamente accesa/spenta attraverso la coil 16. Anche lo stato della lampada viene correttamente riportato sull’interfaccia di HomeAssistant. Durante i test effettuati ho notato che le PDU inviate non sempre portano all’accensione/spegnimento della coil. Questo si traduce in un’inaffidabilità dei comandi inviati, in certi casi la lampada si accende correttamente al primo invio del comando, in altri casi il comando va inviato due volte per ottenere il risultato desiderato.
Pensando ad un eventuale problema di velocità dell’interfaccia USB-RS485 ne ho testato diverse. Lo stesso problema si manifesta utilizzando l’interfaccia ETM3, con Modbus RTU incapsulato in pacchetti UDP, inviando le PDU con un simulatore.
Questo tipo di comportamento è una limitazione dell’interfaccia Modbus, oppure esiste una configurazione o un set di impostazioni che permetta il corretto funzionamento?
Per la l’interfaccia con il PLC utilizzo i parametri standard consigliati:
type: serial
method: rtu
port: /dev/ttyUSB0
baudrate: 57600
stopbits: 1
bytesize: 8
parity: N
Saluti
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Il software di interrogazione Modbus RTU Master su che sistema gira?
Il convertitore USB/RS485 è NetBA o di terze parti?
Salvo utilizzare convertitori con basso Slave Rate e configurazione automatica dei parametri come quelli NetBA
(quelli su USB vanno impostati con Time Latency = 1)
non mi pare ci sia altro lato hardware da verificare.
Il convertitore USB/RS485 è NetBA o di terze parti?
Salvo utilizzare convertitori con basso Slave Rate e configurazione automatica dei parametri come quelli NetBA
(quelli su USB vanno impostati con Time Latency = 1)
non mi pare ci sia altro lato hardware da verificare.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Questa attività richiede una visuale totale di tutti i particolari da entrambe le parti da integrare,
anche solo per un consiglio (almeno per la parte HomePLC e Modbus) dovresti descrivere nei particolari l'integrazione che vuoi eseguire.
anche solo per un consiglio (almeno per la parte HomePLC e Modbus) dovresti descrivere nei particolari l'integrazione che vuoi eseguire.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Intendo che si deve conoscere esattamente entrambe le configurazioni sia del Master sia dello slave,
In quest'applicazione Home Assistant è il master?
è connesso tramite bus oppure tramite LAN?
Ecc..
In quest'applicazione Home Assistant è il master?
è connesso tramite bus oppure tramite LAN?
Ecc..
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Non puoi connetterti in Modbus TCP tramite gli ETM4
Dato che questi sono usati solo per XComm
oppure col Modbus Rtu over IP ma in questi casi si utilizza il protocollo UDP non quello TCP.
Quindi se vuoi collegarti in Modbus TCP standard dovresti usare un interfaccia Modbus TCP/Modbus Rtu su RS 485.
In alternativa un system Integrator può programmare il Modbus RTU incapsulandolo su protocollo UDP, la connessione lato RS485 per lo slave RTU diventa poi trasparente.
Dato che questi sono usati solo per XComm
oppure col Modbus Rtu over IP ma in questi casi si utilizza il protocollo UDP non quello TCP.
Quindi se vuoi collegarti in Modbus TCP standard dovresti usare un interfaccia Modbus TCP/Modbus Rtu su RS 485.
In alternativa un system Integrator può programmare il Modbus RTU incapsulandolo su protocollo UDP, la connessione lato RS485 per lo slave RTU diventa poi trasparente.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Questa versione di HomePLC ha una RS485 sia come Bus di Supervisione/ProgrammazioneIn alternativa usare il convertitore rs485/usb della netBA?
sia come connessione al Bus tramite l'apposita interfaccia Modbus RTU (si potrebbe avere anche una RS232 ma non la trovi su nessun catalogo)
Quindi qualsiasi integrazione al momento va svolta tramite queste porte, in questo caso dipende solo da cosa offre il Master che utilizzi,
il convertitore USB/RS485 richiede i Drive di comunicazione quindi devi assicurarti che ne esistano per il device che vuoi utilizzare come master,
oppure utilizzi un Convertitore LAN/RS485 che permetta la conversione da Modbus TCP a Modbus RTU,
oppure utilizzi un altro convertitore trasparente da Porta xxx a RS485..
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Nel Modbus RTU esistono due tipologie di dispositivi
Il Master Modbus ovvero chi interroga e richiede i dati,
E il Server o Slave Modbus ovvero chi fornisce i dati,
In una rete Modbus RTU può esistere un solo Master, tutti gli altri sono slave.
Il Master Modbus ovvero chi interroga e richiede i dati,
E il Server o Slave Modbus ovvero chi fornisce i dati,
In una rete Modbus RTU può esistere un solo Master, tutti gli altri sono slave.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Prima di fare qualsiasi test operativo devi essere matematicamente sicuro che la connessione hardware è il setting software siano corretti,
Dalle tue osservazioni precedenti mi pare che questo non sia ancora stato testato a fondo...
Dalle tue osservazioni precedenti mi pare che questo non sia ancora stato testato a fondo...
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
A) sul sistema dove utilizzi home assistant che tipo di uscita di comunicazione utilizzi?
Seriale RS232?
Seriale Rs485?
LAN?
Altro...??
Seriale RS232?
Seriale Rs485?
LAN?
Altro...??
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Sicuramente qualcosa c'è, se devi attivare un uscita va visto come lo fai,e comunque come diceva Homer.. non sempre l out si attiva.
a volte devo clikkare 2-3 volte lo switch di homeassistant per attivare l OUT
cè qualche cosa che non va
si può fare direttamente legando il Bit in arrivo dal modbus all'uscita, oppure tramite programma e in quel caso devi accertarti
che il Bit si comporti secondo la logica che utilizzi, ma questo lo puoi testare semplicemente simulando l'attivazione/disattivazione del Bit
(anche un bit diverso solo per fare il test della logica) tramite LadderHome... o dal Test I/O di ABS
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Il Modbus RTU dove lo connetti alla porta principale del HomePLC
oppure utilizzi il Master Modbus del sistema HP?
ti funziona, allora va capito se quello che invii da Home Assistant è compatibile,
Se invii come penso un attivazione e una disattivazione (bistabile) che richiede due comandi distinti non puoi comandare
per esempio un (Passo Passo Set Reset) PPSR in quanto questo richiede un comando monostabile ovvero che venga attivato e disattivato poco dopo
o comunque se possibile al termine del programma Ladder una volta eseguita la logica PPSR.
Quindi escludendo il programma finale puoi testare il solo Bit (senza alcun programma che lo utilizza)
e vedere come si comporta quando lo attivi e disattivi da Home Assistant.
oppure utilizzi il Master Modbus del sistema HP?
Intendo che se il programma o comunque simulando l'attività che vuoi svolgere tramite il Bit su Modbusda ABS o ladder.. funziona tutto non cè problema
ti funziona, allora va capito se quello che invii da Home Assistant è compatibile,
Se invii come penso un attivazione e una disattivazione (bistabile) che richiede due comandi distinti non puoi comandare
per esempio un (Passo Passo Set Reset) PPSR in quanto questo richiede un comando monostabile ovvero che venga attivato e disattivato poco dopo
o comunque se possibile al termine del programma Ladder una volta eseguita la logica PPSR.
Quindi escludendo il programma finale puoi testare il solo Bit (senza alcun programma che lo utilizza)
e vedere come si comporta quando lo attivi e disattivi da Home Assistant.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
C'è comunque una soluzione per usare anche un comando Bistabile sui PPSR !
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Come ti dicevo prima esiste la possibilità di gestire
Un attivazione PPSR anche tramite un bistabile così come qualsiasi altra logica, va visto solo cosa serve punto punto nella tua logica.
Un attivazione PPSR anche tramite un bistabile così come qualsiasi altra logica, va visto solo cosa serve punto punto nella tua logica.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
L'indirizzamento IEC standard è questo,1) perchè se io attivo il coil: 1
mi attiva l uscita QX0.3 ? il QX0.3 dovrebbe essere coil 4
Ingressi digitale RT
%IX0.0 = Ingresso fisico 1 del device
..
..
%IX0.3 = Ingresso fisico 4 del device
Uscite Digitali RT:
%QX0.0 =Uscita fisica 1 del device
..
..
%QX0.3 = Uscita fisica 4 del device
Quindi parti sempre da zero, se vuoi settare l'uscita 4 dovrai togliere 1 e quindi diventa %QX0.3
Il pulsante lo attivi alla pressione e torna automaticamente a zero quando lo lasci,2) perchè dove ho un semplice pulsate con PPSR come quello in allegato, quando in modbus mando il comando devo premerlo 2 volte?
mentre probabilmente col Modbus non torna a zero da solo, se ti metti in debug a video vedrai che stai pilotando una volta in accensione del Bit mentre la seconda in spegnimento.
Quindi avrai:
Comando Modbus 1 = Bit >> ON >> PPSR ON
Comando Modbus 2 = Bit >> OFF >> PPSR ON
Comando Modbus 3 = Bit >> ON >> PPSR OFF
oppure:
Comando Modbus 1 = Bit >> ON >> PPSR ON
Reset da programma,
Comando Modbus 2 = Bit >> ON >> PPSR OFF
Reset da programma,
Comando Modbus 3 = Bit >> ON >> PPSR ON
per far funzionare un PPSR con un comando tipo interruttore (bistabile) e non pulsante (monostabile)
devi usare i fronti di salita.
Dipende solo da che logica vuoi realizzare, se non c'è logica e vuoi solo legare il Bit Modbus all'uscita fisica sul Buspensavo che comandando le uscite direttamente bypassavo la logica del ladder.
non devi usare nessuna libreria, metti il tuo ingresso con Bit modbus collegato direttamente all'uscita/e e hai il controllo diretto dell'uscita,
se invece oltre al controllo da Home Assistant devi fare deviazione con pulsanti, altri touch ecc.. allora ti serve almeno un PPSR.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Coil significa bobina (deriva dal cablaggio elettrico di cui il ladder è la forma software) è usata anche nel Modbus RTUHo detto che attivando il coil1 mi attiva l’uscita 03. Quindi non so che cosa c’è che non va nella comunicazione con modbus.
dato che anche questo è un protocollo nato per supervisionare i PLC, quindi Coil 1 può essere sia l'uscita nel ladder sia nel protocollo Modbus ecc..
se intendi coil come protocollo Modbus per evitare confusione con i Coil del Ladder meglio se nelle descrizioni
metti Coil Modbus, oppure Bit di uscita Modbus ecc..
Il Coil1 ( se non ho capito male inteso come Coil Modbus numero 1) in pratica non pilota nulla, per farlo deve essere connesso a un uscita del HomePLC,
non ho ancora risposta su come sei connesso via Modbus?
Sei connesso sulla porta principale o tramite Interfaccia Master Modbus ??
Chiedo perché cambia completamente l'approccio.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Se vuoi attivare un relè direttamente dalla porta principale di HomePlc non devi scrivere la funzione coil Modbus,
Devi vedere la tabella nell' Help di LadderHome,
Sulla destra delle uscite trovi un registro dove sono fisicamente le uscite esp. XC 201
Ricorda che la tabella rispetto all'indirizzamento del master (in questo caso Home Assistant) potrebbe essere spostata di 1.
Poi verifica che tramite Home Assistant tu possa gestire un singolo Bit (in lettura e scrittura) di un registro a 16 bit (sono holding register) , dato che le uscite come gli ingressi sono tutti registri a 16 Bit.
Devi vedere la tabella nell' Help di LadderHome,
Sulla destra delle uscite trovi un registro dove sono fisicamente le uscite esp. XC 201
Ricorda che la tabella rispetto all'indirizzamento del master (in questo caso Home Assistant) potrebbe essere spostata di 1.
Poi verifica che tramite Home Assistant tu possa gestire un singolo Bit (in lettura e scrittura) di un registro a 16 bit (sono holding register) , dato che le uscite come gli ingressi sono tutti registri a 16 Bit.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Si può controllare in varie modalità,
Direttamente tramite le librerie XComm, importabili in vari linguaggi VBA, C#, Vb.Net, ecc..
La libreria essendo in tecnologia COM può poi essere referenziata in vari linguaggi come il PHP ecc.. e in pratica con vari programmi che possono istanziare oggetti.
Tramite il BMS 15 utilizzando i Tags, ovvero gli alias delle risorse e poi si possono usare i Tags con gli oggetti grafici,
Con la libreria già descritta sopra,
e programmarli tramite Run Time Basic (c'è un forum dedicato con vari filmati)
E ancora tramite Web tramite HTML5 e Java Script..
Queste sono solo i metodi di controllo che si utilizzano in abbinamento al sistema BMS 15, poi ci sono i controlli a livello Hardware,
Quindi si possono manovrare dal programma Ladder,
da protocollo Modbus RTU su bus master dell'HomePlc
Tramite interfaccia Modbus connessa direttamente al Bus e quindi che interagisce direttamente con la memoria HomePlc..
Ecc...
Se sai da dove lo vuoi controllare o come magari posso essere più preciso..
Direttamente tramite le librerie XComm, importabili in vari linguaggi VBA, C#, Vb.Net, ecc..
La libreria essendo in tecnologia COM può poi essere referenziata in vari linguaggi come il PHP ecc.. e in pratica con vari programmi che possono istanziare oggetti.
Tramite il BMS 15 utilizzando i Tags, ovvero gli alias delle risorse e poi si possono usare i Tags con gli oggetti grafici,
Con la libreria già descritta sopra,
e programmarli tramite Run Time Basic (c'è un forum dedicato con vari filmati)
E ancora tramite Web tramite HTML5 e Java Script..
Queste sono solo i metodi di controllo che si utilizzano in abbinamento al sistema BMS 15, poi ci sono i controlli a livello Hardware,
Quindi si possono manovrare dal programma Ladder,
da protocollo Modbus RTU su bus master dell'HomePlc
Tramite interfaccia Modbus connessa direttamente al Bus e quindi che interagisce direttamente con la memoria HomePlc..
Ecc...
Se sai da dove lo vuoi controllare o come magari posso essere più preciso..
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Tutti i registri di riferimento per il Modbus RTU su HomePLC 2 si possono leggere direttamente
sulla tabella delle risorse sull'Help di LadderHome.
per esempio %QX0.1 è contenuto sul Bit 1 nel registro XC 201
Verifica l'allineamento del protocollo con questi indirizzi perché il software Master Modbus secondo di come poi indirizza nel basso livello
il Modbus o il JBus potrebbe richiedere di sottrarre o aggiungere un 1 all'indirizzo.
sulla tabella delle risorse sull'Help di LadderHome.
per esempio %QX0.1 è contenuto sul Bit 1 nel registro XC 201
Verifica l'allineamento del protocollo con questi indirizzi perché il software Master Modbus secondo di come poi indirizza nel basso livello
il Modbus o il JBus potrebbe richiedere di sottrarre o aggiungere un 1 all'indirizzo.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Certo, l'uscita se viene scritta nel programma Ladder è aggiornata ogni 150 ms quindi non puoi scriverla in altri modi neppure in altre parti del programma,io ho provato tramite HA a scrivere il registro 201 che leggo per farla accendere o spegnere, ma questo non funziona, forse perchè cè la logica fatta in laddder che prevale?
dovrei piuttosto che scrivere il registro di uscita, dovrei scrivere il registro di entrata?
I questi casi si dice che l'uscita è duplicarla.
Devi mettere un relè o una logica a monte del comando nel rung che gestisce l'uscita e fare in modo che non vada in conflitto con altre attivazioni, per esempio se metti due ingressi in parallelo va verificato che uno dei due non rimanga attivo altrimenti l'altro non potrà più funzionare, così come avviene in un normale impianto cablato...
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Integrazione HomePLC – HomeAssistant su Modbus
Prova con la funzione 16 anche per scrivere un solo registro,
inoltre il registro indirizzato nel tuo test è il 399 non il 400, per fare una prova scrivi nel registro 410
e poi vedi dove effettivamente è stato scritto il valore leggendo i registri da 409 a 411.
Non posso fare questi test direttamente perché sono fuori e non ho un HPLC.
inoltre il registro indirizzato nel tuo test è il 399 non il 400, per fare una prova scrivi nel registro 410
e poi vedi dove effettivamente è stato scritto il valore leggendo i registri da 409 a 411.
Non posso fare questi test direttamente perché sono fuori e non ho un HPLC.