Benutzerhandbuch
Avisaro Datenlogger Box mit Ethernet Schnittstelle
für Produkt M24933
Dieses Dokument gibt einen Überblick über die Bedienung und ausgewählte Funktionen der Avisaro Datenlogger. Es bezieht sich ausschliesslich auf die genannten Produkttypen. Es gilt in der jeweils bei Produktauslieferung bzw. Update gültigen Fassung. Irrtümer und Änderungen bleiben vorbehalten.
| Datum | Änderungen |
| 15.08.2010 | Umfangreiche Überarbeitung des Handbuches ohne Produktänderung |
Das Handbuch umfasst die allgemeinen Informationen. Weiterführende Erklärungen über die allgemeine Handhabung hinaus sowie Erläuterung zur eigenen Script-Programmierung finden Sie in unserer Online-Dokumentation auf der Avisaro Internet-Seite.
Zum Download des Handbuches als pdf-Version klicken Sie bitte hier. Die pdf-Version kann einen älteren Stand wiedergeben.
1. Funktionsweise / Produktbeschreibung
Der Avisaro Datenlogger ist eine prozessorgesteuerte Einheit zum Speichern von technischen Daten. Die Aufnahme der Daten erfolgt aktiv oder passiv über die Schnittstelle, um sie auf SD-Karte abzuspeichern. Die Anwendung wird über sogenannte Scripte gesteuert, die einmal geladen automatisch mit Betrieb des Datenloggers ausgeführt werden. Die Scripte regeln z.B.:
-
das Verhalten bei Verbindungsaufnahme
- wie und welche Daten gespeichert werden
- das Absenden von Kommandos oder Informationen über die Schnittstelle
- echte kleine Anwendungen sind möglich, wie z.B. ein Sensor wird aktiv ausgelesen oder beim Überschreiten von Schwellwerten wird eine Aktion ausgeführt
Scripte sind einfache in Basic geschriebene Programme, die entweder fertig für Standardanwendungen von der Avisaro Homepage geladen oder vom Anwender selber verändert bzw. neu geschrieben werden können. Eine Erläuterung finden Sie weiter unten in diesem Handbuch bzw. ausführlich in der Online-Dokumentation. Die Datenlogger Box und der Cube sind serienmäßig bei Auslieferung bereits mit einem Script zur Abspeicherung von Daten versehen und betriebsbereit.
Zur Änderung der Konfiguration oder der Scripte ließt der Datenlogger bei beim Bootvorgang eine autorun.txt-Datei ein, sofern sich diese auf einer SD-Karte im Speicherslot befindet und nimmt darüber Befehle auf. Diese werden langfristig abgespeichert. Alternativ dazu können Steuerungs- und Konfigurationsbefehle über die Schnittstelle eingegeben werden, solange die Box kein Script ausführt.
Im Gegensatz zum PC benötigen Avisaro Devices fast keine Bootzeit. Im Automatikbetrieb wird das Script mit Stromzufuhr eigenständig gestartet und führt alle Abläufe voll automatisch aus.
2. Inbetriebnahme
Anschluss
Zur Inbetriebnahme wird das Device über den jeweiligen Anschluss auf der Rückseite entsprechend der Anschlussspezifikation mit der Datenquelle verbunden und mit Strom versorgt (Spannung: 6 V - 32 V). Beachten Sie unbedingt die Anschlussbelegung in Kapitel 4.
Damit ist das Device zur passiven Datenaufnahme einsatzbereit. Die gründe Leuchtdiode an der Gehäusevorderseite leuchtet auf.
LAN (nur ausgewählte Geräte)
Devices mit LAN Anschluss verfügen über eine Online-Administratoren-Seite, die über die LAN Schnittstelle erreicht werden kann. Auf dieser Seite können menü-geführt einfach alle Einstellungen des Gerätes vorgenommen sowie neue Scripte geladen werden. Dazu gehen Sie wie folgt vor:
Stellen Sie eine LAN Verbindung mit dem Computer her.
Öffnen Sie eine Browser und geben Sie die IP 192.168.0.75 ein.
Dann loggen Sie sich mit Benutzernamen und Passwort ein. Wenn Sie es noch nicht geändert haben, sind es der Benutzername: 'admin' und das Initialpasswort: '1234'. Zu Ihrem Schutz sollten Sie es aber umgehend ändern und sich gut merken. Achtung: Es gibt keine Hintertür bei verlorenen Passwörtern. Dann müssen Sie sich direkt an Avisaro wenden. Die meisten Boxen können Sie alternativ wieder in den Ursprungszustand zurücksetzen.
Bedienelemente
Die Logger Box hat eine rote und eine grüne Leuchtdiode (LED) zur Anzeige von Betriebszuständen, sowie einen Taster zur Benutzereingabe.
Die Funktion der LEDs und des Taster wird durch das jeweils geladene Script bestimmt. Ist kein Script geladen oder ist die Ausführung des Scripts abgeschaltet, dann leuchtet auch keine LED auf. Eine Beschreibung der Belegung von LED und Taste finden Sie in der Dokumentation des jeweiligen Scriptes. Bei den meisten Scripten bedeutet die grüne LED - Gerät ist eingeschaltet und hat ausreichend Spannung. Die rote LED signalisiert - Logger bereit zum Aufzeichnen bzw. zeichnet auf.
Speicherkarten
Es können Speicherkarten vom Typ "SD" und "SDHC" verwendet werden. Die Logger sind für Karten bis 16 GByte getestet. Es können Karten von beliebigen Herstellern verwendet werden. Beachten Sie jedoch, dass die Qualität von 'Billigkarten' für industriellen Einsatz häufig nicht ausreicht. Bewährt haben sich Karten von SunDisk. Besondere "High-Speed" oder "Extreme" Karten funktionieren, haben jedoch keinen Vorteil im Avisaro Logger.
Die Karten werden eingesteckt bis ein Einrasten zu spüren ist. Zum Herausnehmen drücken Sie die Karten leicht herein. Eine Feder schiebt sie dann heraus. In den meisten Anwendungen können die Karten ohne Schaden einfach entnommen werden. Manche Scripte verlangen jedoch, dass zuvor der Taster gedrückt wird. Einen entsprechenden Hinweis finden Sie in der Anleitung des geladenen Scriptes.
Einstellungen
Der Datenlogger ist mit einem Standardscript versehen und die Schnittstelle befindet sich in der Grundeinstellung gemäß Abschnitt 5. Soweit Ihre Anschlussumgebung dieser entspricht werden alle einkommenden Daten auf SD-Karte gespeichert.
Für Ihren gezielten Einsatz in der gewünschten Funktion sollten gegebenfalls folgende Einstellungen angepasst werden:
- Baudrate / Format der Datenschnittstelle: In Abhängigkeit Ihrer Umgebung muss evtl. die Schnittstellenparameter angepasst werden. Siehe dazu Punkt 5-Konfiguration.
- Anwendungsskript: Für jeden Datenlogger ist das Datenloggen (Script MR1 - für RS232-Schnittstelle oder MC5 - für CAN-Schnittstelle) vorinstalliert. Wenn Sie ein anderes Skript verwenden möchten, installieren Sie diese, wie in Punkt 6-Scripte beschrieben.
- Sondereinstellungen: Über die Command-Befehle können unabhängig vom Script grundlegende Einstellungen vorgenommen werden. Die sich daraus ergebenen Möglichkeiten sind unter Wiki-FAQ auf der Internet-Seite von Avisaro beschrieben.
Alle Einstellungen können bei diesem Gerät über eine Datei namens 'autorun.txt' auf der SD-Karte vorgenommen werden. Beim Bootvorgang wird diese Datei gelesen und ausgeführt. Sie braucht nur einmal eingelesen zu werden und kann anschliessend wieder von der SD-Karte gelöscht werden. Bei Geräten mit LAN bzw. WLAN Zugang lassen sich alle Einstellungen über eine Adminstatoren-Seite vornehmen. (siehe entsprechender Abschnitt)
Schieben Sie eine SD-Karte in den Kartenslot bis zur Einrastung ein. Damit ist der Datenlogger empfangsbereit und zeichnet all Daten gemäß Script auf.
Wartung
Die Avisaro Datenlogger sind für wartungsarmen Betrieb ausgelegt.
Lagerung
Die Box verfügen über einen Pufferakku damit die interne Echtzeituhr und Datum erhalten bleiben auch wenn der Logger nicht im Betrieb ist. Dieser Pufferakku hält ca. einen Monat. Bei längerer Lagerung muss die Uhrzeit neu gestellt werden und der Datenlogger über 48 h mit Spannung versorgt werden damit der Pufferakku wieder voll geladen wird.
Reinigung
In staubiger Umgebung kann der SD Kartenslot verschmutzen. Eine Reinigung ist mit Druckluft möglich. Geignet ist z.B. "Druckluft" Dose von Contact Chemie. Verwenden Sie auf keinen Fall ölhaltige Druckluft aus Druckluftsystemen.
Echtzeituhr
Die Avisaro Box und der Avisaro Cube verfügen über eine gepufferte Echtzeituhr. Datum und Uhrzeit werden so z.B. für Dateinamen, Zeitstempel und andere Funktionen richtig verwendet. Über das Script oder Kommando kann auf die aktuelle Zeit zugegriffen werden.
Die Echtzeituhr wird intern durch einen Akku gespeist. Dieser Akku hält ca. 1 Monate ohne externe Versorgung. Liegt eine Versorungsspannung an der Box an, wird der Akku innerhalb von 48 h wieder geladen.
Die Uhr ist im Auslieferungszustand gestellt (Zeitzone: Berlin). Die Uhr kann über die Konfiguration (siehe Punkt 8) geändert werden. Die Ganggenauigkeit beträgt ein paar Minuten pro Jahr. Sommer / Winterzeit Umstellung wird nicht unterstützt.
3. Technische Details
Elektrische Eigenschaften
Die Versorgungsspannung hat einen Bereich von 6 V - 32 V. Fällt die Spannung unter 6 V ist eine sichere Funktion nicht gewährleistet. Die Box macht bei Unterspannung automatisch einen Neustart ("Bown-Out"). Bei Spannungen über 32 V kann der Logger dauerhaft beschädigt werden.
Der Eingang für die Versorgungsspannung ist mit einem Verpolungsschutz versehen - wird Masse und VCC versehentlich vertauscht, nimmt der Logger keinen Schaden, funktioniert aber auch nicht. Der Logger verfügt intern über eine Schmelzsicherung die ab einer Stromaufnahme von 1 A auslöst. Die Sicherung kann nur von Avisaro oder einem Fachbetrieb gewechselt werden. In der Regel ist eine defekte Sicherung ein Zeichen für einen anderen grundsätzlicheren Defekt in der Stromversorgung.
Die Stromaufnahme beträgt ca. 0.5 W für Datenlogger und ca. 1 W für Geräte mit integriertem WLAN.
Mechanische Daten:
Abmessungen: 51 x 72 x 24 mm
Gewicht: 110 g
Schutzklasse: keine
Temperatur: -30°C bis 85°C, sofern der Hersteller der verwendeten SD-Karte keine einschränkende Vorgabe macht.
4. Anschlussbelegung
5. Schnittstellen-Konfiguration
Konfiguration der Schnittstelle über WEB-Administratorseite
Am einfachsten stellen Sie die Schnittstelle bei allen WLAN/LAN-fähigen Avisaro Devices mittels der Administratorseite um. Folgen Sie diesen Schritten:
1. Öffnen Sie den Browser, wählen Sie die IP Ihres Avisaro Devices an und loggen Sie sich ein.
2. Gehen Sie unter Data Interface in dem Menü auf Ihre Schnittstelle.
3. Passen Sie die Parameter an die Bedürfnisse der Umgebung an. Schließen Sie mit 'submit' wieder ab.
4. Rebooten Sie das Device entweder durch Stromunterbrechung oder unter Generals der Button 'Reboot'
6. Funktionalität ("Scripts")
Die eigentliche Funktion - das Aufzeichnen oder Abfragen von Daten - wird durch Anwendungsscripte definiert.
Die Anwendungsprogramme oder Scripte sind kleine Programme, geschrieben in der Programmiersprache BASIC. Durch diese Scripte wird das Verhalten der Logger festgelegt - also wie die Daten formatiert werden, ob Zeitstempel gesetzt werden, die Abfrage von Daten, bedingte Steuerung etc.
Die Avisaro Logger Box und Logger Cube werden mit einem vorinstallierten Scripts ausgeliefert. In diesem Fall des Avisaro Datenloggers mit CAN-Schnittstelle ist es das Script MC5: Loggen von Daten in eine CSV-Datei in ASCII mit Zeitstempel. Diese kann durch ein anderes bereits durch Avisaro verfügbares Script oder durch eigene programmierte Scripts ersetzt werden.
Es gibt eine Reihe von fertigen Scripten, die auf der Avisaro Homepage veröffentlicht sind und zum Download bereitstehen. Damit können Sie die Funktionsweise Ihres Avisaro Loggers selber verändern. Für dieses Produkt gibt es zur Zeit folgende fertige Scripte:
Laden von Scripten
Die "Box" und "Cube" Logger werden mit einem vorinstallierten Script ausgeliefert. Dies kann direkt so verwendet werden, oder durch ein anderes ersetzt werden. Zum Laden eines neuen Scriptes stehen mehrere Möglichkeiten zur Verfügung:
- Über eine 'autorun.txt' Datei auf der SD-Karte
- Über die Datenschnittstelle bei deaktiviertem Script
- bei Datenlogger mit Netzwerkschnittstelle: zusätzlich über die Webseite
1.) Laden eines Scripts von der SD-Karte (mit der Autorun.txt Datei)
Befindet sich eine Datei mit dem Namen autorun.txt beim Einschalten des Loggers auf der Speicherkarte, dann werden alle Kommandos in dieser Datei ausgeführt. Eine Übersicht aller Befehle finden Sie online im Avisaro Wiki (
hier).
Laden Sie das neue Script von der Avisaro Webpage herunter und speichern Sie es auf die SD-Karte. Das Script hat das Format .txt.
Zum Laden eines neuen Scriptes in den Avisaro müssen Sie mit einem einfachen Text-Editor eine Datei mit dem Namen autorun.txt anlegen. Dazu schreiben Sie in die Datei den Befehl "load <dateiname>" (
details) und drücken dann die Enter-Taste. Achten Sie darauf, dass der Dateiname und Endung exakt identisch ist mit dem Namen unter dem das Script auf der SD-Karte gespeichert ist.
Mit einem in der nächsten Zeile folgenden Befehl "run" wird das Script sofort einmalig ausgeführt. Mit dem Befehl "run auto" startet das Script ab der nächsten Stromunterbrechung jedesmal automatisch (zu empfehlen) bei jeder Nutzung des Loggers. Sie können auch beide run-Befehle nach einander verwenden.
Drücken Sie nach jeder Befehlszeile (auch nach der letzten!) die Enter-Taste.
Speichern Sie die Datei unter autorun.txt ebenfalls (zusammen mit dem Script) auf die SD-Karte. Beispiel für den Inhalt der autorun.txt:
load wr1-7.txt
run auto
run
Hinweis: Die Dateinamen bestehen aus höchstens höchstens 8 Zeichen und maximal 3 Zeichen Endung. Jede Zeile (auch die letzte) muß mit Drücken der 'Enter'-Taste abgeschlossen werden.
Schieben Sie die SD-Karte mit den beiden Dateien in den Logger. Beim Einschalten wird das Script geladen und dauerhaft im Flash gespeichert. D.h. die Dateien können danach wieder von der Speicherkarte gelöscht werden und brauchen nicht jedes Mal mitgegeben zu werden.
Nun sind das Script und der Startbefehl geladen. Bei ausschliesslicher Verwendung des Befehles 'run' müssen Sie von nun an den Avisaro Logger eingeschaltet lassen, das Script wird unmittelbar ausgeführt. Bei alleiniger Verwendung von 'run auto' ist es notwendig noch einmal den Avisaro aus und wieder anzuschalten, damit das Script tatsächlich gestartet wird.
2.) Laden von Scripten über die Datenschnittstelle / Kommandoschnittstelle
Über die RS232 oder CAN Schnittstelle kann ebenfalls ein Script geladen werden. Ist bereits ein Script aktiv, dann muss dieses zunächst beendet werden, da sonst die Kommando-Schnittstelle nicht aktiv ist (alle Eingaben würden vom Script verarbeitet und nicht als Befehl interpretiert).
Das laufende Script beenden Sie mittels einer 'autorun.txt' auf der SD-Karte. Dazu schalten Sie den Strom aus und legen eine SD-Karte mit einer autorun.txt ein, die Sie mit einem einfachen Text-Editor schreiben können.
Der Inhalt der autorun.txt lautet:
run manual
Hinweis: Die Zeile muß mit drücken der 'Enter'-Taste abgeschlossen werden.
Anschliessend schalten Sie den Strom ein, damit die Datei geladen wird. Sie können dann die SD-Karte wieder entnehmen. Jetzt müssen Sie zum Neustart einmal den Strom aus und wieder einschalten. Damit startet der Datenlogger ohne ein Script auszuführen (die LEDs leuchten nun nicht mehr).
Nun können Sie über die Schnittstelle Befehle an den Datenlogger senden. Die Befehle sind identisch zu denen, die im oberen Abschnitt in der autorun.txt verwendet wurden.
3.) Laden von Scripten über die Webpage per WLAN/LAN
Öffnen Sie eine Browser und geben Sie die IP 192.168.0.74 ein. Dann loggen Sie sich mit Benutzernamen und Passwort ein. Wenn Sie es noch nicht geändert haben, sind es der Benutzername: 'admin' und das Initialpasswort: '1234'. Zu Ihrem Schutz sollten Sie es aber umgehend ändern und sich gut merken. Achtung: Es gibt keine Hintertür bei verlorenen Passwörtern. Dann müssen Sie sich direkt an Avisaro wenden. Über den Menuepunkt 'Setting Script' können Sie das Script ändern:
Upload new script:
Wählen Sie die Script-Datei aus und klicken Sie auf 'send file'
Run script on start-up:
No: Script startet nicht automatisch, wenn das Device angeschaltet wird.
Asynchronous: Script startet automatisch, wenn das Device angeschaltet wird.
Exclusive: Script startet ausschliesslich - nur für Experten.
Currently running
Markiert: Script läuft.
Nicht markiert: Script läuft nicht.
Um das Script manuell zu starten oder stoppen, markieren oder löschen Sie entsprechend das Kontrollkästchen und klicken dann auf das 'submit'-Feld. Hinweis: Betätigen Sie anschliessend den 'Refresh'-Button um sicher zu gehen, dass die Änderung durchgeführt wurde.
3 x 2 Tabelle
Diese Tabelle kann für eigene geschriebene Scripte verwendet werden, um Daten anzuzeigen oder abzufragen. Für Hinweise zur Ansteuerung dieser Tabelle siehen Sie den Abschnitt 'Scripting' auf der Avisaro Webseite.
7. Scripte schreiben (Anwendungsprogrammierung)
Script "MR3" mit Kommentaren
Das Script-Beispiel führt Befehle für eine RS232-Schnittstelle aus. Dei anderen Box-Typen verfahren Sie den Schnittstellen entsprechend.
Kommentare werden mit ' oder mit REM markiert:
' ' Datenlogger Rev 1.8 (c) Avisaro AG, 14.1.2009 '
Mit DIM wird eine Array definiert, dass später verwendet wird, um Daten zu halten. Für Dateioperationen ist eine Größe von 512 geeignet.
DIM A(512)
Falls die interne Uhr beim Avisaro Modul nicht batteriegepuffert ist, wird sie im Folgenden auf einen Default-Wert gesetzt. Bei der Avisaro Box und Cube ist dieser Schritt nicht notwendig. Zusätzlich werden ein paar weitere Konfigurations-Einstellungen gemacht - diese könnten genau so gut außerhalb des Scripts mit einer 'autorun.txt' Datei gemacht werden.
'if no battery if time < 10000 then exec "time 2009 01 01 00 00 01" end if
exec "fsync 1000" exec "sched 0 fix"
Das Scriptbeispiel benutzt eine RS232 Schnittstellen. Die erste wird über die "Data Interface" Einstellung festgelegt. Mit dem 'inmode' und 'outmode' Befehl wird festgelegt, dass die Daten vom Data Interface zum Script verarbeitet werden (und somit nicht als Kommandos interpretiert werden).
Für die einfache Ausgabe von z.B. Startmeldungen kann 'print' verwendet werden.
print "Avisaro Logger Rev 1.8 (c) 2009 Avisaro AG"
Sprungmarke (Anker) um an den Anfang des Programms zu springen (für die spätere Verwendung des Befehls 'goto')
BEGIN:
Typischerweise ist am IO-Pin 3 eine grüne LED angeschlossen. Diese wird nun eingeschaltet.
put -203, #1
Wenn die Taste (typischerweise an I/O-Pin 4) gedrückt ist, wird wieder zum Anfang gesprungen. Später im Programm wird eine gedrückte Taste zum Stop der Aufzeichnung verwendet - hiermit wird nun sichergestellt, dass die Taste auch wieder losgelassen wird.
if (KEYS & 1) = 1 then
goto BEGIN
end if
Nun wird überprüft, ob ein Datenträger eingelegt worden ist. So lange die Speicherkapazität ("lof") den Wert 0 hat, ist dies nicht der Fall und es wird nach einer kurzen Pause ("sleep") zum Anfang zurückgesprungen.
if lof(0) = 0 then
sleep 100
goto BEGIN
end if
Ist ein Datenträger eingelegt, wird versucht die Datei "log-1.txt" in dem Modus "Daten Anhängen" zu öffnen. Falls also die Datei schon vorhanden ist, werden Daten angehängt. Schlägt dies fehl ("LASTERR") ist die Datei nicht auffindbar und wird dann neu erzeugt. Schlägt auch das fehl, ist etwas nicht in Ordnung (z.B. Speicherkarten wurde wieder herausgenommen) und es wird zum Anfang gesprungen.
open "AB", 1, "log-1.txt"
if LASTERR <> 0 then
open "WB", 1, "log-1.txt"
if LASTERR <> 0 then
close 1
goto BEGIN
end if
end if
Bei erfolgreichem Abschluß soll nun die rote LED (meistens I/O-Pin 2) anschalten um zu zeigen, dass nun aufgezeichnet wird. Die aktuelle Zeit in Sekunden wird gespeichert - so kann später die LED im Takt blinken, wenn Daten eintreffen. Mit der 'DO - LOOP' Schleife beginnt nun die Hauptschleife.
put -202, #1 let t = time
do
Mit dem Input Befehl werden nun die Daten von der ersten RS232 abgeholt. Es werde so viele Daten wie verfügbar in das Array A gepackt. Mit der Systemvariablen BYTESREAD kann abgefragt werden, wie viele Daten gelesen wurden. Wurden Daten gelesen (">0"), dann wird die rote LED ausgeschaltet und die Daten werden in die Datei mit dem Handle 1 geschrieben.
INPUT A
if BYTESREAD > 0 then
put -202, #0
put 1, A, BYTESREAD
end if
Im Folgenden wird laufend überprüft, ob die Speicherkarte weiterhin eingelegt ist (mit "lof"). Kommt es zu einem Schreibfehler - z.B. der Datenträger ist voll, dann wird die Datei automatisch geschlossen - somit ändert sich auch der Status des Dateihandles. Ist dies der Fall, werden vorsorglich beide Dateien geschlossen, die LED ausgeschaltet und zum Anfang gesprungen.
if lof(0) = 0 or status(1) <> 2 then
close 1
close 2
put -202, #0
goto BEGIN
end if
Wurde die Taste gedrückt, werden die Dateien geschlossen und die Aufzeichnung beendet. Es wird dann zur späteren Marke "FIN_KEY" gesprungen.
if (KEYS & 1) = 1 then
close 1
close 2
goto FIN_KEY
end if
Aus rein optischen Gründen lassen wir die rote LED mit etwas Verzögerung wieder leuchten, wenn sie nach dem Eintreffen von Daten ausgeschaltet wurde.
if t < time then
let t = time
put -202, #1
end if
loop
Bei "FIN_KEY" wird nur noch gewartet, bis die Taste wieder losgelassen wurde. Bei "FINISH" wird nun auf eine weitere Benutzeraktion gewartet. Damit die Aufzeichnung wieder startet, muss entweder erneut die Taste gedrückt werden oder die Speicherkarte entnommen werden.
FIN_KEY:
if (KEYS & 1) = 1 then
goto FIN_KEY
end if
FINISH:
put -202, #0
let x = lof(0)
if (x = 0) or ((KEYS & 1) = 1) then
goto BEGIN
else
goto FINISH
end if
Zum Schluss nur noch ein Goto zum Anfang - eigentlich nicht nötig, aber zur Sicherheit. Das "' +++" dient lediglich dazu, dass wenn die Datei über die Datenschnittstelle hochgeladen wird, wird damit das Ende angezeigt. "+++" ist dabei die - veränderbare - Stopsequenz.
goto BEGIN ' +++

