28.09.2011, 20:58
Hallo,
mein Programm besteht aus:
1) UI-Thread (Eventstruktur - Timeout pollt Fehlerspeicher mit 4 Hz)
2) Ablaufsteuerung (Zustandsautomat, wird über Melder gesteuert)
3) SPS-Thread (Polling)
4) CAN-Thread (Polling und anschließend ggf bissle bidirektionale Kommunikation)
5) DAQ AI, 6) DAQ DO, 7)+8) DAQ CI 9) DAQ AO
Alles parallele Schleifen im MainVI, außer die ganzen DAQ Tasks, die starte ich über VI-Server (aber das macht ja keinen Unterschied). Läuft sehr gut. Auch im Vollbetrieb (alles quatscht und misst und schreibt plus Darstellung) - CPU-Last unter 20%. Prima.
Bei der anderen Maschine ist alles identisch (Programm und Hardware komplett gleich - Ok, Programm ist eine leichte Variation) nur ein popeliger Counter Task mehr und schon streiken einige Stellen. Z.B. beim lesen der CAN-Botschaften bekomme ich von der Funktion kein "rcv Queue emty" (weil zu langsam gelesen wird) und die Schleife liest sich ein Wolf. Schmeiße ich testweise irgendeinen DAQ Task raus (egal welchen) rennt wieder alles in gewohnt stoischer Gelassenheit.
Kann es denn echt sein, dass 9 Tasks locker bewältigt werden aber der 10. dann plötzlich das ganze Kartenhaus zum einstürzen bringt? Ich kann mich an Posts von "IchSelbst" erinnern wo er meint er lässt locker 20-30 Threads laufen.
PC issn Siemens Industrie Rechner (DualCore), Windows XP. (Guck morgen mal genauer falls relevant, weiß jetzt nicht mehr auswendig an Hardware).
Kommentar?
Gruß
mein Programm besteht aus:
1) UI-Thread (Eventstruktur - Timeout pollt Fehlerspeicher mit 4 Hz)
2) Ablaufsteuerung (Zustandsautomat, wird über Melder gesteuert)
3) SPS-Thread (Polling)
4) CAN-Thread (Polling und anschließend ggf bissle bidirektionale Kommunikation)
5) DAQ AI, 6) DAQ DO, 7)+8) DAQ CI 9) DAQ AO
Alles parallele Schleifen im MainVI, außer die ganzen DAQ Tasks, die starte ich über VI-Server (aber das macht ja keinen Unterschied). Läuft sehr gut. Auch im Vollbetrieb (alles quatscht und misst und schreibt plus Darstellung) - CPU-Last unter 20%. Prima.
Bei der anderen Maschine ist alles identisch (Programm und Hardware komplett gleich - Ok, Programm ist eine leichte Variation) nur ein popeliger Counter Task mehr und schon streiken einige Stellen. Z.B. beim lesen der CAN-Botschaften bekomme ich von der Funktion kein "rcv Queue emty" (weil zu langsam gelesen wird) und die Schleife liest sich ein Wolf. Schmeiße ich testweise irgendeinen DAQ Task raus (egal welchen) rennt wieder alles in gewohnt stoischer Gelassenheit.
Kann es denn echt sein, dass 9 Tasks locker bewältigt werden aber der 10. dann plötzlich das ganze Kartenhaus zum einstürzen bringt? Ich kann mich an Posts von "IchSelbst" erinnern wo er meint er lässt locker 20-30 Threads laufen.
PC issn Siemens Industrie Rechner (DualCore), Windows XP. (Guck morgen mal genauer falls relevant, weiß jetzt nicht mehr auswendig an Hardware).
Kommentar?
Gruß