LabVIEWForum.de - Temperaturregelung über RS232 und PWM

LabVIEWForum.de

Normale Version: Temperaturregelung über RS232 und PWM
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo tega,

Zitat:Sollte oder kann ich denn dort noch etwas ändern?
Meiner Meinung nach solltest du das ändern. Ja, das geht…
Hallo Gerd,

ich habe es bisher leider nicht vernünftig hinbekommen, die beiden Punkte:

- Du erstellst einen DAQmxTask mit (lt. Voreinstellung) nur einem AO-Kanal. Ausgeben willst du aber 2 (oder sogar 3) Waveforms parallel…
- Deine RS232-Schleife kann immer noch Nullen in die Ist-Werte schreiben…

vernünftig zu ändern. Kannst du mir bezüglich dessen doch noch mal einen Typ geben?
Hallo tega,

- Kanäle im DAQmxTask: das erledigt man mit dem DAQmxChannel Control… (s. Link DAQmx-Basics in meiner Signatur)
- RS232-Schleife:
Momentan hast du programmiert:
Code:
IF string received
THEN
  output := decode(string)
ELSE
  output := 0
ENDIF
Und eben dieser ELSE-Zweig stört mich! Wenn keine gültigen Daten empfangen wurden, solltest du nicht in die Outputs schreiben!
Zitat:Hallo tega,

- Kanäle im DAQmxTask: das erledigt man mit dem DAQmxChannel Control… (s. Link DAQmx-Basics in meiner Signatur)
- RS232-Schleife:
Momentan hast du programmiert:
Code:
Code:
IF string received
THEN
  output := decode(string)
ELSE
  output := 0
ENDIF
Und eben dieser ELSE-Zweig stört mich! Wenn keine gültigen Daten empfangen wurden, solltest du nicht in die Outputs schreiben!

Hallo Gerd,

danke für die Info.
Ich werde mich in das DAQmxChannel Control mal einlesen.
Bezüglich der RS232 muss ich also nur sagen:

Nur wenn Daten empfangen wurden, schreibe.
Ansosnsten keine Werte (0en) in den output.
Also garnicht erst in den Zweig rein.
Hallo tega,

Zitat:Ansosnsten keine Werte (0en) in den output.
"keine Werte" heißt nicht "Nullen"!
Hallo Gerd,

wenn du zeit hast, hätte ich doch nochmal eine Frage.
Ich habe mich gestern durch das Programm durchgearbeitet und habe dabei festgestellt, dass mein PWM generator falsche Signale ausgibt.
Er soll z.B. 2% PWM ausgeben (2 aus dem Regler), gibt aber etwa 80% PWM aus.
Ich habe auch gemerkt, dass wenn ich den duty cycles von einer while Schleife (mit T z.B. 250ms Zyklus) in eine andere while Schleife (Schleife wo die PWM drin ist) übergebe, dann funktioniert die PWM nur mit einer Frequenz von 4HZ(f=1/250ms).

Kennst du vielleicht diese Problematik?
Hallo tega,

Zitat:Kennst du vielleicht diese Problematik?
Sollte ich jetzt mit NEIN antworten? Big Grin

Schritte zur Problemlösung:
Man testet solche Sachen einzeln. Also einfach ein VI erstellen, welches dein PWM-Signal erzeugen und ausgeben soll. Mit einem Oszi schauen, ob das funktioniert. Wenn es funktioniert, mit dem Rest deines Programms verknüpfen…
Hallo Gerd,

sorry, dass ich wieder nerve.

Ich habe leider doch noch ein Problem mit meinem PWM Generator.
Es hat sich herausgestellt, dass die Verwendung der Eventstrucktur nicht das richtige Ergebnis ausgibt.
Ich habe mir jetzt anhand der Vorlagen von NI einen fertigen PWM Generator für mehrere Kanäle heruntergeladen.
Soweit funktioniert er auch.

Mein Problem: Lass ich ihn durch den Debuger laufen kommt beim zweiten Durchlauf ein Fehler. (Den Fehler habe ich mal mit im Anhang.)
Im Netz habe ich leider keine vernünftige Hilfe gefunden.

Kennst du vielleicht ein PWM Generator VI für analog Output mit mehreren Kanälen?
Hallo tega,

Zitat:Mein Problem: Lass ich ihn durch den Debuger laufen kommt beim zweiten Durchlauf ein Fehler.
Lösung: Lass einfach das Highlight-Debugging weg!

DAQmx beschwert sich darüber, dass du nicht rechtzeitig neue Daten bereitstellst, wenn die nächste Signalperiode ausgegeben werden soll…

Zu deinem VI:
Du berechnest dort die Sampleanzahl für das PWM-Signal aus Samplerate und PWM-Frequenz. Beispiel: bei Samplerate = 1kS/s und einer Frequenz von 100Hz bekommst du nur 10 Samples pro Waveform, die dann in 10ms ausgegeben werden. Wenn du dann mit Debugging nur alle 10s mal neue Werte berechnest, gibt es natrülich Fehlermeldungen!
Gib doch einfach mal eine feste Anzahl Samples vor. Wenn dein RS232-Gerät nur alle 500ms einen neuen Messwert generiert, könntest du hier auch Waveforms für eine halbe Sekunde erstellen lassen…
Ach so, OK.

Dann lass ich den PWM Generator erstaml so laufen und teste den Rest.

Danke dir!
Deine Info teste ich.
Seiten: 1 2 3 4
Referenz-URLs