TIA Kommunikation über TSEND_C TRCV_C - Fehlercode 8A7F

Moritz_

Level-2
Beiträge
41
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen, ich arbeite derzeit an einem Projekt bei dem 3 Steuerungen (1200er) miteinander kommunizieren sollen. Die Kommunikation findet über ein Fernmeldekabel mit Hilfe eines Scalance M826-2 statt.
Ich hatte die Kommunikation bereits am laufen (Tia V16), doch nun mussten wir auf V18 umstellen und ich wollte am Freitag "schnell" das Programm testen. Plötzlich funktionierte nichts mehr. Auch als ich die Version mit der V16 einspielte kamen die gleichen Fehler.

Folgendes Vorgehen:
Ich hatte diese Programmiervorlage von Siemens gefunden, nach der ich das Ganze aufbaute.
Es wurde ein TSEND_C zusammen mit TRCV_C verwendet.
An dem "Connect" Eingang habe ich den Datentyp TCON_IP_RFC verwendet wie es in der Beschreibung für 1200er Steuerungen ab FW-V4.0 heißt, doch ich hatte es auch schon mit der "onboard-konfiguration" (blauer Werkzeugkoffer am Baustein) versucht.

In diesem Thread schrieb PN/DP, man solle nur einen ..._C Baustein verwenden. Auch das testete ich, ohne Erfolg.

