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

Ergebnis 1 bis 8 von 8

Thema: Switch CASE Anweisung

  1. #1
    Registriert seit
    21.09.2006
    Beiträge
    36
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    wie kann man eine effiziente Case- Anweisung
    in Step7 programmieren?
    Habe 15 verschiedene Peripherieeingänge die man unterscheidet.
    Bei jeder Peripherieeingang muss ein anderer Merker gesetzt werden
    und zum Schluß der Funktion eine weiteren FC aufrufen.

    MFG
    sweber
    Zitieren Zitieren Switch CASE Anweisung  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    in AWL SPL - Sprungleiste (such mal danach im Forum)
    (für deinen Falll wohl eher nicht)

    oder SCL programmieren

    Warum nicht einfach

    U E...
    = M ...

    15 mal

    dann deine Funktion ?
    Geändert von Ralle (14.12.2006 um 13:18 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    sweber ist offline Benutzer
    Themenstarter
    Registriert seit
    21.09.2006
    Beiträge
    36
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    wie kann ich mich auf VKE bezihen?
    Wenn VKE = 1 ,
    dann setze Merker.

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    U E0.0
    = M0.0

    oder

    U E0.0
    S M0.0

    mußt dann natürlich irgendwann den Merker 0.0 zurücksetzen (wenn er nicht mehr gebraucht wird.

    Du kannst also folgendes machen

    SET //VKE auf 1, falls du nicht weißt, was davor passierte
    U E0.0
    = M0.0

    U E0.1
    = M0.1

    ...

    oder für 16 zusammenhängende Wertg ginge auch

    L EW0
    T MW0

    dann sind alle Merker auf 1, deren Korrespondierender Eingang 1 ist.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    sweber ist offline Benutzer
    Themenstarter
    Registriert seit
    21.09.2006
    Beiträge
    36
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    L #IN1 // aktuelle Peripherieeingabeadresse in AKKU 1
    L 299 // 299hex (Saugdruck)
    ==I // vergleicht, wenn == VKE = 1

    wenn Saugdruckadresse,
    dann
    L MW 130 //ist der generierte Wert aus InTouch

    und diesen Vorgang brauche ich 15 mal
    (15 verschidene Analogeingänge die simuliert werden)

  6. #6
    Registriert seit
    23.11.2004
    Beiträge
    347
    Danke
    2
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Möglich wäre:

    L #IN
    L 16#299
    ==I
    SPBN M1
    L MW130
    T MWxyz
    M1: NOP 0
    L #IN
    L 16#298
    ==I
    SPBN M2
    L MW128
    T MWxyz
    M2: NOP 0
    ....
    usw.

    oder dafür eine FC mit Parameterübergabe.

    Gruß
    raika

  7. #7
    sweber ist offline Benutzer
    Themenstarter
    Registriert seit
    21.09.2006
    Beiträge
    36
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke! Super Idee!

  8. #8
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe die Problemstellung nicht verstanden aber CASE geht so:

    Code:
    CASE hexPAdress OF
    
      16#298: bBla1 := TRUE; (* Adresse 298 Bladruck *)
    
      16#299: bBla3 := TRUE; (* Adresse 299 Saugdruck *)
    
    ELSE
      (* Falsche Adresse! *)
      bBla1 := FALSE;    (* Tue was*)
    
    END_CASE
    Geändert von zotos (14.12.2006 um 23:07 Uhr)
    If you open your Mind too much, your Brain will fall out.

Ähnliche Themen

  1. Schrittketten mit case
    Von Bensen83 im Forum CODESYS und IEC61131
    Antworten: 23
    Letzter Beitrag: 10.09.2014, 07:06
  2. Wo steht die case struktur
    Von Bensen83 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 06.09.2011, 17:05
  3. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  4. CASE-Anweisung von SCL auf KOP
    Von adonismensch im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 25.09.2009, 12:41
  5. SCL-Compiler und Case-Anweisung
    Von herdi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.09.2008, 10:02

Lesezeichen

Berechtigungen

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