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

Ergebnis 1 bis 5 von 5

Thema: Wie kann man einzelne Befehle im Programm überspringen wenn andere aktiv sind?

  1. #1
    Registriert seit
    02.02.2015
    Beiträge
    26
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich bin absoluter Neuling was SPS- Programmierung angeht und habe ein kleines Problem was die Programmierung angeht

    Die Konfiguration habe ich (mit freundlicher Unterstützung einiger hier im Forum ) endlich hinbekommen.

    Jetzt habe ich zu meinem Programm eine Frage.

    Kurze Beschreibung:
    1. Ich habe einen Zylinder (senkrecht hängend), der mittels Taster auf und ab bewegt werden können soll.
    2. Des Weiteren soll er verfahren wenn an ihm gezogen, bzw. gedrückt wird (am Zylinder hängt zusätzlich eine Last).
    3. Ansonsten soll immer die aktuelle Position gehalten werden.

    Mein Problem:
    Wie kann ich das so programmieren, das sich die drei Modi nicht in die Quere kommen? Muss ich dazu Merker einsetzen?
    Mein Ziel ist es, dass immer nur ein Modus aktiv sein kann - entweder AUF/ AB per Taster, oder AUF/ Ab per Handkraft, oder eingeregelter Zustand (welcher natürlich durch die anderen zwei jeder Zeit beendet werden kann und wieder aktiv wird, sobald die ersten zwei inaktiv werden)


    Mein Problem ist, wie ihr sicherlich seht, dass sich die einzelnen Modi "in die Quere kommen". Solange die Taster betätigt werden, sollen die anderen Modi nicht aktiv werden können. Wenn dích die Taster loslasse soll die aktuelle Position gehalten werden (REGLER Modus) und die Gewichtskraft ermittelt werden (um eine Gewichtsdifferenz beim "anlegen" einer zusätzlichen Handkraft ermitteln zu könne und dann entsprechend in den HANDKRAFTMODUS zu wechseln).

    Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt?
    Ich habe bis jetzt an der Hochschule nur in FUP geschrieben und das waren auch eher simple Programme - es gab da glaube ich eine Möglichkeit, bestimmte Codes zu überspringen solange eine Bedingung erfüllt wurde. Wie sieht das in ST aus?

    Auch für sonstige Anregungen bin ich dankbar!

    Vielen Dank für eure Hilfe!

    MfG
    frigidolf
    Geändert von frigidolf (02.07.2015 um 17:08 Uhr)
    Zitieren Zitieren Wie kann man einzelne Befehle im Programm überspringen wenn andere aktiv sind?  

  2. #2
    Registriert seit
    13.10.2013
    Ort
    shertogenbosch niederlande
    Beiträge
    120
    Danke
    0
    Erhielt 8 Danke für 6 Beiträge

    Standard

    die beschreibing ist so gut das du die antwort schon selber ausdenken kanst.

    also eine IF taste up then go up
    IF taste down then go down
    IF NOT(tasteup OR tastedown) OR kraft sensor THEN regler
    end_IF

    if kraftsensor then.....
    mache hier dein
    END_IF
    paul deelen
    shooter@home.nl
    +31736139136

  3. #3
    frigidolf ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.02.2015
    Beiträge
    26
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Lässt sich das nicht irgendwie geschickter lösen, als wie ich es gemacht hab? Irgendwie hab ich das Gefühl, dass es besser gehen müsste

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

    Standard

    Hallo,

    handelt sich es hierbei um eine didaktische Arbeit oder soll das tatsächlich gebaut werden?
    Soweit ich Deine Beschreibung verstehe, ist das so eine Art pneumatischer Kran, oder?
    Was passiert beim Modus-Umschalten? Also wie stellst Du ein unkontrolliertes Absacken sicher?


    zu Deinem Problem:
    Was spricht dagegen, die einzelnen Modi in Funktionen zu packen und diese z.B. mit einem Dreh-Rastschalter aus- bzw. anzuwählen?

    Gruß

    Christian
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  5. #5
    Registriert seit
    13.01.2010
    Beiträge
    56
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    so etwas macht man in einer StateMachine:

    case eActualMode of

    HandKraftMode:

    //do something

    TasterMode:

    // do something else

    ReglerMode:

    // do something else

    end_case

    Die einzlnen Modi (HandkrafMode, TasterMode, Reglermode) kannst du als Enum definieren oder als Konstanten.

    Dann Programmierst du nur wann welcher Modus aktiviert wird und haust innerhalb der Modi die Logik rein (// do something)

    Grüße

    Dax

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 07.11.2017, 08:27
  2. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  3. Wie kann man das Programm vereinfachen?
    Von Heibo im Forum Programmierstrategien
    Antworten: 31
    Letzter Beitrag: 09.03.2014, 13:18
  4. Wie kann man das Programm vereinfachen Nummer 2.
    Von Heibo im Forum Programmierstrategien
    Antworten: 5
    Letzter Beitrag: 17.02.2014, 23:55
  5. Antworten: 8
    Letzter Beitrag: 23.02.2009, 21:15

Lesezeichen

Berechtigungen

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