Ich probierte auch den ADHOC auf true zu setzen und den TCP Modus (16#0B).

Hat jemand Erfahrungen mit den Bausteinen?
Ich kann mir fast nur vorstellen dass es ein Fehler40 ist (Fehler ist 40cm vor dem Bildschirm). Doch warum lief es zuvor und plötzlich nicht mehr.

Gruß Moritz
 

Anhänge

  • Connect_UDT.png
    Connect_UDT.png
    39,8 KB · Aufrufe: 20
  • RCV_Block.png
    RCV_Block.png
    31,6 KB · Aufrufe: 21
  • Send_block.png
    Send_block.png
    25,1 KB · Aufrufe: 20
Was sagt denn dieser Fehler aus ? Ich hab mal gegoogelt aber nix brauchbares gefunden.
In der TIA-Hilfe wird dieser Fehlercode auch nicht aufgeführt.

Du hast für dieselbe Connection ID = 1 zwei verschiedene Verbindungsbeschreibungen angegeben. Das dürfte nicht funktionieren (jedenfalls nicht gleichzeitig).
Ich habe die gleiche ID für den Sende und Empfangsbaustein. Ist das nicht richtig?
 
Du willst sicher auf derselben Verbindung Senden und Empfangen, das ist normal - dann musst du dieselbe Verbindung mit derselben Verbindungs-ID angeben. Du kannst aber nicht gleichzeitig verschiedene Verbindungs-Beschreibungen derselben Verbindungs-ID zuweisen, was du aber machst. Du hast zwei verschiedene Verbindungsbescheibungen (connectSend, connectRcv), die auch unterschiedliche Parameter (z.B. IP-Adresse RemoteAddress) haben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
zum Fehlercode 8A7F
8xyy Allgemeine Fehlerinformation, siehe Fehlerauswertung mit dem Ausgangsparameter RET_VAL
8x7F Interner Fehler. Dieser Fehlercode zeigt einen internen Fehler am Parameter x an.

bei TRCV_C
87yy Fehler im Parameter CONNECT
89yy Fehler im Parameter DATA
8Ayy Fehler im (ausgeblendeten) Parameter ADDR

Ich vermute, dass damit gemeint ist, dass bei der Verbindungsbeschreibung für TRCV_C eine andere IP-Adresse (RemoteAddress) angegeben ist als bei der Verbindungsbeschreibung für TSEND_C
 
dass bei der Verbindungsbeschreibung für TRCV_C eine andere IP-Adresse (RemoteAddress) angegeben ist als bei der Verbindungsbeschreibung für TSEND_C
Das scheint schon so zu passen.
Wenn ich das über den Konfigurations-Wizard (blauer Werkzeugkoffer) mache sieht es genauso aus, aber funktioniert auch genauso wenig...

Habe es jetzt auch ohne die Scalance versucht, nicht dass da der Fehler liegt und die Steuerungen sind nun direkt über einen Switch verbunden. Doch leider brachte auch das keine Besserung.
 

Anhänge

  • Konfig_tool.png
    Konfig_tool.png
    53,6 KB · Aufrufe: 4
Das scheint schon so zu passen.
Wenn ich das über den Konfigurations-Wizard (blauer Werkzeugkoffer) mache sieht es genauso aus, aber funktioniert auch genauso wenig...
Wie kann derselbe Kommunikationspartner gleichzeitig 2 verschiedene IP-Adressen haben??? Oder wie kann ein und dieselbe Verbindung gleichzeitig mit 2 Partnern kommunizieren?? Das kann nicht funktionieren. Merkste das selber?
 

Anhänge

  • Connect_UDT.png
    Connect_UDT.png
    41,3 KB · Aufrufe: 3
  • Konfig_tool.png
    Konfig_tool.png
    54,3 KB · Aufrufe: 3
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaube du verstehst es falsch.
PLC1 hat die 192.168.0.12, PLC2 die 192.168.0.13
Die PLC1 sendet Daten und ihr Kommunikationspartner ist PLC2 (192.168.0.13) sie soll auch die Kommunikation aufbauen.
PLC2 soll die Daten empfangen und ihr Partner ist PLC1 (192.168.0.12).


Die Kommunikation läuft nun.
Was der Fehler 8A7F nun genau bedeutet habe ich nicht herausgefunden.

Trotzdem möchte ich mal kurz meinen Vorgang schildern. Vielleicht sucht ja irgendwann jemand anderes auch nach dem Thema.

Ich hatte mein Testprojekt vollkommen leer gemacht und die Kommunikation mithilfe des Wizard-Tools aufgebaut. Zuvor hatte ich genau das selbe getan, doch hatte ich noch die alten Kommunikationsblöcke im Baustein (sie waren aber am EN abgeschaltet). Womöglich hat dort etwas durcheinander gefunkt.
Diese Testkommunikation lief dann.

Anschließend mein eigentliches Projekt aufgespielt und wieder Fehler gehabt.
Doch diesmal 80B7

80B7
  • Für Systemdatentyp TCON_Param:
    Fehler in einem der folgenden Parameter des Datenbausteins für Verbindungsbeschreibung: block_length, local_tsap_id_len, rem_subnet_id_len, rem_staddr_len, rem_tsap_id_len, next_staddr_len.
  • Für Systemdatentypen TCON_IP_V4 und TCON_IP_RFC:
    IP-Adresse des Partner-Endpunkts wurde auf 0.0.0.0 gesetzt.

Mir fiel auf dass ich den connection_type auf 16#0C (ISO-on-TCP) stehen hatte. Also stellte ich um auf 0B (TCP), denn so hatte ich es auch im Wizard eingestellt.
Dann kam aber der Fehler 80B6.

80B6Parametrierfehler im Parameter connection_type des Datenbausteins für Verbindungsbeschreibung.

Im Programmierguide sah ich dass bei TCP der Datentyp TCON_IP_V4 für den CONNECT Anschluss verwendet werden muss und dass in dem vom Wizard generierten DP auch der Port 2000 angegeben war. Dieser ist jetzt beim Sende-Block als RemotePort und beim Empfänger-Block als LocalPort angegeben.
 

Anhänge

  • Connect_UDT_funktionsfähig.png
    Connect_UDT_funktionsfähig.png
    45,1 KB · Aufrufe: 3
Zuletzt bearbeitet:
Ich glaube du verstehst es falsch.
Wo hast du geschrieben, dass deine zusammenhängenden Bilder der Verbindungsbeschreibungen aus verschiedenen Programmen verschiedener PLC stammen?

Es wurde ein TSEND_C zusammen mit TRCV_C verwendet.
Und damit meinst du auch TSEND_C in einem Programm und TRCV_C in einem anderen Programm einer anderen PLC???

Zwei verschiedene Verbindungsbeschreibungen mit derselben ID in einer PLC gleichzeitig geht jedenfalls nicht.
 
Zurück
Oben