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

Ergebnis 1 bis 7 von 7

Thema: Schieben und Maskieren mit SCL

  1. #1
    Registriert seit
    16.05.2005
    Ort
    Stuttgart
    Beiträge
    53
    Danke
    15
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen meine Technikerarbeit soll ich auf besonderen Wunsch in SCL Schrieben. Die letzten 10 Jahre habe ich nur AWL Programmiert. Nun würde ich gerne wissen wie man in SCL Maskiert und schiebt.
    Ich hoffe hier gibt es jemand der mir Helfen kann freue mich über links und Buchtipps und auch tipps in die richtige richtung
    Es gibt 2 Dinge die unendlich sind
    das Universum und die menschliche Dummheit
    beim Universum bin ich mir nicht ganz sicher
    Zitieren Zitieren Schieben und Maskieren mit SCL  

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

    schieben geht mit SHL und SHR
    rotieren mit ROL und ROR
    und maskieren mit AND, OR und XOR
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    16.05.2005
    Ort
    Stuttgart
    Beiträge
    53
    Danke
    15
    Erhielt 4 Danke für 4 Beiträge

    Standard

    heist es beim maskieren dann ungefähr so

    ergebnis:= in1 and w#16#ff
    Es gibt 2 Dinge die unendlich sind
    das Universum und die menschliche Dummheit
    beim Universum bin ich mir nicht ganz sicher

  4. #4
    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 nonguru Beitrag anzeigen
    ergebnis:= in1 and w#16#ff
    damit wertest du das erste byte eines z.b. word-in aus uns schreibst das zweite 0 ... ja, so funktioniert das
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    16.05.2005
    Ort
    Stuttgart
    Beiträge
    53
    Danke
    15
    Erhielt 4 Danke für 4 Beiträge

    Standard

    ich hab mal was programmiert aber irgendwie was falsch verstanden


    Code:
    FUNCTION_BLOCK FB4
    VAR_INPUT
        Freigabe_Einlesen:      BOOL;
        Eingangswert:           WORD;
        
    END_VAR
    
    VAR_OUTPUT
        
        Komponente_A:           INT;
        Komponente_B:           INT;
        Fehler_Baustein:        BOOL;
        
    END_VAR
    
    
    VAR_TEMP
        // temporäre Variablen
    
    END_VAR
    VAR
        // statische Variablen
        Komp_A_in:              INT;
        Komp_B_in:              INT;
        Zwischenergebnis:       INT;
    END_VAR
    
        BEGIN;
        
        // Anweisungsteil
        Komp_A_in := Eingangswert AND w#16#ff;
        Komp_B_in := Eingangswert AND w#16#00ff SHR(in:=Eingangswert, N:=8); 
        
        ;
    END_FUNCTION_BLOCK
    Es gibt 2 Dinge die unendlich sind
    das Universum und die menschliche Dummheit
    beim Universum bin ich mir nicht ganz sicher

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

    erst schieben, dann maskieren

    oder maskieren und dann schieben

    aber nicht beides in einem, das geht in die hose
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    nonguru (20.09.2008)

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... an dem Beispiel stimmt aber einiges nicht ...

    - die Ausgangs-Variable von SHR (oder SHL oder ROL oder ROR) muß immer vom gleichen Typ sein wie die geschobene Variable.

    - WORT-Variablen kanst du nicht direkt in INT-Variablen schreiben. Da mußt du zunächst die Umwandlungsfunktionen einsetzen (in dem Fall : INT_Var := WORD_to_INT (WORD_Var) ;

    Gruß
    LL

Ähnliche Themen

  1. Schieben und Rotieren in AWL
    Von adi5 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 16.01.2010, 16:52
  2. In einem FB Bit's Schieben
    Von jackjones im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 10.12.2009, 09:44
  3. DateandTime schieben
    Von MK_Auto im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 21.10.2009, 17:02
  4. Doppelwörter Schieben
    Von Waelder im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 08.03.2007, 16:35
  5. Schieben von Bits
    Von Florian im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 31.07.2006, 15:19

Lesezeichen

Berechtigungen

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