Programmbausteine Limt 8

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #1

    Programmbausteine Limt 8

    Ich habe festgestellt dass max 8 Programmbausteine gleichzeitig laufen können/dürfen.
    Bin ein NewBe, habe einige Fragen:

    Die Meisten beispiele von PicC haben einen Dauerschleife mit 100 ms Sleep. solche können definitiv nur max 8 da sein, verstehe ich.
    Es ind aber auch Beispiele die durchlaufen. Wann werden die Programmbausteine getriggert? Bein Loxon Start, beim Einagangszustandswechsel?
    Solche durchlaufenden Programmbausteine könnten, falls sie nicht konkurieren, mehr als 8 sein?
    Falls mehr als 8 Programmbausteine aktiv sind, wird da ge-queued, oder einfach ignoriert?

    Viele Fragen, hoffentlich weiss es jemand.

    Gruss
  • Jan W.
    Lox Guru
    • 30.08.2015
    • 1498

    #2
    Ich habe einige Programmbausteine mit Pico C bei mir laufen. Es gibt Meinungen im Forum, die sagen, dass nur 7 gleichzeitig laufen. Hab selbst noch nicht getestet, was passiert, wenn man mehr Bausteine konfiguriert, aber ich denke, dass die restlichen Programme gar nicht erst gestartet werden, um die CPU des Miniservers zu "schonen".

    So wie ich es verstanden habe, ist das OS von Loxone nicht preemptive, d.h. es gibt keinen Scheduler, der ein laufendes Programm pausiert und die CPU auf einen anderen Task umschaltet. In Windows 3 und früher war das genauso und ein Fehler in einem Programm hat das ganze System lahmgelegt. Das ist der Nachteil am kooperativen Multitasking. Moderne Betriebssysteme in PCs haben leistungsfähige CPUs, die in der Hardware ein preemptives Multitasking und auch ein Schutz der Speicherbereiche vor überschreiben bzw. lesen durch andere Prozesse (Stichwort Sicherheit). Eine SPS ist aber nicht mit einem PC zu vergleichen und auch ein High-End Router z.B. von Cisco mit IOS läuft mit kooperativem Multitasking. Bei einem OS mit kooperativem Multitasking ist es aber entscheidend für die Stabilität des gesamten Systems, dass die Kontrolle der CPU regelmäßig wieder an das OS zurückgegeben wird.

    Es könnte durchaus sein, dass neben den Sleep-Funktionen auch der Aufruf anderer Funktionen die Kontrolle der CPU an das OS zurückgibt. Die Stream-Funktionen, die ein Timeout von z.B. mehreren Sekunden haben können, machen dies mit Sicherheit.

    Die Programmbausteine werden kurz nach dem Start des Miniservers gestartet und laufen solange, bis sie beendet sind. Man kann zwar Programme ohne Loop schreiben, aber das macht nach meiner Meinung keinen Sinn. Soweit ich weiß, gibt es nicht die Möglichkeit, ein Programm zu starten oder zu resetten. Hast Du hier ein Beispiel?

    Die Funktionen, die Eingänge abfragen liefern sofort ein Ergebnis, d.h. es gibt nicht so etwas wie bei Windows (oder anderen GUIs), wo Tastatur-, Maus oder andere Events bearbeitet werden und nur bei Auslösung so eines Events das Programm CPU Zeit verbraucht.

    Man sollte also die Sleep-Funktionen häufig einsetzen und ggf. mehrere kürzere Sleeps in längeren Schleifen einlegen. Insgesamt sollte man so viele Sleeps einbauen, dass das eigene Programm noch ausreichend schnell die Eingaben verarbeiten kann. Hier muss man etwas experimentieren. Der Monitor gibt eine gute Übersicht, wie viel CPU Zeit das eigene Programm am Ende verbraucht.

    Auch wenn viele User hier im Forum über Pico C meckern, bin ich froh, dass es die Möglichkeit gibt. Die Möglichkeiten für Debugging, Fehlersuche etc. sind allerdings dürftig.

    Gruß Jan
    Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
    Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
    Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
    Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
    Node-RED: IKEA Tradfri

    Kommentar

  • Gast

    #3
    Danke für die ausführliche Antwort.

    Habe gestern schon etwas experimentiert mit meiner Integration von Loxone und HomeMatic Jalousienaktoren und dabei etwas Erfahrung gesammelt.
    Schade dass man bei Miniserver so mit der HW gehadert hat. Das ist aber nicht besser mit der HomeMatic CCU.Die gute Seite von der HomeMatic ist dass man sie auf eine Raspberry Pi laufen kann, die schlechten Seiten will ich nicht aufzählen sonst würde ich nicht Loxone verwenden.

    weiss jemand wie weit sich die HW (CPU, Memory) unterscheidet zwischen MS und MS Go?

    Gruss

    Kommentar

    Lädt...