HSL2.0 - Einrichtung und Erste Schritte
Inhalt
1.
2.
3.
4.
Eine kurze Zusammenfassung, wie man das HSL 2.0-Framework einrichtet und zu ersten Ergebnissen gelangt.

1.Python-Version

Informationen und Download siehe folgenden Link.
Hinweis
Beim Klicken auf einen der folgenden Links verlassen Sie diese Dokumentation!
Achtung
Das Framework wurde mit den Python-Versionen 2.6.6 und 2.7.9 entwickelt und getestet und ist nur für die Verwendung mit diesen Versionen freigegeben!

2.Voraussetzungen

3.Erstellung eines Bausteins

Dieses Dokument erklärt die Einrichtung des HSL 2.0-Framework anhand der Erzeugung eines Bausteins am Beispiel des bereits aus dem HS/FS bekannten Binär-Auslösers.
Hinweis
Der fertige Baustein liegt den Beispielen bei.

3.1.Einrichtung des Frameworks

Sie haben eine Kopie des HSL 2.0 Frameworks vorliegen.

Es besteht aus mehreren Dateien und 3 Unterverzeichnissen:

generator.pyc
create_project.pyc
/projects
/hsl20
/python26


Das Verzeichnis projects ist leer, im Verzeichnis hsl20 befinden sich die Quell-Dateien des Frameworks.
Die zwei direkt im Verzeichnis liegenden Dateien (die Tools), liegen in einer mit Python 2.7.x kompatiblen Version vor.
Achtung
Falls Sie mit Experte/FW 4.5 oder 4.6 arbeiten, ersetzen Sie bitte diese Dateien mit den Versionen aus dem python26-Verzeichnis, bevor Sie fortfahren.
Rufen Sie nun das Einrichtungs-Script mit dem Parameter "-auto" auf.
python create_project.pyc -auto

Im Verzeichnis projects wurde ein neues Verzeichnis namens my project erzeugt.
In diesem Verzeichnis wurden wiederum einige Unterverzeichnisse angelegt und eine Datei wurde neu erstellt:

Verzeichnisse:
debug
release
src


Datei:

config.xml


Die Datei config.xml ist die Definitions-Datei für Ihren Baustein.
Die Beschreibungen der einzelnen Parameter und Werte der Datei config.xml finden Sie in der Doku zur XML-Definitionsdatei.

3.2.Definition

Tragen Sie in der Datei config.xml folgende Daten zum Baustein ein:
  • category="hsl20\fw_examples"
    Menü-Struktur im GLE.
  • context="hsl20_fw_examples"
    Kontext des Bausteins.
  • id="10700"
    5-stellige Baustein-ID.
  • name="Binary_Trigger"
    Name im GLE und Teil des Dateinamens.
  • version="1.0"
    Versions-Nr des Bausteins.
Der Binär-Auslöser verfügt nur über einen Eingang. Geben Sie folgende Attribute dafür an:
  • type="number"
    Datentyp. Ist immer entweder "number" oder "string".
  • const_name="input"
    Name des Eingangs, wie er im Python-Script verwendet werden soll.
  • init_value="0"
    Wert, mit dem der Eingang vorbelegt sein soll.
  • Der Inhalt des input-Elements ist die Beschriftung des Eingangs im Baustein und wird auf "I1" gesetzt.
Gehen Sie analog dazu für die beiden Ausgänge vor:
Ausgang 1:
  • type="number"
  • const_name="not_equal_to_zero"
  • init_value="0"
  • Der Inhalt des output-Elements ist die Beschriftung des 1. Ausgangs im Baustein und wird auf "O1 (I1<>0)" gesetzt.
Ausgang 2:
  • type="number"
  • const_name="equal_to_zero"
  • init_value="0"
  • Der Inhalt des output-Elements ist die Beschriftung des 2. Ausgangs im Baustein und wird auf "O2 (I1=0)" gesetzt.
Das Ergebnis sollte nun so aussehen:
01 <?xml version="1.0" encoding="UTF-8"?>
02 <config>
03    <modules>
04       <module category="hsl20\fw_examples" context="hsl20_fw_examples" id="10700" name="Binary_Trigger" version="1.0">
05           <inputs>
06               <input type="number" const_name="input" init_value="0">I1</input>
07           </inputs>
08           <outputs>
09               <output type="number" const_name="not_equal_to_zero" init_value="0">O1 (I1<>0)</output>
10               <output type="number" const_name="equal_to_zero"     init_value="0">O2 (I1=0)</output>
11           </outputs>
12       </module>
13    </modules>
14 </config>
Damit ist die Definition Ihres Bausteins vollständig.

3.3.Generierung

Speichern Sie die Datei config.xml und rufen Sie den HSL 2.0-Generator auf.

python generator.pyc "my project" UTF-8

Der HSL 2.0-Generator erzeugt beim ersten Aufruf für jeden in der Datei config.xml definierten Baustein einige Dateien im Testverzeichnis der Projektstruktur.
  • Eine Datei [id]_[Name].py im Verzeichnis src
  • Eine Datei [id]_[Name].py im Verzeichnis debug
  • Eine Datei [id]_[Name].hsl im Verzeichnis release
Für unseren Binär-Auslöser sind das:
  • 10700_Binary_Trigger.py im Verzeichnis src
  • 10700_Binary_Trigger.py im Verzeichnis debug
  • 10700_Binary_Trigger.hsl im Verzeichnis release
Bei allen weiteren Aufrufen des Generators werden die Dateien in den Verzeichnissen debug und release komplett, die Datei(en) im src-Verzeichnis teilweise neu generiert.
Achtung
Bei Fehlern im Code kann es dazu kommen, dass generator.pyc eine leere Datei (0 bytes groß) im src-Verzeichnis erzeugt. In diesem Fall löschen Sie bitte diese Datei.
Da der Baustein weder remanent ist, noch bei Initialisierung der Logik feuert, besteht der gesamte selbst zu programmierende Python-Code aus folgenden Zeilen:
def on_input_value(self, index, value):
      if self._get_input_value(index) != 0:
          self._set_output_value(self.PIN_O_UNGLEICH_NULL, 1)
      else:
          self._set_output_value(self.PIN_O_GLEICH_NULL, 1)
Achtung
Nach Abschluß der Programmierarbeiten muss der Baustein ein letztes Mal neu generiert werden!
Ein HSL 2.0-Baustein hat als Basis immer die Klasse BaseModule. Über die Methode _get_framework() erhält man Zugriff auf das restliche Framework.

4.Test eines Bausteins

4.1.Durchführung eines Tests

4.1.1.Test des Beispiel-Bausteins

Nach der erfolgreichen Generierung des Bausteins gehen Sie wie folgt vor:
  • Falls der HS/FS Experte läuft, beenden Sie ihn
  • Kopieren Sie den erstellten Baustein projects\my project\release\10700_Binary_Trigger.hsl in das "logic"-Verzeichnis Ihrer Experte-Installation.
  • Starten Sie den HS/FS Experten neu!
    • Im GLE haben Sie nun im Zugriff auf den neuen Baustein unter hsl20\fw_examples\Binary_Trigger". Sie können Ihn auf dieselbe Art wie jeden anderen Baustein verwenden.
  • Übertragen Sie das Projekt auf den HS/FS

4.1.2.Allgemeines zu Baustein-Tests

Die empfohle Methode für den Test von noch in der Entwicklung befindlichen Bausteinen ist die Verwendung der dem Experte-Setup beigefügten ".iso"-Datei, mit der Sie einen HS in einer Virtuelle Maschine simulieren können, da die jeweils nach einer Änderung notwendige Neu-Übertragung des Experte-Projekts nur wenige Sekunden benötigt.

Ist der Baustein prinzipiell fertig, können intensivere Tests mittels eines "normalen" HS/FS durch Verwendung des GLE-Debuggers vorgenommen werden.

Näheres zum "HS als VM" und zum "GLE-Debugger" finden Sie in der HTML-Hilfe des HS/FS Experte.