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

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

Thema: DWord to Array

  1. #1
    Registriert seit
    13.01.2010
    Beiträge
    158
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, kurze Frage was stimmt daran noch nicht? in der Zeile
    Array_INDWord AT INDWord : ARRAY[0..3] OF BYTE;
    kommt der Fehler, der typ der sicht ist nicht mit dem typ der variablen verträglich.
    Code:
    FUNCTION F_DWordToArray : Void
    VAR_INPUT
        INDWord : DWORD;
        Array_INDWord AT INDWord : ARRAY[0..3] OF BYTE;
    END_VAR
    VAR_OUTPUT
        DWordToArray : ARRAY[0..3] OF BYTE;
    END_VAR
    VAR_Temp
        
    END_VAR
    BEGIN
        DWordToArray[1] := Array_INDWord[1];
        DWordToArray[2] := Array_INDWord[2];
        DWordToArray[3] := Array_INDWord[3];
        DWordToArray[4] := Array_INDWord[4];
    END_FUNCTION;
    Zitieren Zitieren DWord to Array  

  2. #2
    Registriert seit
    26.01.2010
    Beiträge
    181
    Danke
    5
    Erhielt 30 Danke für 25 Beiträge

    Standard

    Seh ich das richtig, daß du vier DWords in ein Array aus vier Bytes schreiben willst? Das wird aber eng...

  3. #3
    kai86 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2010
    Beiträge
    158
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    häää ne bin ich gerade doof ^^
    ich will ein dword rein bekommen und das mit 4 bytes maskieren und dann als array zurückgeben.

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    ich würde sagen, dass es funktioniert, wenn du die richtigen Indexe einträgst - also statt von 1..4 vielleicht lieber 0..3
    Gruß
    LL

  5. #5
    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

    Zitat Zitat von Dr.M Beitrag anzeigen
    Seh ich das richtig, daß du vier DWords in ein Array aus vier Bytes schreiben willst? Das wird aber eng...
    pressen! ...2 byte word -> 4 byte dword

    der nächste fehler kommt bestimmt, die arrays beginnen bei 0, wie sich das gehört
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #6
    kai86 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2010
    Beiträge
    158
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ok beginnen nun bei 0 aber der selbe fehler

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Der Compiler zeigt ja den Fehler an. Die Maus da drauf und dann "F1":

    Beschreibung:

    Der Datentyp einer Sicht muss mit dem Datentyp der Variablen kompatibel sein, auf die die Sicht zeigt. Die Variable gibt die Größe der Speicherbereichs vor. Der Speicherbedarf der Sicht darf gleich oder kleiner sein. Darüber hinaus gelten folgende Kombinationsregeln:


    Datentyp der
    Sicht: Datentyp der Variablen:


    Elementar
    Zusammen-
    gesetzt ANY/
    POINTER
    FB Deklaration einer Sicht in
    VAR, VAR_TEMP, VAR_IN
    oder VAR_OUT Elementar Zusammengesetzt ANY/POINTER xx xx x (1) x (1)
    Deklaration einer Sicht in
    VAR_IN_OUT Elementar ZusammengesetztANY/POINTER x x
    FC Deklaration einer Sicht in
    VAR oder VAR_TEMP Elementar Zusammengesetzt ANY/POINTER xx xx x x
    Deklaration einer Sicht in
    VAR_IN, VAR_OUT oder
    VAR_IN_OUT Elementar ZusammengesetztANY/POINTER x x
    (1) Any_Pointer in VAR_OUT nicht erlaubt.
    Leider wird das hier etwas verhackstückt, aber wenn ich das richtig interpretiere, kann in einem FC in einem Var_in die Sicht nur von einem elementarer Typ auf einen elementaren oder von einem zusammengesetzten Typ auf einen zusammengesetzten weisen.
    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

  8. #8
    kai86 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2010
    Beiträge
    158
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Byte und DWord sind doch Elementar ....

    aber Array vermute ich mal nicht, danke ich teste mal

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    so sieht es aus :
    Code:
        DWordToArray[1] := Array_INDWord[1];
        DWordToArray[2] := Array_INDWord[2];
        DWordToArray[3] := Array_INDWord[3];
        DWordToArray[4] := Array_INDWord[4];
    und so sollte es aussehen :
    Code:
        DWordToArray[0] := Array_INDWord[0];
        DWordToArray[1] := Array_INDWord[1];
        DWordToArray[2] := Array_INDWord[2];
        DWordToArray[3] := Array_INDWord[3];
    ... entsprechend der Deklaration deines Code-Beispiels ...

    Falls es nicht funktioniert, dann poste doch mal deinen "neuen" Code ...

    Gruß
    LL

  10. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Entweder nutzt du im FC den Var-Temp-Bereich für die Sicht, oder du nimmst einen FB statt eines FC!

    PS: Nein, Array ist nicht elementar, sondern zusammengesetzt!
    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

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Array an DWORD übergeben (SCL)
    Von MatthiasH24 im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 30.01.2014, 20:04
  3. Dword auf Bit Array übertragen
    Von SCM im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 22.07.2011, 14:22
  4. Antworten: 5
    Letzter Beitrag: 24.06.2010, 10:18
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Lesezeichen

Berechtigungen

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