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

Ergebnis 1 bis 7 von 7

Thema: Problem mit Verständniss für Programmstruktur

  1. #1
    Registriert seit
    05.04.2004
    Beiträge
    93
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Eine 314C-2DP ist über Ethernet an WinCC (nicht flex!) angeschlossen.
    Die Daten werden über einen Globaldatenbaustein ausgetauscht.

    Jetzt kommt meine Frage:
    Der Programmierer hat in jeden FB wo er Daten aus der Visualisierung
    braucht, diese über eine Pointer/Adressregisterkonstruktion vom
    Globaldatenbaustein in den lokalen Speicher des FB kopiert.
    Am Ende des Bausteins kopiert er die Daten wieder zurück.

    Welchen Vorteil kann diese Vorgehensweise haben?
    Ich frage mich, ob ich diese Struktur fortführen soll, sehe aber
    nicht wirklich einen Sinn dahinter.

    Danke für alle Antworten und schöne Grüße
    Zitieren Zitieren Problem mit Verständniss für Programmstruktur  

  2. #2
    Registriert seit
    11.03.2009
    Beiträge
    32
    Danke
    4
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo Peter,

    der Vorteil, den ich in dieser Vorgehensweise sehe ist, dass Zugriffe auf den lokalen Speicher schneller sind als DB-Zugriffe.
    Wird also sehr oft auf den Global-DB zugegriffen, würde ich das so beibehalten.
    Gruß, yy1

    ------------------------------------------------------------------------------------
    Woher soll ich wissen, was ich denke, bevor ich gehört habe, was ich sage?

  3. Folgender Benutzer sagt Danke zu yy1 für den nützlichen Beitrag:

    Peter_AUT (05.08.2011)

  4. #3
    Registriert seit
    05.04.2004
    Beiträge
    93
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Sollte das dann aber nicht sinnvollerweise auf einmal (z.B. mit BLKMOV)
    passieren? Wenn ich für jedes Wort den Pointer errechne, zugreife und
    kopiere (so wie jetzt) habe ich ja nicht wirklich einen Geschwindigkeitsvorteil.

    Viele Zugriffe ist relativ - so ca. 5-10 Wörter - vielleicht werden es mal 50 insgesamt.
    Da die Anwendung nicht zeitkritisch ist, steht die Reduktion der Übersichtlichkeit meiner
    Meinung nach nicht in Relation mit dem Geschwindigkeitsgewinn von ein paar µs
    Geändert von Peter_AUT (05.08.2011 um 08:50 Uhr)

  5. #4
    Registriert seit
    11.03.2009
    Beiträge
    32
    Danke
    4
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Ja, ein BLKMOV wäre hier auf jeden Fall sinnvoll.
    Und wenn es nur um ein paar Zugriffe geht, spielt die Geschwindigkeit keine SO große Rolle - da kann man aber keine generelle Aussage treffen, sondern das kann man nur dann beurteilen, wenn man die Anlage (CPU, Auslastung, ...) kennt.
    Gruß, yy1

    ------------------------------------------------------------------------------------
    Woher soll ich wissen, was ich denke, bevor ich gehört habe, was ich sage?

  6. #5
    Registriert seit
    05.08.2011
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Lächeln

    Hallo

    Ich nehme an, die FBs, in denen umkopiert wird, sind instanzierbar d.h. werden für mehrere Einheiten (Geräte,Motoren,...) verwendet. Den globalen Visu-DB gibt es dagegen nur einmal.

    Jede FB-Instanz kopiert nun Daten von einer anderen Stelle im globalen Visu-DB hin- und her.

    Alternativen:
    - Würde der FB nun fest auf die gleichen Daten zugreifen, wäre er nicht mehr instanzierbar. Jeder Motor/jedes Gerät braucht ja einen eigenen Visu-Datenbereich. Das geht also nicht.

    - Würde man nicht umkopieren, sondern bei jedem Zugriff mit Pointern arbeiten, wäre die ganze Sache ziemlich undurchsichtig. Die Symbole für die Variablen fehlen und man weiß irgendwann gar nicht mehr, auf was man da gerade schreibt -> no go

    Ich denke also es hat nichts mit der Zykluszeit zu tun. Der Programmierer kopiert am Anfang und Ende um. Das ist noch überschaubar. Im Baustein kann er dann mit den lokalen Symbolen arbeiten. Zum Schluss wird es zurück kopiert.
    Hab ich schon oft gesehen. Meine Kollegen machen das auch

  7. #6
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Sehe ich genauso. Der Geschwindigkeitsvorteil bei einem Global-DB für die Visu liegt dabei auf der WinCC-Seite beim Bildaufbau. Wir machen es oft so, das gekapselte Funktionen wie z.B. ein Motor-FC mit einer INOUT-Variable (UDT, Struct) versehen ist, in denen die Daten abgelegt werden. Der Global-DB enthält dann die Motor-UDT's, die man dann wunderbar im WinCC als Strukturvariable anlegen kann.

    Gruß Approx
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  8. #7
    Registriert seit
    19.11.2007
    Beiträge
    78
    Danke
    23
    Erhielt 13 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Noch ein Vorteil ist, dass man mit dieser Art nur einen FC statt FB braucht und die statischen Variablen liegen halt in dem GlobalDB (über die IN/OUT).
    Über die Sache mit den UDT ist das auch noch akzeptabel übersichtlich.

    SO richtig elegant finde ich diese Lösung auch nicht, ist aber bei Siemens einfach ziemlich praktisch.

    Hab ich selbst bei Vorlagen von Siemens schon so gesehen.

    - Du kannst dabei eben auch im laufenden Betrieb schnell mal eben nur von einer zur anderen Instanzen (ist ja nur GlobalDB) wechseln und auch auf einen ganz anderen DB legen falls du den aktuellen gerade nicht anfassen möchtest.

    - Die Alternative mit dem FB und InstanzDB ist halt immer etwas schwierig, musst unter Umständen in dem aufrufenden Baustein die Schnittstelle ändern, dann auch den DB noch neu übertragen und in dem darunter liegenden Baustein auch noch den Aufruf aktualisieren.
    Musst du gar etwas an den Daten der statischen Variablen ändern verschieben sich womöglich auch noch deine Datenpunkte für dein HMI.
    Gruß
    dD

Ähnliche Themen

  1. verständniss Probleme VB.NET > S7ONLINE
    Von Mahon im Forum Hochsprachen - OPC
    Antworten: 13
    Letzter Beitrag: 02.09.2011, 21:35
  2. Programmstruktur Step7
    Von mariob im Forum Programmierstrategien
    Antworten: 96
    Letzter Beitrag: 01.10.2010, 22:56
  3. Frage verständniss Start / Stop Taster
    Von maxi im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 7
    Letzter Beitrag: 12.11.2008, 19:05
  4. Falsches Verständniss von DB's
    Von MSP im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 10.07.2005, 19:13
  5. Antworten: 5
    Letzter Beitrag: 02.03.2005, 11:02

Lesezeichen

Berechtigungen

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