INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Remote Control von RT-Targets



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

02.12.2009, 08:45
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Remote Control von RT-Targets
Je nachdem wie intelligent Du die TCP/IP Kommunikation machst kann dasselbe auch da passieren. Selber verwende ich im Programm fast ausschliesslich intelligente globale Variablen, und da erübrigt sich das Problem beinahe von selbst.

Dass Du mit der Shared Variable allerdings den Effekt bekommen kannst, dass Du im Target Teil des alten Wertes und Teil des neuen Wertes liest wenn dieser gerade angepasst wird scheint mir eigentlich allenfalls vor Arrays oder Strings überhaupt eine Möglichkeit. Ich bin sicher die Shared Variablen machen sowas wie Transaction Control dass das nicht passieren kann, sofern die Updateoperation nicht in mehrere seperate Schreibzugriffe auf verschiedene Teile eines Arrays ausgeführt wird (was glaub ich bei Shared Variablen nicht mal geht).

Echte Race Conditions sind aber jederzeit möglich sobald man von mehr als einem Ort auf eine bestimmte Resource schreibend (und lesend) zugreift. Da macht das nichts aus ob das eine Shared Variable ist, oder etwas anderes. Mit einer intelligenten globalen Variable hat man dabei noch die besten Chancen um das kontrolliert und sicher zu kapseln.

(Für alle die noch nicht wissen was eine intelligente globale Variable ist: Das ist ein VI mit einer Loop mit uninitialierten Schieberegistern und darin ein Case der mit einem (Enum)Selektor verbunden wird. Jeder Case ist eine Operation auf die Daten in dem oder den Schieberegistern. Was diese Operationen jeweils tun ist ganz der Fantasie des Programmieres überlassen. Das Ziel dabei ist um soviel möglich auf Get und Set Methoden zu verzichten und die jeweiligen Get/Modify/Set Operation als atomare Operation innerhalb eines Cases zu implementieren. Durch das automatische arbitrieren von VI Aufrufen in LabVIEW, wenn dieses von mehreren Stellen angerufen wird, ist jederzeit sichergestellt, das eine solche Operation atomär, und ohne Unterbrechung durch andere Operationen auf die Daten, ausgeführt wird.)

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Remote Control von RT-Targets - MichaDu - 26.08.2008, 10:42
Remote Control von RT-Targets - RioRio - 30.11.2009, 11:43
Remote Control von RT-Targets - cb - 30.11.2009, 20:18
Remote Control von RT-Targets - RioRio - 01.12.2009, 14:35
Remote Control von RT-Targets - rolfk - 02.12.2009 08:45

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Remote Panel Lizenzen monoceros84 4 7.366 22.01.2008 15:32
Letzter Beitrag: rolfk
  Öffnen einer Webseite aus dem Remote Panel heraus monoceros84 0 4.306 18.10.2007 15:25
Letzter Beitrag: monoceros84
  Geschwindigkeit von Desktop RT Targets the_j 10 14.618 08.10.2007 08:59
Letzter Beitrag: monoceros84
  LabVIEW RT - Remote Update Support Robi Biswas 0 6.462 25.02.2005 10:25
Letzter Beitrag: Robi Biswas

Gehe zu: