DIAdem-Version: 11 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2009
Beiträge: 4
Registriert seit: Jul 2010
Signalvorverarbeitung im DAC
Hallo erstmal!
Ich habe eine Frage zur Signalverarbeitung im DAC.
Mein Problem:
Ich lese von einem CAN-Bus ein 0 bis 65535 Signal ein, welches von einem 360° drehbaren Encoder gesendet wird. Nun bekomme ich das Signal im DIAdem 11 und wandel es in 0 bis 359°.
Jetzt will ich aber keine 0 bis 359° haben, sondern würde dieses Signal gerne von 0..359° in -180..180° umwandeln.
Dazu müsste ich allerdings das Signal durch eine IF-Anweisung durchschicken. Allerdings habe ich da noch keine Möglichkeit gefunden.
Hallo antares,
könntest das ganze mit einem Formel-Block lösen.
Gibt man dort z.B. ein "Signal_In<180" erhält man für alle Werte, die kleiner als 180 sind, den Wert 1 zurück (sonst 0). Multipliziert man diese "1" mit z.B "-180+Signal_In", erhälst du für den Eingangssignal 0...180 als Ausgangssignal -180...0.
Das ganze kann man dann auch noch für "Signal_In>180" machen. Nur dieses mal wird es mit "Signal_In-180" multipliziert.
Durch Addition verknüft man die beiden Terme.
Im Ganzen (mit paar Klammern) könnte es so ausehen:
((Signal_In<180)*(-180+Signal_In))+((Signal_In>180)*(Signal_In-180))
In Anhang noch das Beispiel als kompletter DAC (aber von DIAdem 11.1).
DIAdem-Version: 11 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2009
Beiträge: 4
Registriert seit: Jul 2010
RE: Signalvorverarbeitung im DAC
Hallo!
Danke für die Antwort, dass ist genau das, was ich gesucht habe! Allerdings habe ich das mit IF .... versucht.
Ich habe das grad mal ausprobiert, aber leider mag der den Formelblock nicht..
DIAdem-Version: 10.2, 11.1, 2010 und auf alten CD's runter bis 3.0 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 1996
Beiträge: 429
Registriert seit: Oct 2008
RE: Signalvorverarbeitung im DAC
Hallo antares,
ist steer_fb schon der Klemmenname? Falls nicht, Namen kopieren klicken... Und Du musst den Klemmennamen in einfachen Anführungszeichen setzen ('), also (('steer_fb'>180)*('steer_fb'-359)). Alternativ kannst Du auf die Klemme eins auch so zugreifen: ((ds1>180)*(ds1-359)).
Gruß
Bruno
DIAdem-Version: 11 DIAdem-Sprachversion: DE DIAdem Erfahrung seit: 2009
Beiträge: 4
Registriert seit: Jul 2010
RE: Signalvorverarbeitung im DAC
Jetzt klappt es!
Es lag an dem Klemmennamen im Formelbaustein.
Den habe ich total übersehen. Die (' ') musste ich jetzt nicht setzen, es hat aber mit beiden Varianten funktioniert.