Verständnisfrage 315PN UDP-Verbindung

hobby

Level-2
Beiträge
36
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich setze für meine Haussteuerung eine 315PN ein um eine UDP-Verbindung zu meinem IRTrans aufzubauen. Da ich das erste mal mit PN arbeite habe ich das Siemens TCP-Beispiel genommen und auf UDP umgebaut.
Soweit keine Probleme. Senden und Empfang laufen problemlos, aber was ich nicht nachvollziehen kann ist folgendes:

1. Am FB68 setze ich für ständigen Empfang EN_R statisch auf 1. Laut Dokumentation zeigt mir der FB mit Status 7001 Empfangsbereitschaft und mit Busy ob der Auftrag bearbeitet wird. In der Online-Ansicht ist aber Busy ständig gesetzt und der Status steht auf 7002 obwohl der FB keine Daten vom Partner bekommt.
Wie erkenne ich ob der FB wirklich Daten empfängt oder auf Daten wartet?

2. Wenn ich Sende- und Empfangsseitig eine zweite UDP-Verbindung aufbauen möchte rufe ich die FB's dann mit anderen Instanz-DBs auf oder muss ich nur andere Sende- und Empfangsdaten übergeben?

Danke
 
Mahlzeit.

Ich probiers mal.

Kenne die 315 PN nicht. Gehe erstmal davon aus, das der FB68 speziell
für die Profinet Geschichten zuständig ist.

Programmierst Du die IRTrans-Seite selber oder woher kennst Du den Telegrammaufbau ?

Erklär mir doch bitte mal Deinen Geräteaufbau ein wenig genauer, vielleicht kann ich Dir dann weiterhelfen.

Habe zumindest schon ein paar Sachen mit TCP/IP und UDP auf der S7 gemacht.
 
Hallo,

Der FB68-TURCV ist der Empfangs-FB für UDP-Verbindungen an der PN Schnittstelle der 315PN. Laut Handbuch wird die Verbindung über TCON initialisiert und für verschiedene Sende- und Empfängeradressen braucht nur der übergebene Parameter ADDR angepasst zu werden.

Soweit zum Handbuch. Was ist wenn ich an 2 oder 3 verschiedenen Adressen Senden bzw. Empfangen möchte? Rufe ich dann den FB nur mit verschiedenen ADDR-Parametern auf, oder muss der Instanz-DB auch angepasst werden?

Der IRTrans ist der Ethernet-Typ mit integrierter Datenbank. Zum Senden schicke ich per UDP nur einen String mit dem FB(Fernbedienungs)-Befehl. Empfangsmäßig kann im im IRTrans für jeden FB-Befehl eine Zeichenkette oder Binärdaten hinterlegen die dieser bei IR-Empfang per UDP rausschickt.

Zum Aufbau: Wie bereits geschrieben wird die komplette Haussteuerung von der 315 erledigt. Jetzt möchte ich über eine Fernbedienung Schaltvorgänge auslösen, dafür der IRTrans (1.Verbindung). Zugleich schicke ich per UDP von der 315 Kommandos an den Touchscreen-PC, auf dem ein Programm (HSInfoman) läuft, welches mir Störmeldungen und sonstiges über Sprachansage ausgiebt(2.Verbindung).

mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn Dein Kommunikationspartner ständig sendet, hast Du theoretisch auch ständig ein Busy anliegen. Zumindest solltest Du aber auch an Deinem NDR Ausgang des FB`s in zyklischen Abständen auch ein True bekommen.

Was Deinen mehrfachen Aufruf des FB68 angeht, mußt Du für jede Verbindung einen neuen Instanz DB verwenden. Würdest Du den gleichen I-Db verwenden, würdest Du damit die internen Variablen für unterschiedliche Kommunikationsaufrufe verwenden -> nicht gut:(
 
Laut dem Net-scanner findet keine Übertragung auf der Adresse und dem Port an dem die 315 empfängt statt, solange ich nichts über den IRTrans schicke. Mit jeder NDR-Flanke lese ich die empfangenen Daten ein.

Eigentlich sollte der Status des TURCV 7001 sein solange keine Daten ankommen, ist aber auf 7002. Der EN_R ist statisch auf 1 solange empfangen werden soll.
Wie gesagt Empfang und Senden läuft problemlos, ich möchte nur nicht anfangen zu senden wenn gerade wirklich empfangen wird.
 
Wenn Du Deinem Empfangspuffer leerst (von Hand) und deinen Kommunikationspartner ausschaltest, sollte sich Dein Empfangspuffer dann auch nicht mehr füllen. Ist das dann auch so?

Ganz davon abgesehen darfst Du aber auch senden, wenn Du gleichzeitig was empfängst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe jetzt mal den Empfangs-DB neu initialisiert, am Netz hängen nur die SPS und das PG. Das gleiche Ergebnis Status geht auf 7002 und Busy auf 1 und der Empfangs-DB bleibt leer.
Noch irgendeine Idee?
 
No, leider nicht.
Ansonsten aber mal die Frage, warum Du die offene Kommunikation gewählt hast und nicht feste Verbindungen eingerichtet hast. Ich denke ja mal, das Deine IP-Adressen Deiner externen Geräte sich ja nicht ständig ändern werden. Zumindest mit diesen Verbindungen hatte ich noch nie Probleme und sind auch mit weniger Aufwand zu programmieren. (Keine Initialisierung der Verbindung, etc.)
 
Zurück
Oben