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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: Unterscheidung Variablen Deklaration

  1. #11
    Registriert seit
    07.09.2006
    Beiträge
    75
    Danke
    6
    Erhielt 6 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    bei Multiprog muss du im Programm / FB über das Button Variable einfügen gehen
    dann wird für Globalen Variablen automatisch der Eintrag VAR_EXTERNAL im Deklarationsteil des FB gemacht.

    zu dem Rest kann ich dir auch nicht mehr sagen als das was die bescheidene Hilfe von Multiprog bietet.

    Nachtrag: Ich kann mir auch nicht Vorstellen wozu das gebraucht werden kann
    Geändert von winny-sps (21.01.2007 um 09:56 Uhr)

  2. #12
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    Hier ein Bild aus der Hilfe von Multiprog, für diese Sätze bin ich wahrscheinlich zu dumm, oder es ist einfach zu spät.

    Anhang 1388

    Mfg
    Manuel
    Das was da steht ist zwar umständlich aber inhaltlich zu verstehen.

    Ich verstehe nun aber nicht warum man globale Variablen für Programme und Funktionsbausteine trennt. Was ist jetzt wenn ich eine globale Variable so wohl in einem FB wie in einem PRG abfragen möchte?

    Das man die globalen Variablen die man in seiner POE verwenden will als extern deklarieren muss kennt man ja auch in C.
    Bei CoDeSys gibt es dieses VAR_EXTERNAL ja auch ist für die Funktion allerdings unerheblich aber ganz nett beim Beobachten des Programmteils da es im Watch-Fenster auftaucht. Ich verwende VAR_EXTERNAL aber nicht bei Änderungen muss ich dann ja an meheren stellen was ändern und da zu bin ich zu faul. Und ich bin auch kein Fan davon Variablen nur ein paar POEs kenntlich zu machen das wird eher unübersichtlich. Also mir reichen POE lokale und globale Variablen aus.

    In der IEC61131 sind meines Wissens nach auch nur VAR_GLOBAL und VAR_EXTERNAL beschrieben.
    If you open your Mind too much, your Brain will fall out.

  3. #13
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von trinitaucher Beitrag anzeigen
    Ich werde das nachher mal ergründen. Hab PCWorx hier.
    Bis jetzt meine ich, dass die EXTRENAL immer automatisch gesetzt werden, wenn eine Verknüpfung mit Prozessdaten (I/Os) stattfindet. Und EXTERNAL_PG oder _FB is glaub ich so, dass die benutzt werden, um in einem FB oder PG auf I/Os zuzugreifen.

    MfG
    Chris
    Variablen zur lokalen I/O-Konfiguration müssen zwischen den Schlüsselwörtern VAR_CONFIG und END_VAR stehen.
    If you open your Mind too much, your Brain will fall out.

  4. #14
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.725
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    In der Hilfe steht auch, das diese Variablen eine nich IEC-konforme Erweiterung darstellen.
    (nicht in dem Ausschnitt den ich gepostet habe)

    Gut ich verstehe auch ungefähr was da steht, ich verstehe aber absolut nicht wofür man das brauchen könnte,
    zumal ich in den Globalen Variablen auch keine "VAR_GLOBAL_.." anlegen kann.

    In einer Funktion kann ich zwar eine "VAR_EXTERNAL_PG" anlegen, beim kompilieren kommt dann aber
    (logischerweise) die Meldung sinngemäß, es gibt keine "VAR_GLOBAL_PG" dazu.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. #15
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    In der Hilfe steht auch, das diese Variablen eine nich IEC-konforme Erweiterung darstellen.
    (nicht in dem Ausschnitt den ich gepostet habe)

    Gut ich verstehe auch ungefähr was da steht, ich verstehe aber absolut nicht wofür man das brauchen könnte,
    zumal ich in den Globalen Variablen auch keine "VAR_GLOBAL_.." anlegen kann.

    In einer Funktion kann ich zwar eine "VAR_EXTERNAL_PG" anlegen, beim kompilieren kommt dann aber
    (logischerweise) die Meldung sinngemäß, es gibt keine "VAR_GLOBAL_PG" dazu.

    Mfg
    Manuel
    Also meine Vermutung ich kann das ja mit CoDeSys nun nicht nachvollziehen wäre: Das man im Deklarationsteil eines PRG einen bereich eingibt VAR_GLOBAL_PG und in einem anderen PRG mit VAR_EXTERNAL_PG deklariert.
    Kann das sein?
    If you open your Mind too much, your Brain will fall out.

  6. #16
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Also, ich hab mal was probiert:

    Wie in der Hilfe schon steht, ist EXTERNAL immer die lokale Deklaration einer globalen Variable, welche in der globalen Liste mit VAR_GLOBAL deklariert wird.
    Man kann eine globale Variable auch direkt ohne eine lokale EXTERNAL-Deklaration nutzen. Dann wird sie mit "NameDerGlobalenListe.VarName" angezeigt, taucht aber nicht in der lokalen Liste auf.
    Eine VAR_EXTERNAL hat immer ein Pendant mit gleichem Namen in der globalen Liste.

    VAR_EXTERNAL_PG und VAR_EXTERNAL_FB (sowie "GLOBAL") sind einschränkungen. Normalerweise werden alle Globalen Varibalen aus der Liste "Global_Variables" als Task-unabhängige Variablen abgelegt (VAR_GLOBAL). Jede Programminstanz hat noch eine eigene globale Liste (mit Namen der Programminstanz) mit VAR_GLOBAL_PG drin.
    In der Programm-Instanz kannste dann auswählen, ob du die globale Variable der "wirklich" globalen Liste, oder die aus der Liste der Programminstanz wählen willst.
    Ebenso verhält es sich bei Funktionsbausteininstanzen.

    Die Unterschiede bestehen bei der Gültigkeit.
    Liste "Global_Variables" : überall gültig
    Liste "Instanz.GlobaleVariablen": nur für die Programminstanz gültig (in allen FBs usw.)
    Liste "FB.GlobaleVariablen": In jeder Instanz dieses FBs gültig mit globaler Verwendung für diese FBs.

    Über den Sinn dieser Unterscheidung kann man streiten, aber es gibt sie dort.
    Pack alle Globalen Variablen in die Liste "Global_Variables" und gut is

    Hilft das ?

    MfG
    Chris

  7. #17
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von trinitaucher Beitrag anzeigen
    ...
    Pack alle Globalen Variablen in die Liste "Global_Variables" und gut is
    ...

    Bin ganz Deiner Meinung.
    Ich denke auch das man das alles eher übersichtlich halten sollte. Wo es geht lokale Variablen und wo es Sinn macht I/Os, Zustände (wie Hand/Auto/Sonder/Tipp), etc. globale Variablen.
    If you open your Mind too much, your Brain will fall out.

  8. #18
    chstad ist offline Benutzer
    Themenstarter
    Registriert seit
    22.10.2006
    Beiträge
    30
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke für Eure Hilfe.

    Einen Sinn kann ich darin eigentlich auch nicht entdecken. Ich arbeite mich im Moment gerade in die IEC Geschichte für einen neuen Arbeitgeber ein. Dabei bin ich auf die relativ bescheidene Beschreibung gestoßen - konnte aber keinen Sinn erkennen wozu ich dies benötigen würde.

  9. #19
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    @chstad: ich habe hier extra für Dich mal eine IEC Glaskugel gebastelt.

    Viel erfolg!
    Angehängte Grafiken Angehängte Grafiken
    If you open your Mind too much, your Brain will fall out.
    Zitieren Zitieren IEC Glaskugel  

  10. #20
    Registriert seit
    29.09.2006
    Beiträge
    368
    Danke
    0
    Erhielt 41 Danke für 38 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von zotos Beitrag anzeigen
    Er benutzt aber Multiprog von K&W
    ...das weiss ich ja, war auch nur der Vergleich zum TwinCAT. Bei KW wird es eben so eingebunden.

Ähnliche Themen

  1. Deklaration FC 30 R_String
    Von lukasalija im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 24.11.2010, 11:57
  2. Antworten: 0
    Letzter Beitrag: 01.06.2010, 13:06
  3. Beckhoff Variablen deklaration
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 08.06.2009, 11:18
  4. frage zur deklaration
    Von PPatte im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 11.03.2009, 21:47
  5. Antworten: 11
    Letzter Beitrag: 19.08.2004, 15:33

Lesezeichen

Berechtigungen

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