logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485

(Sponsorowany) p.kaczmarek2 02 Lip 2026 08:47 114 2

TL;DR

  • Pokazano integrację wzmacniacza tensometrycznego WDT11 z czujnikiem EMS60-1kN i płytką ESP32-S3-Touch-LCD-4.3, z odczytem analogowym oraz cyfrowym Modbus RS485.
  • Konfiguracja odbywa się przez USB w aplikacji WDT11-PC, która pozwala ustawić zakres, filtrację, kalibrację, tarowanie, zapis ustawień i podgląd wartości pomiarowych.
  • Wersja WDT11-I udostępnia wyjście 4-20 mA, z wyjątkami 3 mA dla błędu i 24 mA dla przekroczenia zakresu oraz rozdzielczością ±0.008 mA.
  • Odczyt prądu zrealizowano przez rezystor bocznikowy 220 Ω i ADC ESP32, a ModbusMaster pobiera paczkę rejestrów RS485 z danymi min/max, surowymi odczytami i diagnostyką.
  • Testy potwierdziły zgodność wskazań w kilogramach i miliamperach, ale autor podkreśla, że dokładność pomiaru analogowego ograniczają tolerancja bocznika i przetwornik ADC.
Wygenerowane przez model językowy.
  • Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Zapraszamy na prezentację oraz pełen samouczek integracji wzmacniacza tensometrycznego WDT11 firmy WObit z innym urządzeniem z mikrokontrolerem. Pokażemy krok po kroku, jak skonfigurować moduł przez USB, odczytać sygnał prądowy 4-20 mA za pomocą przetwornika ADC, a na końcu - jak wykorzystać interfejs RS485 i protokół Modbus RTU do w pełni cyfrowej komunikacji. Całość zaprezentujemy na płytce ESP32-S3-Touch-LCD-4.3 z wyświetlaczem dotykowym i biblioteką graficzną LVGL, wraz z czujnikiem siły EMS60-1kN.

    Do programowania ESP32 użyte zostanie środowisko PlatformIO z bibliotekami Arduino.

    Kilka słów o WDT11
    WDT11 jest uniwersalnym wzmacniaczem dla tensometrycznych czujników siły. Dzięki cyfrowemu przetwornikowi układ pozwala precyzyjnie mierzyć siłę i konwertować ją na sygnał cyfrowy (RS485) oraz analogowy (prądowy 4-20mA w wersji WDT11-I lub napięciowy 0-10V w wersji WDT11-U). Montowany jest na szynie DIN.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Wbudowany interfejs RS485 z protokołem MODBUS pozwala na bezpośrednią komunikację jednego lub kilku modułów ze sterownikiem PLC czy panelem HMI. Możliwe jest podłączenie do 32 modułów na jednej magistrali.
    Konfiguracja modułu odbywa się przez złącze USB i dedykowane oprogramowanie, które oprócz ustawień urządzenia umożliwia także podgląd aktualnych wartości pomiarowych.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Najprościej jest ustawić wartość 4mA wyjścia dla 0 kg, a wartość 20mA dla planowanego zakresu wagi, ale chciałem tu pokazać też bardziej złożone obliczenia, więc 4mA przyjąłem dla 10kg. W razie potrzeby czytelnik sobie uprości - do wzoru po prostu podstawiać się będzie w odpowiednim miejscu 0, szczegóły w kolejnych akapitach.

    Czujnik użyty do prezentacji - EMS60-1kN
    WDT11 wspiera szeroką gamę czujników, konfiguruje się ich parametry przez USB, ale w tym konkretnym przypadku do prezentacji użyliśmy EMS60. EMS60-1kN to tensometryczny czujnik siły przeznaczony do pomiaru sił ściskających w zakresie do 1 kN. Czujnik posiada mostek tensometryczny o czułości nominalnej 1,5 mV/V, dlatego do jego współpracy wymagany jest odpowiedni wzmacniacz pomiarowy – tutaj WDT11.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Konstrukcja czujnika ma formę płaskiej membrany z otworami montażowymi, co ułatwia jego integrację z elementami mechanicznymi urządzeń testowych, pras, stanowisk pomiarowych czy układów automatyki. Korpus wykonany jest ze stali z powierzchnią niklowaną, a stopień ochrony wynosi IP54.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Zakres pomiarowy zastosowanego modelu wynosi 1 kN (około 100 kg siły). Czujnik może być chwilowo przeciążony do 150% wartości znamionowej, natomiast przeciążenie graniczne wynosi 200%. Typowa nieliniowość i histereza wynoszą około 0,2% zakresu pomiarowego, co pozwala na uzyskanie stabilnych i powtarzalnych wyników pomiaru.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Sygnał wyjściowy z czujnika jest bardzo mały (rzędu miliwoltów), dlatego bezpośrednie podłączenie do sterownika PLC czy przetwornika ADC jest zwykle niemożliwe. Właśnie w tym miejscu wykorzystywany jest wzmacniacz WDT11, który wzmacnia sygnał z mostka tensometrycznego oraz udostępnia go w postaci sygnału analogowego lub cyfrowego.

    Program do konfiguracji na PC przez USB
    Urządzenie współpracuje z dedykowaną aplikacją na komputer WDT11-PC. Podłącza się je za pomocą przewodu USB, a całość działa bez potrzeby instalacji dodatkowych sterowników. Wzmacniacz nie jest zasilany z USB, do nawiązania połączenia potrzebne jest zewnętrzne zasilanie, tak samo jak do pracy. Dopiero wtedy komputer poprawnie rozpoznaje nowe urządzenie:
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Po uruchomieniu programu widzimy stan połączenia z czujnikiem oraz bieżące odczyty i wartość wyjścia prądowego/napięciowego (w zależności od wersji).
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    W razie problemów z komunikacją, pole "Status połączenia" powiadomi nas o błędzie:
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Zakładka "Odczyty" pokazuje bieżący odczyt czujnika w postaci raw (nieprzetworzonej), mV, oraz zamieniony na kilogramy. Dodatkowo mamy tam wizualizację odczytu i wyjścia opartą o animowany pasek.
    W oknie programu znajduje się przycisk "tara", który służy do wyzerowania wskazania czujnika w aktualnym stanie obciążenia. Po jego naciśnięciu bieżąca wartość zostaje przyjęta jako punkt odniesienia (0 kg), dzięki czemu dalsze pomiary pokazują już tylko zmianę względem tego poziomu. Funkcja ta jest przydatna np. wtedy, gdy na wadze znajduje się pojemnik lub element konstrukcyjny, którego masy nie chcemy uwzględniać w pomiarze.
    Po prawej stronie mamy dodatkowo zapis największej i najmniejszej wartości zanotowanej w trakcie bieżącej sesji pracy, wraz z możliwością resetowania oraz status wejścia tara (przycisk) i samego czujnika.
    Wygodną opcją jest jeszcze tryb dużego okna - pozwala łatwo testować urządzenie nawet w sytuacji, gdy ekran monitora jest nieco dalej od czujnika. Producent pomyślał o wszystkim.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Zostaje druga zakładka programu - Ustawienia. Znajdują się tam następujące sekcje:
    - wejście czujnika siły - wybór jednostek, filtracji, częstotliwości pomiaru, offset (prosta forma kalibracji) i odwrócenie znaku
    - parametry czujnika (do wpisania z dokumentacji czujnika)
    - osobny przycisk do uruchomienia kreatora kalibracji
    - konfiguracja zakresu wyjścia prądowego lub napięciowego (możemy dostosować wartości graniczne, dzięki czemu nie tracimy precyzji na wartości pomiarów które nie wystąpią w naszym zastosowaniu)
    - konfiguracja miejsc dziesiętnych
    - podgląd statusu przetwornika
    - ustawienia modbus (o tym później)
    Dodatkowo ustawienia można zapisać i odczytać - zarówno do urządzenia, jak i pliku. Ułatwia to szybką konfigurację wielu egzemplarzy.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485

    Procedura kalibracji przez aplikację na PC
    Program WDT11-PC oferuje również procedurę kalibracji. Dostępna jest ona w zakładce Ustawienia. Procedura kalibracji pozwala dobrać parametr "stała mostka" na podstawie wzorcowego obciążenia. Pierwszy krok to zdjęcie obciążenia z czujnika. Po zatwierdzeniu przechodzimy do drugiego kroku, gdzie musimy obciążyć czujnik określonym ciężarem wzorcowym - jego parametry należy wpisać w programie (wartość wzorca oraz jednostkę - kg lub N). Następnie zatwierdzamy a program oblicza stałą czujnika. Dodatkowe okienko poinformuje nas w razie wystąpienia błędów.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    W ten sposób można szybko i łatwo polepszyć precyzję pomiarów z czujników.

    Prezentacja - wyjście prądowe 4-20 mA
    Przetestujmy wyjście prądowe obecne w wersji WDT11-I. Standardowy prąd wyjściowy należy do zakresu 4-20 mA, ale dodatkowo mamy tam zdefiniowane stany wyjątkowe: 3 mA – sygnalizuje błąd czujnika, 24 mA – sygnalizuje przekroczenie zakresu pomiarowego. Rozdzielczość wynosi ±0.008 mA, a dokładność to 0.05 mA (0,1% FS). Wyjście oparte o sygnał PWM 10 kHz.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Zdecydowaliśmy się zaprezentować to w oparciu o płytkę ESP32-S3-Touch-LCD-4.3 czyli ESP32-S3 z wyświetlaczem. ESP32 posiada 12-bitowy przetwornik analogowo-cyfrowy o zakresie wartości 0-4095. W użytej płytce wyprowadzony jest na złącze:
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Takie ADC jednak może zmierzyć tylko napięcie, a nie prąd. Tutaj najprostszym rozwiązaniem do pomiaru napięcia byłoby użycie WDT11-U z wyjściem napięciowym i odpowiednio dobranym dzielnikiem napięciowym. Prezentujemy jednak WDT11-I, z wyjściem prądowym, z tego powodu musieliśmy dodatkowo wprowadzić rezystor bocznikowy (shunt) włączony szeregowo w obwód pętli prądowej. Prąd płynący przez rezystor wywołuje na nim spadek napięcia zgodnie z prawem Ohma (U = I × R), które ESP32 jest już w stanie zmierzyć. Dobrana została wartość 220 Ω - przy maksymalnym prądzie 20 mA daje to napięcie ok. 4.4 V, czyli za dużo dla wejścia ADC ESP32 (maks. ~3.1 V). W trakcie testów nie planowałem jednak zbliżać się do górnej granicy zakresu - czujnik pracował w okolicach 10-15 kg, co odpowiada prądowi ok. 7-13 mA i napięciu 1.5-2.9 V, a więc bezpiecznie w zakresie ADC. W docelowym produkcie należałoby dobrać mniejszy rezystor (np. 150 Ω, co przy 20 mA daje 3.0 V) albo zastosować dzielnik napięciowy, żeby cały zakres 4-20 mA zmieścił się w dopuszczalnych granicach przetwornika.

    Zacznijmy od prostego odczytu surowej wartości ADC i wyświetlenia jej na ekranie za pomocą LVGL. Wystarczy użyć analogRead:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Prezentacja na filmie:



    To był jednak tylko odczyt wartości z ADC. W ESP32 można ją łatwo zamienić na napięcie dzięki funkcji analogReadMilliVolts, która uwzględnia fabryczną kalibrację przetwornika. Znając napięcie na boczniku i jego rezystancję, prąd liczymy z prawa Ohma: I = U / R. W kodzie wygląda to następująco:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Filmik:



    Ostatnim krokiem jest zamiana prądu na wartość ciężaru w kilogramach. Skoro wiemy, że 4 mA odpowiada dolnej granicy zakresu, a 20 mA - górnej, to wystarczy zastosować prostą interpolację liniową. Potrzebne nam do tego będą parametry skonfigurowane w sterowniku WDT11: dolna i górna granica zakresu pomiarowego w kilogramach (widoczne w aplikacji WDT11-PC w zakładce "Konfiguracja"). W naszym przykładzie czujnik jest skonfigurowany na zakres 10-20 kg, co przekłada się na następujące stałe:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Sprawdźmy działanie programu w praktyce:



    Wartości kilogramów i miliamperów się zgadzają, choć precyzję można by polepszyć. Nie ona była celem tego prostego demka.

    Prezentacja - komunikacja Modbus
    Odczyt prądowy z użyciem bocznika sprawdza się dobrze, jednak zawsze będzie obarczony pewnym błędem wynikającym z tolerancji samego rezystora pomiarowego oraz dokładności przetwornika ADC w mikrokontrolerze. Znacznie lepszym rozwiązaniem jest wykorzystanie wbudowanego interfejsu RS485 i protokołu Modbus RTU. Dzięki temu otrzymujemy w 100% cyfrową i odporną na zakłócenia transmisję, a do tego zyskujemy dostęp do szeregu dodatkowych parametrów, takich jak wartości min/max, częstotliwość próbkowania czy nośność (pojemność) czujnika. Dodatkowo możemy wtedy podłączyć wiele różnych urządzeń na jednej magistrali - parametry baud i slave id (identyfikator urządzenia) można zmienić w ustawieniach WDT11 przez USB:
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Modbus RTU to protokół komunikacyjny typu master-slave, który na warstwie fizycznej wykorzystuje standard RS485. Oznacza to wysoką odporność na zakłócenia i możliwość przesyłania danych na duże odległości w środowiskach przemysłowych.
    Potrzebny nam będzie mikrokontroler wspierający komunikację UART oraz dodatkowo transceiver RS485, którego zadaniem jest konwersja sygnałów logicznych (TX/RX) na sygnał różnicowy przesyłany dwiema liniami (A i B).
    Na szczęście, użyty ESP32-S3-Touch-LCD-4.3 posiada to wszystko na pokładzie. Obecny tam SP3485 zajmuje się transmisją RS485 w trybie half-duplex. Płytka posiada obwód automatycznego przełączania kierunku transmisji (auto-direction control), co bardzo ułatwia sprawę z punktu widzenia oprogramowania - nie musimy ręcznie sterować pinami RE/DE, a jedynie wysyłać i odbierać dane jak przez zwykły port szeregowy.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Podłączyliśmy go do WDT11 przewodami A, B oraz zapewniliśmy wspólną masę. Warto zwrócić uwagę, że na płytce ESP32-S3-Touch-LCD-4.3 znajduje się zworka umożliwiająca włączenie wbudowanego rezystora terminacyjnego 120 Ω pomiędzy liniami A i B. W standardzie RS485 rezystory terminacyjne montuje się na obu końcach magistrali, aby wyeliminować odbicia sygnału – jest to szczególnie istotne przy dłuższych przewodach lub wyższych prędkościach transmisji. W naszym przypadku, przy krótkim połączeniu punkt-punkt, zworka nie jest konieczna, ale przy rozbudowanej instalacji warto o niej pamiętać.
    Praktyczna prezentacja WDT11 - wzmacniacz dla czujników siły - wyjście analogowe i Modbus RS485
    Teraz pytanie co odczytać. W dokumentacji znajdziemy pełną mapę rejestrów:
    AdresNazwaTyp zmiennejTryb (funkcja Modbus)Opis
    0TENS_ACT_INTDINTR (0x03)Aktualna wartość siły
    2TENS_MIN_INTDINTR (0x03)Zarejestrowana minimalna wartość siły
    4TENS_MAX_INTDINTR (0x03)Zarejestrowana maksymalna wartość siły
    6TENS_RAW_INTDINTR (0x03)Aktualna wartość siły bez konwersji jednostek
    8TENS_SENSE_INTDINTR (0x03) / W (0x10)Parametr „Rated output” w mV/V * 1000
    10TENS_RANGE_INTDINTR (0x03) / W (0x10)Parametr „Capacity” w N
    12TENS_RATE_INTINTR (0x03) / W (0x06)Częstotliwość próbkowania: 0-0, 1-10Hz, 2-33Hz, 3-50Hz, 4-66Hz, 5-123Hz
    13ANALOG_INTINTR (0x03)Wartość wyjścia analogowego w mA/mV *1000
    20TENS_ACT_REALREALR (0x03)Aktualna wartość siły
    22TENS_MIN_REALREALR (0x03)Zarejestrowana minimalna wartość siły
    24TENS_MAX_REALREALR (0x03)Zarejestrowana maksymalna wartość siły
    26ANALOG_REALREALR (0x03)Wartość wyjścia analogowego w mA/mV
    28TENS_SENSE_REALREALR (0x03) / W (0x10)Parametr „Rated output” w mV/V
    4000TARABITW (0x05)Tarowanie
    4001MIN_MAX_RESETBITW (0x05)Reset wartości minimalnej/maksymalnej siły
    5000INPUT_TARABITR (0x02)Odczyt stanu wejścia tary
    5001TENS_RANGE_ERRBITR (0x02)Błąd podłączenia czujnika / przekroczenie zakresu
    5002TENS_ADC_ERRBITR (0x02)Błąd przetwornika

    Zostaje kwestia programowa. Do komunikacji wykorzystamy popularną bibliotekę ModbusMaster. Warto zwrócić uwagę, że wartości zmiennoprzecinkowe (REAL) wysyłane są w postaci dwóch 16-bitowych rejestrów i wymagają odpowiedniego złączenia (kolejność Little-endian dla słów). Na szczęście łatwo to rozwiązać krótką funkcją parsującą.

    Pełen kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Prezentacja filmowa:



    Program działa sprawnie, odpytując paczką 30 rejestrów począwszy od adresu zerowego na raz. Dzięki temu za jednym zamachem odbieramy komplet informacji z przetwornika. W przypadku problemów z połączeniem (np. przerwanie przewodów A/B), wyświetlacz natychmiast zareaguje, prezentując kod błędu z biblioteki ModbusMaster oraz zliczając kolejne nieudane próby.

    Materiał Youtube
    Prezentacja WDT11 dostępna jest też na naszym kanale na Youtube. Zapraszamy do oglądania:





    Podsumowanie
    WDT11 okazał się solidnym i wygodnym rozwiązaniem do integracji tensometrycznych czujników siły z systemami przemysłowymi i mikrokontrolerami. W artykule przetestowaliśmy dwa sposoby odczytu danych:
    - wyjście prądowe 4-20 mA – prostsze w implementacji, wymaga jedynie rezystora bocznikowego i odczytu ADC. Sprawdza się dobrze w prostych zastosowaniach, ale dokładność zależy od tolerancji rezystora i precyzji przetwornika w mikrokontrolerze. Trzeba też pamiętać o dobraniu wartości rezystora tak, aby napięcie na boczniku nie przekroczyło dopuszczalnego zakresu ADC. Dodatkowo to rozwiązanie nie jest skalowalne w prosty sposób przy większej ilości czujników.
    - komunikacja Modbus RTU przez RS485 - zdecydowanie lepsza metoda dla zastosowań wymagających precyzji i niezawodności. Transmisja jest w pełni cyfrowa, odporna na zakłócenia elektromagnetyczne i niezależna od dokładności przetwornika po stronie mikrokontrolera. Dodatkowo zyskujemy dostęp do rozbudowanej mapy rejestrów: wartości min/max, surowe odczyty ADC, parametry czujnika (nośność, czułość), częstotliwość próbkowania i diagnostykę błędów. Na jednej magistrali RS485 można podłączyć do 32 urządzeń, co czyni to rozwiązanie skalowalnym.
    Konfiguracja modułu WDT11 odbywa się wygodnie przez USB za pomocą dedykowanej aplikacji WDT11-PC, która umożliwia nie tylko ustawienie wszystkich parametrów pracy, ale także przeprowadzenie procedury kalibracji z użyciem wzorcowego obciążenia.
    Wszystkie prezentowane przykłady kodu zostały przygotowane dla płytki ESP32-S3-Touch-LCD-4.3 z biblioteką graficzną LVGL v8. Płytka ta posiada wbudowany transceiver RS485 z automatycznym przełączaniem kierunku transmisji, co znacząco upraszcza implementację komunikacji Modbus.
    Więcej informacji o module WDT11 można znaleźć na stronie producenta WObit.

    [Współpraca reklamowa z P.P.H. WObit E.K. Ober s.c.]

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14675 postów o ocenie 12694, pomógł 656 razy. Jest z nami od 2014 roku.
  • #2 21931428
    maciej_333
    Poziom 38  
    Posty: 4229
    Pomógł: 487
    Ocena: 1596
    Ciekawa prezentacja, chociaż to bardzo łatwy do użycia moduł. Jak widać z zacisków tensometr może być też dołączany w układzie 6-przewodowym.
  • #3 21931435
    gulson
    Administrator Systemowy
    Posty: 29405
    Pomógł: 148
    Ocena: 6071
    Bardzo ładnie to pokazałeś, ja tylko dopiszę, do czego może się to przydać, ogólnie czujniki, wiadomo pod kątem przemysłowym:
    wagi magazynowe,
    wagi paletowe,
    dozowniki materiałów,
    kontrola ilości produktu na linii,
    kontrola nacisku pras,
    monitorowanie siły docisku szczęk,
    kontrola zgrzewania,
    wykrywanie przeciążenia maszyny,
    badanie wytrzymałości materiałów,
    pomiary siły zrywania,
    testy sprężyn,
    pomiary nacisku przycisków.

    Ale również dla DIY:
    waga ula - ostatnio moda ;)
    poziom pelletu, ach ten pellet ostatnio ;)
    waga warsztatowa
    że jakaś rzecz "leży"
    może jakiś dozownik karmy dla zwierzaka, przecież moda na zwierzaki ;)