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 

Dieses Thema hat akzeptierte Lösungen:

DI-DO einlesen, verarbeiten, ausgeben



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!

27.03.2015, 12:08 (Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2015 12:17 von Nico1992.)
Beitrag #1

Nico1992 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2015

2014
2015
DE



DI-DO einlesen, verarbeiten, ausgeben
Guten Tag,
ich hatte vor mit der NI myDAQ Digitale Ein und Ausgangssignale aufzunehmen, zu verarbeiten und wieder auszugeben. Ich hab einen Motor der mehrere Positionen abfahren soll.
Der Motor wird über ein Relais angesteuert. Der Motor soll von einem Startpunkt 0° bis zu einem Endpunkt 180° fahren. Über 2 Magnetschalter wurden Startposition (0°) und Endposition (180°) abgefragt. Zwischen den Endschaltern für Start und Endposition, wird noch die Position (90°) durch eine Lichtschranke abgefragt. Komme aus der Automatisierungstechnik (SPS). Ziel ist es meine kleine „Steuerung“ mit Booleschen Werten zu realisieren. Da ich noch Anfänger in Labview (Version 2011 und 2014)bin, habe ich noch keine Idee, wie ich das Programm realisieren könnte. Ich hab nach Beispiel Vi´s über Steuerungen gezielt gesucht, jedoch leider nichts gefunden. Mit dem DAQ-Assistenten habe ich versucht die Eingänge über „Signalerfassung über Leitung Port 0“ einzulesen. Geh ich in den Run-Modus, habe ich ein dauerhaftes TRUE #1 am DAQ-Assistenten anstehen, obwohl der Taster nicht betätigt ist. Hat jemand eine Idee wie man die Signale systematisch erfasst? Und danach verarbeitet und anschließend ausgibt?

Vielen Dank schon einmal im Voraus
Nico
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.03.2015, 12:37
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DI-DO einlesen, verarbeiten, ausgeben

Akzeptierte Lösung

Hallo Nico,

LabVIEW kommt mit einer ganzen Bibliothek von Beispiel-VIs, da kannst du dir anschauen, wie man DI/DO einliest/ausgibt.

Der Rest sollten dann IF-THEN-ELSE-Abfragen sein…

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

Nico1992 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2015

2014
2015
DE



RE: DI-DO einlesen, verarbeiten, ausgeben
(27.03.2015 12:37 )GerdW schrieb:  Hallo Nico,

LabVIEW kommt mit einer ganzen Bibliothek von Beispiel-VIs, da kannst du dir anschauen, wie man DI/DO einliest/ausgibt.

Der Rest sollten dann IF-THEN-ELSE-Abfragen sein…

Vielen Dank für die schnelle Antwort.
Genau die Funktion wollte ich mit IF-THEN-ELSE, Selektionen und Switch and Case realisieren. Die Funktion bekomme ich hin. Ich hab gelesen das man mit Lokalen Variablen innerhalb im Programm arbeiten kann. Ermöglicht mir dann auf dem Frontpanel Melde leuchten zu realisieren. Das ist schon einmal viel Wert. Leider hab ich bisher kein passendes Beispiel gefunden die Eingänge systematisch einzulesen. Die Abfrage müsste ja ziemlich Realitätsnahe sein. Bräuchte ein Beispiel mit dem über "Express" DAQ-Assistenten. Habe es mal mit MAXlesen und schreiben probiert, jedoch ohne Erfolg.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.03.2015, 13:47
Beitrag #4

Nico1992 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2015

2014
2015
DE



RE: DI-DO einlesen, verarbeiten, ausgeben
Also das Einlesen und Ausgeben der Digitalen Größen hab ich hinbekommen. Auch die Programmierung. Jetzt hab ich nur noch ein Problem. Ich arbeite mit der NI myDAQ Messbox. Mein Prozesszyklus von der Steuerung ist zu langsam. Die Messbox realisiert erst nach 5-6 Sekunden, ob ein Signal vorhanden ist oder nicht. Kann man die Zykluszeit ändern (Echt-Zeit-Abfrage)? Kann man eine andere Einstellung vornehmen um die Abtastrate der Eingängen zu erhöhen?
Kurze Information:
Ich habe über Express Signale erfasst (DAQ-ASSISTENT) Einstellungen: Wert auf Anforderung.

Merci.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.03.2015, 17:23 (Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2015 17:23 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DI-DO einlesen, verarbeiten, ausgeben
Hallo Nico,

Zitat:Die Messbox realisiert erst nach 5-6 Sekunden, ob ein Signal vorhanden ist oder nicht.
Das dürfte nicht an der Messbox, sondern an deinem VI liegen.

Aber mangels VI nur Glas2

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.03.2015, 14:00
Beitrag #6

Nico1992 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2015

2014
2015
DE



RE: DI-DO einlesen, verarbeiten, ausgeben
Ich hab jetzt mal ein Beispiel aufgebaut. Auch da hab ich einen Zyklus von knapp 6 Sekunden und der Motor schaltet bei erreichen der Endlage (180°) nicht ab. Wenn ich den Endschalter(0°) in diesem Beispiel betätige soll der Motor anfangen zu drehen, bis der Motor nach 180° Drehung den anderen Endschalter(180°) erreicht.
Gibt es da nicht einen Trick? Ich hab schon im "Einführung in Labview Buch" nachgelesen, doch nichts gefunden.

Version : 2014


Angehängte Datei(en)
14.0 .vi  Test.vi (Größe: 45,43 KB / Downloads: 236)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
31.03.2015, 14:06
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DI-DO einlesen, verarbeiten, ausgeben
Hallo Niko,

Zitat:Ich hab jetzt mal ein Beispiel aufgebaut.
- Warum benutzt du einerseits in MAX definierte DAQmx-Tasks, andererseits aber noch einen DAQ-Assi?

- In deinem VI ist nirgends eine Wartezeit zu sehen. Es könnte nur Wartezeiten bei den DAQmx-Tasks geben - leider kennen wir die nicht, du hast sie ja in deinem lokalen MAX defniert...

- Es gibt keine Schleife in deinem VI, d.h. die Routine wird genau einmal abgearbeitet und bleibt dann stehen. Dass der Motor dann nicht mehr reagiert, ist nachvollziehbar...

Zitat:Gibt es da nicht einen Trick?
Ja: man könnte die ganzen Beispiel-VIs studieren, die bei LabVIEW mitgeliefert werden...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.03.2015, 14:39
Beitrag #8

Nico1992 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2015

2014
2015
DE



RE: DI-DO einlesen, verarbeiten, ausgeben
Vielen Dank für die schnelle AntwortSmile

Ok, wie gesagt ich bin noch ziemlich Frisch. Hab das jetzt mal nur mit DAQ-Assistenten realisiert. Und die passende Schleife ausgewählt. Bei True Soll der Endschalter 180° die Wiederholung auflösen. Wartezeit war ich mir nicht ganz sicher. Verzögert das nicht noch mehr meinen Prozess? Jedenfalls glaube ich das mein Fehler an der Einstellung von der Signalerfassung liegt.


Angehängte Datei(en)
14.0 .vi  Test.vi (Größe: 141,29 KB / Downloads: 227)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.03.2015, 14:48 (Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2015 14:51 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DI-DO einlesen, verarbeiten, ausgeben
Hallo Nico,

Zitat:Hab das jetzt mal nur mit DAQ-Assistenten realisiert.
Ich hätte mir eine Realisation NUR mit einfachen DAQmx-Funktionen gewünscht…

Zitat:Und die passende Schleife ausgewählt.
Schon besser…

Zitat:Wartezeit war ich mir nicht ganz sicher. Verzögert das nicht noch mehr meinen Prozess?
Das meinte ich zwar nicht, ist bei deinem VI aber durchaus sinnvoll.
Deine DAQ-Assi sind alle auf "1 Wert auf Anforderung", da ist eine Wartezeit zwischen den "Anforderungen" durchaus sinnvoll!

Was ich eigentlich meinte: du hast immer von "6 Sekunden oder so" gesprochen - diese Verzögerung war in deinem VI nicht zu erkennen…

Zitat:Jedenfalls glaube ich das mein Fehler an der Einstellung von der Signalerfassung liegt.
Dann probiert man diese erst einmal getrennt vom Rest aus.
Reagieren LED-Anzeigen, wenn du nur einen Endschalter abfragst?
Reagieren LED-Anzeigen, wenn du beide Endschalter abfragst? (Warum fragst du nicht beide mit nur einem DAQmxTask ab?)

Was soll der Blödsinn, den "Endschalter 180°", welcher als boolsches Array geliefert wird, in ein DDT umzuwandeln und dieses dann wieder in ein weiteres DDT? Warum nicht einfach mal auf ExpressVIs verzichten und RICHTIG programmieren - z.B. mit Arrayfunktionen wie IndexArray? Wall
Und was soll es bringen, wenn du per Endschalter180 zwar die Schleife beendest, aber den Motor weiter drehen lässt? Hmm

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
  NI USB-6008 Spannung ausgeben & einlesen feichti92 9 11.017 20.04.2015 15:59
Letzter Beitrag: feichti92
  Baluff Inkremental Wegaufnehmer SSI Signal verarbeiten GAREDNAS 1 3.758 24.06.2014 13:17
Letzter Beitrag: GerdW
  Digitales Signal ausgeben/einlesen Orngh 4 6.908 21.11.2013 10:11
Letzter Beitrag: Orngh
  DAQ direktes ausgeben und einlesen Aimen 4 5.407 11.09.2013 09:22
Letzter Beitrag: Aimen
  DI richtig lesen und verarbeiten bei Zustandswechsel Sundypha 2 4.252 04.10.2012 08:17
Letzter Beitrag: Lucki
  Anfängerproblem: Digitales Signal ausgeben/einlesen blablubb1234 10 19.037 02.12.2010 17:26
Letzter Beitrag: blablubb1234

Gehe zu: