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

Ergebnis 1 bis 3 von 3

Thema: Funktionsblockinstanz direkt im Programm verwenden, oder Variablen verwenden

  1. #1
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, mich würde mal eure Meinung interessieren.

    Ich möchte einen FB zur Ventilansteuerung erstellen.
    Nun habe ich 2 Möglichkeiten.

    1. Ich deklariere Variablen wie vor, zurueck .... und setze diese in meinem Programm auf true oder false und dem entsprechend wird in dem FB ein Ausgang gesetzt.

    2. Ich Arbeite mit Aktionen vor, zurueck ... und rufe diese imProgramm auf und dem entsprechend wird im FB etwas gesetzt.

    Wenn ich es mit aktionen mache, muss ich die Aktion ja mit instanz.aktion() aufrufen. oder? Wenn ich dann ja noch andere Sachen wie freigaben habe, diese würde ich ja als Variable an den FB legen.

    Nun hätte ich aber schon wieder 2 Sachen mit denen ich im Programm auf das eigentlichen Ventil zugreifen würde. 1. Variable.Freigabe := TRUE und 2. Instanz-Aktion().

    Was meint ihr? ... Wenn mit aktion, dann immer nur auf die Instanz zugreifen? Also auch mit Instanz.Freigabe := TRUE? Also komplett ohne ein und Ausgänge?
    Dann wüsste man natürlich nicht von vorne herein, was man eigentlich alles so für variablen beschreiben und augeben kann.


    Ich brauche eure Meinung. Also ich denke einmal auf ne Instanz zugreifen und dann einmal auf ne Variable ist unschön, oder wie seht ihr das?

    Ich hoffe es war verständlich.


    Danke für jede Meinung
    Zitieren Zitieren Funktionsblockinstanz direkt im Programm verwenden, oder Variablen verwenden  

  2. #2
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Ich habe gerade gesehen, dass man bei Instanzen ja auch nur AUF IN, OUT und INOUT zugreifen kann. nicht auf "VAR". Somit muss ich ja eh Ein und Ausgänge definieren.

    Wenn ich nun allerdings Aktionen habe, so muss ich immer wieder auf die Instanz.Aktion zugreifen und habe somit immer wieder einmal zugriffe auf die instanz und auf die Ein-Ausgabe Parameter
    Zitieren Zitieren Keine VAR sichtbar  

  3. #3
    Registriert seit
    19.07.2008
    Ort
    Aachen
    Beiträge
    270
    Danke
    2
    Erhielt 21 Danke für 20 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es wäre auch unschöner Programmierstil, aus aufrufenden Programmen auf lokale Variablen einer Instanz zuzugreifen Dazu gibt es ja IN, OUT und INOUT.

    Betrachte es doch mal so: Eine Freigabe z.B. sollte ja in jedem SPS-Zyklus aktualisiert sein. Daher bietet es sich nicht an, das über eine Aktion zu realisieren, die du ja bewusst aufrufen musst. Aktionen, die ein FB ausführen soll (z.B. eine Initialisierungsroutine, eine Grundstellungsfahrt oder andere Dinge) kann man durchaus auch als Aktion realisieren. Die Aktion arbeitet ja so oder so mit den lokalen Daten des FB respektive der Instanz. Aber abgesehn davon müssen ja Daten auch in den FB reinkommen. Das kann die Aktion eben nicht. Sie ist nur etwas, das der FB tut.

    Dazu ist vielleicht zu erwähnen:

    Aktionen sind in der IEC 61131-3 nur für FB's definiert, die in AS geschrieben werden. Das ist (zunächst) keine funktionelle Einschränkung, man sollte es aber wissen, da folglich nicht jeder Steuerungshersteller die Dinger (außerhalb von AS) implementiert hat.

    Verwendest du allerdings die Aktionen muss du dir überlegen, wie du dafür sorgst, dass sie auch korrekt arbeiten. Also z.b. lange genug aufgerufen wird und wie du den Bearbeitungsstatus zurückbekommst. Ohne Eingangs- und Ausgansvariablen kommst du also nicht aus.
    "Always code as if the guy, who ends up maintaining your code, is a violent psychopath who knows, where you live."
    -------------------------------------------------------------------------------------------------------------------------------------------------------
    Youtube-Channel

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 31.01.2012, 09:51
  2. Antworten: 8
    Letzter Beitrag: 14.12.2011, 13:35
  3. Schneider Concept (Quantum): Zykluszeit im Programm verwenden
    Von flisse im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 17.02.2010, 11:33
  4. Start Variablen Zeiger in DB verwenden?
    Von BorisDieKlinge80 im Forum Programmierstrategien
    Antworten: 15
    Letzter Beitrag: 20.05.2008, 09:06
  5. Helmholz TS-Adapter direkt verwenden.....?
    Von Andy082 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 19.05.2007, 03:22

Lesezeichen

Berechtigungen

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