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

Eigene Key- oder Numpads, Variablen in Visu

roggles
2012-07-06
2012-07-10
  • roggles - 2012-07-06

    Hallo,

    ich bin Saia-Burgess verwöhnt! Dort kann man im Visualisierungseditor eigene Tastaturen anlegen.
    Gibt es in CoDeSys auch irgenwie die Möglichkeit dazu?

    Kann man im Visualisierungseditor Variablen (Container) verwenden, die nur innerhalb
    einer aufgerufenen Visualisierung gültig sind?

    Bsp. zwei Kunden öffnen parallel die gleiche Visualisierungsseite.
    Kunde A drückt einen Button, der durch eine interne Variable, ein nur visuelles Ereignis
    auslößt. Kunde B bekommt aber nichts davon mit.

    Vielen Dank
    Gruß

     
  • Anonymous - 2012-07-09

    Originally created by: mg

    roggles hat geschrieben:
    Hallo,
    ich bin Saia-Burgess verwöhnt! Dort kann man im Visualisierungseditor eigene Tastaturen anlegen.
    Gibt es in CoDeSys auch irgenwie die Möglichkeit dazu?
    Kann man im Visualisierungseditor Variablen (Container) verwenden, die nur innerhalb
    einer aufgerufenen Visualisierung gültig sind?
    Bsp. zwei Kunden öffnen parallel die gleiche Visualisierungsseite.
    Kunde A drückt einen Button, der durch eine interne Variable, ein nur visuelles Ereignis
    auslößt. Kunde B bekommt aber nichts davon mit.
    Vielen Dank
    Gruß

    Ich rede jetzt mal von der WebVisu
    a) TASTATUREN: definitiv nein, außer du machst Dir das selber.
    a1) Über Codesys, dann kann man halt die Position nicht mehr verschieben und es ist halt nicht grad so schnell. (und der Aufwand ist auch nicht grad wenig)
    a2) Über ein externes Java-Progi (evtl. auch JAVA-Bean) ... is aber kompliziert.
    b) EVTL ... (aber da kenn ich mich nicht so gut aus) über das WEB-Login. Sonst eigentlich ebenfalls NEIN. Wieso, soll Kunde B nichts mitbekommen, er sieht ja das gleiche wie Kunde A? (wenn dir der Button zu wenig ist kannst Du ihn ja einfärben rot-grün oä.) ABER: Wenn etwas die gleiche Auswirkung hat und 2 User haben die selben Rechte ist eben der schnellere, der der das Ereignis auslöst. Mitbekommen tut der 2. es dann, wenn er die Auswirkung sieht oder evtl. durch einen speziellen Hinweis (zb Farbwechsel). Das sog. "visuelle Ereignis" sieht ja auch der Kunde B.

     
  • roggles - 2012-07-10

    hm ok, das mit der Tastatur hab ich mir schon fast gedacht...

    Trotzdem wären frei definierbare, nur zur Laufzeit gültige Variablen einer WebVisu eine tolle Sache.

    Beispiel:

    Die CoDeSys Alarmverwaltung verlangt zu viel Arbeit. Jeder Alarm muss händisch eingefügt werden.
    Ich hatte dazu eine eigene Alarm Lib geschrieben. Man nimmt ein paar Störmeldebausteine, die beim ersten Zyklus
    automatisch ihre ID's und Meldetexte in einem Array schreiben. Wenn eine Störung auftritt, wird nach der ID im Array geschaut und die
    dazugehörige Meldung (inkl Zeiten, Quit. usw.) in einem Alarmarray abgelegt.

    In der Visualisierung könnte ich jetzt eine Tabelle nehmen, die mir das Alarmarray anzeigt, jedoch passt mir das Design nicht.
    Wenn ich eine eigene Tabelle anlege mittels Textboxen, dann muss ich die Scrollfunktion im Code realisieren, was 1. langsam ist
    und 2. eine weitere Person über die WebVisu nicht parallel scrollen kann.

    Deshalb wäre es doch schön temporäre Variablen in der Visu nutzen zu können.

    Meldungstext[index]
    Meldungstext[index+1]
    Meldungstext[index+2]
    Meldungstext[index+3]

    Der index ist eine temporäre Variable die beim Start der Visu mit 0 initialisiert wird.
    Buttons können diese inkrementieren oder dekrementieren.

    Vielen Dank
    Gruß

     
  • Erik Böhm - 2012-07-10

    Mahlzeit

    Und was hindert dich daran das mit dem [Index] so zu machen ?
    Du kannst doch jederzeit eine Variable für diesen Zweck hernehmen.

    Gruß
    Erik

     
  • roggles - 2012-07-10

    Ich kann eine Variable des CoDeSys Programms nehmen! Ich kann aber meines Wissens nicht für jede
    aufgerufene Visualisierung eine eigene Variable nehmen.

    Kunde A verändert in einer Maske eine Variable mit der er durch eine Liste scrollen kann.
    Kunde B soll unabhängig von Kunde A in der Liste scrollen.

    Dazu braucht man eine temporäre, nur zur Laufzeit der Visualisierung, gültige Variable!

     
  • Anonymous - 2012-07-10

    Originally created by: mg

    Also die Indizierung geht zumindest bei der WebVisu glaube ich nicht - siehe auch Auszug aus der Bedieungsanleitung:

    Variablenzugriffe:
    Dynamische Indizierung innerhalb eines Arrays „Array1[Index].a“ ist nicht möglich, „Array1[10].a“ dagegen schon.
    Die dynamische Indizierung wird ab CoDeSys 3.0 realisiert werden. Platzhalterersetzungen die im Platzhalter einen Ausdruck
    enthalten Platzhalter: $abc$ + 5 Ersetzung: PLC_PRG.n + 500 -> würde PLC_PRG.n + 500 + 5 ergeben, ist allerdings innerhalb der Web-
    Visualisierung nicht möglich. Diese Funktion wird ab CoDeSys 3.0 realisiert werden.
    Pointervariablen Pointervariablen wie PLC_PRG.pdw2^ können nicht "gemonitort" werden.
    Diese Funktion wird ab CoDeSys 3.0 realisiert werden.

    Wenn Du dir da ganz viel antun willst mußt du es über ein externes JAVA Porgi machen. Ich habe das bisher nur für das Zeitprogramm und den Trend mit ModBus TCPIP realisiert (keine Freeware): ABER DER AUFWAND STEHT IN KEINER RELATION ZUM NUTZEN.

    Mg

     
  • roggles - 2012-07-10

    Das Handbuch hatte ich auch schon durch...
    Jedoch hätte es ja sein können, dass es die Funktion inoffiziel gibt, da
    zwischen TargetVisu, WebVisu, und CoDeSys Visu teilweise erhebliche Unterschiede
    zwischen Darstellung und Funktion herrschen.

    z.B. (eine von mehreren Situationen)
    Variable Textausgabe:
    var[0] funktioniert in Codesys, Target (WinCE Runtime) und Webvisu
    var[var] funktioniert in Codesys, Target (WinCE Runtime)
    var[var+1] funktioniert nur in Target (WinCE Runtime)

    CoDeSys Version 2.3.9.28

    Gruß

     

Log in to post a comment.