Ich habe nun heraus gefunden, dass ich mir eine eigene Tastatur erstellen kann in dem ich eine neue Visu Seite erstelle und dort über Visualisierungswerkzeuge -> VisuDialogs eine Keypad einfüge.
Leider weiß ich danach nicht was genau für Parameter von mir gefordert sind.
Ich habe dann 5 Variablen in der GVL angelegt und diese verknüpft. Das hat auch funktioniert außer der Parameter "flags".
Beim Übersetzen bekomme ich dann immer folgenden Fehler:
C0046: Bezeichner 'flags' nicht definiert.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
m.prestel hat geschrieben:
Hallo Stefan,
Du solltest den Dialog dann im Visu-Manager auswählen können.
Siehe https://help.codesys.com/webapp/_visu_o ... n=3.5.15.0
Dort einfach dein eigenes Keypad auswählen..
LG
Marcel
Hallo Marcel,
danke für die Rückmeldung.
JA, soweit funktioniert das auch ohne weiteres aber immer beim übersetzen habe ich folgenden Fehler:
C0046: Bezeichner 'flags' nicht definiert.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
m.prestel hat geschrieben:
Ganz ruhig...
Ich hab mir das nochmal genauer angeschaut und referenzieren im Frame geht nicht.
Deshalb machen wir das anders.
Welche CODESYS-Version verwendest du?
LG
Marcel
Sorry für meine Ungeduld,
also ich nutze V3.5 mit SP15
LG
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
anbei ist die VisuDialogs, welche normalerweise im Setup (leider nicht in SP15 durch verschiedene Umbauten) mit ausgeliefert wird und als Template für eigene Dialoge verwendet werden kann. https://drive.google.com/file/d/1SVQk9b ... sp=sharing
Dort kannst du die Dialoge auf deine Wünsche anpassen.
LG
Marcel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
m.prestel hat geschrieben:
Hallo,
anbei ist die VisuDialogs, welche normalerweise im Setup (leider nicht in SP15 durch verschiedene Umbauten) mit ausgeliefert wird und als Template für eigene Dialoge verwendet werden kann. https://drive.google.com/file/d/1SVQk9b ... sp=sharing
Dort kannst du die Dialoge auf deine Wünsche anpassen.
LG
Marcel
Wird die bereits zur Verfügung stehende Tastatur ersetzt oder wo genau ist diese nach dem Importieren der Bibliothek zu finden?
Gruß
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
m.prestel hat geschrieben:
Hallo Stefan,
Du solltest den Dialog dann im Visu-Manager auswählen können.
Siehe https://help.codesys.com/webapp/_visu_o ... n=3.5.15.0
Dort einfach dein eigenes Keypad auswählen..
LG
Marcel
Wie hier beschrieben solltest du dann deinen neuen Dialog einstellen.
LG
Marcel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
B@llou hat geschrieben:
Hallo Marcel,
danke für die Rückmeldung.
JA, soweit funktioniert das auch ohne weiteres aber immer beim übersetzen habe ich folgenden Fehler:
C0046: Bezeichner 'flags' nicht definiert.
Wie gesagt, dass funktioniert auch alles, ich kann einen Tastatur anlegen und diese in der Visu Konfiguration auch als Standard festlegen.
Ich bekomme aber immer einen Fehler beim übersetzen und den bekomme ich nicht weg.
C0046: Bezeichner 'flags' nicht definiert
Gruß
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Nein, du sollst den Dialog nicht über einen Frame einbinden.
Du passt die Größe der einzelnen Tasten einfach in der Lib größer.
Du brauchst keinerlei Übergabeparameter, das passiert aus der Code-Generierung.
Einfach über die Input-Action Write Variable eine Variable schreiben...
LG
Marcel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
m.prestel hat geschrieben:
Nein, du sollst den Dialog nicht über einen Frame einbinden.
Du passt die Größe der einzelnen Tasten einfach in der Lib größer.
Du brauchst keinerlei Übergabeparameter, das passiert aus der Code-Generierung.
Einfach über die Input-Action Write Variable eine Variable schreiben...
LG
Marcel
Hallo Marcel,
das scheint nun weit über mein Verständnis hinaus zu gehen.
Ich habe das Keypad in der VisualDialogs gefunden nur ich kann dir jetzt absolut nicht mehr folgen was ich da tun soll.
Gruß
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo Stefan,
ich weiß nicht, ob du dein Problem schon gelöst hast.
Aber ich stand jetzt auch davor. Und habe es so gelöst:
Eine neue Visualisierungsseite erstellt --> Name "MyKeypad"
In den Eigenschaft die Visualisierung auf "NumKeypad" eingestellt.
Die Schnittstelle habe ich dann 1:1 aus der Bibliothek "VisuDialogs" von dem Keypad übernommen.(wie du es im Bild markiert hattest.
Und dann habe ich dieses Keypad im Bibliothekspfad mit Doppelklick geöffnet.
Dadurch sollte ich dann ein Fenster öffnen in dem die einzelnen Elemente des Keypad anwählbar sind.(aber halt schreibgeschützt weil in Bibliothek)
Diese habe ich alle ausgewählt (STRG+A) und dann in meine neue Visualisierung kopiert.
In der neuen Visualisierung habe ich sie vergrößert wie ich es gebraucht habe.(geht relativ einfach, wenn man alle Gruppiert. die Gruppe dann größer zieht und dann die Gruppe wieder auflöst.)
Wichtig war dann noch das bei OK und ESC die "onMouseDown"-Events anpasst. Der CloseDialog-Befehl muss den neu erstellten Dialog schließen. In meinem Fall "MyKeypad" statt dem "Keypad".
Und dann hat es funktioniert.
Im Visualisierungsmanager kann dann auch das neue Keypad mit genutzt werden.
VG Markus
👍
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Schnelle und gute Lösung - danke dafür! Allerdings habe ich noch ein kleines Problem: Bei unter- oder überschreitung der Min- bzw. Max-Werte, wird weder Min noch Max rot. Der Code, der an dem entsprechenden Rechteck in der Visu hängt sieht folgendermaßen aus (1:1 mitkopiert):
Für Min:
SEL(((UDINT_TO_DINT(flags AND 16#0008))=16#0008),16#FF000000,16#FFFF0000)
Für Max:
SEL(((UDINT_TO_DINT(flags AND 16#0010))=16#0010),16#FF000000,16#FFFF0000)
Mir ist klar, dass über SEL die Farben (16#FF000000, ect.) nach der Bedingung (UDINT_TO_DINT(flags AND 16#0010))=16#0010 gesetzt wird. Allerdings komme ich da nicht weiter...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hey lifetekker,
bei mir wird Max und Min tatsächlich rot,
allerdings erst wenn man probiert OK zu drücken.
Hängt wahrscheinlich damit zusammen, dass normalerweise der Input "flags" ausgewertet wird und das wird bestimmt im Unterprogramm von der HMI-Anwendung berechnet wenn der OK-Befehl gedrückt wird.
(flags AND 16#0010) ist dann eine bitweise-Und-Verknüpfung.
Entsprechend ist 16#0008 das Feedback für < Min und 16#0010 für > Max
Wenn man jetzt in der SEL die Minimum-Variable und die Eingabenzeilen verwendet, sollte eine direkte Färbung stattfinden. Nicht zu vergessen, dass die Strings noch in Zahlen umgewandelt werden müssen...
Achtung, das könnte aber auch zu kleinen Geschwindigkeitseinbusen führen, weil die "STRING_TO_REAL" evtl. umfangreicher ist, als das Bitweise-Und und das UDINT_TO_DINT.
VG Markus
👍
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hey bahama,
tiptop - works for me. Ich finde die Lösung sogar eleganter, weil die Einfärbung bereits während der Eingabe erfolgt.
Geschwindigkeitseinbußen kann ich bisher nicht feststellen, allerdings muss ich zugeben, dass mir auch die Kompetenz fehlt das einzuschätzen. Findet die Abfrage/Konvertierung nur bei Änderung von stOutputValue statt, oder in jedem Cycle und/oder ständig wenn das NumPad geöffnet ist?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo bahama, Du bist ein Fuchs!
Diese Vorgehensweise funktioniert wunderbar. Bei mir habe ich noch die Schriftgröße der Tasten unddie Rahmen anpassen müssen.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
wie kann ich die Größe der Bildschirm Tastatur anpassen. Mir ist die aktuelle Tastatur einfach zu klein um mit den Fingern eingaben zu tätigen.
Gruß
Stefan
Hallo,
hat keiner die Probleme, dass ihm die Tastenfelder des Keypads zu klein sind?
Gruß
Stefan
Ich habe nun heraus gefunden, dass ich mir eine eigene Tastatur erstellen kann in dem ich eine neue Visu Seite erstelle und dort über Visualisierungswerkzeuge -> VisuDialogs eine Keypad einfüge.
Leider weiß ich danach nicht was genau für Parameter von mir gefordert sind.
Ich habe dann 5 Variablen in der GVL angelegt und diese verknüpft. Das hat auch funktioniert außer der Parameter "flags".
Beim Übersetzen bekomme ich dann immer folgenden Fehler:
C0046: Bezeichner 'flags' nicht definiert.
Hallo Stefan,
Du solltest den Dialog dann im Visu-Manager auswählen können.
Siehe https://help.codesys.com/webapp/_visu_o ... n=3.5.15.0
Dort einfach dein eigenes Keypad auswählen..
LG
Marcel
Hallo Marcel,
danke für die Rückmeldung.
JA, soweit funktioniert das auch ohne weiteres aber immer beim übersetzen habe ich folgenden Fehler:
C0046: Bezeichner 'flags' nicht definiert.
Ich komme einfach nicht weiter, was bei dem Parameter "flags" von mir erwartet wird.
Ganz ruhig...
Ich hab mir das nochmal genauer angeschaut und referenzieren im Frame geht nicht.
Deshalb machen wir das anders.
Welche CODESYS-Version verwendest du?
LG
Marcel
Sorry für meine Ungeduld,
also ich nutze V3.5 mit SP15
LG
Stefan
Hallo,
anbei ist die VisuDialogs, welche normalerweise im Setup (leider nicht in SP15 durch verschiedene Umbauten) mit ausgeliefert wird und als Template für eigene Dialoge verwendet werden kann.
https://drive.google.com/file/d/1SVQk9b ... sp=sharing
Dort kannst du die Dialoge auf deine Wünsche anpassen.
LG
Marcel
Wird die bereits zur Verfügung stehende Tastatur ersetzt oder wo genau ist diese nach dem Importieren der Bibliothek zu finden?
Gruß
Stefan
Wie hier beschrieben solltest du dann deinen neuen Dialog einstellen.
LG
Marcel
Wie gesagt, dass funktioniert auch alles, ich kann einen Tastatur anlegen und diese in der Visu Konfiguration auch als Standard festlegen.
Ich bekomme aber immer einen Fehler beim übersetzen und den bekomme ich nicht weg.
C0046: Bezeichner 'flags' nicht definiert
Gruß
Stefan
Nein, du sollst den Dialog nicht über einen Frame einbinden.
Du passt die Größe der einzelnen Tasten einfach in der Lib größer.
Du brauchst keinerlei Übergabeparameter, das passiert aus der Code-Generierung.
Einfach über die Input-Action Write Variable eine Variable schreiben...
LG
Marcel
Hallo Marcel,
das scheint nun weit über mein Verständnis hinaus zu gehen.
Ich habe das Keypad in der VisualDialogs gefunden nur ich kann dir jetzt absolut nicht mehr folgen was ich da tun soll.
Gruß
Stefan
Would you be able to solve the issue of "C0046: Identifier 'flags' not defined" ?
Would you be able to solve the issue of "C0046: Identifier 'flags' not defined" ?
Dont use the Keypad/Numpad Dialog inside a frame
Hallo Stefan,
ich weiß nicht, ob du dein Problem schon gelöst hast.
Aber ich stand jetzt auch davor. Und habe es so gelöst:
Eine neue Visualisierungsseite erstellt --> Name "MyKeypad"
In den Eigenschaft die Visualisierung auf "NumKeypad" eingestellt.
Die Schnittstelle habe ich dann 1:1 aus der Bibliothek "VisuDialogs" von dem Keypad übernommen.(wie du es im Bild markiert hattest.
Und dann habe ich dieses Keypad im Bibliothekspfad mit Doppelklick geöffnet.
Dadurch sollte ich dann ein Fenster öffnen in dem die einzelnen Elemente des Keypad anwählbar sind.(aber halt schreibgeschützt weil in Bibliothek)
Diese habe ich alle ausgewählt (STRG+A) und dann in meine neue Visualisierung kopiert.
In der neuen Visualisierung habe ich sie vergrößert wie ich es gebraucht habe.(geht relativ einfach, wenn man alle Gruppiert. die Gruppe dann größer zieht und dann die Gruppe wieder auflöst.)
Wichtig war dann noch das bei OK und ESC die "onMouseDown"-Events anpasst. Der CloseDialog-Befehl muss den neu erstellten Dialog schließen. In meinem Fall "MyKeypad" statt dem "Keypad".
Und dann hat es funktioniert.
Im Visualisierungsmanager kann dann auch das neue Keypad mit genutzt werden.
VG Markus
Schnelle und gute Lösung - danke dafür! Allerdings habe ich noch ein kleines Problem: Bei unter- oder überschreitung der Min- bzw. Max-Werte, wird weder Min noch Max rot. Der Code, der an dem entsprechenden Rechteck in der Visu hängt sieht folgendermaßen aus (1:1 mitkopiert):
Für Min:
SEL(((UDINT_TO_DINT(flags AND 16#0008))=16#0008),16#FF000000,16#FFFF0000)
Für Max:
SEL(((UDINT_TO_DINT(flags AND 16#0010))=16#0010),16#FF000000,16#FFFF0000)
Mir ist klar, dass über SEL die Farben (16#FF000000, ect.) nach der Bedingung (UDINT_TO_DINT(flags AND 16#0010))=16#0010 gesetzt wird. Allerdings komme ich da nicht weiter...
Hey lifetekker,
bei mir wird Max und Min tatsächlich rot,
allerdings erst wenn man probiert OK zu drücken.
Hängt wahrscheinlich damit zusammen, dass normalerweise der Input "flags" ausgewertet wird und das wird bestimmt im Unterprogramm von der HMI-Anwendung berechnet wenn der OK-Befehl gedrückt wird.
(flags AND 16#0010) ist dann eine bitweise-Und-Verknüpfung.
Entsprechend ist 16#0008 das Feedback für < Min und 16#0010 für > Max
Wenn man jetzt in der SEL die Minimum-Variable und die Eingabenzeilen verwendet, sollte eine direkte Färbung stattfinden. Nicht zu vergessen, dass die Strings noch in Zahlen umgewandelt werden müssen...
--> TLDR: Hier die Lösung:
Achtung, das könnte aber auch zu kleinen Geschwindigkeitseinbusen führen, weil die "STRING_TO_REAL" evtl. umfangreicher ist, als das Bitweise-Und und das UDINT_TO_DINT.
VG Markus
Hey bahama,
tiptop - works for me. Ich finde die Lösung sogar eleganter, weil die Einfärbung bereits während der Eingabe erfolgt.
Geschwindigkeitseinbußen kann ich bisher nicht feststellen, allerdings muss ich zugeben, dass mir auch die Kompetenz fehlt das einzuschätzen. Findet die Abfrage/Konvertierung nur bei Änderung von stOutputValue statt, oder in jedem Cycle und/oder ständig wenn das NumPad geöffnet ist?
Hallo bahama,
Du bist ein Fuchs!
Diese Vorgehensweise funktioniert wunderbar. Bei mir habe ich noch die Schriftgröße der Tasten unddie Rahmen anpassen müssen.