ich arbeite hier an einer Wago 750 842, einem kleinen 16Bit Gerät.
An der Wago sitzen einige Sensoren, deren Werte ich mir über TCP an einen PC schicken lassen möchte. Bislang habe ich lediglich einen Sendepuffer für alle angelegt. Sobald ein Sensor seine Werte senden möchte, setzt er einen lock auf den Sendepuffer und kein anderer Sensor kann mehr Werte in den Puffer schreiben.
Jetzt möchte ich aber, das andere Sensoren, die ihre aktuellen Werte nicht einfach verwerfen, wenn der Sendepuffer gelockt ist, sondern das sie warten bis der Puffer wieder frei ist.
Da While-Schleifen in der SPS ja etwas ungünstig sind, möchte ich gerne wissen, wie man ein Programm für eine kurze Zeit schlafen legen kann.
MfG
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2006-03-01
Originally created by: -AB-
Vielleicht ist es unsinn, aber was mir da so spontan einfällt wäre ein extra Task. Der Task könnte Ereignis gesteuert sein und würde nur aufgerufen wenn Werte zum schreiben vorhanden sind und der Buffer zum schreiben freigegeben ist.
Oder für jeden Sensor einen eigenen Buffer und die werden dann in den "Hauptbuffer" geschrieben.
Nur so mein erster Gedanke, vielleicht hilft es ja.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich hab jetzt einen Buffer für die zwei analogen Eingänge der nach 200 Werten versendet wird und einen Buffer für sechs seriellen Klemmen. Deren Buffer wird allerdings versendet, sobald eine Klemme etwas reingeschrieben hat
Gruss
Jan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Guten morgen Forumsgemeinde,
ich arbeite hier an einer Wago 750 842, einem kleinen 16Bit Gerät.
An der Wago sitzen einige Sensoren, deren Werte ich mir über TCP an einen PC schicken lassen möchte. Bislang habe ich lediglich einen Sendepuffer für alle angelegt. Sobald ein Sensor seine Werte senden möchte, setzt er einen lock auf den Sendepuffer und kein anderer Sensor kann mehr Werte in den Puffer schreiben.
Jetzt möchte ich aber, das andere Sensoren, die ihre aktuellen Werte nicht einfach verwerfen, wenn der Sendepuffer gelockt ist, sondern das sie warten bis der Puffer wieder frei ist.
Da While-Schleifen in der SPS ja etwas ungünstig sind, möchte ich gerne wissen, wie man ein Programm für eine kurze Zeit schlafen legen kann.
MfG
Originally created by: -AB-
Vielleicht ist es unsinn, aber was mir da so spontan einfällt wäre ein extra Task. Der Task könnte Ereignis gesteuert sein und würde nur aufgerufen wenn Werte zum schreiben vorhanden sind und der Buffer zum schreiben freigegeben ist.
Oder für jeden Sensor einen eigenen Buffer und die werden dann in den "Hauptbuffer" geschrieben.
Nur so mein erster Gedanke, vielleicht hilft es ja.
eine eigene Routine zum Senden, alle Sensoren schreiben in ein Fifo, die Senderoutine entleert das Fifo.
Hallo,
Danke euch bin schon ein gutes Stück weiter
Ich hab jetzt einen Buffer für die zwei analogen Eingänge der nach 200 Werten versendet wird und einen Buffer für sechs seriellen Klemmen. Deren Buffer wird allerdings versendet, sobald eine Klemme etwas reingeschrieben hat
Gruss
Jan