Problem mit Aufgabenstellung

serania

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute, habe hier Probleme mit einer Aufgabe. Gegeben war:

FC
IN..............................ADRESSE
.......start.......bool...........0.0.......right 1-->0
........zeit......S5time.........2.0.......false
.......zeba.......timer..........4.0.......false

OUT
.......aktiv.......bool...........6.0

in der Aufgabenstellung stand drin, dass es wie ein "flip-flop" ein soll.
Also wenn "start" von 1 auf 0 betätigt wird, soll eine Led 1 sek ein (out,aktiv) sein, dann 2 sek aus.

Edit: Was sich immer in Zyklen wiederholen muss.

Es soll mit FB's und OB's die dafür nötig sind programmiert werden.

Also mein Ansatz war ja:

UN #start
L #zeit
SI #zeba
U #zeba
= #aktiv

Aber ich habe keine Lösung gefunden, wie ich mit einem Zeitbaustein 2 Zeiten realisieren soll. Der müsste die Zeiten irgendwie reinladen, ich weiss nur nicht wie das mit den Befehlen ist.

Wenn ich eine Lösung für mich hättet, wäre ich zutiefst dankbar.
 
Also für mich ist es klar:
Du hast 2 Timer:
1. Zeit als 5 Timer
2. zeba als IEC Timer


Zuerst würde ich das FF programmieren, dann die Zeiten richtig dem Ausgang zuordnen.
Das kannst du in einem FB machen und diesen dann in einem OB aufrufen.

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wenn ich das richtig verstanden hab, soll bei Start = 0 die Lampe im 1/3 2/3 takt blinken?
Ich würd einfach die Restlaufzeit des Timers Abfragen:
Code:
      UN    #IN_Start
      UN    #ZeBa
      L     #Zeit
      SV    #ZeBa
      L     #Zeit                   //Gesamtzeit
      UW    W#16#FFF          //Zeitbasis ausmaskieren
      BTI                            //BCD -> INT
      L     3
      /I    
      L     2
      *I                            //im Akku stehen jetzt 2/3 der Gesamtzeit
      L     #ZeBa                //Restwert des Timers
      <=I                           //2/3 kleiner/gleich Restlaufzeit
      U     #ZeBa
      =     #OUT_aktiv        //dann Lampe an
      U     #IN_Start
      R     #ZeBa               //vorher [COLOR=red]"T1" [/COLOR][COLOR=black]ups[/COLOR]
Dieser Code Funktioniert für jede beliebige Zeit! Also von 0-2h46min30s
 
Zuletzt bearbeitet:
Hallo,

wenn ich das richtig verstanden hab, soll bei Start = 0 die Lampe im 1/3 2/3 takt blinken?
Ich würd einfach die Restlaufzeit des Timers Abfragen:
Code:
      UN    #IN_Start
      UN    #ZeBa
      L     #Zeit
      SV    #ZeBa
      L     #Zeit                   //Gesamtzeit
      UW    W#16#FFF          //Zeitbasis ausmaskieren
      BTI                            //BCD -> INT
      L     3
      /I    
      L     2
      *I                            //im Akku stehen jetzt 2/3 der Gesamtzeit
      L     #ZeBa                //Restwert des Timers
      <=I                           //2/3 kleiner/gleich Restlaufzeit
      U     #ZeBa
      =     #OUT_aktiv        //dann Lampe an
      U     #IN_Start
      R     "T1"
Dieser Code Funktioniert für jede beliebige Zeit! Also von 0-2h46min30s

Das ist nicht schlecht. :ROFLMAO:
Aber ich kann mir gard nicht denken, daß die Aufgabenstellung sowas vorsieht (zu komliziert als Übungsaufgabe, um darauf mal ebend zu kommen, oder?). Wobei ich aus den Bruchstücken an Aufgabenstellung, die serania hier vorgelegt hat, auch nicht schlau werde. Natürlich könnte man den Timer auch mit zwei unterschiedlichen Zeitwerten laden, jeweils für die Ein- und die Aus-Phase, aber wozu dann bitte den Zeitwert als Paramter am FC übermitteln? Noch eine Variante wäre ein Zähler, aber das ließe sich in einem FC nur mit zusätzlichen INOUT realisieren. Ich denke, die Aufgabenstellung ist uns nicht vollständig und eindeutig übermittelt worden.
 
Bei der Teilung 1 zu 2 ist mit Hilfsmerker die für Anzeige und Pause möglich.

Doch es macht nicht so ganz echt viel Sinn, wenn wir Aufgaben lösen.
Dem Nachwuchs ein Chance würde ich sagen.

bike
 
Zurück
Oben