Forum: Mikrocontroller und Digitale Elektronik signalverzögerung


von tino k. (Firma: iand) (tinokuhn)


Lesenswert?

hallo allesamt,
ich suche eine einfache lösung eine zeitverzögerung im ySekundenbereich 
zu realisieren, sie muss aber variable einstellbar sein, weil es darum 
geht, zwei auslöseimpulse so anzupassen, dass letztlich deren antwort 
syncronisiert werden kann.

ich habe keine rechte ahnung von uc programmierung, bzw. ich habe nichts 
da und da das ganze für ein kleines forschungsprojekt an der uni 
gebraucht wird, vielleicht eine anfrage ob mir jemand so etwas für wenig 
gelt machen kann...

also die randbedingungen sind so.
es sind zwei schalter zu schalten mit der entsprechenden verzögerung, 
dafür sind dann relais zu schalten, 24V...
die verzägerung würde ich gern extern über uart und rs232 oder usb 
vorgeben, dann einen auslöseimpuls senden und der -was auch immer- macht 
dann zwei getrennte verzögerte signale daraus. also verzögerungen im 
bereich von ca. 1ysec bis ca 500ms in möglichst ysec auflösung in etwa.

hat jemand eine idee dafür? so etwas ganz einfach zu realisieren? poti 
geht nicht weil das ganze wie gesagt immer frei wählbar sein muss und 
parametrisch durchgefahren werden soll... geht um kurzzeitmessungen.

danke für eure hilfe

von Johannes F. (Gast)


Lesenswert?

tino kuhn schrieb:
> es sind zwei schalter zu schalten mit der entsprechenden verzögerung,
> dafür sind dann relais zu schalten, 24V...

tino kuhn schrieb:
> also verzögerungen im
> bereich von ca. 1ysec bis ca 500ms in möglichst ysec auflösung in etwa.

Hmm, Relais haben Anzugverzögerungen im ms-Bereich. Eine µs-Auflösung 
wird sich also schlecht machen lassen.

Johannes

von tino k. (Firma: iand) (tinokuhn)


Lesenswert?

danke johannes, du hat recht

es geht ein wenig darum genau diese verzögerung durch entsprechende 
vorsteuerung zu versuchen zu kompensieren... die dinger müssen dann noch 
eine pneumatik schalten etc... am ende der kette stehen dann zwei 
messsignale einer druckwelle durch zwei stäbe (split hopkinson bar, 
2dimensional) die es im ySekundenbereich zu synchronisieren gilt...
also, im endeffekt signale messen und dann an den einzelverzögerungen 
und toleranzen spielen um so halbwegs aufeinander abzustimmen.

ich wüsste jetzt keine andere möglichkeit wenigsten in die richtung zu 
gelangen.

tino

von Lehrmann M. (ubimbo)


Lesenswert?

Johannes F. schrieb:
> tino kuhn schrieb:
>> es sind zwei schalter zu schalten mit der entsprechenden verzögerung,
>> dafür sind dann relais zu schalten, 24V...
>
> tino kuhn schrieb:
>> also verzögerungen im
>> bereich von ca. 1ysec bis ca 500ms in möglichst ysec auflösung in etwa.
>
> Hmm, Relais haben Anzugverzögerungen im ms-Bereich. Eine µs-Auflösung
> wird sich also schlecht machen lassen.

Genauigkeit oder Auflösung ? Das ist enorm wichtig!

Natürlich sind Relais für solche Schaltzeiten völlig ungeeignet. Je nach 
Alter, Verschleiß, etc... variieren die Schaltzeiten im ms Bereich. Man 
sollte über den Einsatz von Triacs od. Mosfets nachdenken. Je nach 
Anwendungsbereich. Bitte genauer spezifizieren.

tino kuhn schrieb:
> ich habe keine rechte ahnung von uc programmierung, bzw. ich habe nichts
> da und da das ganze für ein kleines forschungsprojekt an der uni
> gebraucht wird, vielleicht eine anfrage ob mir jemand so etwas für wenig
> gelt machen kann...

Was stünde dir denn für ein Budget zur Verfügung? 50€ wirst du schon 
einplanen müssen für die Arbeitszeit.

von tino k. (Firma: iand) (tinokuhn)


Lesenswert?

ich sage mal so, so lange wie es sich im dreistelligen bereich befinded 
ist das budget ok...

wie gesagt, es sind mit dem ding dann zwei pneumatikventile zu 
schalten... die haben so eine grobe verzögerung, das es nicht mehr 
feierlich ist, es geht darum diese so weit wie möglich zu kompensiern 
nach jeder messung am ende der ganzen regelkette, also entsprechend 
vorzusteuern. ich denke da sind die relais dann eher weniger das 
problem. ansonsten würde ich die ströme nochmal raussuchen.

bisher kommt das steuersignal serial über rs232 aber da sind max. 10ms 
drinne... es geht darum das so weit wie möglich runter zu schrauben.

also vielleicht kurz grob die randbedingungen
die zeitauflösung sollte 1MHz sein, dabei ist es nicht relevant eine 
timer zu nutzen oder so, vorgabe entsprechender schleifendurchgänge wäre 
durchaus ok, wie gesagt, ich messe eh das ausgangssignal und ob 
verzögerung durch zeiten oder steps definiert wird ist wurscht. ich 
könnte mir vorstellen das der über den uart einfach eine anzahl loops 
bekommt die er warten soll, und ab gehts... setzen des einen signales, 
warten dann das andere... eigentlicht total simple.

relais sind schon ne option weil das ganze in einer sps umgebung auf 24 
basis funktionieren soll... wenn du meinst das geht so halbwegs zu 
machen, das ganze noch auf ne kleine platte gepackt fix und fertig nur 
noch strom drann und gut..  gern sofort. dann mach ich nochmal was 
konkretes fertig.

tino

von J.-u. G. (juwe)


Lesenswert?

tino kuhn schrieb:
> wie gesagt, es sind mit dem ding dann zwei pneumatikventile zu
> schalten... die haben so eine grobe verzögerung, das es nicht mehr
> feierlich ist, es geht darum diese so weit wie möglich zu kompensiern
> nach jeder messung am ende der ganzen regelkette, also entsprechend
> vorzusteuern.

Tja, die Verzögerung der Pneumatikventile wird aber vermutlich bei jedem 
Schaltvorgang anders sein (die von Relais auch). Du weist also nie, wie 
viel Du "vorsteuern" musst.

von Wilhelm F. (Gast)


Lesenswert?

Ich habe keine Ahnung von Pneumatikventilen, aber vielleicht sind sie 
wie Relais. Wenn der normale Nennstrom den Magnetkreis nicht schon 
sättigt, und das tut er meistens nicht, da könnte evtl. ein viel 
stärkerer Einschaltstromstoß helfen. Abschalten kann man Relais nur 
bedingt schneller. Es sei denn, sie sind magnetisch gepolt. Die 
Pneumatik an sich wird aber auch träge sein. Zu Zeiten von Konrad Zuse 
gab es schon Versuche mit Rechnern auf pneumatischer Basis. Im Prinzip 
kann man Digitaltechnik mit Dampf betreiben. Strom erwies sich aber als 
schneller. Bis zum heutigen Tage.

Diese pneumatischen Ventile sind wohl auch noch so ein Relikt aus der 
Vergangenheit, wie die mechanische Fernsprechtechnik, die ja längst 
abgeschafft ist.

Ich testete vor ein paar Tagen noch ein paar alte Relais aus meiner 
Sammlung. Und die zogen oberhalb der Nennspannung durchaus kräftiger und 
schneller an. Gemessen habe ich nichts, man sieht es nämlich schon mit 
bloßem Auge.

