Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

INTERN ASSIGN

bennelli
2009-04-21
2009-04-21
  • bennelli - 2009-04-21

    Hallo zusammen,

    in der Visualisierung habe ich unter dem Punkt:

    Element Eigenschaften -> Eingabe -> Programm auführen

    versucht über die Visualisierung eine globale Varibale zu setzen.

    Den Befehl habe ich mittels dem Dialog und der Taste <f2> um die Variablen zu finden erstellt</f2>

    Den Wert den ich dieser Globalen Variablen zuweise stammt aus einem PRG Block.

    Laut Anleitung sollte es eigentlich kein Problem sein, aber es will einfach nicht funktionieren.

    Vielleicht kann ja einer helfen ?

    Grüße,

    Benny

     
  • Erik Böhm - 2009-04-21

    Moin

    Häng doch mal dein Projekt mit an.

    Gruss

    Erik

     
  • bennelli - 2009-04-21

    Okay,

    allerdings habe ich schon etwas drum herum gebastelt und das ganze ist noch eine Baustelle.

    Zur Erklärung:

    Es sollen Werte einer 3-Phasenklemme gemessen werden.

    Dazu habe ich eine einheitliche Darstellung der Werte erstellt. Aus dem vorherigen Menü wähle ich die Klemme aus, darauf hin sollte die Zeigeradresse auf die globale Variable kopiert werden.

    Meine aktuellen Werte beziehen sich nun immer auf die globale Variable.

    Im Prinzip will ich nur den Zeiger verbiegen.

    Grüße,

    Benny

     
  • Erik Böhm - 2009-04-21

    Moin

    Du willst also einen Pointer auf einen Funktionsblock per Tastendruck an ein PRG übergeben.

    Einmal davon abgesehen, dass ich das hochgradig gefährlich finde, falls der Pointer mal ins Nirvana zeigt...

    Die Addr Variable der einzelnen PRG's ist eine Output Variable, die in Zeile 2 dauernd überschrieben wird. Könnte das der Grund sein, warum da nie ein anderer Wert drin steht als der von ADR(Measuring3Phase) ?

    Gruss

    Erik

     
  • bennelli - 2009-04-21

    Hallo,

    ja genau so hatte ich mir das gedacht.

    Ja da muss man schon aufpassen, aber in diesem Fall minimiert sich

    der Aufwand erheblich.

    Stimmt an der Zuweisung könnte es liegen.Ich werde das mal überprüfen.

    In dem angehängten Projekt habe ich mittels Tastendruck die Adresse des Pointers mittels dem Funktionsblock SHOWVISU an die globale Variable übergeben. So hatte es funktioniert. Allerdings mit dem ASSIGN nicht.Aber ich denke es lag an einer Zuweisung, die den Wert andauernd überschrieben hat.

    Es handelt sich ja nicht um eine sicherheitskitische Anwendung und die Pointer werden nur lesend benutzt. Im Fehlerfall hätte man keine Darstellung, was allerdings zu verkraften wären.

    Die einzigste Alternative dazu wäre es für jede Klemme eine Visualisierung zu erstellen. Im Prinzip gibt es aber nur 4 verschiedene Layouts der Werteanzeige und so müsste ich dann 4*14 Visualisierungen anlegen.

    Falls sich etwas im Layout ändern sollte, würde es so deutlich mehr Zeit kosten.

    Vielen DANK !

    Grüße Benny

     
  • Erik Böhm - 2009-04-21

    Moin

    Schon mal das Platzhalterkonzept der Visu angekuckt ?

    Dann müsstes du nur noch EINE Visu malen und die als Template benutzen ...

    Gruss

    Erik

     
  • bennelli - 2009-04-21

    Richtig, das könnte ich auch machen.

    Das würde dann heißen:

    Ich erstelle meine 4 Templates mit Platzhalter für die Klemme

    und dupliziere die Templates mit der Anzahl der Klemmen und ersetze dann

    jeweils die Platzhalter mit der jeweiligen Klemme um an die Werte zu

    kommen. Oder ?

    Grüße,Benny

     
  • Erik Böhm - 2009-04-21

    Hört sich so weit korrekt an.

    So mach ichs z.B. um die IO-Belegung für den Bediener zu Visualisieren.

    Und wir haben da schon mal mehrere hundert IO's.

    Funktioniert prima.

    Gruss

    Erik

     
  • bennelli - 2009-04-21

    Was sich bewährt hat, hört sich immer gut an

    Dann mach ich das auch so!

    Wobei ich die Pointer-Variante sehr kreativ finde.

    Vielen Dank!

    Grüße,

    Benni

     

Log in to post a comment.