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