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

Ergebnis 1 bis 4 von 4

Thema: Problem mit Programmierübung

  1. #1
    Registriert seit
    13.01.2005
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute!
    Ich hab ein Problem bei einer Programmierübung für eine S7.Es geht um folgendesrei verschiedene Flüssigkeiten sollen in einem Behälter gemischt werden.Die Flüssigkeiten laufen nacheinander über ein Ventil V1 in den Behälter.Nachdem die erste Flüssigkeit im Behälter ist,schließt V1,Ventil V2 öffnet und die Leitung wird mit einer Reinigungsflüssigkeit gespült.danach schließt V2,es wird eine Pause eingehalten von 3sec,dann öffnet V1 und die 2.Flüssigkeit läuft in den Behälter.Danch folgt wieder der Reinigungszyklus und der Pausenzyklus.Dann folgt die dritte Flüssigkeit.
    Ich hatte das ganze in einem FB programmiert und es funktionierte soweit ganz gut,bis die 2. Flüssigkeit in den Behälter laufen sollte,da öffnete das Ventil V1 dann nur noch bei der zweiten Flüssigkeit.
    Es können drei Verschiedene Mischungen eingestellt werden,die unterschiedlichen Mengen werden über die laufzeiten der Pumpen realisiert.
    Ich weiß auch gar nicht,ob mein Lösungsansatz (siehe unten) O.K. ist.

    Schritt 1:

    U Schritt 1
    L Zeit (Menge Flüssigkeit 1)
    SA Timer 0
    U Timer 0
    = Ventil 1
    = Pumpe Flüss. 1
    S Schritt 2
    ON SteuEinMerk
    O Schritt 3
    R Schritt

    Schritt 2:

    U Schritt 2
    UN Timer 0
    L Zeit (Menge Reinigungsflüssigkeit)
    SA Timer 4
    U Timer 4
    = Ventil 2
    = Pumpe Reinigungsflüssigkeit
    S Schritt 3
    ON SteuEinMerk
    O Schritt 4
    R Schritt 3

    Schritt 3:

    U Schritt 3
    UN Timer 4
    L Zeit (Pause)
    SA Timer 5
    U Timer 5
    S Schritt 4
    ON SteuEinMerker
    O Schritt 5
    R Schritt 4

    Schritt 4:

    U Schritt 4
    UN Timer 5
    L Zeit (Menge Flüssigkeit 2)
    SA Timer 1
    U Timer 1
    = Ventil 1
    = Pumpe Flüss. 2
    S Schritt 5
    ON SteuEinMerk
    O Schritt 6
    R Schritt 5

    Wer hat sowas oder ähnliches schon mal gemacht und kann mir einen Tip geben?

    Danke schon mal !

    Gruß
    Gerd
    Zitieren Zitieren Problem mit Programmierübung  

  2. #2
    Anonymous Gast

    Standard

    hi,
    ich habe mir für solche Zwecke einen kleinen Schrittkettenbaustein geschrieben. Unten poste ich die Quelle.
    Der Baustein hat einen Initialschritt(0) und drei "normale" Schritte(1-3)
    den kannst du leicht auf die Anzeil der benötigten Schritte erweitern.

    In KOP oder FUP lässt er sich leicht beschalten.

    Gruss
    Alex

    hier die Quelle:

    FUNCTION FC 50 : VOID
    TITLE =Schrittkeittensimulation mit 3 Schritten
    //Schrittkette mit 3 Schritten
    //Schrittumschaltung nach der erfüllten Transition ohne Pause
    //Einer der Schritte ist immer aktiv
    AUTHOR : AN
    VERSION : 1.0
    //know_how_protect

    VAR_INPUT
    ICmdGst : BOOL ; //Kommando: Grundstellungsfahrt(Schritt = 0)
    ITrans00 : BOOL ; //Transitionsbedinung im Schritt 0
    ITrans01 : BOOL ; //Transitionsbedinung im Schritt 1
    ITrans02 : BOOL ; //Transitionsbedinung im Schritt 2
    ITrans03 : BOOL ; //Transitionsbedinung im Schritt 3
    END_VAR
    VAR_OUTPUT
    OAS00 : BOOL ; //Aktiver Schritt 00
    OAS01 : BOOL ; //Aktiver Schritt 01
    OAS02 : BOOL ; //Aktiver Schritt 02
    OAS03 : BOOL ; //Aktiver Schritt 03
    END_VAR
    VAR_IN_OUT
    IOSNr : INT ; //Aktiver Schritt (Temp)
    END_VAR
    BEGIN
    NETWORK
    TITLE =Grundstellungsfahrt


    // ==[ Anforderung einer Grundstellungsfahrt ]==
    U #ICmdGst;
    SPBN A002;
    L 0;
    T #IOSNr;

    NETWORK
    TITLE =Schrittkettensimulation


    // ==[ Sprungveteiler ]==
    A002: L #IOSNr;
    SPL B002; // Bei >3
    SPA C002; // Bei 0
    SPA D002; // Bei 1
    SPA E002; // Bei 2
    SPA F002; // Bei 3

    // ==[ Fehler: SNR > 2 ]==
    B002: L 0; // Falsche SNR (>3)
    T #IOSNr;

    // ==[ SNR = 0 ]==
    C002: SET ;
    S #OAS00;
    R #OAS01;
    R #OAS02;
    R #OAS03;

    U #ITrans00; // bei erfüllter Transitionsbedienung
    SPBN END2;
    L 1; // Schritt 1 im nechsten Zyklus aktivieren
    T #IOSNr;
    SPA END2;

    // ==[ SNR = 1 ]==
    D002: SET ;
    R #OAS00;
    S #OAS01;
    R #OAS02;
    R #OAS03;

    U #ITrans01; // bei erfüllter Transitionsbedienung
    SPBN END2;
    L 2; // Schritt 2 im nechsten Zyklus aktivieren
    T #IOSNr;
    SPA END2;


    // ==[ SNR = 2 ]==
    E002: SET ;
    R #OAS00;
    R #OAS01;
    S #OAS02;
    R #OAS03;

    U #ITrans02; // bei erfüllter Transitionsbedienung
    SPBN END2;
    L 3; // Schritt 3 im nechsten Zyklus aktivieren
    T #IOSNr;
    SPA END2;


    // ==[ SNR = 3 ]==
    F002: SET ;
    R #OAS00;
    R #OAS01;
    R #OAS02;
    S #OAS03;

    U #ITrans03; // bei erfüllter Transitionsbedienung
    SPBN END2;
    L 0; // Schritt 0 im nechsten Zyklus aktivieren
    T #IOSNr;
    SPA END2;


    END2: SET ;
    SAVE ;

    END_FUNCTION

  3. #3
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    hallo,
    da ist ein fehler drin, du steuerst in schritt 1 und schritt 4 Ventil 1 somit wird immer nur die letzte anweisung für Ventil ausgeführt, da kann in schritt 1 das ventil ruhig angesteuert werden, wenn in schritt4 für ventil1 0 steht bleibt das ventil geschlossen.
    lösungsmöglichkeit: erst die schrittkette programmieren dann den ausgangsteil.
    das sieht dann so aus:
    o t0
    o t1
    = Ventil 1

    usw.
    mfg
    dietmar

  4. #4
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke !

    Ich werde das mal testen und korrigieren !

    Gruß
    Gerd

Ähnliche Themen

  1. OPC Problem routen problem
    Von kpeter im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 25.08.2010, 19:54
  2. Hilfe bei Programmierübung
    Von Michael im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 11.03.2009, 21:57

Lesezeichen

Berechtigungen

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