modbus (rs485) ongelmia

VesA

In Memoriam
Jos ATOP on vaan T-haarana RS485 väylän kyljessä ja OH RS485 -väylällä ATOPin pitäisi olla RS485 -puolelta slave ( jotta se kuuntelee ) ja ethernetin puolelta master jotta se komentaa eteenpäin - ja sillä pitäisi olla joku ethernet-slave jolta ehkä edellytetään jotain käytöstä, mutta en tuosta ymmärrä mistä se gw tietää mikä Modbus-osoite on missäkin TCP-yhteydessä. Ehkä se oppii - lähettää ensin kaikille ja se joka vastaa saa jatkossa ne idt. Tai sitten se tekee jonkun scannauksen ja selvittää mitä on missäkin..
 

kurre orava

´niin pienen hetken rakkaus on lumivalkoinen...´
Jos ATOP on vaan T-haarana RS485 väylän kyljessä ja OH RS485 -väylällä ATOPin pitäisi olla RS485 -puolelta slave ( jotta se kuuntelee ) ja ethernetin puolelta master jotta se komentaa eteenpäin
Tuohon samaan päädyin päivällä itsekin kun pyörittelin noita eri vaihtoehtoja. Käytännön ongelmana tuossa taitaa olla se että OH olettaa vastaukseen kyselyyn tulevan heti, se ei halua odottaa siihen asti että tuo ko rekisteri sattuu päivittymään väylällä. Eikä sitä voi käytännössä kysellä väylältä kun on jo yksi master eli tuo AM40.

Vaatisiko tuo siten jonkinlaisen välipurkin/puskurin, vaikkapa Arduino joka seuraisi väylän liikennettä ja OH:n kysellessä palauttaisi tuoreimman arvon ko rekisteristä? Oliskohan joku tehnyt vastaavan sovelluksen aiemmin? Toisaalta ei ole oikeastaan kun 3-4 rekisteriä mitä oli tarkoitus seurata tuosta Vexvestä joten kaipa tuollaisen saisi jotenkin parsittua kasaan itsekin vaikkei ohjelmoinnista ymmärrä senkään vertaa mitä se kuuluisa sika satelliitista.

