TIA CPU 1200 V3.1 / V4.1 (TSEND) Funktioniert nicht

hat3

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich habe eine CPU 1215 V3.1 im Einsatz.
Dieser kommuniziert über UDP mit einer diversen Steuerung.

Jetzt habe ich eine 1215 V4.1 im Einsatz.
Jedoch ist es nun so, dass ich keine Daten über UDP senden kann bzw auch empfangen.

Der Code ist der gleiche. Lediglich die CPU ändert sich. Wie gesagt auf der V3.1 läuft das Problemlos.

Ich komme da wirklich nicht mehr weiter voran es liegen kann. Vielen Dank
 
Das (könnte) daran liegen, das die Siemensianischen Freunde an ziemlich vielen Schnittstellen der Kommunikationsbausteine von V3->V4 rumgebastelt haben.
Prüfe genauestens die bedien Bausteinhilfen der beiden Bausteinversionen ... auf Unterschiede.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe die Versionen (TU_Send, TSEND) überprüft. Bei beiden Versionen ist ein Senden nicht möglich. ab V4 soll TUSend verwendet werden was ich auch gemacht habe.
Bzw. ich bekomme nicht die Rückmeldungen "SendDone"
 
Nicht so viel Infos auf einmal, ich komm ja mit dem lesen gar nicht mehr mit.

Naja, kein SendDone heißt im Umkehrschluss aber Error, mit irgend einem Status dazu.
 
OK Sorry :) dann machen wir es mal richtig.

#TCON_ConnectionDescription.BLOCK_LENGTH := 16#40; // Byte 0-1 - Länge 64dez Byte (fest)
#TCON_ConnectionDescription.ID := #i_IPCONFIG_W_ConnectionID; // Byte 2-3 - Den Wert dieses Param. Startwert = 1
// müssen für die Anweisung TSEND_C,TRCV_C oder TCON undter ID angeben
#TCON_ConnectionDescription.CONNECTION_TYPE := 16#13; // Byte 4 - Input Word Verbindungstyp (19dez = UDP)
#TCON_ConnectionDescription.ACTIVE_EST := FALSE; // Byte 5 - Kennung für die Art des Verbindugsaufbaus/UDP immer := false/
#TCON_ConnectionDescription.LOCAL_DEVICE_ID := #iUSINT_DeviceID; // Byte 6 - Kennung für die lokale PN/IE - Schnittstelle
#TCON_ConnectionDescription.LOCAL_TSAP_ID_LEN := 16#2; // Byte 7 - Wert 2 falls Verbindungstyp = 19 (UDP)
#TCON_ConnectionDescription.REM_SUBNET_ID_LEN := 16#0; // Byte 8 - Wird nicht verwendet
#TCON_ConnectionDescription.REM_STADDR_LEN := 16#0; // Byte 9 - Standard 0
#TCON_ConnectionDescription.REM_TSAP_ID_LEN := 16#0; // Byte 10 - 0 falls = 19 (UDP)
#TCON_ConnectionDescription.NEXT_STADDR_LEN := 16#0; // Byte 11 - Wird nicht verwendet
#TCON_ConnectionDescription.LOCAL_TSAP_ID[1] := #i_IPCONFIG_UInt_LocalPort.%B1; // Byte 12 - lokaler Port HIGH BYTE
#TCON_ConnectionDescription.LOCAL_TSAP_ID[2] := #i_IPCONFIG_UInt_LocalPort.%B0; // Byte 13 - lokaler Port LOW BYTE
#TCON_ConnectionDescription.LOCAL_TSAP_ID[3] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[4] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[5] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[6] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[7] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[8] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[9] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[10] := 16#0; // Byte 21
#TCON_ConnectionDescription.LOCAL_TSAP_ID[11] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[12] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[13] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[14] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[15] := 16#0;
#TCON_ConnectionDescription.LOCAL_TSAP_ID[16] := 16#0; // Byte 27

die restlichen sind Null


#TUSEND_Instance(REQ :=
#X_start_Send_intern AND NOT #ioX_Start_External AND #iX_Clock_1Hz,
ID := #i_IPCONFIG_W_ConnectionID,
LEN := 16 + #XINT_Send_Length,// Header+RestLänge
DONE => #X_SendDone,
ERROR => #X_SendError,
STATUS => #XW_SendStatus,
DATA := #UDT_DataSend,
ADDR := #TADDR_Param_Send,
BUSY => #X_SendBusy);

--> hier bekomme ich keinen Error. Der Status ist auf 7000.


#TURCV_Instance(EN_R := (#iX_Clock_1Hz AND NOT #X_TURCV_Busy),
ID := #i_IPCONFIG_W_ConnectionID,
LEN := 148,
NDR => #X_RCV_NDR,
DATA := #UDT_DataReceive,
ADDR := #TADDR_Param_Recv,
BUSY => #X_TURCV_Busy,
STATUS => #XW_TURCV_Status,
ERROR => #X_TURCV_Error);

--> wenn nichts gesendet werden kann wird auch nichts empfangen :). Status auf 7000
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Deine TCON Connection ist auf jedenfall schon mal noch das alte TCON_Param, und nicht das neue TCON_IP_V4,
die Unterschiede sind nicht extrem, aber doch deutlich genug, das musst du also schon mal auf jeden Fall anpassen.

Mfg
Manuel
 
In der Hilfe verweist der TCON Baustein beim Parameter auf Datentyp TCON_Param. Habe die Struktur TCON_IP_V4 zwar angelegt aber ein Verweis auf den Connect wird nicht akzeptiert.
 
Du kannst einstellen welche Version von TCON du verwendest.
Ich würde die Version auf die Einstellen die du bei 3.1 verwendest wo auch dein Code für geschrieben wurde.

TCON.png

Gruß

Jens
 
Du kannst einstellen welche Version von TCON du verwendest.
Ich würde die Version auf die Einstellen die du bei 3.1 verwendest wo auch dein Code für geschrieben wurde.
Ist zwar zweifellos richtig, aber eigentlich nur etwas was man als Quick, und vor allem Dirty bezeichnen kann.
Besser einmal die paar Verbindungsparameter umschreiben ... Vorteil wäre dann noch so nebenbei: Auch 1500er tauglich.
 
Wenn denn die 3.1 auch die höhere Version kann würde ich das auch so machen.
Ich sehe aber das man in der 3.1 auch TCON V4.0 nehmen kann dann würde ich das für alle hoch rüsten wie MSB schrieb.

Ist auch nicht viel Arbeit, habe das schon für meinen Kommunikationsbaustein gemacht.

Wollte nur aufzeigen das man die Version der verwendeten Bausteine ändern kann, da es die meissten nicht wissen.



Gruß

Jens
 
Zurück
Oben