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

Jak liczyć czas zdarzenia w C z resetem o 15:00 w WinCC?

tufus 10 Wrz 2007 16:51 2708 4
REKLAMA
  • #1 4269618
    tufus
    Poziom 14  
    Posty: 136
    Pomógł: 4
    Ocena: 12
    Witam Wszystkich.

    Potrzebuję wskazówki lub gotowego programu w C. Program ma za zadanie liczyć czas trwania jakiegoś zdarzenia w formacie DD:MM:SS, oraz możliwość wyzerowania czasu. Program będę wykorzystywał w WinCC, gdzie będę pobierał bit, jeśli bit będzie miał stan wysoki 1 to zegar ma liczyć natomiast jeśli będzie stan niski to zegar ma przestać odmierzać czas. W jaki sposób w C mogę porównać czas i w przypadku gdy jest np: 15:00:00 to wyzeruje mi czas trwania zdarzenia.
    Z góry dziękuję za pomoc.
  • REKLAMA
  • REKLAMA
  • #3 4329879
    tufus
    Poziom 14  
    Posty: 136
    Pomógł: 4
    Ocena: 12
    Mi chodziło o coś takiego.
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h> 
    void delay_sec( int seconds )
    {
             clock_t endwait; 
        endwait = clock () + seconds * CLOCKS_PER_SEC; 
        while (clock() < endwait) {} 
    } 
    int main (void)
    {
     time_t rawtime, ini_time, now; 
        struct tm *ptm; 
    
        time ( &ini_time ); 
        for(;;){ 
            time ( &rawtime ); 
            //ptm = gmtime ( &rawtime ); 
            //printf ("%2d:%02d:%02d\n", ptm_2->tm_hour, ptm_2->tm_min, ptm_2->tm_sec); 
            now = rawtime - ini_time; 
            ptm = gmtime ( &now ); 
            printf ("%2d:%02d:%02d\n", ptm->tm_hour, ptm->tm_min, ptm->tm_sec); 
            delay_sec(1);
    }
    
    return 0;
    }
    

    Chociaż nie będzie mi przydatny, ponieważ w skryptach używanych w WinCC nie należy używać funkcji "Sleep", ponieważ wstrzymuje ona działanie pozostałych skryptów. :cry:
  • REKLAMA
  • #4 4547945
    ATOS1610
    Poziom 12  
    Posty: 36
    Pamiętaj że w WinCC jest Ansi C i jest kłopot z #include <time.h> .

    Dodano po 1 [minuty]:

    Pamiętaj że w WinCC jest Ansi C i jest kłopot z #include <time.h> . Nie da się w bezpośredni sposób deklarować bibliotek.
  • #5 4548668
    tufus
    Poziom 14  
    Posty: 136
    Pomógł: 4
    Ocena: 12
    Nie wykonuję pomiaru czasu w WinCC, ale robię to w sterowniku i wysyłam do WinCC. Ale denerwuje mnie jedna rzecz, że w sterowniku mam czas w postaci kodu BCD, następnie piszę kod w C i mogę go odczytać w postaci tekstowej. Ale WinCC ma dużą wadę nie mogę archiwizować zmiennych tekstowych, nie wiem jak jest w innych systemach SCADA?
REKLAMA