kaPUT gemacht

Borsti

Level-1
Beiträge
117
Reaktionspunkte
12
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen... :)

Ich hab eine Frage zu den PUT und GET Bausteinen.
Folgende Situation:
Ich schaufel zwischen 2 319 CPUs jeweils 40 Byte, via IE (PN), hin und her.
Ich hab dazu die PUT/GET in einen FB geschrieben und nehme die Auftragsquittierung des PUT Bausteins als Start für den GET Baustein und umgekehrt. Allerdings gibts da noch ein Problem. Wenn ich in der einen CPU mir den FB anschaue, dann flimmern die Bits nur so hin und her (is ja auch richtig so), aber in der anderen CPU ist der Baustein wie eingefroren. Sprich ich geh in den Status, der grüne Balken läuft hin und her, aber die Status Bits verändern sich nicht... :confused:
Selbst in dem DB, wo ich die Daten reinschiebe, ändert sich nix, obwohl die andere CPU eine Auftragsquittierung ohne Fehler bekommt...
Jemand schonmal sowas gehabt?
 
Addr_

Hallo Borsti,

hast Du vielleicht eine Kleinigkeit übersehen?
Z.B. wird bei GET von ADDR_ gelesen, bei PUT aber zu ADDR_ geschrieben...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Borsti,

Deine Beschreibung klingt so, als hättest Du zu einem Put der einen CPU ein Get in der anderen CPU zugeordnet.
Put und Get brauchst Du aber nur in einer CPU, die andere erledigt die Zuarbeit mittels Bteriebssystem.
Oder interpretiere ich Deine Beschreibung falsch?

Gruß
raika
 
Nein, tust du nicht...

Dann hab ich da die Beschreibung der Bausteine falsch verstanden.
Ich dachte immer, wenn man mittels PUT Daten sendet, müsste man sie via GET Empfangen. So, daß der GET Baustein dem PUT Baustein sagt, daß er die Daten korrekt empfangen hat. Wieder was gelernt... :)

Dann hab ich aber ein Problem. Ich bräuchte eine Quittierte Kommunikation, da die beiden CPUs unterschiedliche Zykluszeiten haben und die 2. CPU via CP die Daten an ein anderes Netz schaufelt.
Mir scheint ich bräuchte dazu die BSEND/BRCV Bausteine. Wenn ich allerdings Maxl in diesem Thread ( http://www.sps-forum.de/showthread.php?t=10631 ) richtig verstanden habe, kann es bei diesen beiden zu Problemen mit Datenverlust kommen, was nicht so schön wäre. Ich benutze Hirschmann SPIDER 5TX Switches.
Oder ist dieses Problem, bei dieser im verhältnis geringen Datenmenge egal?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Quittierte Kommunikation deshalb:
Die 2. CPU hat eine CP 342-5. Über diese CP werden Maschinen Daten an eine alte S5 gesendet. Erst wenn dieser Datentransfer erolgreich beendet wurde, kann die 2. CPU von der 1. CPU neue Daten empfangen, um sie an die S5 weiter zu leiten.
 
... kann es bei diesen beiden zu Problemen mit Datenverlust kommen, ...

Ich glaube, du hast da etwas falsch verstanden. Es kommt nicht zu Datenverlust - das was du sendest kommt auch an. Je nach Bus-Belastung kann es aber sein, dass das mehrere Verbindungsversuche dauert. Auf dem Ethernet kann technisch gesehen jeder los-quatschen wie er möchte. Wenn 2 Teilnehmer gleichzeitig senden (oder zu senden anfangen) gibt es eine Kollision und das wäre dann ein Fehlversuch, der wiederholt werden muß. Ist physikalisch vielleicht jetzt nicht absolut einwandfrei beschrieben, aber ich glaube als Model geht es durch.

Erst wenn dieser Datentransfer erolgreich beendet wurde, kann die 2. CPU von der 1. CPU neue Daten empfangen

Kann du dir dafür nicht eine Bestätigung senden lassen oder abholen ?
Z.B. : aktueller Datensatz bei der S5=...
 
Die Frage ist:
was passiert real (nicht softwaremäßig) wenn ein Telegramm verschwindet?
Meist ein Problem von binären Signalen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Larry: Du meinst also, daß sich das nur auf CSMA-CD bezieht... Gut, daß kann ich verkraften. Ich dachte das wäre so gemeint, wie borromeus gepostet hat, das wirklich Datensätze im Nirvana verschwinden.
 
... das wirklich Datensätze im Nirvana verschwinden ...

dann solltest du eine Fehlermeldung erhalten.

Du musst nur aufpassen, dass du nicht zu viele Telegramme in zu schneller Folge von zu vielen Teilnehmern auf einmal wegschickst. Dann kann es zu zuviel Traffic auf dem Bus kommen. Insofern wäre es schon das Beste, du hättest einen "Daten-Sammler", der sich via "GET" die Daten von den Anderen SPS'en abholt.
 
Zurück
Oben