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 

Messung über GPIB



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.09.2016, 07:15 (Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2016 07:15 von Jenni.)
Beitrag #1

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



Messung über GPIB
Guten Morgen ihr Lieben!

Ich bräuchte bitte mal euren fachlichen Rat.
Ich sitze nämlich nun schon seit längerem an einem Problem. Ich habe mir dazu auch diverse Bücher ausgeliehen, die mir aber leider alle keine Hilfe dabei waren. Deshalb hoffe ich nun hier auf eure Hilfe.

Erst einmal worum es geht:
Ich habe in Labview eine Steuerung programmiert für einen Schrittmotor.
Und zwar in gestapelten Sequenzen.
In der ersten wird die Achse gesetzt, in meinem Fall die x-Achse.
In der zweiten wird eine Referenzfahrt durchgeführt, um den Maschinennullpunkt zu finden.
In der dritten wird ein Relais in dem Motor geschlossen, damit auch Umdrehungen von mehr als 360° möglich sind (sonst wird immer wieder der Endschalter angefahren).
In der vierten Sequenz kann ich die absolute Position einstellen, zu der der Motor fahren soll (also beispielsweise 180° mit einer Geschwindigkeit von 90° pro Sekunde). Zudem kann ich die Schrittgröße einstellen, in der sich der Motor bewegen soll (bsp. in 2° Schritten).
Und in der letzten Sequenz wird das Relais wieder geöffnet.

Das alles dient dem Zweck, einen Prüfkörper auf einen mit dem Drehmotor verbundenen Drehteller zu legen und seine Abstrahlcharakteristik zu erfassen.

Nun zu meinem Problem:
In der vierten Sequenz möchte ich nach jedem Schritt eine Messung mit einem Spektrumanalyzer durchführen.
Diese Messung soll dann in einer Datei gespeichert werden. Das Messgerät ist über GPIB mit einem PC verbunden.

Aber wie funktioniert das?
Ich habe da anscheinend ein Brett vor dem Kopf.
Ich würde mich sehr über eure Hilfe freuen!

Falls ihr darüber hinaus noch weitere Verbesserungsmöglichkeiten habt nehme ich auch diese Hilfen dankend an Smile

Viele Grüße,
Jenni


Angehängte Datei(en)
12.0 .vi  komplett_x-Achse.vi (Größe: 46,9 KB / Downloads: 307)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.09.2016, 12:16
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Messung über GPIB
Hallo Jenni,

Zitat:Falls ihr darüber hinaus noch weitere Verbesserungsmöglichkeiten habt
- Statt einer stupiden Sequenz besser eine Statemachine verwenden!
- Muss man wirklich in jedem Teilschritt die Schnittstelle erneut öffnen, initialisieren und wieder schließen?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 07:07
Beitrag #3

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: Messung über GPIB
Danke für die Antwort Gerd!

Ich habe mich jetzt etwas in das Thema "Zustandsautomat" eingelesen.
Allerdings habe ich keine Aktionen zwischen den Sequenzen. Wäre ein Zustandsautomat dann überhaupt sinnvoll?
Und wo liegen die Vorteile gegenüber einer Sequenz?

Mit der Schnittstelle hast du recht.
Ich hab das nun geändert. Danke!


Viele Grüße,
Jenni
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 07:40 (Dieser Beitrag wurde zuletzt bearbeitet: 27.09.2016 07:41 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Messung über GPIB
Hallo Jenni,

Zitat:Allerdings habe ich keine Aktionen zwischen den Sequenzen.
Doch, du hast Aktionen, z.B. eine elementare Fehlerüberprüfung!

Zitat:Wäre ein Zustandsautomat dann überhaupt sinnvoll?
Eine Statemachine ist in jedem Fall einer Sequenz vorzuziehen…

Zitat:Und wo liegen die Vorteile gegenüber einer Sequenz?
- Man kann leicht an beliebiger Stelle States hinzufügen/entfernen
- Man kann leicht States wiederholen, z.B. im Fehlerfall
- Man kann leicht(er) die Abarbeitung unterbrechen, z.B. im Fehlerfall
Genau diese Vorteile solltest du eigentlich wissen, wenn du dich eingelesen hast…
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 08:19
Beitrag #5

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: Messung über GPIB
Hallo Gerd,

ich habe nirgends Vorteile eines Zustandsautomaten gefunden. Vor allem nicht gegenüber einer Sequenz.
Du hast es schön beschrieben. Aber woanders kann ich das leider nicht finden.

Ich bin auch ehrlich gesagt etwas überfordert mit dem Aufbau des Zustandsautomaten.
Mach ich das mit einem Enum?
Aber wenn ich dann die Fehlerüberprüfung als Bedingung mit dem Schieberegister verbinde funktioniert das VI nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 09:04
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Messung über GPIB
Hallo Jenni,

Zitat:Ich bin auch ehrlich gesagt etwas überfordert mit dem Aufbau des Zustandsautomaten. Mach ich das mit einem Enum?
LabVIEW hat ein Beispiel-Projekt, welches eine einfache Statemachine demonstriert…
Enums sollte man nehmen, man kann aber auch mit Zahlen oder Strings arbeiten.

Zitat:Aber wenn ich dann die Fehlerüberprüfung als Bedingung mit dem Schieberegister verbinde funktioniert das VI nicht.
Das kann man mangels VI nicht beurteilen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 10:27
Beitrag #7

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: Messung über GPIB
So ich hab es nun mit der mehr oder weniger mit der Statemachine hinbekommen.
Allerdings funktioniert die Positionsbewegung nicht mehr.
Der Schritt danach (Relais öffnen) wird aber trotzdem ausgeführt.

Wie bekomme ich es hin, dass auch in diesem Schritt (Positionsbewegung) der Fehlerausgang und Visa Close aus der For Schleife führt?
Vielleicht liegt auch da der Fehler.


Angehängte Datei(en)
12.0 .vi  x-Achse_Statemachine.vi (Größe: 45,05 KB / Downloads: 240)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 10:38 (Dieser Beitrag wurde zuletzt bearbeitet: 27.09.2016 10:39 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Messung über GPIB
Hallo Jenni,

es wird ja immer noch in jeder Iteration deiner Hauptschleife erneut die Schnittstelle geöffnet, initialisiert und geschlossen! Was soll der Blödsinn?

Zitat:Wie bekomme ich es hin, dass auch in diesem Schritt (Positionsbewegung) der Fehlerausgang und Visa Close aus der For Schleife führt?
Hier liegt der Fehler begraben: Warum schließt du die Schnittstelle in der FOR-Loop? Nach der ersten Iteration dieser FOR-Loop greifst du auf eine nicht mehr geöffnete Schnittstelle zu!

Nochmal: Schnittstelle öffnen und schließen gehören in jeweils einen State - und dieser State wird nur je einmal zu Start und Stop deiner Statemachine aufgerufen!!!

Zur Frage:
Nimm Schieberegister, wenn du Werte (wie ErrorIO) durch eine Schleife schicken und bearbeiten willst!

Allgemeine Hinweise:
- THINK DATAFLOW!
- Warum ist das Control "Achsen&Gerätenummer" im State "Achse setzen" versteckt? Wenn er in mehreren States benötigt wird, dann gehört er vor die Case-Struktur deiner Statemachine (oder in ein Schieberegister)!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 11:16
Beitrag #9

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: Messung über GPIB
Der Blödsinn ist eben so entstanden, dass ich nicht weiß, wie ich VISA Open und VISA Close jeweils in einen State packe, so dass die Verbindungen in die anderen States führen.
Das mit dem Schieberegister klappt bei der For Schleife, aber bei der Case Struktur nicht.
Wie mache ich das denn da?

Oder soll ich diese einfach außerhalb der Case Struktur in der While Schleife lassen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 11:40
Beitrag #10

Nordvestlys Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 108
Registriert seit: Sep 2014

2015 (und testweise 2016)
2005
EN

07743
Deutschland
RE: Messung über GPIB
Moin Jenni,

wegen "Blödsinn" brauchst Du Dich nicht zu rechtfertigen. Haben wir alle schon verzapft. Und auch tapfer ertragen, wenn jemand dann Klartext redet.....

Zum Schieberegister: Das kann man natürlich nur bei Strukturen erzeugen, die in irgendeiner Form eine Schleife darstellen (For, While). Eine Case-Struktur in einer Schleife wird zwar auch wiederholt aufgerufen, aber pro Aufruf nur genau einmal durchlaufen.

Du kannst aber problemlos die Schieberegister der Schleife an die Case-Struktur durchverdrahten.

Wenn Du Start/Stop, open/close bzw. init/deinit nicht in eigene Cases packen willst, kannst Du sie auch außerhalb der Schleife davor und dahinter setzen. Einfach mal den Hintergrund überlegen: Gaaanz am Anfang und am Ende wird was geöffnet und geschlossen. Und dazwischen kann die Schnittstelle dann beliebig oft (1x oder 1000x ist egal) benutzt werden.

bis denne,
* mario *
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
  Trigger über GPIB an Keithley 2000 senden surfman19 1 5.288 23.02.2011 14:00
Letzter Beitrag: GerdW
  Agilent - Messignal über GPIB auslesen surfman19 7 9.907 09.02.2011 10:32
Letzter Beitrag: surfman19
  Messdaten über GPIB MichaelLDW 5 9.358 27.05.2007 23:35
Letzter Beitrag: MudMan

Gehe zu: