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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Abarbeitung von Rufen

  1. #1
    Registriert seit
    20.07.2010
    Beiträge
    22
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey, bräuchte mal eure hilfe.

    Ich programmiere einen Aufzug und soweit funktioniert alles, nun möchte ich eine Rufabarbeitung einbauen, d.h. das er die Außenrufe speichert und nach einander abarbeitet..
    ich arbeite mit einer S7 224 und microwin

    wenn er in der aufwärts bewegung is, zB von EG -> 2.OG und während der Fahrt jemand im 1.OG drückt, soll er auch im 1.OG anhalten.

    Meine Eingangssignale sind:
    Etage0 E0.0
    Etage1 E0.1
    Etage2 E0.3

    Die Variable SollPosition, ist die, welche mir aktuell sagt, wohin er Fahren soll.

    hättet ihr eine programmierhilfe, oder eine einfache idee?

    Danke euch
    Geändert von Blanky04 (10.08.2010 um 19:24 Uhr)
    Zitieren Zitieren Abarbeitung von Rufen  

  2. #2
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Hmm, mal wieder eine Schulaufgabe, die weniger das Programmieren schult sondern vielmehr ein Verständnis für einen Ablauf lehrt.

    Wie funktioniert also ein Aufzug für drei Etagen?

    Da gibt es drinnen drei Knöpfe. Wenn man einen davon drückt, so geht ein dazugehöriges Lämpchen an. Befindet sich der Aufzug in dem jeweiligen Stock, so geht das Lämpchen auch wieder aus. Und es gibt draussen drei Knöpfe (manchmal sind es vier). Die machen eigentlich das gleiche, wie die Knöpfe drinnen.

    Befindet sich der Aufzug im EG, so wird er, sowie irgendein Knopf verschieden von EG gedrückt wurde, aufwärts fahren. Sind sowohl erster wie auch zweiter Stock angefordert, so wird er im ersten Stock zunächst halten. Umgekehrt geht es von oben stehts abwärts.

    Nun kommt der Sonderfall: der Aufzug hält mittendrin. Damit er sinnvoll funktioniert, muss er seine Fahrt mit der letzten Fahrtrichtung fortsetzen. Sonst pendelt er möglicherweise nur zwischen EG und erstem Stock, weil dort ständig jemand rauf und runter will, der zweite Stock wird nimmer bedient (man soll es nicht glauben - so einen dummen Aufzug habe ich selbst erlebt). Nun kommt der vierte Knopf ins Spiel: derjenige, der im ersten Stock zusteigen will, signalisiert, ob er auf- oder abwärts fahren will (das ist für manchen Zeitgenossen auch nicht unbedingt leicht beherrschbar).

    Aber keine Regel ohne Ausnahme:
    Damit er sinnvoll funktioniert, muss er seine Fahrt mit der letzten Fahrtrichtung fortsetzen.
    gilt natürlich nur, wenn jemand den Aufzug in dieser Fahrtrichtung auch benötigt.

    So, nun ist es an der Zeit, mal das bestehende Programm zu sichten. Sicherlich wird am Grundentwurf schon was zu ändern sein
    Geändert von Perfektionist (10.08.2010 um 20:46 Uhr) Grund: in D zählt man von EG aus ...

  3. #3
    Blanky04 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.07.2010
    Beiträge
    22
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    weder eine schuldaufgabe noch sonst was.
    ich weiss wie ein aufzug funktioniert, das war nicht meine frage

  4. #4
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    jetzt musste ich zwar ein wenig suchen, aber nun hab ich ja etwas gefunden, was Dein Problem treffender beschreibt:
    Zitat Zitat von Blanky04 Beitrag anzeigen
    soll eine aufzugssteuerung werden, habe diese in codesys prog und da passt alles und nun muss ich sie auf die s7 machen...
    OK, *tieflufthol*, also in CoDeSys könntest Du es. Was ist nun das Problem, dies in S7-200 zu formulieren? An Klammern kann es ja jetzt nicht mehr liegen ...

  5. #5
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Perfektionist Beitrag anzeigen
    An Klammern kann es ja jetzt nicht mehr liegen ...
    ähh, doch!

    ...und jetzt hab ich auf den link geklickt ... und ja, stimmt, an den klammern kann es nicht liegen... is wie mit dem fehlenden öl

    backToTopic: wie wäre es, wenn du anhand deiner iDestination und der xDirectionOfTravelingdie aktuell auflaufende anforderung anguckst und dann entscheidest, ob's aufm wech is...

    IF iDestination > iNewCall AND xDestinationOfTraveling THEN
    //halten wir bei iNewCall
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #6
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Das wäre eigentlich eine klassische Anwendung eines FIFO's.

    Alle Aufrufe der Reihe nach von hinten in den Fifo schreiben (wenn sich der entsprechende Ruf noch nicht im Fifo befindet), der Reihe nach von die Einträge aus dem Fifo entfernen und die verbleibenden Elemente nach vorne schieben.

    Hinweis: Ein einfaches Array mit 3 Elementen verwenden.

    Wenn du das professionell lösen willst, schreibst du dir 3 Funktionen die das Array bedienen:
    Code:
    //Neue Etage (Ruf) einfügen:
    fcAddElement(nEtage: int): void
    
    //Ist die Etage bereits im Puffer?
    fcIsElement(nEtage: int): bool
    
    //Nächste Etage auslesen
    fcGetNextElement(): int
    Dann könnte dein Programm wie folgt ausschauen:
    Code:
    
    //--> Array mit -1 Initialisieren, damit du Etage 0..2 verwenden kannst!
    
    //Wenn Taste gedrückt:
    //---------------------
    IF "Etage0" THEN
        
        //Etage bereits im Puffer?
        IF NOT fcIsElement(nEtage = 0) THEN
    
            //Etage Einfügen
            fcAddElement(nEtage = 0);
        END_IF;
    
    ELSIF "Etage1" THEN
        
    ....
    END_IF;
    
    
    //Nächstes Element aus Puffer holen:
    //----------------------------------
    nNextEtage := fcGetNextElement();
    wenn er in der aufwärts bewegung is, zB von EG -> 2.OG und während der Fahrt jemand im 1.OG drückt, soll er auch im 1.OG anhalten.
    --> Wenn du als ersten das Programm nach meinem Vorschlag realisiert hast, kannst du dein Programm problemlos um diese Funktion erweitern.
    Geändert von Chefmech (11.08.2010 um 00:08 Uhr)

  7. #7
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von Chefmech Beitrag anzeigen
    Wenn du das professionell lösen willst, ...
    Wenn ich mit dem Autor einer Meinung wäre, so würde mir der o.g. Satz vielleicht nicht gar so sehr auffallen.

  8. #8
    Registriert seit
    19.11.2008
    Ort
    Schweigen am Weintor
    Beiträge
    707
    Danke
    191
    Erhielt 161 Danke für 92 Beiträge

    Standard

    für 3 stockwerke braucht man eine steuerung ?

  9. #9
    Registriert seit
    13.10.2007
    Beiträge
    12.025
    Danke
    2.784
    Erhielt 3.268 Danke für 2.156 Beiträge

    Standard

    Zitat Zitat von erzteufele Beitrag anzeigen
    für 3 stockwerke braucht man eine steuerung ?
    da hast du recht, eine Treppe würde auch reichen
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  10. #10
    Registriert seit
    19.11.2008
    Ort
    Schweigen am Weintor
    Beiträge
    707
    Danke
    191
    Erhielt 161 Danke für 92 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    grins

Ähnliche Themen

  1. Step7 Abarbeitung eines FB
    Von SEAL im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 02.09.2011, 11:13
  2. Frage zur Abarbeitung
    Von Fetzi im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.05.2011, 20:57
  3. Antworten: 14
    Letzter Beitrag: 20.05.2009, 12:38
  4. FC Abarbeitung im OB1
    Von K3ul3 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 17.11.2008, 08:55
  5. SFCs und deren abarbeitung
    Von Anonymous im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 28.01.2005, 11:40

Lesezeichen

Berechtigungen

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