MW
Level-1
- Beiträge
- 1.186
- Reaktionspunkte
- 272
-> Hier kostenlos registrieren
Ich hab mal ne Frage an die Kommunikationsspezi's
ich habe als Beispiel folgenden Aufruf des SFB14:
Dieser läuft, wie der Kenner auf anhieb sieht, auf einer S7-400. Der Baustein soll aus einem DB der Partner Station 3 Datenbereiche auslesen, die auch noch im gleichen DB liegen(die dazwischen liegenden Bytes sind auf beiden Seiten unbenutzt). Nun hat die Steuerung an sich schon eine hohe Kommunikationslast bzw. ist das Netzwerk recht lahm, aus diesem Grund frage ich mich, ob folgender Aufruf nicht effizienter wäre:
Von der Funktion her ist dieser Aufruf gleichwertig.
Nun zum Wichtigen:
Hat jemand die möglichkeit sich solch eine Kommunikationsverbindung per Wireshark anzusehen oder hat das schon getan
und kann mir folgende Fragen beantworten:
- Gehen bei der ersten Variante 3 einzelne Anfragen an die Partner CPU, oder packt er das alles in eine Anfrage ?
- Wenn dafür 3 einzelne Anfragen nötig sind, geht das dann immer synchron (Anfrage 1 -> Antwort 1 -> Anfrage 2 -> Antwort 2......) oder geht das Asynchron (Anfrage 1 -> Anfrage 2 -> Anfrage 3 -> Antwort......) ?
- Kurz und knapp: Ist Variante 2 schneller/Resourcenschonender als Variante 1 ?
Bitte keine Vermutungen aufstellen, die habe ich selber kann sie nur nicht bestätigen ;-)
ich habe als Beispiel folgenden Aufruf des SFB14:
Code:
CALL "GET" , DB14
REQ :=#req_get
ID :=#con_ID
NDR :=#get_ndr
ERROR :=#get_err
STATUS:=#get_stat
ADDR_1:=P#DB99.DBX 0.0 BYTE 4
ADDR_2:=P#DB99.DBX 16.0 BYTE 16
ADDR_3:=P#DB99.DBX 40.0 BYTE 32
ADDR_4:=
RD_1 :=P#DB19.DBX 0.0 BYTE 4
RD_2 :=P#DB19.DBX 16.0 BYTE 16
RD_3 :=P#DB19.DBX 40.0 BYTE 32
RD_4 :=
Code:
CALL "GET" , DB14
REQ :=#req_get
ID :=#con_ID
NDR :=#get_ndr
ERROR :=#get_err
STATUS:=#get_stat
ADDR_1:=P#DB99.DBX 0.0 BYTE 80
ADDR_2:=
ADDR_3:=
ADDR_4:=
RD_1 :=P#DB19.DBX 0.0 BYTE 80
RD_2 :=
RD_3 :=
RD_4 :=
Nun zum Wichtigen:
Hat jemand die möglichkeit sich solch eine Kommunikationsverbindung per Wireshark anzusehen oder hat das schon getan
und kann mir folgende Fragen beantworten:
- Gehen bei der ersten Variante 3 einzelne Anfragen an die Partner CPU, oder packt er das alles in eine Anfrage ?
- Wenn dafür 3 einzelne Anfragen nötig sind, geht das dann immer synchron (Anfrage 1 -> Antwort 1 -> Anfrage 2 -> Antwort 2......) oder geht das Asynchron (Anfrage 1 -> Anfrage 2 -> Anfrage 3 -> Antwort......) ?
- Kurz und knapp: Ist Variante 2 schneller/Resourcenschonender als Variante 1 ?
Bitte keine Vermutungen aufstellen, die habe ich selber kann sie nur nicht bestätigen ;-)