mehrere Put/Get mit einer Verbindung

Ralle

Super-Moderator , User des Jahres 2006-2007
Teammitglied
Beiträge
15.414
Reaktionspunkte
4.043
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke, das Thema kam schon irgendwo zur Sprache, aber es ist nicht aufzufinden.

Kann ich mehrere Put/Get-Aufrufe (SFC14/15) zur gleichen Zeit mit der selben Verbindung machen?
 
@Lars: Warum das denn?
Habe schon 10 Get-Aufrufe mit der selben Verbindung direkt hintereinander wegprogrammiert.
Läuft seit 10 Jahren ohne Probleme.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber du lässt die nicht alle gleichzeitig senden und empfangen ?

Genau darum dreht sich ja die Frage, gegeneinander verriegelt, das hieße ja nur ein Put auf eine Verbindung und nicht mehrere gleichzeitig. Aber es gibt eine Fehlermeldung in der Doku zum SFC, dass zu viele Aufträge parallel laufen würden. Leider habe ich nicht mehr Infos in der normalen Step7-Hilfe gefunden. Verriegelt wäre nicht gut, da ich ca. 10 Aufträge habe, die nicht zu viele Daten transportieren, aber durch Warten schon zuviel Zeit draufgehen könnte.
 
Hm. Ist schon etwas länger her wo ich das gemacht hab, 412 <--> 317 über Ethernet, in Summe auch so 10 Aufrufe der Bausteine. Bin mir eigentlich ziemlich sicher das die gleichzeitige aktivierung der Basteine gründlich in die Hose ging und ich die deshalb nacheinander angestossen hab.

Wenn ich Zeit hab probier ich das mal aus, intersessiert mich jetzt ob es grundsätzlich funktioniert oder nur in bestimmten Hardwarekonstellationen.
Die Hilfe ist da echt keine Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm. Ist schon etwas länger her wo ich das gemacht hab, 412 <--> 317 über Ethernet, in Summe auch so 10 Aufrufe der Bausteine. Bin mir eigentlich ziemlich sicher das die gleichzeitige aktivierung der Basteine gründlich in die Hose ging und ich die deshalb nacheinander angestossen hab.

Wenn ich Zeit hab probier ich das mal aus, intersessiert mich jetzt ob es grundsätzlich funktioniert oder nur in bestimmten Hardwarekonstellationen.
Die Hilfe ist da echt keine Hilfe.

Ja das wäre mir eine Hilfe.
Ich hab auch schon angedacht, mehrere Verbindungen zu nutzen, aber die übergeordnete 315PN hat je auch nur begrenzte Recourcen und muß mehrere SPS bedienen.
 
Hab mal probiert, 6 Put gleichzeitig aktiviert, funktioniert. Der Status 25 steht beim letzten Aufruf länger an wie beim ersten, die Aufträge werden also nacheinander abgearbeitet.

Eine 315-2PN/DP habe ich leider nicht greifbar, habs mit einer 2DP getestet.
 
Hab mal probiert, 6 Put gleichzeitig aktiviert, funktioniert. Der Status 25 steht beim letzten Aufruf länger an wie beim ersten, die Aufträge werden also nacheinander abgearbeitet.

Eine 315-2PN/DP habe ich leider nicht greifbar, habs mit einer 2DP getestet.
Hi Lars,
welche Bausteine hast du beim Test verwendet, den FB15 (PUT) oder den SFB15?
Der FB15 ruft intern den SFB15 auf, ich habe aber noch nicht nachgeforscht welche zusätzliche Logik der FB um den SFB herumstrickt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Lars,
welche Bausteine hast du beim Test verwendet, den FB15 (PUT) oder den SFB15?
Der FB15 ruft intern den SFB15 auf, ich habe aber noch nicht nachgeforscht welche zusätzliche Logik der FB um den SFB herumstrickt.

Kann man sich das aussuchen? Ich dachte, den SFB für interne SS, den FB für eine CP. Ich zumindest hab im Moment den SFB14/15 verwendet, allerdings nur mit einem Addr/Rd-Paar.
 
Kann man sich das aussuchen? Ich dachte, den SFB für interne SS, den FB für eine CP. Ich zumindest hab im Moment den SFB14/15 verwendet, allerdings nur mit einem Addr/Rd-Paar.
Nein, aussuchen nicht, stimmt. Lars schreibt ja er hatte keine PN/DP zur Hand, also wird er wohl den FB15 verwendet haben.
Ich meine nur ob man die Info zum Aufrufen mehrere PUT/GETs auf alle Bausteine (FB/SFB) übertragen kann. Ich habe nämlich bisher meine Daten immer so zusammengepackt dass ich mit einem Aufruf ausgekommen bin.
 
Das kann man sich nicht aussuchen, es kommt auf die verwendete Technik an.
Programmbeispiele für GET und PUT (einseitige S7-Verbindung)

Harald

