LabVIEWForum.de
CTR-500 Count-Input - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: CTR-500 Count-Input (/Thread-CTR-500-Count-Input)

Seiten: 1 2


CTR-500 Count-Input - WeisserWolf1185 - 07.05.2014 11:02

Hallo Leute!

Es geht generell um das einlesen von Daten.
Ich hab hier son uraltes FielPoint-Modul CTR-500. Das kann an den Count Inputs nur von 0-65535 zählen. Da gehen verschiedene Zähler drauf.
Takten tun die Eingänge, das kann ich sehen. Ich wollte eigentlich den Wert jede Minute auslesen lassen und dann reseten auf 0, das geht aber nicht, weil der Input Read-Only ist :/

Jetzt zur Frage:
Ich bräuchte mal nen kleinen Denkanstoß, wie ich das ganze umsetze. Aus dem Counter bekomme ich eine reele ganze Zahl. Da der Wert ja nicht linear ansteigt, müsste ich ja individuell die Counts pro Minute zählen.

Start der Messung: Count-Wert 251, nach 60-Sekunden: 274, nach erneuten 60s hat er dann nur 286 Counts. Ich müsste doch jetzt mind. 3 Variablen haben, wobei jede Minute eine andere Variable beschrieben werden muss. Das Hochrechnen der Impulse pro Stunde wäre dann ja reine Formsache.

Kann man das überhaupt umsetzen?! und vorallem geht das nicht einfacher?
Ich sehe auch noch Probleme, wenn der Counter von 65535 wieder auf 0 springt, dann müsste ich für 3 Minuten falsche Werte bekommen.

Vielen vielen Dank schonmal im Vorraus.

Gruß
Wolf


RE: CTR-500 Count-Input - GerdW - 07.05.2014 11:33

Hallo Wolf,

Zitat:Ich müsste doch jetzt mind. 3 Variablen haben, wobei jede Minute eine andere Variable beschrieben werden muss.
THINK DATAFLOW: du brauchst ein Schieberegister! Oder sammelst selbst Werte in einem Array, wofür du aber auch ein Schieberegister benötigst…

Zitat:Ich sehe auch noch Probleme, wenn der Counter von 65535 wieder auf 0 springt, dann müsste ich für 3 Minuten falsche Werte bekommen.
Zwei Lösungen:
- Wandle deine Werte nach U16 um. Wenn du dann subtrahierst, bekommst du korrekte Ergebnisse auch für den Fall eines Überlaufs.
So z.B.:
[attachment=49639]
- Addiere immer 65536 zu deinem neuen Messwert, wenn er kleiner als der vorhergehende ist, um so den Überlauf auszugleichen…


RE: CTR-500 Count-Input - WeisserWolf1185 - 07.05.2014 11:56

Du hast auch echt auf alle Fragen eine Antwort. Supergeil Smile

Um das Schieberegister werde ich mich mal kümmern, das sollte zu schaffen sein, falls nicht, weiß ich ja wo ich kompetente Hilfe finde Smile


RE: CTR-500 Count-Input - WeisserWolf1185 - 07.05.2014 18:57

Also irgendwie hab ich das Prinzip bzw. die Funktionsweise des Schieberegisters wohl doch nich verstanden.
Mit dem Drehregler wollte ich den Counter-Wert simulieren und innerhalb der 10s einfach einen höheren Wert einstellen, dann sollte im Array eigentlich die Differenz auftauchen. Aber irgendwie geht das nur bedingt.
Wenn ich zwei variable Eingänge nehme gehts, aber so nicht. Ich scheiere schon wieder an so etwas einfachermSad


RE: CTR-500 Count-Input - GerdW - 07.05.2014 19:36

Hallo Wolf,

THINK DATAFLOW!!! Wall

Hast du dir mal mit Highlight-Debugging angeschaut, was dein Snippet da so macht? Und welche Werte da wo lang "fließen"?

Wie soll innerhalb der Schleife auf deinen Drehregler reagiert werden, wenn der sich vor der Schleife befindet?

THINK DATAFLOW!


RE: CTR-500 Count-Input - WeisserWolf1185 - 07.05.2014 20:44

Ja klar hab ich mir das mit der Highlightfunktion angeschaut. Den Drehregler hatte ich auch in der Schleife, aber dann konnte ich das VI nich benutzen weil der schieberegister keine Connection hatte.
Es muss frustrierend sein, wenn einer so schwer von Begriff ist wie ich. Sad


RE: CTR-500 Count-Input - GerdW - 07.05.2014 21:12

Hallo Wolf,

Zitat:Den Drehregler hatte ich auch in der Schleife, aber dann konnte ich das VI nich benutzen weil der schieberegister keine Connection hatte.
Dann hättest du etwas anschließen sollen…

[attachment=49642]


RE: CTR-500 Count-Input - WeisserWolf1185 - 09.05.2014 12:32

Besten Dank, das läuft wie zu erwarten einwandfrei.
Allerdings habe ich auch nach mehr maligen lesen und vielen verschiedenen Versuchen, es nicht hinbekommen, alle 15 Minuten einen Wert am Ausgang der Schleife zu erhalten.
Die Wartezeit hatte ich auf 900.000ms gestellt und die Anzahl der Schleifen auf 1 oder 2.
Laufen tut es ja keine Frage, aber wenn ich den ersten Wert aus der Schleife bekomme, wartet er wieder 15 Minuten bevor er den nächsten Wert einliest, dann wieder 15 Minuten für den 2. Wert, dann bekomme ich am Ausgang der Schleife eine Zahl, das bedeutet, dass die Zeit zwischen 2 Ausgängen 30 Minuten ist und die Impulse in der Wartezeit fehlen.

Also quasi so:
1. Schleife: Wert einlesen --> 5000 --> 15min warten
2. Schleife: Wert einlesen --> 5025 --> Different 25--> Ausgabe--> 15min warten (Und diese Wartezeit darf da nicht zwischen sein, weil mir dann 12 Impulse fehlen)

1. Schleife: Wert einlesen --> 5037 --> 15min warten
2. Schleife: Wert einlesen --> 5051 --> Different 14--> Ausgabe usw.


oder hab ich jetzt total den Durchblick verloren? :/

Gruß
Wolf


RE: CTR-500 Count-Input - GerdW - 09.05.2014 12:35

Hallo Wolf,

wie soll man das beantworten ohne dein VI zu kennen?

Ansonsten: Wartezeiten wie hier im Minutenbereich sind "scheiße"! Big Grin
Was spricht gegen eine Schleifenwartezeit von 100ms und statt nur 1 oder 2 Iterationen nun vielleicht 18000? Du musst ja nicht jeden Messwert wirklich verwenden, jeder 9000ste würde ja dann ausreichen…


RE: CTR-500 Count-Input - WeisserWolf1185 - 09.05.2014 13:01

Es ist das gleiche VI wie oben von dir Smile
Ich hab es so gemacht, weil ich für die array geschichte zu doof war Smile
Wenn ich den schleifenausgang als array habe, müsste ich dann ja die min/max auswertung haben oder wie sehe ich das?! Da muss ichmal rumprobieren. Werd mich wohl diesbezüglich nochmal melden Wink