noobfrage: variablen aktualisieren wago 750-841

stisi
2008-04-25
2008-04-28
  • stisi - 2008-04-25

    Hallo,

    Hab für meine Hausautomation schon einiges in Codesys vorbereitet.

    Gestern hab ich dann die Hardware eingegeben, DI Karten DO´s usw. und Ihnen Namen gegeben, DI01 DI02 usw..so wie schon zuvor im Programm.

    Allerdings werden meine Ausgänge die ich im CFC habe nicht auf die Hardware ausgegeben, da wie ich denke die Variablen nicht richtig deklariert sind. Hab ja erst programmiert und dann erst die Hardware eingestellt und benannt.

    Wie kann ich nachträglich, wenn möglich automatisch Variablen zuweisen??

    will nicht alles von vorn machen

    Danke, Danke

     
  • Uwe - 2008-04-28

    Hallo stisi,

    wenn du erst programmiert hast, dann wollte CoDeSys auch sicherlich

    deine Variablen z.B. DI01 im Programm anlegen.

    Nehmen wir mal an du hast alles im PLC_PRG programmiert.

    Dann hast du im Deklarationsteil (oberes Fenster) wahrscheinlich z.B.

    einen Eintrag in der Form

    Dieser Eintrag legt eine lokale Variable an, die nur im PLC_PRG

    bekannt ist.

    Wenn du nun eine Steuerungskonfiguration anlegst und in der Steuerungskonfiguration

    den Signalen "Namen" gibst, dann legst du damit globale Variablen an die in allen

    Bausteinen bekannt sind.

    In deinem Fall hast du vermutlich in der Konfiguration z.B. eine globale Variable

    DI01 angelegt (die auch mit dem Eingangssignal verbunden ist)

    und zusätzlich hast du eine gleichnamige, lokale Variable in deinem Baustein.

    Dein Baustein hat also nun zwei Variable mit gleichem Namen aber unterschiedlichem

    Gültigkeitsbereich.

    In diesem Fall benutzt dein Baustein seine lokale Varibale.

    Die Lösung für dein Problem ist wahrscheinlich die doppelten Deklarationen deiner lokalen

    Variablen in den Bausteinen zu löschen, damit deinem Baustein nur noch die globale

    Variable aus der Steuerungskonfiguration bekannt ist.

    Hinweis auf zusätzliche mögliche Fehlerquelle:

    Die Anzahl der konfigurierten Klemmen muss genau zu den tatsächlich gesteckten passen.

    Es finktioniert also nicht z.B. eine zusätzliche Klemme zu stecken die erst später

    konfiguriert wird da man sie z.Zt. noch nicht benutzt.

    Uwe

     
  • Anonymous - 2008-04-28

    Originally created by: PM

    Um den Aufwand geringer zu halten, könntest du die lokalen Variablen auch direkt auf die physikalischen Adressen legen, d.h. zum Beispiel:

    DO1 AT %QX0.0 : BOOL;

    oder

    DI1 AT %IX0.0 : BOOL;

    Allerdings sind sie dann immer noch lokal, d.h. du kannst sie nur in dem Baustein verwenden, in welchem sie deklariert sind (z.B. PLC_PRG). Wenn du sie schon global deklariert hast, kannst du dasselbe mit der AT-Deklaration machen...

    Gruß, Peter

     

Log in to post a comment.