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

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

Thema: Variablendeklaration in den Bausteinen

  1. #1
    Registriert seit
    23.08.2010
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich hab ein Problem bei der Deklaration von Variablen. Und zwar deklariere ich meine Variablen, die nacher Aus- bzw. Eingänge in der Peripherie zugwiesen werden, bislang im Deklarationskopf der jeweiligen Bausteine. Dies möchte ich auch gerne so lassen, um eine klare Struktur zu haben. Jetzt habe ich das Problem, dass wenn ich die Bausteine global bekannt mache, dass nur in "Variablen_Konfiguration" geht. Dort muss ich aber leider die absoluten Adressen festlegen
    ( z.B. MAIN.fbEINS.Ausgang AT %IW3 : INT;)

    Zu meiner Frage: Gibt es eine Möglichkeit diese Variablen in die automatische Adressverwaltung aufzunehmen?

    Vielen Dank schon einmal im Vorraus

    Gruß Simon
    Zitieren Zitieren Variablendeklaration in den Bausteinen  

  2. #2
    Registriert seit
    31.07.2010
    Ort
    Bei Frankfurt/Main
    Beiträge
    49
    Danke
    7
    Erhielt 14 Danke für 13 Beiträge

    Standard

    Hallo Simon,

    EAs sind typische GLOBALE Variablen und so würde ich
    sie auch unbedingt deklarieren. Also unter Ressourcen/Globale Variablen
    Viele Grüße
    Klaus Kilper

    ======================================
    Bretzel GmbH, Ing. Büro für Antriebs- und Elektrotechnik
    www.bretzel-gmbh.de

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

    Simon_ (03.09.2010)

  4. #3
    Simon_ ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.08.2010
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke Klausbre für die rasche Antwort, leider bin ich nicht ganz zufrieden damit.

    Gibt es denn eine Möglichkeit Globale Variablen beim Instanziieren zu erstellen?

    Meine Motivation ist, dass ich nicht extra irgendwo die Ausganswerte meiner Instanzen nochmals auf eine globale Variable übergeben will. Ich würde lieber einen Zeiger darauf übergeben und nicht die Werte nochmals in einem extra Baustein zuweisen.
    Prinzipiell geht das ja auch, aber leider nur wenn ich die absolute Adresse angebe. Ich hätte gerne, dass er die Variablenadressen automatisch verwaltet, wir das bei den globalen mit * deklarierten passiert.

    Wenn ich bei den VAR_CONFIG alle Instanzpfade einlesen lasse, dann findet er die betrefflichen Variablen, leider wird aber keine Adresse dazu erstellt.

    Gruß

  5. #4
    Registriert seit
    31.07.2010
    Ort
    Bei Frankfurt/Main
    Beiträge
    49
    Danke
    7
    Erhielt 14 Danke für 13 Beiträge

    Standard

    Ich bin nicht ganz sicher ob es das ist, was Du willst.

    Aber vielleicht ein kleines Beispiel: ich habe unter Codesys einen
    instanzierbaren Baustein geschrieben, der einen unserer Servoregler bedient
    (Positionieren, Referenzieren, Tippen, ...). 99% des Jobs passiert über
    CANopen mittels eines ebenfalls instanzierbaren Sende und Empfangsteil.

    Nun kann ich bei n Antrieben einfach n Instanzen dieses Bausteins
    aufrufen und bin herrlich variabel. Alle individuellen Dinge (z. Bsp. die
    NodeId werden im Bootup einmalig für jede Instanz einzeln gesetzt).

    Das einzige Problem ist, jeder Antrieb benötigt eine Hardwarefreigabe
    (also einen Ausgang) und der hat natürlich eine fixe Adresse. Den
    würde ich aber auch gerne von dem Baustein bedienen.

    Gelöst habe ich es folgendermaßen:

    im instanzierbaren Baustein:
    (* zugehörige Ausgänge der Steuerung *)
    DAxx_Freigabe_Servo AT%Q* : BOOL;

    in den globalen Variablen:
    VAR_CONFIG
    ....
    (* zugehörige EAs *)
    .Move_ServoAxis_AFB[1].DAxx_Freigabe_Servo AT %QX1.0.0.0: BOOL; (* DA1 *)
    END_VAR

    Dabei ist Move_ServoAxis_AFB[1] die erste Instanz meines
    Bausteins.

    Hilft Dir das???
    Viele Grüße
    Klaus Kilper

    ======================================
    Bretzel GmbH, Ing. Büro für Antriebs- und Elektrotechnik
    www.bretzel-gmbh.de

  6. Folgender Benutzer sagt Danke zu klausbre für den nützlichen Beitrag:

    Simon_ (03.09.2010)

  7. #5
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Was denn nun ihr IEC1131-Fans

    Wollt ich euch totinstanzieren, wie das immer so angepriesen wird. (von wegen Wiederverwendbarkeit a.s.o.)

    oder

    wollte ich ihr alles schon Global deklarieren, aber dann ist es vorbei mit der sog. Wiederverwendbarkeit.


    Es ist eben das Problem, wenn es die Funktion - Suche nach Verwendungsstelle - nicht gibt (ich rede nicht von diese komischen "Global Suchen" Funktion).


    Ich habe das gleiche Problem, wie ihr und das macht das Arbeiten mit 3S in machen Teilen uneffektiv, weil man sich totsucht - vor allem in fremden Programmen.

    Gruß

    Frank
    Grüße Frank

  8. #6
    Simon_ ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.08.2010
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Klausbre, genau so wie von dir beschrieben hab ich das bis jetzt auch gemacht. Nur hatte ich heute einen Fehler bei der Adressvergabe, also QX1.0.0.0, gemacht und jetzt frag ich mich, ob dass nicht auch automatisch gemacht werden kann.

    Gruß Simon

  9. #7
    Registriert seit
    31.07.2010
    Ort
    Bei Frankfurt/Main
    Beiträge
    49
    Danke
    7
    Erhielt 14 Danke für 13 Beiträge

    Standard

    Das wird wohl nicht möglich sein, da Codesys im Grunde nicht
    wissen kann, an welchem Ausgang was angeschlossen ist.

    Um hier keine Fehler zu machen, hole ich mir solche Adressen
    immer direkt aus der Steuerungskonfiguration.
    Viele Grüße
    Klaus Kilper

    ======================================
    Bretzel GmbH, Ing. Büro für Antriebs- und Elektrotechnik
    www.bretzel-gmbh.de

  10. #8
    Registriert seit
    28.03.2008
    Beiträge
    142
    Danke
    19
    Erhielt 25 Danke für 25 Beiträge

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    Es ist eben das Problem, wenn es die Funktion - Suche nach Verwendungsstelle - nicht gibt (ich rede nicht von diese komischen "Global Suchen" Funktion).
    Projekt -> Querverweisliste ausgeben...

    Am besten vorher die Variable Markieren
    Komm und wecke den Teufel unter meiner Schädeldecke. Das Chaos hat die Macht!

  11. #9
    Simon_ ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.08.2010
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich verwende TwinCat, und weise die Hardware den Variablen im Systemmanager zu. Die Adressen die ich bis jetzt verteile sind willkürlich aus dem Zahlenraum entnommen. Das funktioniert soweit auch, aber ich bin nicht wirklich glücklich damit.

  12. #10
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Simon_ Beitrag anzeigen
    Nur hatte ich heute einen Fehler bei der Adressvergabe, also QX1.0.0.0, gemacht und jetzt frag ich mich, ob dass nicht auch automatisch gemacht werden kann.
    Hi Simon,
    bei längeren Variablendeklarationen behelfe ich mir schon mal mit excel. Ich liste die Variablen, Adressen und Datentypen in einer Tabelle auf und erzeuge mit der Verketten - Funktion die Variablendeklaration. So ist die Gefahr einfacher Fehler beim Aufzählen geringer und es ist später einfacher die Deklaration zu ändern. Wenn du später mal z.B. einen Block aus 100 Variablen im Speicher um ein paar Byte verschieben willst um etwas einzufügen, dann bist du für so einen Quasi-Programmgenerator dankbar.

    Gruß, witkatz
    Geändert von witkatz (06.09.2010 um 09:50 Uhr)

  13. Folgender Benutzer sagt Danke zu witkatz für den nützlichen Beitrag:

    Simon_ (07.09.2010)

Ähnliche Themen

  1. Frage zur Variablendeklaration bei r_trig
    Von blubbi im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 21.08.2013, 19:41
  2. CoDeSys Variablendeklaration
    Von shiznit im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 02.08.2010, 14:59
  3. Antworten: 7
    Letzter Beitrag: 23.07.2007, 15:06
  4. Fehler von SFC Bausteinen
    Von fubu16 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 18.08.2005, 13:35
  5. Know How Schutz bei Bausteinen
    Von spooki01 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 22.07.2003, 17:57

Lesezeichen

Berechtigungen

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