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

Ergebnis 1 bis 9 von 9

Thema: Suche auf meher Zyklen verteilen

  1. #1
    Registriert seit
    25.03.2012
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,


    ich hätte mal eine Frage, ich habe einen Funktion erstellt, der in einer Anlage Fächer durchsucht. In diesen Fächern sind Datensätze vorhanden, in einem Datensatz ist zB ein Gewicht hinterlegt. Von Aussen gebe ich verschieden max 40 Gewichte vor und die Anzahl der Fächer die ich durchsuchen möchte.
    Der Baustein gibt mir für die ausgewählten Gewicht die Anzahl zurück also zB Gewicht 5 KG kommt in 10 Fächern x- mal vor.


    Nun gibt es anwendungen in der viele Fächer durchsucht werden sollen, dies treibt die Zykluszeit in die Höhe. Der eigentlich Such-Algorithmus stammt aus einem Standard und darf nicht verändert werden, auch wenn hier sicherlich Optimierungspotential wäre.

    Nun war die Überlegung zB in einem Zyklus nicht alle Fächer durchsuchen zu lassen sondern zB nur 10. Nun frage ich mich wenn der nöchste Zyklus anfängt muss ich mir ja merken das ich die ersten 10 Fächer schon durchsucht habe und bei Nr 11 anfagen wie stelle ich das an ?

    Aufruf des Bausteins:
    OB1->FB Ablauf->FC Zaehler -> FC_Mein_Baustein

    Vielleicht kann mir jemand helfen

    Gruß SIDI
    Zitieren Zitieren Suche auf meher Zyklen verteilen  

  2. #2
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Genau so wie du es beschrieben hast...

    Du zählst die Suchzyklen hoch also n:=n+1
    Nach X zyklen brichst Du ab und MERKST Dir das aktuelle n

    Im nächsten Zyklus dasselbe und so weiter bis n = nmax und fertig.
    Das Grauen lauert in der Zwischenablage !!

  3. Folgender Benutzer sagt Danke zu dtsclipper für den nützlichen Beitrag:

    sidi (15.08.2013)

  4. #3
    Registriert seit
    26.04.2010
    Beiträge
    292
    Danke
    31
    Erhielt 51 Danke für 50 Beiträge

    Standard

    Hi!

    Da muss ich mich mal einklinken.

    Erhöht eine schleife in z.b scl denn tatsächlich die Zykluszeit?
    Irgendwo natürlich schon logisch wenn der Baustein nicht verlassen wird, aber verhindert so etwas die cpu nicht?

    Das muss ich fast mal ausprobieren.

    Danke,

    Gruß,

    Ottmar

  5. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    eine Schleife erhöht IMMER die Zykluszeit. Die Frage ist hier eher die Relevanz ...
    Wieviele Speicherstellen durchsuchst du denn mit welcher CPU in welcher (Zyklus-)Zeit ?
    Ich mache das eigentlich ziemlich häufig und auch bei großes Array's - klar die Zykluszeit steigt dann schon mal (je nach Aufwand der Auswertung) und 20 - 30 ms an - aber ist das problematisch ?

    Gruß
    Larry

  6. #5
    sidi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.03.2012
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, also Steuerung ist eine S7 417, grundsätzliches Problem das die generell schon relativ "vergewaltigt" wird, Zykluszeit ohne meine Baustein ~ 95 ms mit Baustein 103-110 ms.

    Ich habe es jetzt soweit das ich von aussen zusätzöich ab FC vorgebe wie viel Fächer pro Zyklus durchsucht werden soll.

    Beispiel: Ab Fach 1, 10 Fächer durchsuchen, pro zyklus 2 Fächer.

    Also sollen in 5 Zyklen die Fächer durchsucht werden, leider gibt die Steuerung nicht die richtige Anzahl zurück-

    Problem ist aber weiterhin das mir nicht klar ist wie ich im nächsten Zyklus nicht mehr mir den am FC von aussen bschalteten Sollvorgaben wie der in den FC gehe sondern mit den Werten aus dem vorigen Zyklus, für die Anzahl der noch zu durchsuchenden Fächer und dem neuen Start Fach.

    Mfg SIDI

  7. #6
    Registriert seit
    29.04.2012
    Beiträge
    195
    Danke
    13
    Erhielt 42 Danke für 37 Beiträge

    Standard

    Static deklarieren und nur mit einer positiven Flanke am Triggersignal wieder auf Null stellen?

    > Ist dein "Gefunden" Zähler temp?

  8. #7
    sidi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.03.2012
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mhh Triggersignal wäre eine idee nur wo bekomme ich das her ?
    Also der Gefunden Zaehler ist Im FC ein Temp

    Vielleicht für mein Verständis nochmal eine Frage zum Zyklus.
    Die SPS ruft den OB1 ja zyklisch auf. Hierraus ruft man ja typischer weise den weiteren Ablauf auf.
    Alle Berechnugen in den FBs FCs usw werden in diesen Zyklus ausgeführt oder ?

    Das bedeutet wenn der Zyklus beendet ist und ein neuer Beginnt rufe ich den jeweiligen Funktion oder Funktionsbaustein mit seinem Eingangsparametern wieder genau so auf ?
    Geändert von sidi (15.08.2013 um 20:35 Uhr)

  9. #8
    Registriert seit
    29.04.2012
    Beiträge
    195
    Danke
    13
    Erhielt 42 Danke für 37 Beiträge

    Standard

    Ja moment, du hast doch irgendeinen Anlass wann die Suche loslaufen soll?

    Deine Bausteine werden pro (OB1) Aufruf genau einmal durchlaufen, so wie sie sind.
    Wenn es dort eine Schleift von 0-100 gibt werden alle hundert in einem Zyklus gemacht.
    Static Variablen behalten dabei den Wert aus dem letzten Zyklus, temp Variablen nicht.
    Dort steht Quatsch, wenn du sie im aktuellen Zyklus nicht initialisiert hast.
    > Dein gefunden Zähler darf kein temp sein. (Das geht nur wenn du alle 100 Durchläufe im selben Zyklus machst)

    Gleiches gilt für den Schleifenzähler > auch static machen.
    Dann brauchst du noch ein Jump, das immer nach 2 oder x Durchläufen entweder aus der Schleife springt oder direkt ans Ende des Bausteins. (dann ginge auch BEA)
    Im nächsten Zyklus geht es dort weiter wo der letzte aufgehört hat - weil der Schleifenzähler static ist.
    Wenn die Schleife komplett durch ist:
    Gefunden = 0
    Schleifenzähhler = 0

  10. #9
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von sidi Beitrag anzeigen
    Hallo, also Steuerung ist eine S7 417, grundsätzliches Problem das die generell schon relativ "vergewaltigt" wird, Zykluszeit ohne meine Baustein ~ 95 ms mit Baustein 103-110 ms.

    Ich habe es jetzt soweit das ich von aussen zusätzöich ab FC vorgebe wie viel Fächer pro Zyklus durchsucht werden soll.

    Beispiel: Ab Fach 1, 10 Fächer durchsuchen, pro zyklus 2 Fächer.

    Also sollen in 5 Zyklen die Fächer durchsucht werden, leider gibt die Steuerung nicht die richtige Anzahl zurück-

    Problem ist aber weiterhin das mir nicht klar ist wie ich im nächsten Zyklus nicht mehr mir den am FC von aussen bschalteten Sollvorgaben wie der in den FC gehe sondern mit den Werten aus dem vorigen Zyklus, für die Anzahl der noch zu durchsuchenden Fächer und dem neuen Start Fach.

    Mfg SIDI

    .
    Ich würde einen FB nehmen, aber zeig doch
    einfach mal deinen Code, dann können wir
    schon mal gezielter helfen !
    kind regards
    SoftMachine

Ähnliche Themen

  1. Antworten: 31
    Letzter Beitrag: 22.02.2012, 13:50
  2. Antworten: 0
    Letzter Beitrag: 21.11.2008, 10:43
  3. Antworten: 18
    Letzter Beitrag: 17.10.2008, 20:30
  4. Mittelwert bilden (von zb 5 SPS-Zyklen)
    Von Matthias O. im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 05.01.2007, 14:21
  5. schreib/lese zyklen MMC
    Von Markus im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 13.04.2004, 14:50

Lesezeichen

Berechtigungen

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