Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: Zeitfunktionen mit C#

  1. #1
    Registriert seit
    18.09.2004
    Beiträge
    69
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    wie kann ich eine Einschaltverzögerung bzw Ausschaltverzögerung mit nachtriggern Programmieren in C#.
    irgenwie fehlt mir gerade der Ansatz dazu

    danke schon mal.
    Zitieren Zitieren Zeitfunktionen mit C#  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Kommt auf das Konzept an, und wozu du so einen Timer benötigst.

    Wenn ich das SPS-Prinzip in einem C#-Programm nachbilden wollte, würde ich also Vorlage die IEC-Timer nehmen.
    Dazu eine Klasse für z.B. TON erstellen, mit den entsprechenden Schnittstellen.
    Wird eine steigende Flanke an IN erkannt (kann man ja schön über die getter / setter Methoden lösen), wird in einer internen Variable DateTime.Now.Ticks gespeichert.
    Wird der Zustand von Q oder ET abgefragt, wird die Differenz zur Startzeit berechnet und an ET ausgegeben, bzw. Q geht auf true oder false.

    Für andere Zwecke würde man sich wohl Events beim Ablauf eines Timers erzeugen lassen.

    Was willst du denn damit machen, oder hast du schon Timer und dir fehlt nur das Nachtriggern?

  3. #3
    eloboy ist offline Benutzer
    Themenstarter
    Registriert seit
    18.09.2004
    Beiträge
    69
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen

    Was willst du denn damit machen, oder hast du schon Timer und dir fehlt nur das Nachtriggern?
    nein leider habe ich noch nichts.

    ich will eine Störmledelampe (blinkend) abfragen wenn sie mindestens 5 Sekunden blinkt.

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und wie kommt die Information über die Störmeldelampe in dein Programm, fragst du diese zyklisch ab?
    Das ist etwas unpraktisch, denn dann musst du das Signal mit min. der doppelten Frequenz abfragen (Abtasttheorem).

    Mal angenommen du machst das, sollte das mit folgendem Pseudocode funktionieren wenn du das in deinem Poll-Intervall aufrufst:
    Code:
    bool Hilfsvariable
    bool Meldevariable
    bool SignalAlt
    int TickCount2sTimer // Zeit für Rücksetzen der Meldung
    int TickCount5sTimer // Zeit für setzen der Meldung
    
    // Steigende Flanke
    If Signal And Not SignalAlt then
      Hilfsvariable = true
      TickCount5sTimer = TickCountNow
    EndIf
    
    // Fallende Flanke
    If Not Signal And SignalAlt Then
      TickCount5sTimer = TickCountNow
    EndIf
    
    // Wenn Lampe für länger als 2 Sekunden aus, dann keine Meldung mehr
    If DiffToNow(TickCount2sTimer) > 2s Then
      Hilfsvariable = false
      Meldevariable = false // alternativ rücksetzen durch Quittierung
    EndIf
    
    // Lampe blinkt für länger als 5 Sekunden? Dann Meldung
    If Hilfsvariable And DiffToNow(TickCount5sTimer) > 5s Then
      Meldevariable = true
    EndIf 
    
    // Letzten Signalzustand sichern
    SignalAlt = Signal
    Ich würde Environment.TickCount anstelle DateTime.Now.Ticks verwenden, dann wird das Verhalten nicht durch eine Uhrzeitverstellung beeinflusst.
    Du musst dir nur eine Funktion DiffToNow() schreiben, die den Überlauf von TickCount nach 24 Tagen abfängt.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 18.03.2012, 18:49
  2. Frage zu Zeitfunktionen
    Von kronprinz im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 17.06.2005, 14:55
  3. Frage zu Zeitfunktionen
    Von Uwe H. im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.04.2005, 08:59
  4. Zeitfunktionen bei einer S5
    Von Anonymous im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.05.2004, 16:48

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •