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

Easy Control+Galileo: Jak wyświetlić czas w formacie hh:mm:ss na panelu XV-200?

zaspany 04 Paź 2008 14:20 1811 10
REKLAMA
  • #1 5597787
    zaspany
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 27
    Mam easy control i panel xv-200 komunukacja po canopen.
    Chce na panelu pokazac wartosci time i je edytować.
    Na razie kozystajac z funkcji dword_to_time moge to robic ale wartosci time mam w milisekundach.
    Moze którys z kolegów walczył z tym problemem jak na panelu czS byl w godzinach, minutach, sekundach?
  • REKLAMA
  • #2 5599422
    kenion
    Poziom 19  
    Posty: 423
    Pomógł: 18
    Ocena: 56
    Chodzi Tobie o zmiane czasu na sterowniku z poziomu panelu operatorskiego czy zmiane zmiennej typu time? Opisz troche dokładniej problem to może da rade coś pomóc.
  • #3 5601743
    zaspany
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 27
    Zmienne time do timerów w easy control edytowane z poziomu xv-200.
    Jest polecenie dword_to_time jak i time_to_dword tylko wynik mam milisekundach. A moze jest prostrzy sposob bo moge podzilic wynik przez krotnosc godziny w milisenundach-bede miał liczbe godzin, dalej pomnozyc liczbe godzin przez krotnosc w milisekundach a nastepnie odjac czyli zostana mi minuty podobnie zz sekundami ale nie jest to droga na okolo? Moze jest cos prostrzego.
  • REKLAMA
  • #4 5601766
    falowniki.com
    Spec od Falowników
    Posty: 823
    Pomógł: 86
    Ocena: 134
    Witam,
    niestety nie ma prostszego, lecz pomocna jest zakładka Units w Word (Galileo) i proste operacje matematyczne jaki można tam przeprowadzić...
    ja dla wyprowadzeniu czasu z Timerów na HMI, korzystam z FB który stworzyłem na te potrzeby i zapisałem jako bibliotekę do wykorzystywania w innych aplikacjach...

    pozdrawiam
  • #5 5601844
    zaspany
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 27
    dzieki falowniki.com za szybka odpowiedz. Ale chyba Units w Word (Galileo) ma za male mozliosci ale w codesys mam wiecej mozliowści.
    A moze móglbys podac przykład przeliczenia time na 3 zmienne np: int godziny, minuty, sekundy.
  • Pomocny post
    #6 5602169
    falowniki.com
    Spec od Falowników
    Posty: 823
    Pomógł: 86
    Ocena: 134
    Witam,
    blok FB:

    
    
    FUNCTION_BLOCK ZAM_CZAS
    VAR_INPUT
    	tm: TIME;
    END_VAR
    VAR_OUTPUT
    	h,m,sec,ms :INT;
    END_VAR
    VAR
    	tw: DWORD;
    END_VAR
    
    
    tw := TIME_TO_DWORD(tm);
    ms := DWORD_TO_INT(tw MOD 1000);
    tw := tw /1000;
    sec := DWORD_TO_INT(tw MOD 60);
    tw := tw/60;
    m := DWORD_TO_INT(tw MOD 60);
    h := DWORD_TO_INT(tw / 60);
    
    


    przykładowa implementacja:
    Załączniki:
    • Easy Control+Galileo: Jak wyświetlić czas w formacie hh:mm:ss na panelu XV-200? imp.png (11.61 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #7 5602787
    zaspany
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 27
    dzieki falownik.com
    oj mój kod miał byc duzo dłuzszy:)
  • REKLAMA
  • #8 5603022
    falowniki.com
    Spec od Falowników
    Posty: 823
    Pomógł: 86
    Ocena: 134
    nie ma sprawy... po to jesteśmy żeby sobie pomagać...

    chcemy stworzyć platformę wymiany bloków funkcyjnych i bibliotek na www.codesys.pl

    pozdrawiam
  • #9 5603431
    kenion
    Poziom 19  
    Posty: 423
    Pomógł: 18
    Ocena: 56
    No a ja myślę że jest coś prostszego ale trzeba poszukać w bibliotekach. I tak biblioteka XS_40MollerFB.lib zawiera moduły na których możemy przeprowadzić takie operacje (TimeConcatX, TimeSplitX)
    Easy Control+Galileo: Jak wyświetlić czas w formacie hh:mm:ss na panelu XV-200?
  • #10 5603471
    falowniki.com
    Spec od Falowników
    Posty: 823
    Pomógł: 86
    Ocena: 134
    generalnie jest to dokładnie to samo, ale pamietajmy o zasobach pamięci, Zaspany posiada sterownik easycontrol, a każda biblioteka "zżera" pamięć (a XS40... trochę waży...), czasami jest dobrze "wyłuskac" część biblioteki i zapisać ją osobno do dalszego wykorzystania...
    pozdrawiam
  • #11 5659427
    zaspany
    Poziom 12  
    Posty: 88
    Pomógł: 1
    Ocena: 27
    Panowie mam kolejny problem z codesys:
    wywołuje moduł (poprogram) w zaleznosci od jakiegos warunku
    tylko ze jak ten warunek zmienia sie wywowała moduł ciagle działa jak to zmienic?

    np IF I1=TRUE THEN TEST1(MODUL KTÓRY NIE JEST WYWOLANY W PLC_PRG) END_IF;

    JAK I1 true to Zaleznosci w TEST1 sa wywołane ale jak I1 false to TEST1 ciagle działa.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy wyświetlania i edycji wartości czasu w formacie hh:mm:ss na panelu operatorskim XV-200 komunikującym się ze sterownikiem Easy Control przez CANopen. Problemem jest konwersja zmiennej typu TIME, która jest wyrażona w milisekundach, na czytelny format godzin, minut i sekund. Użytkownik korzysta z funkcji dword_to_time i time_to_dword, ale otrzymuje wynik w milisekundach i szuka prostszego sposobu na rozbicie czasu na składowe. Zaproponowano rozwiązanie oparte na funkcjach matematycznych w środowisku Galileo (zakładka Units) oraz stworzenie własnego bloku funkcyjnego (FB) do konwersji. Przykładowy blok FB (ZAM_CZAS) konwertuje wartość TIME na cztery zmienne typu INT: godziny, minuty, sekundy i milisekundy, wykorzystując operacje modulo i dzielenia na wartościach DWORD. Wskazano również na biblioteki, takie jak XS_40MollerFB.lib, które zawierają funkcje TimeConcatX i TimeSplitX do operacji na czasie, jednak ich użycie może być zasobożerne dla sterownika Easy Control. Dyskusja porusza także kwestie optymalizacji pamięci i modularności kodu w Codesys. Na koniec pojawiło się pytanie o wywoływanie bloków funkcyjnych warunkowo w Codesys, gdzie problemem jest ciągłe działanie modułu mimo zmiany warunku logicznego.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA