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

Seite 1 von 7 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 70

Thema: INT konvertieren in Booleans

  1. #1
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Bei einem FC (geschrieben in AWL) muss ich einen übergebenen Integer umwandeln und in 5 Binären "Leitungen" wieder ausgeben.

    Eine möglichkeit wäre ja, mit ==I da jede einzelne Zahl zu überprüfen. Ich denke aber, dass es da eine etwas schönere Möglichkeit geben müsste.

    Der Integer kann die Werte von 0 - 31 annehmen.

    Jemand ne Idee?

    Danke schon im Voraus
    Gruss Reto
    Zitieren Zitieren INT konvertieren in Booleans  

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

    Standard

    Wo ist das Problem?

    00 00000
    01 00001
    02 00010
    03 00011
    04 00100
    05 00101
    06 00110
    07 00111
    08 01000
    09 01001
    10 01010
    11 01011
    12 01100
    13 01101
    14 01110
    15 01111
    16 10000
    17 10001
    18 10010
    19 10011
    20 10100
    21 10101
    22 10110
    23 10111
    24 11000
    25 11001
    26 11010
    27 11011
    28 11100
    29 11101
    30 11110
    31 11111

    Musst ja nur für jede Zahl aus dem Byte das entsprechende Bit nach außen führen.
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja schon ... nur muss ich das nun alles abfragen und dann mit Set/Reset zuweisen ?!?

    Gruss Reto

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

    Standard

    Das ist doch eine Schulaufgabe ;o)

    Also Du hast ein Byte und die ersten 5 Bit des Bytes sind die die Du auch nach Außen führen musst. Da gibt es verschiedene Möglichkeiten.

    Zeig mal Deinen Ansatz und dann helfe ich auch gerne weiter.
    If you open your Mind too much, your Brain will fall out.

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

    Standard

    Nicht die eleganteste Lösung aber um mal eine zu zeigen ;o)

    (Es gibt einfachere Wege an die Bits zu kommen)

    inZahl ist als Input und Bit0..4 sind die Output:

    Code:
          L     #inZahl
          L     1
          UW    
          L     0
          >I    
          =     #Bit0
    
          L     #inZahl
          L     2
          UW    
          L     0
          >I    
          =     #Bit1
    
          L     #inZahl
          L     4
          UW    
          L     0
          >I    
          =     #Bit2
    
          L     #inZahl
          L     8
          UW    
          L     0
          >I    
          =     #Bit3
    
          L     #inZahl
          L     16
          UW    
          L     0
          >I    
          =     #Bit4
    If you open your Mind too much, your Brain will fall out.

  6. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    Reto (11.08.2007)

  7. #6
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hm ... Danke für diese Lösung

    Ich hab daran rumgesucht, ob ich dieses Byte (was ich aus dem Int habe) irgend wie in ein Boolean-Array kriege ... aber das geht (zumindest so wie ich's versucht haben) irgend wie nicht. oder doch ?

    Gruss Reto

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

    Standard

    Zitat Zitat von Reto Beitrag anzeigen
    Hm ... Danke für diese Lösung
    ...
    Halt das ist nur eine Lösung von vielen.

    Ich wollte Dir nur aufzeigen wie man das machen kann es gibt auch noch andere Lösungen. Bitte mach Dir noch mal Gedanken wie es noch anders gehen würde.
    If you open your Mind too much, your Brain will fall out.

  9. #8
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Btw. Schulaufgabe isses ned ganz ...
    Ich arbeite viel mit der Java / C++-Programmierung und greife so teils auf SPSen zu.

    Was ich zurzeit mache ist ne "selbststudium", wenn man dem so sagen kann.
    Angesteuert wird damit nen FU ... Positionsnummer angeben und der fährt dann dort hin. Das aber nur als Hintergrundinfo.

    Ne andere Lösung wär die Pfahlbauermethode *g*
    prüfen, ob 1,3,5,7,9 ... dann Bit 1
    prüfen ob 2,3,6,7 ... dann Bit 2, etz.

    Etwas was mir auch noch innen Sinn gekommen war ist, dass ich's ganze innen MW (z.B. mw100) hätte schreiben kommen und anschliessend mit m100.3 (z.B.) das bit auslesen.

    Nachteil davon ist, dass ich extra nen MW dem FC übergeben muss. Wenn's mir recht ist, geht das ja so nicht direkt im FC drinnen ... oder?

    Gruss Reto

  10. #9
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.733
    Danke
    317
    Erhielt 1.522 Danke für 1.283 Beiträge

    Standard

    Hier auch noch eine Lösung:

    Code:
          L     P##WERT_IN
          LAR1  
    
          U      [AR1,P#0.0]
          =     #Bit_0
    
          U      [AR1,P#0.1]
          =     #Bit_1
    
          U      [AR1,P#0.2]
          =     #Bit_2
    
          U      [AR1,P#0.3]
          =     #Bit_3
    
          U      [AR1,P#0.4]
          =     #Bit_4
    Wert_IN ist deine interne Integer-Variable,
    die Adresse lädst du in das Adressregister,
    und greifst mit dem Pointer dann auf die Bits des Wertes zu.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  11. Folgender Benutzer sagt Danke zu MSB für den nützlichen Beitrag:

    Reto (11.08.2007)

  12. #10
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das is nen Interessanter ansatz
    Gefällt mir ...

    ist LAR zu verlgeichen mit dem Akku eines uCs (oder ist er das sogar) ?

Ähnliche Themen

  1. S5 in S7 konvertieren
    Von reekoh im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 02.10.2010, 15:32
  2. S5 konvertieren
    Von geduldiger im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.05.2007, 10:12
  3. s5 => S7 konvertieren
    Von mega_ohm im Forum Simatic
    Antworten: 39
    Letzter Beitrag: 15.02.2007, 15:11
  4. AWL alt in S5 od. S7 konvertieren
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.10.2005, 12:51
  5. CPM konvertieren
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.08.2005, 08:43

Lesezeichen

Berechtigungen

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