LabVIEWForum.de
Counter parallel ausgeben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: Hardware (/Forum-Hardware)
+---- Forum: NI Hardware (/Forum-NI-Hardware)
+---- Thema: Counter parallel ausgeben (/Thread-Counter-parallel-ausgeben)

Seiten: 1 2 3


RE: Counter parallel ausgeben - GerdW - 26.04.2018 09:24

Hallo MRL,

Zitat:Ich hab das Bild nochmals als vorlage genutzt,
Was genau hast du gemacht?

Zitat:es kommt aber die gleiche Meldung.
Welche Meldung? Bisher hast du noch keine (exakt) benannt…

Zitat:bei z.B. digital out hab ich das mit drei Kanälen auch so gelöst, da kommt kein Fehler.
Was bedeutet "so"? Beispiel-VI?


RE: Counter parallel ausgeben - MRL2018 - 26.04.2018 10:48

Das Bild von Dir gestern.
Ich hab den gesamten Teil neu aufgebaut, wie auf dem Bild zu sehen.
Momentan hab ichs nicht gerade schön gelöst - Ich habe die Ports als Konstante eingelesen statt einen Task zu erstellen und das Array auszuwerten.

Fehlermeldung war ja, das der Task mit dem Namen bereits besteht.

Es läuft jetzt zwar, ist aber ich würde die AIs doch gerne annähernd so wie bisher initialisieren.


RE: Counter parallel ausgeben - GerdW - 26.04.2018 11:49

Hallo MRL,

Zitat:Fehlermeldung war ja, das der Task mit dem Namen bereits besteht.
Wo und wann taucht die Fehlermeldung auf?
Hast du den Task (vorher/generell) auch mal korrekt gelöscht?

Hast du denn kein aktuelles VI zum Debuggen?


RE: Counter parallel ausgeben - MRL2018 - 26.04.2018 11:55

Die Fehlermedlung taucht nach der zweiten Kanalerstellung auf.
Das VI dazu ist hier bereits hochgeladen unter AI Problem.
Daran hat sich ncihts geändert.
Der Task sollte, ob Fehler oder nicht, nach Beendigung des VIs gestoppt und gelöscht werden.


RE: Counter parallel ausgeben - GerdW - 26.04.2018 12:05

Hallo MRL,

Zitat:Das VI dazu ist hier bereits hochgeladen unter AI Problem.
Dieses VI ist hochgradig buggy, wie dir schon gesagt wurde…

Zitat:Der Task sollte, ob Fehler oder nicht, nach Beendigung des VIs gestoppt und gelöscht werden.
Erstens erzeugst du dort 4 Tasks (von denen nur der letzte benutzt wird) und es wird keiner dieser Tasks gelöscht, da vorher eine RaceCondition auftritt…
Korrektur: es werden sogar 5 Tasks angelegt!

Nochmal: dieses "AI Problem"-VI ist buggy!


RE: Counter parallel ausgeben - MRL2018 - 26.04.2018 12:21

Das ist mir bewusst, deshalb habe ich es hier hochgeladen, da ich zwar weiss, das dies buggy is, aber nicht warum oder wie ich die Bugs entferne


RE: Counter parallel ausgeben - GerdW - 26.04.2018 12:39

Hallo MRL,

mein Bild hier zeigt, wie man nur genau einen Task erzeugt und diesen ohne RaceConditions auch wieder löscht…


RE: Counter parallel ausgeben - MRL2018 - 26.04.2018 13:00

genau das will ich. Einen Task erzeugen, dem mehrere Kanäle zuweisen.
Wie gesagt im Digital Out ging es genau so wie es auf dem Bild oder meinem VI zu sehen. Zudem finde ich Bild und VI sind gleich.

ehler -200489 bei DAQmx Create Channel (AI-Voltage-Basic).vi:1780004
Mögliche Ursachen:
Der angegebene Kanal kann dem Task nicht hinzugefügt werden, weil der Task bereits einen Kanal mit dem selben Namen enthält.

Kanalname: Temp
Task-Name: AnalogInit

Wo kommt dieser Kanal Temp her? Ich habe keinen Kanal Temp in dem Array.

Der Task AnalogInit läuft in die Schleife, mit jeder Iteration wird dem selben Task ein neuer Kanal
zugewiesen. So der Plan. Am Start soll dann Quasi
AnalogInit
ai0
ai6
ai7
...
ankommen.
Hier nochmal das VI diesmal mit dem im Original funktionierenden Digital Out.


RE: Counter parallel ausgeben - GerdW - 26.04.2018 13:44

Hallo MRL,

Zitat:Zudem finde ich Bild und VI sind gleich.
Nein, sind sie nicht!

Du hast IMMER NOCH die Race condition aufgrund unnötiger lokaler Variablen in deinem VI: der AI-Task wird sehr wahrscheinlich nicht (korrekt) gelöscht! Und beim nächsten Start des VIs gibt es eben Fehlermeldungen…

Und warum hat es so lange gedauert, bis du mal wieder eine zumindestens ansatzweise korrigierte Version deines VIs hochlädst? Sollen wir immer nur in die Glas1 gucken?

Zitat:Wo kommt dieser Kanal Temp her? Ich habe keinen Kanal Temp in dem Array.
Wenn ich die bei mir unbekannten Task-Definitionen durch ein Array of DAQmxChannels ersetze, bekomme ich keine Fehlermeldungen:
[attachment=59085]
Vielleicht solltest du damit aufhören, irgendwelche obskuren Task-Definitionen, die nur dein MAX kennt, zu benutzen?


RE: Counter parallel ausgeben - MRL2018 - 26.04.2018 13:59

Hinter der "unbekannten Task-Definition" steht genau dass, was Du als Array of Channels beschreibst.
Hinter meinem Ni Max Task Bandantrieb steht auch ai0.
Die lokalen variablen benötige ich, da ich Initialisierung, Bearbeitung und Aufheben in getrennten Sequenzen ausführe.