Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Zykluszeiten einhalten Kategorie: CAN-Bus (von reneforster - 28.01.2009 19:16)
Als Antwort auf Zykluszeiten einhalten von Tobias - 28.01.2009 14:40
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-ReglerBoard, OSOPT V3.1
Hallo Tobias,

> habe eine Frage zum Zyklischen Senden über CAN. Ich muss eine Zykluszeit von ca. 20ms einhalten,
> weil die Botschaft von einem Gateway geroutet wird.

Musst Du jetzt eigentlich mind. 20ms Pause oder ein genaues Zeitfenster einhalten?


> Nur wei? ich nicht, wie ich diese einhalten kann,
> weil das Senden zwischen 3-6ms dauert, auch manchmal über 10 ms und ich so keine Wartezeit mit
> sleep generieren kann. Vielen Dank schonmal im Vorraus für eure Hilfe.

Ich denke mal, der Zusammenhang liegt im Programm bzw. generell beim Multithreading. Da kannst Du
leider nicht genau bestimmen, wenn der "Sendethread" abgearbeitet wird. Eventuell wird das Ergebniss
etwas besser, wenn dein "Sendethread" mit hoher Prio läuft und die anderen Threads mit niegriger Prio.
Des Weiteren in diesen Fall die Anzahl der Theads verringern.

Aber das ist halt beim Multithreading alles nur Kosmetik.

Weitere Ansätze wären im Sendethread nicht mit sleep zu arbeiten, sondern den freilaufenden Systemtimer
abzufragen und ein Sendevorgang erst nach Ablauf von xx ms zu beginnen.

So würde ich jedenfalls mal beginnen, um ein genaueres Intervall zu erhalten.
Wie genau muss das denn eigentlich sein?


Rene


    Antwort schreiben


Antworten:

Re: Zykluszeiten einhalten (von Tobias - 29.01.2009 11:07)