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

Ergebnis 1 bis 4 von 4

Thema: Rohdatentyp

  1. #1
    Registriert seit
    16.09.2008
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich habe ein Problem.

    Ich habe in WinCC V6.2 eine Variable "rohdatenvar" vom Variablentyp Rohdaten mit der Länge 8 Byte. (Block senden/empfangen)

    Nun will ich diese Variable in WinCC auslesen. Laut Hilfe ist das nur in einem Skript möglich und dem Befehl GetTagRaw. Leider habe ich nicht den gewünschten Erfolg. Ich erhalte nur Nullen.

    Ich verwende folgendes Skript:

    #define DATA_SIZE 8
    BYTE* byData[DATA_SIZE];
    char szUhrzeit[30];

    //Get the current values of the tag
    GetTagRaw("rohdatenvar",*byData,DATA_SIZE);



    sprintf(szUhrzeit,"%02d:%02d:%02d",*(byData+1),*(byData+2),*(byData+3));


    Wende ich den Befehl GetTagRaw falsch an oder liegt es am Array?
    Muss auf S7-Seite ein bestimmter Datentyp verwendet werden?
    Oder habe ich sonst eine falsche Einstellung gemacht oder eine vergessen?

    Wenn ich in WinCC Textvariablen benütze, dann werden die ersten zwei Bytes der Variable als Header verwenden, die unteranderem die Länge des nachfolgenden Strings enthalten.
    Beinhaltet eine Rohdatenvariable ebenfalls einen solchen Header?

    Dankeschön.
    Zitieren Zitieren Rohdatentyp  

  2. #2
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    wo hast du den Script her? Bist du sicher, dass du über die Pointer die richtige Bereiche liest? Ich denke das stimmt nicht ganz..hab aber jetzt keine Zeit zu prüfen.
    Rohdatenvariablen haben keine Header usw.

    V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren C Script  

  3. #3
    Registriert seit
    19.07.2006
    Beiträge
    29
    Danke
    1
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Zitat Zitat von ddb Beitrag anzeigen
    #define DATA_SIZE 8
    BYTE* byData[DATA_SIZE];
    char szUhrzeit[30];

    //Get the current values of the tag
    GetTagRaw("rohdatenvar",*byData,DATA_SIZE);



    sprintf(szUhrzeit,"%02d:%02d:%02d",*(byData+1),*(byData+2),*(byData+3));
    Es ist bei mir zwar schon sehr, sehr lange her, daß ich was mit C gemacht habe, aber probiers mal so (& (= Adressoperator) anstatt *):

    GetTagRaw("rohdatenvar",&byData, DATA_SIZE);

    Beim sprintf gilt das gleiche, also & anstatt *.

  4. #4
    Registriert seit
    23.08.2004
    Beiträge
    565
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich machs so

    (ist nur ein auszug aber sollte helfen)


    Code:
    #define RawTag "LE_I0022"
    
    struct {
           WORD PEW;
           FLOAT MBA;
           FLOAT MBE;
           FLOAT Soll1;
           FLOAT Soll2;
           FLOAT TGO;
           FLOAT TGU;
           FLOAT Soll3;
           FLOAT Soll4;
    
           } RStat;
    
     
    GetTagRawState(RawTag,(BYTE *)&RStat,sizeof(RStat),&TagState);

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 23.06.2010, 08:57
  2. WINCC 7.0 Rohdatentyp auswerten ?
    Von sailor im Forum HMI
    Antworten: 4
    Letzter Beitrag: 25.05.2010, 10:06

Stichworte

Lesezeichen

Berechtigungen

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