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

Ergebnis 1 bis 4 von 4

Thema: Datenminimierung bei Instanzen.

  1. #1
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen.

    Wir haben bei uns in der Firma eine eigen Library in PCWORX entwickelt.

    Bei den Bausteinen verwende ich zur Zeit immer eine Instanz pro Aufruf, da sich die Daten darin Teilweise für jeden Aufruf anders gestalten.

    Nun habe ich vor für eine neue Version der Library die Instanzen so klein wie möglich zu halten.
    Speichernde Daten plane ich dazu aus zu lagern in eine externe Variable evtl. mit einer Struktur.

    Nun wollte ich mal wissen auf was ich alles achten muss um jeden Bausteintyp mit der gleichen Instanz auf zu rufen.

    Diesbezüglich würde mich noch interessieren ob es dann noch möglich ist OPC Variablen innerhalb der Instanz immer noch Differenziert aus zu lesen.

    Ich hoffe ich habe jetzt keinen Doppel Thema erstellt.
    Beim ersten suchen habe ich nix passenden gefunden..

    Gesendet von meinem SM-A300FU mit Tapatalk
    Zitieren Zitieren Datenminimierung bei Instanzen.  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.338
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    Ob Du Instanzdaten innerhalb der Instanz oder außerhalb der Instanz speicherst wird wohl kaum zu einer Daten-"Minimierung" führen. Ich kann mir vorstellen, daß beim Ausgelagern von Daten vielleicht sogar mehr Datenspeicherplatz benötigt wird.
    Weitere Nachteile
    - unnötige Verkomplizierung des Codes
    - Code-Mehraufwand für den Zugriff auf die ausgelagerten Daten
    - langsamerer Code
    - Instanzdaten werden Globaldaten

    Ich würde sagen, daß Dein Vorhaben nur Nachteile hat und vermutlich keinerlei Vorteile. Oder hast Du mal ein konkretes Beispiel, was sich durch das Auslagern verbessern würde?

    Bevor Du in großem Stil all die Library umschreibst, untersuche erst mal nur einen Beispiel-Baustein, welches Verfahren mehr Codegröße und Datenspeicherbedarf hat.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    schaible.r ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard

    Hallo.

    Ja alle diese Punkte gilt es zu bedenken.
    Allerdings wollte ich nicht wirklich wissen ob es Sinnvoll ist sonder was ich beachten muss.

    Den ich nutze in meinen Bausteinen einige nur Temporäre Variablen die nicht speichernd verwendet werden und bei denen es auch egal ist welchen Zustand diese zum Aufrufzeitpunkt haben.
    Z.b. wandeln von Werten etc.
    Zum kleinen Teil kann ich davon evtl. ein paar sparen.
    Die Daten die ich wirklich speichernd haben möchte/muss halten sich teilweise klein.

    Trotzdem Danke für den Post.
    Denn das hat mich nochmals über einiges im anderen Blickwinkel nachdenken lassen.
    Dabei bin ich darauf gekommen das ich mit den Aufrufen von anderen Bausteinen sehr aufpassen muss. Denn das Funktioniert in dem Fall nur wenn diese Bausteine wiederum ebenfalls mit nur einer Instanz unterschiedliche Ergebnisse liefern können.
    Ebenfalls muss ich wohl mit RS/SR eher sparsam sein.
    Oder wird das funktionieren?

    Naja einen Test habe ich schon begonnen und bin dabei das ganze an einem Baustein zu versuchen. Deshalb bin ich ja auf die Fragen gestoßen.

    Ich werde meine Ergebnisse auch mal Posten wenn es so weit ist.

    Gesendet von meinem SM-A300FU mit Tapatalk

  4. #4
    Registriert seit
    08.09.2010
    Ort
    Blomberg
    Beiträge
    425
    Danke
    1
    Erhielt 66 Danke für 63 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo schaible.r,

    um ehrlich zu sein sehe ich Dein Vorhaben extrem kritisch.

    Alles was dazu führt eine Instanz eines FBs mehrfach zu verwenden führt i.d.R. zu Problemen im Sinne der Datenkonsistenz.
    Nicht umsonst wird für jede FB Instanz ein eigener Speicherbereich genutzt.

    Daher würde ich mich eher auf Tips beschränken wie du die einzelne Instanz (und damit die Anzahl der verwendeten Lokalen Variablen) möglichst klein halten kannst.

    1. Datentypen und Strukturen immer passend wählen und keine Reserven einplanen.
      z.B. Int Bereich reicht, es wird aber ein Dint verwendet; Es wird ein Stream mit 10 Byte verarbeitet, aber ein Array von 20 Byte wird genutzt...
    2. Klasse sind auch die In/Out Variablen. Im wesentliche stellt dies ein Pointer auf eine Variable im aufrufenden Programm dar.
      Hier könntest du super alle Variablen auslagern, die dur dir nicht in der Instanz "merken" musst.


    Gruß

    Frank
    PHOENIX CONTACT Deutschland GmbH
    Hotline: 05281-946-2888
    automation-service@phoenixcontact.com
    www.phoenixcontact.de

Ähnliche Themen

  1. Unabhängige Instanzen FB
    Von Stefan31 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 01.05.2012, 09:27
  2. Maxumale Anzahl von Instanzen bei S7-315 2DP/PN?
    Von testuser im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.01.2009, 12:46
  3. Instanzen
    Von Deep Blue im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 09.10.2008, 11:00
  4. Instanzen verwenden?
    Von ottopaul im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 28.09.2007, 15:39
  5. probleme bei instanzen
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 17.03.2005, 10:04

Lesezeichen

Berechtigungen

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