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 

Graph aus VISA



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!

22.06.2012, 09:59
Beitrag #161

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Graph aus VISA
(22.06.2012 08:29 )Diabolik666 schrieb:  Also mein Problem liegt darin, dass ich nichts habe was ich an das Shift Register anschließen könnte damit es initialisiert wäre?

Und wegen RaceCondition: Am besten die lokale Variable nicht verwenden oder anderst positionieren ? Wenn ich sie nicht verwende, könnte ich stattdessen probieren mit VISA read einfach den Wert auszulesen , dann müsste ich doch beim wandeln VI nicht mehr den String parsen , jedoch habe ich es bereits so mal versucht ohne Erfolg ?
Es wäre gut wenn das jemand mal so versuchen könnte.

Wenn loklale Variablen eine Racekondition bewirken bedeutet das IMMER, das sie unnötig sind. Lokale Variablen sind NICHT gedacht um Wires zu sparen. Eine solche Verwendung der lokalen Variablen hat fast immer Race Konditions zur Folge. Du kannst die lokalen Variablen dann zwar meist mit extra Sequenzframes davor behüten um in falscher Reihenfolge gelesen und geupdated zu werden, aber die sinnvollere Variante ist fast immer, um die lokalen Variablen ganz schnell wegzuschmeissen und durch explizite Wires zu ersetzen. LabVIEW ist Dataflow und das ist das Basisprinzip auf dem die Diagrammlogik aufbaut. Deshalb sollte man auch Dataflow verwenden wann immer das geht. Das ermöglicht LabVIEW um effizienter zu sein (lokale Variablen verursachen meist extra Datenkopien), und bringt auch eine eindeutige Logik in den Programmablauf.

Grundsätzlich können in LabVIEW Dinge die nicht durch Wires voneinander abhängig sind, in absolut beliebiger Reihenfolge durch LabVIEW abgearbeitet werden. Das ist grossartig für automatisches Paralleliseren von Codeteilen, aber ein Alptraum für Code der eine bestimmte Ablauflogig folgen sollte, die aber durch lokale (oder globale Variablen) völlig ausgehebelt 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
22.06.2012, 10:13
Beitrag #162

Diabolik666 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 166
Registriert seit: May 2012

8.2
-
DE



RE: Graph aus VISA
Also ich habe nun das Register entfernt und die lokale Variable ebenfalls und das Problem, dass die Werte nicht übereinstimmen (also von read string und dem Wert der nachher in der subVI ankommt) besteht weiterhin.
Schaut euch bitte mal diese Version an und gebt mir Ratschläge woran es liegen könnte und wie ich es beheben könnte?


Angehängte Datei(en)
8.2 .vi  wandeln alternative ohne register.vi (Größe: 26,68 KB / Downloads: 89)

8.2 .vi  LMG95_Driver_Demo analog ohne lokale variable.vi (Größe: 343,69 KB / Downloads: 92)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.06.2012, 10:32
Beitrag #163

Diabolik666 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 166
Registriert seit: May 2012

8.2
-
DE



RE: Graph aus VISA
okay ich habe nun das ganze in eine Sequenzstruktur gepackt nun tut es, jedoch muss ich nun noch schauen wie ich den Werten einen Namen gebe und Einheit.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.06.2012, 12:38
Beitrag #164

Diabolik666 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 166
Registriert seit: May 2012

8.2
-
DE



RE: Graph aus VISA
Also habe schon wieder ein Problem:
Mit Signalverlaufsattribute festlegen müsste ich doch eigentlich einen Namen zuordnen können? Dazu habe ich einfach an den Eingang eine Konstante AC-Voltage drangehängt.
Ich habe es also genauso gemacht wie in dem SubVI "ZES LMG95.lvlib:WDT add MSC-attribute Channel DBL rev 2-0.vi", nur dass ich Attribute SubVI weggelassen habe und für den Eingang Name einfach eine Variable dran gehängt habe.
Wieso funktioniert das nicht auch so ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.06.2012, 12:57 (Dieser Beitrag wurde zuletzt bearbeitet: 22.06.2012 12:58 von GerdW.)
Beitrag #165

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Graph aus VISA
Hallo Diabolik,

hast du dir mal das Attribute-subVI genau angeschaut? Es hatte schon seinen Sinn und Zweck!

NI verwaltet Signalattribute unter genau festgelegten Namen (bzw. "Tags"). Wenn du dem Signal also einen Namen zuweisen willst, musst du das passende Tag anlegen. Und genau dafür gab es dieses subVI...

Programmieren hat viel mit Nachdenken zu tun. Dagegen einfach etwas zu löschen hat nicht viel mit Nachdenken zu tun...

Liest du eigentlich auch, was man dir so alles schreibt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.06.2012, 13:20
Beitrag #166

