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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Datenbaustein durchsuchen

  1. #1
    Registriert seit
    08.05.2013
    Beiträge
    20
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Für eine OEE-Erfassungssoftware brauche ich aus der Steuerung ein Signal, welches so lange anliegt, wie die diese Anlage theoretisch bräuchte, um den Prozess auszuführen,
    mein Problem ist nun, dass diese Anlage knapp 800 verschiedene Rezepturen abarbeitet und für jede unterschiedlich lange braucht, die Zeiten wie lange habe ich und könnte sich auch in Blöcken zusammenfassen, d.h. Rezept a, b und c dauern 5 Minuten, d, e und f 10 usw. meine Idee war jetzt jede Rezepturnummer mit der gleichen Zeit in einen Datenbaustein abzulegen.
    Nur wie ich jetzt die aktuelle Rezeptnummer in den Datenbausteinen finde, um anhand der DB-Nr. die Zeit zuzuordnen, dafür habe ich noch keine Idee und hoffe, mir kann jemand helfen.
    Zitieren Zitieren Datenbaustein durchsuchen  

  2. #2
    Registriert seit
    21.10.2010
    Beiträge
    163
    Danke
    21
    Erhielt 30 Danke für 17 Beiträge

    Standard

    Ich würde in einem einzelnen DB für jedes Rezept eine eigene Zeitangabe machen und dann per Rezeptnummer einen Pointer generieren, der direkt zur passenden Adresse im DB zeigt und die Zeit dort auslesen.

  3. #3
    Arzgebirgsoz ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2013
    Beiträge
    20
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke sehr, hier genau liegt mein Problem, mit Pointern habe ich bisher nicht wirklich gearbeitet, den Zeiger auf die Rezeptnummer kriege ich noch hin, aber dann weiter...

  4. #4
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    Wird das Rezept per Tastendruck in einer Visu geändert?

  5. #5
    Arzgebirgsoz ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2013
    Beiträge
    20
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nein, die Rezeptnummer kommt aus einem übergeordneten System übertragen und auf einer Visu angezeigt, für den Start des Prozesses hätte ich eine Taste.

  6. #6
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    Und pro Rezept eine Zeit sind zu viele Variablen?Dann könntest du ja die Rezeptzeit -->aktuelleRezeptZeit kopieren mit der Taste.
    Und mit dem Tastendruck einen verlängerten Impuls starten mit dieser Zeit.Hmmm.

    Es gibt ja keine Verknüpfung zwischen der Rezeptnummer und der Zeit?So in der Art von Nummer x bis Nummer y ist gleich Zeit 1 , u.s.w

  7. #7
    Registriert seit
    10.10.2008
    Beiträge
    43
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi!

    Wie groß/lang ist denn die "Rezeptnummer"? Welcher Steuerungstyp wird verwendet?

    Wenn die Rezeptnummer in einen 32bit DWord/Int passt und die Zeiten ebenfalls als TIME (also 32bit) abgespeichert wären, wären das bei 800 "Rezepten" 6400 Byte.

    Ich würde ein Array in einem DB anlegen in dem pro Element diese beiden Informationen gespeichert sind. Die Erstellung dieses "konstanten" Arrays kann man schön mit Excel und einer AWL-Quelle machen. Um eine schnelle Suche zu bekommen, könnte das Array bspw. aufsteigend nach der Rezeptnummer sortiert sein. Mit einer binären Suche verkürzt sich die Suchzeit (nach der Rezeptnummer) damit schonmal (Komplexität O(log(n)) anstelle von O(n)).

    Gruß
    Max

  8. #8
    Arzgebirgsoz ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2013
    Beiträge
    20
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    danke erst mal für Deine Antwort,
    Naja, zu viele ist relativ, ich habe halt bisher noch wenig Erfahrung mit der Pointerprogrammierung und habe gerade keinen Plan, wie ich vom Finden der Rezeptnummer zur
    zugehörigen Zeit komme.
    Und nein, die zugehörigen Zeiten sind vollkommen unterschiedlich.

  9. #9
    Arzgebirgsoz ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2013
    Beiträge
    20
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    Die Rezeptnummer hat 7 bis 8 Stellen und liegt als DInt vor, die zeit wäre als S5Time, zwar hübscher, Time wurde aber auch gehen, wozu gibt es IEC- Timer.
    mein Problem ist die Pointergeschichte, wie ich von der Nummer auf die Zeit komme.

  10. #10
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wüsste ich jetzt auch nicht.Kannst du die Zeit pro Datensatz nachtragen ohne die Adressen zu verschieben?Dann kannst du ja die rezeptvariable umkopieren auf die aktuell Zeit mit der Taste.Irgenwann kommt die TastenFlanke an und du machst einen verlängerten Impuls.

    Man muss schauen ob die aktuelleZeit dann aus dem Rezept schon übernommen wurde.

    Ich weiss jetzt nur nicht ob während der Impuls läuft das Rezept geändert werden kann.Dann müsste man rücksetzten.
    Das ginge dann nur über AltRezeptname und NeuRezeptname(Altwert/Neuwertvergleich) der sich geändert hat während der Impuls läuft.

Ähnliche Themen

  1. Step 7 Datenbaustein mit Pointer durchsuchen
    Von Günni1977 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 31.07.2014, 17:11
  2. DB schnell durchsuchen
    Von Gerri im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 18.10.2009, 11:18
  3. DB durchsuchen, FB vereinfachen
    Von martinmd2 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 11.02.2009, 13:34
  4. Antworten: 4
    Letzter Beitrag: 23.08.2006, 15:02
  5. DB durchsuchen
    Von puehri im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 05.12.2005, 14:46

Stichworte

Lesezeichen

Berechtigungen

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