LabVIEWForum.de - Anbindung VIAVI CellAdvisor 5G an LabVIEW

LabVIEWForum.de

Normale Version: Anbindung VIAVI CellAdvisor 5G an LabVIEW
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Simon,

Zitat:Bei meinen Tests muss ich auch mehrere Messpunkte abfragen und schauen ob die in einem bestimmten Bereich sind eignet das Konstrukt sich auch hierfür?
Entweder legst du für jeden "Messpunkt" ein eigenes Kommando im QMH an - oder du kannst es auf ein Kommando vereinfachen, dem du die entsprechenden "Bereiche" als Parameter mit übergibst…
(Ja, ein QMH eignet sich auch für solche Anwendungsfälle.)

Zitat:Und ich hab Quasi einen Code in C# der schon alle Befehle hat gibt es da eine Möglichkeit wenn es vom Aufwand her geringer wäre den zu verwenden?
Du kannst externen Code von LabVIEW aus aufrufen, wenn du einen der unterstützten Wege nutzt.
Ein Weg wäre der Aufruf von Funktionen in einer DLL: du musst aus deinem C#-Projekt also eine DLL generieren, deren Funktionen du von LabVIEW aus aufrufst. (Bei C# evtl. auch eine DotNet-Bibliothek!?)

Ich bin aber kein C(#)-Programmierer und kann dich dabei nicht unterstützen.
Hallo Gerd ich versuche gerade das ganze erstmal mit einer State Machine zu lösen.
Das eine Datei erzeugt wird und die Prüfwerte eingegeben werden möchte ich später dazu machen.
Hier ergeben sich mir noch einige Fragen;

-Ich habe hier um zu entscheiden was für ein Gerät getestet wird die State Machine nochmal in eine Case-Struktur gepackt, aber bin mir nicht Sicher ob das so gelöst werden sollte (Es sollen später noch weitere Geräte hinzugefügt werden die andere Tests gemacht werden müssen?!

-Jedes Gerät hat mehrere Kanäle bei denen die selben Tests durchgeführt werden wie kann ich das einbringen?

- Die Eingaben die der User machen soll wie Prüfer (sein Name) und Seriennummer ( vom zu prüfenden Gerät) sollen Eingegeben werden, hier habe ich ein Case erstellt namens Config nun soll der User nur weiter zu dem ersten Test geführt werden wenn die eingaben Erfolgt sind wie bekomme ich das unter bzw. an welche stelle müssen die Strings stehen ?

-Funktioniert das mit dem Visa so ?
(10.01.2024 14:50 )Sabo schrieb: [ -> ]-Ich habe hier um zu entscheiden was für ein Gerät getestet wird die State Machine nochmal in eine Case-Struktur gepackt, aber bin mir nicht Sicher ob das so gelöst werden sollte (Es sollen später noch weitere Geräte hinzugefügt werden die andere Tests gemacht werden müssen?!
Hier wäre ein LVOOP Objekt für die Messgeräte möglich, was aber viel Einarbeitungszeit braucht, aber auch sehr stark von den Gemeinsamkeiten der Geräte abhängt.
Es kommt auch darauf an, ob die Tests die Gleichen sind (die State Machine verwendet werden kann) oder ob die Tests komplett anders im Ablauf / Eingabe / .. sind und du einen anderen State Machine Ablauf hast.
(10.01.2024 14:50 )Sabo schrieb: [ -> ]-Jedes Gerät hat mehrere Kanäle bei denen die selben Tests durchgeführt werden wie kann ich das einbringen?
Eine Eingabe für den Kanal, wenn du diese einzeln auswählen möchtest, eine Liste, wenn bestimmte Ausgewählt werden sollen oder einen Zähler, der eine nach dem anderen hochzählt und durchfährt.
Überlege was sinnvoller/gewünscht ist: Bei jedem Test die Kanäle wechseln, oder alle Tests Kanal für Kanal.
(10.01.2024 14:50 )Sabo schrieb: [ -> ]- Die Eingaben die der User machen soll wie Prüfer (sein Name) und Seriennummer ( vom zu prüfenden Gerät) sollen Eingegeben werden, hier habe ich ein Case erstellt namens Config nun soll der User nur weiter zu dem ersten Test geführt werden wenn die eingaben Erfolgt sind wie bekomme ich das unter bzw. an welche stelle müssen die Strings stehen ?
Wenn die Eingabe vorher erfolgen muss/soll, sollte dein "weiter" Knopf mit den Bedingungen (alles ausgefüllt?) gekoppelt sein. Hier sollten auch die Bedienelemente dann abgefragt werden und in einem Cluster als Schieberegister gespeichert werden. Beispie siehe Bild
(10.01.2024 14:50 )Sabo schrieb: [ -> ]-Funktioniert das mit dem Visa so ?
Jain, besser nicht so. Bytes at Port ist gut um zu sehen ob etwas anliegt, sollte aber nicht verwendet werden um genau diese Menge abzufragen (zur Not einen größeren Wert als die maximal erwarteten Zeichen/Bytes). Hier dann aber die generelle Frage ob
-du nicht eh nen TermChar definiert hast?
-Die Kommunikation ausgewertet wird?
-Gerätedurchlaufzeit der Befehle bekannt ist?

Warum hast du dich vom QMH abgewand? Sich wechselnd in andere Strukturen einzuarbeiten macht es nicht einfacher.
Aus Erfahrung aus meinem Techniker: Definiere erstmal deine ersten Schritte und teile es in kleinere Aufgaben auf. Hier immer wieder reinschauen und anpassen, mit neuer Erkentnis kommen neue Aufgaben/Ideen.
zB: Hardwarekommunikation -> (einzel-)Befehlverarbeitung -> Ergebnisprotokoll -> Bedienoberfläche -> Ablauf

Grüße Timo
Hallo Zusammen ich hab jetzt ein Programm zusammen geschustert bekommen.
Soweit funktioniert es muss mir jetzt noch was für die Ausgabe der Testergebnisse überlegen und wie ich das in ne Datei bekomme aber das kommt später.
Ich habe nun folgendes Problem wenn ich ein Query schicke damit mir das Gerät sagt ob der Test Pass oder Fail ist bekomme ich ab und zu keine Antwort ab und zu nur die ersten beiden Busstaben ab und zu die letzten 2 und manchmal auch die korrekte Antwort. Kann mir da jemand sagen was ich beim Lesen Falsch mache?
Grüße Simon
Könnte evtl. daran liegen, dass dein Sender mal mehr mal weniger als die von dir gewarteten 100 ms benötigt, um die Antwort zu senden.

Du solltest für deine serielle Verbindung ein Endzeichen einstellen, wahrsheinlich das \n, das du beim Senden benutzt. Dann wartet READ auf eine vollständige Nachricht, indem es auf das nächste \n wartet.

Sehenswert: Proper way to communicate over serial
Was sagt denn dein 'Error Out' in den jeweiligen Fällen? Dafür ist er schließlich da.
Wie hast du denn den Port konfiguriert? Glas2
(18.04.2024 11:16 )th13 schrieb: [ -> ]Könnte evtl. daran liegen, dass dein Sender mal mehr mal weniger als die von dir gewarteten 100 ms benötigt, um die Antwort zu senden.

Du solltest für deine serielle Verbindung ein Endzeichen einstellen, wahrsheinlich das \n, das du beim Senden benutzt. Dann wartet READ auf eine vollständige Nachricht, indem es auf das nächste \n wartet.

Sehenswert: Proper way to communicate over serial

Ich habe zum öffnen der Verbindung die VISA Open Funktion genommen mit dem Serial bekomme ich keine Verbindung hin aber ich weiß auch nicht was ich da einstellen müsste damit es funktioniert.

Den Errorcode den ich bekomme ist nur ne Warnung.

Was muss ich alles einstellen um Das Gerät mit der VISA Configure Serial Port anzusprechen ?!
Hallo Sabo,

Zitat:mit dem Serial bekomme ich keine Verbindung hin aber ich weiß auch nicht was ich da einstellen müsste damit es funktioniert.
Was muss ich alles einstellen um Das Gerät mit der VISA Configure Serial Port anzusprechen ?!
Du verwendest doch eine "Ethernet"-Verbindung, oder?
Also nix mit "serielle Schnittstelle" (aka COM-Port)…

Zitat:Den Errorcode den ich bekomme ist nur ne Warnung.
Diese Warnung ist nett, kann aber meist ignoriert werden…

- Wenn du wie in deinem Bild 4 Zeichen als Antwort liest: hast du dann schon die TermChars mitgezählt? Dein Gerät wird sehr wahrscheinlich auch noch ein \n und/oder \r an seine Antwort anhängen…
- Bei seriellen Schnittstellen kann man ein TermChar für das Lesen vom Port einstellen, das sollte auch bei TCP-Kommunikation über VISA funktionieren: hast du das mal ausprobiert?
[attachment=62748]
(24.04.2024 09:31 )GerdW schrieb: [ -> ]Hallo Sabo,

Zitat:mit dem Serial bekomme ich keine Verbindung hin aber ich weiß auch nicht was ich da einstellen müsste damit es funktioniert.
Was muss ich alles einstellen um Das Gerät mit der VISA Configure Serial Port anzusprechen ?!
Du verwendest doch eine "Ethernet"-Verbindung, oder?
Also nix mit "serielle Schnittstelle" (aka COM-Port)…

Zitat:Den Errorcode den ich bekomme ist nur ne Warnung.
Diese Warnung ist nett, kann aber meist ignoriert werden…

- Wenn du wie in deinem Bild 4 Zeichen als Antwort liest: hast du dann schon die TermChars mitgezählt? Dein Gerät wird sehr wahrscheinlich auch noch ein \n und/oder \r an seine Antwort anhängen…
- Bei seriellen Schnittstellen kann man ein TermChar für das Lesen vom Port einstellen, das sollte auch bei TCP-Kommunikation über VISA funktionieren: hast du das mal ausprobiert?

Vielen Dank Gerd,
mit Termination Character enable kommt Die Nachricht ganz an.
Allerdings hab ich jetzt den Byte count hoch gesetzt und bekomme die Fehlermeldung:
Error -1073807339 occurred at VISA Read in Main.vi

Possible reason(s):

VISA: (Hex 0xBFFF0015) Timeout expired before operation completed.

wie bekomme ich die noch weg?
Hallo Sabo,

Zitat:mit Termination Character enable kommt Die Nachricht ganz an.
Im Bild liest du nur die Property, aber ich sehe nirgends, wo du diese Property setzt/schreibst!?
(Um etwas einzustellen, sollte man schreibend darauf zugreifen…)
Seiten: 1 2 3
Referenz-URLs