Page 1 of 3

Maximal lesbare Signalfrequenz

Posted: 21 Apr 2017, 12:08
by Boris Crismancich
Bei Bahnanlagen müssen wir mit dem DIO eine Wasseruhr auslesen, die uns Pulse gibt. In einem anderen Fall einer Papierfabrik sind es induktive Schalter, welche uns die Geschwindigkeit der Maschine pulsen. In beiden Fällen bekommen wir < 50 Pulse / Sekunde.

Wir befürchten, dass das Auslesen über das Speicherabbild zu langsam dafür ist. Schon jetzt müssen wir einige Millisekunden warten, bevor sich das Speicherabbild aktualisiert. Wir müssen schließlich die doppelte Abtastrate der Signalfrequenz fahren, um die Signale sicher zu erfassen.

Im Thread viewtopic.php?f=10&t=149 haben wir gelesen. habe ich gelesen, dass Interrupts (Event-Basiert) nicht das favorisierte Modell sind. Allerdings bräuchten wir für die andere Alternative (Polling) ein Echtzeit-Betriebssystem, um sicher sagen zu können, dass wir alle Signale abtasten können. Das haben wir nicht und so kann meinem Verständnis nach der Scheduler dafür sorgen, dass wir Signale verlieren.

Hat jemand eine Idee, wie wir mit solchen Fällen umgehen?
Ich glaube, gerade in der Automatisierung sind das häufige Anwendungsfälle.

Viele Grüße aus Hamburg,
Boris

Re: Maximal lesbare Signalfrequenz

Posted: 21 Apr 2017, 12:40
by KarlZeilhofer
1. Der RevPi wird ja mit einem Echtzeit-Kernel ausgeliefert. Wenns mal funktioniert, sollten dann keine Pulse mehr übersehen werden.
2. Das DIO-Modul hat ja auch Zähler, d.h. du könntest auch einfach Zählerstände überwachen. Sollte der Pi zu langsam gewesen sein, sollte der Zähler vom DIO dennoch korrekt zählen.

Hoffe das hilft.
LG, Karl

Re: Maximal lesbare Signalfrequenz

Posted: 21 Apr 2017, 13:18
by volker
Zählen sollte typischerweise mit dem DIO als Zähler konfiguriert laufen. damit lassen sich bis zu 2Khz Zählfrequenzen erfassen.
Da Du den Zählerstand ja nur auslesen möchtest, ist der exakte zeitpunkt des Zählerstandes (Zeitstempel) sicher nicht so relevant und darf dann um die Zykluszeit der PiBridge (ca. 20 ms) plus die Zykluszeit der auswertenden Software (lesezyklus vom PA) abweichen.
Anders ist es bei der direkten reaktion auf einen Zählerstand (typischerweise ein Winkel, der durch einen Drehgeber ausgelesen wird, der einen Antrieb stoppen soll). Das kann unser DIO aktuell leider noch nicht, aber wir sind an einer Erweiterung der Firmware dran, mit der dann bei Erreichen eines Encoder-Wertes ein digitaler Ausgang direkt gesetzt wird (Verzögerungszeit typischerweise deutlich unter 1 ms).

Re: Maximal lesbare Signalfrequenz

Posted: 22 Apr 2017, 09:11
by Boris Crismancich
Ja, der Zähler war der richtige Tipp! Danke!
Sobald unsere Library fertig ist, stellen wir sie offen ins Git.

Viele Grüße,
Boris

Re: Maximal lesbare Signalfrequenz

Posted: 23 Apr 2017, 16:22
by Ingo
hallo,

da habe ich auch gleich eine Frage dazu.
Da ich gerne mit einem Hallgeber meinen Durchfluss m³/h von Wasser auslesen möchte. wäre das ja wo möglich mit dem DIO.
Ich habe hier ein geber der mit (Hz)=0,2*Q (Q=Durchflussmenge/min., bei max 120L/min +-3% möglich sind. Reicht da der Zähler auch noch, oder muss ich schon einen Impulsteiler 100:1 oder 10:1 verwenden um ein genaues Signal zu bekommen?

Da ich auf diesem Gebit sogut wie keine Erfahrung habe würde mich schon Interessieren ob mir da wer einen Rat geben oder Vorschlag machen kann.

gruß
Ingo

Re: Maximal lesbare Signalfrequenz

Posted: 23 Apr 2017, 18:46
by KarlZeilhofer
Wenn die Formel lautet f =0.2 Q, wobei f die impulsfrequenz in Hz und Q die durchflussmenge in l/min ist, dann hast du max 24Hz. Das geht sich sehr leicht aus, 2kHz kannst du damit laut Volker ja messen.

Re: Maximal lesbare Signalfrequenz

Posted: 23 Apr 2017, 21:51
by Ingo
Danke für die Antwort.

Frage: wie verwende ich das ganze dann am PI? Habe noch ein digitalen eingang frei und habe den flowmeter auf einen´mem eingang configuriert. aber wie funktioniert das? ist das richtig das der flowmeter am digitalen eingang angeschlossen wird?
Beispiele dafür? in verbindung mit Logicad3

gruß

Re: Maximal lesbare Signalfrequenz

Posted: 24 Apr 2017, 11:41
by KarlZeilhofer
Wie du in diesem Beitrag
viewtopic.php?f=8&t=205#p695
lesen kannst, liegen die Counter-Werte mit einem Offest von 6 Bytes im Image. Jeder Kanal hat 32 Bit, also 4 Bytes. D.h. an Offset 6 liegt der Counter vom Kanal 1, und an Offset = 4+(4*(16-1)) = 4+4*15 = 66 liegt der Counter Wert von Kanal 16.

LG, Karl

Re: Maximal lesbare Signalfrequenz

Posted: 24 Apr 2017, 11:51
by KarlZeilhofer
An das RevPi-Team:
Mir ist grad aufgefallen, dass man beim Eingangs-Typ auch Encoder einstellen kann. Ist das für Drehgeber mit A/B-Signalen gedacht? Wie entsteht dann hier die Paarung der beiden Signale zu einem Wert, und in welchem Zählerregister liegt dann das Ergebnis?

Gibts denn für das DIO nicht einmal eine Kurzanleitung? Ich hab so das Gefühl, dass so langsam alle möglichen Details hier im Forum auftauchen.
* 20ms Zykluszeit
* max. 2kHz Signalfrequenz für Zähler
...

LG, Karl

Re: Maximal lesbare Signalfrequenz

Posted: 24 Apr 2017, 12:19
by Ingo
KarlZeilhofer wrote:Wie du in diesem Beitrag
viewtopic.php?f=8&t=205#p695
lesen kannst, liegen die Counter-Werte mit einem Offest von 6 Bytes im Image. Jeder Kanal hat 32 Bit, also 4 Bytes. D.h. an Offset 6 liegt der Counter vom Kanal 1, und an Offset = 4+(4*(16-1)) = 4+4*15 = 66 liegt der Counter Wert von Kanal 16.

LG, Karl
Hallo Karl,

ich bin nicht so der Experte in Informatik oder Programmierung. Ich kann dir ein Schaltschgrank zusammen bauen und eine Anlage aufstellen und die E/As testen aber dann hört es auch schon auf normal. Ich sitze nun seit 3 naja 4 Monaten an meinem Projekt und komme nur mit Hilfe von Axel (guter bekannter) damit weiter.
Ich kann nicht gerade viel damit anfangen ( Offset = 4+(4*(16-1)) = 4+4*15 = 66) Verständmisshalber mal einfacher erklären, daher auch das Beispiel für Normalos, bin kein Informatiker oder DipIng.

So ich habe nun den EIngang 11 vom DIO genommen dort die Sig. Leitung vom Hallgeber angeschlossen desweiteren habe ich MEM 11 auf Counter mit steigender Flanke eingestellt. Aber es tut sich nichts ich bekomme keine werte.
Daher auch die Frage gewesen war es richtig so mit dem Anschliessen und was muss ich unter LogiCad3 beachten.

gruß