Diabolik666 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 166
Registriert seit: May 2012

8.2
-
DE



RE: Graph aus VISA
Ja und weil es so viel mit Nachdenken zu tun hat habe ich das auch bereits schon gemacht und folgendes SubVI erstellt (siehe Anhang).
Diese müsste nun eigentlich funktionieren tut sie aber wieder nicht , Gerd kannst du es dir mal anschauen und mir Tipps geben?


Angehängte Datei(en)
8.2 .vi  Globale Variable 2.vi (Größe: 4,43 KB / Downloads: 110)

8.2 .vi  wandeln und namen.vi (Größe: 34,75 KB / Downloads: 95)

8.2 .vi  LMG95_Driver_Demo analog tut nicht.vi (Größe: 343,59 KB / Downloads: 96)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.06.2012, 14:32
Beitrag #167

Diabolik666 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 166
Registriert seit: May 2012

8.2
-
DE



RE: Graph aus VISA
Okay habe das Problem behoben, beim Eingang "Name" muss "NI_ChannelName" stehen, sonst funktioniert es nicht, bei "Wert" steht dann der Name.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 14:28
Beitrag #168

Diabolik666 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 166
Registriert seit: May 2012

8.2
-
DE



RE: Graph aus VISA
Ein Problem habe ich noch und zwar verstehe ich nicht wieso seitdem ich im Case unter Cont.Measure die while Schleife eingefügt habe in der die Messwerte kontinuierlich gemessen werden (also da wo die ganzen SubVIs sind und anschließend visa read) lässt sich das Programm nicht mehr "disconnecten" , also im VI ist ja eine Funktion im Case Disconnect vorhanden die den Port wieder freigeben soll. Beim disconnecten kommt immer eine Fehlermeldung. Die While Schleife wird aber anscheinend beendet da ich eine String Anzeige gemacht habe und beobachten kann, sobald ich aus dem Case Cont. Measure rausgehe beendet sich auch die wile Schleife weil die Werte nicht mehr aktualisiert werden.
Wenn ich das Programm über close beende kommt keine Fehlermeldung. Hat jemand einen Tipp für mich woran das liegen könnte ?
Ich habe nochmal die neuste Version von dem Programm angehängt


Angehängte Datei(en)
8.2 .vi  LMG95_Driver_Demo Name tut.vi (Größe: 363,69 KB / Downloads: 89)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 15:23 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2012 15:23 von GerdW.)
Beitrag #169

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Graph aus VISA
Hallo Diabolik,

Zitat:also im VI ist ja eine Funktion im Case Disconnect vorhanden die den Port wieder freigeben soll. Beim disconnecten kommt immer eine Fehlermeldung.
Woher weiß diese Funktion, welchen Port sie schließen soll?
Hast du mal überprüft (per Debugging), welchen Port diese Funktion den schließen will?
Welche Fehlermeldung bekommst du denn überhaupt?

Warum nimmst du nicht einfach ein normales VISA-Close, welches du mit dem Tunnel vom VISA-Open links von der Schleife verbindest?

Du musst immer daran denken:
- Ich habe nicht die subVIs zur Verfügung.
- Ich habe nicht die Hardware zur Verfügung.
- Dein BD ist viel zu groß für vernünftiges Debugging.
- Deine Beschreibung sind auch leider etwas vage...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.07.2012, 10:06 (Dieser Beitrag wurde zuletzt bearbeitet: 10.07.2012 10:16 von Diabolik666.)
Beitrag #170

Diabolik666 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 166
Registriert seit: May 2012

8.2
-
DE



RE: Graph aus VISA
Hallo Gerd, du hast doch gesehen wie ich meine Synchronisierung aufgebaut habe.
Ich habe die Messwertabfrage vom einem Messgerät mit der Messwertabfrage vom anderem Messgerät in eine Sequenzstruktur gesteckt und eine parallel gemacht.
Nun habe möchte ich den Wirkungsgrad einer Maschine bestimmen und dafür benötige ich die abgegebene mechanische Leistung die ich vom Messgerät über die Drehzahl und das Drehmoment bestimme. Die Eingangsleistung messe ich mit einem anderem Messgerät. Nun möchte ich diese Abfrage ebenfalls synchronisieren, jedoch ist es nicht möglich, dass ich einfach alle 3 SubVIs (Drehmoment, Drehzahl, Leistung) in eine Sequenzstruktur packe und diese 3 parallel mache, da dabei Fehler auftreten weil ich die 2 Drähte für VISA nicht einfach verbinden kann. Ich hoffe du kannst mir folgen , hast du dafür einen Vorschlag ?

Ich habe einen Screenshot angehängt und bei diesem möchte ich praktische dass SubVI 1 und 2 parallel zu dem SubVI darüber ausgeführt werden.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: