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

Ergebnis 1 bis 8 von 8

Thema: Fallunterscheidung

  1. #1
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    Hätte mal wieder eine Frage!
    Ich habe einen DB1 in dem 3 feste Strings stehen. In einen weiteren DB2 wird ein anderer String geschrieben. Nun soll ich den String aus DB2 mit den Strings aus DB1 vergleichen und wenn Gleichheit ist soll in einem MB eine

    0 bei gleich mit String 1,
    1 bei gleich mit String 2,
    2 bei gleich mit String 3

    geschrieben werden.
    Das Vergleichen mache ich mit dem FC10 und das funktioniert auch, aber wie muß man die Fallunterscheidung programmieren, ich denke mit Sprungbefehlen.
    Kann mir da jemand einen Tip geben?

    MfG
    bastler
    Zitieren Zitieren Fallunterscheidung  

  2. #2
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Folgendes Programm habe ich was auch funktioniert, aber geht es auch noch etwas eleganter?
    Code:
    Call FC10
        S1        :="DB1".typ1
        S2        :="DB2".visu
        Ret_Val  :=#typ1
    
    U     #typ1
    L      0
    T      MB11
    SPB   end
    
    Call FC10
        S1        :="DB1".typ2
        S2        :="DB2".visu
        Ret_Val  :=#typ2
    
    U     #typ2
    L      1
    T      MB11
    SPB   end
    
    Call FC10
        S1        :="DB1".typ3
        S2        :="DB2".visu
        Ret_Val  :=#typ3
    
    U     #typ3
    L      2
    T      MB11
    SPB   end
    
    end: NOP   0

  3. #3
    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

    ob es nun wirklich eleganter ist sei dahin gestellt, aber es spart doch noch ein stück zykluszeit:

    Code:
    *
          L     0
          T     MB 11
     
          Call FC10
              S1        :="DB1".typ1
              S2        :="DB2".visu
              Ret_Val  :=#xDummy
     
          U     #xDummy
          SPB   end
     
          Call FC10
              S1        :="DB1".typ2
              S2        :="DB2".visu
              Ret_Val  :=M11.0
     
          U     M11.0
          SPB   end
     
          Call FC10
              S1        :="DB1".typ3
              S2        :="DB2".visu
              Ret_Val  :=M11.1
     
    end:  NOP   0
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo vierlagig
    Danke für deine Antwort, aber wie kommt denn in deinen Programm eine 0 oder 1 oder 2 ins MB11?

    MfG
    bastler

  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 bastler Beitrag anzeigen
    aber wie kommt denn in deinen Programm eine 0 oder 1 oder 2 ins MB11?
    Code:
    MB11:
    M 11  .7  .6  .5  .4  .3  .2  .1  .0
           x   x   x   x   x   x   x   x
     
    
    M11.0 = TRUE -> 2^0 * 1 -> 1 (M11.1 - M11.7 = FALSE)
    M11.1 = TRUE -> 2^1 * 1 -> 2 (M11.0; M11.2 - M11.7 = FALSE)
    durch L 0; T MB11; stelle ich sicher, dass die Bedingung FALSE für den entsprechenden Wert erfüllt ist.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Und wenn gar kein String paßt???
    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

  7. #7
    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 Ralle Beitrag anzeigen
    Und wenn gar kein String paßt???
    einer wird schon, kommt bestimmt aus ner combobox mit write_protect

    ansonsten würd ich da die null ansetzen und das ganze wie folgt ändern:

    Code:
    *
          L     0
          T     MB 11
     
          Call FC10
              S1        :="DB1".typ1
              S2        :="DB2".visu
              Ret_Val  :=M11.0
     
          U     M11.0
          SPB   end
     
          Call FC10
              S1        :="DB1".typ2
              S2        :="DB2".visu
              Ret_Val  :=M11.1
     
          U     M11.1
          SPB   end
     
          Call FC10
              S1        :="DB1".typ3
              S2        :="DB2".visu
              Ret_Val  :=M11.2
     
    end:  NOP   0
    keiner -> 0
    der 1. -> 1
    der 2. -> 2
    der 3. -> 4

    think binary
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #8
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Der String kommt von einer Visu, und wenn der String nicht paßt (Fehleingabe) hab ich's so programmiert, dass eine 4 geschrieben wird.
    Soweit hab ich erstmal alles verstanden, danke für die Hilfe!

    MfG
    bastler

Lesezeichen

Berechtigungen

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