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

Thread: Wizard im Zenon Editor automatisch starten

  1. #1
    Join Date
    27.04.2020
    Posts
    7

    Default Wizard im Zenon Editor automatisch starten

    Hallo,
    wir stehen aktuell vor folgender Herausforderung, die wir umsetzen wollen / müssen.

    Über die Zenon Runtime soll der Zenon Editor gestartet werden. Gleichzeitig sollen dem Benutzer in der Runime mehrere Möglichkeiten zur Auswahl stehen, verschiedene Addin Wizards im Zenon Editor zu starten. Je nach Ausführung der entsprechenden Funktion, soll der Zenon Editor geöffnet und beim Start gleich das ausgewählte Zenon Wizard starten.

    Die Zenon Wizards funktionieren auch schön und können aktuell manuell gestartet werden.

    Gibt es eine Möglichkeit diesen Vorgang zu automatisieren?

    Vielen Dank schon einmal!

  2. #2
    Join Date
    10.12.2007
    Posts
    241

    Default AW: Wizard im Zenon Editor automatisch starten

    Geht schon, eine Standardlösung gibt es dafür aber nicht.
    Ich würde einen EditorService erstellen, der z.B. des ProjectLoaded Event überwacht und automatisch gestartet wird. Aus dem Service kann man dann die einzelnen Wizards starten.
    Wie man die Daten (also ob überhaupt und wenn ja welcher Wizard gestartet werden soll) von der Runtime an den Service übergibt ist Geschmackssache, man könnte z.B. in der Runtime durch einen ProjectWizard eine Datei erstellen oder auch interne Variablen beschreiben und dann den zenon Editor starten. Mit dem Start des Editors startet dann auch der EditorService, der dann diese Daten empfängt/ausliest und entsprechend ggf. einen Wizard startet...

  3. #3
    Join Date
    27.04.2020
    Posts
    7

    Default Re: Wizard im Zenon Editor automatisch starten

    Moin, danke schon einmal für die Antwort. Das hört sich ja grundsätzlich schon einmal gut an.

    Bei mir hakt es aktuell an dem Befehl um ein Editor Wizard über ein Addin zu starten. Könntest du mir hier einen Tipp geben. Ich finde hierzu nämlich nichts in der Hilfe.

  4. #4
    Join Date
    10.12.2007
    Posts
    241

    Default AW: Wizard im Zenon Editor automatisch starten

    Um deine Frage zu konkretisieren: wie kannst Du aus einem EditorService heraus einen EditorWizard starten. (s.o.) Dazu musst Du eigentlich nur in dem Service einen Verweis auf den bzw. die Wizards machen.


    Ich hab das mal getestet. Mein Wizard heisst im Beispiel AddInEditorWizard_Test1, der Service EditorService_Test1. Der Service fängt hier das Project_Loaded Event ab und startet den Wizard wenn das geladene Projekt "CD_HMI_TEMPLATE" heisst. Für Deinen Anwendungsfall müsstest Du das natürlich anpassen und vor allem auch den default StartupMode des Service auf Automatisch stellen + eben denn die zusätzlichen Daten von irgendwoher holen (s.o. Datei, zenon RT...)
    Code:
    using System;
    using Scada.AddIn.Contracts;
    using AddInEditorWizard_Test1;
    
    namespace EditorService_Test_1
    {
        /// 
        /// Description of Editor Service Extension.
        /// 
        [AddInExtension("MSt Test - Wizard aus Service starten", "Testservice zum Starten eines Testwiards beim Laden des Projekts 'CD_HMI_Template'",DefaultStartMode = DefaultStartupModes.Manual)]
        public class EditorServiceExtension : IEditorServiceExtension
        {
            #region IEditorServiceExtension implementation
            IEditorApplication zEdApp = null;
            IWorkspace zWorkspace = null;
    
            public void Start(IEditorApplication context, IBehavior behavior)
            {
                zEdApp = context;
                zWorkspace = context.Workspace;
                zWorkspace.ProjectLoaded += ZWorkspace_ProjectLoaded;
            }
    
            private void ZWorkspace_ProjectLoaded(object sender, ProjectLoadedEventArgs e)
            {
                if (e.Project.Name == "CD_HMI_TEMPLATE")
                {
                    AddInEditorWizard_Test1.EditorWizardExtension wiz = new EditorWizardExtension();
                    IBehavior behavior= null;
                    wiz.Run(zEdApp, behavior);
                }
            }
    
            public void Stop()
            {
                zWorkspace.ProjectLoaded -= ZWorkspace_ProjectLoaded;
                zWorkspace = null;
                zEdApp = null;
            }
    
            #endregion
        }

  5. #5
    Join Date
    27.04.2020
    Posts
    7

    Default Re: Wizard im Zenon Editor automatisch starten

    Moin,

    danke schon einmal für die Unterstützung. Wir programmieren in VB.net. Eigentlich ist die Umsetzung von einer in die andere Sprache ja kein Problem. Bei mir bekomme ich das aber leider noch nicht zum Laufen.
    Code:
    Imports Scada.AddIn.Contracts
    Imports System
    Imports Wizard_Archive
    Namespace EditorWizardausRuntime
    
        ''' 
        ''' Description of Editor Service Extension.
        ''' 
        
        Public Class EditorServiceExtension
            Implements IEditorServiceExtension
    
    #Region "IEditorServiceExtension implementation"
    
            Dim zEdApp As IEditorApplication = Nothing
            Dim WithEvents Arbeitsplatz As IWorkspace = Nothing
    
            Public Sub Start(context As IEditorApplication, behavior As IBehavior) Implements IServiceExtension(Of IEditorApplication).Start
                'enter your code which should be executed when starting the SCADA Editor Service
                Arbeitsplatz = context.Workspace
                zEdApp = context
            End Sub
    
            Public Sub [Stop]() Implements IServiceExtension(Of IEditorApplication).Stop
                'enter your code which should be executed when stopping the SCADA Editor Service
    
            End Sub
    
            Private Sub Arbeitsplatz_ProjectLoaded(sender As Object, e As ProjectLoadedEventArgs) Handles Arbeitsplatz.ProjectLoaded
    
                Microsoft.VisualBasic.MsgBox("TEST")
            End Sub
    
            Private Sub arbeitsplatz_test(sender As Object, e As ScreenElementDoubleClickedEventArgs) Handles Arbeitsplatz.ScreenElementDoubleClicked
                Microsoft.VisualBasic.MsgBox("TEST123")
                Dim wiz As New Wizard_Archive.Wizard_Archive.EditorWizardExtension
                Dim behavior As IBehavior = Nothing
                wiz.Run(zEdApp, behavior)
            End Sub
    
    #End Region
        End Class
    
    End Namespace
    Sobald ich die drei Zeilen

    Dim wiz As New Wizard_Archive.Wizard_Archive.EditorWizardExtensio n
    Dim behavior As IBehavior = Nothing
    wiz.Run(zEdApp, behavior)

    in das Projekt einfüge, kann in den Dienst im Editor nicht starten.

    Damit ich überhaupt einen Zugriff auf das Addin bekommen habe, musste ich dieses noch als Verweis einfügen.

    Vielen Dank schon einmal

  6. #6
    Join Date
    10.12.2007
    Posts
    241

    Default AW: Wizard im Zenon Editor automatisch starten

    Muss man nicht auch bei VB beim Konstruktoraufruf mit New eine Klammer hinter die Klasse setzen? Also
    Dim wiz As New Wizard_Archive.Wizard_Archive.EditorWizardExtensio n()
    Ansonsten fällt mir jetzt da auch nichts auf ... Vielleicht liegts am Wizard, dass der blockiert.
    Funktioniert denn die Messagebox? Ist der Wizard im Editor überhaupt installiert?
    Last edited by mst : 29th October 2020 at 15:27

  7. #7
    Join Date
    27.04.2020
    Posts
    7

    Default Re: Wizard im Zenon Editor automatisch starten

    Moin,
    auch mit Klammern ändert sich das Verhalten nicht.

    Die Messagebox wird nur angezeigt, sobald ich die anderen Zeilen auskommentiere. Im anderen Fall bleibt der Service im Stopp und kann nicht gestartet werden. Auch wenn die Aktion ja erst nach Doppelklick auf ein Symbol ausgeführt wird.

    Beim Kompilieren werden auch keinerlei Fehler- oder Warnmeldungen ausgegeben.

    Das Wizard ist im Arbeitsbereich eingebunden. Es gibt ja auch kaum bis gar keine Dokumentation diesbezüglich vorhanden. Müssen seitens des Addins noch Einstellungen getroffen werden?

  8. #8
    Join Date
    10.12.2007
    Posts
    241

    Default AW: Re: Wizard im Zenon Editor automatisch starten

    Quote Originally Posted by a_werner View Post
    ...Auch wenn die Aktion ja erst nach Doppelklick auf ein Symbol ausgeführt wird.
    Die Aktion wird doch bei ProjectLoaded ausgeführt und nicht bei ScreenElementDoubleClicked


    Quote Originally Posted by a_werner View Post
    ...Das Wizard ist im Arbeitsbereich eingebunden...
    Welchen Arbeitsbereich meinst Du? Ich vermute vielleicht die Projektmappe im VisualStudio, denn im zenon Editor ist ein Wizard ja nicht an einen Arbeitsbereich gebunden...
    Der Wizard muss schon zu einem separaten .scadaaddin kompiliert und in den zenon Editor importiert werden.

  9. #9
    Join Date
    27.04.2020
    Posts
    7

    Default Re: Wizard im Zenon Editor automatisch starten

    Ja, grundsätzlich ist das das Ziel. Aber zum Testen, wollte ich nicht immer ein neues Projekt laden. Daher habe ich die Ausführung erst einmal auf ein Doppelklick gelegt.

    Private Sub arbeitsplatz_test(sender As Object, e As ScreenElementDoubleClickedEventArgs) Handles Arbeitsplatz.ScreenElementDoubleClicked

    Das Wizard im Zenon Editor Arbeitsbereich hinterlegt und kann auch manuell über Extras -> Wizards starten ohne Probleme gestartet werden. Das Addin wurde über Editor Add-Ins verwalten eingebunden und wird dort auch als Wizard_Archive aufgelistet.

  10. #10
    Join Date
    10.12.2007
    Posts
    241

    Default AW: Wizard im Zenon Editor automatisch starten

    Hm, dann weiss ich es auch nicht. Ich kann dir nur sagen, dass ich meinen Code oben ausprobiert habe und der funktioniert genau so wie er soll.
    Hats Du den Service schon mal debuggt? Also Debug -> an den Prozess anhängen -> zenonED -> Haltepunkte in der Start-Methode und im Event(ProjectLoaded bzw. ScreenElementDoubleClicked) setzen -> Service im zenon Editor starten... Kennt da der Sirvice die Wizardklasse? wird .Run noch aufgerufen?  Was passiert dann?

Similar Threads

  1. webclient_IE_multiplescreens automatisch starten
    By michab in forum zenon Network
    Replies: 18
    Last Post: 25th May 2020, 11:47
  2. Rename variable based on structure datatype in editor wizard
    By bartsmets in forum Add-In Framework
    Replies: 1
    Last Post: 23rd December 2019, 13:38
  3. Editor Fehler beim Starten
    By tingeltangelbob in forum zenon Operator
    Replies: 3
    Last Post: 27th October 2016, 07:53
  4. Runtime über Editor mit x64 starten
    By rabi in forum zenon Supervisor
    Replies: 2
    Last Post: 3rd December 2014, 15:50
  5. zenOn-Editor 6.22 SP0 Build 3 beendet sich sofort nach dem Starten
    By maerz@staudinger-est.de in forum zenon Supervisor
    Replies: 5
    Last Post: 19th September 2008, 21:17

Posting Rules

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