Integrazione HomePLC – HomeAssistant su Modbus

Forum di supporto alla configurazione e utilizzo
per HomePLC Ladder IEC 1131-3 versione 1 e 2

In Questo Forum si discute solo della configurazione e della programmazione Ladder per altri tipi di programmazione e configurazioni utilizzare i Forum dedicati.
Alxsanti
Messaggi: 0
Iscritto il: sab 18 dic 2021, 14:36

Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da Alxsanti »

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
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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.
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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.
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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..
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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.
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

In alternativa usare il convertitore rs485/usb della netBA?
Questa versione di HomePLC ha una RS485 sia come Bus di Supervisione/Programmazione
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

Messaggio da YahooSeeker [Bot] »

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.
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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...
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

A) sul sistema dove utilizzi home assistant che tipo di uscita di comunicazione utilizzi?

Seriale RS232?
Seriale Rs485?
LAN?
Altro...??
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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
Sicuramente qualcosa c'è, se devi attivare un uscita va visto come lo fai,
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

Messaggio da YahooSeeker [Bot] »

Il Modbus RTU dove lo connetti alla porta principale del HomePLC
oppure utilizzi il Master Modbus del sistema HP?
da ABS o ladder.. funziona tutto non cè problema
Intendo che se il programma o comunque simulando l'attività che vuoi svolgere tramite il Bit su Modbus
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

Messaggio da YahooSeeker [Bot] »

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

Messaggio da YahooSeeker [Bot] »

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.
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

1) perchè se io attivo il coil: 1
mi attiva l uscita QX0.3 ? il QX0.3 dovrebbe essere coil 4
L'indirizzamento IEC standard è questo,

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

2) perchè dove ho un semplice pulsate con PPSR come quello in allegato, quando in modbus mando il comando devo premerlo 2 volte?
Il pulsante lo attivi alla pressione e torna automaticamente a zero quando lo lasci,
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.
pensavo che comandando le uscite direttamente bypassavo la logica del ladder.
Dipende solo da che logica vuoi realizzare, se non c'è logica e vuoi solo legare il Bit Modbus all'uscita fisica sul Bus
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

Messaggio da YahooSeeker [Bot] »

Ho detto che attivando il coil1 mi attiva l’uscita 03. Quindi non so che cosa c’è che non va nella comunicazione con modbus.
Coil significa bobina (deriva dal cablaggio elettrico di cui il ladder è la forma software) è usata anche nel Modbus RTU
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

Messaggio da YahooSeeker [Bot] »

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.
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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..
YahooSeeker [Bot]
Messaggi: 80
Iscritto il: gio 14 gen 2021, 18:56

Re: Integrazione HomePLC – HomeAssistant su Modbus

Messaggio da YahooSeeker [Bot] »

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.


registri XC Modbus.png
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

Messaggio da YahooSeeker [Bot] »

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?
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,
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

Messaggio da YahooSeeker [Bot] »

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.