Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 6 von 6

Thema: Performance PUT/GET Verbindung

  1. #1
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hab mal ne Frage an die Kommunikationsspezi's

    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  :=
    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:
    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  :=
    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
    Es ist nicht schwierig, mit noch nicht erreichten Zielen zu Leben; schwierig ist, ohne Ziele zu Leben !
    (Günther Kraftschik)
    Zitieren Zitieren Performance PUT/GET Verbindung  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Kannst du das nicht mal mitschneiden? Eine 400er ist mittlerweile leider so selten im Einsatz.

    Du wolltest zwar keine Vermutung, aber...
    Ich habe mir den Datenaustausch mit Put/Get und einer S7-400 noch nicht angesehen, aber aus den Angaben zur möglichen Nutzdatenlänge in der Bausteinbeschreibung kann man einiges ableiten.
    Da sich laut den Angaben dort die mögliche Nutzdatenlänge um jeweils 16 Byte pro Put-Befehl verringert, kann man eigentlich davon ausgehen dass alle 4 Datenbereiche in ein Telegramm gepackt werden. Denn das ist genau die Anzahl an Bytes die pro Bereichsangabe hinzukommen (12 Bytes Parameterteil für Adressbereich + 4 Bytes Kopf im Datenteil für die zu schreibenden Daten).

    Warum dort bei einem Get-Befehl dieses pro Datenbereich nur 4 Bytes weniger sein sollen will mir nicht einleuchten, das sollten eigentlich 12 Bytes sein.
    Genau aus dem Grund wäre es interessant da mal einen Mitschnitt zu bekommen.

  3. #3
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Meines Wissens nach entspricht Get/Put dem Lesen/Schreiben von Variablen wie es auch z. B. in libnodave enthalten ist (mit wireshark log kann ich es genau sagen). Im ersten Fall ist somit der Request ein bischen länger, im zweiten Fall der Response. Es passt aber immer ales in eine PDU. Somit dürften sich quasi keine Zeitunterschiede ergeben, denn die Länge eines Paketes geht minimal in die Performance ein. Dramatischer sind da die Sprünge wenn eine zusätzliche PDU gebraucht wird.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Warum dort bei einem Get-Befehl dieses pro Datenbereich nur 4 Bytes weniger sein sollen will mir nicht einleuchten, das sollten eigentlich 12 Bytes sein.
    Das mit den 4 Bytes passt, da die Adressangabe ja nur in den Anfrage und nicht in der Antwort ist.
    Also sieht es rein von den Zahlen auch so aus als ob die Kommunikation bei put/get wie z.B. libnodave arbeitet.

  5. #5
    Avatar von MW
    MW ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    erstmal danke für die Antworten.
    Ich muss dann wohl doch mal versuchen ob ich von der Kommunikation einen Log bekomme, dass wird zwar nicht so einfach klappen, aber zumindest sehe ich dann auch gleich wie groß die Kommunikationslast der Steuerung ist. Es handelt sich übrigens um eine Microbox, hab mich da im ersten Beitrag vertan.
    Es ist nicht schwierig, mit noch nicht erreichten Zielen zu Leben; schwierig ist, ohne Ziele zu Leben !
    (Günther Kraftschik)

  6. #6
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mit einem managed Switch oder einem Hub (so was gab es früher ) auf einem normalen PC ist dies kein Problem.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

Ähnliche Themen

  1. PUT GET Fehler
    Von Bensen83 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.09.2011, 13:29
  2. mehrere Put/Get mit einer Verbindung
    Von Ralle im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 24.03.2011, 01:11
  3. Put/get S74142dp
    Von Ahnungsloser im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 05.08.2008, 22:30
  4. ANY am PUT einer FC möglich?
    Von C_H im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 06.02.2008, 16:35
  5. PUT und Get
    Von Farinin im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 19.01.2007, 15:40

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •