Rekuperator jan-gaz...
 
Powiadomienia
Wyczyść wszystko

Pomoc Rekuperator jan-gaz po modbus ASCII

7 Wpisów
2 Użytkownicy
1 Reactions
2,308 Wyświetleń
(@raphpl)
Wpisów: 16
Praktykant
Autor tematu
 

Zabrałem się za integrację rekuperatora firmy jan-gaz z openhab.

Openhab jest na Raspberry Pi 3B+ , do testów użyłem konta openhabian.

Fizycznie używam najtańszego konwertera rs486 na USB

Rekuperator posiada interfejs modbus ascii i używając oprogramowania modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator  jestem w stanie odczytywać i zapisywać rejestry.

Komenty z shella działają :

openhabian@openhabian:~/modpoll/arm-linux-gnueabihf $ ./modpoll -b 9600 -p none -s 1 -m ascii -r 64903 -c 1 -1 /dev/ttyUSB1
modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2021 proconX Pty Ltd
Visit  https://www.modbusdriver.com  for Modbus libraries and tools.

Protocol configuration: Modbus ASCII, FC3
Slave configuration...: address = 1, start reference = 64903, count = 1
Communication.........: /dev/ttyUSB1, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, output (holding) register table

-- Polling slave...
[64903]: 86

 

Ale już konfiguracja w Openhab generuje błędy typu:

2022-01-01 20:59:56.772 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection SerialConnection@e50ebb[portName=/dev/ttyUSB1,port=<null>] for endpoint ModbusSerialSlaveEndpoint@1589d43[portName=/dev/ttyUSB1]: Could not get port identifier, maybe insufficient permissions. null
2022-01-01 20:59:56.774 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusSerialSlaveEndpoint@1589d43[portName=/dev/ttyUSB1] -- aborting request ModbusReadRequestBlueprint@6e7239[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=64903,length=1,maxTries=3] [operation ID 0d9e841e-f658-495b-8143-f73fa2b9c66c]

 

Macie jakieś pomysły?

User systemowy jest już w grupie 5(tty),20(dialout)

 

 

 
Dodane : 01/01/2022 9:25 pm
 jarn
(@jarn)
Wpisów: 43
Praktykant
 

Jan-gaz a właściwie sterownik UCS ERC22 mam podpięte w OH3. Sprawdź uprawnienia użytkownika do portu ttyUSB dla użytkownika openhab, a po drugie to w /etc/default/openhab sprawdź czy jest port EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/usb2:/dev/ttyUSB3:/dev/USB1"

 
Dodane : 10/01/2022 4:01 pm
(@raphpl)
Wpisów: 16
Praktykant
Autor tematu
 

@jarn, Dzięki 2 podejście i faktycznie nie miałem tych parametrów ustawionych.

Mam kolejne pytania:

1. Jak włączać i wyłączać rekuperator. Odpowiedzialny za to jest rejestr 64641  jest typu init16 holding register. Odczyt 5-włączony  0- wyłączony, ale zapis jest już kodem 85 i 170. Jak zdefiniować thing/item, żeby to obsłużyć ON-OFF?  Zrobić konwersję Read/Write Transform czy użyć innego sposobu ?

2. W sterowniku w Jan-gaz jest duża rozpiętość rejestrów, np odczyty temperatur są pod rejestrami 64896 a prędkości wentylatorów pod rejestrami 65219. W Modbus poll mogę jednocześnie odczytywać 8  rejestórw init16. Jak zdefiniować Modbus poll żeby dobrać się do tak skrajnych rejestrów ?

 

Załączam dokumentacją jaką dostałem do sterownika.

 

Pozdrawiam.

 

 

 
Dodane : 06/03/2022 10:05 am
 jarn
(@jarn)
Wpisów: 43
Praktykant
 
Dodane przez: @raphpl

@jarn, Dzięki 2 podejście i faktycznie nie miałem tych parametrów ustawionych.

Mam kolejne pytania:

