Benutzerhandbuch
Avisaro Datenlogger Modul
mit RS232, CAN, I2C oder SPI Schnittstelle und I/O Ports
für das Produkt M20511
Dieses Handbuch ist eine Beschreibung der Funktionsweise des Avisaro Datenlogger Moduls. Bitte beachten Sie, dass das Datenlogger Modul mit oder ohne Connector Board zum Einbau in ein Fremdgerät vorgesehen ist. Der Anschluss und Einbau setzen entsprechende elektro-technische Grundkenntnisse voraus.
| Datum | Änderungen |
| 15.07.2010 | Vollständige Überarbeitung |
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.
1. Funktionsweise / Produktbeschreibung
Das Avisaro Datenlogger Modul ist eine prozessorgesteuerte Einheit zum Verbauen in ein Gerät oder Steuerungseinheit. Es nimmt die Daten und den Strom über 2x12 PIN-Reihen auf und speichert sie auf einer SD-Karte. Die Anwendung wird über sogenannte Scripte gesteuert, die einmal geladen automatisch mit Betrieb des Datenlogger Moduls 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.
Das Avisaro Datenlogger Modul verfügt über eine Reihe von Schnittstellen, die sie alternativ nutzen können. Zur Auswahl stehen CAN, RS232, RS485, SPI oder I2C. In der Auslieferung ist die RS232 eingestellt. Bei Bedarf muss eine andere Schnittstelle ausgewählt werden. Die Signale werden als Tx/Rx bzw. im TTL Pegel aus dem Modul herausgeführt. Daher setzt das Modul entsprechend z.B. einen Transceiver voraus.
Der Datenlogger liesst bei beim Bootvorgang eine autorun.txt-Datei ein, sofern sich diese auf einer SD-Karte im Speicherslot befindet und nimmt darüber Konfigurationsbefehle auf. Diese werden langfristig abgespeichert. Alternativ dazu können Steuerungs- und Konfigurationsbefehle über die Schnittstelle eingegeben werden, solange das Modul 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.
Zur Vereinfachung des Anschlusses können Avisaro Connector Boards als Zubehör erworben werden. Sie sind passend zum Modul, das auf das Board aufgesteckt wird und verfügen über die notwendige Schnittstellenumgebung und leiten die Kontakte über WAGO- bzw. Ethernet-Anschlüsse heraus.
2. Inbetriebnahme
Einbau
Zur Inbetriebnahme muss das Modul in das OEM-Gerät verbaut werden. Der Anschluss erfolgt über die 2 PIN-Reihen. Das Modul muss damit auf eine vom Verwender vorgesehene Trägerplatine aufgesteckt werden, die über die entsprechende Schnittstellenumgebung und konstante Stromversorgung verfügt.
Das PIN Layout finden Sie weiter hinten in diesem Handbuch. Bitte achten Sie unbedingt auf die richtige Anschlussbelegung und die richtige Stromversorgung. Das Modul selber verfügt über keinen Spannungsregler. Bei falscher Spannung oder falschen Anschlüssen nimmt das Modul Schaden!
Alternativ kann das Modul auf ein Avisaro Connector Board aufgesteckt werden und dann mittels WAGO-Klemmen angeschlossen werden. Das Connector Board verfügt über einen Spannungsregler, eine Baterie für die Echtzeituhr und die jeweilige Schnittstellenumgebung. Auch hier ist die richtige Anschlussbelegung unbedingt zu beachten, um eine Beschädigung zu vermeiden! Die Beschreibung des Connector Boards finden Sie auf der entsprechenden Web-Seite und in der dazugehörigen Dokumentation.
Zu beachten ist u.a. unbedingt folgendes:
- Versorgungsspannung muss im erlaubten Bereich liegen
- Die richtige Anschlussbelegung muss sichergestellt sein
- Das Modul darf nicht der Feuchtigkeit ausgesetzt werden
- Das Modul verträgt Temperaturen zwischen -30 und + 85 C.
Konfiguration des Moduls
Vor dem Einsatz des Moduls müssen folgende Einstellungen vorgenommen werden:
- Auswahl und Parameter der Datenschnittstelle: Das Modul ist bei Auslieferung auf die RS232-Schnittstelle voreingestellt. Zur Verwendung einer der anderen Schnittstellen können Sie diese umstellen. Ausserdem müssen evtl. abweichende die Parameter wie Baudrate eingestellt werden.
- Anwendungsskript: Bei dem Modul ist kein Anwendungsscript vorinstalliert. Auf der Avisaro Web-Seite stehen fertige Scripte zum Download bereit. Falls individuelle Funktionen gewünscht sind, können bestehende Scripte verändert oder eigene Scripte geschrieben werden. Installieren Sie dieses, wie weiter unten beschrieben.
Die Konfiguration erfolgt entweder über eine Konfigurationsdatei auf der SD-Karte oder über die Datenschnittstelle. Sie muss nur einmal erfolgen. Das Modul behält die Einstellung dauerhaft bis zu einer aktiven Änderung oder eines gezielten Zurücksetzens bei.
- Konfigurationsdatei: Die Datei ist ein normale Text-Datei mit dem Namen 'autorun.txt' und beinhaltet alle Konfigurationsbefehle. Sie wird einmalig auf einer SD-Karte gespeichert. Bei Einschalten bzw. Booten liesst das Avisaro Device sie automatisch ein und führt sie je nach Befehl direkt (nur wenige Befehle) oder beim nächsten Neustart (die Regel) aus.
- Kommandoschnittstelle: Um die Befehle über die Komandoschnittstelle eingeben zu können, darf noch kein Script gestartet worden sein bzw. müssen in der Regel laufende Scripte gestoppt werden. Sie können dann die Konfigurationsparameter über den verdrahteten Anschluss durch die Konfigurationsbefehle ändern bzw. abfragen. Schliessen Sie dazu ein kommunikationsfähiges Endgerät an und übersenden Sie entsprechende Befehle. Eine Beschreibung und eine kurze Liste der wichtigsten Befehle finden Sie weiter unten in diesem Dokument. Dort sind auch Links zu allen Befehlen und weitere Hinweise ausgeführt.
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.
Echtzeituhr
Das Modul verfügt über eine Echtzeituhr mit separatem Stromanschluss. Datum und Uhrzeit werden so für Dateinamen, Zeitstempel etc. richtig verwendet. Die Echtzeituhr kann über den separaten Stromanschluss mit Dauerstrom versorgt werden. Es wird empfohlen, die Stromzufuhr über einen Akku zu puffern. Bei Verwendung eines Schnittstellensockels aus dem Zubehör ist der Akku integriert.
Die Ganggenauigkeit beträgt ein paar Minuten pro Jahr. Sommer / Winterzeit Umstellung wird nicht unterstützt.
3. Technische Details
Elektrische Eigenschaften
Das Datenlogger Modul benötigt eine geregelte Versorgungsspannung von 3.3 V (+/- 0.1V).
Fällt die Spannung unter 2.7 V ist eine sichere Funktion nicht gewährleistet. Das Modul macht bei Unterspannung automatisch einen Neustart ("Bown-Out").
Als Signaleingänge sind 5V tolerant. Dadurch ist der Mischbetrieb in einem 5V System einfach, da die Signalpegel nicht angepasst werden müssen.
Die Stromaufnahme beträgt 90 mA für den Logger.
Mechanische Daten:
Maße: 37 x 32 mm, Höhe: 10 mm
Gewicht: 14g
max. Temperatur: -30°C bis 85°C, sofern der Hersteller der verwendeten SD-Karte keine einschränkende Vorgabe macht.
Die Detailmaße finden Sie hier
4. PIN Layout
Es stehen bei allen Modulen folgende weitere Schnittstellen zur Verfügung, die über die Konfiguration aktiviert werden können:
- RS232 (2x)
- CAN (2x)
- I2C (1x Slave/Master)
- SPI (1x Slave)
Die Module werden standardmäßig mit der RS232 als aktive Schnittstelle ausgeliefert. Soll eine der anderen Schnittstellen verwendet werden, läßt sich diese über die Konfiguration umstellen und die Schnittstellen-Parameter definieren. Die verschiedenen Schnittstellen stehen im Regelfall alternativ zur Verfügung.
Es gibt eine primäre Datenschnittstelle - über die kann das Modul Daten austauschen und Befehle empfangen. Über die sekundäre Datenschnittstelle könen nur Daten über ein Script ausgetauscht werden. Es können mehrer Datenschnittstellen parallel aktiv sein - solange sich die Pinbelegung nicht überschneidet. So ist es z.B. möglich zwei serielle und eine CAN Schnittstelle parallel zu betreiben.
Alle Schnittstellen haben 3,3 V TTL Pegel. Für den Betrieb an einem Bus oder an einer Schnittstelle ist häufig ein Treiberbaustein möglich - so z.B. ein "MAX232" für die RS232 und ein "CAN Transceiver" für die CAN Schnittstelle.
Im folgenden sind die Belegungen je nach aktivierter Schnittstelle gezeigt. Eine ausführlicher Beschreibung finden Sie
hier.
Orientierung
Das Avisaro 2.0 Modul hat 24 pins. Pin Nr. 1 ist in der oberen linken Ecke, alle anderen Pin Nr. zählen im Gegenuhrzeigersinn hoch. Die Position des Pin Nr. 1 ist im Diagramm gezeigt.
- Basis Modul Pin Nr. 1 ist markiert durch ein Dreieck.
- SD Trailor Modul halten Sie so, dass die Slotöffnung nach oben zeigt.
RS232 (1x)
The RS232 interface is viewed as master or PC side. Thus, signals such as 'Ring' are inputs. There is no 'level shifter' onboard - all signals are TTL (3.3V) levels. Signals in brackets (such as GPIO(LED1)) show how pins are used in Avisaro Box or Avisaro Cube products.
| No | I/O |
Name |
Name |
I/O | No | |
| 1 | P |
VBAT |
|
VCC (3.3V) |
P | 24 |
| 2 | O |
GPIO (Red LED) |
n.c. |
- | 23 | |
| 3 | O |
GPIO (Green LED) |
n.c. |
- | 22 | |
| 4 | I |
GPIO (KEY) |
n.c. |
- | 21 | |
| 5 | I |
DCD |
n.c. |
- | 20 | |
| 6 | I |
DSR |
n.c. |
- | 19 | |
| 7 | O |
DTR |
n.c. |
- | 18 | |
| 8 | I |
RING |
n.c. |
- | 17 | |
| 9 | O |
TXD |
GPIO (open) |
- | 16 | |
| 10 | I |
RXD |
GPIO (open) |
- | 15 | |
| 11 | I |
CTS |
Reset |
I | 14 | |
| 12 | O |
RTS |
GND |
P | 13 |
'I/O': pin is input, output or power, 'n.c.': do not connect, leave open
RS232 (2x)
The RS232 interface is viewed as master or PC side. Thus, signals such as 'Ring' are inputs. There is no 'level shifter' onboard - all signals are TTL (3.3V) levels.
| No | I/O |
Name |
Name |
I/O | No | |
| 1 | P |
VBAT |
|
VCC (3.3V) |
P | 24 |
| 2 | O |
GPIO (LED1) |
n.c. |
- | 23 | |
| 3 | O |
GPIO (LED2) |
n.c. |
- | 22 | |
| 4 | I |
GPIO (KEY) |
n.c. |
- | 21 | |
| 5 | O |
TXD-2 |
n.c. |
- | 20 | |
| 6 | I |
RXD-2 |
n.c. |
- | 19 | |
| 7 | O |
DTR-1 |
n.c. |
- | 18 | |
| 8 | I |
RING-1 |
n.c. |
- | 17 | |
| 9 | O |
TXD-1 |
GPIO |
I/O | 16 | |
| 10 | I |
RXD-1 |
GPIO |
I/O | 15 | |
| 11 | I |
CTS-1 |
Reset |
I | 14 | |
| 12 | O |
RTS-1 |
GND |
P | 13 |
'I/O': pin is input, output or power, 'n.c.': do not connect, leave open
CAN (1x)
The CAN interface is operated as Rx and Tx. To connect the module to a CAN Bus, a transceiver circuitry is required to translate Rx/Tx into a CAN-H / CAN-L signal.
| No | I/O |
Name |
Name |
I/O | No | |
| 1 | P |
VBAT |
|
VCC (3.3V) |
P | 24 |
| 2 | O |
LED1 |
n.c. |
- | 23 | |
| 3 | O |
LED2 |
n.c. |
- | 22 | |
| 4 | I |
KEY |
n.c. |
- | 21 | |
| 5 | - |
n.c. |
n.c. |
- | 20 | |
| 6 | - |
n.c. |
n.c. |
- | 19 | |
| 7 | - |
n.c. |
n.c. |
- | 18 | |
| 8 | - |
n.c. |
n.c. |
- | 17 | |
| 9 | - |
n.c. |
n.c. |
- | 16 | |
| 10 | - |
n.c. |
n.c. |
- | 15 | |
| 11 | I |
CAN Rx |
Reset |
I | 14 | |
| 12 | O |
CAN Tx |
GND |
P | 13 |
'I/O': pin is input, output or power, 'n.c.': do not connect, leave open
CAN (2x)
Both CAN interface are operated as Rx and Tx. To connect the module to a CAN Bus, a transceiver circuitry is required to translate Rx/Tx into a CAN-H / CAN-L signal. Automotive CAN transceivers such as the TJA1041AT are supported. So are Single Wire CAN transceivers.
| No | I/O |
Name |
Name |
I/O | No | |
| 1 | P |
VBAT |
|
VCC (3.3V) |
P | 24 |
| 2 | O |
LED1 |
n.c. |
- | 23 | |
| 3 | I |
CAN 2 - Rx |
n.c. |
- | 22 | |
| 4 | O |
CAN 2 - Tx |
n.c. |
- | 21 | |
| 5 | O |
CAN - EN |
n.c. |
- | 20 | |
| 6 | O |
CAN - STB |
n.c. |
- | 19 | |
| 7 | O |
LED 2 |
n.c. |
- | 18 | |
| 8 | I |
KEY |
n.c. |
- | 17 | |
| 9 | - |
n.c. |
n.c. |
- | 16 | |
| 10 | - |
n.c. |
n.c. |
- | 15 | |
| 11 | I |
CAN 1 Rx |
Reset |
I | 14 | |
| 12 | O |
CAN 1 Tx |
GND |
P | 13 |
'I/O': pin is input, output or power, 'n.c.': do not connect, leave open
SPI (slave)
The SPI interface is implemented as a slave.
| No | I/O |
Name |
Name |
I/O | No | |
| 1 | P |
VBAT |
|
VCC (3.3V) |
P | 24 |
| 2 | O |
LED1 |
n.c. |
- | 23 | |
| 3 | O |
LED2 |
n.c. |
- | 22 | |
| 4 | I |
KEY |
n.c. |
- | 21 | |
| 5 | - |
n.c. |
n.c. |
- | 20 | |
| 6 | - |
n.c. |
n.c. |
- | 19 | |
| 7 | - |
n.c. |
n.c. |
- | 18 | |
| 8 | - |
n.c. |
n.c. |
- | 17 | |
| 9 | I |
CS |
n.c. |
- | 16 | |
| 10 | O |
MISO |
n.c. |
- | 15 | |
| 11 | I |
MOSI |
Reset |
I | 14 | |
| 12 | I |
SCK |
GND |
P | 13 |
'I/O': pin is input, output or power, 'n.c.': do not connect, leave open
The SPI bus is using 8 bit words.
Max SCK clock is 10 mHz.
The bus select (CS) is active low. It is recommended to deactivate the CS between data block in case clock glitches occured.
I2C (master or slave)
The I2C interface is implemented as a master or slave depending on configuration.
| No | I/O |
Name |
Name |
I/O | No | |
| 1 | P |
VBAT |
|
VCC (3.3V) |
P | 24 |
| 2 | O |
LED1 |
n.c. |
- | 23 | |
| 3 | O |
LED2 |
n.c. |
- | 22 | |
| 4 | I |
KEY |
n.c. |
- | 21 | |
| 5 | - |
n.c. |
n.c. |
- | 20 | |
| 6 | - |
n.c. |
n.c. |
- | 19 | |
| 7 | - |
n.c. |
n.c. |
- | 18 | |
| 8 | - |
n.c. |
n.c. |
- | 17 | |
| 9 | - |
n.c. |
SDA-0 |
I/O | 16 | |
| 10 | - |
n.c. |
SCL-0 |
I/O | 15 | |
| 11 | - |
n.c. |
Reset |
I | 14 | |
| 12 | - |
- |
GND |
P | 13 |
'I/O': pin is input, output or power, 'n.c.': do not connect, leave open
I/O, PWM, Analog Ports
If a pin is not used for data transmittion, this pin can be used as a input, output, pulse width modulation (PWM) or analog pin as described here:
| No | I/O |
Name |
Name |
I/O | No | |
| 1 | P |
VBAT |
|
VCC (3.3V) |
P | 24 |
| 2 | I/O |
GPIO |
n.c. |
- | 23 | |
| 3 | I/O |
GPIO |
n.c. |
- | 22 | |
| 4 | I/O |
GPIO |
n.c. |
- | 21 | |
| 5 | I/O |
GPIO, PWM |
n.c. |
- | 20 | |
| 6 | I/O |
GPIO, PWM |
n.c. |
- | 19 | |
| 7 | I/O |
GPIO, PWM |
n.c. |
- | 18 | |
| 8 | I/O |
GPIO, ADC |
n.c. |
- | 17 | |
| 9 | I/O |
GPIO, PWM, ADC |
I/O (open drain) |
I/O | 16 | |
| 10 | I/O |
GPIO, PWM |
I/O (open drain) |
I | 15 | |
| 11 | I/O |
GPIO, PWM |
Reset |
I | 14 | |
| 12 | I/O |
GPIO |
GND |
P | 13 |
'I/O': pin is input or output or pwm or analog input (ADC), 'p' power, 'n.c.': do not connect, leave open
5. Schnittstellen-Konfiguration
Die Schnittstelle dieses Device kann vorzugsweise über eine Autorun-Datei auf einer SD-Karte konfiguriert werden. Alternativ besteht die Möglichkeit Konfigurationsparameter über die Schnittstelle zu senden, solange kein Script aktiv ist.
Konfiguration der Schnittstelle von Datenlogger bzw. WLAN Logger per Konfigurations-Datei
Batch-Datei "autorun.txt"
Zur einfachen Konfiguration werden alle Einstellungen in eine gewöhnliche Textdatei mit dem Namen "autorun.txt" geschrieben.
Beispiel zum Wechsel zu CAN
prot can
CAN 125000 1fe 0 2ff 1
load mc5-4.txt
run auto
Beachte: Wichtig ist, dass die letzte Zeile mit Betätigung der 'Enter'-Taste abgeschlossen wird.
Dieses Beispiel setzt die Datenschnittstelle auf CAN fest und stellt die Schnittstellenparameter ein.
Der Befehlssatz dazu lautet:
CAN <Baudrate> <RX ID> <RX ID ist extended ID> <TX ID> <TX ID is extended>
Dann wird in diesem Beispiel das Script 'mc5-4.txt' geladen (dieses muss sich ebenfalls auf der SD Karte befinden).
Abschließend wird das Script auf 'automatisches Ausführen nach dem Start' gestellt.
Fast alle Einstellungen werden intern im Flash gespeichert - die Autorun.txt muss also nur einmal ausgeführt werden und kann dann vom Datenträger gelöscht werden.
- autorun.txt Datei erzeugen und auf Speicherkarte speichern
- Avisaro Logger ausschalten und Speicherkarte einlegen
- Avisaro Logger einschalten und ca. 10 Sekunden warten. In dieser Zeit werden die Befehle in der autorun.txt Datei abgearbeitet
- Avisaro Logger ausschalten und autorun.txt von Datenträger löschen
Die Befehle zur Konfiguration der anderen Schnittstellen lauten:
Folgende Befehle sind hilfreich bei der Konfiguration der Module: (eine vollständige Liste aller Befehle finden Sie hier:
details)
Beschreibung: Stellt die Datenschnittstelle ein (also z.B. CAN, RS232, I2C, ...) (
details)
Beschreibung: Zur Einstellung der RS232 Schnittstellenparameter (
details)
Zur Einstellung der CAN Schnittstellenparameter (
details)
Zur Einstellung der SPI Schnittstellenparameter (
details)
Zur Einstellung der I2C Schnittstellenparameter (
details)
Beschreibung: Läd ein neues Script. Script-Datei muss auf Speicherkarte sein. (
details)
Setzt das Produkt in den Auslieferungszustand zurück. Alle Einstellungen werden gelöscht, die Ausführung des Scripts wird gestoppt (die LEDs am Gehäuse leuchten auch nicht mehr). (
details)
Konfiguration der Schnittstelle über die Schnittstelle selber
Diese Methode setzt einen sendefähige Verbindung über die bisherige Konfiguration der Schnittstelle und noch kein aktives Script voraus. Dieses Vorgehen ist nur in Ausnahmefällen, z.B. dem automatisierten Einstellen des Device ratsam.
Sie können dann dem Device in einer Folge von Befehlen Anweisungen zur Einstellung der Schnittstelle geben.
Beispiel:
PROT CAN
CAN 500000 49 0 49 0
Die Umstellung wird erst nach einem Reboot aktiv.
Sie können im gleichen Vorgang auch das Script laden. Beschreibung siehe unter Scripting.
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:
MR1: Daten in Datei loggen
Dieses Script speichert Daten von einer RS232-Schnittstelle in eine Datei 'logdata.txt' - so wie sie über die Schnittstelle empfangen werden. Die Daten werden nicht verändert - ob ASCII oder Binärdaten.
mehr
MR2: RS232 mit Zeitstempel
Dieses Script speichert RS232 Daten zusammen mit einem Zeitstempel in eine Datei. Die Avisaro Datenlogger Box hat eine eingebaute Echtzeituhr.
mehr
MR3: RS232 / RS485 als Ringspeicher
Dieses Script speichert RS232 / RS485 auf mehrere Datein verteilt. Ist die Speicherkarte voll, wird die älteste Datei gelöscht - so ist eine Endlosaufzeichnung gegeben.
mehr
MR5: RS232 / RS485 Rx/Tx sniffen
Dieses Script speichert jeweils den Rx von zwei RS232 bzw. RS485 Schnittstellen in eine Datei. Damit kann eine RS232 inkl. Millisekunden Zeitstempel "gesniffed" werden.
mehr
Laden von Scripten
Das Modul wird ohne einem vorinstallierten Script ausgeliefert. Zum Laden eines Scriptes stehen mehrere Möglichkeiten zur Verfügung:
- Über eine 'autorun.txt' Datei auf der SD-Karte
- Über die Datenschnittstelle bei deaktiviertem Script
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>" ( 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: Hinweis: Die Dateinamen bestehen aus mindestens 8 Zeichen, davon 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.
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. load wr1-7.txt
run auto
run
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. Nun können Sie über die Schnittstelle Befehle an den Datenlogger senden.
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 ' +++
8. "API"-Programmierschnittstelle
Für den Betrieb an einer programmierbaren Einheit ("Mikrocontroller" oder "SPS") stehen leistungsfähige Befehle zur Verfügung. Damit kann ein externer Mikrocontroller über einen einfachen, aber mächtigen Befehlssatz das Avisaro Produkt steuern: Dateien öffnen, Daten lesen und schreiben, TCP/IP Verbindungen bedienen, etc. Zur Nutzung der Kommando-Schnittstelle darf kein Script ausgeführt werden.
Die API-Programmierschnittstelle setzt entsprechendes Grundlagenwissen voraus. Eine ausführliche Beschreibung der Befehle finden Sie im Avisaro Wiki (
Details).







