Wyświetlanie czasu mm:ss na HMI Weintek z Siemens LOGO! 8.4

Pytanie

jak poprawnie wyświetlić czas w formacie mm.:ss na panelu HMI Weintek z simens logo 8.4

Odpowiedź Sztucznej Inteligencji


Bezpośrednia odpowiedź na pytanie

  • Najprościej: w LOGO! 8.4 oblicz minuty = SECONDS DIV 60 i sekundy = SECONDS MOD 60, zapisz je do dwóch rejestrów VM/VW, a w EasyBuilder Pro wyświetl dwa pola „Numeric Display” sformatowane na „%02d”, rozdzielone stałym tekstem „:”.
  • Kluczowe punkty: poprawne mapowanie adresów Modbus TCP, format „02d” z wiodącymi zerami, odświeżanie co ≈ 500-1000 ms oraz ewentualna zamiana bajtów (byte swap) w LOGO.

Szczegółowa analiza problemu

1. Przygotowanie danych w Siemens LOGO! 8.4

1.1 Źródło „sekund”:
• Licznik impulsów (generator 1 Hz) lub systemowy blok czasu.
1.2 Konwersja:
• Minuty = TotalSeconds DIV 60 (blok DIV)
• Sekundy = TotalSeconds MOD 60 (blok MOD)
1.3 Rejestry:
• VW100 – minuty (0-59)
• VW102 – sekundy (0-59)
1.4 Mapowanie Modbus: LOGO! prezentuje VW0 → 40001, VW100 → 40101 itd. Upewnij się, że:
• typ danych WORD (16 bit) bez znaku,
• „Byte order” = Big Endian (standard LOGO).
1.5 Reset / start: opcjonalnie merker V0.0 (Start) i V0.1 (Reset) wystawione na HMI.

2. Konfiguracja komunikacji w EasyBuilder Pro

2.1 Device List → Add → „Siemens LOGO! (Modbus TCP)”.
2.2 IP LOGO!, port 502, tryb klient-serwer dowolny (HMI najczęściej klient).
2.3 Jeżeli w projekcie LOGO aktywne jest również Web-Server, ustaw różne porty aby uniknąć kolizji.

3. Definicja tagów w HMI

Nazwa tagu Typ Adres (hex/dec) Uwagi
MINUTES Word 40101 (100d) 0-59
SECONDS Word 40103 (102d) 0-59

4. Prezentacja czasu – dwa warianty

4.1 Klasyczny (dwa „Numeric Display”):
• Object → Numeric Display → Source = MINUTES, Format = Decimal, Digits = 2, Leading Zero = YES.
• Drugi obiekt dla SECONDS identyczny.
• Między nimi statyczny tekst „:”.
4.2 Jeden obiekt (String/Macro):
• Script (Macro) wykonywany co 1 s:

int m = GetData(MINUTES);
int s = GetData(SECONDS);
sprintf(StrBuf, "%02d:%02d", m, s);   // StrBuf = np. LW200..  
SetData(StrTag, StrBuf);

• Na ekranie obiekt „String Display” → Source = StrTag.
• Od EBPro 6.10 można też użyć „Combo Data Display” i podać format „%02d:%02d” z listą tagów.

5. Częstotliwość odświeżania

  • Update Rate pól numerycznych: 500–1000 ms (wartość < 1 s, aby sekunda nie „przeskakiwała”).
  • Przy makrze: Timer = 1000 ms.

6. Walidacja i ograniczenia

  • LOGO! liczy do 65535 s ≈ 18,2 h, po przekroczeniu zalecany reset/overflow.
  • Sprawdź, czy w LOGO! nie aktywowano „Retain” dla VW100/102 (po zaniku zasilania stoper może ruszyć od błędnej wartości).
  • Przy użyciu rejestru Word pamiętaj, aby nie wysyłać wartości > 32767 jeśli LOGO skonfigurowano jako „signed”.

Aktualne informacje i trendy

  • EasyBuilder Pro ≥ V6.10 wprowadził „Combo Data Display” z wielopolowym formatowaniem typu printf – pozwala zrezygnować z makr.
  • Firmware LOGO! 8.4 (V1.84.03, 2023-12) poprawia transfer Modbus TCP i obsługę ujemnego czasu, dlatego zaleca się aktualizację.
  • Nowe panele Weintek cMT-X obsługują bezpośrednio formant „Timer” (HH:MM:SS) – można go wykorzystać, ale wymaga stringu, nie Wordów.

Wspierające wyjaśnienia i detale

  • Byte-swap: starsze panele Weintek miały domyślnie „Swap words” w Modbus ON; dla 16-bitowych Wordów wyłącz tę opcję.
  • Analogicznie można rozbudować algorytm o godziny:
    hours   = TotalSeconds DIV 3600
    minutes = (TotalSeconds MOD 3600) DIV 60
    seconds = TotalSeconds MOD 60
  • Gdy LOGO ma być jedynie źródłem impulsów, całe przeliczenie DIV/MOD można przenieść do makra HMI – zwiększy to obciążenie panelu, ale uprości program PLC.

Aspekty etyczne i prawne

  • Wyświetlany czas nie może być traktowany jako urządzenie pomiaru czasu w znaczeniu prawnym (MI-chronometraż).
  • W aplikacjach bezpieczeństwa (np. piece, czasy wentylacji) stosuj dodatkowy, niezależny watchdog.
  • Pamiętaj o licencjach na firmware LOGO! oraz EBPro (dla wersji Pro wymagane aktywacje).

Praktyczne wskazówki

  • Po stronie LOGO użyj bloków „Asynchronous pulse generator” (1 Hz) + „Counter” + „Math”.
  • Nadpisując VW rejestry, ustaw „single write” (nie cyclical) aby ograniczyć ruch sieciowy.
  • W EBPro włącz „Data sampling” logujący VW100/102 – pomoże debugować.
  • Dla wizualnej płynności zastosuj font monospaced.

Ewentualne zastrzeżenia lub uwagi dodatkowe

  • LOGO! nie obsługuje 64-bit więc liczniki > 18 h wymagają przepełnienia lub przeniesienia zliczania do DWORD (VDW).
  • Przy pracy w Modbus RTU (RS-485) zachowaj odstęp między zapytaniami (≥ 20 ms) aby uniknąć kolizji.
  • Alternatywnie można czytać systemowy czas HMI (LW-9018, LW-9017) gdy stoper PLC nie jest konieczny.

Sugestie dalszych badań

  • Testuj nowe obiekty „Graphic Timer” z cMT-X – obsługują własny odczyt NTP.
  • Rozważ użycie OPC UA (LOGO! 8.4 go nie ma, ale panel Weintek może agregować dane z serwera OPC UA innego urządzenia).
  • Sprawdź biblioteki makr EBPro do obsługi formatowania dat ISO-8601.

Krótkie podsumowanie

Prawidłowe wyświetlenie formatu mm:ss wymaga:

  1. w LOGO! podziału całkowitej liczby sekund na minuty i sekundy oraz zapisania ich w dwóch rejestrach Word;
  2. w EasyBuilder Pro utworzenia dwóch pól numerycznych z formatem „%02d” i statycznym separatorem „:”, ewentualnie jednego pola tekstowego z makrem sprintf.
    Kluczowe są: poprawne adresowanie Modbus, wyłączenie niepotrzebnego byte-swapu, ustawienie krótkiego okresu odświeżania i aktualne firmware obu urządzeń.

Oceń odpowiedź: 1
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.

Zadaj dodatkowe pytanie Sztucznej Inteligencji

Czekaj (2min)...