1. Jak włączać i wyłączać rekuperator. Odpowiedzialny za to jest rejestr 64641  jest typu init16 holding register. Odczyt 5-włączony  0- wyłączony, ale zapis jest już kodem 85 i 170. Jak zdefiniować thing/item, żeby to obsłużyć ON-OFF?  Zrobić konwersję Read/Write Transform czy użyć innego sposobu ?

2. W sterowniku w Jan-gaz jest duża rozpiętość rejestrów, np odczyty temperatur są pod rejestrami 64896 a prędkości wentylatorów pod rejestrami 65219. W Modbus poll mogę jednocześnie odczytywać 8  rejestórw init16. Jak zdefiniować Modbus poll żeby dobrać się do tak skrajnych rejestrów ?

 

Załączam dokumentacją jaką dostałem do sterownika.

 

Pozdrawiam.

 

 

AD 2. Trzeba stworzyć następny modbus pool. 

Odnośnie sterowania mam tylko zrobione sterowanie prędkością wentylatorów. Pool holding register 65223 lenght 1. Analogiczne modbus data rejestr 65223 uint16.

Fajnie że znalazłeś rejestry po polsku.

 

 
Dodane : 06/03/2022 10:47 am
 jarn
(@jarn)
Wpisów: 43
Praktykant
 

AD 1. Tworzymy modbus pool 

image

Nastepnie tworzymy plik w katalogu transform dla zamiany 0x00AA i 0x0055 na ON/OFF. np:

plik o nazwie reku.map

OFF=85
ON=170
0=układ wyłączony przez operatora
1=układ wyłączony w wyniku pracy w trybie ECO
2=układ wyłączony przez zegar
5=układ włączony

Następnie modbus data :

image
image
image

teraz możemy sopbie podpiąć itemy w kanałach 

image

Dodatkowo można zrobić transformację dla odczytów. 

image
image

Page

image
 
Dodane : 06/03/2022 11:41 am
adrian reacted
(@raphpl)
Wpisów: 16
Praktykant
Autor tematu
 

@jarn 

Hej jeszcze mam pytanie odnośnie modbus pool.

Mam skonfigurowane 2 poole na innych zakresach, ale czasami dochodzi między nimi do konfliktu. Tylko jeden odczyt może być wykonywany w danym czasie.

Błędy jakie występuj to 

2022-05-04 06:43:15.688 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 1/1 error: Connection refused (Connection refused). Connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.2.62, m_Port=1502, m_ModbusTransport=net.wimpi.modbus.io.ModbusTCPTransport@43658, m_ConnectTimeoutMillis=10000, rtuEncoded=false]. Endpoint ModbusIPSlaveEndpoint [address=192.168.2.62, port=1502]

 

Raz na jednej pooli jaz na drugiej.

Pytanie jak to można rozwiązać ?

 

 
Dodane : 04/05/2022 5:51 am
 jarn
(@jarn)
Wpisów: 43
Praktykant
 
Dodane przez: @raphpl

@jarn 

Hej jeszcze mam pytanie odnośnie modbus pool.

Mam skonfigurowane 2 poole na innych zakresach, ale czasami dochodzi między nimi do konfliktu. Tylko jeden odczyt może być wykonywany w danym czasie.

Błędy jakie występuj to 

2022-05-04 06:43:15.688 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 1/1 error: Connection refused (Connection refused). Connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.2.62, m_Port=1502, m_ModbusTransport=net.wimpi.modbus.io.ModbusTCPTransport@43658, m_ConnectTimeoutMillis=10000, rtuEncoded=false]. Endpoint ModbusIPSlaveEndpoint [address=192.168.2.62, port=1502]

 

Raz na jednej pooli jaz na drugiej.

Pytanie jak to można rozwiązać ?

 

Niestety nie pomogę. U siebie nie zauważyłem problemów. Jednak ja używam połączenia poprzez port szeregowy. Mam 9x pool, co 10 sekund.

 
Dodane : 05/05/2022 8:16 pm
Udostępnij: