Erstellung von und Umgang mit TwinCAT Analytics-Projekten
Das TwinCAT Automation Interface stellt Methoden und Eigenschaften zur Verfügung, um TwinCAT Measurement-Projekte zu erzeugen und darauf zuzugreifen. Im folgenden Kapitel wird beschrieben, wie einige Grundaufgaben mit einem TwinCAT-Projekt gelöst werden können und umfasst Informationen zu folgenden Themen:
- Anforderungen
- Erstellung eines TwinCAT Measurement-Projekts
- Erstellung von, Zugriff auf und Umgang mit einer TwinCAT Analytics-Konfiguration
- Erstellung von, Zugriff auf und Umgang mit Netzwerken
- Erstellung von, Zugriff auf und Umgang mit Funktionen
- Analyse starten und stoppen
- Weitere Auskünfte zu TwinCAT Measurement finden Sie auf der entsprechenden Internetseite in unserem Informationssystem.
Erstellung eines TwinCAT Measurement-Projekts
TwinCAT Measurement ist ein globaler "Container" der eine oder mehrere Measurement-Projekte hosten kann, z. B. eine TwinCAT Scope-Konfiguration. Ähnlich wie eine reguläre TwinCAT-Konfiguration wird jedes Projekt zuerst mit Hilfe einer Template-Datei beschrieben. Diese Template-Datei wird beim Hinzufügen eines neuen Projekts zur Solution verwendet, was mithilfe eines Aufrufs der AddFromTemplate()-Methode aus dem Visual Studio DTE-Objekt vorgenommen werden kann. Beachten Sie, dass diese Vorgehensweise beim Hinzufügen eines regulären TwinCAT-Projekts die gleiche ist. Der nachfolgende Code-Ausschnitt setzt voraus, dass Sie bereits eine DTE-Instanz erworben und eine Visual Studio Solution erzeugt haben, wie in unserem Artikel über Zugriff auf TwinCAT-Konfigurationen gezeigt. Ein Verweis auf die DTE-Instanz wird im Objekt "dte" gespeichert.
EnvDTE.Project scopeProject = dte.Solution.AddFromTemplate(template, destination, name);
Erstellung von, Zugriff auf und Umgang mit einer TwinCAT Analytics-Konfiguration
Ein TwinCAT Analytics -Projekt steht für eine Analysekonfiguration. Das bedeutet, dass alle in das Projekt eingefügten Elemente den gleichen Analyseeinstellungen unterliegen. Sie können ein Analytics -Projekt über das Automation Interface hinzufügen, indem Sie, wie oben beschrieben, das entsprechende "TwinCAT Analytics Project"-Template beim Hinzufügen eines Projekts mithilfe der AddFromTemplate()-Methode spezifizieren.
Das dadurch hinzugefügte EnvDTE.Project Element kann dann auf das Interface IMeasurementAnalyticsProject abgebildet werden, welches folgende Methoden bereitstellt:
int StartAnalytics() | Startet den Analyseprozess. |
int StopAnalytics(); | Stoppt den Analyseprozess. |
int AddReferencedScope(); | Fügt eine Instanz eines TwinCAT Scope Projektes der Projektmappe hinzu und verknüpft die Analytics Elemente. Die TwinCAT Scope Instanz mit dem Interface IMeasurementScope per Automation Interface angepasst werden. |
int ChangeName(string name); | Methode zum Ändern des Projektnamens. |
int ShowControl(); | Bringt den Microsoft Visual Studio© Editor in den Vordergrund zur Darstellung des Analytics Projektes. |
int CloseControl(); | Schließt den Editor. |
int GetAvailableModules(out Hashtable modules); | Befüllt eine Hashtabelle mit den Daten der bereitgestellten Module der Analytics Engine. Die Hashtabelle könnte wie folgt aussehen: {02040109-0000-0000-f000-000000000064} "Min Max Avg 1Ch" {02040103-0000-0000-f000-000000000064} "Edge Counter OnOff 2Ch" {02040102-0000-0000-f000-000000000064} "Edge Counter OnOff 1Ch" {02040101-0000-0000-f000-000000000064} "Edge Counter 1Ch" Die GUIDs sind für das spätere Erzeugen den Analyse-Funktionen notwendig. |
int AddNetwork(out ProjectItem item, string name = ""); | Fügt ein Netzwerk dem Analytics-Projekt hinzu und gibt die Instanz des EnvDTE.ProjectItem aus mit welchen weitergearbeitet werden kann. Das Objekt EnvDTE.ProjectItem.Object kann auf die Schnittstelle IMeasurementAnalayticsNetwork abgebildet werden. |
Erstellung von, Zugriff auf und Umgang mit Netzwerken
Ein TwinCAT Analytics Netzwerk stellt die Ebene dar, in welcher Funktionsbausteine angelegt, verwaltet und visualisiert werden.
Ein Netzwerk kann mehrere Instanzen von verschiedenen Funktionen, sowie weitere Netzwerke als sogenannte Sub-Netzwerke beinhalten.
Jedes Netzwerk wird innerhalb einer Microsoft Visual Studio© Editor Instanz dargestellt, sodass die internen Docking-Mechanismen genutzt werden können, um gleichzeitig verschiedene Netzwerke darzustellen.
Das Interface IMeasurementAnalayticsNetwork definiert folgende Methoden:
int ShowControl(); | Bringt den Microsoft Visual Studio© Editor in den Vordergrund zur Darstellung des Analytics Netzwerkes. |
int CloseControl(); | Schließt den Editor. |
int AddFunction(out ProjectItem item, Guid guid, string name = ""); | Fügt eine Analyse-Funktion dem Netzwerk hinzu. Die Funktion wird über die zugehörige GUID bestimmt, welche über die Interface-Methode IMeasurementAnalyticsProject.GetAvailableModules(out Hashtable modules); ausgewählt werden kann. Die Instanz von EnvDTE.ProjectItem.Object kann auf die Schnittstelle IMeasurementAnalayticsFunction abgebildet werden. |
int AddNetwork(out ProjectItem item, string name = ""); | Das Objekt EnvDTE.ProjectItem.Object kann auf die Schnittstelle IMeasurementAnalayticsNetwork abgebildet werden. |
int ChangeName(string name); | Ändert den Namen des Netzwerkes. |
int AddNetworkTemplate(out ProjectItem item, string path); | Fügt ein Netzwerk aus einer Vorlage hinzu. Die Vorlage muss auf Dateiebene angegeben werden. Das Objekt EnvDTE.ProjectItem.Object kann auf die Schnittstelle IMeasurementAnalayticsNetwork abgebildet werden. |
Erstellung von, Zugriff auf und Umgang mit Funktionen
Eine TwinCAT Analytics Function stellt die Ebene der Analysefunktion dar.
Jede Funktion hat eigene Eingangs- und Ausgangsvariablen sowie diverse Konfigurationsparameter.
Das Interface IMeasurementAnalayticsFunction definiert folgende Methoden:
int ShowControl(); | Bringt den Microsoft Visual Studio© Editor in den Vordergrund zur Darstellung des Analytics Projektes. |
int CloseControl(); | Schließt den Editor. |
int ChangeName(string name); | Ändert den Namen der Funktion. |
int SetInputVariable(string input, int inputIndex); | Setzt die Eingangsvariable an den angegebenen Index der Funktion auf den Input-String. Der Input-String muss in der XML-Formatierung vorliegen als Beispiel aus dem TargetBrowser. TargetBrowserExportInfo Um den XML formatierten String zu erhalten kann man aus dem TargetBrowser einfach die gewünschte Variable in einen Texteditor per Drag&Drop verschieben. Bitte beachten Sie, dass dazu der TextEditor als Administrator gestartet sein muss, falls der TargetBrowser Host (z.B. Visual Studio) auch als Administrator gestartet wurde. |
Um die Parameter der Funktion anzupassen wird kein Interface benötigt.
Hierzu können Sie einfach die EnvDTE-Properties Liste des EnvDTE.ProjectItem.Properties Objektes nach dem EnvDTE.Property durchsuchen und dessen Value setzen.