Step 7 Zeitmessung - Fehler in meinem Code???

Minico89

Level-1
Beiträge
66
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
ich hätte da gerne mal ein Problem ;)

Ich habe zur Zeitmessung an einem Näherungssensor einen Code geschrieben der mit der negativen Flanke ein Zeitfenster öffnet, mit einem Taktmerker 100 ms hochzählt, die Daten übergibt und dann mit der positiven Flanke das Zeitfenster wieder schließt. Allerdings kann ich es anscheinend nicht richtig simulieren, oder es funktioniert nicht.

Würdet ihr mal bitte einen Blick auf den Code werfen und gucken ob ihr einen Fehler findet ?
Die Flanken hole ich mir am Näherungssensor "Takt": Positive Flanke ist #Takt , Negative Flanke ist #Takt_negativ. Taktmerkerflanke ist Byte 0 Bit 0 -> 100ms -> #FP_100Millisekunden

Code:
      U     #Takt_negativ
      S     #Fenster


      U     #Fenster
      U     #FP_100Millisekunden
      SPBN  M120
      L     #Zeitpuffer_Temp
      L     1
      +I    
      T     #Zeitpuffer_Temp
M120: NOP   0


      U     #Takt
      SPBN  M121
      L     #Zeitpuffer_Temp
      ITD   
      DTR   
      T     #Zeitpuffer

      L     0
      T     #Zeitpuffer_Temp
M121: NOP   0


      U     #Takt
      R     #Fenster


      L     #Zeitpuffer
      L     1.000000e+001
      *R    
      T     #Zeitpuffer


      U(    
      L     #Zeitpuffer
      L     #Kuerzester_Abstand
      <R    
      )     
      SPBN  M122
      L     #Zeitpuffer
      T     #Kuerzester_Abstand
M122: NOP   0


      L     3.600000e+003
      L     #Kuerzester_Abstand
      /R    
      RND   
      T     #Sollwert_pro_Stunde


      L     #Sollwert_pro_Stunde
      ITD   
      DTR   
      L     #Arbeitszeit_in_Stunden
      *R    
      RND   
      T     #Sollwert_am_Tag

Danke!
 
Hallo Minico,

was sind das für Variablen (#Zeitpuffer_Temp, etc.)?
Sind es Merker, Statische Var in einem FB oder Temp-Variablen?

Was genau funktioniert nicht?
Der Code sieht auf den ersten Blick ok aus. Aber die Multiplikation von #Zeitpuffer würde ich vor M121 machen.
Sonst wird sie jeden Zyklus ausgeführt.

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Gebs,
es sind alles Statische Variablen in einem FB.
Das mit dem #Zeitpuffer gucke ich mir gleich mal genauer an, bügele sowieso grade alle Fehler in meinem kompletten Baustein aus. Dank diesem Forum hier habe ich schon verdammt viel gelernt, aber ab und zu fehlt mir einfach ein bisschen die Erfahrung ;)
 
So, jetzt geht alles, bis auf den kürzesten Abstand... Aber warum???


Code:
      U     #Takt_negativ
      S     #Fenster


      U     #Fenster
      U     #FP_100Millisekunden
      SPBN  M120
      L     #Zeitpuffer_Temp
      L     1
      +I    
      T     #Zeitpuffer_Temp
M120: NOP   0


      U     #Takt
      SPBN  M121
      L     #Zeitpuffer_Temp
      ITD   
      DTR   
      T     #Zeitpuffer

//     L     #Zeitpuffer_Temp
//      T     MW   100

      L     0
      T     #Zeitpuffer_Temp
M121: NOP   0


      U     #Takt
      R     #Fenster


      L     #Zeitpuffer
      L     1.000000e+001
      *R    
      T     #Zeitpuffer_fertig






      L     1.000000e+003
      T     #Kuerzester_Abstand









      U(    
      L     #Zeitpuffer_fertig
      L     #Kuerzester_Abstand
      <=R   
      )     
      SPBN  M122
      L     #Zeitpuffer_fertig
      T     #Kuerzester_Abstand
M122: NOP   0

      L     3.600000e+003
      L     #Kuerzester_Abstand
      /R    
      RND   
      T     #Sollwert_pro_Stunde


      L     #Sollwert_pro_Stunde
      ITD   
      DTR   
      L     #Arbeitszeit in_Stunden
      *R    
      RND   
      T     #Sollwert_am_Tag
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Minico89,

Code:
 L     1.000000e+003
 T     #Kuerzester_Abstand
Warum hast du diese Zeilen hinzugefügt? Zum Testen?
Hiermit überschreibst du doch jeden Zyklus wieder den Wert den du hier
Code:
      SPBN  M122
      L     #Zeitpuffer_fertig
      T     #Kuerzester_Abstand
M122: NOP   0
reingeschrieben hast.

Gruß, Toki
 
Zurück
Oben