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

Seite 3 von 8 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 74

Thema: WORD aus einzelnen Bits zusammensetzen

  1. #21
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Adressen der Ein- und Ausgänge von Funktionen liegen in den Lokaldaten des aufrufenden Bausteins (V-Bereich). Was du meinst, ist nichts anderes als ein unnützer Zähler aber keine wirkliche Adresse. Wenn du mal einen Pointer auf eine solche Variable setzt, zeigt er dir die Adresse. Sie ist bei jedem Aufruf einer Funktion eine andere, bzw. sie abhängig vom jeweiligen Aktualparameter. Man kann nur indirekt oder symbolisch darauf zugreifen.

    Code:
    L P##Bit_00
    LAR1 // AR1 = z.Bsp. V 29.2

    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

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

    ...aber es funktioniert...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #23
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard

    ...Dann zeig mal her! Sonst kann ich heute nicht schlafen....
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  4. #24
    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

    wär ich doch nur noch im büro ...

    wenn ich aber eine funktion "bit_to_word" schreibe und diese like

    U #in_bit0
    = L2.0
    U #in_bit1
    = L2.1
    ...
    U #in_bit15
    =L3.7
    ausführe, wobei ich 16 in-variablen (bool) von L0.0 bis L1.7 und eine out-variable (word) mit anfangsadresse L2.0 habe, funktioniert das!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #25
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Irrtum. Du schreibst auf jeden Fall in die temporären Lokaldaten. Erst wenn du anschliessend mit...

    Code:
    L     LW2
    T    OutWord
    ...die Lokaldaten an den Ausgang übergibst, wird es funktionieren. Siehe auch Beitrag Nr.5 von OHGN.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

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

    i´ll try ... morgen ... hoffe du kannst trotzdem gut schlafen ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #27
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Ja, danke! Gute Nacht!

    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  8. #28
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von Onkel Dagobert Beitrag anzeigen
    Irrtum. Du schreibst auf jeden Fall in die temporären Lokaldaten. Erst wenn du anschliessend mit...

    Code:
    L     LW2
    T    OutWord
    ...die Lokaldaten an den Ausgang übergibst, wird es funktionieren. Siehe auch Beitrag Nr.5 von OHGN.
    Onkel Dagobert hat Recht.

    Gruß Kai

  9. #29
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Hier noch mal ein Lösungsvorschlag mit Pointern:

    Code:
    FUNCTION "FC_BOOL_WORD_PT" : VOID
    TITLE =BOOL => WORD
    AUTHOR : KAI
    FAMILY : SPSFORUM
    NAME : LOKALDAT
    VERSION : 1.0
     
    VAR_INPUT
      IN_BIT_00 : BOOL ;    
      IN_BIT_01 : BOOL ;    
      IN_BIT_02 : BOOL ;    
      IN_BIT_03 : BOOL ;    
      IN_BIT_04 : BOOL ;    
      IN_BIT_05 : BOOL ;    
      IN_BIT_06 : BOOL ;    
      IN_BIT_07 : BOOL ;    
      IN_BIT_08 : BOOL ;    
      IN_BIT_09 : BOOL ;    
      IN_BIT_10 : BOOL ;    
      IN_BIT_11 : BOOL ;    
      IN_BIT_12 : BOOL ;    
      IN_BIT_13 : BOOL ;    
      IN_BIT_14 : BOOL ;    
      IN_BIT_15 : BOOL ;    
    END_VAR
    VAR_OUTPUT
      OUT_WORD : WORD ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =IN_BIT_00 - IN_BIT_15 (BOOL) => OUT_WORD (WORD)
     
          L     P##IN_BIT_00; 
          LAR1  ; 
     
          L     W [AR1,P#0.0]; 
          TAW   ; 
          T     #OUT_WORD; 
     
    END_FUNCTION
    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  10. #30
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ohkai kai und auch onkel ... man muss am ende einen transfer durchführen - ihr habt recht! ...wieder was gelernt...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. SCL: Auf Bits eines Word zugreifen.
    Von Aksels im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 28.10.2011, 17:10
  2. Aus Word BITs rausziehen
    Von mfg_mr.e im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 20.06.2011, 11:02
  3. WORD of BITS - ILC Phönix Contacts
    Von poelli85 im Forum Sonstige Steuerungen
    Antworten: 6
    Letzter Beitrag: 05.09.2010, 22:55
  4. Codesys Bits, Byte, Word und DWord
    Von Znarf im Forum Sonstige Steuerungen
    Antworten: 16
    Letzter Beitrag: 03.05.2007, 13:36
  5. Antworten: 10
    Letzter Beitrag: 28.09.2004, 08:36

Lesezeichen

Berechtigungen

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