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 |
Maksymalna szybkość zliczania | ~2000 Hz (do 4000 Hz bez szacowania mocy) |
Interfejsy | Serial (przez USB; 115200 baud), Modbus |
Wymiary | 71 x 42 x 37 mm |
Waga | 40 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 można łatwo używać z LK4 lub LK3. Licznik można zasilać bezpośrednio z wyjść 5V i GND urządzenia LK. Następnie podłączasz je do jednej magistrali Modbus. Następnie skonfiguruj niestandardowy moduł Modbus na LK za pomocą presetu konfiguracji dostępnego w sekcji Do pobrania - możesz go zmodyfikować, aby odczytywać tylko wybrane parametry.
Aby zaktualizować firmware, użyj polecenia bootloader
lub naciśnij fizyczny przycisk FLASH na urządzeniu przed jego włączeniem (aby uzyskać dostęp do przycisku, trzeba otworzyć obudowę). Nowy firmware można następnie przesłać, kopiując jego plik do pamięci RPI-RP2, która jest dostępna, gdy urządzenie jest w trybie bootloadera. Krótko po tym urządzenie zrestartuje się i wznowi normalne działanie.
Pliki z oprogramowaniem sprzętowym można znaleźć 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 |
---|---|
bootloader | Uruchamia urządzenie w trybie bootloadera w celu aktualizacji firmware. Po podłączeniu do komputera pojawi się jako urządzenie pamięci masowej o nazwie `RPI-RP2`, na które należy skopiować plik firmware o rozszerzeniu `uf2`. Następnie urządzenie uruchomi się ponownie w trybie normalnym. |
restart | Restartuje urządzenie. |
address? | a? | Pobiera adres Modbus (Slave ID). |
address=X | a=X | Ustawia adres Modbus. Parametry: X — adres do ustawienia, liczba <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? | Pobierz wartość funkcji auto-save. Jest to interwał w sekundach, w którym liczniki są zapisywane. |
auto_save=X | as=X | Ustaw wartość funkcji auto-save. Parametry: X - wartość w sekundach, liczba <0, 65_535>, dla 0 funkcja jest wyłączona. |
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. |
read_registers | rr | Odczytaj wartości rejestrów Modbus. |
read_definitions | rd | Odczytaj definicje rejestrów Modbus (nazwa, adres, typ). |
save_config | sc | Zapisz konfigurację w pamięci Flash. Należy je wywołać po zmianie adresu Modbus, współczynników konwersji liczników, czasu odbicia i funkcji automatycznego zapisywania, aby zachować je po ponownym uruchomieniu. |
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. |
verbose=X | Włącz lub wyłącz tryb szczegółowy, który wyświetla więcej komunikatów. |
help | ? | Wyświetl ten komunikat pomocy 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%.
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) |