Data-Logging in Excel

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Mainhardter
Beiträge: 160
Registriert: 06.10.2008, 17:16

Data-Logging in Excel

Beitrag von Mainhardter » 02.02.2012, 12:38

Hallo,
benutze die Homputer-Studio SW und das History-Programm. Damit sehe ich Temperaturverläufe und Ein-Aus von einigen FS20-Sendern (Kontakgeber).

Wie muss ein Makro aussehen, damit ich meine Records möglichst zeitnah in Excel habe. Würde das auch in "Echtzeit" gehen, wnn ich beispielsweise Excel im Dauerlauf mitlaufen lasse ?
Brauche ich hierzu PHP ?

Was mir am History Programm auffällt, dass zum Beispiel bei den PIR´s ab dem Auslösen ein kontinuierlicher Balken erscheint. Das hängt doch sicherlich damit zusammen, daß ein FS20-Sender keinen Aus-Befehl sendet. Was kann ich da machen ?

Freue mich auf Hilfe
Gruß
Mainhardter

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Data-Logging in Excel

Beitrag von buempi » 03.02.2012, 11:12

Mainhardter hat geschrieben:Wie muss ein Makro aussehen, damit ich meine Records möglichst zeitnah in Excel habe.
Da gibt es verschiedene Wege. Hängt auch davon ab, wie zeitnah das Ganze sein soll. Der einfachste Weg wäre wohl, von Homeputer selbst über SCHREIBEDATEI eine CSV-Datei anlegen zu lassen. Diese kannst du dann umkopieren (damit kein gleichzeitiger Zugriff durch Homeputer und Excel erfolgt) und in Excel öffnen.

Eine CSV-Datei ist eigentlich nichts anderes, als eine Text Datei mit Datenfeldern, die durch ";" getrennt sind. Willst du z.B. eine Tabelle, in welche Homeputer jede volle Stunde die Temperaturen deiner HMS-Sensoren mit Datum und Uhrzeit reinschreibt, legst du ein Makro an, welches jede Stunde ausgeführt wird. Dort benötigst du eine Variable vom Typ Zeichen "SchreibText" und folgende Zeilen:

Code: Alles auswählen

SchreibText := Datum + ";" + Uhrzeit + ";" + Sensor1 + ";" + Sensor2 + ";" + Sensor3
Schreibedatei("Temperaturen.csv",Schreibtext)
Mainhardter hat geschrieben:Würde das auch in "Echtzeit" gehen, wnn ich beispielsweise Excel im Dauerlauf mitlaufen lasse ? Brauche ich hierzu PHP ?
Für "Echtzeit" wäre der Umweg über eine Datei wohl zu langsam. Ich weiss nicht, ob PHP auch COM ("Component Object Model") unterstützt; dann wäre es wohl möglich, die Daten direkt nach Excel zu schreiben. Aber für einen Anfänger bestimmt nicht leicht zu realisieren.

Es wäre auch denkbar in Excel ein Makro zu schreiben, welches regelmässig die Datensätze einliest, die Homeputer in eine Datei schreibt. Da müsstest du dich aber mit Visual-Basic etwas auskennen.
Mainhardter hat geschrieben:Was mir am History Programm auffällt, dass zum Beispiel bei den PIR´s ab dem Auslösen ein kontinuierlicher Balken erscheint. Das hängt doch sicherlich damit zusammen, daß ein FS20-Sender keinen Aus-Befehl sendet. Was kann ich da machen ?
Einfach ganz am Schluss im Makro des Bewegungsmelders ein

Code: Alles auswählen

warte("00:00:05")
Bewegungsmelder ausschalten
einfügen.

Viele Grüsse
Bümpi

Benutzeravatar
Mainhardter
Beiträge: 160
Registriert: 06.10.2008, 17:16

Re: Data-Logging in Excel

Beitrag von Mainhardter » 06.02.2012, 22:06

Hallo Bümpi,

Danke für Deinen Vorschlag. Leider bin ich noch etwas "grün".

Was ich getan habe: Habe unter EINSTELLUNGEN (Schraubenschlüsselsymbol) den Tab Neues Makro gedrück.
Im Editor habe ich dann den Code eingegeben. Als Ausführungsintervall eine Stunde ausgewählt, dann OK gedrückt.
Als ich Ausführen Starten drückte, wurde der Syntaxfehler SchreibText bemängelt.
Hatte mal nur einen Sensor eingegeben.
Was machen die + Zeichen ?
Muß ich ein Verzeichnis noch unter SPG anlegen ?

Bin ich richtig vorgegangen oder fehlt noch was. Kann man die Variablen aus einem Pull-down auswählen ?

Sorry, wenn ich Deine Geduld strapaziere

Danke
Mainhardter

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Data-Logging in Excel

Beitrag von buempi » 07.02.2012, 08:17

Hallo Mainhardter

Der Fehler wegen "SchreibText" kommt daher, dass du vergessen hast, im Makro (unterhalb des Eingabefeldes) eine Variable vom Typ Zeichen anzulegen (hatte ich im letzten Beitrag geschrieben). Die Spalte "Startwert" kannst du leer lassen. - Eine Variable ist etwas wie ein Behälter, wo man was zum Aufbewahren reingeben kann. Je nach dem, was man später reinschreiben will, muss das Programm den "Behälter" unterschiedlich vorbereiten, was man in Homeputer über die "Variablendefinition" macht.
Mainhardter hat geschrieben:Was machen die + Zeichen ?
In diesem Anwendungsfall ist das Plus-Zeichen kein Rechenoperator sondern ein Verknüpfungs-Symbol. In die Variable "SchreibText" wird zuerst das Datum geschrieben, dann wird ein Semikolon als Feld-Trennzeichen für das CSV-Format angehängt (= "verknüpft"), dann kommt die Uhrzeit dazu usw. Angaben, die zwischen Anführungszeichen stehen, sind Zeichenketten, welche später 1:1 in der Variable drin stehen. Wenn aber nur das Wort Datum (ohne Anführungszeichen) dort steht, weiss das Programm, dass es eben nicht dieses Wort, sondern das Ergebnis der Funktion Datum, welche das Tagesdatum zurückgibt, in die Zeichenvariable reinschreiben soll. Die Zeichenkette "SchreibText" stellt schlussendlich eine Textzeile dar, welche dann mit SCHREIBEDATEI() in die spezifizierte Datei geschrieben wird.

Viele Grüsse
Bümpi

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“