Modbus TCP/IP -komp...
 
Powiadomienia
Wyczyść wszystko

Modbus TCP/IP -kompletny przykład

2 Wpisów
2 Użytkownicy
1 Likes
4,400 Wyświetleń
(@teslanet)
Wpisów: 11
Praktykant
Autor tematu
 

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  

Czy ktoś może poratować jednym przykładem dla zwykłego coil tak aby odnosił się do "switch" oświetlenia w OpenHab. Przykładem jak dla idio... gdzie co wpisać 
Konfigurację ustawiona dla slave mam tak: 
# Connect to modbus slave at 192.168.1.50, port 502
tcp.slave1.connection=192.168.1.50:502
# use slave id 11 in requests
tcp.slave1.id=11
# read 32 coils (digital outputs) starting from address 0
tcp.slave1.start=0
tcp.slave1.length=32
tcp.slave1.type=coil
 
(wystarczy przykład dla jednej ceweczki;)
 
Z Góry Wielkie Dzięki,
wiem że mój problem jest banalny dla kogoś kto ma opanowanego OpenHaba ale proszę o wyrozumiałość bo zainstalowałem go dopiero tydzień temu .
pozdrawiam
 
Dodane : 28/11/2018 10:49 pm
(@marian196)
Wpisów: 1
Świeżak
 

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.

 

 
Dodane : 02/12/2018 8:53 pm
adrian reacted
Udostępnij: