Taktgenerator

Thomas Linke

Level-1
Beiträge
155
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich möchte eine Simulation programmieren und habe folgendes Problem.

Über einen analogen Eingang lese ich die Stellgrösse 0 ... 10 V der einen Steuerung ein Sollwert für eine Pumpe. In Abhängigkeit des eingelesenen Werts, soll der Ausgang des Taktgenerator einem digitalen Ausgang zugewiesen werden, denn ich wiederum in die andere Steuerung einlese um ihn dort auszuwerten.

Anaolgwert steigt ==> Frequenz am Taktgenerator steigt
Analogwert fällt ==> Frequenz am Taktgenerator fällt

Gibt es fertige Bausteine dafür, oder hat jemand eine ähnliche Lösung schon mal erstellt? Es wäre freundlich von Euch, wenn Ihr mir hierzu ein paar Infos zukommen lassen könntet.

Gruß

Thomas
 
Hallo,

ich habe zwar keinen Baustein aber du brauchst das ja nur linear Skalieren.

zB:
0V am Eingang => 0 Hz
5V => 5 Hz
10V => 10 Hz

Oder willst du die zeitliche Änderung des Eingangssignales ausgeben?
Dann brauchst du nur dein Eingangssignal zeitlich ableiten und diesen Wert dann auf deine Frequenz skalieren.
 
Naja dann brauchst du nur deine Spannung in eine Frequenz umrechnen, daraus dann die Periodendauer deines Signales ermitteln.
Diese dann an eine Zeitfunktion die deinen Takt erzeugt. Takt an Ausgang => Fertig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kenne mich mit Codesys auch nicht so aus.
Aber zum erstellen der Frequenz gibt es einen BLINK Baustein.
Und zum Skalieren deines Analogeinganges wird es auch einen Baustein geben.
Aber das kannst du ja einfach mit einer linearen Gleichung (y = K*x + d) lösen.
 
Hi

Werde ich wohl so von Hand machen. Wollte halt nicht soviel Aufwand reinbringen.

Gruß

Thomas

Hi,

PROGRAM MAIN
VAR
IN_Spannung:REAL:=10;
Out_Frequenz_Rechteck:BOOL;
Vmax:REAL:=10;
Vmin:REAL:=0;
Fmax:REAL:=50;(*Mehr geht nicht wegen der 10ms in der Taskzeit*)
Fmin:REAL:=1;
_tmaxF:REAL;
_tminF:REAL;
_timebase:TIME;
Rechteck_Generator_H:TON;
Rechteck_Generator_L:TON;

Frequenz_OUT:BOOL;
END_VAR

(******************************************************************)
Rechteck_Generator_H(IN:=NOT Rechteck_Generator_L.Q,PT:=_timebase);
Rechteck_Generator_L(IN:=Rechteck_Generator_H.Q,PT:=_timebase);


_timebase:=REAL_TO_TIME(1000*(1/((((Fmax-Fmin)/(Vmax-Vmin)) * IN_Spannung)+Fmin)))/2;


Frequenz_OUT:=Rechteck_Generator_H.Q;(*Liefert Rechteck proportional den eingestellten Parametern*)

(***************************************************************************************)

Irek
 
irek erstmal berechnen und dan abschicken.
blink geht auch ist aber in util.lib und nicht im standard.
weil ein PLC ein cyclezeit hat ist hohe frequenz nicht moglich ohne spezieller hardware.
mit ein arduino geht das aber wirklich gut, sind da nur zwei regel software.

sehe auch www.oscat.de fur FB.
 
irek erstmal berechnen und dan abschicken.
blink geht auch ist aber in util.lib und nicht im standard.
weil ein PLC ein cyclezeit hat ist hohe frequenz nicht moglich ohne spezieller hardware.
mit ein arduino geht das aber wirklich gut, sind da nur zwei regel software.

sehe auch www.oscat.de fur FB.

Hi computershooter,

wilkommen in Atmel Welt.
Leider nicht alles laesst sich auf einer PLC programmieren, da gibt es manchmal harte Grenzen.
Einen schoenen Sonntag.

Irek
 
Zurück
Oben