#fritz#
28.03.2012, 22:08
Ich benutze einen Mega 16 zur Steuerung in einem Wochenendhaus. Die Anlage ist kurz vor Fertigstellung und soll demnächst eingebaut werden.
Der Mega 16 überwacht Türen, Bewegungsmelder, Akkuspannung.... und sendet die Ereignisse seriell an einen Mega 162, der dann ein Modem steuert. Die Ereignisse werden dann per Mail weitergeleitet.
Die Ereignisse (Tür auf, Bewegungsmelder aktiv...) werden als String 20 Zeichen lang, bestehend aus Datum, Uhrzeit und entsprechende Nummern für die Ereignisse gesendet.
Folgendes funktioniert fehlerfrei:
stündliche Übermittlung der Akkuspannung
Meldung wenn Bewegungsmelder aktiv
Meldung wenn Türklinke gedrückt oder Tür geöffnet
Wenn aber der Akku vom Netz nachgeladen wird, dann werden nur 10 oder 11 Zeichen des Strings gesendet. Danach ist Schluß. Die restlichen 9-10 Zeichen fehlen.
Das verstehe ich nicht.
Die Sendung der Daten erfolgt immer aus dem gleichen Unterprogramm "Daten_senden", welches aus den verschiedenen Programmbereichen aufgerufen wird. Die Ereignisnummer (für Akkuladung -> 6) wird an das UP übergeben.
Selbst wenn ich aus dem Programmbereich "Akku laden" direkt sende und auf den Sprung zum Unterprogramm verzichte, dann werden auch nur maximal 11 Zeichen gesendet.
Es macht auch keinen Unterschied ob der fehlerhaften Übermittlung schon mehrere Sendungen vorausgegangen sind oder nicht. Wenn ich sofort nach Programmstart eine Akkuladung simuliere, wird auch nur die Hälfte übermittelt. Ist danach der Bewegungsmelder aktiv, dann läuft alles wie gaplant.
Es ist schwer, so etwas aus der Ferne zu beurteilen. Vielleicht hat jemand eine Idee?
Danke
PS:
Programmiert wird in BASCOM
Zum besseren Verständnis:
Programmschleife:
1. Bewegungsmelder prüfen
aktiv --- > Ereignis = 3, gosub daten_senden
2. Türkontakt prüfen
Tür auf--- > Ereignis = 4, gosub daten_senden
3. Akkuspannung prüfen
<11,8 V--- > Relais einschalten
--- > Ereignis = 6,gosub daten_senden
Schleifenende
Unterprogramm Daten_senden
Print, #1 Datum, Uhrzeit, Ereignis
return
--------------------------------------------------------------------------
1. und 2. Funktioniert, die Daten werden wie gewünscht gesendet
3. funtioniert nicht, nur 10 od. 11 Zeichen werden gesendet
Der Mega 16 überwacht Türen, Bewegungsmelder, Akkuspannung.... und sendet die Ereignisse seriell an einen Mega 162, der dann ein Modem steuert. Die Ereignisse werden dann per Mail weitergeleitet.
Die Ereignisse (Tür auf, Bewegungsmelder aktiv...) werden als String 20 Zeichen lang, bestehend aus Datum, Uhrzeit und entsprechende Nummern für die Ereignisse gesendet.
Folgendes funktioniert fehlerfrei:
stündliche Übermittlung der Akkuspannung
Meldung wenn Bewegungsmelder aktiv
Meldung wenn Türklinke gedrückt oder Tür geöffnet
Wenn aber der Akku vom Netz nachgeladen wird, dann werden nur 10 oder 11 Zeichen des Strings gesendet. Danach ist Schluß. Die restlichen 9-10 Zeichen fehlen.
Das verstehe ich nicht.
Die Sendung der Daten erfolgt immer aus dem gleichen Unterprogramm "Daten_senden", welches aus den verschiedenen Programmbereichen aufgerufen wird. Die Ereignisnummer (für Akkuladung -> 6) wird an das UP übergeben.
Selbst wenn ich aus dem Programmbereich "Akku laden" direkt sende und auf den Sprung zum Unterprogramm verzichte, dann werden auch nur maximal 11 Zeichen gesendet.
Es macht auch keinen Unterschied ob der fehlerhaften Übermittlung schon mehrere Sendungen vorausgegangen sind oder nicht. Wenn ich sofort nach Programmstart eine Akkuladung simuliere, wird auch nur die Hälfte übermittelt. Ist danach der Bewegungsmelder aktiv, dann läuft alles wie gaplant.
Es ist schwer, so etwas aus der Ferne zu beurteilen. Vielleicht hat jemand eine Idee?
Danke
PS:
Programmiert wird in BASCOM
Zum besseren Verständnis:
Programmschleife:
1. Bewegungsmelder prüfen
aktiv --- > Ereignis = 3, gosub daten_senden
2. Türkontakt prüfen
Tür auf--- > Ereignis = 4, gosub daten_senden
3. Akkuspannung prüfen
<11,8 V--- > Relais einschalten
--- > Ereignis = 6,gosub daten_senden
Schleifenende
Unterprogramm Daten_senden
Print, #1 Datum, Uhrzeit, Ereignis
return
--------------------------------------------------------------------------
1. und 2. Funktioniert, die Daten werden wie gewünscht gesendet
3. funtioniert nicht, nur 10 od. 11 Zeichen werden gesendet