Step 7 keine Verbindung bei offener TCP/IP-Kommunikation mit CPU 314C-2PN/DP

Bär1971

Level-1
Beiträge
220
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe ein Problem mit dem Verbindungsaufbau zu einem Teilnehmer über TCP/IP. Ein identisches Projekt läuft schon mit einer CPU 315-2PN/DP fehlerfrei.
In dieser Anlage ist aber eine CPU 314C-2PN/DP eingesetzt.
Die IP-Adressen etc. sind eingestellt und sowohl bei der CPU wie auch beim Teilnehmer (ein SICK-Inspector) ebenfalls identisch mit der älteren Anlage.
Somit ist die Hardware- wie auch die Softwarekonfiguration identisch zur älteren Anlage (bis auf den CPU-Typ). Laut Fa. Sick sollte es egal mit welcher CPU funktionieren. Das Problem scheint in dem Siemens Baustein TCON begründet zu sein.

Es sollen 2 Verbindungen aufgebaut werden. Im OB100 werden die entsprechenden REQ-Bits angestossen. Die TCON-Bausteine bekommen also ihren Startauftrag. Allerdings geben sie weder DONE noch ERROR aus. Der Status steht bei 7000 (Warten). Verbindungen werden keine aufgebaut und auch in der Diagnose werden keine Verbindungen angezeigt.

Was mir schon aufgefallen ist: für die "local device ID" (Auskunft in der Hilfe zum UDT65 TCON_STRUCT) gibt es nur folgende ID´s:

local_device_id BYTE B#16#02 · B#16#00: Kommunikation über CP 443-1 (nur bei S7-400 und connection_type = B#16#12). Zulässige CPs: CP443-1EX4x, CP443-1EX20, CP443-1GX20, CP443-1EX30, CP443-1GX30· B#16#01: Kommunikation über die IE-Schnittstelle auf Interface-Steckplatz 1 (IF1) bei WinAC RTX (nur TCP)· B#16#02: Kommunikation über die integrierte IE-Schnittstelle bei den CPUs 315-2 PN/DP und 317-2 PN/DP· B#16#03: Kommunikation über die integrierte IE-Schnittstelle bei der CPU 319-3 PN/DP· B#16#05: Kommunikation über die integrierte IE-Schnittstelle bei den CPUs 414-3 PN/DP, 416-3 PN/DP, 416-3F PN/DP und 41x-5H PN/DP (Rack 0)· B#16#06: Kommunikation über die IE-Schnittstelle auf Interface-Steckplatz 2 (IF2) bei WinAC RTX (nur TCP)· B#16#0B. Kommunikation über die IE-Schnittstelle auf Interface-Steckplatz 3 (IF3) bei WinAC RTX (nur TCP)· B#16#0F: Kommunikation über die IE-Schnittstelle auf Interface-Steckplatz 4 (IF4) bei WinAC RTX (nur TCP)· B#16#10: Kommunikation über CP 443-1 (nur bei S7-400H und connection_type = B#16#12), falls der CP in Rack 1 oder einem zugehörigen Erweiterungs-Rack steckt· B#16#15: Kommunikation über die integrierte IE-Schnittstelle bei den CPUs 41x-5H PN/DP (Rack 1)

Dennoch muss es doch möglich sein Verbindungen auch mit einer 314C-2 PN/DP aufzubauen. Schliesslich sind die Angaben im Handbuch zu den Baugruppendaten was die TCP-Verbindungen angeht zur CPU 315-2 PN/DP identisch.

Hier ein Ausschnitt des Programms:

Netzwerk 1
[ code ]

// Set the IP-Address of the SICK Inspector
L 192
T "TCON_Parameter1".CONNECT.TCON_PARAMETER.rem_staddr[1]
T "TCON_Parameter2".CONNECT.TCON_PARAMETER.rem_staddr[1]
L 168
T "TCON_Parameter1".CONNECT.TCON_PARAMETER.rem_staddr[2]
T "TCON_Parameter2".CONNECT.TCON_PARAMETER.rem_staddr[2]
L 1
T "TCON_Parameter1".CONNECT.TCON_PARAMETER.rem_staddr[3]
T "TCON_Parameter2".CONNECT.TCON_PARAMETER.rem_staddr[3]
L 110
T "TCON_Parameter1".CONNECT.TCON_PARAMETER.rem_staddr[4]
T "TCON_Parameter2".CONNECT.TCON_PARAMETER.rem_staddr[4]

// Set the local device ID (in this case S7-315)
L B#16#2 // See Step7 help system (UDT65)
T "TCON_Parameter1".CONNECT.TCON_PARAMETER.local_device_id
T "TCON_Parameter2".CONNECT.TCON_PARAMETER.local_device_id

[ /code ]

Netzwerk 2
[ code ]

// Set the connection identifier for the first connection
L W#16#1
T "TCON_Parameter1".CONNECT.TCON_PARAMETER.id

// Set the port address of the SICK Inspector for the Command channel
// (see SOPAS configuration)
L 2115
T DB50.DBW 40

// Establish a TCP connection
CALL "TCON" , "fbTCON1"
REQ :="TCON_Parameter1".CONNECT.REQ // Set in OB100
ID :="TCON_Parameter1".CONNECT.TCON_PARAMETER.id
DONE :="TCON_Parameter1".CONNECT.DONE
BUSY :="TCON_Parameter1".CONNECT.BUSY
ERROR :="TCON_Parameter1".CONNECT.ERROR
STATUS :="TCON_Parameter1".CONNECT.STATUS
CONNECT:="TCON_Parameter1".CONNECT.TCON_PARAMETER

SET
U "TCON_Parameter1".CONNECT.DONE
SPBN _2a
SET
R "TCON_Parameter1".CONNECT.REQ
_2a: NOP 0

[ /code ]

Netzwerk 3

[ code ]

// Set the connection identifier for the second connection
L W#16#2
T "TCON_Parameter2".CONNECT.TCON_PARAMETER.id

// Set port address of the SICK Inspector for the Result channel
// (see SOPAS configuration)
L 2114
T DB51.DBW 40

// Establish a TCP connection
CALL "TCON" , "fbTCON2"
REQ :="TCON_Parameter2".CONNECT.REQ // Set in OB100
ID :="TCON_Parameter2".CONNECT.TCON_PARAMETER.id
DONE :="TCON_Parameter2".CONNECT.DONE
BUSY :="TCON_Parameter2".CONNECT.BUSY
ERROR :="TCON_Parameter2".CONNECT.ERROR
STATUS :="TCON_Parameter2".CONNECT.STATUS
CONNECT:="TCON_Parameter2".CONNECT.TCON_PARAMETER

SET
U "TCON_Parameter2".CONNECT.DONE
SPBN _3a
SET
R "TCON_Parameter2".CONNECT.REQ
_3a: NOP 0

[ /code ]


Wer kennt sich hier richtig aus und kann mich unterstützen?
 
Bei CPU314C-2PN/DP muß die "local device ID" B#16#02 sein (die PN-Schnittstelle ist X2)

Wenn in der Diagnose die Verbindung nicht angezeigt wird, dann wurde TCON noch nicht erfolgreich ausgeführt.

Vermutlich müssen in Deinen UDT65 noch mehr Werte eingetragen werden als in Deinem Programm zu sehen sind, wie z.B. Adress-Längen, TSAP-Längen, ...
Wenn sonst alles identisch zwischen den Anlagen ist, dann solltest Du den UDT65 (bzw. DB) der 315-Station nehmen können und nur die "local device ID" auf B#16#02 ändern und die IP-Adressen anpassen müssen.
Ist Deine 315-2PN/DP vielleicht eine ältere mit Firmware V2.(?) ? Beginnt da der local_TSAP mit "E0 02"? Das müsste bei der 314C-2PN/DP wegfallen.

Ich empfehle Dir, mal den OC Wizzard zu benutzen und dann schaun, was der so alles einträgt.

Welche "local_device_id" parametrieren Sie, um mit dem FB65 "TCON" eine Verbindung für die offene Kommunikation über Industrial Ethernet aufzubauen?
Wie werden die Kommunikationsbausteine FB63 "TSEND", FB64 "TRCV", FB65 "TCON" und FB66 "TDISCON" programmiert, um das TCP Protokoll für den Datenaustausch über die integrierte PROFINET-Schnittstelle einer S7-300 bzw. S7-400 CPU zu nutzen?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

erstmal danke für Deine Antwort.

die "local device ID" ist ja B#16#2 (was laut der Hilfe zum UDT aber zu einer CPU315 gehört)
Die 315´er ist ca. 5 Wochen alt, die 314´er 2 Wochen alt. Die Firmwarestände sollten daher nicht wirklich das Problem sein.

Ich vermute das sobald der TCON richtig ausgeführt wird der Rest des Programms auch funktioniert.

Die Anbindung ist exakt identisch bei beiden Anlagen. Die gleichen IP-Adressen bei den CPUen und bei den (auch identischen) Kameras.
Die exakt gleiche Softwareansteuerung zwischen CPU und Kamera. Die DB´s, FB´s und der UDT welche zur Kommunikation und dem Programm für den Kamerateil gehören stammen 1:1 aus der Anlage mit der 315´er.

Mir ist die Kommunikation über TCP noch zu unbekannt. Da hab ich Schwierigkeiten die Dinge die du angesprochen hast (Adress-Längen, TSAP-Längen zum Eintragen in den UDT) zuzuordnen. Mir ist da auch völlig unklar was bei den CPUen intern für Unterschiede sein sollen/können da doch auch die Angaben in den Baugruppendaten identisch zueinander sind.

Ich muss Montag mal schauen wo ich den OC-Wizzard herbekomme. Oder ist der Bestandteil von Step7prof?
 
Ich muss Montag mal schauen wo ich den OC-Wizzard herbekomme. Oder ist der Bestandteil von Step7prof?

Den gibt es HIER

ODER

von deiner DVD:
Ab STEP 7 V5.5 SP1 wird der OC Wizard auch auf der STEP 7 DVD mitgeliefert. Die aktuellste Version
des OC Wizard wird kostenlos zum Download angeboten.


P.S. Beachte, das sich der OCW in deine S7-Installation "einklinkt" !
 
Zuletzt bearbeitet:
Die TCON-Bausteine bekommen also ihren Startauftrag. Allerdings geben sie weder DONE noch ERROR aus.

Nach einem REQ muss DONE oder ERROR kommen, egal wie falsch der CONNECT belegt ist.

Zieh den TCON Aufruf mal an eine Stelle bei der sichergestellt ist, dass sie (OB1) zyklisch bearbeitet wird.
2 neue Variablen an STATUS / ERROR und mit dem ERROR Bit Status umkopieren.
REQ manuell anstoßen mit positiver Flanke.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nach einem REQ muss DONE oder ERROR kommen, egal wie falsch der CONNECT belegt ist.

das REQ-Bit wird nur im OB100 gesetzt. Das heist das es nirgends im Programm nochmal gesetzt wird. Das DONE oder ERROR setzt das REQ-Bit wieder zurück.
Da das Bit also high ist und high bleibt, sagt mir das, das der TCON nicht arbeitet. Laut seinem Status von 7000 wartet er ja auch auf Anweisung. setze ich das REQ-Bit von Hand zurück und löse es nochmal von Hand neu aus bekomme ich absolut identisches Verhalten. Es bleibt high bei Status 7000.
 
Hallo zusammen,

Problem gelöst. Unwahrscheinlich, undenkbar, aber gelöst. Ich sagte ja, das es eine 314C-CPU ist. Ein Analogausgang wird dazu benutzt eine Regelplatine mit einem Sollwert zu versorgen. Durch einen Kabeldreher im vorkonfektionierten Kabel ist der GND der Steuerspannung mit der MANA der CPU verbunden worden. Seit diese Verbindung korrigirt wurde baut die CPU problemlos die TCP/IP-Kommunikation mit der Kamera auf.

Also der Siemens-Support konnte mir hier keine Antwort geben was die MANA die ja eigentlich galvanisch getrennt ist von der UB, mit der PN-Schnittstelle gemeinsam hat... Aber der verbundene GND/MANA ist der einzigste Unterschied zum Zustand vom Freitag, für mich nicht nachvollziehbar, für Support nicht nachvollziehbar, einfach SIEMENS eben...
 
Zurück
Oben