Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Modbus Poll Read Holding Registers (03) brak funkcji

Domelski 05 Mar 2018 14:15 1491 10
  • #1
    Domelski
    Level 17  
    Witam.
    Albo jestem ślepy, albo... no właśnie.

    W Modbus Poll (wersja demo) nie mogę znaleźć funkcji 03 czyli Read Holding Registers. Czy może ktoś używał tego programu?
    Na stronie próżno szukać informacji czy wersja demo jest okrojona tylko czasowo (30 dni) czy też funkcjonalnie.

    Ewentualnie może macie coś innego godnego polecenia do odczytu Modbus'a na PC?
  • #4
    Domelski
    Level 17  
    Doszedłem już jak znaleźć funkcję, ale i tak nie mam odczytów z urządzeń z adresów 1000-7000 (w moim przypadku to pomiary z różnych czujników oraz zakresy pomiarowe (adresy 5000 czyli powinna być wartość stała).
    Z adresów 8000 (w moim przypadku to przekaźniki) mam odczyt czy przekaźnik jest załączony czy nie.

    Mam za to komunikat "checksum error".
    I pomysły mi się skończyły :P

    Dzięki "szczupx" właśnie też to znalazłem. Tylko jak ustawiam tam adresy czyli np. 1000 dla adesów 1001-1096 bo tyle u mnie różnych czujników i liczbę urządzeń na 96 to mam tabelkę.
    Aliasy moge wyłączyć, ale w polach mam 0 i żadnych zmian.
  • #5
    szczupx
    Level 19  
    Co to za urządzenie ze tyle danych? PLC?
    Checksum error to jak sama nazwa wskazuje - błąd ramki. Z reguły problem z okablowaniem (np brak/niewłaściwa terminacja).
    Próbowałes modpollem?
  • #6
    Domelski
    Level 17  
    Centrala cyfrowa. Może obsługiwać 96 urządzeń cyfrowych i 32 analogowych także nie dużo.
    Ale ja mam ją na warsztacie testowo i podłączone 2-3 urządzenia (także okablowanie itp. odpada). Nie ma znaczenia czy jej zaznaczę 3 czy pełne 96 i tak nic nie widzi.
    Dla adresów:
    1000-1096 dane bieżące urządzenia cyfrowe
    2000-2032 dane bieżące urządzenia analogowe
    3000-3096 dane średnie urządzenia cyfrowe
    4000-4032 dane średnie urządzenia analogowe
    5000-5096 zakres pomiarowy urządzenia cyfrowe
    6000-6032 zakres pomiarowy urządzenia analogowe
    7000-7096 stan przekaźników w urządzeniach cyfrowych
    8000-8032 stan przekaźników centrali i modułów rozszerzeń

    Centrala ma jedynie odczyt jako slave na parametrach (nic nie można zmienić):
    19200
    1 bit startu
    8 bitów danych
    1 bit stopu
    parzyte

    Skoro czyta adresy 8000-8032 to wnioskuję, że komunikację z kompem mam, a na pozostałych klapa.
    Nie wiem gdzie popełniam błąd. Podejrzewam, że gdzieś w konfiguracji programu.

    Z inną centralą od innych urządzeń gdzie też mam wyjście RS485 też mam problemy z połączeniem. Jakies dane są, ale tylko niektóre.
    Z kolei jak na niej podłączę oprogramowanie producenta to działa więc raczej nie podejrzewam.

    Przejście mam MOXA TCC100 na RS232 i z tego portu korzystam jako COM1 na starszym kompie serwisowym z XP Pro.

    Dlatego pytam może ktoś bardziej doświadczony w Modbus Poll nakieruje co jeszcze mogę sprawdzić.
    Ten komunikat ramki mnie martwi. Bo wszelkie zmiany okablowania, prędkości itp. wyrzucają błąd Time coś tam także widać, że jest problem z połączeniem. A tu na głównym ekranie Modpoll1 nie pokazuje błędu, w ramce 0 pokazuje wartość 1, w ramce 2 pokazuje przekaźniki 1, 3, 15 itd. zależnie które są włączone (więc cos działa) i na pozostałych 0 i nic się nie zmienia (w sensie jak na sensorach zmieniają się wartości).
    Oczywiście sama centrala z czujnikami działa poprawnie i wszystkie parametry widzi itd.
  • #7
    szczupx
    Level 19  
    Być może odpytujesz zbyt duże zakresy danych. Czasami długie są problematyczne jeśli jest jakiś problem na linii transmisyjnej.
    odpal modpolla i wklej co wyrzucił
    modpoll -m rtu -a 1 -r 1000 -c 10 -t 4:hex -0 -b 19200 -p even -1 COM1

    Jak rzuci błędem Illegal adress response usuń "-0" z linii poleceń
  • #8
    Domelski
    Level 17  
    Znalazłem o 1 w nocy. Ale jestem tępy. :)
    Adresy muszą być wpisywane 1001-1096, a nie 1000-1096. Pozostałe też XXX1-
    Jak jest wpisane od XXX0 to program wyrzuca błąd ramki i już nic nie widzi. Chociaż ciekawe, że adresy 8000- czyli przekaźniki widzi. To mnie zmyliło.
    Dzięki za pomoc.
  • #9
    szczupx
    Level 19  
    Różnica tkwi w sposobie liczenia rejestrów - czy urządzenie numeruje od 0 czy od 1. Za to właśnie odpowiada przełącznik "-0" w modpollu o którym pisałem.
  • #10
    Domelski
    Level 17  
    Spróbuję też tego Modpolla.
    Jeszcze raz dzięki.