tMPC-04 to 4-wejściowy licznik impulsów przeznaczony do użytku z dowolnymi licznikami z wyjściami impulsowymi. Komunikuje się za pośrednictwem Modbus RTU, aby udostępniać liczbę zliczonych impulsów, zliczoną energię i oszacowaną moc. Mierzone mogą być także inne miary np. przepływy z liczników wody lub gazu. Konwersja na te jednostki odbywa się na podstawie wprowadzonych przez użytkownika współczynników (np. impulsów na kWh), domyślnie jest to 1000 impulsów na jednostkę.
Zasilanie | 5-12 V DC (złącze) 5 V (USB) |
---|---|
Wejścia impulsowe | 4 |
Progi poziomu wejściowego | Low = 0 - 1.0 V, High = 1.3 - 25 V |
Maksymalna szybkość zliczania | ~2000 Hz (do 4000 Hz bez szacowania mocy) |
Interfejsy | Modbus RTU (RS485), Serial (przez USB; 115200 baud) |
Wymiary | 74 x 40 x 30 mm (bez uchwytu DIN) |
Waga | 44 g |
Po wyjęciu z pudełka, tMPC-04 jest wstępnie skonfigurowany z:
Jeśli te ustawienia pasują do twoich liczników energii, urządzenie jest gotowe do natychmiastowego użycia. W przeciwnym razie, w przypadku instalacji z wieloma licznikami impulsowymi lub innymi współczynnikami konwersji impulsów, należy zapoznać się z sekcją Zaawansowana Konfiguracja.
tMPC-04 bezproblemowo integruje się z urządzeniami LK4 oraz LK3.5+. Może być zasilany bezpośrednio z wyjść 5V i GND kontrolera LK. Następnie należy podłączyć go — samodzielnie lub wraz z innymi urządzeniami Modbus — do złącz Modbus A+ i B− w urządzeniu LK, aby nawiązać komunikację.
Po podłączeniu skonfiguruj niestandardowy moduł Modbus w LK, korzystając z gotowego pliku konfiguracyjnego dostępnego w sekcji Do pobrania. Plik ten można łatwo dostosować do własnych potrzeb, np. ograniczając odczyt do wybranych liczników impulsów, wartości energii lub mocy.
Aby zaktualizować oprogramowanie, urządzenie tMPC-04 należy uruchomić w trybie bootloadera. W tym trybie urządzenie pojawia się jako nośnik pamięci masowej o nazwie RPI-RP2 po podłączeniu do komputera. Wystarczy skopiować nowy plik z firmware do tego nośnika. Po zakończeniu kopiowania urządzenie automatycznie się zrestartuje i wznowi normalną pracę z nowym oprogramowaniem.
Tryb bootloadera można włączyć na dwa sposoby:
bootloader
.💡 Pliki z oprogramowaniem dostępne są w sekcji Do pobrania.
Aby zmienić ustawienia, musisz podłączyć tMPC-04 do komputera przez USB. Urządzenie może być zasilane przez USB, więc nie są potrzebne żadne dodatkowe połączenia zasilania.
Aby nawiązać połączenie z licznikiem impulsów, będziesz potrzebować aplikacji obsługującej komunikację szeregową. Popularne opcje to:
Wyświetlenie dostępnych portów:
Uruchom pyserial-ports, aby wyświetlić dostępne porty COM przed podłączeniem urządzenia. Wynik może wyglądać tak:
COM1
COM3
COM15
COM16
COM17
Podłącz urządzenie
Podłącz tMPC-04 i uruchom ponownie polecenie. Nowy port COM (np. COM11) będzie reprezentował podłączone urządzenie.
Połącz z tMPC-04
Użyj następujących parametrów połączenia:
Przykładowe polecenie:
pyserial-miniterm COM11 115200
Wysyłanie poleceń
Po połączeniu możesz wydawać polecenia do urządzenia. Każde polecenie musi być zakończone klawiszem Enter. Przydatnym poleceniem jest ?
lub help
, które wyświetla listę wszystkich dostępnych poleceń (opisanych poniżej).
Polecenie | Opis |
---|---|
address? | a? | Odczytuje aktualny adres Modbus (Slave ID). |
address=X | a=X | Ustawia adres Modbus. Parametry: X – adres do ustawienia, liczba z zakresu <1, 255>. |
debounce_time? | d? | Pobiera czas debounce dla liczników impulsów (w ms). |
debounce_time=X | d=X | Ustawia czas debounce dla liczników impulsów. Definiuje minimalną długość impulsu, krótsze będą ignorowane i nie będą liczone. Parametry: X — wartość w ms, liczba <0, 65_535>, dla 0 funkcja jest wyłączona. |
power_estimation? | pe? | Pobiera flagę szacowania mocy dla liczników impulsów (0 - WYŁ., 1 - WŁ.). |
power_estimation=X | pe=X | Ustaw flagę szacowania mocy dla liczników impulsów. Określa, czy szacowanie mocy jest włączone. Można je wyłączyć, jeśli nie jest potrzebne lub w celu poprawy zakresu pomiaru częstotliwości impulsów z ~2 kHz na ~4 kHz (ograniczenie wynikające z czasu trwania impulsu i kształtu pozostaje). Parametry: X - wartość 0 - WYŁ. / 1 - WŁ., liczba <0, 1>. |
auto_save? | as? | Odczytuje wartość funkcji autozapisu. Jest to interwał w sekundach, w którym liczniki są zapisywane do pamięci. |
auto_save=X | as=X | Ustawia wartość funkcji autozapisu. Parametry: X – czas w sekundach, liczba z zakresu <0, 65 535>; wartość 0 wyłącza funkcję. |
counter_cfX? | ccfX? | Pobiera współczynnik konwersji dla licznika impulsów. Parametry: X — numer licznika <1, 4>. |
counter_cfX=Y | ccfX=Y | Ustaw współczynnik konwersji dla licznika impulsów: liczbę impulsów na jednostkę, np. imp/kWh. Parametry: X - numer licznika <1, 4>; Y - liczba impulsów, liczba <1, 65_535>. |
counterX? | cX? | Pobierz wartość licznika impulsów, tj. liczbę impulsów, które zliczył. Parametry: X - numer licznika <1, 4>. |
counterX=Y | cX=Y | Ustaw wartość licznika impulsów. Parametry: X - numer licznika <1, 4>; Y - liczba impulsów, liczba <0, 1_073_741_823>. |
read_status | rs | Odczytaj zapisany status liczników. |
save_config | sc | Zapisuje konfigurację do pamięci Flash. Należy użyć po zmianie adresu Modbus, współczynników przeliczeniowych liczników, czasu tłumienia (debounce) oraz ustawień autozapisu — aby zachować je po restarcie. |
save_status | ss | Zapisz stan liczników impulsów w pamięci Flash. Należy je wywołać po zmianie wartości liczników impulsów (liczby impulsów), aby zachować je po ponownym uruchomieniu. |
read_registers | rr | Odczytuje wartości rejestrów Modbus. |
read_definitions | rd | Odczytuje definicje rejestrów Modbus: nazwa, adres, typ. |
bootloader | Uruchamia urządzenie w trybie bootloadera w celu aktualizacji oprogramowania. Po podłączeniu do komputera urządzenie pojawi się jako dysk o nazwie RPI-RP2, na który należy skopiować plik firmware z rozszerzeniem uf2. Następnie urządzenie automatycznie zrestartuje się i uruchomi w trybie normalnej pracy. |
restart | Restartuje urządzenie. |
verbose=X | Włącza lub wyłącza tryb szczegółowy (verbose), który wyświetla więcej komunikatów. |
help | ? | Wyświetla pomoc z listą dostępnych poleceń. |
Niektóre polecenia przydają się tylko w szczególnych przypadkach, które przedstawiam poniżej.
address=X
w celu zmiany adresu na unikalny.
debounce_time=X
, które spowoduje ignorowanie krótszych impulsów.
auto_save=X
, co spowoduje okresowe zapisywanie ich stanu w pamięci trwałej. Należy pamiętać o zużyciu pamięci flash, ponieważ ma ona ograniczoną liczbę zapisów (szacowaną na 100 tys.). Dlatego podczas korzystania z tej funkcji należy wybrać wartość, która jest akceptowalnym kompromisem. Na przykład wartość 300 (sekund) powinna pozwalać na około 1 rok działania, a 1800 powinna pozwalać na ponad 5,5 roku.address=X
, debounce_time=X
, power_estimation=X
, auto_save=X
, counter_cfX=Y
, należy użyć polecenia save_config
, aby zapisać zmiany w pamięci trwałej. W przeciwnym razie zostaną utracone przy utracie zasilania lub ponownym uruchomieniu urządzenia.
Dokładność pomiarów impulsów zależy od częstotliwości, czasu trwania impulsu i czasów narastania/opadania. W trybie normalnym z szacowaniem mocy, impulsy powinny trwać nie krócej niż 0,34 ms. W trybie wysokiej prędkości (bez szacowania mocy) czas trwania impulsu może wynosić zaledwie 0,19 ms.
W większości aplikacji błędy pomiarów nie powinny przekraczać 0,1%.
Poniżej przedstawiono listę rejestrów Modbus dostępnych w urządzeniu.
Lista odpowiada wynikowi komendy read_definitions
i zawiera nazwy, adresy, typy i dzielniki.
| Name | Addr | Type | Func | Divisor |
| ------------------------------ | ---- | ------ | ------------ | ------- |
| uptime | 3000 | uint32 | 0x04 (IREG) | |
| counter1 | 3002 | uint32 | 0x04 (IREG) | |
| counter2 | 3004 | uint32 | 0x04 (IREG) | |
| counter3 | 3006 | uint32 | 0x04 (IREG) | |
| counter4 | 3008 | uint32 | 0x04 (IREG) | |
| counter1_energy | 3010 | uint32 | 0x04 (IREG) | 1000 |
| counter2_energy | 3012 | uint32 | 0x04 (IREG) | 1000 |
| counter3_energy | 3014 | uint32 | 0x04 (IREG) | 1000 |
| counter4_energy | 3016 | uint32 | 0x04 (IREG) | 1000 |
| counter1_power | 3018 | uint32 | 0x04 (IREG) | 1000 |
| counter2_power | 3020 | uint32 | 0x04 (IREG) | 1000 |
| counter3_power | 3022 | uint32 | 0x04 (IREG) | 1000 |
| counter4_power | 3024 | uint32 | 0x04 (IREG) | 1000 |
| version_major | 3100 | uint16 | 0x04 (IREG) | |
| version_minor | 3101 | uint16 | 0x04 (IREG) | |
| version_patch | 3102 | uint16 | 0x04 (IREG) | |
| address | 4000 | uint16 | 0x03 (HREG) | |
| debounce_time | 4001 | uint16 | 0x03 (HREG) | |
| counter1_conversion_factor | 4002 | uint16 | 0x03 (HREG) | |
| counter2_conversion_factor | 4003 | uint16 | 0x03 (HREG) | |
| counter3_conversion_factor | 4004 | uint16 | 0x03 (HREG) | |
| counter4_conversion_factor | 4005 | uint16 | 0x03 (HREG) | |
| auto_save | 4006 | uint16 | 0x03 (HREG) | |
| power_estimation | 4007 | uint16 | 0x03 (HREG) | |