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

Ergebnis 1 bis 6 von 6

Thema: FC's mit Parameterübergabe

  1. #1
    Registriert seit
    06.04.2009
    Beiträge
    32
    Danke
    6
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ein anderer (passenderer) Titel fiel mir leider nicht ein.

    Mich würde mal eine Sache brennend interessieren:

    Ich habe hier ein Projekt übernommen. Die CPU 315-2DP ist so ziemlich rappelvoll. Nun habe ich gesehen, dass der "Vorgänger" 16! mehr oder weniger identische Bausteine (Länge > 1000) geschrieben hat.

    In diesen Bausteinen sind lediglich Ein- und Ausgänge, einige Timer und natürlich irgendwelche Merker unterschiedlich.

    Wie würde es sich jetzt verhalten wenn ich einen FC oder FB erstelle in denen ich diese EA's usw. per Parameter übergebe ?

    Wird das Programm kürzer oder dient es nur offline der Vereinfachung ?

    Wie wird das Programm dann in der CPU abgearbeitet ? Wirklich nur einen FC oder FB (mit DB) inkl. Paramterübergabe, oder wird das beim Compilieren wieder in einzelne Bausteinaufrufe übersetzt ?

    Wäre für mich wirklich interessant zu wissen bevor ich versuche diese 16 Bausteine auf einen zu verkürzen. Die sind wirklich exakt identisch bis auf die paar EA's usw.


    MfG, Iris
    Zitieren Zitieren FC's mit Parameterübergabe  

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

    Standard

    Hallo Gini,

    zuerst musst Du dir im klaren sein, welche Operanden "immer wieder" (also die jeweils verwendeten Hilfsmerker ect.) und welche Operanden "immer unterschiedlich" (Eingänge, Ausgänge) verwendet werden.
    Die verschiedenen Eingänge deklarierst Du dann als "IN"-Parameter, die Ausgänge als "OUT"-Parameter.
    Die Hilfsmerker, die immer wieder vorkommen kannst Du dann im "TEMP"-Bereich deklarieren. Vorsicht bei R/S-Gliedern! Diese musst Du bei einem FC als "INOUT" verwenden, oder Du nimmst gleich einen FB und deklarierst diese Speicherbausteine im "STAT"-Bereich. Bei verwendung von FB's kannst Du zum Sparen von Instanz-DB's diese FB's als "mulitiinstanzen" deklarieren. Dazu musst Du deinen neu geschriebenen FB in einem übergeordneten FB im "STAT"-Bereich aufrufen.

    Viel Spaß beim Vereinfachen.

    Gruß Approx

    P.S.: Ja, das Programm wird dadurch kürzer und belegt weniger Speicher.
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

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

    Gini (16.09.2009)

  4. #3
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Moin,

    warum sollte es kürzer werden?
    Jetzt hast du das Programm auf mehrere FC´s aufgeteilt und diese werden nacheinander bearbeitet.
    Wenn du nur einen parametrierbaren FC hast und diesen oftmals aufruft, dann hast du im Prinzip das gleiche, nur halt offline nicht so viel geschrieben.

    Das Programm arbeitet den beispielsweise FC3 (parametrierbar) eben öfters ab, nur mit anderen Parametern.

    Wie heißt es so schön:
    Never change a running system

    Vereinfachen geht fast immer, aber warum?!
    Wenns läuft, dann ist es doch gut!

    Gruß wolder

  5. #4
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Quatsch,

    natürlich wird die Bausteinsumme kleiner, da es den baustein nur noch einmal gibt. Der Bausteinaufruf wird zwar größer aber das sind nur ein paar Byte.

    Ein klassisches Beispiel dafür das der Programmersteller davon keine Ahnung hatte.

    Wichtig ist aber zu sehen ob die bausteine wirklich gleich sind, aber selbst wenn man eventuell aus den 16 zwei oder drei macht , bringt das einiges.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  6. #5
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Die Bausteinsumme wird kleiner. Klar.
    Anstatt 16 hab ich dann vielleicht nur noch 1 Baustein.

    Aber das Programm bzw. die Programmzeilen werden doch nicht kürzer.

    Ob ich 16 Bausteine mit 10 Zeilen mache oder 1 mit 10 Zeilen, den ich dann 16 mal aufrufe. Wo ist da der große Unterschied?

    P.S.: ich hatte mich verlesen. Ich dachte er meinte es auch auf die Zykluszeit bezogen.
    Das Programm wird natürlich kürzer!
    Geändert von wolder (10.09.2009 um 08:34 Uhr)

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

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von wolder Beitrag anzeigen
    Moin,

    ...

    Wie heißt es so schön:
    Never change a running system

    Vereinfachen geht fast immer, aber warum?!
    Wenns läuft, dann ist es doch gut!

    Gruß wolder

    Ich kenn' den Spruch entweder: "Never change a winning Team!" oder: "Never touch a running System!"

    Aber wenn es der Übersichtlichkeit dient, warum dann nicht das Programm vereinfachen? Teile, die immer wieder bearbeitet werden, schreien geradezu danach parametrierbar gestaltet zu werden!

    Ein klassisches Beispiel dafür das der Programmersteller davon keine Ahnung hatte.


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

Ähnliche Themen

  1. Parameterübergabe FB <-> HMI
    Von eYe im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 22.03.2009, 11:38
  2. CC und Parameterübergabe
    Von PHANTOMIAS im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.04.2008, 07:42
  3. Protool vbs Parameterübergabe
    Von pascal im Forum HMI
    Antworten: 7
    Letzter Beitrag: 24.02.2008, 15:49
  4. Parameterübergabe mit CALL FCx
    Von lastweb im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 25.01.2007, 21:43
  5. S7 200: SBR (CALL) mit Parameterübergabe
    Von Willu im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.07.2006, 22:45

Lesezeichen

Berechtigungen

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