Step 7 Schneller takt bei SPS

azubiMTK

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

ich habe das Problem, dass ich bei einem Projekt eine kurze Zeit zwischen 2 Sensoren
messen muss um eine Geschwindigkeit zu messen und die max. 10Hz der Taktmerker
nicht ausreichen diese zu messen.
Da das Projekt noch in Planung ist steht noch nicht fest welche SPS verwendet wird.

Nun wollte ich fragen ob es allgemein möglich ist eine höhere Frequenz in der SPS zu erzeugen
 
Und wenn Du hergehst und mit Sensor eins die Systemzeit ausliest und wegspeicherst, mit Sensor zwei noch mal ausliest und die werte voneinander abziehst?

Dann kommst Du in den Millisekungenbereich.

Griele Füße dtsclipper
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann müssen aber beide Sensoren an einen Interrupt Eingang angeschlossen werden. Sonst hast du die Bearbeitungszeit des OB1 oder wo du diese dann abfragst im schlechtesten-Fall 2 mal dabei.

Wie genau sollte dass denn werden?
Welche Sensoren hast du?
Welches Objekt soll denn detektiert werden?
Wie bewegt sich dieses? Förderband?
 
Ich soll einen Flipperautomaten bauen bei dem ich die Einschussgeschwindigkeit messen will.
Die Senosoren sind 2 induktive Näherungssensoren die die Kugel erkennen sollen
 
Habs jetzt so gelöst, dass ich mir selbst einen Taktgeber mit 50hz gebaut habe

Takt100hz.jpg
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja dass wird sowieso nichts genaues, da:
1) Der Einschusswinkel unbekannt ist (oder misst du diesen auch?)
2) Die Sensoren sicher zu eng beieinander liegen um die Geschwindigkeit genau auswerten zu können.
 
Habs jetzt so gelöst, dass ich mir selbst einen Taktgeber mit 100hz gebaut habe

Anhang anzeigen 21042

Wie weit sind die Sensoren auseinander?
Hast du dir (mit 10ms) schon den max Fehler berechnet?
Wo rufst du diesen Baustein auf (in welchem OB)?
Wenn du dies nur mit einem 10ms Takt machen willst dann nimm am besten den OB35 und rufe diesen mit 10ms auf und frage dort zyklisch die Sensoren ab.
 
Hallo,

hier ein anderer Ansatz mit einen TON Zeitglied.
Es hat eine Auflösung von 1ms.
Wichtig für die Messung ist eine niedrige Zykluszeit oder Alarmeingänge in der SPS.

Code:
FUNCTION_BLOCK "P_Zeitzähler 1 x"
TITLE =Messung 1 x Zeit
AUTHOR : HF
VERSION : 0.1


VAR_INPUT
  Start : BOOL ;	//Startimpuls 
  Stop : BOOL ;	//Stopimpuls 
END_VAR
VAR_OUTPUT
  Messzeit : TIME ;	//Messzeit 
END_VAR
VAR
  Ton_1 : "TON";	
  Messung_aktiv : BOOL ;	//Messung läuft
  Flanke_1 : BOOL ;	//Flankenmerker
  Flanke_2 : BOOL ;	//Flankenmerker
END_VAR
VAR_TEMP
  Z_Merker : BOOL ;	
END_VAR
BEGIN
NETWORK
TITLE =Messung aktiv



      U     #Start; 
      FP    #Flanke_1; 
      S     #Messung_aktiv; 
      U     #Stop; 
      FP    #Flanke_2; 
      =     #Z_Merker; 
      U     #Z_Merker; 
      R     #Messung_aktiv; 
      NOP   0; 
NETWORK
TITLE =Ende Messung

      U     #Z_Merker; //Bei Stop  
      SPBN  noEn; 

      L     #Ton_1.ET; //Messzeit speichern
      T     #Messzeit; 
noEn: NOP   0; 
NETWORK
TITLE =Zeitglied


      CALL #Ton_1 (
           IN                       := #Messung_aktiv,
           PT                       := T#1S);

END_FUNCTION_BLOCK
mfg Harald
 
Hallo Krumnix,

bei mir läuft die Messung auf einer 317PN/DP mit 1ms. Ich werde es morgen mal auf einer 315 probieren. Ich habe es gerade mit einer 315PN/DP getestet und Auflösung ist auch 1ms. Kleinere CPU habe ich gerade nicht.
Ansonsten SFC64 nehmen und Zeitdifferenz bilden.

mfg Harald
 
Zuletzt bearbeitet:
Da wird mit einer SPS (S7-300) so und so nichts sinnvolles dabei raus kommen.

Nehmen wir an die Kugel hat eine max Geschwindigkeit von 10 m/s (wobei ich glaube die kann noch schneller werden als 36km/h).
Dann legt die Kugel 10mm/ms zurück.
Nächste Annahme: Beide Sensoren sind exakt parallel ausgerichtet und sind 50mm auseinander.
Die Sensoren sind idealisiert (bei beiden tritt exakt immer die selbe Zeitliche Verzögerung auf).
Die Digitalen Eingangskarten sind ebenfalls wie die Sensoren idealisiert.
Die Sensoren sind an Interrupt Eingänge der SPS angeschlossen der einen OB aufruft.
Nehmen wir an die Prozessalarmreaktionszeit ist bei beiden gleich lang.
Dann bleibt nur noch die zeitliche Auflösung von 1ms

Daraus ergibt sich dass die Kugel im schlechtesten Fall 1ms zu viel gemessen wird also die Kugel legt dann anstelle von 50mm real 60mm zurück.
Dies Ergibt einen Fehler von 20% bei idealen Voraussetzungen der Hardware!
Bei einen Sensorabstand von 100mm hast du trotzdem noch 10% Fehler.
Da ist noch nicht mal mitberechnet dass die Kugel nicht immer genau Orthogonal auf die Sensoren auf trifft.

Ich weiß nicht wie genau du das ganze haben willst. Aber mit einer SPS ist so etwas einfach nicht genau umsetzbar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Die Berechnung von godi sind richtig. Wenn wir also genauer Messen wollen gibt es noch die Möglichkeit der FM350.
Es gibt dort die Betriebsart "Periodendauermessung". Die Periode kann man auf zwei Werte einstellen (1us oder 1/16us). Dabei steigt die Genauigkeit um Faktor 1000 bzw. 16000.
Zum Starten und Stoppen benutz man das Flankengesteuertes Hardware-Tor der Baugruppe. Vielleicht ist auch eine Lichtschranke (5 kHz Type) besser zum Starten und Stoppen.

mfg Harald
 
Zurück
Oben