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

Ergebnis 1 bis 4 von 4

Thema: SCL und bedingte Kompilierung?

  1. #1
    Registriert seit
    22.06.2010
    Beiträge
    51
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ihr!

    Ich möchte in einem SPS Programm wählen können ob die Eingangs und Ausgangswörter von der Bytereihenfolge her getauscht werden sollen oder nicht. In C würde ich das ganz einfach über ein "define" und bedingte Kompilierung realisieren, aber für SCL kann ich da nichts entsprechendes finden. Kennt ihr da was?
    Also das ich einmal den oberen Teil des Codes auf das PG laden kann und das andere mal den unteren Teil?
    Code:
        //normale Bytereihenfolge
        OutputWord := tempWord;
     
        //getauschte Bytereihenfolge
        byteArray[1] := tempWordAlsByteArray[2];
        byteArray[2] := tempWordAlsByteArray[1];
        OutputWord := byteArrayAlsWord;
    Ich hoffe die Fragestellung ist so ausreichend verständlich formuliert und ihr könnt mir auch noch weiterhelfen

    grüße
    Zitieren Zitieren SCL und bedingte Kompilierung?  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.262
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Zitat Zitat von Muphin Beitrag anzeigen
    Hallo ihr!

    Ich möchte in einem SPS Programm wählen können ob die Eingangs und Ausgangswörter von der Bytereihenfolge her getauscht werden sollen oder nicht. In C würde ich das ganz einfach über ein "define" und bedingte Kompilierung realisieren, aber für SCL kann ich da nichts entsprechendes finden. Kennt ihr da was?
    Also das ich einmal den oberen Teil des Codes auf das PG laden kann und das andere mal den unteren Teil?
    Code:
        //normale Bytereihenfolge
        OutputWord := tempWord;
     
        //getauschte Bytereihenfolge
        byteArray[1] := tempWordAlsByteArray[2];
        byteArray[2] := tempWordAlsByteArray[1];
        OutputWord := byteArrayAlsWord;
    Ich hoffe die Fragestellung ist so ausreichend verständlich formuliert und ihr könnt mir auch noch weiterhelfen

    grüße
    Nein, davon hab ich noch nicht gehört im Zusammenhang mit SCL, aber du kannst ja trotzdem eine Variable definieren, deren Wert dann über eine if- oder case-Anweisung den entsprechenden Code "scharfschaltet". Nachteil gegenüber define ist ja nur, daß der ganze Code im Compilat auftaucht, also auch der Teil, der gerade nicht benötigt wird.
    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
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.793
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    du legst dir auf dein Eingangs-DWORD eine AT-Sicht als ARRAY_of_Byte.
    Genauso auf dein Ausgangs-DWORD. Nun kannst du die Umsortierung wahlfrei durchführen - also etwa so :
    Code:
     
    VAR_IN
    my_Eingang : DWORD ;
    arr_Eingang AT my_Eingang : array[0..3] of Byte ;
    end_Var 
     
    VAR_OUT
    my_Ausang : DWORD ;
    arr_Ausgang AT my_Ausgang : array[0..3] of Byte ;
    end_Var 
     
    und dann im Code :
     
    arr_Ausgang[3] := arr_Eingang[0] ;
     
    ... oder so - spiel mal damit rum ...
    Gruß
    Larry

  4. #4
    Muphin ist offline Benutzer
    Themenstarter
    Registriert seit
    22.06.2010
    Beiträge
    51
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    ...du kannst ja trotzdem eine Variable definieren, deren Wert dann über eine if- oder case-Anweisung den entsprechenden Code "scharfschaltet". Nachteil gegenüber define ist ja nur, daß der ganze Code im Compilat auftaucht, also auch der Teil, der gerade nicht benötigt wird.
    Daran hatte ich auch schon gedacht! Das ganze belegt allerdings auch unnötig Speicherplatz, scheint mir bisher allerdings leider die einzigste alternative zu sein!

    @Larry:
    Auch eine Idee, so geht mir allerdings der Grundgedanke, nach außehin immer dieselben Words zu haben verloren. Sondern ich muss bei der weiterverwendung darauf achten wie ich auf die Variablen zugreife.

    Gibt es sonst noch ideen?

    Grüße

Ähnliche Themen

  1. Graph7, 3 bedingte Aktionen in einem Schritt
    Von Holger Levetzow im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 07.04.2011, 19:38
  2. bedingte Zuweisung im FUP?
    Von McNugget im Forum CODESYS und IEC61131
    Antworten: 21
    Letzter Beitrag: 26.11.2009, 11:16

Lesezeichen

Berechtigungen

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