Seite 1 von 1

$Delay

Verfasst: Sonntag 24. August 2014, 11:59
von compander
Hallo Freunde.

Anbei ein Projektbeispiel mit der Setliste.
Da die Schrift klein, und nicht skalierbar ist, wurde das Display $DSP1 eingefügt.
Nach Anwahl eines Wertes erscheint dieser auch in dem Display. Und verbleibt dort.
Auch wenn der Focus auf ein anderes Bateil gerichtet wird.
Soweit ist alles wunderbar.
Siehe Beispiel "Test a".

Das Beispiel "Test b" unterscheidet sich lediglich darin, dass der Festwert, der Vergleicher
und Hold in ein Makro gepackt wurde.
Hier ist das Verhalten jedoch gänzlich anders.
Sobald der Focus das Fenster der Seltliste verlassen wird (in dem man z.B. die Tasten T1, oder T2 drückt,
oder in das num. Eigabefeld geht), so ist das Display $DSP1 leer.
Das ist sehr ungünstig. Nun weis man nicht mehr, welcher Wert selektiert wurde.

Was mache ich falsch?
Weiß jemand Abhilfe für dieses Problem?

Herzlichen Gruß an Alle von C :shock: mpander.

Re: Seltliste mit Makro. Problem.

Verfasst: Freitag 29. August 2014, 12:00
von IKT
Hallo Compander,

der Unterschied sind wohl die zus. Bausteine dazwischen "Makro-Pin".
ABER:
Das es in 'Test A' funktioniert, ist mMn (meiner Meinung nach) eher ein Zufall, da in dem Augenblick, in dem der Fokus 'weg' ist, sowohl der String- als auch der Index-Ausgang sich ändern (IDX=-1, String = ""), wir sind hier wohl im nS Bereich.

Hier fehlt ein Bauteil ... String-Delay (Verzögerung) ...

Bei ähnlichen Problemen im Bereich Analog ist der Baustein Delay(Anzahl System-Takt) die Lösung.
Das digitale Signal des Vergleichers ist dann schneller als die Änderung des Analog-Signals (Strings), somit wird dieser verlässlich im S&H ($HLD) gespeichert.

Re: Seltliste mit Makro. Problem.

Verfasst: Freitag 29. August 2014, 12:57
von compander
Hallo IKT.

Danke für die Antwort und Erklärung.

Leider verstehe ich den Satz nicht.:
"Hier fehlt ein Bauteil ... String-Delay (Verzögerung) ..."

Ist damit meine Schaltung, oder das Fehlen des Bauteiles in der PLE-Bibliothek gemeint?

Herzlichen Gruß von C :shock: mpander.

Re: Seltliste mit Makro. Problem.

Verfasst: Freitag 29. August 2014, 15:54
von IKT
Hallo Compander,
compander hat geschrieben:... das Fehlen des Bauteiles in der PLE-Bibliothek ...
Genau das ist gemeint, das B-Teil fehlt, müsste es aber geben, für solche Fälle!

$Buffer ist eine mögliche Alternative, wenn IDX = -1 dann $Buffer auslesen.

Re: Seltliste mit Makro. Problem.

Verfasst: Samstag 30. August 2014, 10:09
von compander
Hallo IKT. Hallo Abacom.

Ich plädiere ebenfalls für ein neues Bauteil "$Delay".
Zumal mehrere Versuche meinerseits ein solches Bauteil (möglichst einfach) nachzubilden negativ waren.

Herzlichen Gruß an Alle von C :shock: mpander.

Re: Seltliste mit Makro. Problem.

Verfasst: Samstag 30. August 2014, 12:11
von compander
Hallo.

Ich habe die Schaltung und das Makro komplett neu gezeichnet.
Nun funktioniert alles.
Siehe Anhang.

Es zeigt sich erneut, daß es oft darauf ankommt, in welcher Reihenfolge eine Schaltung entworfen wird.
Es wäre nützlich, wenn sich Abacom einmal zu dieser Problematik äußern würde.
Worauf man beim Entwurf einer Schaltung unbedingt achten sollte.

Die Notwendigkeit des Bauteiles "$Delay" macht unter diesen Umständen (Beeinflußen einer Reihenfolge) nun erst recht Sinn.

Herzlichen Gruß von C :shock: mpander.

Re: Seltliste mit Makro. Problem.

Verfasst: Samstag 30. August 2014, 13:40
von IKT
@Compander,

schau mal unter Programmierung DLL's:
http://forum.abacom-online.de/viewtopic ... 196#p14196

Re: Seltliste mit Makro. Problem.

Verfasst: Samstag 30. August 2014, 15:32
von compander
Hallo IKT.
Hallo Interessierte.

Habe geschaut.
Und war wirklich erfreut.
Deine "$Delay.dll" funktioniert super.

Die ursprüngliche Aufgabenstellung war ja, daß die Setlist-Auswertung mit Makro erfolgen soll.
Anbei ein Beispiel, wo nun im Makro deine ".dll" eingebaut ist.

Besten Dank, und Gruß von C :shock: mpander.

(langfristig ist das "$Delay-Bauteil" wünschenswert. Mit einstellbaren Systemtakte-Anzahl)

Re: Seltliste mit Makro. Problem.

Verfasst: Samstag 30. August 2014, 16:46
von IKT
Hallo zusammen & Compander,
compander hat geschrieben:langfristig ist das "$Delay-Bauteil" wünschenswert. Mit einstellbaren Systemtakte-Anzahl)
Es wäre grundsätzlich einfach, so etwas zu erstellen, ... wenn, ja wenn ... da NICHT die Einschränkungen bei den Strings in der gegenwertigen Implementation des DLL-Interfaces wären!
Im Moment ist DLL-Programmierer gezwungen den/die Strings in PUser (bekantlich als Double deklariert) unterzubringen (speichern). Dies hat mehrere Auswirkungen:
- Eng begrenzter Speicher (100 Doubles = 800 Bytes)
- Aufwendiger Code um das "hinzukriegen" (Byte-weises Kopieren, von String/zu String)
- usw.
Desshalb hätte von meiner Seite, eine Version 2, des DLL-Interfaces Vorrang (welche eine andern Ort's beschriebene, weitreichende Ergänzung, der String Unterstützung bieten würde!).
Damit ist folgendes gemeint:
String-Bereich wie PUser, in allen, von PL verwendeten SUB's/Prozeduren vorhanden/ansprechbar und im PL-Projekt gespeichert.