Witajcie .
Nie będę ściemniał OpenHab to dla mnie nowość. I na razie jestem żółtodziobem. Przykłady choć rozumiem składnie są mocno chaotyczne dla osoby która na co dzień nie programuje. I potrzebuje przykładu komunikacji po modbus TCP/IP (muszę się połączyć z PLC) na razie chcę sterować/odczytywać tylko coil -jak powinna wyglądać prawidłowa konfiguracja ?
OpenHab zainstalowany na malinie OpenHab programowany z Visual Studio , instalacja i konfigóracja według tego tutoriala https://www.youtube.com/watch?v=F-kXg7hQC9E
Witam,
Też jakiś czas temy przerabiałem ten temat. Umnie wygląda to tak:
w ITEMS:
Bridge modbus:tcp:localhostTCP [ host="192.168.1.50", port=502, id=11 ] {
Bridge poller coils [ start=0, length=1, refresh=300, type="coil" ] {
Thing data zmienna [ readStart="0", readValueType="bit" ]
}}
Pierwsza linijka to ustawienia "mostu"
host - to adres ip PLC,
port - numer porty jaki masz ustawiony w PLC do modbus,
id- numer urządzenia w sieci modbus (jak dobrze pamiętam nie musi być podany).
Druga linijka to ustawienia "reguły" pobierającej dane z urządzenia modbus
start - to adres w pamięci, od którego chcemy zacząć odczyt. To jak zmienne czy wyjścia/wejścia są zaadresowane w paięci sterownika zależy jakiego używasz PLC znajdziesz to w manualu. Adresy są inne np. dla funkcji coils niż holding (nie będę się zagłebiał z czego to wynika),
lenght- to liczba adresów jaką chcemy odczytać ( nie musisz tworzyć kilku reguł by odczytać np. 8 cewek podajesz 8 w lenght przez co bedzie pobrane 8 kolejnych adresów),
refresh- co ile dane są pobierane w ms.
type- to rodzaj funkcji użytej do odczytu danych
Trzecia linijka definiowanie rzeczy, do których będziemy wstawiać dane odczytane
zmienna - to nazwa rzeczy, do której wstawimy odczyt danej cewki
readStart- to adres danej cewki
readValueType- to rodzaj danych jake pobraliśmy,
Pamiętaj że wyjścia i wejścia fizyczne możemy jedynie odczytywać nie możemy zmieniać ich stanu przez modbus (przynajmniej w moim wago tak jest).
w THINGS :
Contact zmienna "opis zmiennej" {channel="modbus:data:localhostTCP:coils:zmienna:contact"}
To było by chyba tyle. Pasowało by dodać odpowiedni wpis w SITEMAS.