Vai al contenuto
PLC Forum


Interfacciare OpenHab ad impianto domotico DUEMMEGI tramite ModBus


omar1971

Messaggi consigliati

Con un'po' di pazienza ti ho trascritto i dati che secondo mè servono per la connessione

Station Proprieties:

Device Data
Tumaround Delay=0
Station ID=0

Deneral
Station Nale=Default Station
Error Threshold=1
State/Command Variable= (campo vuoto)
Keet Opened=True

Serial Port Mapping
Port=2
Baudrate=19200Byte Size=8
Parity=No Parity
Stop Bit=1 Stop Bit
Flow Control=None

Queue Size
Rx Queue=4096
Tx Queue=4096

Timeouts
TAPI Rx Timeout=5000
TAPI Tx Timeout=5000
CD Timeout=2000
Tx Timeout=5000
Rx Timeout=5000

set_1.jpg

Link al commento
Condividi su altri siti


  • Risposte 141
  • Created
  • Ultima risposta

Top Posters In This Topic

  • smoothhands

    73

  • omar1971

    65

  • electricb

    2

  • Ivan Botta

    1

Proverei con questi parametri: 

modbus:poll=200
modbus:slave1.connection=COM2:19200:8:none:1:rtu
modbus:slave1.type=
modbus:slave1.id=1
modbus:slave1.start=400 (oppure 399)
modbus:slave1.length=4

Come dicevo none non compare tra i valori per la parity ma 

la guida del binding potrebbe essere un po datata.

I tanti messaggi che continuano a scorrere a schermo sono dovuti

al refresh di 200msec e al fatto che restituisce un errore.

 

Nell'immagine che hai postato il parametro Station ID è 1 quindi

penso sia il valore per slave1.id

Modificato: da smoothhands
Link al commento
Condividi su altri siti

ciao, ho fatto ulteriore prova, ho avviato il debug, questa volta le istruzionoi ad un certo punto si sono fermate ed ho potuto ricercare mediante il trova qualcosa con MOBBUS che ti incollo di seguito

----

14:11:30.853 [DEBUG] [o.b.m.internal.ModbusActivator:30   ] - Modbus binding has
 been started.
14:11:30.885 [DEBUG] [.modbus.internal.ModbusBinding:268  ] - given modbus-slave
-config-key 'slave1.connection' does not follow the expected pattern or 'serial.
<slaveId>.<connection|id|start|length|type|valuetype|rawdatamultiplier|writemult
ipleregisters>'
14:11:30.886 [DEBUG] [.modbus.internal.ModbusBinding:268  ] - given modbus-slave
-config-key 'slave1.id' does not follow the expected pattern or 'serial.<slaveId
>.<connection|id|start|length|type|valuetype|rawdatamultiplier|writemultipleregi
sters>'
14:11:30.888 [DEBUG] [.modbus.internal.ModbusBinding:268  ] - given modbus-slave
-config-key 'slave1.length' does not follow the expected pattern or 'serial.<sla
veId>.<connection|id|start|length|type|valuetype|rawdatamultiplier|writemultiple
registers>'
14:11:30.889 [DEBUG] [.rrd4j.internal.RRD4jActivator:31   ] - RRD4j persistence
bundle has been started.
14:11:30.890 [DEBUG] [.modbus.internal.ModbusBinding:268  ] - given modbus-slave
-config-key 'slave1.start' does not follow the expected pattern or 'serial.<slav
eId>.<connection|id|start|length|type|valuetype|rawdatamultiplier|writemultipler
egisters>'
14:11:30.908 [DEBUG] [.modbus.internal.ModbusBinding:268  ] - given modbus-slave
-config-key 'slave1.type' does not follow the expected pattern or 'serial.<slave
Id>.<connection|id|start|length|type|valuetype|rawdatamultiplier|writemultiplere
gisters>'
14:11:30.910 [DEBUG] [.modbus.internal.ModbusBinding:352  ] - config looked good
, proceeding with slave-connections
14:11:30.914 [INFO ] [.service.AbstractActiveService:169  ] - Modbus Polling Ser
vice has been started

