Laufzeitverhalten eines WLan-Moduls

Parameter

NameWert
Minimale Zykluszeit
(minCycleWaittime)
ms
Maximale Zykluszeit
(maxCycleWaittime)
ms
Range

Inhalt

Tabelle mit ungefähren Werten

TickZykluswartezeit in ms
(delaytime)
LaufzeitintervalGesamte LaufzeitWenn Anfrage kommt,
wird Tick verringert um
0
(Performance)
20 s0 s0
8738133:38 min3:38 min1747
17476245:05 min8:44 min3495
26214356:33 min15:17 min5242
34952468:00 min23:18 min6990
43690579:27 min32:46 min8738
524286810:55 min43:41 min10485
611667912:22 min56:04 min12233
6990481013:50 min69:54 min13980
7864291115:17 min85:11 min15728
8738101216:44 min1:41:56 h17476
9611911318:12 min2:00:08 h19223
10485721419:39 min2:19:48 h20971
11359531521:07 min2:40:55 h22719
12233341622:34 min3:03:30 h24466
13107151724:01 min3:27:31 h26214
13980961825:29 min3:53:00 h27961
14854771926:56 min4:19:57 h29709
15728582028:23 min4:48:21 h31457
16602392129:51 min5:18:12 h33204
17476202231:18 min5:49:31 h34952
18350012332:46 min6:22:17 h36700
19223822434:13 min6:56:30 h38447
20097632535:40 min7:32:11 h40195
20971442637:08 min8:09:20 h41942
21845252738:35 min8:47:55 h43690
22719062840:02 min9:27:58 h45438
23592872941:30 min10:09:28 h47185
24466683042:57 min10:52:26 h48933
25340493144:25 min11:36:51 h50680
26214303245:52 min12:22:44 h52428
27088113347:19 min13:10:04 h54176
27961923448:47 min13:58:51 h55923
28835733550:14 min14:49:06 h57671
29709543651:42 min15:40:48 h59419
30583353753:09 min16:33:57 h61166
31457163854:36 min17:28:34 h62914
32330973956:04 min18:24:38 h64661
33204784057:31 min19:22:10 h66409
34078594158:58 min20:21:08 h68157
34952404260:26 min21:21:35 h69904
35826214361:53 min22:23:28 h71652
36700024463:21 min23:26:50 h73400
37573834564:48 min24:31:38 h75147
38447644666:15 min25:37:54 h76895
39321454767:43 min26:45:37 h78642
40195264869:10 min27:54:48 h80390
41069074970:37 min29:05:26 h82138
41942885072:05 min30:17:31 h83885
42816695173:32 min31:31:04 h85633
43690505275:00 min32:46:04 h87381
44564315376:27 min34:02:31 h89128
45438125477:54 min35:20:26 h90876
46311935579:22 min36:39:49 h92623
47185745680:49 min38:00:38 h94371
48059555782:17 min39:22:55 h96119
48933365883:44 min40:46:40 h97866
49807175985:11 min42:11:51 h99614
50680986086:39 min43:38:31 h101361
51554796188:06 min45:06:37 h103109
52428606289:33 min46:36:11 h104857
5330241631:31:01 h2 d, 0:07:12 h106604
5417622
(Startpunkt)
641:32:28 h2 d, 1:39:41 h108352
4294967294
(end of life,
Tick wird auf Startpunkt gesetzt.)
648 a, 255 d, 10:39:39 h8 a, 257 d, 12:19:20 h85899345

Diese Tabelle gibt an, wie sich das WLan-Modul verhält, wenn es in der Vollast war und keine weiteren Anfragen erfolgen.

Rot dargestellte Werte stellen sehr gute Performance des Moduls dar. Allerdings kann hier die benötigte elektrische Leistungsaufnahme des Moduls bis zu 0,5 W betragen.

Grün dargestellte Werte bedeuten geringen Energieverbrauch bei akzeptabler Performance. Die benötigte elektrische Leistungsaufnahme des Moduls beträgt hier etwa 0,1 W.

Blau dargestellte Werte bedeuten zwar auch einen geringen , aber nicht wirklich wenigeren, Energieverbrauch, aber es kann nerven, weil Wartezeiten aufgrund der schlechten Performance bei TCP-Anfragen auftreten können.

