Maximal lesbare Signalfrequenz

Für Themen rund um das Prozessabbild des RevPi Core
User avatar
Ingo
Posts: 266
Joined: 10 Nov 2016, 21:56
Answers: 1
Location: Luth.Wittenberg

Re: Maximal lesbare Signalfrequenz

Post by Ingo »

Also, ich habe es mal mit einem normalen Couter getestet und es geht auch damit.
FM_TestWerte.JPG
FM_TestWerte.JPG (19.37 KiB) Viewed 5002 times
zwar habe ich dies ersteinmal nur mit einem Impulsgeber versucht der mit 50ms am laufen war aber ich bekomme Frequenz und durchfluss schon einmal angezeigt.
Nun kann ich das Teil einbauen und unter normalen umständen testen. Ich hoffe das der Pi schnell genug ist um ca 208l/min zu erfassen im test haben wir 40hz erfassen können.
Wenn das klappt so wie ich es mir vorgestellt habe dann spare ich mir echt viel arbeit und zusätzliche Hardware :D

gruß
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41
Answers: 1

Re: Maximal lesbare Signalfrequenz

Post by volker »

Hallo Ingo,
das verstehe ich jetzt nicht so ganz. Warum sparst Du Dir Hardware, wenn Du mit logi.cad zählst, statt direkt die Zählerfunktion der DIO zu nutzen? Der Anschluss ist elektrisch doch völlig identisch und wenn Du 5 V Ausgänge bei dem Sensor hast, wirst Du so oder so nicht um eine Pegelumsetzung herumkommen.

Hast Du mal versucht, beim Export den Haken bei dem eigentlichen Counter zusetzen? Dann bekommst Du einen verlässlichen Zählwert. Wir haben im Messemodell mit den beiden Säulen ja auch ganz normale Durchflussgeber (NPN mit Pullup auf 12 V) und das funktioniert mit LC3 absolut stressfrei. Schade, dass Du uns nicht auf der Messe besuchen kannst, dann hätte ich Dir das alle mal zeigen und erklären können...

Zum Counter-Reset:
Also aktuell geht das mit der Firmware des DIO nicht. Der Counter läuft so lange hoch, so lange er Strom hat. Das ist aber unkritisch, denn als 32 bit Integer wirst Du unter normalen Umständen sicher nicht so schnell ans Limit kommen (Du willst ja nur einen Pool befüllen und nicht das Mittelmeer, oder?).
Im dem Messemodell bin ich so vorgegangen, dass ich in LC3 (ich arbeite mti ST) einfach beim Starten des Zulaufs während dem ich die zulaufende Flüssigkeitsmenge feststellen will, erst einmal den aktuellen Zählerstand als Anfangswert hole und dann beim Zählen eben eine Variable bilde, die die Differnez zwischen aktuellem Zählerstand und Anfangswert zugewiesen bekommt. Aus die Maus...

In der nächsten Release mit dem Jessie Image wird dann auch ein Firmware-Updater enthalten sein, der dann ein Update der Firmware von Modulen wie dem DIO über die PiBridge vom RevPi Core aus erlaubt. Wir stellen dann auch ein Update für den DIO zur Verfügung, bei dem durch eine Vebesserung der Kommunikation die PiBridge unter verschärften EMV Bedingungen (Sven hatte da bei seinem Aufbau Probleme) noch stabiler läuft. In diesem Firmwareupdate bekommen die DIO und Di Module auch einen Reset der Zähler spendiert, der über einen Funktionsaufruf im PiControl abgerufen werden kann. Ob und wie wir den Reset auch über das Prozessabbild ermöglichen, dass steht nicht fest. Aber ein zyklisches Beschreiben des Zählers mit Werten aus dem Prozessabbild macht absolut keinen Sinn!!! Wir arbeiten bei eienr EN61131-Steuerung doch zyklisch und nicht Eventbasiert! Wie soll also PiControl einen sinnvollen Zählerwert liefern, wenn er zuvor immer mit dem aktuellen Wert aus dem Prozessabbild überschrieben wird? In der EN61131 Logik gibt es logischerwiese keine Eingänge, die zugleich Ausgänge wären. Allerdings kann man den Zustand der Ausgänge natürlch auch einlesen.
Daher braucht es eine Veventbasierte Verarbeitung: Ich will ja den Reset nur punktuell und einmalig durchführen. Bei einer En61131-Steuerung kann man das durch einen "Coil"-Ausgang (Bool, 1 Bit) und einen Signaleingang (Bool 1 Bit) realiseren. Aber der Ablauf in der Steuerungssoftware ist dann ein wenig kompliziert und viele Steuerungstechniker kommen mit solchen "Flanken gesteuerten Funktionen" nicht gut zurecht. Das geht dann in etwa so:
Ich lese den Quittungseingang. Ist er 0 dann habe ich die Freigabe, durch Setzen des Reset-Ausgangs auf 1 einen Reset auszulösen. Wird dieser reset durchgeführt, so setzt der Slave (=DIO) dann den Quittungsausgang auf 1. Die 1 auf dem Reseteingang hat somit keine Bedeutung mehr. Der Master (Core, LC3 Software) muss bei einem Quittungseingang=1 nun den Resetausgang auf 0 setzen. Erst dann reagiert der Slave (DIO) und setzt den Quittungseingang wieder auf 0 zurück und wir haben die Ausgangslage wieder hergestellt.
Ziemlich kompliziert, oder? Deshalb wissen wir nicht, ob es sich lohnt, dieses "Ping-Pong"-Spiel für ein Reset über das PA (und damit LC3) wirklich einzubauen. Viel einfacher geht es über den Aufruf einer PiControl Funktion (ähnlich wie beim Abruf des Offsets bei Angabe einer symbolischen Bezeichnung). Wenn man das allerdings unter LC3 nutzen möchte, dann müsste jemand (logi.cals??? Ein User aus unserer Community???) einen entsprechenden Funktionsblock programmieren und bereitstellen.
Unser RevPi Motto: Don't just claim it - make it!
User avatar
Ingo
Posts: 266
Joined: 10 Nov 2016, 21:56
Answers: 1
Location: Luth.Wittenberg

Re: Maximal lesbare Signalfrequenz

Post by Ingo »

Hallo Volker,

Wie gesagt es Funktioniert nun +- Toleranz in 60sec haben wir ein wert von 0,99 Hz was Akzeptabel ist. Da ich ja nutzer von LC3 FBS bin kann ich der gemeinde hier ja auch mal das snipping zeigen wie der Baustein von aussen ausschaut.
flowmeter.JPG
flowmeter.JPG (25.42 KiB) Viewed 4997 times
Es hat schon eine kleine Weile gedauert aber er macht genau das was er soll.

gruß
Post Reply