Moduł przekaźnikowy...
 
Powiadomienia
Wyczyść wszystko

Pomoc Moduł przekaźnikowy modbus z Alix

19 Wpisów
2 Użytkownicy
0 Likes
469 Wyświetleń
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Witam,

zaraziłem się 16 kanałowym modułem sterowanym przez MODBUS od wschodnich "przyjaciół" ale za nic nie mogę się z nim połączyć przez konwerter. Ingo od sprzedającego jest standardowe - żadne. Odczytywany rejestr powinien być 03 lub w innej wersji 04 zależy od... kto wie. Konwerter działa poprawnie bo już odczytuje na bieżąco z licznika energii. Co do adresu teoretycznie jest ustawiony na 2 (dipswitch A1). Konfiguracja RSa niby zgodna. Do czego można się tu jeszcze doczepć?

1690973436575
1690973436598
 
Dodane : 02/08/2023 12:55 pm
(@mig41)
Wpisów: 615
Ekspert
 

Tak patrzę na te moduły , i z opisu wynika ,że przełącznikiem to się prędkość wybiera , a nie adres modbusa....

No i dodatkowo oprócz komand modbusa obsługuje jeszcze komendy AT , może spóbuj się podłączyć zwykłym putty ustawionym na serial , z odpowiednią prędkością , i wpisz ATI , może jakieś informacje się pojawią.

 
Dodane : 02/08/2023 1:54 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@mig41 

No właśnie z twego co ja znalazłem....

615TeW4BXjL. SL1001
616UQkkFRUL. SL1001

o ile to ta wersja. Np są wersje gdzie rodzaj sterowania (AT lub MODBUS) wybiera się przez zworkę

 
Dodane : 02/08/2023 3:08 pm
(@mig41)
Wpisów: 615
Ekspert
 

No to wg tego drugiego odczyt powinien być wykonany funkcją 06 ( choć oficialna nazwa Write Single Registar mało do tego pasuje).

Pytałeś się Chińczyka o instrukcję , albo chociaż o rejestr adresów ?

Jakim programem to robisz ? Widzisz dokładnie to co jest wysyłane po porcie szeregowym ?

 
Dodane : 02/08/2023 4:01 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@mig41

IMG 20230802 201423
 
Dodane : 02/08/2023 8:15 pm
(@mig41)
Wpisów: 615
Ekspert
 

Ok , ale żeby chociaż coś mieć na sztywno ( np rejestry ) , to można by na siłę wprowadzać/zmieniać adres , komunikację itp. a tak to za dużo zmiennych.

Chociaż żeby przykładową komendę modbus zdobyć , np tą komendą załącza się przekaźnik nr... , albo tą komendą odczytujesz stan ...

 

Ja używam qModMaster , widać co wysyła itp.

 
Dodane : 02/08/2023 8:31 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@mig41 Przy założeniu że to do tego :/

61hbfnNAILL. SL1000
61tfmT ubaL. SL1001
61W6og  6DL. SL1000
 
Dodane : 02/08/2023 10:28 pm
(@mig41)
Wpisów: 615
Ekspert
 

Ok , ale co konkretnie i jakim programem wysyłasz ?

 
Dodane : 03/08/2023 10:32 am
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@mig41 Jak dobrze pamiętam pisownie to ModbusView TCP,  próbowałem na id od 2 do 4 i nic

 
Dodane : 03/08/2023 2:38 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

OK zdobyłem jakiś chiński konwerter USB/RS485

1691141306248

Skanowanie zwraca błąd, a putty zwraca puste okno terminala

Opis

Definicje dla każdego pola są wymienione w następujący sposób.

  • Identyfikator urządzenia podrzędnego (numer karty [0 - 31] ustawiany za pomocą przełącznika DIP na karcie przekaźnika)
  • Funkcja (Wartość = 6 : kontrola)
  • Adres ( [ 1 - 16 ] numer przekaźnika)
  • Działanie
    1. otwarty (włącz przełącznik)
    2. zamknąć (wyłączyć przełącznik)
    3. przełącznik (samoblokujący)
    4. zatrzask (blokujący)
    5. chwilowy (bez blokady)
    6. opóźnienie (odpowiednio ustawić okres)
    7. openall (otwórz wszystkie przekaźniki)
    8. zamknij wszystkie przekaźniki (zamknij wszystkie przekaźniki)
  • Opóźnienie (czas trwania w sekundach [ 0 - 255 ])

Załączenie 1PK togg 02 06 00 01 03 00

Załączenie 2PK togg 02 06 00 02 03 00 itd..

wysyłam innym programem

 
Dodane : 04/08/2023 11:38 am
(@mig41)
Wpisów: 615
Ekspert
 

Czyli juz wszystko działa ?

 
Dodane : 04/08/2023 5:31 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@mig41 w połowie tak 🙃

Nie potrafię wysterować z Twojego programu ani przez TCP a na tym jedynie mi zależy.

 
Dodane : 04/08/2023 6:28 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@mig41 Może niepotrzebnie pcham się tą drogą ale dlaczego qModMaster nie mogę się połączyć z płytką?

