# Visualisierung Eingabefeld?



## Azrael666 (15 Februar 2017)

Hallo Leute,

ich verzweifle gerade ein bisschen an der Codesys Visu. Wie ist es möglich dort ein einfaches E/A Feld einzubauen in dem ich mir einerseits die Variable anzeigen lassen und aber auch etwas eingeben kann (Text)?

Also ich muss schon sagen ich motze immer recht viel über Winccflex, aber diese Codesys Visu schafft es echt einen in den Wahnsinn zu treiben.

Wenn mir jemand bei meinem "kleinen" Problem weiterhelfen kann, wäre das super. Google und F1-Hilfe sind keine wirkliche Hilfe.

MFG


----------



## L.T. (15 Februar 2017)

Codesys V2 oder V3?


----------



## Azrael666 (15 Februar 2017)

Ups, sorry is Codesys 3.5


----------



## L.T. (15 Februar 2017)

Versuchs mal damit:




Durch die Einstellung bei "Eingabekonfiguration" legst du fest ob es nur eine Anzeige oder auch eine Eingabe ist.


----------



## Azrael666 (15 Februar 2017)

Danke für die coole Anleitung, so in etwa hatte ich es schon versucht. Allerdings passiert so ziemlich gar nichts wenn ich dann in das Feld klicke.
Es kommt nur die Fehlermeldung:

[FEHLER]        Error during Updating the Visualisation:
[INFORMATION]   Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Hat es vielleicht etwas damit zu tun dass ich aktuell nur ne Simulation verwende?


----------



## oliver.tonn (15 Februar 2017)

Mach doch bitte mal einen Screenshot von Deinen Einstellungen und vielleicht auch von der Visu

Von irgendwas mit Internetzugang gesendet.


----------



## Azrael666 (15 Februar 2017)

so hab ich das alles eingestellt. Die Text-Variable ist ein String in einem FB

PS: Ausserdem kommt beim Klicken auf das Feld aktuell folgende Fehlermeldung:

[FEHLER]        Exception during MouseMove: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.    bei _3S.CoDeSys.VisualEditor.DeviceImageRenderer.OffsetRect(Rectangle& rect, Single fZoomFactor, Boolean bOnline, Size editorSize)    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.OffsetEditControlWhenDeviceImageIsShown(Control control, Single fZoomFactor, Boolean bOnline)    bei _3S.CoDeSys.VisualPaintCommands.OpenEditControlCommand.Execute(Graphics g, IVisualEditorRenderer rend)    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.ExecutePaintCommands()    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.ExecuteEvent(EventDescription ed)    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.HandleMouse(MessageType mtType, Int32 x, Int32 y)    bei _3S.CoDeSys.VisualEditor.VisualEditor.HandleMouse(MessageType mtType, Point mousePos)    bei _3S.CoDeSys.VisualEditor.VisualEditor.VisualEditorEventQueue.ExecuteAllWithMouseEvent(VisualEditor editor, MessageType mtType, Int32 xIn, Int32 yIn)    bei _3S.CoDeSys.VisualEditor.VisualEditor.HandleMouseQueued(MessageType mtType, Int32 xIn, Int32 yIn)    bei _3S.CoDeSys.VisualEditor.VisualEditor.OnMouseMove(MouseEventArgs mea)
[FEHLER]        Exception during MouseDown: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.    bei _3S.CoDeSys.VisualEditor.DeviceImageRenderer.OffsetRect(Rectangle& rect, Single fZoomFactor, Boolean bOnline, Size editorSize)    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.OffsetEditControlWhenDeviceImageIsShown(Control control, Single fZoomFactor, Boolean bOnline)    bei _3S.CoDeSys.VisualPaintCommands.OpenEditControlCommand.Execute(Graphics g, IVisualEditorRenderer rend)    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.ExecutePaintCommands()    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.ExecuteEvent(EventDescription ed)    bei _3S.CoDeSys.VisualEditor.OnlineRenderer.HandleMouse(MessageType mtType, Int32 x, Int32 y)    bei _3S.CoDeSys.VisualEditor.VisualEditor.HandleMouse(MessageType mtType, Point mousePos)    bei _3S.CoDeSys.VisualEditor.VisualEditor.VisualEditorEventQueue.ExecuteAllWithMouseEvent(VisualEditor editor, MessageType mtType, Int32 xIn, Int32 yIn)    bei _3S.CoDeSys.VisualEditor.VisualEditor.HandleMouseQueued(MessageType mtType, Int32 xIn, Int32 yIn)    bei _3S.CoDeSys.VisualEditor.VisualEditor.OnMouseDown(MouseEventArgs mea)


----------



## oliver.tonn (15 Februar 2017)

Hm, stimmt denn der Eintrag bei Textvariable? Heißt die oberste Ebene wirklich Messablauf?


----------



## Azrael666 (15 Februar 2017)

oliver.tonn schrieb:


> Hm, stimmt denn der Eintrag bei Textvariable? Heißt die oberste Ebene wirklich Messablauf?



Sollte eigentlich. Ich hab die Variable ja über das Auswahlmenü ausgewählt.


----------



## oliver.tonn (15 Februar 2017)

Also ist Messablauf tatsächlich ein PRG, OK. Oder hast Du oben in der Visu eine Variable mit dem Namen Messablauf deklariert?


----------



## Azrael666 (15 Februar 2017)

Nein, in der Visu hab ich keine Variablen deklariert. 
Ja Messeablauf ist ein ein Programbaustein, der wiederum im PLC_PRG aufgerufen wird.


----------



## oliver.tonn (15 Februar 2017)

Habe mir Deine Antwort in #7 nochmals durchgelesen. Du nimmst bei Textvariable aber nicht direct den Namen der Instanz des FBs? Denn das wird nicht gehen. Du must die Variable so aufbauen, dass Du dich angefangen vom PRG der in der Taskkonfig eingetragen ist bis zur Variable durchhangelst.
Nachtrag: Du warst schneller, dann must du mit PLC_PRG beginnen.


----------



## Azrael666 (15 Februar 2017)

Also die Variable lautet: Messeablauf.RFID_0.Datenstring_RFID

Wenn ich da jetzt noch ein PLC_PRG. davorhänge kommen wieder neue Fehlermeldungen:

                ------ Übersetzungslauf gestartet: Applikation: Device.Application -------
                Code typisieren ...
[FEHLER]        : RFID(Element ID 20): C0032:  Typ 'Unbekannter Typ: 'ADR(PLC_PRG.Messeablauf.RFID_0.Datenstring_RFID)'' kann nicht in Typ 'POINTER TO DWORD' konvertiert werden
[FEHLER]        : RFID(Element ID 20): C0032:  Typ 'Unbekannter Typ: '__TYPEOF(PLC_PRG.Messeablauf.RFID_0.Datenstring_RFID)'' kann nicht in Typ 'TYPE_CLASS' konvertiert werden
[FEHLER]        : RFID(Eingang von Element ID 20): C0032:  Typ 'Unbekannter Typ: '__BITOFFSET(PLC_PRG.Messeablauf.RFID_0.Datenstring_RFID, arrgenv3[0], arrgenv3[1])'' kann nicht in Typ 'BOOL' konvertiert werden
                Kompilierung abgeschlossen -- 3 Fehler, 0 Warnungen


----------



## oliver.tonn (15 Februar 2017)

Hangel Dich doch mal mit der Eingabehilfe von PLC_PRG durch, dann sollte es eigentlich gehen.


----------



## Azrael666 (15 Februar 2017)

oliver.tonn schrieb:


> Hangel Dich doch mal mit der Eingabehilfe von PLC_PRG durch, dann sollte es eigentlich gehen.



 so hab ich es ja schon am Anfang gemacht.


----------



## oliver.tonn (15 Februar 2017)

Ja, aber doch nicht von PLC_PRG oder? Du must immer ganz oben im Aufrufbaum starten und Dich dann bis unten durchhangeln.


