FRAGE: Warum ist die Realisierung von BRCV oder URCV
mit einer Instanz über mehrere Kommunikationsverbindungen nicht
sinnvoll?
ANTWORT: Die Kommunikationsdienste BSEND/BRCV und
USEND/URCV sind zweiseitige Kommunikationsfunktionen, welche eine
1:1 Verbindung miteinander eingehen. Deshalb ist ein BSEND immer
genau einem BRCV über eine S7-Verbindung zugeordnet. Dies ist bei
den S7-Kommunikationsfunktionen (SFBs) auf den S7-400 Steuerungen
so realisiert, dass die Eingangsparameter ID und R_ID nicht
dynamisch im Programm verändert werden können, sondern immer fest
zu einem Instanz-DB gehören.
Für die S7-300 Steuerungen haben die ladbaren
S7-Kommunikationsfunktionen eine andere Dynamik, indem eine Instanz
(DB) nur für einen Kommunikationsauftrag fest ist und danach für
einen anderen Partner d.h. S7-Verbindung verwendet werden kann.
Dies ist insbesondere für die S7-Funktionen PUT/GET sinnvoll, um
mit einer Instanz mehrere Partner anzusprechen.
Für die S7-Funktionen BSEND/BRCV und USEND/URCV ist dies
komplizierter. Hier könnte man eine dynamische Verwendung der
Instanz-DBs für die Sendebausteine BSEND/USEND einsetzen. Auf der
Empfangsseite ist dies jedoch nicht möglich, da es nicht
vorhersehbar ist, welche S7-Kommunikation gerade senden möchte.
Dies gilt auch für parallele Kommunikationsfunktionen für eine
S7-Verbindung, welche mit dem Parameter R_ID (Auftragsreferenz)
realisiert werden. Auch bei dieser Variante der S7-Kommunikation
macht es keinen Sinn eine einzige Instanz zu verwenden.
Suchbegriffe: ladbare Kommunikation, URECEIVE,
BRECEIVE,
SFB8, FB8, SFB9, FB9, SFB12, FB12, SFB13, FB13, SFB14, FB14, SFB15,
FB15
|