Tastatur/Keypad Größe anpassen

B@llou
2019-09-18
2023-03-31
  • B@llou - 2019-09-18

    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

     
  • B@llou - 2019-09-19

    Hallo,

    hat keiner die Probleme, dass ihm die Tastenfelder des Keypads zu klein sind?

    Gruß
    Stefan

     
  • B@llou - 2019-09-19

    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.

    IMG: codesys_tastatur.png

     
  • m.prestel - 2019-09-20

    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

     
  • B@llou - 2019-09-20

    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.

    IMG: Fehler_Uebersetzung.png

     
  • B@llou - 2019-09-23

    Ich komme einfach nicht weiter, was bei dem Parameter "flags" von mir erwartet wird.

     
  • m.prestel - 2019-09-26

    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

     
  • B@llou - 2019-09-27

    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

     
  • m.prestel - 2019-09-27

    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

     
  • B@llou - 2019-09-27

    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

    IMG: Codesys_Tastatur.jpg

     
  • m.prestel - 2019-09-27

    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

     
  • B@llou - 2019-09-27

    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

     
  • m.prestel - 2019-09-30

    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

     
  • B@llou - 2019-09-30

    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

    IMG: codesys_tastatur_lib.png

     
    • bekoo - 2021-04-21

      Would you be able to solve the issue of "C0046: Identifier 'flags' not defined" ?

       
    • bekoo - 2021-04-21

      Would you be able to solve the issue of "C0046: Identifier 'flags' not defined" ?

       
      • m.prestel - 2021-04-22

        Dont use the Keypad/Numpad Dialog inside a frame

         
        👍
        1
    • bahama - 2022-03-09

      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
      • lifetekker - 2023-03-31

        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...

         
        • bahama - 2023-03-31

          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:

          //Min-Feld->Schriftartenvariablen-->Farbe:
          SEL((STRING_TO_REAL(stOutputValue) < STRING_TO_REAL(stMin)),16#FF000000,16#FFFF0000)
          //Max-Feld->Schriftartenvariablen-->Farbe:
          SEL((STRING_TO_REAL(stOutputValue) > STRING_TO_REAL(stMax)),16#FF000000,16#FFFF0000)
          

          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
          • lifetekker - 2023-03-31

            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?

             
  • blop - 2022-08-09

    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.

     

Log in to post a comment.