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
- Sie haben eine Python-Version (v2.6.x oder v2.7.x) installiert und so eingerichtet, dass Sie die python.exe-Datei von überall aufrufen können. Eine Anleitung dazu finden Sie auf den Internet-Hilfe-Seiten von python.org.
- Sie haben mindestens die Version 4.5 des Experten und der Firmware installiert.
- Für Experte/FW Version 4.5 wird nur Python Version 2.6.x unterstützt!
- Für Experte/FW Version ab 4.6 wird nur Python Version 2.7.x unterstützt!
- Sie haben einen Editor zur Verfügung, mit dem Dateien im ".py" (Python-Script) und ".xml"-Format bearbeitet werden können.
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:
Das Verzeichnis
Die zwei direkt im Verzeichnis liegenden Dateien (die Tools), liegen in einer mit Python 2.7.x kompatiblen Version vor.
Es besteht aus mehreren Dateien und 3 Unterverzeichnissen:
generator.pyc |
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.
Im Verzeichnis
In diesem Verzeichnis wurden wiederum einige Unterverzeichnisse angelegt und eine Datei wurde neu erstellt:
Verzeichnisse:
Datei:
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.
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 |
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:
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:
|
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.
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.
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 Verzeichnissrc
- Eine Datei
[id]_[Name].py
im Verzeichnisdebug
- Eine Datei
[id]_[Name].hsl
im Verzeichnisrelease
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:
|
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.
- Im GLE haben Sie nun im Zugriff auf den neuen Baustein unter
- Ü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.
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.