Hallo Rolf
Ich will mal an dieser Stelle bezüglich eines Problems nachhaken welches User AV schon per Email angesprochen hatte. AV hat bei uns als wissenschaftliche Hilfskraft in einem Projekt bis vorige Woche mitgearbeitet. Jetzt, da er eine andere Stelle hat bin ich am Zuge.
Die Controllerplatine wurde inzwischen umgebaut und anstelle des 90CAN128 von AV werkelt nun ein XMEGA256A3U auf dem Board. Als Ethernetschnittstelle wird ein ENC28J60-H Modul von Olimex eingesetzt. Der Controller hängt per Ethernet direkt am PC, also ohne Switch oder Hub dazwischen. Die Kommunikation zum PC erfolgt über TINA in einem eigenen Prozess. In der Procedur RTCTickSecond wurde sekündlich eine Semaphore gesetzt. Auf diese Semaphore wartet der Prozess, bevor er die zu sendeneden Daten aufarbeitet und zum PC sendet. Das klappt prinzipiell, bleibt aber wie AV shcon beschrieb, irgendwann mal hängen. Wann das Passiert ist unterschiedlich. Ich hatte mit dem XMega eigentlich immer so im Bereich zwischen 600 und 900 Sendungen einen Deadlock. Der Hauptprozess läuft hingegen komplikationsfrei weiter. irgendwas bei TINA muss da den Prozess blockieren.
Und nun zu meiner Lösung des Problems.
Jetzt habe ich in RTCTickSecond mal einen Zähler eingebaut der nun nur alle 2 Sekunden die Semaphore setzt. Der Rest des Codes ist gleich geblieben. Der Sendeprozess startet nun auch nur alle 2 Sekunden und siehe da es läuft deutlich länger.
Ich checke gerade wie lange es durchhält.
Warum das allerdings so ist kann ich nicht nachvollziehen.
Könnte es sein, dass die Parameter
Timeout:=500; und
RetryCount:=2; in der Initialisierung der Sockets bei sekündlichen Aufrufen von TinaSendPackage probleme machen?
Ich will mal an dieser Stelle bezüglich eines Problems nachhaken welches User AV schon per Email angesprochen hatte. AV hat bei uns als wissenschaftliche Hilfskraft in einem Projekt bis vorige Woche mitgearbeitet. Jetzt, da er eine andere Stelle hat bin ich am Zuge.
Die Controllerplatine wurde inzwischen umgebaut und anstelle des 90CAN128 von AV werkelt nun ein XMEGA256A3U auf dem Board. Als Ethernetschnittstelle wird ein ENC28J60-H Modul von Olimex eingesetzt. Der Controller hängt per Ethernet direkt am PC, also ohne Switch oder Hub dazwischen. Die Kommunikation zum PC erfolgt über TINA in einem eigenen Prozess. In der Procedur RTCTickSecond wurde sekündlich eine Semaphore gesetzt. Auf diese Semaphore wartet der Prozess, bevor er die zu sendeneden Daten aufarbeitet und zum PC sendet. Das klappt prinzipiell, bleibt aber wie AV shcon beschrieb, irgendwann mal hängen. Wann das Passiert ist unterschiedlich. Ich hatte mit dem XMega eigentlich immer so im Bereich zwischen 600 und 900 Sendungen einen Deadlock. Der Hauptprozess läuft hingegen komplikationsfrei weiter. irgendwas bei TINA muss da den Prozess blockieren.
Und nun zu meiner Lösung des Problems.
Jetzt habe ich in RTCTickSecond mal einen Zähler eingebaut der nun nur alle 2 Sekunden die Semaphore setzt. Der Rest des Codes ist gleich geblieben. Der Sendeprozess startet nun auch nur alle 2 Sekunden und siehe da es läuft deutlich länger.
Ich checke gerade wie lange es durchhält.
Warum das allerdings so ist kann ich nicht nachvollziehen.
Könnte es sein, dass die Parameter
Timeout:=500; und
RetryCount:=2; in der Initialisierung der Sockets bei sekündlichen Aufrufen von TinaSendPackage probleme machen?