Projektordner und -dateien

Alle zu einer Anwendung gehörenden Daten werden in einem Viper.NET Projektordner abgelegt. Dieser Ordner hat im Normalfall folgende Struktur:

Datei/Ordner

Beschreibung

Projekt.makproj

Die Projektdatei. Kann direkt gestartet werden.

Configuration

Ordner mit Konfigurationsdateien, die normalerweise nur bei der ersten Einrichtung des Projekt verändert werden.

Data

Standard-Datenordner für das Projekt. Der Ordnerpfad ist als paramsDirectory konfigurierbar

Plugins

Hier können projektspezifische Plugins abgelegt werden.

Doc (optional)

Projektspezifische Dokumentation.

Projekte werden so gestaltet, dass alle Dateipfade projektinterner Abhängigkeiten relativ auf die makproj-Projektdatei bezogen sind. Somit können Projektordner beliebig im Dateisystem abgelegt und verschoben werden.

Hinweis

Als Standard-Ort zu Ablage von Projektordnern wird der Pfad C:\Gefasoft empfohlen.

Neue Projekte werden von der Viper.NET Installation aus Projektvorlagen abgeleitet. Die Vorlagen zu den Standard-Dateien liegen im Unterordner ProjectTemplates der Viper.NET Installation. Zum Beispiel unter C:\Program Files\Gefasoft\GEFASOFT Viper.NET 6.4.3.0\ProjectTemplates\

Die Projektdatei „.makproj“

Allgemein

Eine Projektdatei mit Suffix .makproj ist der zentrale Einstiegspunkt für Viper.NET-Projekte. Alle projektbezogenen Dateien werden relativ dazu gesucht. Doppelklick einer Projekt-Datei im Windows-Explorer startet Viper.NET in derjenigen Version, die dem Projekt zugeordnet ist. Im Kontextmenü des Explorers werden zwei Aktionen angeboten:

../_images/project-contextmenu.png
  • Upgrade project version: Aktualisiert das Projekt auf eine neuere Version von Viper.NET.

  • Start with „-repair“: Erzwingt eine Auto-Installation, welche die Abhängigkeiten der Viper.NET Version im System aktualisiert.

Die .makproj-Projektdatei definiert im XML-Format grundlegende Einstellungen des Projektes. Zum Beispiel definiert sie Unterverzeichnisse und Pfade der weiteren Projektdateien.

<dataStore guid="81f2f63a-9ffa-4313-ae3f-39dc2a7e8a4a" name="GConfiguration" architecture="MSIL" Version="6.4.3.0">
<param name="applicationName" value="Vision_Gefasoft" />
<!-- ... Allgemeine Projekt-Parameter -->
<childStores>
  <!--
    Hier werden die globalen Parameter der aktiven Plugins jeweils in ihrem
    eigenen "Child-Store" gespeichert.
  -->
<childStores>
  <complex name="supportedLanguages">
  <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <string>en-US</string>
    <!-- ... Weitere unterstütze Sprachen -->
  </ArrayOfString>
</complex>
<complex name="environmentVariables">
  <ArrayOfEnvironmentVariableData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <EnvironmentVariableData>
      <Name>GEFASOFT_REFERENCE_TOOLBLOCKS</Name>
      <Value>$paramsDirectory$\ReferenceToolblocks</Value>
    </EnvironmentVariableData>
    <!-- ... weitere Umgebungsvariablen -->
  </ArrayOfEnvironmentVariableData>
</complex>

Die Projektdatei enthält eine Reihe allgemeiner Parameter, die als Name-Wert-Paare im Format <param name="..." value="..." /> angegeben werden. Sie werden bei der Projekterstellung mit Standard- oder Benutzerwerten initialisiert. Die folgenden Parameter sind verfügbar:

  • applicationName: Frei wählbarer Projektname, der beim Anlegen des Projektes vergeben wird. Der Projektname wird in der Sidebar angezeigt.

  • autoCreateParamsFile: gibt an, ob die GlobalParams-Datei automatisch neu erzeugt werden soll, wenn sie nicht gefunden wird.

  • autoInstall: obsoleter Parameter, wird nicht mehr verwendet.

  • autoLogoutMinutes: Zeitdauer in Minuten, nach deren Ablauf eine automatische Abmeldung eines Benutzers erfolgt, wenn zuletzt innerhalb des Zeitraumes keine Benutzerinteraktion erfolgt ist.

  • autoLogoutSkipOnSuperDongle: True deaktiviert den automatischen Benutzer-Logout, falls ein Superdongle am System angeschlossen ist.

  • batOnAutoLogout: Pfad zu einem batch-Skriptes (relativ zur .makproj), welches im Fall eines Auto-Logout zusätzlich ausgeführt wird.

  • callConfigCheckerOnStartup: True aktiviert die Konfigurationsprüfung beim Programmstart.

  • conStreamTelPoolFile: Name der XML-Konfigurationsdatei für Stream-Connections, relativ zum Data-Unterordner

  • defaultCommandLine: Befehlszeilenargumente für Viper.NET, die beim automatischen Starten verwendet werden, zum Beispiel beim Öffnen des Projektes per Doppelklick im Explorer.

  • extAppLayoutChildsConfig: für Abwärtskompatibilität, darf in neuen Projekten nicht mehr verwendet werden. Stattdessen sollten in der UserTabs vom Typ ControlLayoutExtApps konfiguriert werden. Die Option kann den Pfad zu einer extAppLayoutChild.xml mit einer extAppTabs-Konfiguration angeben. Die konfigurierten Tabs werden dann bei aktivem Vision-Plugin im Vision-Tab angezeigt.

  • extAppTabsConfig: Angabe des Pfades zur ExtAppTabs-Konfiguration

  • gioPlcSecurityUserManagerXml:

  • gioTypeDataManagersXml:

  • gioTypeDataManagerXml:

  • ioIni: Pfad zur Viper.xio, relativ zum Projektverzeichnis.

  • log4net: Pfad der Log-Konfiguration, relativ zum Projektordner

  • parametersFile: Pfad zu den globalen Parametern, relativ zum paramsDirectory

  • paramsDirectory: Verzeichnispfad für Parameter-Daten, relativ zum Projektverzeichnis. Standard ist der Unterordner Data

  • persistentData: Dateiname der XML-Datei mit persistenten Daten, relativ zum paramsDirectory

  • pluginConfig: Pfad zur Plugin-Konfiguration, relativ zum Projektverzeichnis

  • pluginsIgnoreUncriticalChange: True unterdrückt den Plugin-Konfigurations-Dialog, falls erkannte Unterschiede zwischen installierten und konfigurierten Plugins nur unwesentlich sind. Als solches zählen als neu- oder deinstalliert erkannte Plugins, die in der aber in der Projektkonfiguration nicht aktiv sind.

  • projectNumber: Projektnummer zur Identifikation, die in der Sidebar angezeigt wird.

  • saveVersionConfiguration: Pfad der Save-Version-Konfigurationsdatei, relativ zum Projektverzeichnis

  • screenshotWidgetVisible: Steuert die Sichtbarkeit des Screenshot-Buttons in der Funktionsleiste. Damit kann Platz für andere Widgets freigegeben werden.

  • shellConfiguration: Pfad der Shell-Konfiguration zur Anpassung der Hauptoberfläche. Der Pfad bezieht sich auf das Projektverzeichnis.

  • shellType: Kann genutzt werden, um eine alternative Shell-Oberfläche aus einem Plugin anstelle der Standard-Oberfläche zu verwenden. Gibt den Typ-Namen der Shell-Form an.

  • stationConfiguration: Pfad zur Stationskonfiguration, bezogen auf den Projektordner.

  • userAuthXml: Pfad der userAuth.xml, relativ zum Projektordner.

  • userTabsConfig: Pfad der User-Tabs Konfigurationsdatei, relativ zum Projektordner.

Konfiguration

Die MAK-Projekteinstellungen für das aktuelle Projekt können in den globalen Einstellungen direkt in Viper angepasst werden.

../_images/configuration-makproj.png

In folgendem Fenster können alle wichtigen Parameter verändert werden:

../_images/configuration-makproj-2.png

Warnung

Manche Einstellungen werden erst nach einem Neustart der Anwendung aktiv!

Ordner „Configuration“

Das Unterverzeichnis Configuration eines Viper.NET Projektordners enthält Konfigurationsdaten, welche menschlich lesbar und editierbar sind. Die Einstellungen betreffen zumeist den grundlegenden Aufbau eines Projektes und werden daher in der Regel nur initial bei der Projekterstellung bearbeitet.

Bei der Erstellung eines neuen Projektes wird der Ordner mit Kopien eines Projekttemplates befüllt.

stations.xml

Stationen müssen initial in der stations.xml angelegt werden. Die Konfiguration unterscheidet sich je nach Stationstyp und ist deshalb bei deren Dokumentation beschrieben.

Bemerkung

Alternativ können Stationen im Stationseditor in der Benutzeroberfläche konfiguriert werden.

Zusätzlich können in der stations.xml noch folgende Elemente definiert werden:

LiveBitsToggler: Zyklischer Statuswechsel eines oder mehrerer Bits. Kann verwendet werden, um einer SPS zu signalisieren, dass Viper.NET aktiv ist und läuft.

<stationConfig>

  <liveBitsToggler cyleTimeMs="500">
    <bit id="1"/>
    <!-- <bit id="2"/> -->
  </liveBitsToggler>

  ...

Bemerkung

Der LiveBitsToggler wird insbesondere empfohlen, wenn E/A-Koppler wie Modbus-Koppler verwendet werden, die den Zustand von digitalen Ein- und Ausgängen puffern.

ResetBits: Ein oder mehrere Bits, mit denen die SPS einen Reset aller Stationen auslösen kann. Alternativ kann auch für jede Station ein Reset-Bit definiert werden.

<stationConfig resetBits="10,11,12">
  ...

Log-Konfiguration - log4net.config

Die Konfigurationsdatei des Logging-Systems definiert, welche Log-Inhalte in welche Dateien und Log-Displays geschrieben werden. Der Dateipfad ist in der Projektdatei einstellbar.

shellConfiguration.xml

Die Shell-Konfigurationsdatei shellConfiguration.xml legt die Darstellung der Hauptoberfläche fest. Der Dateipfad ist in der Projektdatei festgelegt.

In der Konfigurationsdatei können zum Beispiel die Darstellungsfarben und das Logo der Sidebar angepasst werden. Die Konfiguration erfolgt im XML-Format. Die Dateivorlage enthält erläuternde Kommentare zu den Konfigurationsoptionen.

userTabs.xml

Die Tab-Konfigurationsdatei userTabs.xml definiert zusammen mit der extAppTabs.xml die Anzeige der Tabs in der Sidebar eines Projektes. In der userTabs.xml werden dabei alle Tabs konfiguriert, die von Viper.NET oder dessen Plugins bereitgestellt werden. Die extAppTabs.xml definiert Tabs zur Einbindung externer Applikationen in die Projektoberfläche.

Die Datei beschreibt die angezeigten Tabs als Liste. Jeder Tab wird durch einen XML-Konten beschrieben. Zum Beispiel der Vision-Tab:

<tab name="#Vision" type="VisionTab">
  <param name="operation" value="MainForm.Tabs.Vision"/>
  <param name="sortId" value="0" />
</tab>

Der Name des Tab dient der Identifikation. Der type des Tab definiert die angezeigte Oberfläche beim Klicken des Tabs. Folgende Typen sind in Viper.NET standardmäßig verfügbar:

  • StationsIO: Stationsansicht mit Visualisierung der aktuellen Bit-Zustände

  • HardwareExplorer: zeigt den GInOut Hardware-Explorer

  • ControlLayoutExtApps: Bindet Oberflächen externer Programme als Tab in Viper.NET ein. Die Programme und das Oberflächen-Layout werden in extAppLayoutChilds.xml-Dateien konfiguriert.

  • GAppenderLog oder synonym Log: zeigt die Log-Ansicht