Danke, ich finde das ziemlich lästig, dass man hier immer noch darauf achten muß, die richtigen Bausteine einzusetzen. Was ich nicht ganz verstehe, auch die FB14/15 nutzen ja die SFB14/15, also sollte es doch theoretisch auch damit funktionieren. Und laut Lars scheinen es die SFB auch bei der 300-er zu tun.
 
Danke, ich finde das ziemlich lästig, dass man hier immer noch darauf achten muß, die richtigen Bausteine einzusetzen. Was ich nicht ganz verstehe, auch die FB14/15 nutzen ja die SFB14/15, also sollte es doch theoretisch auch damit funktionieren. Und laut Lars scheinen es die SFB auch bei der 300-er zu tun.

Äh Stop,hab mich verschrieben, tut er nicht. Ich habe nicht den SFB in der 300er genommen, sondern den FB. Der SFB tut nur in der 400er seinen Dienst. Wenn du eine PN-CPU hast tut der normale FB aus der Simatic-Net-Lib auch nicht seinen Dienst, da mus ein anderer her, den hab ich mir aus einem Beispielprojekt gezogen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, dazu hab ich noch etwas gefunden!

Siemens (gilt für 300-er):
Code:
Hinweis
Wenn Sie in der S7-300 Station einen Industrial Ethernet CP 
für den Datenaustausch über S7-Verbindungen nutzen, dann 
verwenden Sie die Funktionsbausteine FB14 "GET" und FB15 "PUT" 
aus der Bibliothek "SIMATIC_NET_CP" unter "CP 300 > Blocks".
Wenn Sie die integrierte PN-Schnittstelle einer CPU31x-2PN/DP 
oder einer CPU319-3PN/DP für den Datenaustausch über 
S7-Verbindungen nutzen, dann verwenden Sie die 
Funktionsbausteine FB14 "GET" und FB13 "PUT" aus der 
Standard Library > Communication Blocks > Blocks" mit 
der Familie "CPU_300".
 
Ich habe nicht den SFB in der 300er genommen, sondern den FB. Der SFB tut nur in der 400er seinen Dienst. Wenn du eine PN-CPU hast tut der normale FB aus der Simatic-Net-Lib auch nicht seinen Dienst, da mus ein anderer her, den hab ich mir aus einem Beispielprojekt gezogen...
Ich wollte gesten schon fragen, auf welcher S7-CPU Lars die SFB14/SFB15 nimmt, falls es eine S7-300-CPU ist. Das hat sich ja nun erledigt.
Wann man welche PUT/GET-Bausteine aus welcher Bibliothek einsetzen muß, findet man FAQ-gerecht einen Beitrag nach dem Beitrag, denn ich in #15 verlinkt habe.

Soviel ich weiß, gibt es keine S7-300-CPU, die die SFB14/SFB15 hat. Auch nicht die aktuelle xxx14-er Generation. Und auch nicht die 318.
Operationsliste S7-300 CPUs Firmware V3.x (05/2010)
Operationsliste S7-300 CPUs 312 IFM bis 318-2 DP (10/2001)

Auch die
System- und Standardfunktionen für S7-300/400 Band 1 und Band 2 (05/2010)
listen die SFB14/SFB15 nur als "Baustein S7-400" auf.

SFB14/SFB15 gibt es ziemlich sicher nur auf S7-400-CPU.

Die FB14/FB15 aus der "Standard Library > Communication Blocks" (Familie: CPU_300 !) haben tatsächlich Aufrufe der SFB14/SFB15 eingebaut. Allerdings dürften die SFB nur dann aufgerufen werden, wenn eine CPU-Prüfung ergibt, daß die SFB genutzt werden können. Und tatsächlich wird zur Entscheidung, ob die SFB benutzt werden, mit der in der PUT/GET-Verbindungsprojektierung angegebenen logischen Baugruppenadresse die SZL 0C91 (Baugruppenzustandsinformation) aufgerufen. Wenn die SZL-0C91-Antwort nicht passt, dann werden die SFB nicht aufgerufen, die FB handeln dann die PUT/GET-Kommunikation selbst (was ziemlich sicher der Normalfall ist).

Ich vermute mal, die SFB-Aufrufe sind deshalb drin, falls ein Programmierer auf S7-400 fälschlicherweise die FB einsetzt. Das scheint öfter vorzukommen als man denkt ;) Nicht jeder PUT/GET-Anwender kennt die diesbezüglichen Siemens-Regeln. Deshalb hatte ich ja mal einen Beitrag mit den Links zu den Siemens-PUT/GET-Einsatz-FAQ geschrieben. Der Beitrag scheint aber nicht von allgemeinem Interesse zu sein, jedenfalls wurde er bisher nicht von einem Moderator zu meiner Kommunikations-Linklisten-FAQ zugefügt. :(

Übrigens benutzen die FB14/FB15 zum auslesen des SDB200 (Verbindungsprojektierung S7-300) die undokumentierte Any-Speicherbereichskennung b#16#89, die dann wohl für SDB steht.

Harald
 
Zurück
Oben