Rein elektrisch eine µs zu verzögern, da fällt mir spontan z.B. ein 
Komparator mit vorgeschaltetem RC-Glied ein. Der Komparator könnte z.B. 
die Schaltschwelle bei 1 Tau haben. Wobei man das R mit binär 
gewichteten Widerständen über Analogschalter verändern könnte... Aber 
nur eine erste Idee, viele Wege führen nach Rom.

Die schnellsten Relais, die ich vor sagenhaften 30 Jahren kannte, waren 
die ESK-Relais von Siemens mit 1ms. Die waren in den letzten Anlagen, 
bevor die reine Elektronik kam. Dann noch ein paar schnelle Prüfrelais 
aus der Fernsprechvermittlungstechnik mit 3ms. Die ganz normalen 
Postrelais (Flachrelais) lagen eher im Bereich 10..100ms.

von Falk B. (falk)


Lesenswert?

@  tino kuhn (Firma: iand) (tinokuhn)

>wie gesagt, es sind mit dem ding dann zwei pneumatikventile zu
>schalten... die haben so eine grobe verzögerung, das es nicht mehr
>feierlich ist, es geht darum diese so weit wie möglich zu kompensiern
>nach jeder messung am ende der ganzen regelkette, also entsprechend
>vorzusteuern. ich denke da sind die relais dann eher weniger das
>problem. ansonsten würde ich die ströme nochmal raussuchen.

jaja, eine Kette aus Relais und Pneumatikventilen mikrosekundengenau und 
reproduzierbar steuern. Dream on.

>bisher kommt das steuersignal serial über rs232 aber da sind max. 10ms
>drinne... es geht darum das so weit wie möglich runter zu schrauben.

Nein, darum geht es NIE! Es geht IMMER erstmal darum, ein sinnvolle 
Abschätzung der Grenzwerte zu machen .

>die zeitauflösung sollte 1MHz sein,

Seit wann wird Zeit in MHz gemessen? Früher (tm) waren das eher Sekunden 
oder Mikrosekunden.

>bekommt die er warten soll, und ab gehts... setzen des einen signales,
>warten dann das andere... eigentlicht total simple.

Und warum ist es dann noch nicht fertig?

>relais sind schon ne option weil das ganze in einer sps umgebung auf 24
>basis funktionieren soll...

Und die arbeitet mikrosekindengenau?. Unsinn. So eine SPS hat eine 
Zykluszeit von 1-100ms, je nach Programm.

Wenn deine Kiste die Verzögerung mit 100 µs auflösen kann ist das mehr 
als Luxus. Das kann ein kleiner Mikrocontroller ala AVR problemlos, auch 
für zwei Kanäle.

MFG
Falk

P S Und ich wette, das Problem liegt a) ganz woanders und muss b) anders 
gelöst werden, z.B. duch andere Aktoren an Stelle der Pneumatikventile. 
Aber solche Analysen sind ja huete nicht mehr in.

von tinokuhn (Gast)


Lesenswert?

jungs danke für die vielen hinweise

ich weis das es anders gelöst werden sollte, aber der ganze kram steht 
schon da. es ist ein prüfeinrichtung für 
hochgeschwindigkeitsmaterial-kennwerte, da gibt es zwei 
pneumatikzylinder die vorgespannt sind, die schiessen jeweils ein 
projektil los... diese sollten dann so zeitgleich wie möglich auf 
jeweils einen stab auftreffen, der jeweils ein spannungswelle auslöst, 
dies sich so zeitgleich wie möglich, idealerweise nicht mehr als 10ysec 
unterscheiden sollen... ich weis das da noch ganz viele andere 
toleranzen im spiel sind. aber es gibt nicht mehr allzu viele 
stellschrauben, die auslösung beider erfolgt jeweils getrennt durch 
einen pneumatikimpuls.... :-( da habe ich kein wirkliches spiel mehr so 
richtig...

also mann kann auch sagen, last uns zwei gewehre abfeuern und hoffen das 
die kugeln sich treffen ;-)

ich will das nicht per sps machen, die macht den rest der da noch 
ringsrum ist und hat in der tat nur 1 ms

ich will nur die differen zwischen den beiden schlatimpulsen steuern das 
heist, diesen jeweils neu berechnen via rs232 runterschicken und 
natürlich variieren können, absolut können sie gern verzögern... darauf 
kommt es nicht an, nur die differenz ist entscheidend.

tut mir leid, natürlich ist es kein klacks aber wenn jemand tagtäglich 
vielleicht damit umgeht ists vielleicht leicht, ich mach das halt mit pc 
und serial, aber da bin ich bei den grenzen momentan.

falk du hast recht damit das man das hätte anders angehen müssen, aber 
jetzt muss man rausholen was man kann. ein ordentlich stapelaktor den 
man vielleicht über eine kondensator entladung anregt hätte mir 
vielleicht auch lieber gepasst. achso, es geht hier um projektile die 
ca. 2kg wiegen und mit ca. 40m/sec rumfliegen, die impulse erzeugen 
mech. spannungen bei 200MPa. also nix für kleines zierliches. :-(

mit der aktuellen anortnung bekommt man verzögerungen im bereich von 1ms 
recht reproduzierbar hin, wenn man das noch auf 10ysec drücken kann wäre 
das schon mal ein gewinn...

ich sehe da kaum eine andere lösung. ich habe leider kein 
programmierzeug etc da und sich jetzt in einem controller reinzuarbeiten 
würde ich gern umgehen wollen, weil das zu ineffizient wird.

hat sonst jemand ne idee? wie gesagt, ich messe die zeiten am ende immer 
mit und wenn sie aus dem ruder laufen würde ich sie anpassen lassen... 
so mein ansinnen ;-)

danke euch schon mal ...

von Anja (Gast)


Lesenswert?

tino kuhn schrieb:
> vorsteuerung zu versuchen zu kompensieren... die dinger müssen dann noch
> eine pneumatik schalten etc...

Statt über eine (temperatur, Spannungs und Mondphasenabhängige) 
Vorsteuerung nachzudenken, solltest du dir mal anschauen wie andere das 
machen.

Um Schaltzeiten von Ventilen schneller und genauer zu realisieren 
verwendet man üblicherweise geboosterte Endstufen (und keine Relais 
!!!).
Durch anheben der Ansteuerspannung auf den z.B. 5-fachen nominalwert des 
Ventils wird die Öffnungszeit entsprechend reduziert und die Ansteuerung 
genauer. Meistens sind diese Endstufen zudem stromgeregelt um 
Temperaturunterschiede der Ventile auszugleichen. Beim schließen des 
Ventils wird der freilaufstrom in den Boosterkreis zurückgespeist um die 
Schnellöschzeit des Ventils gering zu halten.

Gruß Anja

von holger (Gast)


Lesenswert?

>ich sehe da kaum eine andere lösung. ich habe leider kein
>programmierzeug etc da und sich jetzt in einem controller reinzuarbeiten
>würde ich gern umgehen wollen, weil das zu ineffizient wird.

Lächerlich. Der uC kann deine Messages per RS232 empfangen
und speichern. Wenn beide Messages angekommen sind schiesst
der dir dann auch gleichzeitig die Projektile ab.

Das Problem bei dir scheint doch nur die Auslösung per
RS232 und die Übertragungszeit zu sein.

von Michel (Gast)


Lesenswert?

Wenn du Druckwellen im us-Bereich sauber erzeugen möchtest, geht das 
sehr gut steuerbar mit zwei anständigen, gepulsten Nd:YAG-Laser. Das 
Verfahren paßt aber leider nicht zu den Budget-Vorstellungen

von tinokuhn (Gast)


Lesenswert?

holger schrieb:
>>ich sehe da kaum eine andere lösung. ich habe leider kein
>>programmierzeug etc da und sich jetzt in einem controller reinzuarbeiten
>>würde ich gern umgehen wollen, weil das zu ineffizient wird.
>
> Lächerlich. Der uC kann deine Messages per RS232 empfangen
> und speichern. Wenn beide Messages angekommen sind schiesst
> der dir dann auch gleichzeitig die Projektile ab.
>
> Das Problem bei dir scheint doch nur die Auslösung per
> RS232 und die Übertragungszeit zu sein.

ich sehe es rein controllertechnich auch nicht als problem, ist auch 
wurscht wie lange der wirklich absolut für das auslösen braucht nadem er 
sein io bekommen hat, wichtig nur die differenz zwischen beiden, alles 
andere hat zeit.

von tinokuhn (Gast)


Lesenswert?

Michel schrieb:
> ich sauber erzeugen möchtest, geht das
> sehr gut steuerbar mit zwei anständigen, gepulsten Nd:YAG-Laser. Das
> Verfahren paßt aber leider nicht zu den Budget-Vorstellu

die lasersache war mal im gespräch... also das ding steht an der uni in 
dresden die druckwelle ist aber nicht ausreichend, das sind ganz andere 
größenordnungen... es geht ums so etwas 
http://www.emi.fraunhofer.de/Arbeitsgebiete/TechnischeAusstattung/AufbauBeschleunigungsanlagen.asp
nur zwei achsen, das hat aus gutem grunde auch noch keiner gemacht...

von tinokuhn (Gast)


Lesenswert?

Anja schrieb:
> Um Schaltzeiten von Ventilen schneller und genauer zu realisieren
> verwendet man üblicherweise geboosterte Endstufen (und keine Relais
> !!!).
> Durch anheben der Ansteuerspannung auf den z.B. 5-fachen nominalwert des
> Ventils wird die Öffnungszeit entsprechend reduziert und die Ansteuerung
> genauer. Meistens sind diese Endstufen zudem stromgeregelt um
> Temperaturunterschiede der Ventile auszugleichen. Beim schließen des
> Ventils wird der freilaufstrom in den Boosterkreis zurückgespeist um die
> Schnellöschzeit des Ventils gering zu halten.
>
> Gruß Anja

danke dir anja, das ist auf jeden fall noch eine extra option in meinen 
augen, um zumindest die genauigkeit der magnetventile, relais etc hoch 
zu treiben. wir müssen da eh die ganze ketter hintereinander weg durch 
gehen um rauszuholen was geht... aber der klitzekleine problem bleibt 
noch, das ich einfach zwei sachen schnell hintereinander schalten muss, 
also den einen bei 0 den anderen vielleicht bei 123+/-1 ys

aber das mit der überspannung ist ne super idee

von tinokuhn (Gast)


Lesenswert?

na ok jungs, ich hol mir jetzt doch so ein billige bastel set und 
probiere mal was noch rauszuholen ist...

danke euch für eure hilfe und guten tips. ist vielleicht doch ein zu 
triviales problem für das forum hier...

liebe grüße
tino

von Falk B. (falk)


Lesenswert?

@  tinokuhn (Gast)

>augen, um zumindest die genauigkeit der magnetventile, relais etc hoch
>zu treiben. wir müssen da eh die ganze ketter hintereinander weg durch
>gehen um rauszuholen was geht...

Z.B die Relais rauschmeißen, der Transistor ist seit über 60 Jahren 
erfunden.
Und wird immer noch besser.

>also den einen bei 0 den anderen vielleicht bei 123+/-1 ys

Und hör bitte auf ys für Mikrosekunden zu schreiben.
Entweder us oder µs, geht einfach mit AltGr + m

MfG
Falk

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> Und hör bitte auf ys für Mikrosekunden zu schreiben.


naja, vielleicht strebt er ja Yocto-Sekunden an ...

http://de.wikipedia.org/wiki/Vors%C3%A4tze_f%C3%BCr_Ma%C3%9Feinheiten

von tinokuhn (Gast)


Lesenswert?

Falk Brunner schrieb:
> Relais rauschmeißen, der Transistor ist seit über 60 Jahr

mach ich Falk, versprochen aber als bauing traut man sich da nicht 
gleich ran an dies strömlinge und die magnetventile bleiben sicherlich 
das größere übel und die ziehen noch ordentlich strom und dann der ganze 
rest... naja.

danke euch allen.

von Anja (Gast)


Lesenswert?

tinokuhn schrieb:
> as ich einfach zwei sachen schnell hintereinander schalten muss,
> also den einen bei 0 den anderen vielleicht bei 123+/-1 ys

Da würde ich einen Prozessor mit 16-Bit Timer und 2 Compare-Ausgängen 
(CCP) verwenden. Bei 1 MHz Timer-Takt lassen sich Differenzen bis knapp 
65ms darstellen.

Ich würde einen ATMega32 (ATMega644) oder einen PIC18F2520 nehmen.
Haben jeweils 2 CCP-Ausgänge und eine serielle Schnittstelle für die 
Parametrierung.

Gruß Anja

von tinokuhn (Gast)


Lesenswert?

Wegstaben Verbuchsler schrieb:
> naja, vielleicht strebt er ja Yocto-Sekunden an ...

nee, du meine probleme reichen mir dann doch schon.. es waren natürlich 
die usec...

von tinokuhn (Gast)


Lesenswert?

Anja schrieb:
> Da würde ich einen Prozessor mit 16-Bit Timer und 2 Compare-Ausgängen
> (CCP) verwenden. Bei 1 MHz Timer-Takt lassen sich Differenzen bis knapp
> 65ms darstellen.

danke dir... das klingt gut. ich hätte ihn jetzt einfach runden drehen 
lassen nach dem ersten ausgangssignal... bei 10MIPS sollten da doch usec 
unterschiede drinne sein...

na, ich danke dir. ich werd mir so ein atmel ding holen. da kann ich 
gleich noch mit die lichtschranken mit auslesen.

von Anja (Gast)


Lesenswert?

tinokuhn schrieb:
> mit die lichtschranken mit auslesen.

falls es 2 Lichtschranken sind solltest Du mindestens einen ATMega1284 
verwenden.

Achtung Atmel hat ein falsches Datenblatt (doc8272) verlinkt.
Dieses hier ist (für die Timer) z.Zt. besser:

http://www.atmel.com/dyn/resources/prod_documents/doc8059.pdf

Gruß Anja

von Malefiz (Gast)


Lesenswert?

Warum nicht beide Zylinder über das selbe Ventil schalten mal so 
leienhaft gefragt?

von tino k. (Firma: iand) (tinokuhn)


Lesenswert?

Hallo Malefix,
das wäre die einfachste Variante, aber die Zylinder haben bereits 
diverse Toleranzen, Reibung Projektil im Lauf etc... sodass sie nicht 
das gleiche zeitliche Verhalten habe. Sie werden immer entsprechende 
Unterschiede produzieren... Das nächste Ding ist, das unterschiedliche 
Drücke einstellbar sein sollen, sodass letztlich die dadurch 
hervorgerufenen Projektielgeschwindigkeitsunterschiede mit kompensiert 
werden sollen. Wie gesagt, die Differenzen kann ich gut messen, aber 
noch nicht darauf reagieren.

von J.-u. G. (juwe)


Lesenswert?

Auch auf die Gefahr hin, mich zu wiederholen: Du hast diverse 
mechanische Komponenten in Deinem Aufbau. Deren Auslöseverhalten ist 
zeitlich nicht reproduzierbar (im µs-Bereich). Elektronisch ist es 
natürlich kein Problem, µs-genaue Timings einzuhalten. Eine µs-genau 
definiertes Auslösen der mechanischen Komponenten kann ich mir nicht 
vorstellen.

von Matthias (Gast)


Lesenswert?

Zum Zeitverhalten der mechanischen Komponenten wird man wohl nicht 
drumrumkommen, unter konstanten Bedingungen mal ein paar Versuche zu 
fahren, um herauszukriegen, wie weit das Zeitverhalten kalibrierbar ist. 
Die elektronische Steuerung der Zeitverzögerung sollte dabei das 
kleinste Problem sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.