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

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

Thema: Variable togglen

  1. #11
    AlphaRind ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.10.2015
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo und danke für die Antwort!

    Ich habe den Stromstoßschalter implementiert, aber wie bekomme ich ihn im Hauptprogramm angesprochen? Wenn es als Funktionsplan geschrieben wäre, würde ich einfach ein weiteres Netzwerk erstellen, aber leider ist es in Ablaufsprache geschrieben....

    EDIT: Update: Habe den Stromstoßschalter in ein eigenes Programm gepackt und steuere die Variable im Hauptprogramm direkt an... das ganze ist zwar fehlerfrei, der Schalter hat jedoch seine Umschaltfunktion verloren?
    Geändert von AlphaRind (28.10.2015 um 16:03 Uhr)

  2. #12
    Registriert seit
    07.06.2007
    Beiträge
    143
    Danke
    2
    Erhielt 24 Danke für 24 Beiträge

    Standard

    Wenn du das Ganze in AS machen willst musst du nur die paar Zustände abfragen des Tasters aus dem ein Schalter werden soll:

    Schritt 1:
    Abfrage: Taste nicht gedrückt
    Aktion: keine

    Weiter zu Schritt 2
    Abfrage: Taste gedrückt
    Aktion: Bool Variable auf TRUE setzen

    Weiter zu Schritt 3
    Abfrage: Taste nicht gedrückt
    Aktion: keine

    Weiter zu Schritt 4
    Abfrage: Taste gedrückt
    Aktion: Bool Variable auf False setzen

    Weiter zu Schritt 1


    Würde natürlich niemand so machen aber wenn das unbedingt in AS geschrieben werden soll ist das eine praktikable Lösung. Zu beachten wäre natürlich, dass das Tastersignal auf keinen fall prellt, sonst schaltet diese Schrittkette unter Umständen die Variable ein und gleich wieder aus (über mehrere Zyklen). Zum Entprellen von Signalen verwendet man üblicherweise ein TON (Einschaltverzögerungsbaustein).


    In Structured Text würde ich das so lösen:

    Code:
    VAR
    xTaster : BOOL;
    xOldTaster: BOOL;
    xSchalter: BOOL;
    END_VAR
    
    IF xTaster AND NOT xOldTaster THEN
    xSchalter := NOT xSchalter;
    END_IF;
    xOldTaster := xTaster;
    Das Ganze noch mit TON:

    Code:
    VAR
    xTaster : BOOL;
    tonEntprellen: TON;
    xOldTaster: BOOL;
    xSchalter: BOOL;
    END_VAR
    
    tonEntprellen(
    IN := xTaster,
    PT := t#100ms
    );
    
    IF tonEntprellen.Q AND NOT xOldTaster THEN
    xSchalter := NOT xSchalter;
    END_IF;
    xOldTaster := tonEntprellen.Q;

  3. #13
    AlphaRind ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.10.2015
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich glaub ich hab mich missverständlich ausgedrückt... der Schalter ist in Funktionsplan-Sprache geschrieben, das Hauptprogramm, in das er eingebunden werden soll, in AS Um mein Anliegen zu verdeutlichen, hier nochmal zwei Bilder:
    Unbenannt.PNG
    Unbenannt2.PNG

    Der Schalter soll die Transition im Hauptprogramm weiterschalten. Bisher habe ich das so gemacht, dass ich den Schalter in ein eigenes Programm namens Stromstossschalter getan hab im Hauptprogramm die Variable Schalter durch Stromstosschalter.Schalter aufgerufen hab. Wie gesagt ist das Programm offiziell fehlerfrei, in der Simulation funktioniert es allerdings nicht, wie es soll...

  4. #14
    Registriert seit
    26.11.2012
    Ort
    Gummersbach
    Beiträge
    502
    Danke
    18
    Erhielt 71 Danke für 69 Beiträge

    Standard

    in der Simulation funktioniert es allerdings nicht, wie es soll...
    Du hast ja beschrieben was es tun SOLL, aber was macht es denn im Moment?
    Wenn Du in der Simulation mal in den Stromstoßschalter rein schaust - wird dieses Programm tatsächlich ausgeführt?
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  5. #15
    Registriert seit
    07.06.2007
    Beiträge
    143
    Danke
    2
    Erhielt 24 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo AlphaRind,

    ich glaube es hat noch niemand ein wahrscheinlich sehr einfaches Problem so schwierig und kompliziert erklärt wie du. Wenn du von "offiziell fehlerfrei" sprichst meinst du sicherlich syntaktisch korrekt.

    Nun versuche ich zu verstehen was du möchtest.
    1. Du hast ein Programm in FUP geschrieben der das Thema "Taster zu Schalter" umsetzt. Hier gibt es eine Variable Schalter.
    2. Du hast ein Hauptprogramm in dem du eine Variable Schalter verwendest als Übergangsbedingung/Transition.
    ==> Die Variable Schalter im Hauptprogramm schaltet nicht - richtig?

    Meine Vermutung:
    1. Du hast die Variable "Schalter" im Unterprogramm "Taster zu Schalter" deklariert und auch nochmal im Hauptprogramm in dem deine AS Geschichte steht. Du denkst weil die den selben Namen haben ist es auch die selbe Variable
    2. Du hast die Variable Schalter global deklariert und außerdem nochmal lokal im Unterprogramm oder im Hauptprogramm ==> Die des entsprechenden Programms überschattet die globale
    3. rateraterate

    wie wäre es wenn du einfach mal dein Programm hochlädst.

Ähnliche Themen

  1. Anfängerproblem: Kann Digital Output nicht togglen
    Von Olle im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 31.07.2015, 17:40
  2. B&R Structured Text Variable togglen
    Von Wengerer im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 13.02.2015, 17:04
  3. S7 Variable in Java Variable umwandeln
    Von maxi81 im Forum HMI
    Antworten: 0
    Letzter Beitrag: 26.11.2010, 17:55
  4. Antworten: 7
    Letzter Beitrag: 05.03.2008, 07:38
  5. EventState Variable
    Von Franz im Forum HMI
    Antworten: 0
    Letzter Beitrag: 14.10.2006, 13:00

Stichworte

Lesezeichen

Berechtigungen

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