'Inteligenty' dom ze sterownikiem PLC

Główna => Sterowanie i Wizualizacje => Wątek zaczęty przez: Damian w Wrzesień 19, 2018, 09:38:56 pm

Tytuł: Problem z ModBus TCP
Wiadomość wysłana przez: Damian w Wrzesień 19, 2018, 09:38:56 pm
Na początku chciałbym przywitać wszystkich domorosłych i zawodowych automatyków :)

Zainspirowany stroną autora edom-plc postanowiłem przy okazji budowy domu uwzględnić automatykę budynkową. Moja instalacja na chwilę obecną opiera się o wago 750-880, 5x DI 750-1405, 9x DO 750-1504 + masa pierdół oparta o raspberry pi.

Chciałem już rozpocząć pisanie aplikacji do wizualizacji i sterowania domem i napotkałem problem z którym nie mogę sobie poradzić. Aplikację piszę w RubyOnRails pod kątem obsługi na desktopie/tablecie/komórce. Do komunikacji z PLC chciałem wykorzystać ModBus TCP lub http (READPI/WRITEPI). O ile odczytanie stanu poszczególnych portów na modułach DI/DO nie było problem to zmiana stanu na jakimkolwiek module DO już tak...
Nie mogę zmienić stanu na żadnym porcie DO ani przez ModBus TCP ani przez WRITEPI. W przypadku zmiany stanu przez modbusa kompletnie nic się nie dzieje. W przypadku WRITEPI dostaję odpowiedź "Address is not allowed or fieldbus is not active" (komenda http://ADRES_IP/WRITEPI?ADR1=QX0.4&VALUE1=0&FORMAT1=%d)
READPI (http://ADRES_IP/READPI?ADR=QX0.4&FORMAT=%d) dla tego adresu działa i zwraca poprawną wartość "1".

Mało tego... po zalogowaniu się CodeSys'em na PLC, mogę zmieniać stan adresów przez "Konfigurację sterownika" i tam zmiana stanów działa...

Sam kod programu PLC jest właściwie pusty, mam tam tylko testowe kawałki kodu do zabawy.

Napisałem już w tej sprawie do serwisu WAGO z prośbą o pomoc ale jeszcze się nie odezwali...
Może ktoś z Was spotkał się z takim problemem ? Skończyły mi się już pomysły :( 2-e doby męczę ten temat i już padam na p****.
Tytuł: Odp: Problem z ModBus TCP
Wiadomość wysłana przez: admin w Wrzesień 19, 2018, 10:09:39 pm
Cześć,

Tak na szybko przed snem z komórki: spróbuj pisać do zmiennych typu Bool podłączonych do wyjść, a nie do wyjść (qx) bezpośrednio.

Out1 := test;

Gdzie var
test AT MB0 : BOOL;

I potem writepi... Adr1 = MB0..
 
Tytuł: Odp: Problem z ModBus TCP
Wiadomość wysłana przez: Damian w Wrzesień 19, 2018, 10:19:08 pm
Jutro sprawdzę bo przez wgranie nowego programu do PLC wyłączyłem prąd na budowie i utraciłem połączenie :)
Kolejna rzecz do poprawki :>

PS. dziękuję za szybką odpowiedź. Dam znać...
Tytuł: Odp: Problem z ModBus TCP
Wiadomość wysłana przez: Damian w Wrzesień 20, 2018, 08:41:05 am
Dziękuję, działa !

Teraz najlepsze... można zacząć programować :>