Bei einem Neustart des Moduls, wird der Wert für Tick (linke Spalte) auf den Wert gesetzt, der den Zusatz (Startpunkt) hat (vorletzte Zeile). Somit startet das Modul mit größtmöglichem Energiesparen. Kommen gültige TCP-Anfragen, wird Tick um den Wert in der rechten Spalte verringert. Somit verkürzt sich die Zykluszeit, die Performance steigt.

Inhalt

Erläuterungen zu den Parametern

Die 3 Parameter bilden eine Gemeinschaft, eine Symbiose. Wird einer dieser 3 Parameter verändert, ändert sich das gesamte Laufzeitverhalten des WLan-Moduls.

Was ist ein Zyklus?

Ein Zyklus ist ein Programmdurchlauf auf dem ESP8265. Ist dieser Durchlauf beendet, wird der nächste Programmdurchlauf gestartet. Das ist das Grundverhalten eines ESP8265.

Was passiert bei einem Programmdurchlauf eines WLan-Moduls?

  1. Nacheinanderes Prüfen aller 8 TCP-Kanäle, ob Verbindungen vorhanden sind oder ankommen
  2. Falls Daten empfangen wurden, Daten auseinander dröseln
  3. Aufgrund der gedröselten Daten entsprechende Aktionen ausführen
  4. Rückmeldungen über Erfolg oder abfragenden Daten auf den entsprechenden Kanälen senden
  5. Ggf. unterbrochene Verbindungen beenden
  6. Errechnen der nächsten Zykluswartezeit (delaytime)
  7. Gestartete Hintergrundaktivitäten ausführen (Blinken, Flackern, usw.)
  8. Zykluswartezeit (delaytime) warten

Das sehr häufige Empfangen von TCP-Daten, deren Auswertungen und das Senden der Antworten sind schon schwer für die kleine Hardware. Kommen dabei noch Zugriffe auf GPIOs (Ausgänge), wird es nochmal schwerer.

Ein ESP8265 ist nicht mit einem leistungsfähigen Computer zu vergleichen, die Hardware ist für wenige einfache Sachen ausgelegt. Deshalb spielt der 8. Punkt eine wichtige Rolle für die Stabilität des WLan-Moduls.

Minimale Zykluszeit (minCycleWaittime)

MinCycleWaittime gibt die möglichst kurze Wartezeit zwiischen den Zyklen in Millisekunden an.

Dieser Parameter darf Ganzzahlwerte von 0 bis 1024 besitzen.

Empfohlene Werte sind von 2 bis 8.

Setzt man diesen Wert auf 0 und stresst man das Modul mit Anfragen, kann es sein, dass das Modul sagt:"Hey Alter, ich will nicht mehr."

Der Wert 1 wird ignoriert und als 0 genutzt, da der Aufruf des Wartens länger als 1 ms dauert.

Maximale Zykluszeit (maxCycleWaittime)

MaxCycleWaittime gibt die maximale Wartezeit in Millisekunden an, die das Modul zwischen den Zyklen warten darf.

Dieser Wert darf als Ganzzahl von 4 bis 65535 betragen, muss aber größer als der Wert von minCycleWaittime sein..

Empfohlene Werte für normale Nutzer sind hier 32 bis 256.

Range, Größe des dynamischen Bereiches

Der Range-Wert gibt an, wie oft der dynamische Bereich in die mathematische Lebenszeit (etwa 4,2 Mrd Ticks) des WLan-Moduls hineinpasst. Das ist erst mal schwer zu verstehen.

Mit diesem Wert gibt man an, wie schnell sich das Modul auf die Bedürfnisse des Nutzers einstellt.

Nutzt man hier den minimalen Wert von 2, stellt es sich sehr sehr langsam auf die Bedürfnisse ein.

Nutzt man den maximalen Wert von 65535, stellt es sich sehr schnell auf Bedürfnisse ein, wird aber auch bei Nichtbenutzung sehr schnell wieder langsamer.

Werte von 200 bis 8000 sind meist sinnvoll.

Inhalt