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

Ergebnis 1 bis 2 von 2

Thema: Projekt Strukturierung unter Beckhoff Codesys

  1. #1
    Registriert seit
    18.02.2012
    Beiträge
    8
    Danke
    2
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen, bin seit geraumer Zeit im hier im Forum registriert und ziemlich begeistert von den Informationen die man hier findet.
    Habe bisher Steuerungen von Allen Bradley programmiert, hab nun ein Projekt mit einer Beckhoff CX.
    Beim Einstieg hat mir besonders dieser Beitrag geholfen, vielen Dank an dieser Stelle an die Ersteller:
    http://www.sps-forum.de/showthread.php/49643-FAQ-alles-rund-um-TwinCAT?p=377069#post377069

    E
    inige Fragen zur Projektstrukturierung machen mir allerdings noch zu schaffen (bzw. wie ich es am besten angehen soll).
    Ich hab mir für die verschiedenen Anlagenteile jeweils FBs (z.B. Profibus Master/Slave, Roboter, Ventile, ...) erstellt, die ich dann
    in den jeweiligen Programmen aufrufe.
    Als Einstiegspunkt hab ich mir ein Programm "Main" definiert, das vom zyklischen Task aufgerufen wird. Von diesem Programm aus
    werden die verschiedenen Unterprogramme aufgerufen, z.B. "Init" (einmalig), Profibuskommunikation, Betriebsartwahl, Schrittkette und Visualisierung.

    Nun meine Frage dazu: Wie realisiert ihr den Datenaustausch zwischen den einzelnen Variablen in den Programmen? Ich hab gesehen, dass man über
    <Programmname>.<Variable> auf lokale Programmvariablen lesend zugreifen kann, schreibend aber ein Fehler generiert wird.
    Hab das ganze dann über globale Variablen realisiert. Gibt es irgendwelche anderen Möglichkeiten, die vl. "schöner" sind?

    Vielen Dank für euren Input!
    Zitieren Zitieren Projekt Strukturierung unter Beckhoff Codesys  

  2. #2
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zum Datenaustausch kann man in jeder POU INPUT- und OUTPUT-Variablen deklarieren.
    Beispiel:
    Code:
    FUNCTION_NLOCK fbBeispiel
    VAR INPUT
       Eingang:BOOL;
    END_VAR
    VAR_OUTPUT
       Ausgang:BOOL;
    END_VAR
    Für die Übergabe beim Aufruf gibt es zwei Möglichkeiten:
    Code:
    Instanz_von_fbBeispiel(Eingang:=Eine_Variable_aus_MAIN, (* oder auch ein Wert *)
                                     Ausgang=>Eine_andere_Variable_aus_MAIN);
    (* oder *)
    Instanz_von_fbBeispiel.Eingang:=Eine_Variable_aus_Main;
    Instanz_von_fbBeispiel();   (* Aufruf *)
    Eine_andere_Variable_aus_Main:=Instanz_von_fbBeispiel.Ausgang;
    Die INPUT-/OUTPUT-Variablen sind statisch, behalten ihre Werte also auch nach dem Aufruf. Man muss also auch nicht bei jedem Aufruf alle INPUT-Variablen übergeben und auch nicht alle OUTPUT-Variablen auslesen.
    Ausserdem gibt es noch VAR_IN_OUT. Dabei werden nur die Adressen der Variablen übergeben. Bei grossen Datenstrukturen ist das empfehlenswert, um den Kopieraufwand zu reduzieren.

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

    matzy87 (09.03.2012)

Ähnliche Themen

  1. codesys unter win7 installieren?
    Von SirTom78 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 05.11.2010, 16:11
  2. steigende/fallende Flanke unter CoDeSys 2.3.9 ???
    Von Jumpinjack im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 27.08.2010, 09:18
  3. "Real_to_String" unter Beckhoff/Codesys
    Von Flo im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 26.01.2010, 18:28
  4. Schaltplan Strukturierung
    Von AL_Bundy im Forum E-CAD
    Antworten: 2
    Letzter Beitrag: 07.01.2009, 18:23
  5. Unter CoDeSys analoge Ausgänge nutzen
    Von E-Mokel im Forum CODESYS und IEC61131
    Antworten: 12
    Letzter Beitrag: 12.09.2008, 13:28

Stichworte

Lesezeichen

Berechtigungen

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