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 

Ideen/Meinungen zu modularem Programmaufbau



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!

20.03.2013, 08:38
Beitrag #1

Kasi Offline
LVF-Stammgast
***


Beiträge: 342
Registriert seit: Dec 2010

6 - 2009
2005
DE_EN

79194
Deutschland
Brick Ideen/Meinungen zu modularem Programmaufbau
Hallo liebe Strippenzieher,

in meinem neuesten Mess-Projekt will ich mal eine Thematik umsetzen, an die ich mich bisher nur sehr vorsichtig rangewagt habe: ein "modularer" Programmaufbau.
Einfach gesagt stelle ich mir darunter vor, dem Nutzer eine Fernbedienung, das main vi, vorzugeben, von dem aus er die Möglichkeit hat, verschiedene Programmaspekte (Einstellungen, Messungen und Auswertungen) als separate Fenster aufzurufen.
Die Main soll hierbei als zentraler Knotenpunkt dienen, welche die gesamten Projektdaten enthält und außerdem auch die Kommunikation mit und zwischen den Modulen ermöglicht.
   

Die Kommunikation und der Datentransfer zwischen den Modulen will ich momentan mit Referenzen erledigen. Jedes Modul bekommt eine Referenz auf die Projektdaten des Hauptmoduls, um so Daten aufzurufen, (signalisierend) zu ändern. Das funktioniert soweit in den ersten Tests auch sehr zufriedenstellend.

Meine Frage nun dazu:
Ich sehe ein größeres(?) Problem bzgl. Race-Conditions auf mich zu rasen (haha), d.h. dass ich ab einer gewissen Parallelisierung der Module nicht mehr gewährleisten kann, dass ein Modul gerade die frisch geänderten Daten eines anderen Moduls überschreibt - wie kann ich diesen Fall verhindern, bzw. mein Design verbessern?

Danke für eure Meinungen,
Grüße,
Kasi

If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2013, 09:05
Beitrag #2

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
RE: Ideen/Meinungen zu modularem Programmaufbau
Hallo Kasi,

(20.03.2013 08:38 )Kasi schrieb:  ... d.h. dass ich ab einer gewissen Parallelisierung der Module nicht mehr gewährleisten kann, dass ein Modul gerade die frisch geänderten Daten eines anderen Moduls überschreibt - wie kann ich diesen Fall verhindern, bzw. mein Design verbessern?

ich denke das ist der Anwendungsfall für Semaphoren. Du überprüfst und setzst eine Semaphor bevor Daten bearbeitet werden. Ein weiterer Prozeß, überprüft ebenfalls die Semaphore und bearbeitet die Daten in diesem Fall nicht, erst wenn die Daten wieder freigegeben sind.
Alternativ könnte ich mir auch eine Actionengine vorstellen, in der die Daten gehalten werden.

Grüße
Andreas

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2013, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2013 14:18 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Ideen/Meinungen zu modularem Programmaufbau
Wozu überhaupt Parallelisierung der Module? Ich sehe da einen Widerspruch zwischen deinem Text und deiner Graphik.
Graphik: Du rufst z.B. Modul Messung 1 auf. Erst wenn das beendet wird, ist das Hauptmenü wieder zugängig und es kann von da aus ein anderes Modul angewählt werden. usw.
Die ganzen Datenverwaltungs- Wettlauf- und Synchronisationsprobleme gibt es ja erst beim parallelen Laufen der Module. Welchen Vorteil würde Dir das denn bringen? Und was ist denn der genaue Unterschied sein zwischen Parallelisierung und "einer gewissen Parallelisierung"? Ist das Letzgenannte so etwas wie Ähnliches wie "ein bisschen schwanger" ? Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2013, 13:24
Beitrag #4

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Ideen/Meinungen zu modularem Programmaufbau
Hi Kasi

Denk doch mal über den Einsatz des NI Actor Frameworks nach.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2013, 14:53 (Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2013 14:54 von Kasi.)
Beitrag #5

Kasi Offline
LVF-Stammgast
***


Beiträge: 342
Registriert seit: Dec 2010

6 - 2009
2005
DE_EN

79194
Deutschland
RE: Ideen/Meinungen zu modularem Programmaufbau
Erstmal vielen Dank für das zahlreiche Feedback

@ Lucki:
Zitat:Graphik: Du rufst z.B. Modul Messung 1 auf. Erst wenn das beendet wird, ist das Hauptmenü wieder zugängig und es kann von da aus ein anderes Modul angewählt werden. usw.
Sorry, falls die Grafik missverständlich war, die Pfeile symbolisieren nur die Kommunikation, nicht den Ablauf. Messung 1 kann durchaus laufen, während man parallel die bereits die Auswertung ansieht und durch Parameter entsprechend variiert.
Zitat:Und was ist denn der genaue Unterschied sein zwischen Parallelisierung und "einer gewissen Parallelisierung"? Ist das Letzgenannte so etwas wie Ähnliches wie "ein bisschen schwanger" ?
Ich wollte damit zum Ausdruck bringen, dass nicht alle Module zu jeder Zeit etwas in die Daten schreiben können, so dass nur manche Module echtes "Konfliktpotential" haben. Aber der Einfachheit halber hätte ich wohl lieber einer nur "Parallelisierung" sagen sollen.

@ Andreas:
Zitat:ich denke das ist der Anwendungsfall für Semaphoren. Du überprüfst und setzst eine Semaphor bevor Daten bearbeitet werden. Ein weiterer Prozeß, überprüft ebenfalls die Semaphore und bearbeitet die Daten in diesem Fall nicht, erst wenn die Daten wieder freigegeben sind.
So ein Ampelsystem ist natürlich wirklich eine sinnvolle Lösung des Problems - hab ich noch nie mit gearbeitet, bietet sich hier aber an.
Zitat:Alternativ könnte ich mir auch eine Actionengine vorstellen, in der die Daten gehalten werden.
Auch eine Idee, werde mich aber erstmal am Semaphor versuchen.

@ BNT
Werde ich machen. Sobald ich über die passende LabVIEW-Version verfüge.

If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Suche Ideen für den Aufbau eines neuen Programms TpunktN 4 3.808 17.12.2020 11:23
Letzter Beitrag: MScz
  Probleme mit Queues und Programmaufbau stefan1312 6 5.507 30.10.2018 17:08
Letzter Beitrag: NoWay
  Speicher voll / Programmaufbau yapete 2 4.524 13.12.2016 16:21
Letzter Beitrag: jg
  Ideen für "einfachen" Formelparser hawk72 2 3.634 05.11.2013 18:28
Letzter Beitrag: hawk72
  Ideen zu Frontpanel gesucht (Steuerung Klimakammer), Rezept erstellen dali4u 4 5.336 24.04.2013 12:36
Letzter Beitrag: dali4u
  Erkennung Firmennetzwerk mittels LV (suche Ideen) dali4u 7 6.086 24.06.2012 20:25
Letzter Beitrag: Kiesch

Gehe zu: