Page 1 of 2 1 2 LastLast
Showing results 1 to 10 of 16

Thread: Bilder direkt aus dem Explorer laden und anzeigen

  1. #1
    Join Date
    13.10.2017
    Posts
    38

    Default Bilder direkt aus dem Explorer laden und anzeigen

    Hallo,

    Ich würde gerne mit einem SPS Signal auf einem Bild direkt eine Grafik anzeigen lassen.

    Mit welchen Zenon Mitteln wäre das am besten um zu setzen? 
    Hat jemand von Euch so etwas schon mal gemacht?

    Vielleicht habt Ihr ja für mich ein paar Tipps.

    Vielen Dank

    Tommylik




  2. #2
    Join Date
    10.12.2007
    Posts
    273

    Default AW: Bilder direkt aus dem Explorer laden und anzeigen

    Ganz einfach durch Combielement mit Darstellungsart 'Grafikdatei und Bildsymbol' oder auch Button mit Grafik als Füllung und Sichtbarkeit über Variable.
    Oder hab ich die Frage nicht richtig verstanden?

  3. #3
    Join Date
    13.10.2017
    Posts
    38

    Default Re: Bilder direkt aus dem Explorer laden und anzeigen

    Hallo mst,

    Ich denke mit den wenigen Angaben von mir hast du die Frage richtig verstanden.

    Sorry ich dachte direkt aus dem Ordner anzeigen würde mit einem Combi Element nicht funktionieren.
    Bei 'Grafikdatei und Bildsymbol' muss man doch die Grafik vorher auswählen. Oder nicht?
    Also das SPS Signal ist ein niO Signal von einer Applikation. Mit diesem Signal soll ein bestimmtes Bild aus 
    einem bestimmten Ordner angezeigt werden.
    Ich hätte ein String zur Verfügung um die Datei im Ordner ausfindig zu machen.

    Ich weiß nur nicht wie ich diesen String mit einem Combi Element in Verbindung bringen kann.

    Vielen Dank noch für deine Antwort.

    Grüße Tommylik


  4. #4
    Join Date
    10.12.2007
    Posts
    273

    Default AW: Bilder direkt aus dem Explorer laden und anzeigen

    Hallo Tommylik,

    String ist natürlich ungünstig, damit fallen meine beiden Vorschläge erst mal (direkt) aus.

    Jetzt kommt's darauf an, ob zur Entwurfszeit bereits alle Werte der Stringvariablen und die dazugehörigen Grafiken feststehen oder nicht.

    1. Wenn ja: dann würde ich eine String-Rema vorschlagen, die eine interne Variable mit ganzzahligem Datentyp (z.B. INT) jeweils auf einen konkreten Wert setzt (also z.B. Stringwert = "abc" -> Funktion Sollwert setzen interne Variable -> 1, "def" -> 2 usw). Die Grafiken müssen dem Ordner 'Grafiken' hinzugefügt werden und dann kann man meine beiden Vorschläge mit der internen Variable nutzen.

    2. Wenn nein: dann müsstest du das wirklich programmieren, ist aber nicht ideal. [Idee, nicht ausprobiert] Du haust irgendeine Dummygrafik in den Grafikordner und zeigst die in einem Combielement/Button/Bildhintergrund an. Dann programmieren: Onlinecontainer der die Stringvariable überwacht -> VariableChange: Stringwert auswerten und je nachdem die entsprechende Grafik in den RT/Grafik Ordner kopieren und damit die Dummygrafik überschreiben. Vermutlich geht das aber nur solange das Bild das die Grafik beinhaltet noch nicht geöffnet ist. -> ggf. zuerst Bild schließen

  5. #5
    Join Date
    13.10.2017
    Posts
    38

    Default Re: Bilder direkt aus dem Explorer laden und anzeigen

    Hallo mst,

    Vielen Dank für deine Antwort und Ideen.

    Ohh man schon wieder bin ich zu unpräzise.

    Meinst du mit Entwurfszeit die Zeit wann die Daten zur Verfügung stehen?

    Die Applikation wird mit eine Kamera überwacht. Von jeder Aktion der Zange wird ein Bild gemacht (bmp-Datei).
    Bei einer niO Auswertung von einer Aktion bleibt die Anlage stehen und wartet auf die Quittierung.
    Ich möchte mit dem niO Signal von dieser niO Auswertung direkt das bmp-Bild auf der Bild-Seite anzeigen lassen.

    also z.B. Stringwert = "abc" -> Funktion Sollwert setzen
    Also String Rema geht nicht da der String sich ständig ändert. Es sei denn ich kann eine String Variable der String-Rema übergeben.

    Ich denke das mit dem Online Container wäre möglich. Aber ich verstehe den OnlineContainer nicht so richtig.
    In dem ThisProjekt habe ich so einen Container gefunden.

    Code:
    Private Sub Container_VariableChange(ByVal obVar As IVariable)
    Wie wird diese Sub aufgerufen? Wie funktioniert diese Variablen übergabe? obVar?

    Vermutlich geht das aber nur solange das Bild das die Grafik beinhaltet noch nicht geöffnet ist. -> ggf. zuerst Bild schließen
    Könntest du deine Vermutung genauer beschreiben?

    Vielen Dank für deine Unterstützung

    Grüße Tommylik


  6. #6
    Join Date
    10.12.2007
    Posts
    273

    Default AW: Bilder direkt aus dem Explorer laden und anzeigen

    Hi Tommylik,
    kein Problem, das Thema interessiert mich gerade mehr als meine eigentliche Arbeit

    Meinst du mit Entwurfszeit die Zeit wann die Daten zur Verfügung stehen?
    Ich meinte damit den zenon Editor, also ob bei Projekterstellung schon alle Grafiken vorhanden sind und dem Projekt hinzugefügt werden können - scheint aber nicht so zu sein.

    Die Applikation wird mit eine Kamera überwacht
    Da muss ich mal kurz einhaken: hat die Kamera keinen integrierten Webserver? Viele Kameras können ja über einen Browser angesprochen werden. Wenn ja, dann würde ich empfehlen direkt ein HTML Bild zu nutzen und die Grafik direkt aus der Kamera anzuzeigen (sprich bei niO Grenzwert -> Bildumschaltung auf HTML Bild mit Adresse der Kamera)

    Es sei denn ich kann eine String Variable der String-Rema übergeben
    Ne geht nicht, fällt also auch weg.

    Aber ich verstehe den OnlineContainer nicht so richtig
    Ähm, da gibt's schon viele Beiträge im Forum. Drum hier nur in Kürze:
    Die OnlineVariable (= Onlinecontainer) wird benötigt, damit die hinzugefügten zenon Variablen 'advised' sind, das heisst das sie ständig vom Treiber gelesen werden. Ansonsten kann es sein, dass der Zugriff auf eine Variable einen Fehler verursacht. Einer OnlineVariable können belibig viele zenon Variablen hinzugefügt werden - darum spricht man oft vom Onlinecontainer.
    Ist die OnlineVariable mit WithEvents definiert, dann wird bei jeder Wertänderung einer der hinzugefügten zenon Variablen das entsprechende _VariableChange Ereignis ausgelöst.

    Code:
    Private Sub Container_VariableChange(ByVal obVar As IVariable)
    ist also NICHT die Onlinevariable an sich, sondern die Change - Ereignisprozedur der Onlinevariable 'Container' - obVar ist dabei die zenon Variable deren Wert sich gerade geändert hat
    Bestimmt steht irgendwo ganz oben im ThisProject
    Code:
    Dim WithEvents Container As OnlineVariable
    das ist die Definition der eigentlichen OnlineVariable.

    Vermutlich wird diese OnlienVariable im Project_Active erzeugt und befüllt(kann aber auch woanders sein). Den Code dazu spar ich mir jetzt, wie gesagt findest du dazu einiges im Forum, ausserdem hast du es anscheinend eh schon in deinem Code drin. Kurz: erst mit Create erzeugen, dann mit Add zenon Variablen hinzufügen und zum Schluß mit Define den Container aktivieren.

    Vermutlich geht das aber nur


    solange das Bild das die Grafik beinhaltet noch nicht geöffnet ist.


    -> ggf. zuerst Bild schließen
    Könntest du deine Vermutung genauer beschreiben?
    Eine Grafikdatei die gerade angezeigt wird ist glaub ich schreibgeschützt. Meine Idee ist ja, dass du im zenon Editor ein Bild definierst, das z.B. als Hintergrundgrafik eine dem Editor hinzugefügte DummyGrafik hat. Der Inhalt dieser Grafik ist egal, nur der Name ist wichtig. Nehmen wir an, die DummyGrafik heisst "Zange.bmp" und ist nur ein graues Rechteck oder was auch immer. Im VariableChange müsstes du dann die tatsächlich anzuzeigende Grafik kopieren und mit dem Namen "Zange.bmp" die DummyGrafik überschreiben/ersetzen. Wenn Du dann das Bild aufrufst siehst Du deine Grafik als Hintergrund. ABER: das Überschreiben wird nur funktionieren wenn diese Grafik nicht gerade benutzt/angezeigt wird.

    Hoffe damit sind alle Klarheiten beseitigt

  7. #7
    Join Date
    13.10.2017
    Posts
    38

    Default Re: Bilder direkt aus dem Explorer laden und anzeigen

    Hallo mst,

    Vielen Dank für deine ausführliches Antwort.

    keinen integrierten Webserver?
    Nein hat sie nicht. Die Kamera legt die Bilder direkt in den konfigurierten Ordner ab.

    Bestimmt steht irgendwo ganz oben im ThisProject
    Ja, es ist ein komplettes Beispiel vorhanden worauf ich aufbauen könnte.

    die DummyGrafik überschreiben/ersetzen
    Ich habe keine Ahnung wie ich mit VBA z.B. "Zange.bmp" mit "Job1_Fail.bmp" überschreiben kann.
    Muss danach die DummyGrafik wieder zurückgeschrieben werden?

    Ich hätte vielleicht auch eine Idee bräuchte aber deine Hilfe wie ich auf einen Button mit VBA über die Dynproperties zugreifen kann.



    Bei einem Button kann man eine Grafikdatei im ungedrückten Zustand hinterlegen. Siehe Bild.
    Über die DynProperties Filename könnte man die Grafikdatei austauschen???

    Code:
    thisProject.DynPictures.Item("??????").Elements.Item("Button").DynProperties(????) = Variable neue Datei?
    Mit dem Button könnte man dann auch etwas quittieren. 
    Was meinst du da zu würde das gehen??? 

    Vielen Dank nochmal für deine Antwort.

    Grüße Tommylik

    Attached Thumbnails Attached Thumbnails Zenon_Button.jpg  

  8. #8

    Default Re: Bilder direkt aus dem Explorer laden und anzeigen

    Mit dem HTML Fenster würde diese Anforderung machbar sein.
    Bei der Bildumschaltung auf das HTML Fenster kann eine Stringvariable verwendet werden.

  9. #9
    Join Date
    13.10.2017
    Posts
    38

    Default Re: Bilder direkt aus dem Explorer laden und anzeigen

    Hallo stefan_m,

    Vielen Dank für deine Idee.

    Weißt du, ob ich von VBA aus eine Variable dem Editor zur Verfügung stellen kann.
    Da die Variable aus mehreren Teilen besteht. z.B. "Datum_
    Job1_Fail.bmp"  Das Datum wäre dann z.B. in einer Variable.
    Das müsste ich vor der Bildumschaltung mit VBA zusammen bauen und zum Editor schicken.

    Grüße Tommylik


  10. #10

    Default Re: Bilder direkt aus dem Explorer laden und anzeigen

    Weißt du, ob ich von VBA aus eine Variable dem Editor zur Verfügung stellen kann.
    Zur Verfügung stellen nicht aber existierende Variablen beschreiben geht.

    Eine andere Variante wäre den String mit zenon logic zusammenzustellen.


Similar Threads

  1. Internet-Explorer ActiveX Objekt
    By rabi in forum zenon Network
    Replies: 3
    Last Post: 20th March 2015, 10:06
  2. Replies: 6
    Last Post: 29th July 2012, 00:39
  3. Internet Explorer 8.0 for Web-Client ?
    By lephis in forum Smart Server & Smart Client (former Webserver & Webclient)
    Replies: 10
    Last Post: 3rd June 2011, 06:34
  4. Replies: 5
    Last Post: 29th September 2009, 09:39
  5. bestimmtes Rezept bei Runtimestart laden
    By gralex in forum Engineering Studio & Service Engine (former zenon Editor & Runtime)
    Replies: 10
    Last Post: 10th July 2009, 10:04

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •