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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Datenbaustein durchsuchen

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oder noch einfacher wäre natürlich wenn sie dir den Rezeptindex 1-800 pro Rezept geben im Leitsystem.
    Dann könntest du direkt über den Index(array) auf die Zeit zugreifen.

  2. #12
    Registriert seit
    01.10.2012
    Beiträge
    203
    Danke
    12
    Erhielt 56 Danke für 36 Beiträge

    Standard

    Wäre es nicht sinnvoller die Zeiten ins Leitsystem bzw. in die OEE Software zu übernehmen und von da je nach Rezept ausspucken zu lassen?
    Ich verstehe das ja so das du anhand des Rezeptes eine Zeit ermitteln willst und dann einen Ausgang nach dieser Zeit setzen willst damit das OEE System diese Zeit erfaßt und dann auswertet? Da rennste ja mit der Kirche ums Dorf. Naja, muß jeder selber wissen.
    Kannste evtl. die Zeit anhand der Rezeptnummer ausrechnen? Die Anlage muß ja das Rezept irgendwie umsetzen und je nachdem wie das zerlegt wird, könnte man sich da evtl. eine Funktion schreiben die die Zeit kalkuliert. Das wäre dann auch gleich flexibel und man muß das nicht für jedes neue Rezept anfassen. Für so etwas 800 DINT mit einer Zeit zu hinterlegen und das dann duchrwühlen zu müssen geht auf die Zykluszeit und verbraucht haufen Speicher für nix und wieder nix.
    Nüchtern betrachtet war es besoffen besser.

  3. #13
    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

    Sinnvoller ja, mit der Übernahme ins Leitsystem tut sich der Anbieter davon aber schwer und bei der OEE-Software geht jede Abweichung vom Standard gar nicht, leider,
    und da es sich bei dem Prozess um einen mit mehreren teilweise von Hand ausgeführten Prozessen handelt, die so vielen Einflüssen unterliegen soll ja die theoretische Zeit angesetzt werden und wenn nach der der Prozess nicht beendet ist sollen die Ursachen dafür abgefragt werden. Aber stimmt schon, das ganze frisst jede Menge Speicher und vielleicht werde ich mir ja doch mit dem einen Programmierer des Leitsystems auf dem kleinen Dienstweg einig.
    danke für Deine Hinweise.

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

    Standard

    Hi,

    so wie sich das liest programmierst du in AWL? Eine Programmierung rund um Arrays in SCL ist nämlich sehr einfach und du brauchst absolut nicht mit Pointern (egal welcher Art) zu hantieren.

    Mein Beispiel mit dem TIME-Typ war nur ein Beispiel. Eine S5TIME (16bit) ist natürlich auch verwendbar.

    Gruß
    Max

  5. #15
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Standard

    Naja, jede Menge Speicher?
    Ein DB mit 800 Ints oder Time-Vars und 3 Zeilen SCL-Code?

    So wie ich deine Lage im Moment einschätze wird ohnehin irgendwer Rezeptbezogen eine "Sollzeit" vorgeben müssen, egal wo.

    Also DB, Symbol MyDB:
    Daten : ARRAY[0..1000] OF Time ;

    SCL-Schnittstelle:
    IN: Rezeptnummer : INT
    OUT: Sollzeit : TIME
    OUT: Error : BOOL

    Error := Rezeptnummer < 0 OR Rezeptnummer > 1000 ;

    IF NOT Error THEN
    Sollzeit := MyDB.Daten[Rezeptnummer] ;
    ELSE
    Sollzeit := T#10d ; // oder irgend ein anderer Default-Wert.
    END_IF;

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  6. #16
    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

    Richtig, SCL habe ich bisher nur gehört, daß es das gibt, aber jetzt ist es wohl an der Zeit, sich damit mal auseinanderzusetzen.
    ich danke für Eure Tipps!!!

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Achtung @ Manuel:

    Deine Lösung funktioniert nur dann, wenn die Rezeptnummern durchnummeriert sind von 0-1000. Besser wäre die folgende Struktur:
    Code:
    Daten: ARRAY[0..1000] OF STRUCT
        Nummer: DInt;
        Zeit: TIME;
    END_STRUCT;
    Der Code (Lineare Suche) würde in SCL dann so aussehen (basierend auf Manuels SCL-Schnittstelle):

    Code:
    BEGIN
         FOR tmpI := 0 to 1000 DO
            IF (MyDB.Daten[tmpI].Nummer = Rezeptnummer) THEN
                Sollzeit := MyDB.Daten[Rezeptnummer].Zeit;
                RETURN;
            END_IF;
         END_FOR;
    
        Sollzeit := T#10d;
    END_FUNCTION;
    Gruß
    Max

Ä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
  •