Link al commento
Condividi su altri siti

Per quanto ne possa capire errori non ne vedo, sembra che la comunicazione ci sia....

ma rimango in attesa di tue nuove ...

ciao grazie per la pazienza..

Link al commento
Condividi su altri siti

quindi questa volta potrebbe anche funzionare :smile:

Ora bisogna inserire gli Items, la sitemap e poi configuriamo la persistenza.

Per definire gli Items devi creare un file <nome>.items nella directory configurations/items.

"nome" può essere quello che preferisci... ad esempio domotica.items oppure luci.items

Ricarichi la directory configurations in Designer e selezioni il file che hai appena creato.

Inserisci...

Group 	All
Group	Luci		""	(All)

Switch	Uscita1	"Uscita 1"	<switch>	(Luci)		{ modbus="slave1.0" }
Switch	Uscita2	"Uscita 2"	<switch>	(Luci)		{ modbus="slave1.1" }
Switch	Uscita3	"Uscita 3"	<switch>	(Luci)		{ modbus="slave1.2" }
Switch	Uscita4	"Uscita 4"	<switch>	(Luci)		{ modbus="slave1.3" }

NB. ho fatto partire il binding da slave1.0 ma il primo potrebbe essere slave1.1. Poi lo correggiamo eventualmente.

Poi creiamo la sitemap alla stessa maniera degli items. Anche qui il nome può essere qualunque <nome>.sitemap

nella cartella configurations/sitemap.

Sempre in designer ricarichi le configurazioni ed editi il file sitemap appena creato.

sitemap duemmegi label="La mia sitemap"
{
	Switch item=Uscita1 
	Switch item=Uscita2
	Switch item=Uscita3 
	Switch item=Uscita4
}		

NB. Dall'esempio puoi notare che ho inserito come nome della sitemap "duemmegi". Questo deve essere uguale

al nome del file ---> duemmegi.sitemap

Crati questi due files dovresti poter caricare la pagina web all'indirizzo...

http://<ip della macchina con openhab>:8080/openhab.app?sitemap=<nomesitemap>

Se il browser è quello del pc con l'installazione di openhab prova anche con 127.0.0.1 oppure localhost.

Link al commento
Condividi su altri siti

Bene ho fatto tuto come hai dettagliatamente espresso..

Avviato il debug, aperto il browser e si vedono 4 lampade a sinistra le uscite e 4 comandi sulla destra, premendo i pulsanti si accendono le relative lampadine (uscite) ma purtroppo non ci sono movimenti sulla scheda in campo...

Link al commento
Condividi su altri siti

Ho riesumato la prova che avevo fatto tempo fa con movicon...

la word 317 corrisponde al modulo 61 (che ho collegato al sistema)

il bit 0 = uscita 1

il bit 1 = uscita 2

il bit 2 = uscita 3

il bit 3 = uscita 4

e tutto corrisponde

Link al commento
Condividi su altri siti

Un momento... corrisponde a cosa?

id deve diventare = 61

e start = 317 o 316

dove hai tirato fuori 400?

Dovresti farti uno specchietto con gli id e dove

è mappato in memoria ogni dispositivo altrimenti

andiamo alla cieca

Modificato: da smoothhands
Link al commento
Condividi su altri siti

ho trovato questi errori...

17:39:39.371 [ERROR] [i.internal.GenericItemProvider:350  ] - Binding configurat
ion of type 'modbus' of item æUscita2æ could not be parsed correctly.
org.openhab.model.item.binding.BindingConfigParseException: Invalid number of re
gisters in item configuration

Link al commento
Condividi su altri siti

Allora... andiamo con ordine.

Come prima cosa serve l'indirizzo esatto del modulo del quale

vogliamo comandare le uscite.

