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
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:
- w LOGO! podziału całkowitej liczby sekund na minuty i sekundy oraz zapisania ich w dwóch rejestrach Word;
- 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ń.
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