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

Results 1 to 8 of 8

Thread: rohdaten sendn empfangn

  1. #1
    Join Date
    12.08.2008
    Posts
    211
    Danke
    23
    Erhielt 4 Danke für 3 Beiträge

    Default


    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
    Reply With Quote Reply With Quote rohdaten sendn empfangn  

  2. #2
    Join Date
    31.08.2008
    Posts
    140
    Danke
    20
    Erhielt 24 Danke für 19 Beiträge

    Default

    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 is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    12.08.2008
    Posts
    211
    Danke
    23
    Erhielt 4 Danke für 3 Beiträge

    Default

    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
    Last edited by WIX; 14.01.2009 at 10:24.

  4. #4
    Join Date
    27.10.2005
    Location
    Schwäbisch Gmünd
    Posts
    5,646
    Danke
    716
    Erhielt 1,001 Danke für 813 Beiträge

    Default

    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

    Die Kritik an anderen hat noch niemandem die eigene Leistung erspart (Noël Coward)

  5. #5
    Join Date
    27.10.2005
    Location
    Schwäbisch Gmünd
    Posts
    5,646
    Danke
    716
    Erhielt 1,001 Danke für 813 Beiträge

    Default

    Quote Originally Posted by SBC-User View Post
    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

    Die Kritik an anderen hat noch niemandem die eigene Leistung erspart (Noël Coward)

  6. #6
    WIX is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    12.08.2008
    Posts
    211
    Danke
    23
    Erhielt 4 Danke für 3 Beiträge

    Default

    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
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    14,038
    Danke
    793
    Erhielt 3,227 Danke für 2,288 Beiträge

    Default

    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
    Join Date
    27.10.2005
    Location
    Schwäbisch Gmünd
    Posts
    5,646
    Danke
    716
    Erhielt 1,001 Danke für 813 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by WIX View Post
    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

    Die Kritik an anderen hat noch niemandem die eigene Leistung erspart (Noël Coward)

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

    WIX (14.01.2009)

Similar Threads

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

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •