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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: TIA V13 SCL Bit aus Bytevariable extrahieren

  1. #1
    Registriert seit
    11.10.2007
    Beiträge
    233
    Danke
    53
    Erhielt 4 Danke für 4 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin moin,

    ich habe schon ein wenig über dieses Thema im Forum gelesen, aber leider brachte es mir keine zufriedenstellende Lösung. Deshalb hoffe ich auch Eure Hilfe.

    Folgendes Problem: An einer Input-Variablen liegt ein Byte im Format 16#0; nun möchte ich jedes Bit einzeln abfragen können.

    Dazu habe ich das Byte in Word gewandelt "#Störungsword := BYTE_TO_WORD(#Störungslogik); //-- Byte in Word wandeln für Störungslogik" (habe ich hier schonmal gelesen) und anschließend

    ATT(DATA:=#Störungsword,
    TABLE:=#Störunglogic_1);

    in eine Tabelle gelegt. #Störungslogic_1 : Array[0..15] of Bool

    Jetzt dachte ich #Störunglogic_1[0] auslesen zu können, aber es funktioniert nicht. Wie komme ich an das Bit?

    Wäre über eine Antwort sehr dankbar.
    Danke Heiko
    Zitieren Zitieren TIA V13 SCL Bit aus Bytevariable extrahieren  

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

    Standard

    So in etwa (Deklaration):
    Code:
          Störungslogik  : Byte;
          myArray  AT Störungslogik : Array[0..7] of Bool;
    Also Stichwort "AT" in der Hilfe nachlesen
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Registriert seit
    28.05.2008
    Beiträge
    103
    Danke
    9
    Erhielt 18 Danke für 17 Beiträge

    Standard

    mit der Funktion "Slice" sollte das ganz einfach gehen (laut Beschreibung Siemens)
    Siemens Online-Support Beitrags-ID: 5737471.
    Gruss aus CH

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

    zotos (04.06.2014)

  5. #4
    Magni ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.10.2007
    Beiträge
    233
    Danke
    53
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Zitat Zitat von tschortscho51 Beitrag anzeigen
    mit der Funktion "Slice" sollte das ganz einfach gehen (laut Beschreibung Siemens)
    Siemens Online-Support Beitrags-ID: 5737471.
    Aber im SCL scheint es nicht zu funktionieren...

  6. #5
    Magni ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.10.2007
    Beiträge
    233
    Danke
    53
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    So in etwa (Deklaration):
    Code:
          Störungslogik  : Byte;
          myArray  AT Störungslogik : Array[0..7] of Bool;
    Also Stichwort "AT" in der Hilfe nachlesen
    Er nimmt mir dem Operand "AT" nicht ab "Operand ist nicht definiert."

    AAAhhh.. ich nähere mich dem Ziel.
    Geändert von Magni (04.06.2014 um 15:39 Uhr)

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

    Standard

    Hier mal ein Screenshot:
    AT.png
    Geändert von zotos (04.06.2014 um 15:41 Uhr)
    If you open your Mind too much, your Brain will fall out.

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

    Standard

    Zum Slice versuche mal ein % hinzuzufügen:

    Code:
    Störungslogik.%X5
    If you open your Mind too much, your Brain will fall out.

  9. #8
    Registriert seit
    03.09.2009
    Beiträge
    129
    Danke
    15
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Die AT Deklaration kann nur verwendet werden, wenn der Baustein als "nicht" optimierter Baustein verwendet wird. Mit dem Slice-Befehlen sollte es funktionieren.

  10. #9
    Magni ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.10.2007
    Beiträge
    233
    Danke
    53
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Zitat Zitat von Beckx-net Beitrag anzeigen
    Die AT Deklaration kann nur verwendet werden, wenn der Baustein als "nicht" optimierter Baustein verwendet wird. Mit dem Slice-Befehlen sollte es funktionieren.
    Also geht AT schonmal nicht, da ich für eine 300-er CPU schreibe.

    Der Slice Befehlt bezieht auf mein Eingangsbyte "Störungslogic"? Also wäre die entsprechende Bitabfrage dann #Störungslogic.X0 ? Das will er mir auch nicht abnehmen...

  11. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    AT sollte für die 300-er in einem SCL-Baustein aber gehen.
    Slice wird wohl mit bei den neuen (1200+1500) SPS gehen.
    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

  12. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Magni (06.06.2014)

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 11.05.2014, 08:14
  2. Zahl aus String extrahieren
    Von wackel_peter im Forum CODESYS und IEC61131
    Antworten: 12
    Letzter Beitrag: 12.06.2013, 22:45
  3. TIA TIA V12 einzelnes Bit aus Dword Variable verschalten
    Von Neuling74 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 10.06.2013, 07:28
  4. Einzelne Bit in einer vordeklarierten Bytevariable ansprechen
    Von apfelring im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 04.02.2013, 08:19
  5. Bit in Bytevariable ansprechen
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 24.02.2009, 10:22

Stichworte

Lesezeichen

Berechtigungen

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