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

Ergebnis 1 bis 4 von 4

Thema: Einzelne Bit in einer vordeklarierten Bytevariable ansprechen

  1. #1
    Registriert seit
    26.01.2013
    Beiträge
    4
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich versuche gerade eine KL2541 Schrittmotorklemme in mein Programm einzubinden
    Dabei muss ich manchmal über Prozesskommuikation und machmal über Registerkommunikation auf das Conrol/Status -byte/word zugreifen.
    Ich habe mir gedacht es wäre einfacher den einzelnen Bits des Byte/Words via Variablendeklaration Namen zu geben.
    Dann habe ich aber das Problem, dass ich das ganze Byte/Word nicht mehr als Variable deklarieren kann (was zur Registerkommunikation aber wichtig wäre), weil das ja zu mehr als einer Verknüpfung führen würde.

    Weis da zufällig wer eine Lösung?
    Ich habe daran gedacht das man vielleicht auf einzelne Bits einer deklarierten Byte/Wordvariable zugreifen kann aber ich habe keine Ahnung wie das funktioniert.
    Ich hoffe das ist keine zu "blöde" Frage aber ich bin noch Schüler und deshalb Programmieranfänger


    Vielen Dank im Voraus

    Euer Apfelring
    Zitieren Zitieren Einzelne Bit in einer vordeklarierten Bytevariable ansprechen  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Ein wirklich elegante Lösung ist mir da bisher auch nicht eingefallen.
    Für die Steuer-/Zustandswort Kommunikation mit FUs arbeite ich mit Strukturen, die die einzelnen Bits als Bool-Variable beinhalten. Die müssen dann aber auf das eigentliche Steuerwort gemappt werden.

    z.B. Für das Steuerwort:

    Die Struktur
    Code:
    TYPE Struc_Steuerwort:
      STRUCT
         Einschalt :Bool;
         Freigabe  :Bool;
         Schnellhalt :Bool;
        ...usw....
      END_STRUCT
    END_TYPE
    Deklaration und Mapping
    Code:
    STW : Struc_Steuerwort;
    SteuW AT%Q*: WORD;
    
    SteuW.0 := STW.Einschalt;
    SteuW.1 := STW.Freigabe;
    SteuW.2 := STW.Schnellhalt;
    
    etc.
    So kann ich dann im Programm immer mit der Struktur arbeiten und habe die einzelnen Bits als Name verfügbar.
    Das macht den Code wesentlich besser lesbar.


    Wenn jmd eine Bessere Lösung weiss, dann nur her damit!

  3. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    apfelring (16.02.2013)

  4. #3
    Registriert seit
    07.11.2010
    Beiträge
    132
    Danke
    4
    Erhielt 18 Danke für 18 Beiträge

    Standard

    Also wenn es eine Byte Variable ist dann mit
    Beispielvariable.0 für Bit 0
    .
    .
    .
    .
    .
    .
    .
    .
    .
    Beispielvariable.7 für Bit 8

    such mal in der Codesyshilfe nach Bit Addressierung

  5. #4
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    750
    Danke
    27
    Erhielt 165 Danke für 143 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn man in den Übersetzungsoptionen den Punkt "Konstanten ersetzen" anhakt, kann man die Bitposition auch mit Konstanten angeben, also "Beispielvariable.BedeutungVonBit0".

Ähnliche Themen

  1. Zugriff auf einzelne Bit's TIA-Portal
    Von MarkusP im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.09.2016, 21:30
  2. Antworten: 3
    Letzter Beitrag: 21.09.2010, 11:54
  3. Bit in Bytevariable ansprechen
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 24.02.2009, 10:22
  4. Step5 Bit aus DB in FB ansprechen (Bezeichner)
    Von urlicht im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.05.2008, 23:48
  5. einzelne Bit eines Bytes ändern
    Von Farinin im Forum HMI
    Antworten: 10
    Letzter Beitrag: 29.09.2006, 11:24

Lesezeichen

Berechtigungen

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