qModMaster ma też tcp więc może by zagościł u mnie dłużej.

Tylko ni w ząb nie chce się łączyć 

 
Dodane : 05/08/2023 1:00 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Podłączyłem do konwertera rs485/tcp płytkę.

Adres ustawiony na 2.

QModMaster albo wprowadza mnie w błąd albo nie wiem co robię źle.

1691428905012

Przesunięcie adresu - 1PK to adres 2

wysyłam 0300 wyskakuje błąd i 1 przekaźnik się załącza na chwilę i puszcza co ciekawe w dowolnej chwili przestaje reagować żeby zacząć działać kiedy mu się zachce.

 

I chyba w losowych sytuacja zapala się kilka przekaźników na około 1s jakby dostawały od czegoś polecenie....

 
Dodane : 07/08/2023 7:32 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Poddaję się. Zamówiłem oddzielny konwerter RS485/Ethernet.

Nie mam się już czego doczepić, może obecne urządzenie jakoś zakłóca/blokuje komunikacje z przekaźnikami

Zobaczymy w Piątek.

 
Dodane : 13/08/2023 9:55 am
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Hej 🙂

Oddzielny konwerter przyszedł.

Do rozpracowania dlaczego komunikacja na oddzielnym konwerterze na tych samych nastawach działa (nie było konfliktu ID)

Wyłożyłem się na komunikacji z OH

 Bridge modbus:tcp:Przekazniki "Przekaźniki" [ host="192.168.ZZ.ZZ", port=4196, id=2] {

Bridge poller holding "Przekaźniki strych" [ start=4000, length=16, refresh=1000, type="holding" ] {
        Thing data PK1  "PK1"  [  writeStart="4001", writeValueType="int16", writeType="holding" ]
        Thing data PK2  "PK2"  [  writeStart="4002", writeValueType="int16", writeType="holding" ]
        Thing data PK3  "PK3"  [  writeStart="4003", writeValueType="int16", writeType="holding" ]
        Thing data PK4  "PK4"  [  writeStart="4004", writeValueType="int16", writeType="holding" ]
  }

 }

Czy na pewno dla FC6 ma być holdning i jak uzyskać adres do zapisu?

FC6 to 4001-40016 dla mnie?

błędy:

09:28:38.456 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'Przekazniki.things'
09:28:38.484 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:poller:Przekazniki:holding' changed from OFFLINE (COMMUNICATION_ERROR): Error with read: org.openhab.core.io.transport.modbus.internal.ModbusSlaveIOExceptionImpl: Modbus IO Error with cause=ModbusIOException, EOF=false, message='I/O exception: SocketTimeoutException Read timed out', cause2=null to OFFLINE
09:28:38.486 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:poller:Przekazniki:holding' changed from OFFLINE (COMMUNICATION_ERROR): Error with read: org.openhab.core.io.transport.modbus.internal.ModbusSlaveIOExceptionImpl: Modbus IO Error with cause=ModbusIOException, EOF=false, message='I/O exception: SocketTimeoutException Read timed out', cause2=null to ONLINE
09:28:38.489 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK1' changed from OFFLINE (BRIDGE_OFFLINE): No online bridge to ONLINE
09:28:38.490 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK4' changed from OFFLINE (BRIDGE_OFFLINE): No online bridge to ONLINE
09:28:38.491 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK2' changed from OFFLINE (BRIDGE_OFFLINE): No online bridge to ONLINE
09:28:38.491 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK3' changed from OFFLINE (BRIDGE_OFFLINE): No online bridge to ONLINE
09:28:38.494 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK1' changed from OFFLINE (BRIDGE_OFFLINE): No online bridge to ONLINE
09:28:38.806 [WARN ] [ort.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=2, functionCode=READ_MULTIPLE_REGISTERS, start=4000, length=16, maxTries=3]). Will try again soon. Error was I/O error, so resetting the connection. Error details: net.wimpi.modbus.ModbusIOException I/O exception: SocketTimeoutException Read timed out [operation ID 9fbcd7da-0d95-43de-92db-ca4143bcc065]
09:28:38.808 [WARN ] [ort.modbus.internal.ModbusManagerImpl] - Error getting a new connection for endpoint ModbusIPSlaveEndpoint [address=192.168.ZZ.ZZ, port=4196]. Error was: java.lang.InterruptedException null
09:28:38.808 [WARN ] [ort.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusIPSlaveEndpoint [address=192.168.ZZ.ZZ, port=4196] -- aborting request ModbusReadRequestBlueprint [slaveId=2, functionCode=READ_MULTIPLE_REGISTERS, start=4000, length=16, maxTries=3] [operation ID 9fbcd7da-0d95-43de-92db-ca4143bcc065]
09:28:38.810 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:poller:Przekazniki:holding' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error with read: org.openhab.core.io.transport.modbus.exception.ModbusConnectionException: Error connecting to endpoint ModbusIPSlaveEndpoint [address=192.168.ZZ.ZZ, port=4196]
09:28:38.812 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK2' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE): No online bridge
09:28:38.813 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK4' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE): No online bridge
09:28:38.814 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK1' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE): No online bridge
09:28:38.815 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:Przekazniki:holding:PK3' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE): No online bridge
^C~               

i coś jaby z komunikacja z konwerterem kuleje?

konf
 
Dodane : 18/08/2023 8:52 am
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Most i połączenia działają, nie rozumiem dlaczego adresy muszę pisać od 1 bez"4000x" czy połączenie OH samo to uzupełnia?

 Bridge modbus:tcp:Przekazniki "Przekaźniki Bridge" [ host="192.168.xx.xx", port=4196, id=2] {

    Bridge poller PkStrych "Przekaźniki strych" [ start=1, length=16, refresh=1000, type="holding" ] {
        Thing data PK1  "PK1"  [  writeStart="1", writeValueType="int16", writeType="holding" ]
        Thing data PK2  "PK2"  [  writeStart="2", writeValueType="int16", writeType="holding" ]
        Thing data PK3  "PK3"  [  writeStart="3", writeValueType="int16", writeType="holding" ]
        Thing data PK4  "PK4"  [  writeStart="4", writeValueType="int16", writeType="holding" ] 
    }

 }   

items

Number  Pk1S                 "Przekaźnik 1"                  {channel="modbus:data:Przekazniki:PkStrych:PK1:number"}
Number  Pk2S                 "Przekaźnik 2"                  {channel="modbus:data:Przekazniki:PkStrych:PK2:number"}
Number  Pk3S                 "Przekaźnik 3"                  {channel="modbus:data:Przekazniki:PkStrych:PK3:number"}
Number  Pk4S                 "Przekaźnik 4"                  {channel="modbus:data:Przekazniki:PkStrych:PK4:number"}
Number  Pk5S                 "Przekaźnik 5"                  {channel="modbus:data:Przekazniki:PkStrych:PK5:number"}
Number  Pk6S                 "Przekaźnik 6"                  {channel="modbus:data:Przekazniki:PkStrych:PK6:number"}
Number  Pk7S                 "Przekaźnik 7"                  {channel="modbus:data:Przekazniki:PkStrych:PK7:number"}
Number  Pk8S                 "Przekaźnik 8"                  {channel="modbus:data:Przekazniki:PkStrych:PK8:number"}
Number  Pk9S                 "Przekaźnik 9"                  {channel="modbus:data:Przekazniki:PkStrych:PK9:number"}
Number  Pk10S                "Przekaźnik 10"                 {channel="modbus:data:Przekazniki:PkStrych:PK10:number"}
Number  Pk11S                "Przekaźnik 11"                 {channel="modbus:data:Przekazniki:PkStrych:PK11:number"}
Number  Pk12S                "Przekaźnik 12"                 {channel="modbus:data:Przekazniki:PkStrych:PK12:number"}
Number  Pk13S                "Przekaźnik 13"                 {channel="modbus:data:Przekazniki:PkStrych:PK13:number"}
 

Teraz męczę próbę zapisu włącz/wyłącz ale staje kością w gardle 😉

Najlepiej komponent typu switch bez dodatkowych reguł czy zasad...

 
Dodane : 18/08/2023 12:45 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Odświeżam ;D 

może problem w tym ze używam poller... choć może nie ;(

poller Most Rzecz zajmująca się odpytywaniem danych z modbus slave'ów. Jeden odpytujący odpowiada pojedynczemu żądaniu odczytu Modbus (FC01, FC02, FC03 lub FC04). Jest dzieckiem tcplub serial.

 

Wiązanie może również zapisywać dane do urządzeń podrzędnych Modbus przy użyciu FC05 (zapis pojedynczej cewki), FC06 (zapis pojedynczego rejestru), FC15 (zapis wielu cewek) lub FC16 (zapis wielu rejestrów).

 

 
Dodane : 21/08/2023 10:35 am
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

bez efektu... choć niby coś poszło

15:13:59.621 [DEBUG] [ternal.handler.ModbusDataThingHandler] - Successful write, matching request ModbusWriteRegisterRequestBlueprint [slaveId=2, reference=2, registers=ModbusRegisterArray(0001), maxTries=3, getFunctionCode()=WRITE_SINGLE_REGISTER]

15:13:59.929 [DEBUG] [dbus.handler.ModbusPollerThingHandler] - Thing modbus:poller:Przekazniki:PkStrych received response PollResult(result=AsyncModbusReadResult(request = ModbusReadRequestBlueprint [slaveId=2, functionCode=READ_MULTIPLE_REGISTERS, start=3, length=12, maxTries=3], registers = ModbusRegisterArray(000000000000000000000000000000000000000000000000)))

 

odczyt wskazuje że jeden przekaźnik określają 4 bity- 4pk załączone i 5 off

[DEBUG] [ternal.handler.ModbusDataThingHandler] - Thing modbus:data:Przekazniki:PkStrych:Pk1 channels updated: null. readValueType=int16, readIndex=Optional[3], readSubIndex(or 0)=0, extractIndex=1 -> numeric value 1 and boolValue=true. Registers ModbusRegisterArray(00010001000100000000) for request ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=2, length=5, maxTries=3]
 
Dodane : 21/08/2023 3:10 pm
Udostępnij: