Step 7 einfache Zeitmessung für Sensorumschaltung

nadine317

Level-1
Beiträge
4
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich bin ein absoluter Neuling in Step 7 und komme einfach nicht weiter! Meine Aufgabe: die Zeit auslesen, die ein Sensor zum umschalten von einem Modus in den anderen benötigt. Ich habe dazu schon alle Beiträge hier gelesen, aber weil ich bis jetzt so wenig mit Step 7 gearbeitet hab, hilft mir das nicht wirklich! Ich brauche eine konkrete Anweisung wie ich es in AWL oder FUP realisieren kann! Ich hoffe, es findet sich ein geduldiger Helfer! ;)

Grüße, Nadine
 
Das könnte man über den SFC 64 "TIME_TCK" realisieren.

Systemzeit beim Start der Modus Umschaltung bis zum Erreichen des anderen Modus auslesen und dann berechnen.

Laufzeit [ms] = TIME_TCK_ENDE – TIME_TCK_START

So als kleiner Anhaltspunkt

Code:
      U     M   3200.0                  //Status Modi 1
      FN    M   3200.1                  //FN bei Verlassen Modi 1
      SPBN  W01

      CALL  "TIME_TCK"                  //SFC 64 "TIME_TCK" (Systemzeit auslesen)
       RET_VAL:=MD3210                  //Wenn SFC 64 bearbeitet wird, Zeit im MD3210                                                

W01:  NOP   0
      U     M   3201.0                  //Status Modi 1 (erreichen)
      FP    M   3201.1                  //FP erreichen Modi 2
      SPBN  W02

      CALL  "TIME_TCK"                  //SFC 64 "TIME_TCK" (Systemzeit auslesen)
       RET_VAL:=MD3220                  //Wenn SFC 64 bearbeitet wird, Zeit im MD3220

W02:  NOP   0

      L     MD  3220
      L     MD  3210                    //MD10 = Akku1 / MD20 = Akku 2
      -D                                //Subtrahiere AKKU 1 von AKKU 2
      T     MD  3230
 
Keine Ahnung was das für ein Sensor ist. Wenn das Signal nur 5 ms anliegt, könnte es Probleme mit der sicheren Erfassung geben.
 
Nadine,
woran erkennt man, dass der Sensor den Mode umgeschaltet hat?

Vielleicht solltest Du die Aufgabenstellung präzisieren, weil ich kann mir das alles nicht so recht vorstellen.
Du hast einen Sensor, der irgendwas mit 200Hz macht. OK! Und nun sollst Du feststellen ob er das wirklich mit 200Hz macht?
Ist das vielleicht ein Impulsgeber? Willst Du Drehzahl messen?

Gruß
Karl
 
Es handelt sich um einen Drucksensor, der zwischen einem Modus zum auslesen eines konkreten Wertes bzw einem Modus zum auslesen einer Druckschwelle hin und her schalten kann. Dabei soll ich nun auslesen, wie lange das Umschalten von einem in den anderen Modus nun dauert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
woran erkennt man, dass der Sensor den Mode umgeschaltet hat?

This!

Ohne das man weiss woran du die Umschaltung erkennst ist alles andere fischen im trüben. Denn es gibt gravierende Unterschiede ob man einen Analogwert auswerten muss oder einen Digitalen Eingang.

Was für eine CPU?
Was für Karten (mit Prozessalarm?)?
Was für eine Zykluszeit ist derzeit möglich?

mfG René
 
Wie gibt denn der Sensor Rückmeldung welcher Modus aktiv ist (Digitale Eingänge, Bus....?)
Du sollst also messen wie lange keiner der beiden Modi aktiv ist?

5ms ist eine realistische Zykluszeit für ein halbwegs umfangreiches Programm.
Kürzere Zustände als ein OB1 Zyklus, zu messen geht nicht so "mir nix dir nix", da brauchst Du schnelle
Zähleingänge, Alarmeingänge......

Irgendwie eine seltsame Aufgabenstellung, zumindest für einen Neueinsteiger
 
