S7-Kommunikation

titinparma

Level-1
Beiträge
78
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo leute,
ich möchte kommunikation zwische mehere über CP 343-1 CPU einrichten ,
ein soll als leit sps sein und die 2 oder 3 andere CPU als normal.
ich habe ein DB45 geschrieben(800Byte) und diese DB45 habe ich identisch in jeder der 3 s7 cpu kopiert.
die Aufgabe ist für jeder CPU ein teil der DB zu schreiben un lese.
zb. CPU2 von 0 bis byte 400
CPU3 von Byte 401 bis 800
in CPU1 gebe befehle an CPU2 und CPU3 über DB45
in CPU1 lese ich meldung von komplett DB45.

die information austasch habe ich mit der baustein AG-Send und AG-Recv
und in NetPro habe ich als Verbindung TCP.

zwischen CPU1 und CPU2 geht es soweit gut leider bei der CPU3 empfängt er nichst. es ist ein test der später für 36 CPU giltig wird

ich brauche hilfe. fals jemand schon sowas gemacht hat oder ein beispiel
danke
 
Also ich habe da schon einiges gemacht, allerdings TCP nur auf der 400'er.

Wenn ich mich recht erinnere (ist nun auch schon wieder 3 Jahre her), hast Du mit Send/Receive nur relativ wenige Bytes für die Uebertragung, sonst musst Du LongSend/LongReceive benutzen. Keine Gewähr, evtl. kann das jemand anderes noch genauer spezifizieren, ich hab gerade keine S7 bei mir.

Warum die Kommunikation nicht klappt, dafür gibts nahezu unendlich viele Gründe. Wird denn die Verbindung aufgebaut? (Nachzusehen im NetPro oder besser in der Spezialdiagnose der Baugruppe unter Baugruppenzustand)

Bei mir war das ein grosses Problem, die aktive Baugruppe hatte sich einfach geweigert. Zu lösen -damals- nur über online im Bausteinordner "Systemdaten" löschen und komplett neu übertragen.

Am Baustein bekommst Du doch auch einen Status und Error? Schau' dazu mal die Hilfe an. Das ist zwar nicht sehr anschaulich, gibt aber gute Hinweise.

Gruss, Lothar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hilfeeeeeeeeee

ich habe gerade gelesen dass der Log send und Long Recv nur unter S7 400 gültig ist. ich stehhe hier jetzt nur ein eizige Verbindung läuft die zweite verbindung weigert sich total und gibt keine Meldung


Hilfeeeeeeeeeeeeeeeeeeeeeeeeeee
 
Diagnose

Hallo,

wenn ich das richtig verstehe kannst du von der CPU 1 mittels CP auf die CPU 2 zugreifen.

Wenn du von der CPU 1 auf die CPU 3 zugreifen willst dann geht das nicht.

Als ertses würde ich dann mit meinen Rechner an die CPU 3 gehen, da die Hardwareprojektierung aufrufen, dann den CP anklicken und mit rechte Maustaste über das Kontextmenü die Eigenschaften aufrufen.

In dem Eigenschaftenmenü sind mehrere Reiter, einer davon heißt Diagnose. Diesen anklicken und die Diagnose ausführen.

Links kommen dann mehere "Ansichten" zur Auswahl die dir schon einiges anzeigen, Verbindungsstatus, IP und Mac-Adresse u.ä....

Vielleicht hilft das ja schon.

Außerdem gibt es in den oberen Pulldownmenüs irgendwo den Befehl "ping". Diesen einfach mal aufrufen und dort die IP Adresse der CPU 1 eingeben und den Befehl ausführen.

Wenn die Verbindung steht muß die CPU1 jetzt antworten.
Da kommt normalerweise eine Anzeige Antwort < 1ms
und das vier mal.

Wenn da vier mal was mit Zeitüberschreitung steht klappt die Verbindung gar nicht.

Das würde ich als erstes machen, denn dann kann man schon grob erkennen in welche Richtung man überhaupt den Fehler suchen muss.

Denn wenn die Verbindung nicht steht, brauche ich mir über die Programmierung noch gar keine Gedanken machen.

Mfg
 
<100ms heißt, die Verbindung steht, nur etwas langsamer, sonst würde
statt des Textes mit den 100ms, "Zeitüberschreitung der Anforderung" stehen

ein erfolgreicher Versuch sollte dann in der Eingabeaufforderung etwa so aussehen:

C:\>ping 190.0.1.70
Ping wird ausgeführt für 190.0.1.70 mit 32 Bytes Daten:
Antwort von 190.0.1.70: Bytes=32 Zeit=1ms TTL=60
Antwort von 190.0.1.70: Bytes=32 Zeit<1ms TTL=60
Antwort von 190.0.1.70: Bytes=32 Zeit<1ms TTL=60
Antwort von 190.0.1.70: Bytes=32 Zeit=1ms TTL=60
Ping-Statistik für 190.0.1.70:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 0ms, Maximum = 1ms, Mittelwert = 0ms
 
Zuletzt bearbeitet:
danke frank,
wie kann ich denn die sache ändern und wo geht es??
über dagnostic habe ich geping und bekomme für beide IP 4 mal <100ms
 
ping

100 ms ist in Ordnung, es ging dabei erstmal nur darum festzustellen ob grundsätzlich eine Verbindung zwischen CP 1 und CP 3 möglich ist.

Das funktioniert, sprich das Netzwerk ist in Ordnung.

Es liegt jetzt also an Siemens, sprich an der Programmierung oder der Konfiguration.

Ich habe mit AG-Send und AG-Recv selbst noch nichts gemacht, würde jetzt aber mal zum testen die funktionierende Verbindung (CPU 1 - CPU 2) rausnehmen und versuchen nur eine einzelnde Verbindung von CPU 1 nach CPU 3 hinzubekommen.

Ansonsten kannst du auch mal in den "Anzeigen" Done, Error und Status online gucken, was da drine steht, vielleicht hilft das ja.

Was das bedeutet hab ich aus der Siemenshilfe rauskopiert.
 

Anhänge

  • AGSEND_Status.pdf
    17,6 KB · Aufrufe: 16
Zurück
Oben