Mutta kokeilen ensin vielä millaisia tuloksia sieltä RF liitännän kautta saa. Noissa on eri väylänopeudet tuossa EXT I/O (38,4j ja RF (115,2) joten liikkuisikohan se tieto ”liukkaammin” RF:n puolella. Vexven propeliiosastolta evästivät et säätimen emolevyllä, kotelon sisällä on vielä yksi väyläliitäntä mitä käyttävät tuotannossa laitteen ohjelmoinnissa. Tuon sanottiin olevan kuitenkin rinnan EXT I/O liitännän kanssa joten tuskin maksaa vaivan avata kuoria. Kokeilen ensin tuota RF vaihtoehtoa ainakin.
 

VesA

In Memoriam
Vaatisiko tuo siten jonkinlaisen välipurkin/puskurin, vaikkapa Arduino joka seuraisi väylän liikennettä ja OH:n kysellessä palauttaisi tuoreimman arvon ko rekisteristä? Oliskohan joku tehnyt vastaavan sovelluksen aiemmin? Toisaalta ei ole oikeastaan kun 3-4 rekisteriä mitä oli tarkoitus seurata tuosta Vexvestä joten kaipa tuollaisen saisi jotenkin parsittua kasaan itsekin vaikkei ohjelmoinnista ymmärrä senkään vertaa mitä se kuuluisa sika satelliitista.
Minulla on Vaillantin väylällä ( joka ei ole modbus ) raspi jolla voi osallistua tai vaan kuunnella jos säännölisesti toistuvat asiat riittävät. Olen kyllä käyttänyt sitä vehkeen säätämiseenkin. Eiköhän sellainen softa jostain löydy modbussillekin - pelkkään kuunteluun toki riittää softa joka ei osallistu mitenkään - kunhan syöttää havaintonsa jotenkin OH:lle.

 

kurre orava

´niin pienen hetken rakkaus on lumivalkoinen...´
Tuossako on tommonen Modbus tarjolla, onko tuo yhden piirin säädin?
No, miten tuon nyt ottaa. Vexven palikat eli keskusyksikkö, shuntit ja sisätermarit keskustelevat keskenään modbus:lla. Eli keskusyksikkö on masterina. Tuskin tuossa ovat tuota kehittäessä ajatelleet että tuo väylä tulisi kuluttajan käyttöön mutta sitä on kuulemma tehty muutamassa tapauksessa. Itsekin olen tuota yrittänyt mutta en ole ihan ns päässyt vielä maaliin asti kun työt haittaavat harrastuksia.

Vexven säätimessä on kaksi piiriä mutta peruskokoonpano on yhdellä shunttimoottorilla, toinen on lisävaruste.

Sinänsä tuo on monipuolinen ja hyvin toimiva säädin, ainoa puute tuossa on oikeastaan tuo puuttuva lan-liitäntä.
 

roots

Hyperaktiivi
No, miten tuon nyt ottaa. Vexven palikat eli keskusyksikkö, shuntit ja sisätermarit keskustelevat keskenään modbus:lla. Eli keskusyksikkö on masterina. Tuskin tuossa ovat tuota kehittäessä ajatelleet että tuo väylä tulisi kuluttajan käyttöön mutta sitä on kuulemma tehty muutamassa tapauksessa. Itsekin olen tuota yrittänyt mutta en ole ihan ns päässyt vielä maaliin asti kun työt haittaavat harrastuksia.

Vexven säätimessä on kaksi piiriä mutta peruskokoonpano on yhdellä shunttimoottorilla, toinen on lisävaruste.

Sinänsä tuo on monipuolinen ja hyvin toimiva säädin, ainoa puute tuossa on oikeastaan tuo puuttuva lan-liitäntä.
Jaa se on modbus-naru joka menee säätimeltä moottorille, niinno RJ-liittimillähän ne on koplattu (vai onko auki/kiinni heikkovirtakäskyt) ... Moottoripalikalla on sitten oma virtalähde vai onko se 230VAC liitäntäinen?
Itsellä ehkä tarve jossain kohtaa 2-piiriselle shunttiohjaukselle, tuommonen vois olla yx vaihtoehto jollei ole hinnalla pilattu...todnäk. on. ;D
 

kurre orava

´niin pienen hetken rakkaus on lumivalkoinen...´
RJ liittimillä juurikin. Ja sisäyksikkö RF boksin perässä myös RJ liittimellä.
Moottorit ovat 24VAC eli samassa narussa käskyjen kanssa kulkee myös shunteille virtaa.
Halvempi tuo on hankintahinnaltaan Oumaniin 800 malliin verrattuna jos tarvii kahta piiriä.
Ja tuon toiminnasta ei ole pahaa sanottavaa, aika monipuolinen värkki.
Olispa vaan se lan liitin vielä…
Mutta jos muut ovat saaneet tuota liikennettä kuulolle ja käyttöön niin kaipa sen täytyy täälläkin onnistua. Eteenpäin sanoi mummo umpihangessa vai miten se menikään?
 

Sukke

Aktiivinen jäsen
Olisi tarkoitus saada ensimmäinen modbus-laite Home Assistantiin, mutta epäilen itseäni hieman kytkennöissä. Löytyisikö ketjusta apuja?

Eli kyseessä on Swegonin R5 -ilmanvaihtokone ja siihen liitettävä SEC-moduuli: https://www.swegon.com/fi/tuotteet/...arusteet/ohjaus--ja-saatolaitteisto/casa-sec/

SEC:in kuvaus: "Smart-laajennuskaapeli (SEC). IO-laajennuskaapeli Modbus RTU:lla (single point connector)"

Home Assistant pyörii Rasberryssä ja siihen on liitettynä seuraava USB-RS485-sovitin: https://www.amazon.de/dp/B08DXRKFZR/ref=pe_27091401_487027711_TE_SCE_dp_3

Jos en ole ihan väärin ymmärtänyt, niin liittimiin sopivilla johtimilla kytketään Swegonin SEC-kaapelin Modbus A liitin tuohon DSD TECHin liittimeen A+ja vastaavasti Modbus B -> B-. Muuta ei tarvita?

Ohjeissa oli myös jossain mainintaa päätevastuksista jossain tapauksissa, mutta se taitaa koskea ketjutettua asennusta SEM-lisäpalikoilla? Alla myös kuva R5 ulkoisista kytkennöistä, jos siitä on apua.



katso liitettä 85919

katso liitettä 85920

Täältähän löytyikin sopiva ketju modbus-asennuksille. Yllä viesti, joka lähti jo Home Assistant -ketjuun.
 

mimique

Tekninen taiteilija
Jep, A -> A ja B -> B. Jos ei toimi, niin sitten voi kytkeä maatkin (GND), joskus RS-485:n vastaanottimen CMRR ei riitä hanskaamaan tilannetta jossa lähettimen ja vastaanottimen potentiaaliero on suuri. Pienillä siirtonopeuksilla (9600 bit/s) ja lyhyillä yhteysväleillä päätevastuksilla ei ole merkitystä, mutta jos ongelmia yhteydessä tuntuu olevan, 120 ohmin päätevastuksen voi tunkea USB-palikan A ja B nastojen väliin. Riippuen käytetyistä RS-485 -piireistä, joskus voi joutua myös biasoimaan A ja B -linjat, kts Renesasis RS-485 tutorial (minulla IME:n CONTO imp S0-pulssien laskurimoduuli ei suostunut toimimaan luotettavasti ilman biasointivastuksia).
 

Sukke

Aktiivinen jäsen
Jep, A -> A ja B -> B. Jos ei toimi, niin sitten voi kytkeä maatkin (GND), joskus RS-485:n vastaanottimen CMRR ei riitä hanskaamaan tilannetta jossa lähettimen ja vastaanottimen potentiaaliero on suuri. Pienillä siirtonopeuksilla (9600 bit/s) ja lyhyillä yhteysväleillä päätevastuksilla ei ole merkitystä, mutta jos ongelmia yhteydessä tuntuu olevan, 120 ohmin päätevastuksen voi tunkea USB-palikan A ja B nastojen väliin. Riippuen käytetyistä RS-485 -piireistä, joskus voi joutua myös biasoimaan A ja B -linjat, kts Renesasis RS-485 tutorial (minulla IME:n CONTO imp S0-pulssien laskurimoduuli ei suostunut toimimaan luotettavasti ilman biasointivastuksia).

Kiitos, kattava ja hyvä vastaus. Eli asennus saattaa vaatia muutakin kuin vain kahden piuhan kytkemisen, selviää kokeilemalla.

Ei ole ilmeisesti mitään riskiä kokeilla näitä vaihtoehtoja eli rikki ei ainakaan helposti pitäisi laitteita saada?

Saan käytännössä senttien pituisella piuhalla yhdistettyä nuo adapterit. Täytyy illalla kokeilla jollakin piuhalla.
 

mimique

Tekninen taiteilija
Tuskin rikki menevät, kaikissa moderneissa RS-485 -piireissä on kohtuullisen hyvät suojaukset. Kokeile tässä järjestyksessä:
  1. A ja B linjat kytketään
  2. Jos ei toimi, tarkista huolellisesti että nopeus, pariteetti ja stop-bit -asetukset ovat oikeat
  3. Jos ei siltikään toimi, varmista että kaikki laiteohjaimet, laitteiden asetukset ja porttiasetukset ovat oikein
  4. Jos ei sittenkään toimi, kytke GND
  5. Jos edelleenkään kuso ei kulje, voit viimeisenä oljenkortena kokeilla tuota biasointia (minulla 560 ohm vastukset A:n ja +5V:n sekä B:n ja GND:n välissä)
 

Sukke

Aktiivinen jäsen
Tuskin rikki menevät, kaikissa moderneissa RS-485 -piireissä on kohtuullisen hyvät suojaukset. Kokeile tässä järjestyksessä:
  1. A ja B linjat kytketään
  2. Jos ei toimi, tarkista huolellisesti että nopeus, pariteetti ja stop-bit -asetukset ovat oikeat
  3. Jos ei siltikään toimi, varmista että kaikki laiteohjaimet, laitteiden asetukset ja porttiasetukset ovat oikein
  4. Jos ei sittenkään toimi, kytke GND
  5. Jos edelleenkään kuso ei kulje, voit viimeisenä oljenkortena kokeilla tuota biasointia (minulla 560 ohm vastukset A:n ja +5V:n sekä B:n ja GND:n välissä)

Lähti toimimaan satunnaisella johdolla, joka sattui käteen. Node Redin kanssa meinasi olla pientä pään hakkaamista seinään, mutta satunnaisesti eri asetuksia kokeilemalla alkoi dataa tulla.

Jotkin osoitteet antavat nollaa ja osa hieman omituisia lukemia, mutta pääosin näyttäisi olevan ihan speksien mukaista tietoa. Jäteilman lämpötilaa ei valitettavasti näy ohjauspaneelissa eikä näyttäisi olevan modbusinkaan kautta tarjolla. Pitänee viritellä oma mittaus putken pinnalta.

Ulkolämpötila näyttää nyt arvoa 65485, vaikka pitäisi olla luokkaa -400 (arvot kymmenesosa-asteita). Mikähän tuon selittäisi, kun speksien minimi -550 ja maksimi 600?

Kirjoittamista en ole vielä lähtenyt kokeilemaan, kun en tiedä miten se Node Redillä hoidetaan. Kaipa tuokin joskus kokeilemalla selviää.

Voiko noita rekistereitä / konetta saada jotenkin sekaisin väärillä arvoilla?
 

mimique

Tekninen taiteilija
Lähti toimimaan satunnaisella johdolla, joka sattui käteen. Node Redin kanssa meinasi olla pientä pään hakkaamista seinään, mutta satunnaisesti eri asetuksia kokeilemalla alkoi dataa tulla.

Jotkin osoitteet antavat nollaa ja osa hieman omituisia lukemia, mutta pääosin näyttäisi olevan ihan speksien mukaista tietoa. Jäteilman lämpötilaa ei valitettavasti näy ohjauspaneelissa eikä näyttäisi olevan modbusinkaan kautta tarjolla. Pitänee viritellä oma mittaus putken pinnalta.

Ulkolämpötila näyttää nyt arvoa 65485, vaikka pitäisi olla luokkaa -400 (arvot kymmenesosa-asteita). Mikähän tuon selittäisi, kun speksien minimi -550 ja maksimi 600?

Kirjoittamista en ole vielä lähtenyt kokeilemaan, kun en tiedä miten se Node Redillä hoidetaan. Kaipa tuokin joskus kokeilemalla selviää.

Voiko noita rekistereitä / konetta saada jotenkin sekaisin väärillä arvoilla?
Modbusin rekisterien perustyyppi on 16 bittinen luku. On sitten sopimuskysymys mitä tämä tarkoittaa, onko se etumerkkillinen vaiko etumerkitön luku, tarvitseeko se lisäksi toisen rekisterin jotta saadaan 32-bittinen luku, jne. Nyt järjestelmäsi tulkitsee rekisterin arvon etumerkittömäksi luvuksi, vaikka se onkin etumerkillinen 2-komplementtiluku. Voit muuttaa sen etumerkilliseksi näin: 65485 - 2**16 = 65485 - 65536 = -51. Eli ilmeisesti -5,1oC. En tunne Node Rediä, mutta @mestariviheltäjä :n esimerkistä löytynee keinot joilla kertoo Node Redille että luvut ovat etumerkillisiä ja sisältävät yhden desimaalin (kymmenen kertaa suurempia kuin oikeasti).

Huomaa, että Modbusissa on useamman tyyppisiä rekistereitä: input-rekistereitä joista voi vain lukea, ja holding-rekistereitä joista voi sekä lukea että kirjoittaa. Kirjoittamalla (Holding) rekistereihin vääriä arvoja saa koneen sekaisin samoin kuin koneen ohjauspaneelistakin asettamalla. Lisäksi jos koneella on Modbusin kautta manipuloitavissa dokumentoimattomia rekistereitä, niiden räpeltäminen voi aiheuttaa mystisiä oireita. Summa summarum: jos ymmärtää mitä Modbus-rekisteristä luettu arvo merkitsee, voi aivan hyvin siihen kirjoittaakin.
 

Sukke

Aktiivinen jäsen
Modbusin rekisterien perustyyppi on 16 bittinen luku. On sitten sopimuskysymys mitä tämä tarkoittaa, onko se etumerkkillinen vaiko etumerkitön luku, tarvitseeko se lisäksi toisen rekisterin jotta saadaan 32-bittinen luku, jne. Nyt järjestelmäsi tulkitsee rekisterin arvon etumerkittömäksi luvuksi, vaikka se onkin etumerkillinen 2-komplementtiluku. Voit muuttaa sen etumerkilliseksi näin: 65485 - 2**16 = 65485 - 65536 = -51. Eli ilmeisesti -5,1oC. En tunne Node Rediä, mutta @mestariviheltäjä :n esimerkistä löytynee keinot joilla kertoo Node Redille että luvut ovat etumerkillisiä ja sisältävät yhden desimaalin (kymmenen kertaa suurempia kuin oikeasti).

Huomaa, että Modbusissa on useamman tyyppisiä rekistereitä: input-rekistereitä joista voi vain lukea, ja holding-rekistereitä joista voi sekä lukea että kirjoittaa. Kirjoittamalla (Holding) rekistereihin vääriä arvoja saa koneen sekaisin samoin kuin koneen ohjauspaneelistakin asettamalla. Lisäksi jos koneella on Modbusin kautta manipuloitavissa dokumentoimattomia rekistereitä, niiden räpeltäminen voi aiheuttaa mystisiä oireita. Summa summarum: jos ymmärtää mitä Modbus-rekisteristä luettu arvo merkitsee, voi aivan hyvin siihen kirjoittaakin.

Täytyy olla varovainen kirjoittamisen kanssa. Toivottavasti tehdasasetuksille palautus auttaa, jos onnistuu tekemään isompaa mokaa...

Rekisterinumeroista näyttäisi pitävän vähentää yksi numero, jotta rekisterin sisältö vastaa kuvattua eli esim. 5001->5000.

Node Redissä valitaan tuo rekisterityyppi (FC) ja pääsinkin niistä jo kärryille. Ilmeisesti Swegonin dokumentaation rekisterinumeron alku kertoo tyypin eli joko 3x tai 4x eli input ja holding, vai menikö toisin päin.

Kattavasti on Swegonin dokumenteissa rekisterit kuvattu, mutta ihan kaikki yksityiskohdat eivät näemmä sieltä selviä.

Arvo taitaa oll 16bit INT
Liitteenä NodeRed flow josta löytyy ehkä raktaisu.

Kiitos, tutustun illalla. Ja tuossa esimerkissä oikea arvo oli siis -40 eikä -400. En tiedä katsoinko ulkolämpötilan väärin eli oliko -4 vai -5. No, joka tapauksessa asia on varmasti ratkaistavissa.
 
K

korsteeni

Vieras
tällä voi testailla , tuolla lopussa on nuo 4 , eiköhän jollain tule oikeista lokeroista erikseen tai yhdistettynä

from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.client.sync import ModbusTcpClient

def validator(instance):
if not instance.isError():
'''.isError() implemented in pymodbus 1.4.0 and above.'''
decoder = BinaryPayloadDecoder.fromRegisters(
instance.registers,
byteorder=Endian.Big, wordorder=Endian.Little
)
return float('{0:.2f}'.format(decoder.decode_32bit_float()))

else:
# Error handling.
print("There isn't the registers, Try again.")
return None


client = ModbusTcpClient('X.X.X.X', port=502) # Specify the port.
connection = client.connect()

if connection:
request = client.read_holding_registers(12606, 2, unit=1) # Specify the unit.
data = validator(request)
print(data)

request = client.read_holding_registers(12482, 2, unit=1) # Specify the unit.
data = validator(request)
print(data)

client.close()

else:
print('Connection lost, Try again')
[NOTE]:

Do you ensure about desired float32 decode?

float AB CD == byteorder=Endian.Big, wordorder=Endian.Big
float CD AB == byteorder=Endian.Big, wordorder=Endian.Little
float BA DC == byteorder=Endian.Little, wordorder=Endian.Big
float DC BA == byteorder=Endian.Little, wordorder=Endian.Little
 

jmaja

Hyperaktiivi
Pienillä siirtonopeuksilla (9600 bit/s) ja lyhyillä yhteysväleillä päätevastuksilla ei ole merkitystä
9600 menee satoja metrejä ilman päätevastuksia. rs485 pääsee 1200 m 100 k ja lyhyillä 10 M. Jos 9600 riittää, ei vastuksia tarvita heijastusten torjuntaan. Mun laitteita on laivoissa 100-300 m kaapeleilla 9600 ilman vastuksia.

Maa pitäisi aina kytkeä. Ei elektroniikka toimi ilman yhteistä maata. Tietysti tuurilla yleensä biasoituvat riittävän samalle jännitealueelle.
 

kurre orava

´niin pienen hetken rakkaus on lumivalkoinen...´
Rekisterinumeroista näyttäisi pitävän vähentää yksi numero, jotta rekisterin sisältö vastaa kuvattua eli esim. 5001->5000.
Modbusin kanssa joutuu olemaan tarkkana sen suhteen onko annettu/vaadittu tieto osoite vai rekisteri. Rekisterin 00001 osoite on niin kun jo itse päättelitkin 00000

Ainakin HA:n kautta kun modbus:ia sorkkii niin annetaan juurikin address/osoite. Node Redista ei itselläni ole kokemusta muutamaa pintaraapaisua syvemmältä.
 
K

korsteeni

Vieras
ehkä tällä helpompi testata, ihan tuotannosta repäisty koodi, risuaitaa siirtämällä ja hieman osoitteita laitekoht.


#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder
# new improved version that should run in background and poll / post on timer loop rather than one-off via cron

import time
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
import sys


def validator(instance):
if not instance.isError():
'''.isError() implemented in pymodbus 1.4.0 and above.'''
decoder = BinaryPayloadDecoder.fromRegisters(
instance.registers,
byteorder=Endian.Big, wordorder=Endian.Big
# byteorder=Endian.Big, wordorder=Endian.Little
# byteorder=Endian.Little, wordorder=Endian.Big
# byteorder=Endian.Little, wordorder=Endian.Little
)
return float(decoder.decode_32bit_float())

else:
# Error handling.
print("There aren't the registers, Try again.")
return None
# Read data from client
client = ModbusClient(method='rtu', port='/dev/ttyUSB0', baudrate=9600, stopbits=1, parity='N', bytesize=8, timeout=5)
connection = client.connect()

if connection:
request = client.read_input_registers(0, 2, unit=1) # Specify the unit.
data = validator(request)
print('{0:.1f}'.format(data))

request = client.read_input_registers(54, 2, unit=1) # Specify the unit.
data = validator(request)
print(data)

request = client.read_input_registers(42, 2, unit=1)
data = validator(request)
print(data)

request = client.read_input_registers(0x0006, 2, unit=1)
data = validator(request)
print ("current", data)

request = client.read_input_registers(0x0002, 2, unit=1)
data = validator(request)
print ("", data)


client.close()

else:
print('Connection lost, Try again')
 

Sukke

Aktiivinen jäsen
Swegonin opuksista löytyy Smart Control niminen modbus-rekisteri, jolla saa ohjattua ohjattua ilmanvaihdon tehokkuutta suhteessa Kotona-tilaan välillä -100 %...100 % (Smart control increase or decrease Ventilation level base on Home level, When value is 0 the Smart function is disabled).

Sain kirjoitettua kyseiseen rekisteriin sekä lisäystä että vähennystä, mutta jostain syystä asetettu arvo ei ole kuitenkaan luettavissa samaisesta rekisteristä modbusilla? Tai on se luettavissa, mutta arvo ei muutu asetuksen mukaisesti (pysyy nollana). Käyttöpaneelissa kuitenkin näkyy ko. automatiikan kohdalla asetettu prosentuaalinen muutos. Paneeliin tulee myös näkyviin Smart control -kuvake (A+).

Miten on mahdollista, että laite ohjautuu ja paneeli näyttää asetetun arvon, mutta modbusin kautta en voi sitä lukea?

Ongelma on kyllä kierrettävissä lukemalla tulo- ja poistoilman prosentit tai puhaltimien kierrosnopeudet eli muutos näkyy myös näissä tiedoissa. Tuo Smart control -rekisteri on kaiketi oikeasti käytettävissä vain, jos laitteeseen on asennettu CO2-anturi eli voi liittyä ko. anturin puuttumiseen.
 

Sukke

Aktiivinen jäsen
Swegonin opuksista löytyy Smart Control niminen modbus-rekisteri, jolla saa ohjattua ohjattua ilmanvaihdon tehokkuutta suhteessa Kotona-tilaan välillä -100 %...100 % (Smart control increase or decrease Ventilation level base on Home level, When value is 0 the Smart function is disabled).

Sain kirjoitettua kyseiseen rekisteriin sekä lisäystä että vähennystä, mutta jostain syystä asetettu arvo ei ole kuitenkaan luettavissa samaisesta rekisteristä modbusilla? Tai on se luettavissa, mutta arvo ei muutu asetuksen mukaisesti (pysyy nollana). Käyttöpaneelissa kuitenkin näkyy ko. automatiikan kohdalla asetettu prosentuaalinen muutos. Paneeliin tulee myös näkyviin Smart control -kuvake (A+).

Miten on mahdollista, että laite ohjautuu ja paneeli näyttää asetetun arvon, mutta modbusin kautta en voi sitä lukea?

Ongelma on kyllä kierrettävissä lukemalla tulo- ja poistoilman prosentit tai puhaltimien kierrosnopeudet eli muutos näkyy myös näissä tiedoissa. Tuo Smart control -rekisteri on kaiketi oikeasti käytettävissä vain, jos laitteeseen on asennettu CO2-anturi eli voi liittyä ko. anturin puuttumiseen.

Tähän modbus-erikoisuuteen ei ilmeisesti löydy oikein vastausta?

Laitoin tuon oman CO2-ohjauksen pyörimään, eikä asetettu tehostuksen arvo ole edelleenkään luettavissa modbusilla. Onneksi se on kuitenkin laskettavissa.

Jälkikäteen ajateltuna yllättävän kivuttomasti lähti modbus Swegonin (R5) kanssa toimimaan ja uskalsin tuon oman automaattisen ohjauksenkin jo tehdä. Laitteen ilmankosteusautomatiikka näyttäisi toimivan tuosta itsenäisenä eli säätöprosentit lasketaan yhteen. Laitoin tosin niin, että kun ilmankosteusautomatiikka menee päälle, ei tuota omaa CO2-ohjausta sen aikana käytetä. Ei tyylikäs ratkaisu, mutta eipähän mene kosteusautomatiikka tehottomaksi.

Kiitos ketjussa saadusta avusta.
 
Swegonin opuksista löytyy Smart Control niminen modbus-rekisteri, jolla saa ohjattua ohjattua ilmanvaihdon tehokkuutta suhteessa Kotona-tilaan välillä -100 %...100 % (Smart control increase or decrease Ventilation level base on Home level, When value is 0 the Smart function is disabled).

Sain kirjoitettua kyseiseen rekisteriin sekä lisäystä että vähennystä, mutta jostain syystä asetettu arvo ei ole kuitenkaan luettavissa samaisesta rekisteristä modbusilla? Tai on se luettavissa, mutta arvo ei muutu asetuksen mukaisesti (pysyy nollana). Käyttöpaneelissa kuitenkin näkyy ko. automatiikan kohdalla asetettu prosentuaalinen muutos. Paneeliin tulee myös näkyviin Smart control -kuvake (A+).

Miten on mahdollista, että laite ohjautuu ja paneeli näyttää asetetun arvon, mutta modbusin kautta en voi sitä lukea?

Ongelma on kyllä kierrettävissä lukemalla tulo- ja poistoilman prosentit tai puhaltimien kierrosnopeudet eli muutos näkyy myös näissä tiedoissa. Tuo Smart control -rekisteri on kaiketi oikeasti käytettävissä vain, jos laitteeseen on asennettu CO2-anturi eli voi liittyä ko. anturin puuttumiseen.
Mikä tämä rekisteri on? ( 3.0-> 3x6315 R Smart Control -100 100 % )
 

Liitteet

  • 1680501799930.png
    1680501799930.png
    101,2 KB · Katsottu: 108

Sukke

Aktiivinen jäsen
Mikä tämä rekisteri on? ( 3.0-> 3x6315 R Smart Control -100 100 % )

Kiitos hyvästä huomiosta, tuoltahan etsimäni tieto löytyi. Onnistuin kyllä lukemaan tiedon myös rekisteristä 4x5019, kun muutin rekisterin tyypin oikeaksi eli Node Rediin oli jäänyt "read input registers" tyypin "read holding registers" sijaan. Eli uonosti luettu speksi, kun 3x6315 oli mennyt ohi ja puhdas user error tuon 4x5019 kanssa - nyt tiedon saa molemmista.

Samalla huomasin, että rekisterillä Auto Boost Control (4x5009) oli virheellinen tyyppi ja nyt sekin näyttää ihan oikein, että automaattisäätö on käytössä (arvo 1), kun tuo Smart Control rekisterin arvo poikkeaa arvosta 0.
 
Back
Ylös Bottom