----------



## Azrael666 (15 Februar 2017)

oliver.tonn schrieb:


> Ja, aber doch nicht von PLC_PRG oder? Du must immer ganz oben im Aufrufbaum starten und Dich dann bis unten durchhangeln.



Doch, von der PLC_PRG aus hab ich es auch schon versucht. (Siehe Post #13)


----------



## oliver.tonn (15 Februar 2017)

OK, hatte #13 so verstanden, dass Du einfach PLC_PRG davor gehängt hast und nicht die Eingabehilfe genommen hattest. Habe hier leider nur TC3 vorliegen und kann es daher nicht nachstellen. Vielleicht komme ich heute Abend mal dazu.


----------



## L.T. (15 Februar 2017)

Hast du das schon mit einer globalen Variable probiert?
Dann kannst du wenigstens einen Fehler in der Visu und in der Projektierung deines Ausgabefelds ausschließen.


----------



## Azrael666 (15 Februar 2017)

L.T. schrieb:


> Hast du das schon mit einer globalen Variable probiert?
> Dann kannst du wenigstens einen Fehler in der Visu und in der Projektierung deines Ausgabefelds ausschließen.



 jap, hab ich auch schon versucht. das selbe Ergebniss


----------



## -J-E- (16 Februar 2017)

Also deine Fehlermeldung lässt sich auf jeden Fall reproduzieren, indem die Angegebene Textvariable nicht vorhanden ist(im Source). 

Zeig mal bitte die Deklaration im Programm und auch den Deklarationsteil der Visu, falls in der Visu was deklariert ist.

Oder schicke mir mal dein Programm und ich schaue es mir an


----------



## Azrael666 (16 Februar 2017)

-J-E- schrieb:


> Also deine Fehlermeldung lässt sich auf jeden Fall reproduzieren, indem die Angegebene Textvariable nicht vorhanden ist(im Source).
> 
> Zeig mal bitte die Deklaration im Programm und auch den Deklarationsteil der Visu, falls in der Visu was deklariert ist.
> 
> Oder schicke mir mal dein Programm und ich schaue es mir an



Also im Deklarationsteil der VISU habe ich nichts stehen. 
Die Variable Ansich ist in dem Funktionsbaustein unter VAR deklariert (als String[200]).

Hat vielleicht jemand ein Beispielprojekt oder weiß wo man eines bekommen kann?


----------



## oliver.tonn (16 Februar 2017)

Beim Projekt fehlen Bibliotheken. Wo ist denn Test im Projekt, konnte es nicht finden.
 Hab mal schnell was vorbereitet, hoffe es hilft.

Anhang anzeigen Test_Visu.zip


----------



## Azrael666 (16 Februar 2017)

Bei deinem Projekt bekomme ich einen Lizenzfehler. 
Ich kann mein Projekt nicht als Archiv hochladen, weil es scheinbar zu groß ist.

Also ich hab jetzt so ziemlich alles ausprobiert was Google zu dem Thema ausgespuckt hat und nichts hat funktioniert. egal was ich mache, es kommt immer die selbe Fehlermeldung.


----------



## oliver.tonn (16 Februar 2017)

Habe die aktuelle Version von 3S genommen.

Von irgendwas mit Internetzugang gesendet.


----------



## -J-E- (17 Februar 2017)

Hier mal ein Testprojekt. Dieses läuft bei mir.
Exportiere mal den FB und die VISU und importiere diese bei deinem Projekt. Sollte eigentlich klappen


----------



## Azrael666 (17 Februar 2017)

Moin moin,

tja so ich hab heute die Hardware bekommen und konnte den Ganzen Test auf einen reale Hardware verlagern. Das Ende vom Lied ist dass, so wie es zu Anfang schon beschrieben wurde tatsächlich funktioniert.
Allerdings nur wenn ich das Ganze per WebVisu mache. Klicke ich dort auf das Feld, kommt die Eingabetastatur und der Wert wird dann in die Variable geschrieben.

Heiß im Prinzip:
- per WebVisu funktioniert das einwandfrei.
- wenn ich mich auf der CPU einlogge (online gehe) und dann in Codesys das erstellte VisuElement öffne kann ich zwar die Variable sehen, jedoch nicht ändern. Dann kommt sofort wieder die Fehlermeldung.


----------



## oliver.tonn (17 Februar 2017)

Hm, das irritiert mich jetzt ein wenig. Ich hatte es nur direkt in der Entwicklungsumgebung (Simulation aktiv) getestet. Du nutzt auch wirklich das reine Codesys und nicht eine angepasste Variante, z.B. von WAGO?


----------



## Azrael666 (17 Februar 2017)

Ja ich nutze das reine Codesys. Hab heute erst die aktuelle Version 3.5 SP10 Patch 1 installiert. 
Ich hab natürlich als DEVICE ein anderes Gerät drin als den Codesys_Control_Win.

PS: ich hab jetzt mal schnell ein Testprojekt mit einem Control_Win gemacht. Also wenn ich mich dann mit dem verbinde, funktioniert es auch.
Es funktioniert allerdings wiederum nicht wenn ich:
Online -> Simulation (einschalten) und dann auf Einloggen gehe.


----------



## seebenisch (18 Juni 2017)

Hallo Zusammen,

hat vielleicht wer noch eine kurze Anleitung wie man einen Wert via Webvisu eingeben kann. Das ganze jedoch unter codesys 2.3.

Bitte Danke

Grüße Maik


----------



## Dr.MirakulixX (18 Juni 2017)

Du musst bei deinen Parametern Eingabe aktivieren. Dort dann auswählen ob Numerisch oder String. Dann wenn die Visu Online ist auf das Feld klicken und eingeben.


----------



## seebenisch (18 Juni 2017)

Mit Parametern meinst du das Häkchen bei "Text Eingabe der Variable ´Textausgabe`" setzen?


----------



## Cornel61 (29 Dezember 2020)

Hallo in die Runde,
auch wenn das Thema vor einigen Jahren erläutert wurde, es hatte mir bei der Erstellung der Visu in Codesys 3.5 sehr geholfen, stehe ich nun vor dem gleichen Problem mit Codesys 2.3.
Ich arbeite momentan mit einer WAGO 750-881 und komme mit der Visualisierung nicht weiter, genauer mit dem Einrichten eines Eingabefeldes. Ich möchte z.B. meiner Heizung sagen, dass der Boiler auf 50°C aufgeheizt werden soll. Leider bekomme ich es nicht gebacken, aus einem Rechteck ein Eingabefeld zu machen. Könnte mir bitte jemand mit einer Anleitung helfen?
Die Anleitung im Netz für die WebVisu bringt mich leider nicht weiter.
Gruß Uli


----------



## oliver.tonn (29 Dezember 2020)

Das ist eigentlich relativ einfach, im Konfigurationsfenster gibst Du unter Text einen Platzhalter an, z.B. %d, unter Variable bei Textausgabe die Variable für den Sollwert und unter Eingabe noch auswählen, dass für die Eingabe die selbe Variable wie bei Textausgabe verwendet werden soll, fertig.


----------



## Cornel61 (30 Dezember 2020)

Hallo oliver.tonn,
danke für Deine Hilfe. Platzhalter ist klar, Variable ist auch klar. Jedoch finde ich "...und unter Eingabe noch auswählen, dass für die Eingabe die selbe Variable wie bei Textausgabe verwendet werden soll..." nicht. Im Anhang ist ein Bild mit der Konfiguration ...Eingabe..., kannst Du mir eventuell weiter helfen?


----------



## oliver.tonn (30 Dezember 2020)

Sitze gerade nicht am Laptop und kann Dein Bild nicht bearbeiten. Steht doch da als letztes Klickfeld "Text Eingabe der Variable 'Textausgabe'".


----------



## Cornel61 (30 Dezember 2020)

Ach okay, also nur den Haken setzen.


----------



## Cornel61 (2 Januar 2021)

Hallo oliver.tonn, ich wünsche Dir ein gesundes neues Jahr. Die Eingabe der Werte funktioniert super. Danke. Ich habe noch eine weitere Frage: in meiner Visu möchte ich Icons/ Bilder für die Zustandsanzeige verwenden, z.B. Pumpa aus, bunkelgrünes Bild einer Pumpe, Pumpe ein, hellgrünes Bild einer Pumpe. Die Bilder habe ich mir erstellt. Ich habe diese als BMP gespeichert, hoffe dass das richtig ist. Rahmen und Hintergrund schalten ist einfach. Wie ich die Bilder konfiguriere, dass diese bei Ein oder Aus sichtbar oder unsichtbar sind, bekomme ich nicht hin. Kennst Du Dich damit aus? Es sind bitte Alle angesprochen, die mir helfen können.


----------



## oliver.tonn (2 Januar 2021)

Bei Variablen meine ich kannst Du eine BOOL Variable angeben, ist diese TRUE ist das Element unsichtbar. Setzt Du ein NOT davor ist es bei FALSE unsichtbar.


----------



## Cornel61 (2 Januar 2021)

Am SR der Pumpe ist Q entwerder TRUE oder FALSE, negieren kann ich da nichts. Ich verstehe nicht wie du das meinst. Was mus ich bei der Bitmap Variablen eingeben? Was muss ich bei der Kategorie: Variablen ...eingeben? Verwende ich die BOOLsche Adresse des SR der Pumpe im Feld "Unsichtbar" ? Dadurch verschwinden beide Bilder, wenn ich diese Adresse bei beiden Bildern eingebe. Ich finde keine Möglichkeit den Bildern mitzuteile, wann sie sichtbar und wann unsichtbar sein sollen.


----------



## oliver.tonn (2 Januar 2021)

Ich habe auch nicht geschrieben, dass Du in Deinem Programm etwas invertieren sollst, sondern in der Visu.
In den Elementeeigenschaften in der Visu gibt es unter dem Punkt Variablen einen Eintrag wo man eine Boolsche Variable angeben kann. Ist diese TRUE ist das entsprechende Element unsichtbar. Schreibt man vor die Variable NOT ist es genau umgekehrt, dann ist das Element unsichtbar wenn die Variable FALSE ist. Bei dem einen Element musst Du dann ein NOT vor die Variable schreiben bei dem anderen nicht, dann sind sie abwechselnd sichtbar.
Einen reinen Farbwechsel kann man übrigens auch mit einem Element (z.B. Rechteck) hinbekommen. Man stellt eine Farbe als Standard und eine als Alarm ein und über eine boolsche Variable wird dann der Farbwechsel durchgeführt.


----------



## oliver.tonn (2 Januar 2021)

Übrigens solltest Du Dir mal das Infosys von Beckhoff ansehen, das wäre in Deinem Fall zwar für TwinCAT 2, aber das basiert auf Codesys 2.3 und ist dem dadurch sehr ähnlich.


----------



## Cornel61 (3 Januar 2021)

Vielen Dank für Deine Hilfe, ich habe gefunden, wie es mit der Zuweisung funktioniert. Leider bin ich zu lange aus der Praxis raus und Visualisierung hatte ich nur vor eingen Jahren mit WinCC gelernt.
Bei den Variablen muß unter ...Unsichtbar... entweder TRUE=(BOOLsche Variable) eingegeben werden, und entsprechend so weiter.
Ich wußte nicht mehr, wie die Zuweisung funktioniert, auf jeden Fall nicht wie in ST mit :=  .
Schönen Sonntag!


----------



## oliver.tonn (3 Januar 2021)

Wie gesagt, schau mal ins Infosys. TwinCAT 2 ist recht ähnlich zu Codesys V2.3, bei TwinCAT 3 sieht das in Bezug zu Codesys V3.5 schon etwas anders aus.
Auch Dir einen schönen Sonntag.


----------

