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

Ergebnis 1 bis 2 von 2

Thema: SCL: Produktionsdaten in Array speichern

  1. #1
    Registriert seit
    20.05.2010
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich hätte da mal ein Problem, bei dem ich Eure Hilfe bräuchte.
    Ich bin gerade dabei, mich mit SCL auseinander zu setzen und möchte folgende Aufgabe realisieren:
    Ich habe ein Modell einer Produktionsanlage, bei der 3 verschiedene Rohmaterialien in einen Behälter dosiert werden. Die dosierten Mengen werden über Impulszähler erfasst. Dies geschieht in einem FB, der eine Schrittkette enthält. Ich möchte nun die Verbrauchsmengen der Rohmaterialien in einem Array speichern. Dazu möchte ich an einem bestimmten Punkt der Schrittkette einen Merker setzen, der mir dann in meiner SCL-Funktion die Chargennummer um den Wert 1 erhöht. Ist die Dosierung abgeschlossen, wird ein weiterer Merker gesetzt und die Zählerstände werden ausgelesen und die Mengen berechnet.
    Dies funktioniert soweit, außer das meine Chargennummer sich ständig erhöht, solange der entsprechende Schritt aktiv ist. Ich habe das folgendermaßen umgesetzt:

    VAR

    Verbrauch : ARRAY[1..10,1..4]OF INT;
    Batch : INT; //Chargennummerierung

    END_VAR
    VAR_INPUT

    Start_Dosierung : BOOL; //aus Schrittkette
    END_VAR

    IF Start_Dosierung = True THEN //Bei Chargenstart wird die Chargennummer, beginnend mit '1', festgelegt
    IF Batch>=10 THEN
    Batch:=1;
    ELSE Batch:=Batch+1; //und um den Wert '1' erhöht.
    END_IF;
    END_IF;

    Kann mir jemand sagen, warum sich der Wert zyklisch erhöht und nicht einmalig ? Wie kann man so etwas anders umsetzen ? Flankenauswertung ?

    Danke schon mal für Eure Hilfe !
    Zitieren Zitieren SCL: Produktionsdaten in Array speichern  

  2. #2
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von teo84 Beitrag anzeigen
    Kann mir jemand sagen, warum sich der Wert zyklisch erhöht und nicht einmalig ? Wie kann man so etwas anders umsetzen ? Flankenauswertung ?
    Genau, der Merker darf nur ein Zyklus High sein.
    Am einfachsten wäre es wenn Du den Merker nach dem zählen zurücksetzen könntest.
    Dafür den IN in IN/OUT verlegen und :
    Code:
    VAR
     
    Verbrauch : ARRAY[1..10,1..4]OF INT;
    Batch : INT; //Chargennummerierung 
     
    END_VAR
    VAR_IN_OUT
     
    Start_Dosierung : BOOL; //aus Schrittkette
    END_VAR
     
    IF Start_Dosierung = True THEN //Bei Chargenstart wird die Chargennummer, beginnend mit '1', festgelegt
    IF Batch>=10 THEN 
    Batch:=1; 
    ELSE Batch:=Batch+1; //und um den Wert '1' erhöht. 
    Start_Dosierung := False;
    END_IF;
    END_IF;
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Array bei Datenwechsel speichern in Ringpuffer
    Von Wiedenn? im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 21.03.2010, 04:55
  3. Werte eines Array dauerhaft speichern!!
    Von SliderZ im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 23.02.2007, 12:49
  4. Schieberegister mit Produktionsdaten
    Von Waelder im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 19.01.2007, 13:03
  5. Produktionsdaten... Welche Hardware?
    Von Krumnix im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 06.02.2006, 16:12

Lesezeichen

Berechtigungen

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