LabVIEWForum.de - Softwarestrukturprobleme

LabVIEWForum.de

Normale Version: Softwarestrukturprobleme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Rainito

Ich glaube, in deinem Falle wird es schwierig zu helfen. Die Strukturen, die du brauchst, um deine Aufgabe optimal zu lösen, kann man in einen Forum nicht rüberbringen.

' schrieb:Hab mir die funktionalen globalen Variablen angeschaut. Scheint mir nicht das richtige für mich zu sein
Sind es aber.
Mach mal ein FGV pro Globaler Variable (SubVI mit Schieberegister in While-Schleife und zwei Cases: "Set", "Read"). Damit kannst du dann jede dieser Globalen Variablen ersetzen: "GV lesen" => "Read FGV" ... (Siehe Muster).

Zitat:Ihr würdet mir sehr helfen wenn Ihr mir ein ganz ganz grobes Strukturkonzept zeigt, in dem ich die verschiedenen Prüfstände autark bedienen kann und die alle gemeinsam 2 Eingangscluster (Überwachung Prüfraum und Grenzwerte Raumtemperatur) haben.
Genau das geht in einem Forum in deinem Falle nicht.
Hier was auch nur im Ansatz Passendes zusammenzubauen macht so viel Aufwand, da hat hier im Forum wahrscheinlich keiner Zeit für.

Nach den FGVs musst du dich mit Melder/Queue befassen. Ohne geht hier gar nichts.

Dann musst du ein SubVI zur Steuerung eines Prüfstandes machen, das keine FP-Bedienung braucht! Dieses SubVI wird durch Queues gesteuert und läuft autark im MainVI. Wenn dieses SubVI richtig läuft und fertig ist, werden bestimmte SubVIs innerhalb dieses SubVIs als reentrant definiert und mehrfach ausgeführt. Durch diese reentranten SubVIs ist es dann möglich, mehrere Prüfstande parallel zu betreiben. (ggf. wird das ganze SubVI als reentrant definiert und mehrfach ausgeführt).

Dann brauchst du ein SubVI, das das FP für alle Steuer-SubVIs darstellt. Hier werden die Queues beschrieben, die in den Steuer-VIs ausgelesen werden. Dieses SubVI läuft ebenfalls im MainVI und parellel zu allen Steuer-SubVIs.

Außerdem musst du bedenken, dass die Queues, die zum Steuern notwendig sind, in einem Array liegen. Dieses Array hat soviele Indices, wie Prüfstände laufen sollen. Die Queues in Index 0 entsprechen also dem Prüfstand 1 usw.


So mach ich das gerade.
' schrieb:Nach den FGVs musst du dich mit Melder/Queue befassen. Ohne geht hier gar nichts.

Dann musst du ein SubVI zur Steuerung eines Prüfstandes machen, das keine FP-Bedienung braucht! Dieses SubVI wird durch Queues gesteuert und läuft autark im MainVI. Wenn dieses SubVI richtig läuft und fertig ist, werden bestimmte SubVIs innerhalb dieses SubVIs als reentrant definiert und mehrfach ausgeführt. Durch diese reentranten SubVIs ist es dann möglich, mehrere Prüfstande parallel zu betreiben. (ggf. wird das ganze SubVI als reentrant definiert und mehrfach ausgeführt).

Dann brauchst du ein SubVI, das das FP für alle Steuer-SubVIs darstellt. Hier werden die Queues beschrieben, die in den Steuer-VIs ausgelesen werden. Dieses SubVI läuft ebenfalls im MainVI und parellel zu allen Steuer-SubVIs.

Außerdem musst du bedenken, dass die Queues, die zum Steuern notwendig sind, in einem Array liegen. Dieses Array hat soviele Indices, wie Prüfstände laufen sollen. Die Queues in Index 0 entsprechen also dem Prüfstand 1 usw.
So mach ich das gerade.

Genau das habe ich doch mit meiner Tasking Library gemeint. Die Queues & Co. sind schön in einen Arraycluster verpackt.
' schrieb:Genau das habe ich doch mit meiner Tasking Library gemeint. Die Queues & Co. sind schön in einen Arraycluster verpackt.


Hallo,

nochmal danke für eure Tips.....hab mich jetzt doch mit Queue´s und Meldern beschäftigt....und mach jetzt eine Datenverarbeiten zwischen den VI´s über Melder. Zumindest erscheint mir das als richtig, da ich immer nur den aktuellsten Wert brauche und nicht ein Puffer von den letzten Werten. Somit benötige ich jetzt nur 3 globale variablen die ich natürlich am Anfang initialisiere und nur einmal schreibe und sonst nur lese. Finde das nicht zu schlecht programmiert. oder?

Mit den verschiedenen Prüfständen bin ich echt noch am überlegen.....am besten wär natürlich schon ein SubVI für alle prüfstände dass ich je nach prüfstandauswahl dementsprechend aufruf und die passenden parametern und Kanäle übergebe. Mal schauen ob ich das noch hinbekomme oder ob ich es als 1. Lösung zuerst mal einzeln in Whileschleifen programmier und später optimier. Das Problem ist einfach dass ich nur ein begrenztes Zeitfenster für dieses Projekt zur Verfügung habe.

Jetzt wollt ich nur noch fragen....für den Prüfablauf...Button-Abfrage und die dementsprechenden Handlungen wär ich mit einem Zustandsautomat an die Problematik rangegangen....das dürfte doch für die vielen verschiedenen Zustände in meinem Programm genau richtig sein oder?

Ich stell noch meine überarbeiteten VI´s mit Melder rein. Mich würd es interessieren ob ihr den Programmierstil arg grausam haltet??
Ist noch voll im Entwurf....also nicht zu harte Kritik!! :-)

Gruß Rainito
' schrieb:Genau das habe ich doch mit meiner Tasking Library gemeint.
Aber nicht so schön beschrieben wie ich. Wink-2


' schrieb:Das Problem ist einfach dass ich nur ein begrenztes Zeitfenster für dieses Projekt zur Verfügung habe.
Das ist auch immer so ein Punkt: Woher wissen, wie lange was dauert und welchen Aufwand es macht, wenn man die Sache noch nie gemacht hat.

Zitat:Jetzt wollt ich nur noch fragen....für den Prüfablauf...Button-Abfrage und die dementsprechenden Handlungen wär ich mit einem Zustandsautomat an die Problematik rangegangen....das dürfte doch für die vielen verschiedenen Zustände in meinem Programm genau richtig sein oder?
Statemachines sind nie falsch.

Offtopic2
Das mit dem Zitieren ist ne gute Sache: mehrere Zitate anklicken und schon kann man auf mehrere Posting gleichzeitig antworten. Top1
' schrieb:Finde das nicht zu schlecht programmiert. oder?
Passt soweit.

Zitat:Mich würd es interessieren ob ihr den Programmierstil arg grausam haltet??
Arg grausam ist, dass das Prüfstand-FP größer ist als mein Bildschirm. Noch grausamer ist, dass die Wires total kreuz und quer sind. Gerade von links nach rechts gefällt mir gut.
Seiten: 1 2
Referenz-URLs