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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Erweiterung Instanz-DB´s

  1. #1
    Registriert seit
    05.11.2008
    Beiträge
    54
    Danke
    9
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich soll relativ kurzfristig ein S7-Programm erweitern. Im Programm (vor einiger Zeit von anderer Firma erstellt) wird viel mit Multiinstanzen gearbeitet.

    Das System würde ich gerne beibehalten, mein Problem ist, daß ich die Instanz-DB´s erweitern müsste, teilweise ohne zu wissen wie die Werte verarbeitet werden. Handelt es sich bspw. um Eingabewerte, die ich mir dann überschreiben würde, wenn ich den erweiterten DB ins AG schreibe?

    Wie geht man in diesem Fall am Besten vor?
    Ich tendiere dazu, für die Erweiterungen neue FB´s mit der gleichen Funktion (z.B. Analogwerte einlesen) zu erstellen, sodaß ich dann auch neue Instanz-DB´s habe.

    Gruss
    momo
    Zitieren Zitieren Erweiterung Instanz-DB´s  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Du kannst einen Instanz-DB nicht erweitern, indem du direkt an den DB neue Daten anhängst. Du mußt im FB, zu dem dieser Instanz-DB gehört ändern, indem du dort im Variablendeklarationsteil neue Variablen anlegst. Daraufhin wird dann beim Speichern Step7 einen Warnung geben. Im FC/FB, der den betreffenden FB+IDB aufruft kann man dann ebendalls über Abspeichern eine Meldung erhalten, daß ein neuer IDB erzeugt werden muß. Diese bestätigen und der IDB wird erzeugt. Danach FB+IDB+aufrufenden FC/FB in das AG übertragen.

    Je nachdem, wie der Programmmierer arbeitet, kann es sein, daß ohne Probleme der IDB geändert werden kann. Wenn aber von außen auf den IDB zugegriffen wird (von irgendwo aus dem Programm heraus) oder per indirekter Adressierung oder per Rezept von WinCCFlex aus, dann hast du Probleme. Du mußt dann heraufinden, wer, was am IDB manipuliert und diese Adressen/Zugriffe entsprechend ändern.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    momo99 ist offline Benutzer
    Themenstarter
    Registriert seit
    05.11.2008
    Beiträge
    54
    Danke
    9
    Erhielt 3 Danke für 3 Beiträge

    Standard

    @Ralle

    Wie die Erweiterung funktionieren würde ist klar (im Deklarationsteil des FB).
    Wenn ich das aber mache werde ich bei der IB mit Sicherheit Probleme bekommen.
    Die Frage ist, wie ihr das normalerweise handhabt (Erweiterung von IDB´s). Ich denke jeden einzelnen Wert in den verschiedenen DB´s zu überprüfen ob er evtl. über die Visu oder sonstwie von anderer Stelle beschrieben wird ist nicht praktikabel...
    Bei Global-DB´s hänge ich normalerweise die Erweiterungen Online an den betreffenden DB an, um mir die AG-Daten nicht zu überschreiben.

    Die einzelnen FB´s mit den IDB´s für die Programmerweiterung mit neuer Nummer nochmal zu machen gefällt mir zwar nicht. Eine andere Lösung, die mir dann bei der IB keine Probleme macht fällt mir aber auch nicht ein.

    Gruss
    momo

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

    Standard

    Ich kenne das Problem. Je nach Anlage habe ich da zwei Vorgehensweisen:

    1.)
    Die alten Parameter in einer Variablentabelle zwischenspeichern und damit nachher wiederherstellen:
    Variablentabelle anlegen, und in dieser die Daten aus den später zu ändernden Instanz DB eintragen. Die Daten aus der Spalte "Statuswert" in "Steuerwert" kopieren.
    Dann den FB erweitern und die neuen Datenbausteine erzeugen. Datenbausteine in die Steuerung übertragen und dann mit den Daten aus der Variablentabelle die alten Werte in den DBs wiederherstellen.

    Nachteil daran ist, dass nach dem Übertragen der Bausteine erstmal die Startwerte drinstehen. Nicht bei jeder Anlage kann man sich das erlauben.

    2.)
    Umweg über AWL Quelle:
    Die relevanten Instanzdatenbausteine aus der Steuerung in einen Offline Programmordner kopieren.
    Aus diesen Offline DBs dann eine AWL Quelle generieren. In dieser AWL-Quelle der Instanz-DBs sind auch die Aktualwerte gespeichert.
    Z.B.
    Code:
    DATA_BLOCK DB 21
    TITLE =
    VERSION : 0.0
    
     FB 11
    BEGIN
       rParam1 := 1.110000e+002; 
       rParam2 := 2.210000e+002; 
    END_DATA_BLOCK
    Wird nun der FB erweitert (z.B. rParam3) so wird diese Variable einmal im FB und an der _gleichen_ Position im DB angefügt.
    Am besten lässt man sich den FB in der gleichen AWL Quelle erzeugen.

    Wenn man dann die AWL Quelle übersetzt behalten die Instanz DBs die letzten Aktualwerte.

    Wenn die CPU dann genug Ressourcen hat um alle Datenbausteine und den FB auf einmal einzubinden klappt das ohne den kleinsten Ruckler

    Bei einer kritischen Anlage würde ich die Vorgehensweise evtl. vorher mit PLCSim oder einer Test SPS mal durchspielen.

  5. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    momo99 (08.04.2009)

  6. #5
    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 momo99 Beitrag anzeigen
    Bei Global-DB´s hänge ich normalerweise die Erweiterungen Online an den betreffenden DB an, um mir die AG-Daten nicht zu überschreiben.
    Uh, sowas ist aber extrem böse. Nichts ist schlimmer als ein unterschiedlicher Programmstand offline und auf der CPU.

    Mit der Vorgehensweise 2.) von mir kann man das auch anders lösen.

  7. #6
    momo99 ist offline Benutzer
    Themenstarter
    Registriert seit
    05.11.2008
    Beiträge
    54
    Danke
    9
    Erhielt 3 Danke für 3 Beiträge

    Standard

    @Thomas

    Nicht falsch verstehen: Der DB wird im Büro angepasst, Online werden dann nur die Erweiterungen eingefügt (in aller Regel überschaubar).

    Wenn man es richtig macht hat man einen DB mit gleichem Stand Online und Offline wo auch noch die Parameter stimmen...

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,

    Zitat Zitat von momo99 Beitrag anzeigen
    Ich denke jeden einzelnen Wert in den verschiedenen DB´s zu überprüfen ob er evtl. über die Visu oder sonstwie von anderer Stelle beschrieben wird ist nicht praktikabel...
    wenn die Visu auf die Instanz-Daten zugreift, dann tut sie es normalerweise nicht absolut sondern symbolisch. Änderst du also die Instanz, so werden zumindestens in ProTool oder Flex die Adressen gleich mit verschoben. Hier wäre es nur nötig, das Projekt einmal neu zum Bediengerät zu übertragen.

    Bei "sonstwie" sieht das schon anders aus ...
    Beim Arbeiten mit Instanzen sollte man eigentlich zusehen, dass die FB's (und deren I-DB's) sich selbst genügen - soll heißen : alle externen Informationen kommen über die Schnittstelle (IN, IN_OUT, OUT) und intern erfolgen keine absoluten Zugriffe. Ist das so, dann kannst du so einen FB problemlos umwursteln, denn nach dem Ändern würde er ja einfach mit den gleichen Informationen wie vorher weiter arbeiten. Das gilt dann natürlich wiederum nicht für das Programm drum-herum. Erfolgen hier absolute Zugriffe auf Adressen des Instanz-DB's (das machen viele sehr gerne), dann haben sich diese ggf. geändert und müssen nachgepflegt werden. Hier gibt es dann zwar auch Tricks sich zu behelfen (Operandenvorrang symbolisch) - das klappt aber auch nur dann, wenn bei dem "unsauberen" noch sauber gearbeitet wurde - ist also auf jeden Fall mit Vorsicht zu geniessen.

    Trifft von diesen Dingen etwas auf dein "Baby" zu ?

    Gruß
    LL
    Geändert von Larry Laffer (08.04.2009 um 12:43 Uhr)

  9. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    @Larry

    Du kennst ja auch die Diskussionen hier, wenn es um Zugriff auf IDB geht. Aus diesen heraus und aus eigenem Erleben würde ich sagen bei mind. 20% solcher Fälle wird es Probleme geben. Bei meinen Anwendungen ganz sicher nie, da ich einmal kaum FB verwende und wenn, dann ohne IDB-Zugriffe von außerhalb des eigenen FB.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    bike (12.04.2009)

  11. #9
    momo99 ist offline Benutzer
    Themenstarter
    Registriert seit
    05.11.2008
    Beiträge
    54
    Danke
    9
    Erhielt 3 Danke für 3 Beiträge

    Standard

    @LL

    ProTool oder Flex ist nicht...

    Und zu "sonstwie" - ist schwierig, ich weiß ja nicht was sich der Programmierer vor 2 Jahren gedacht hat. Wäre mir also auf alle Fälle zu heiss.

    Wie ich das sehe bleiben mir 2 Möglichkeiten:
    a) mit neuen FB´s und IDB´s (einfach, schnell, unschön)
    b) Lösung mit AWL-Quellen. Ist natürlich schöner aber etwas aufwendig für mich, weil ich ein aktuelles Programm vorliegen habe mit dem ich jetzt arbeite. Ich müsste also die IDB´s alle auf IB dann nochmal auslesen und wie beschrieben verfahren.

  12. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Ralle:
    Mit meinem Beitrag wollte ich auch auf keinen Fall den Stoff für neue Grundsatz-Diskussionen liefern. Es ging mit hier lediglich darum für Momo herauszustellen, wo die Problematiken jeweils stecken.
    Leider (und das hast du vollkommen Recht) halten sich viele Programmierer nicht an die Sache mit der Kapselung von FB's - ist sogar mir schon mal zu durchgerutscht ...

    @Momo:
    Aufgrund deines letzten Beitrages sehe ich da für dich nicht so schrecklich viele Optionen - ich fürchte allerdings, dass wenn du die "alten FB's" anpacken willst, du nicht unhin kommst vorher sicher zu stellen, ob und was mit den daten des/der I-DB's noch so angestellt wird ...

    Gruß
    LL

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 18.01.2008, 12:47
  2. Erweiterung Sicherheitskreise
    Von INST im Forum Schaltschrankbau
    Antworten: 3
    Letzter Beitrag: 14.10.2007, 16:59
  3. Erweiterung mit IM365
    Von Wondermike_2000 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 30.03.2007, 09:33
  4. Erweiterung f. S5 101U
    Von beda79 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 16.08.2006, 10:00
  5. EU-Erweiterung
    Von EWS im Forum Stammtisch
    Antworten: 3
    Letzter Beitrag: 04.05.2004, 19:03

Lesezeichen

Berechtigungen

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