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

Ergebnis 1 bis 5 von 5

Thema: Anfängerproblem: Kann Digital Output nicht togglen

  1. #1
    Registriert seit
    29.07.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,


    ich habe eine Wago SPS (750-881) mit der ich zunächst nicht mehr machen möchte als digitale Ausgänge (750-530) zu togglen.
    Dazu benutze ich Codesys und möchte das Programm in ST schreiben.


    Der momentane Versuch sieht so aus (DO1_CH1 ist der Output):
    Code:
    IF help = TRUE
    THEN
        TOFInst(IN:=NOT(help),PT:=T#2s);
        help := TOFInst.Q;
    ELSE
        TONInst(IN:=NOT(help), PT:=T#3s);
        help := TONInst.Q;
    END_IF;
    
    
    DO1_CH1 := help;
    Der Simulator bzw. die Überwachung sagt mir dabei, dass der Ausgang wohl toggled, jedoch nicht mit den gewünschten Verzögerungen. Wie kann ich ihn dazu zwingen, dass das Programm erst weiter ausgeführt wird, wenn der Timer ready ist?
    Zunächst hatte ich das ganze ohne die "help" Variable, aber dann funktioniert es garnicht. Ist das eine Art Fehlerprävention, dass auf die Outputs nur einmal im Programm zugegriffen werden darf und wenn ja, kann man das umgehen?


    Ein weiteres Problem ist, dass das Tracken der Variablen nach x Fehlversuchen nicht mehr funktioniert. Dann werden die Breakpoints, die ich im Programm setze auch nie erreicht. Erst durch einen Rechner Neustart konnte ich das beheben. Weder ein Codesys Neustart noch ein Reset der SPS haben da geholfen...
    Zitieren Zitieren Anfängerproblem: Kann Digital Output nicht togglen  

  2. #2
    Registriert seit
    16.03.2014
    Beiträge
    359
    Danke
    74
    Erhielt 45 Danke für 38 Beiträge

    Standard

    Hallo Olle,
    man sollte niemals einen Timer in eine Bedingung setzen...

    Baue dein Proggie doch mal einfach um:
    Mit deinem Help setze eine Zeitvariable entweder auf 2 oder x sekunden.
    Dann immer den ton mit den parametern aufrufen !!!
    Anschl. den Ausgang einmal übernehmen.

    Wird dann übersichtlicher und wird funktionieren...

    LG
    Shrimps

    PS: Ich habe mir zum Lernen diverse Blinker aus dem I-Net gezogen und umgebaut (OSCAT etc)

    Anbei ein kleines Beispiel:
    Code:
    PROGRAM MAIN
    VAR
        Timer : TON;                (* Damit wir alles realisiert *)
        PTH : TIME := t#5s;            (* Arbeitstakt *)
        PTL : TIME := t#2s;            (* Pausentakt *)
        Q     : BOOL;                    (* Ist solange High wie PTH *)
    END_VAR
    
    Timer(in := NOT timer.Q);    (* Immer wieder starten *)
    
    IF Q THEN            (* Ist TON abgelaufen ? *)
        timer.PT := pth;    (* Dann auf 1.Zeit setzen *)
    ELSE
        timer.PT := ptl;        (* Ansonsten auf die 2.te Zeit setzen *)
    END_IF
    
    q := q XOR timer.Q;            (* Zustand nur bei Änderung wechseln *)

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

    Standard

    Braucht man das if -Gedöns?Ist jetzt SCL S7.

    FUNCTION_BLOCK FB401

    VAR_INPUT

    #T1 : TIME; // Toggeln Timer 1
    #T2 : TIME; // Toggeln Timer 2

    END_VAR

    VAR_OUTPUT
    Toggle_Bit: BOOL; // Ausgang Toggeln
    END_VAR

    VAR_TEMP

    END_VAR

    VAR
    sTIMER1 : TON; // Timer1 Bit Toggeln
    sTIMER2 : TON; // Timer2 Bit Toggeln
    END_VAR

    BEGIN


    sTIMER2(IN:=NOT sTIMER1.Q, PT:=#T2);
    sTIMER1(IN:=sTIMER2.Q, PT:=#T1);


    Toggle_Bit:=sTIMER2.Q;

    END_FUNCTION_BLOCK

  4. #4
    Registriert seit
    16.03.2014
    Beiträge
    359
    Danke
    74
    Erhielt 45 Danke für 38 Beiträge

    Standard

    Das IF-Gedöns ist genauso wertvoll wie 2 TON Instanzen ...
    Da der TE Augenscheinlich Anfänger und daher habe ich auf einen FB verzichtet, da unklar ist ob er überhaupt weiß wie man einen FB einsetzt!
    LG Shrimps
    Btw: Es gibt noch sehr viele Varianten des Blinkers, u.a. ganz ohne Ton

  5. #5
    Registriert seit
    22.07.2013
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    geht alles ein Blinker kann auch mal schnell komplex werden die schon Shrimps schrieb. Z.b. mit der eingestellten Zykluszeit rechnen und nur reine Systemfunktionen verwenden die ADD etc... Dann bekommt man auch einen Blinker hin. Aber für den Anfang kann man auch mal die schrittkette benutzen ...

    Aber Fallunterscheidunfen sind ein schönes Konstrukt denn man das elsif auch versteht in welcher Prioritäten man diese auswertet ...

    MacToolz

    Gesendet von meinem LG-D855 mit Tapatalk

Ähnliche Themen

  1. B&R Structured Text Variable togglen
    Von Wengerer im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 13.02.2015, 17:04
  2. Step 7 Siemens Digital Output
    Von ichnewbie im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.04.2013, 13:05
  3. PCS7 Digital Ausgang schaltet nicht
    Von Lumpi im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 01.12.2012, 18:10
  4. Verkaufe Digital Output / Input Modul sowie Connector
    Von polp321 im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 15.08.2012, 17:37
  5. Antworten: 4
    Letzter Beitrag: 18.03.2009, 16:12

Lesezeichen

Berechtigungen

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