Se ci colleghiamo a un modulo che gestisce l'impianto dovrebbe

essere sufficiente avere l'id di questo in quanto tutti gli altri moduli

dovrebbero essere mappati nella memoria del primo.

 

Quel messaggio sembra che indichi due errori differenti: uno nel

leggere la definizione del binding Uscita2 l'altro come se ci fosse

un errore nel registro utilizzato.

 

Hai usato Designer?

Potresti indicare la configurazione usata  quando ti restituisce un errore?

Link al commento
Condividi su altri siti

Allora ricapitolando...

modbus:poll=200
modbus:slave1.connection=COM2:19200:8:none:1:rtu
modbus:slave1.type=coil
modbus:slave1.id=1
modbus:slave1.start= ?????
modbus:slave1.length=4

Dove per ????? dobbiamo trovare assolutamente l'indirizzo esatto.

mentre per gli Items...

Group 	All
Group	Luci		""	(All)

Switch	Uscita1	"Uscita 1"	<switch>	(Luci)		{ modbus="slave1:0" }
Switch	Uscita2	"Uscita 2"	<switch>	(Luci)		{ modbus="slave1:1" }
Switch	Uscita3	"Uscita 3"	<switch>	(Luci)		{ modbus="slave1:2" }
Switch	Uscita4	"Uscita 4"	<switch>	(Luci)		{ modbus="slave1:3" }

E incrociamo le dita

Link al commento
Condividi su altri siti

eccomi.. i software non sono connessi assieme...

dunque... io mi connetto tramite la porta RS232 dell'interfaccia DFTS che ha come ID=1

tale interfaccia mi da la possibilità di monitorare ed agire sull'intero sistema domodico composto da diversi moduli (ingresso/uscita/etc) ovviamente indirizzati da 1 a...xxx

il modulo che sto controllando è un modulo di uscita con ID 61 e tale modulo leggendo la tabella di comparazione fornito con l'interfaccia mi indica che le uscite li trovo nella word 317 bit 0-1-2-3

confermo ho usato designer...

scusa ma non capisco ... "Potresti indicare la configurazione usata  quando ti restituisce un errore?"

ora provo... { modbus="slave1:1" } ... devo modificare il file items

da così

Switch Uscita1 "Uscita 1" <switch> (Luci) { modbus="slave1.0" }

Switch Uscita2 "Uscita 2" <switch> (Luci) { modbus="slave1.1" }

Switch Uscita3 "Uscita 3" <switch> (Luci) { modbus="slave1.2" }

Switch Uscita4 "Uscita 4" <switch> (Luci) { modbus="slave1.3" }

 

a così?

Switch Uscita1 "Uscita 1" <switch> (Luci) { modbus="slave1:1" }

Switch Uscita2 "Uscita 2" <switch> (Luci) { modbus="slave1:2" }

Switch Uscita3 "Uscita 3" <switch> (Luci) { modbus="slave1:3" }

Switch Uscita4 "Uscita 4" <switch> (Luci) { modbus="slave1:4" }

Link al commento
Condividi su altri siti

Esatto... metti anche per scaramanzia start=317 nel file cfg

scusa ma non capisco ... "Potresti indicare la configurazione usata  quando ti restituisce un errore?"

Se fai più modifiche assieme potrebbe sfuggire cosa è può essere giusto da quello che è sbagliato

Intendevo quali parametri avevi utilizzato.

Modificato: da smoothhands
Link al commento
Condividi su altri siti

eccomi... nulla da fare...

ti allego i file items e sitemap e di seguito il file cfg sezione modbus

 

modbus:poll=200

modbus:slave1.connection=COM2:19200:8:none:1:rtu

modbus:slave1.type=coil

modbus:slave1.id=1

modbus:slave1.start=316

modbus:slave1.length=4

 

 

DFTS.items

Duemmegi.sitemap

Link al commento
Condividi su altri siti

Io non avrei mai utilizzato i file di items e sitemap con maiuscole e minuscole.

