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

Ergebnis 1 bis 10 von 10

Thema: Ein Bit im Doppelwort ändern (SCL)

  1. #1
    Registriert seit
    02.09.2004
    Beiträge
    108
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich habe ein kleines Problem. Ich habe in einem Baustein einen eingangsparameter z.B. Var1 (DINT).
    Nun möchte ich das, das erste Bit im Doppelwort geändert wird und in die Variable Var2 ausgegeben wird.
    Also um es deutlich zu machen:

    Eingang:
    0000001111101000

    Am Ausgang möchte ich dann gerne das haben:
    1000001111101000

    Wie kann ich das machen???
    Gruß M-Arens
    Zitieren Zitieren Ein Bit im Doppelwort ändern (SCL)  

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

    Standard

    also Du willst das Linke Bit ändern also von 0->1 und 1->0 ?
    Code:
    Var2 := Var1 *-1;
    ;o)
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    also Du willst das Linke Bit ändern also von 0->1 und 1->0 ?
    Code:
    Var2 := Var1 *-1;
    ;o)

    Ähm, meinst du, das geht ? Zweierkomplement ?
    Versteh dich jetzt nicht ganz....

  4. Folgender Benutzer sagt Danke zu Unregistrierter gast für den nützlichen Beitrag:

    zotos (12.03.2007)

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

    Standard

    Ich ziehe meine Aussage zurück und leg mich noch mal schlafen

    UG hat recht ich hab Blödsinn geschrieben.
    If you open your Mind too much, your Brain will fall out.

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

    Standard

    Code:
    VAR
        Var1     :DINT;  
        Var1_    :DWORD;
        Var2     :DINT;
    END_VAR
    
    Var1_    := Var1;
    Var2     := Var1_ XOR  2#1000_0000_0000_0000_0000_0000_0000_0000;
    XOR geht nicht auf DINT deswegen musste ich eine Hilfsvariable benutzen.
    Geändert von zotos (05.03.2007 um 08:28 Uhr)
    If you open your Mind too much, your Brain will fall out.

  7. #6
    M-Arens ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.09.2004
    Beiträge
    108
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    Code:
    VAR
        Var1     :DINT;  
        Var1_    :DWORD;
        Var2     :DINT;
    END_VAR
    
    Var1_    := Var1;
    Var2     := Var1_ XOR  2#1000_0000_0000_0000_0000_0000_0000_0000;
    XOR geht nicht auf DINT deswegen musste ich eine Hilfsvariable benutzen.
    Das klappt leider nicht, ich bekomme bei dieser Anweisung
    Var1_ := Var1;
    immer die Fehlermeldung : Ungültiger Datentyp

    Woran kann das liegen???
    Gruß M-Arens

  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 M-Arens Beitrag anzeigen
    Das klappt leider nicht, ich bekomme bei dieser Anweisung
    Var1_ := Var1;
    immer die Fehlermeldung : Ungültiger Datentyp

    Woran kann das liegen???
    Ich habe es ja nicht mit Step7 getestet (da ich dafür keine Lizenz habe).
    Aber da scheint Step7 wohl bei der Zuweisung von einem DINT auf ein DWORD schmerzen zu haben ;o(
    Geht bei SCL vieleicht XOR auch auch auf DINT? Dann könnstest Du dir die Hilfsvariable sparen.
    If you open your Mind too much, your Brain will fall out.

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

    Standard

    Code:
    VAR
        Var1          :DINT;  
        Var1_dword    :DWORD;
        Var2          :DINT;
        Var2_dword    :DWORD;
    END_VAR
    
    Var1_dword := DINT_TO_DWORD(Var1);
    Var2_dword := Var1_dword XOR  2#1000_0000_0000_0000_0000_0000_0000_0000;
    Var2 := DWORD_TO_DINT(Var2_dword);
    Jetzt aber!
    Geändert von zotos (14.03.2007 um 16:15 Uhr)
    If you open your Mind too much, your Brain will fall out.

  10. #9
    Registriert seit
    13.02.2005
    Beiträge
    28
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Code:
    VAR    
       Var1                   :DINT;  
       Var1_Dword  at Var1    :DWORD;
       Var2                   :DINT;
       Var2_Dword at Var2     :DWORD;
     END_VAR  
    
    
     Var2_Dword := Var1_Dword XOR  2#1000_0000_0000_0000_0000_0000_0000_0000;
    oder auch so.

    Gruß
    bs

  11. #10
    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
    Zitat Zitat von bs Beitrag anzeigen
    Code:
    VAR    
       Var1                   :DINT;  
       Var1_Dword  at Var1    :DWORD;
       Var2                   :DINT;
       Var2_Dword at Var2     :DWORD;
     END_VAR  
    
    
     Var2_Dword := Var1_Dword XOR  2#1000_0000_0000_0000_0000_0000_0000_0000;
    oder auch so.

    Gruß
    bs
    Das ging wiederum bei mir (CoDeSys) nicht ;o(
    [Ich weis das es hier speziell um SCL ging und nicht um ST]

    Die liebe IEC61131-3 und ihre Umsetzungen ;o)
    If you open your Mind too much, your Brain will fall out.

Ähnliche Themen

  1. Doppelwort formatieren
    Von Sybkal im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 11.05.2011, 19:02
  2. Ein Bit aus Doppelwort finden
    Von Flo im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 15.04.2010, 23:37
  3. S7/300 Störmeldung Doppelwort
    Von berndi9196 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 11.08.2008, 18:10
  4. Doppelwort im DB schieben
    Von Revave im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.12.2005, 10:49
  5. Differenz von Doppelwort
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.07.2004, 10:01

Lesezeichen

Berechtigungen

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