Diese Liste kann durch aktive Plugins erweitert werden. Zum Beispiel implementiert das Vision-Plugin zusätzliche Tabs.

Die Anzeige-Reihenfolge der Tabs in der Sidebar wird durch den param-Knoten mit name-Attribut "sortID" gesteuert: die Anordnung der Tabs von oben nach unten erfolgt nach dem value-Attribut der sortID in aufsteigender Sortierung

Die User-Tabs werden in der Konfiguration durch den param-Knoten mit name-Attribut "operation" mit Operationen aus der Benutzerverwaltung verknüpft: Die Berechtigung des angemeldeten Benutzer für die jeweilige Operation steuert, ob der Nutzer zum jeweiligen Tab wechseln kann.

extAppTabs.xml

In der extAppTabs.xml werden Sidebar-Tabs definiert, mit denen externe Applikationen innerhalb des Projektes angezeigt werden. Beim Laden des Projektes werden die zugehörige externen Programme gestartet und deren Hauptfenster in die Viper.NET Oberfläche integriert. Der Pfad der Konfigurationsdatei kann in der Projektdatei angepasst werden.

Die Projektvorlage enthält eine Vorlag mit auskommentiertem Beispiel-Template, welches den Windows-Editor als Tab einbindet. Kommentare in der Vorlage erläutern die Bedeutung der einzelnen Parameter.

Siehe auch:

userAuth.xml

Die userAuth.xml definiert im XML-Format die Grundlagen der Benuterverwaltung. Änderungen sollten nur über die Viper.NET GUI erfolgen.

Ordner „Data“

Der Ordner Data dient als Speicherort für Konfigurationsdaten, die in der Viper.NET Oberfläche erstellt oder angepasst werden. Manuelle Änderungen an den Daten sind in der Regel nicht nötig.

Bei der Erstellung eines neuen Projektes wird der Ordner mit Kopien eines Projkettemplates befüllt.

globalParams.xml

Die Datei globalParams.xml speichert globale Programmparameter. Zum Beispiel werden hier üblicherweise die Globalen Einstellungen gespeichert, sowohl von Viper.NET wie auch von allen Plugins. Enthaltene Parameter sollten im Normalfall nur über die Viper.NET GUI bearbeitet werden.

Der Dateipfad kann bei Bedarf in der Projektdatei angepasst werden.

persistentData.xml

Die Datei persistentData.xml dient als zentralisierter Speicher für Viper.NET und seine Plugins, um Daten zum Applikationszustand über Programmstarts hinweg zu speichern. Hier wird zum Beispiel der zuletzt geladene Typ des Vision-Plugin hinterlegt, um ihn bei Applikationsstart neu zu laden. Die Datei sollte nicht manuell bearbeitet werden.

plugins.xml

Die plugins.xml enthält die Plugin-Konfiguration eines Projektes. Alle installierten Plugins des Rechners werden mit ihrer jeweiligen Version erfasst, ebenso welche davon aktiv sind und in welcher Reihenfolge sie beim Starten des Projektes geladen werden.

Die Einstellungen sollten bevorzugt über die Viper.NET GUI angepasst werden, zum Beispiel im Info-Dialog.

Beim Laden eines Projektes wird die Viper.NET Installation auf Änderungen in der Plugin-Konfiguration geprüft. Werden solche erkannt, so wird der Benutzer zur Bestätigung oder Korrektur der Konfiguration aufgefordert.

In der Projektdatei kann sowohl diese Prüfverhalten als auch der Pfad der Konfigurationsdatei angepasst werden.

Ordner „Plugins“ (optional)

Der Unterordner Plugins eines Projektverzeichnisses ist der Standard-Ort zur Bereitstellung projektspezifischer Plugins. Viper.NET durchsucht den Ordner beim Projektstart nach Plugin-Dlls und fügt den Ordner als Assembly-Verzeichnis hinzu. Per Kommandozeilenparameter kann der Pfad überschrieben werden, so dass ein anderer Ordner als Projekt-Plugin-Verzeichnis genutzt wird.

Siehe auch: