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

Ergebnis 1 bis 8 von 8

Thema: rohdaten sendn empfangn

  1. #1
    Registriert seit
    12.08.2008
    Beiträge
    207
    Danke
    23
    Erhielt 4 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich habe
    s7 315 pn/dp (unterstützt kein BSEND/BRECV)
    step 7 v5.4 sp 3
    wincc v7.0

    ich habe in wincc projekt (nicht integriert in step 7 project) ein var (myrawtag) mit typ ROHDATEN deklarirt (
    datenbereich: DB1
    adressierung:wort, ab DBW 0
    läng is 20)

    IN SPS habe ich DB1(hat 60 bytes läng) geschribn und geladen
    ich hab in wincc projekt ein skript (hintr ein buton) geschrieben
    Code:
    #define RawTag "myrowtag"
    BOOL bok;
    struct {
           Int integer0;
           int integer2;
           int integer4;
           } RStruct;
    bok=GetTagRawState(RawTag,(BYTE *)&RStruct,sizeof(RStruct));
     
    printf("integer0=%d", RStruct.integer0);
    wen ich die buton drücke bekome ich ein komisch wert
    habe ich ein fehler gemacht??
    kan mir jemand helfen?
    danke
    Zitieren Zitieren rohdaten sendn empfangn  

  2. #2
    Registriert seit
    31.08.2008
    Beiträge
    132
    Danke
    20
    Erhielt 24 Danke für 19 Beiträge

    Standard

    wenn dein programm mit der selben tastatur programmiert wurde (bzw. die selbe sicherheit in der programmiersprache vorhanden ist wie im deutschen) so solltest du erstmal dort ansetzen, ist ja schrecklich zu lesen dein text

    ansonsten meine ich das es so aussehen muß:

    Code:
    bok=GetTagRawState(RawTag,(BYTE *) & RStruct,sizeof(RStruct));
    Der einzige Weg zum Wissen, ist zu erkennen was man nicht weiß, und auch niemals wissen wird!

  3. #3
    WIX ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.08.2008
    Beiträge
    207
    Danke
    23
    Erhielt 4 Danke für 3 Beiträge

    Standard

    ich hab bemerkt
    Code:
     
     
    sps-wert                wincc-wert 
    0                              0
    1                            16777472
    2                            16777472*2= ??
    ...
    ..
    das heiß ich mus durch 16777472 teiln

    ich find das ganze ich komish
    habt ihr vorschläge??

    @ SBS-USER
    wegem dem sch...text lieS bitte meine signatur
    Geändert von WIX (14.01.2009 um 10:24 Uhr)

  4. #4
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    16777472 paßt nicht in eine Integer. Wertebereich 0 bis 65535 oder -32768 bis 32767. Das Problem scheint zu sein, dass einer eine 32-Bit-Integer will aber nur eine 16-Bit-Integer vorliegt. Wie ist die genaue Deklaration dieses Teils im DB? Tip: Die Werte auch einfach mal hexadezimal anzeigen lassen. Da fällt so manches schneller auf als bei dezimal.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  5. #5
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Zitat Zitat von SBC-User Beitrag anzeigen
    wenn dein programm mit der selben tastatur programmiert wurde (bzw. die selbe sicherheit in der programmiersprache vorhanden ist wie im deutschen) so solltest du erstmal dort ansetzen, ist ja schrecklich zu lesen dein text

    ansonsten meine ich das es so aussehen muß:

    Code:
    bok=GetTagRawState(RawTag,(BYTE *) & RStruct,sizeof(RStruct));
    Reagiert WinCC auf diese Schreibweise empfindlich oder ist dies ein reiner Schönheitstip? Ich erkenne nämlich den Unterschied der beiden Codeschreibweisen (bis auf Blank) nicht genau.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  6. #6
    WIX ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.08.2008
    Beiträge
    207
    Danke
    23
    Erhielt 4 Danke für 3 Beiträge

    Standard

    hallo Rainer

    bok=GetTagRawState(RawTag,(BYTE *) & RStruct,sizeof(RStruct));
    ist genauso wie
    bok=GetTagRawState(RawTag,(BYTE *)&RStruct,sizeof(RStruct));

    ich habe was bemerkt, das LOW_BYTE und HIGH_BYTE getauscht sind
    zum beisp

    wert_sps= db20.dbw0= w#16#0077
    ergibt
    wert_wincc=w#16#7700

    ist das ein eigenschaft von rohdatn???

    danke

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

    Standard

    Ich glaube ja, das war so. Die Rohdaten sind einfach nur die Bytefolge aneinandergereiht.
    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. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    WIX (14.01.2009)

  9. #8
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von WIX Beitrag anzeigen
    hallo Rainer

    bok=GetTagRawState(RawTag,(BYTE *) & RStruct,sizeof(RStruct));
    ist genauso wie
    bok=GetTagRawState(RawTag,(BYTE *)&RStruct,sizeof(RStruct));

    ich habe was bemerkt, das LOW_BYTE und HIGH_BYTE getauscht sind
    zum beisp

    wert_sps= db20.dbw0= w#16#0077
    ergibt
    wert_wincc=w#16#7700

    ist das ein eigenschaft von rohdatn???

    danke
    Und diese Dreher erkennt man in der Hexdarstellung eben sofort.
    Wie Ralle schreibt sind Rohdaten einfach ein Bytestream ohne irgend eine weitere Interpretation oder Drehung.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  10. Folgender Benutzer sagt Danke zu Rainer Hönle für den nützlichen Beitrag:

    WIX (14.01.2009)

Ähnliche Themen

  1. Rohdaten Zerlegen C
    Von PBO-WE im Forum HMI
    Antworten: 9
    Letzter Beitrag: 25.02.2011, 07:41
  2. WinCC VB Rohdaten
    Von Raydien im Forum HMI
    Antworten: 9
    Letzter Beitrag: 15.10.2010, 10:57
  3. Rohdaten in Variablen schreiben!?
    Von Deyn im Forum HMI
    Antworten: 12
    Letzter Beitrag: 22.06.2010, 16:48
  4. WinCC Rohdaten
    Von Jochen Kühner im Forum HMI
    Antworten: 0
    Letzter Beitrag: 16.07.2007, 12:58
  5. Rohdaten mit C# schreiben
    Von Bender25 im Forum HMI
    Antworten: 7
    Letzter Beitrag: 07.11.2006, 11:18

Lesezeichen

Berechtigungen

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