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

Ergebnis 1 bis 7 von 7

Thema: Word_to_block_db

  1. #1
    Registriert seit
    31.03.2009
    Beiträge
    109
    Danke
    33
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hi,

    ich möchte gerne einen Boolschen Wert in einem Array innerhalb eines DB ansprechen und auf "1" setzen

    Am Bausteineingang soll extern die DB-Nr eingetragen werden. Die Bitadresse soll innerhalb des SCL-Bausteines angegeben werden.

    Wenn der der Boolsche Eingang 1 ist soll Adresse 19.1 innerhalb des ARRAYs auf 1 gesetzt werden.

    Beim Übersetzten meckert er immer über das Array...

    WORD_TO_BLOCK_DB(DB_No).DW[19.1])

    Kann mir jemand helfen?
    Zitieren Zitieren Word_to_block_db  

  2. #2
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    .DW[19.1]

    DW steht doch für Datenwort, 19.1 ist aber eine Bit-Adresse
    Schau mal in der Hilfe nach, bin nicht sicher ob das DX heissen müsste

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

    hoT (20.03.2010)

  4. #3
    hoT ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.03.2009
    Beiträge
    109
    Danke
    33
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ungültiger Datentyp eines Array Ausdrucks!

  5. #4
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Versuchs mal mit

    Code:
    .DX[19,1]

  6. Folgender Benutzer sagt Danke zu Chefmech für den nützlichen Beitrag:

    hoT (20.03.2010)

  7. #5
    hoT ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.03.2009
    Beiträge
    109
    Danke
    33
    Erhielt 1 Danke für 1 Beitrag

    Standard

    INT_TO_BOOL(WORD_TO_INT(WORD_TO_BLOCK_DB(45).DX[19,1])) := test_bool;

    Ich möchte von test_bool einen Wert in den DB45 schreiben. Bekomme aber Fehlermeldung das ein Operat fehlt...

  8. #6
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Code:
    INT_TO_BOOL(WORD_TO_INT(WORD_TO_BLOCK_DB(45).DX[19,1])) := test_bool;
    Der Typecast Opeartor Int_to_bool ist da völlig falsch am Platz, du kannst nur den Wert rechts vom zuordnungsoperator (:=) casten.

    Code:
    WORD_TO_BLOCK_DB(45).DX[19,1] := test_bool;

  9. Folgender Benutzer sagt Danke zu Chefmech für den nützlichen Beitrag:

    hoT (20.03.2010)

  10. #7
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Musst ev. 45 im Word-format schreiben

    16#2D oder w#16#2D

    also:
    Code:
    WORD_TO_BLOCK_DB(16#2D).DX[19,1] := test_bool;
    oder so:
    Code:
    Code:
    WORD_TO_BLOCK_DB(INT_TO_WORD(45)).DX[19,1] := test_bool;
    Geändert von Chefmech (20.03.2010 um 19:04 Uhr)

  11. Folgender Benutzer sagt Danke zu Chefmech für den nützlichen Beitrag:

    hoT (20.03.2010)

Ähnliche Themen

  1. WORD_TO_BLOCK_DB in SCL
    Von Sourman im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 09.03.2011, 08:58
  2. Strukturierter Zugriff mit WORD_TO_BLOCK_DB
    Von nobug im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 07.03.2008, 11:52

Lesezeichen

Berechtigungen

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