S7 - Zeit?

O

Orion

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,

ich such ein Timer oder ein Baustein der die selbe Funktion hat.

Der Timer soll die Zeit speichern währen er angestoßen wird. Nach Ablauf der Zeit soll er ein Ausgang Setzen bis er wieder neu angestoßen wird.

Also in Prinzip wie jedes Zeitglied bei der S7 nur das der Timer nicht immer wieder neu anfängt.
 

volker

Supermoderator
Teammitglied
Beiträge
5.469
Punkte Reaktionen
935
hallo

hab ich schon mal für s5 geschrieben.

schau mal auf meiner sps-downloadseite im ordner s5.
dort findest du se_bedst.zip. kannst du dir entweder in s7 umsetzen (oder den code als inspiration nutzen :wink: )

siehe link im footer
 

Markus

Administrator
Teammitglied
Beiträge
5.253
Punkte Reaktionen
1.291
Zuviel Werbung?
->Hier kostenlos registrieren
einfach das taktmerkerbyte der cpu parametrieren, daraus flanken machen und mit der entsprechenden flanke (s, ms, ..) einen integer zählen...
 
OP
O

Orion

Guest
Nein habe mir was anderes überlegt.


U M 1.0
L MW 4
SE T1

UN M 0.1
SPB M001
LC T1
T MW 2

M001: UN M 0.1
SPBN M002
L MW 2
 

churchill

Well-known member
Beiträge
193
Punkte Reaktionen
4
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo

Hier ein Bsp.

Code:
      L     0
      U     #Reset                      //Reset
      SPB   m2
      U     #Ausgang
      SPB   m1
      U     #T_Start                    //Ein
      U     #Takt_Imp                   //Taktimpuls (s)
      SPBN  m1
      L     #Ist_Zeit
      L     1
      +I    
m2:   T     #Ist_Zeit                   //Zeit-Istwert
      L     #T_Soll                     //Zeit-Sollwert
      TAK   
      ==I   
      =     #Ausgang                    //Sollwert erreicht
m1:   NOP   0
      L     32767
      L     #Ist_Zeit
      <=I   
      =     #Max_Wert                   //Max-Wert erreicht

mfG churchill
 

volker

Supermoderator
Teammitglied
Beiträge
5.469
Punkte Reaktionen
935
was du nicht berücksichtigst ist: wenn der start nicht mehr anliegt geht dir die bereits bis dahin abgelaufene zeit verloren. wenn du große zeitspannen hast, wird das wahrscheinlich unerheblich sein. wenn du jedoch kurze zeiteinheiten erfassen must, must du die bereits abgelaufene zwischenzeit speichern und den timer ab da weiterzählen lassen.

hier der von mir oben angesprochene baustein, in dem dies berücksichtigt wird. ist zwar für s5 aber schnell auf s7 angepasst.

Code:
 T    Typ: T     = zu verwendende Zeit
 GO   Typ: Bit   = Zeit laeuft wenn High
 TW   Typ: Wort  = Sollzeit in Sekunden
 R    Typ: Bit   = Zeit Ruecksetzen
 HI-W Typ: Wort  = Speicher fuer Zeit wenn GO = Low
 HIM  Typ: Bit   = Hilfsmerker fuer Zeit
 DE   Typ: Wort  = Restzeit in Sekunden
OUT   Typ: Bit   = Zeit abgelaufen

Netzwerk 1                   Setze Einschaltverz. Bedingt
Name :T!-!0-B
Bez  :T         E/A/D/B/T/Z: T
Bez  :GO        E/A/D/B/T/Z: E  BI/BY/W/D: BI
Bez  :TW        E/A/D/B/T/Z: D  KM/KH/KY/KC/KF/KT/KZ/KG: KF
Bez  :R         E/A/D/B/T/Z: E  BI/BY/W/D: BI
Bez  :HI-W      E/A/D/B/T/Z: E  BI/BY/W/D: W
Bez  :HIM       E/A/D/B/T/Z: E  BI/BY/W/D: BI
Bez  :DE        E/A/D/B/T/Z: A  BI/BY/W/D: W
Bez  :OUT       E/A/D/B/T/Z: A  BI/BY/W/D: BI

     :L   KY 5,11
     :L   KH 2000
     :L   KC BY
     :L   KC VL
     :***


Netzwerk 2                                                    FUP A
     :U   =OUT
     :SPB =M004
     :U   =GO
     :UN  =R
     :UN  =HIM
     :L   =HI-W                                1 sekunde / restzeit
     :SE  =T
M004 :
     :
     :U   =T
     :=   =HIM
     :
     :UN  =R
     :SPB =M001
     :LW  =TW
     :T   =DE
     :SPA =M002
M001 :
     :
     :U   =GO
     :SPB =M002
     :LC  =T
     :T   =HI-W
M002 :
     :
     :UN  =HIM
     :O   =OUT
     :SPB =M003
     :L   KH 0100                              1 sekunde;100 * 0,01
     :T   =HI-W
     :L   =DE
     :L   KF +1
     :-F
     :T   =DE
M003 :
     :
     :L   =DE
     :L   KF +0
     :<=F
     :=   =OUT
     :
     :BE
 
Oben