Modbus Wago 750-881 with 50 DO .items - settings to control

Hello,
I`m running OH2 und Win7 with the Modbus 2.4 Binding
TSP slave is installed and online

Poller is installed and online
connectet to Slave
Poll Intervall: 500
Startadress: 0
Length: 120
Type: Coil o. Do

Data is installed and online
connected to poller,
Read adress: 0
Read value type: bit
Write Type: coil or. Do
Write value Type: bit
Read transform: default
Write address: 512
Write transform: default
Write multiple even with single register --> on

all done in PaperUI

In VSC .items created from channel
.items
Switch WagoH1WohnenModbusData_Switch4 “Haus1AmpTerasse” (gLabTest) {channel=“modbus:data:f6662cad:switch”}

Im using Wago 750-881 with 50 Do - in the configuration above the .item Switch is only on the first Do1
Adress: write 0.0 - status 512.0 reacting

My Problem is:
How to adress the next adresses
Adress: write 0.1 - status 512.1 , write 0.1 - status 512.1 , write 0.2 - status 512.2 , write 0.3 - status 512.3

I tried div. channel Mods z.b. {channel=“modbus:data:f6662cad:coil:D2:switch”} without success
Do i have to install multible Data things + coressponding items ???
I would like to have only one data .thing an than al list of 80 .items (Switches) to control the Do´s

Please help

Yes. The flexibility of the modbus binding, that allows you to do things like read and write to different addresses or even different types for the same ‘thing’, comes at the cost of a quite manual configuration process.

“Too bad” I’m afraid :wink:
You only have to do it once.

Some user prefer to configure with a xxx.things file instead of PaperUI, as you can see everything at once and assign sensible channel names.
Either/or, don’t try to mix methods.

Thx for your answers
so I switched to the files - this works now - but there is a second problem

besides the slave with 50 DO´s IP xxx.xxx.xx.01 I use
two more slaves with IP xxx.xxx.xx.02, and xxx.xxx.xx.03 a 20 Do´s

working now on slave1.things,
Bridge modbus:tcp:localhostTCP [ host=“xxx.xxx.xx.xx1”, port=502, id=0 ] {

Bridge poller coils [ start=0, length=120, refresh=500, type=“coil” ] {
Thing data do0 [ readStart=“0”, readValueType=“bit”, writeStart=“512”, writeValueType=“bit”,
writeType=“coil” ] etc.

slave.2.things
Bridge modbus:tcp:localhostTCP [ host=“xxx.xxx.xx.xx2”, port=502, id=0 ] {
Bridge poller coils [ start=0, length=120, refresh=500, type=“coil” ] {
Thing data do00 [ readStart=“0”, readValueType=“bit”, writeStart=“512”, writeValueType=“bit”,
writeType=“coil” ]
etc.

  • corresponding switch1.items + switch2.items files
    switch1.items
    Switch do0 “Switch-DO-0-1A [%d]” (gLabTest) { channel=“modbus:data:xxx.xxx.xx.xx1:coils:do0:switch”}

switch2.items
Switch do00 “Switch-DO-00-1A [%d]” (gLabTest) { channel=“modbus:data:xxx.xxx.xx.xx2:coils:do00:switch”}

now the switches2.items trigger the coils of slave1
How can I fix this ???

All these things have to have different names. I can see you have two poller things called “coils”, for example.

Work out a naming convention to save driving yourself mad. e.g.
Bridge thing slave22
Poller thing slave22coils
Data thing s22-coil00

1 Like

thx very much - is working now fine
one more question
is there a way to link items to the channels - without using PaperUI

Of course, you may define items in one or more xxx.items files, and specify the channel of a PaperUI defined binding.
Example from the docs

Number Temperature_Modbus_Livingroom "Temp Living room [%.1f °C]"    { channel="modbus:data:siemensplc:holding:livingroom_temperature:number" }

o.k. thx very much problem solved