Step 7 TCP erbindung mit SCL

Ahhh, Du hast wohl SendPointer "AT" TempPointerSend deklariert - das hast Du uns hier nicht verraten. So wird also die Adresse in TempPointerSend um 2 Byte höher gesetzt. Wie sieht eigentlich die Deklaration Deines Bausteins und der relevanten Variablen aus? Ist der Baustein ein FB oder ein FC?
Code:
VAR_TEMP
  TempPointerSend : ANY;
  SendPointer AT TempPointerSend : STRUCT
  ...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein ... sie müßte nur so heißen :
Code:
TempPointerSend := AT_SENDE_STRING.Daten ;
immer unter der Berücksichtigung meines Vorschlages von eben und das die neue Struktur dann "AT_Sende_String" heißt ...
Dadurch kannst du dir dann die folgenden 3 Zeilen sparen (die irgendwann ganz sicher zu Verwirrung führen).

Gruß
Larry
 
Hmm ja ich sehe gerade dass diese Zeile
Code:
[COLOR=#333333][FONT=Courier]TempPointerSend := SENDE_STRING;[/FONT][/COLOR]
ziemlich überflüssig ist.
Die Zeile ist tatsächlich irreführend - doch ohne diese Zeile würde Dein Code nicht funktionieren. Warum? Das schrieb ich bereits im Beitrag #14:
Wenn Du einen ANY zusammenbastelst, dann mußt Du den ANY auch komplett zusammenbasteln - in Deinem Code fehlt die Initialisierung des "Anypointer.BYTE0" mit der ANY-Syntax-ID 16#10.

Harald
 
Also das Ganze ist ein FB. Die Deklaration sieht wie folgt aus:

Code:
VAR_TEMP    
    //Pointer für Sendebereich
    TempPointerSend : ANY;                 
    SendPointer AT TempPointerSend : STRUCT
    Byte0 : BYTE;                               //Byte 0
    TYP : BYTE;                                 //Daten/Parametertyp
    ANZ : WORD;                                 //Länge
    DBNr : WORD;                                //DB-Nummer
    BZ : DWORD;                                 //Bereichszeiger
    END_STRUCT;

Ich hab jetzt diese Zeile
Code:
[COLOR=#333333][FONT=Courier]TempPointerSend := SENDE_STRING;[/FONT][/COLOR]
rausgeschmissen und es funktioniert immer noch. Wenn ich den DB online öffne steht unter TSEND.DATA auch der korrekte Pointer auf den SENDESTRING um genau 2 Byte verschoben.
 
@Azrael:
Ich wollte dich nicht nerven mit meinem Beitrag - nur helfen.
Übertrag doch mal den I_DB deines FB neu auf die CPU ... funktioniert es dann immer noch ...?

Keine Sorge, ihr nervt nicht. Ich bin für jede konstruktive Kritik dankbar. Nur so kann man neues lernen.
Also den I_DB kann ich durchaus neu auf die CPU laden, ich kann die CPU auch urlöschen oder den DB neu initialisieren. Funktioniert alles einwandfrei.

Unbenannt.jpg

PS: der SENDESTRING liegt bei DBX140

@PN/DP ich hab das mit dem Byte0 jetzt auch mit eingefügt.
 
Zurück
Oben