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

Ergebnis 1 bis 9 von 9

Thema: Kürzeste Zeit herausfinden

  1. #1
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen, habt ihr einen Tipp für mich wie ich einen Zeitabstand herausfinden kann? Ich habe ein Förderband mit 2 Näherungssensoren und da kommen Pakete vorbei. Jetzt weiss ich zwar dass ich die Tageszeit vom zweiten Näherungssensor in Sekunden umwandeln und dann minus die Tageszeit in Sekunden vom ersten Näherungssensor rechnen kann. Aber wie finde ich jetzt aus den ganzen Paketen genau den kürzesten Abstand raus??? Im Anhang ist ne kleine Grafik, aber ich denke mal dass sich das jeder vorstellen kann! Und in der Suchfunktion hab ich nix ordentliches gefunden! Danke! __________________________ CPU 314C-2DP STEP 7 V5.5
    Zitieren Zitieren Kürzeste Zeit herausfinden  

  2. #2
    Registriert seit
    15.03.2013
    Beiträge
    187
    Danke
    6
    Erhielt 35 Danke für 30 Beiträge

    Standard

    Vorschlag: definiere eine Variable <kürzester Abstand in Sekunden> und initialisiere diese Variable mit dem maximal möglichen Wert. Danach - jedesmal wenn du einen Abstand in Sekunden berechnet hast - vergleichst du den berechneten Wert mit dem Wert von <kürzester Abstand in Sekunden>. Falls der berechnete Wert kleiner ist wird das der neue <kürzester Abstand in Sekunden>.

  3. #3
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Genau so hab ich mir das auch gedacht, ich habe grade die Berechnung des Abstands geschrieben (auch mit Überlauf, falls ein Paket 2 Sekunden vor 24:00 Uhr am ersten Sensor vorbeikommt und 2 Sekunden nach 00:00 Uhr am zweiten Sensor).
    Ich speichere mein Ergebnis in "Paketabstand_in_s" als Gleitpunktzahl ab. Wie sieht der passende Code dazu aus dann, ich habe verstanden wie du es meinst, aber mir fehlen die ersten paar Zeilen Code als Ansatz. Hast du bitte welche für mich ?

  4. #4
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    anderer Vorschlag:
    Mit Näherungsschalter 1 einen Merker setzen und mit Näherungsschalter 2 wieder zurücksetzen.
    Wenn Merker gesetzt ist die letzten Zykluszeiten aufaddieren. (OB1_prev_cycle)
    Ergebnis: Zeit in ms
    Vergleichen mit der kürzesten Zeit usw.
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  5. #5
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich würde das gerne alles in einem FB abfertigen, ohne irgendwelche Aufrufe in anderen Bausteinen. Der Tipp von Mediator hat m ir sehr gut gefallen, ich bekomme ihn nur nicht umgesetzt, ich glaube mir fehlt wirklich nur ein kleines Stück Anfangscode!

  6. #6
    Registriert seit
    14.10.2010
    Ort
    Telgte
    Beiträge
    653
    Danke
    97
    Erhielt 129 Danke für 99 Beiträge

    Standard

    Hi,
    Code:
    L #Paketabstand_in_s
    L #Variable_Zeitvergleich
    <R
    SPBN gross
    L #Paketabstand_in_s
    T #Variable_Zeitvergleich
    gross: nop 0
    wenn ich das richtig verstanden habe dann müsstest du das so ungefähr in deinen FB einbinden.
    Eine Variable für den kleinsten Wert anlegen und deinen aktuellen Wert damit vergleichen bzw. ersetzen.
    Ein wenig ausschmücken mit Flanke damit der Code nur abgearbeitet wird wenn es einen neuen Wert gibt etc.

    Gruß, Toki
    Programmierumgebung: Step7 V5.5, WinCCflex2008-SP3, TIA-PortalV13, MicroWinV4.0

  7. Folgender Benutzer sagt Danke zu Toki0604 für den nützlichen Beitrag:

    Minico89 (03.09.2013)

  8. #7
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Dankeschön, genau sowas habe ich gebraucht, darauf kann ich jtzt schön noch andere Sachen aufbauen. Ich kam einfach nicht drauf, den ganzen Morgen darüber gegrübelt...

  9. #8
    Registriert seit
    14.10.2010
    Ort
    Telgte
    Beiträge
    653
    Danke
    97
    Erhielt 129 Danke für 99 Beiträge

    Standard

    Gerne,
    ich habe das in dem Beispiel zwar weggelassen,
    aber vergesse bitte nicht die wunderbare Funktion //*Kommentar hinter deinem AWL Code.
    Das erleichtert dir und ggf Anderen den Code später schneller nachzuvollziehen.

    Gruß, Toki
    Programmierumgebung: Step7 V5.5, WinCCflex2008-SP3, TIA-PortalV13, MicroWinV4.0

  10. Folgender Benutzer sagt Danke zu Toki0604 für den nützlichen Beitrag:

    Minico89 (06.09.2013)

  11. #9
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Okay, ich hatte alles fertig, dann wurde mir gesagt dass das wohl nicht funktioniert, weil die Anlage anders aufgebaut ist! (Gut dass es mir erst am Ende gesagt wurde ) Ich würde gerne die Zeit zwischen den Paketen nur mit einem Näherungssensor messen. Das würde ich auch gerne mit einem Zähler umsetzen, im Sinne von : 0) Blinkmerker (Blinktakt erstmal egal) startet wenn Anlage eingeschaltet wird 1) "Paket kommt" -> Zähler1 starten der bei jedem Blinken hochzählt 2) "nächstes Paket kommt" -> Zähler1 stoppen, Zahl aus dem Zähler laden, mit Faktor X multiplizieren um auf die Sekunden zu kommen -> Zähler2 starten und wieder Zählen bis das nächste Paket kommt 3) Zähler2 wieder stoppen, Zahl aus dem Zähler laden, multiplizieren mit Faktor X, Zähler 2 zurücksetzen und Zähler1 wieder starten Da ich allerdings noch nie mit Zählern und mit dem toggeln des Blinkmerkers gearbeitet habe, und egal wie viel ich lese nichts raffe, wollte ich doch mal fragen ob ihr einen kleinen Code als Ansatz für mich habt, ich komme einfach nicht drauf!
    Geändert von Minico89 (06.09.2013 um 10:12 Uhr)

Ähnliche Themen

  1. CANOpenNode: Zustand herausfinden?
    Von fdisk im Forum CODESYS und IEC61131
    Antworten: 10
    Letzter Beitrag: 01.02.2012, 07:53
  2. Belegung SSNR herausfinden
    Von GertL im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 24.10.2011, 21:19
  3. Bytenummer herausfinden von Bit?
    Von vollmi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.01.2011, 08:26
  4. DB Datentyp herausfinden
    Von The-Cook im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 04.06.2009, 15:20
  5. Adresse herausfinden
    Von Knoll im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.09.2006, 10:02

Lesezeichen

Berechtigungen

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