TIA Netzwerkprobleme zwischen drei S7 1200

leix

Level-1
Beiträge
42
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Netzwerkprobleme zwischen drei S7 1200 CPU 1212

Hallo an Alle,
nach dem ich bei einer Fehlerfindung bei einen FB-Progarmmierung so viel Unterstützung(Danke nochmals:D) bekommen habe, komme ich mit meinen nächsten Problem ;-)

Zu erst einmal meine Hardware plus Einstellungen

PLC_1
CPU 1212C AC/DC/Rly
V2.2
IP 192.168.0.20

PLC_2
CPU 1212C AC/DC/Rly
V2.0
IP 192.168.0.21

PLC_3
CPU 1212C AC/DC/Rly
V2.0
IP 192.168.0.22

jetzt versuche ich mal meinen Fehler zu beschreiben. Es geht um die Kommunikation über die Anweisungen(Open UserCommunication) TSEND_C und TRCV_C.

Es werden Merkerbereiche übertragen.


Die Anweisung TSEND_C PCL_1 -> TRCV_C PCL_2 funktioniert problemlos

Die Anweisung TSEND_C PCL_2 -> TRCV_C PCL_1 funktioniert problemlos

Die Anweisung zweite TSEND_C PCL_1 funktioniert problemlos -> TRCV_C PCL_3 funktioniert wie es will sehr stark zeitversetzt oder man könnte denken nach Zufallprinizip

Die Anweisung TSEND_C PCL_3 funktioniert wie es will sehr stark zeitversetzt oder man könnte denken nach Zufallprinizip
-> zweite TRCV_C PCL_1 funktioniert problemlos

Vorbilb für ganze Einstellerei war MODUL M7 Kommunikation mit 2x SIMATIC S7-1200 über ISO on TCP Verbindung

Habe auch schon alles wieder gelöscht und komplett wieder neu aufgespielt, aber leider kein Erfolg.

Was mache ich falsch oder welche Einstellung soll ich unter die Lupe nehmen?:oops: Welches Input braucht ihr noch?

Danke im Voraus

Es ist ein privates Projekt in meiner Wohnung

Gruß Jörg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Flux,

Danke

hmmm... ja....Wenn eine SD Karte nicht so teuer were. Ich glaube Siemens will rund 300 Äste dafür:s1:

Gibt es nicht andere Wege?
 
Zuletzt bearbeitet:
Ich dachte man könnte auch eine normale SD Karte nehmen zumindest um die Firmware einzuspielen
 
Zuletzt bearbeitet:
Ich dachte man könnte auch eine normale SD Karte nehmen zumindest um die Firmware einzuspielen

Leider nicht. 24MB für um die 300 €... .
Fernabsatzgesetz...? Oder wenn du um die Ecke wohnen würdest (08...PLZ) bei nem Kaffee...

Stell mal das Prog ein, ev. Sieht mann ja nen Käfer...

Gesendet von meinem GT-N7100 mit Tapatalk 2
 
Zuletzt bearbeitet:
Das nur S Karten funzen um S CPUs die Fehler auszutreiben ist leider so. Bei 300/400ern kannst du "Glück" haben, wenn die FW hoch genug ist ein Onlineupdate ohne Karte hinzugekommen. Bei den neuen 1200ern ab 3.0 mit aktiviertem Webserver soll es auch möglich sein. Hatte aber noch keine in der Hand.
Einzig Vipas kommen mit "normalen" MMCs für bestimmte Aufgaben klar.


Zum Ursprungsthema: Lässt du die Kommunikation nacheinander ablaufen und wartest bis eine Verbindung fertig ist? Oder läuft alles "gleichzeitig"
.


Gesendet von meinem GT-N7100 mit Tapatalk 2
 
Zuletzt bearbeitet:
Hallo Thomas,
Oder wenn du um die Ecke wohnen würdest (08...PLZ) bei nem Kaffee...
Huhu... das hört sich gut an.08...so geht meine auch los. Moped ist noch startklar und nicht nur für ein Kaffeechen... Vino oder Bierchen passen auch in meine Alukisten;)

Also ihr denkt es ligt an der Firmware? Also von V2.0 auf v2.2

DANKE

Gruß Jörg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

mal ganz unabhängig von der Lizenz zum Geld drucken, die S da mit den SD hat.

So eine AS hat nur begrenzte Ressourcen für die Kommunikation. Die Zahl der offenen Verbindungen ist begrenzt. Die Zeit die innerhalb eines Zyklus für die Kommunikation zur Verfügung steht ist begrenzt. Und das sind auch noch alles asynchrone Aufrufe.
Hast du mal versucht zu vereinzeln. Damit meine ich, dass du zu einen Zeitpunkt eben nur von _1 nach _3 schickst. Klappt das dann zuverlässig?

Ich hatte mir für diesen Zweck eine Art Ring-Puffer gebaut, der das Senden regelt. Da das Programm auf allen PLC gleich ist, brauche ich einen Merker (kann im DB sein) der die Nummer der PLC enthält. Den muss ich auf jeder PLC anpassen ;-) In einem Array (welches auf jeder PLC gleich ist) stehen Zahlenpaare, welche die Verbindungen zwischen zwei PLC angeben. z.B. [{1,2},{2,3},{3,1}] und dann gibt es noch einen "Zeiger", der auf einen Platz in dieses Array zeigt. Dann gibt es ein Array of Struct, in dem sowas wie Sendewunsch und Sendedaten steht. Der Index bezeichnet den Empfänger.
Ich prüfe ob für die Verbindung von mir zum Empfänger ein Übertragungswunsch anliegt. Wenn nicht, dann schiebe ich den Zeiger weiter und prüfe wieder. Wenn es einen Verbindungswunsch gibt, dann starte ich ein T_SEND. Die nächsten Zyklen passiert nix. Wenn das BUSY am T_SEND verschwindet, dann schiebe ich den Zeiger weiter. Stimmt Sendernummer mit meiner überein, nö, dann weiter.

Klingt alles ein wenig aufwändig, und ist es zugegebenermaßen auch. Aber, und das war mir damals viel wichtiger, es fördert die zielgerichtete Kommunikation. Das Verfahren ist gerecht, keiner wird mehr ausgebremst. Kamele gehen eben nur dann durchs Nadelöhr, wenn man sie vorher passend klein gehackt hat.

'n schönen Tach auch
HB
 
Hallo Thomas,

Huhu... das hört sich gut an.08...so geht meine auch los. Moped ist noch startklar und nicht nur für ein Kaffeechen... Vino oder Bierchen passen auch in meine Alukisten;)

Also ihr denkt es ligt an der Firmware? Also von V2.0 auf v2.2

DANKE

Gruß Jörg

Nicht an der Firmware sondern am Prog. Es läuft ja zum Teil. Siehe HB oder mein Post .
Du könntest ja auch ALLES von CPU1 aus erledigen und verteilen. Immer der reihe nach 1-2, 1-3, 1-2, 1-3.... usw. Bei dem schönen Wetter setz ich mich doch lieber selbst auf mein Möp steck die Karte in die Jacke und dreh ne Runde ;-)

Gesendet von meinem GT-N7100 mit Tapatalk 2
 
Zurück
Oben