Es handelt sich um einen Drucksensor, der zwischen einem Modus zum auslesen eines konkreten Wertes bzw einem Modus zum auslesen einer Druckschwelle hin und her schalten kann. Dabei soll ich nun auslesen, wie lange das Umschalten von einem in den anderen Modus nun dauert.
Habe ich schon verstanden, aber welches Signal bekommst Du, woran Du erkennen willst, dass die Umschaltung stattgefunden hat.
Verlink doch mal den Sensor, oder lade ein Datenblatt hoch.
Wozu soll denn diese Zeitmessung überhaupt gut sein....
..ein bissl mehr als ein paar kryptische Angaben werden notwendig sein.
 
es geht um den Drucksensor BSP00CK von Balluff und da die Umschaltzeit zwischen SIO-Mode zu IOL-Mode und umgekehrt. Es gibt dazu schon ein bestehendes SPS Programm, welches die Umschaltung an sich realisiert. Die Start- bzw. Stoppwerte sind mir auch klar. Aber einfach nicht, wie ich das mit den zur Verfügung stehenden Zeitfunktionen realisieren kann. :/
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also nochmal.
Es gibt ein SPS Programm das die Umschaltung zwischen Modus 1 und Modus 2 macht.
Du willst wissen wie lange der Sensor zum Umschalten braucht, d. h. wie lange er einem "undefinierten" Zustand ist.

Ist das richtig???
Wenn JA,
wie sagt der Sensor zur SPS, dass der Umschaltvorgang momentan aktiv ist?
Digitaleingang? Bit über Profibus? sonstwie?

Wenn NEIN, dann erkläre bitte noch mal genau was das eigentlich werden soll.

EDIT:
Oder willst Du nur wissen wie lang der Sensor im Modus 1 arbeitet, bevor er vom Programm in den Modus 2geschaltet wird?
 
Zuletzt bearbeitet:
man könnte auch das Beispiel welches ich schon gepostet habe einmal anschauen und als Grundlage oder Gedankenstütze nehmen ;)!
Da wird die Systemzeit ausgewertet, andernfalls könnte man es auch über Laufzeit eines Teimers machen ...
 
man könnte auch das Beispiel welches ich schon gepostet habe einmal anschauen und als Grundlage oder Gedankenstütze nehmen ;)!
Da wird die Systemzeit ausgewertet, andernfalls könnte man es auch über Laufzeit eines Teimers machen ...
Im OB1 gibt es die TEMP Variable #OB1_Previous_Cycle, da steht immer die aktuelle Zykluszeit des letzten OB1 Zyklus drin.
Die könnte man auch (relativ simpel) aufaddieren,
man müsste halt nur wissen wann das Anfangen soll und wann Schluss ist.;)
 
Im OB1 gibt es die TEMP Variable #OB1_Previous_Cycle, da steht immer die aktuelle Zykluszeit des letzten OB1 Zyklus drin.
Die könnte man auch (relativ simpel) aufaddieren,
man müsste halt nur wissen wann das Anfangen soll und wann Schluss ist.;)

Gibt bekanntlich 1000 und 1 Weg nach Rom :wink:

Aber ich denke langsam bei dem Thread hier geht es nur darum das man eine Fertige Lösung für genau diese Anforderung liefern soll ;).
Genau da bin ich dann nun auch raus, da ja nun schon einige Lösungsansätze angeführt wurden (hier gabs auch mal etwa ein Threas Laufzeit von Pumpen messen) und darauf nicht reagiert wird.
Wenn es ein bisheriges Programm gibt, bei dem die Umschaltgung via IO-Link schon existent ist, muss man ja nur den Umschaltbefehl und die Rückmeldung Modus umgeschlatet auswerten und fertig.
Manchmal geht es halt nicht mit einfachen Zeitfunktionen (SE / SA) und man muss sich halt Gedanken über entsprechende Anwendung deren/anderer Funktionen machen (zB IEC-Timer und aktuelle Laufzeit auslesen)

Der/die TE kann sich ja auch mal einige Gedanken zur Programmierung machen und ggf. dann dazu mit seinem Codevorschlag neue Fragen stellen (daher mal die Anregung dies mit dem SFC64 zu versuchen)!
 
Zuletzt bearbeitet:
Zurück
Oben