Czerwiec 2018 - Paweł Szabaciuk

Paweł Szabaciuk

Software Developer

Month: Czerwiec 2018

SystemAIR Modbus RTU

W pracy trafił się temat gadania po protokole Modbus. Przy użyciu standardowego Modbusa RTU. W dość znacznej prędkości 9600 🙂 A co najlepsze, to wyjście z urządzenia jest RS232, do tego przejście na RS485 i w takiej postaci mam się podłączyć 🙂

Poczytałem, poszukałem i co nieco się dowiedziałem od strony praktycznej.

Na początek mamy zdefiniowanych kilka bytów, określających rodzaje danych.
Rodzaje rejestrów zdefiniowanych przez protokół Modbus:

  • Coil – jest to 1 bitowy rejestr, wykorzystywany do kontroli wyjścia. Może być do odczytu i/lub do zapisu
  • Discrete Input – jest to 1 bitowy rejestr, używany jako wejście. Może być tylko do odczytu
  • Input Register – 16 bitowy rejestry, używany jako wejście. Może być tylko do odczytu
  • Holding registers – najbardziej uniwersalne 16 bitowe rejestry. Mogą być do odczytu i do zapisu. Może być używany np. do wejść, wyjść, danych konfiguracyjnych lub dowolnych danych wymagających przechowania

Jak widać, wielkiej filozofii nie ma, o ile mamy dokumentację techniczną producenta co gdzie pod jakim adresem siedzi.

Ponieważ nie mogę nic mówić o projekcie z pracy, postanowiłem podłączyć się do centrali wentylacyjnej, która to gada sobie po RS485 i Modbus z dowolnym urządzeniem master.
Ogólno dostępna dokumentacja do central wentylacyjnych firmy SystemAir.

Mamy tutaj rozpisane dokładnie jakie są rejestry, pod jakimi adresami, czy można je zapisywać czy odczytywać i jakiego są rodzaju.
Drugą istotną informacją jest adres i prędkość transmisji. Każde urządzenie slave w Modbus musi mieć swój unikalny adres. I tak na przykładzie centrali, mamy domyślnie adres 1. Pod taki adres się dobijamy, żeby np. odczytać informację o prędkości wentylacji, która to jest dostępna pod adresem 101 (czyli 101 – 1, zgodnie z dokumentacją).

W dokumentacji widzimy też, że rejestr ten może być zapisany nową wartością, i tak możemy odczytać i zmienić szybkość działania wentylatorów w centrali.

Na tej podstawie powstał prosty sterownik, oparty na starej płytce, pół-uniwersalnej na ESP8266.

Płytka jest identyczna z postem: Sterowanie pompą obiegową od cyrkulacji. Wlutowany został tylko transceiver MAX3485 do komunikacji po RS485 z centralą.

W wyniku pół dnia siedzenia nad kodem, mamy prostą aplikację do monitorowania danych i konfiguracji centrali przez stronę www.

W planach połączenie centrali z czujnikami środowiskowymi i sterowanie bardziej automatyczne siłą wentylacji z automatu.

Honda Hornet zmiana przedniej zębatki.

Dzisiaj nadszedł czas zmiany zębatki przedniej w Hondzie Hornet PC36 2004 rok.
Moto po jednym sezonie wymagało napięcia łańcucha. Dokładnie o 0.5 podziałki na wachaczu. Ponieważ pierwsza zużywa się przednia zębatka i to zużycie odpowiada głównie za niszczenie zestawu napędowego, najprościej po prostu ją zmieniać jak się zużyje.
Zmiana ta jest banalanie prosta.
Zaczynamy od ściągnięcia osłony zębatki. Następnie luzujemy śrubę na zębatce. Powinno pójść prosto, w końcu moment dokręcenia to tylko 54 N-m. Najprościej to zapiąć bieg, postawić kogoś na hamulcu tylnim ( albo samemu jak mamy za długie ręce ) i odkręcamy śrubę.
Po tej opracji, stawiamy tył na stojaku, luzujemy naciąg łańcucha, luzujemy nakrętkę tylnej osi. Wyciągamy łańcuch przez przednią zębatkę i ściągamy ją wałka.

Tak wygląda stara zębatka:

Tak wygląda nowa:

Stara i nowa:

I z bliska:

Wszystko widać, tłumaczenia są zbędne.
Zakładamy zębatkę na wałek, czyścimy podkładkę i śrubę, wkręcamy śrubę w wałek.
Następnie wstępnie napinamy łańcuch i dokręcamy śrubę. Dla mojego moto właściwy moment to 54 N-m. Robimy to odwrotnie do odkręcania, więc najprościej przy użyciu tylnego hamulca.
Na koniec regulujemy napięcie łańcucha – dla mojego moto właściwy luz to 30-40mm, więc ustawiam go w połowie. Póki moto jest na stojaku, smarujemy łańcuch. Na koniec zestawiamy ze stojaka i dokręcamy tylną oś. U mnie – 88 N-m.

© 2018 Paweł Szabaciuk

Theme by Anders NorenUp ↑