Avrei utilizzato tutto minuscolo.

dfts.items

duemmegi.sitemap

 

Potresti allegare anche qualcosa di log... per vedere se ci può dare qualche informazione?

Il resto sembra valido... hai provato anche con 317?

Modificato: da smoothhands
Link al commento
Condividi su altri siti

Stavo guardando proprio adesso questo documento sul dfts.

Ingressi e uscite sono separate e...

- gli indirizzi da 1..255 sono per gli ingressi dei moduli

- gli indirizzi da 257..511 sono per le uscite dei moduli

A parte è il discorso dei valori numerici.

L'indirizzo che avevi scritto prima, 317, altro non è giustamente che il modulo 61.

Mi sembra tutto corretto. 

Visto che per ogni modulo sono riservati 16 bit potresti provare a mettere

slave1.length=16 nel file cfg. Ma non dovrebbe cambiare nulla.

 

L'unica cosa è vedere di farci guidare dal log di openHAB.

Questo lo da ancora?

17:39:39.371 [ERROR] [i.internal.GenericItemProvider:350  ] - Binding configurat
ion of type 'modbus' of item æUscita2æ could not be parsed correctly.
org.openhab.model.item.binding.BindingConfigParseException: Invalid number of re
gisters in item configuration

Quando lanci openHAB i led del dfts lampeggiano... fanno qualcosa?

 

 

Link al commento
Condividi su altri siti

modificare slave1.length=16 ... intendi:

modbus:slave1.length=16

anziché

modbus:slave1.length=4

devo indicarti qualcosa nel file logback? "è questo che intendi come file"

I led sull'interfaccia non li vedo, perché è ubicato in locale diverso...  (vedo cosa riesco a fare)

grazie ancora... troppo gentile

 

Link al commento
Condividi su altri siti

Il controllo dei led l'ho fatto anche cambiando il convertitore che sto utilizzando sulla porta seriale dell'interfaccia..

cerco di spiegarmi

normalmente la porta seriale del modulo DFTS la connetto ad un convertitore TIBBO seriale/IP, per potermi connettere con il sistema domotico, e programmarlo da qualsiasi posto della casa. Quindi il pc che utilizzo per la programmazione (che è lo stesso a cui ho installato OpenHab) mediante il drive del TIBBO virtualizza una porta COM nel mio caso la 2

Facendo una seconda prova... mi sono portato al quadro elettrico dove ho installato il DFTS e ho connesso direttamente il convertitore USB/COM, ho modificato la porta nel file cfg... ma nessun risultato.

Per controprova.. ho avviato il software di programmazione della DUEMMEGI e per magia la comunicazione si è avviata correttamente facendo lampeggaire i led ... segnale di trasmissione dati corretta...

spero di essere stato chiaro...

 

 

 

 

 

 

Link al commento
Condividi su altri siti

modificare slave1.length=16 ... intendi:

modbus:slave1.length=16

anziché

modbus:slave1.length=4

si esatto

devo indicarti qualcosa nel file logback? "è questo che intendi come file"

No, semplicemente qualche riga di log di openHAB come hai fatto altre volte.

spero di essere stato chiaro...

si è chiaro.

Mi dispiace ma il binding per modbus è nato per il TCP e poi è stato esteso al seriale.

Tra l'altro non è particolarmente documentato e non so quanto è affidabile.

Il software della duemmegi immagino utilizzi il protocollo proprietario ma hai scritto di

averlo provato anche con altri software per modbus e funzionava quindi...

... il problema è nel binding per modbus di openHAB.

Se anche quando hai collegato direttamente il convertitore usb/seriale nemmeno i led

davano segni di vita non so se possiamo farcela.

 

Posso fare una prova con un pezzo del mio impianto domotico per verificare se il binding in generale

funziona ma la configurazione è differente:

- embedded con linux

- porta RS485

- dispositivo solo modbus

 

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