Einfacher Multiplexer

Dieser Bereich ist für den Austausch FERTIGER Makros und allgemein nützlicher Schaltungen vorgesehen.
Antworten
t.ebbinghaus
Beiträge: 51
Registriert: Montag 5. Juli 2010, 07:34

Einfacher Multiplexer

Beitrag von t.ebbinghaus » Mittwoch 4. April 2012, 23:18

Hallo,

ich wünsche mir einen einfachen Multiplexer (insbesondere für Stringes), der die durchgereichte Signalleitung $0 ... $7 nicht Binär über S0-S3 kodiert, sondern die Signalleitung direkt durchreicht. Hintergrund ist, dass ich bei meiner Hausüberwachung einen Audit-Trail laufen lassen: Bei jedem Ereignis wird die zugehörige Aktion als Text in eine MySQL Tabelle geschrieben. Aufgrund der Grösse kann ich das Projekt aber nicht vollständig hochladen, sondern nur einen Teil davon .... Das System benötigt den Ping,

viewtopic.php?f=26&t=3069

sowie

die libmysql.dll,

viewtopic.php?f=26&t=3018

Falls jemand eine bessere Idee hat, so bin ich natürlich gerne für Vorschläge offen.

Danke und Gruss
Thorsten
Dateianhänge
test.zip
(163.99 KiB) 370-mal heruntergeladen
Zuletzt geändert von t.ebbinghaus am Donnerstag 5. April 2012, 19:05, insgesamt 1-mal geändert.

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Einfacher Multiplexer

Beitrag von abacom » Donnerstag 5. April 2012, 17:07

der die durchgereichte Signalleitung $0 ... S7 nicht Binär über S0-S3 kodiert, sondern die Signalleitung direkt durchreicht
Was bedeutet das ??? Ich verstehe nicht.
ABACOM support

t.ebbinghaus
Beiträge: 51
Registriert: Montag 5. Juli 2010, 07:34

Re: Einfacher Multiplexer

Beitrag von t.ebbinghaus » Donnerstag 5. April 2012, 19:13

Hallo,

de facto hätte das gewünschte Bauteil 8 Signalleitungen und 8 Selectleitungen. Es soll nur diejenige Signalleitung auf den Ausgang durchgereicht werden, dessen zugehörige Selectleitung zuletzt gesetzt wurde. Bitte schauen Sie sich mein Beispiel an: Obwohl ich einen 16 Bit $-Multiplexer verwende kann ich davon effektiv nur 4 Leitungen verwenden - die übrigen Eingänge liegen brach. Je mehr Bits ich pro Multiplexer verwende, desto mehr Brache Eingänge habe ich ...

Beste Grüsse
T. Ebbinghaus

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Einfacher Multiplexer

Beitrag von compander » Donnerstag 5. April 2012, 20:57

@ Abacom.
Ich habe es anfangs auch nicht verstanden.
t.ebbinghaus möchte, daß der Multiplexer keine binärcodierte Steuerleitungen hat (S0...S3).



@t.ebbinghaus.
Der Multiplexer ist hier wohl das falsche Bauteil.
Die 8 Signale auf Relaiseingänge schalten. Mit 8 Steuerleitungen (jeweils auf einen Selecteingang) das gewünschte Signal auf den Ausgang schalten. Dabei sind die Ausgänge zusammengeschaltet.
(Relais 2 Eingänge; 1 Ausgang)

Oder:
Beispiel im Anhang nutzen.
Dies ist in diesem Falle ein 16 zu 4 Decoder.
Aus bis zu 16 Steuerleitungen (also dezimal) wird ein 4Bit Muster (also binär) erzeugt, welches dann dem regulären Multiplexer (mit der vorgesehenen Funktion) ansteuern kann.

Gruß vom C :shock: mpander.
Dateianhänge
Dezimal nach Binär.prj
(12.43 KiB) 389-mal heruntergeladen

t.ebbinghaus
Beiträge: 51
Registriert: Montag 5. Juli 2010, 07:34

Re: Einfacher Multiplexer

Beitrag von t.ebbinghaus » Donnerstag 5. April 2012, 21:47

Hallo Compander,

OK, ich verstehe die angehängte Schaltung nicht, aber sie funktioniert genau So, wie ich Sie haben will. Vielen, vielen Dank.....

Damit kann ich einen bestimmten, definierten Text auf den Ausgang einen $-Multiplexers legen, wenn einer 16 Schaltern gedrückt wird.

Klasse, Dank & Gruss
Thorsten

t.ebbinghaus
Beiträge: 51
Registriert: Montag 5. Juli 2010, 07:34

Re: Einfacher Multiplexer

Beitrag von t.ebbinghaus » Dienstag 10. April 2012, 22:40

Hallo Compander,

so, jetzt habe ich es begriffen - der Trick ist genial: Mit der KT wird das anliegende Signal kodiert, damit es den Multiplexer ansteuert.

@ Abacom:
ich revidiere den Wunsch und schlage nun folgende Anderungen Zusätze an Bauteilen vor:

1. KT kann auch definierte Strings an den Ausgang liefern - eine Signal kann direkt in mehrere Teilsignale mit verwandelt werden (String, Zahl und Signal)

2. Die beiden Verzögerung DLY schalten nicht nur das +5 V Signal durch, sondern sie schalten jedes anliegende Signal (auch Strings und numerische Werte) entsprechend den Zeitvorgaben durch. Hierduch kann jedes Signal in Verbindung mit der KT und meinem Ping und in jedes andere Signal (String etc.) von definierter Dauer umgewandelt werden. Leitungen können so nur kurzeitig, z.B. zum Schreiben in eine Tabelle verwendet und unverzüglich wieder freigegeben werden....

3. Für die Schaltverhögerung wünsche ich mir zusätzlich die Einstelloption "Systemtakte", nicht nur n x 50 ms (OK, das geht notfalls auch mit dem Monoflop, ist aber nicht so elegant).

Danke und Gruss
Thorsten

HCS
Beiträge: 189
Registriert: Montag 3. November 2008, 16:11
Kontaktdaten:

Re: Einfacher Multiplexer

Beitrag von HCS » Mittwoch 11. April 2012, 07:58

Hallo Thorsten,
zu 1.:
Das Boardmittel ist "DateiReadLine". Einer der wichtigsten Bausteine für meine Anwendungen. Hier kann ein Numerischer Wert auch in Strings umgewandelt werden. Zudem kannst du die Strings (Texte, Anweisungen, SMS-Texte) ganz einfach auch während eines laufenden Programms änderen.

zu 3.:
Mit den Systemtakte-Verzögerer bin ich schon paar mal auf die Schnauze gefallen. Nämlich dann, wenn ein kompiliertes Programm auf einen anderen Rechner kommt, der von der Geschindigkeit her schneller oder langsamer ist. Dann passen auf einmal bestimmte wichtige syncrone Abläufe nicht mehr zusammen.

Gruß
Bernd

Mike D
Beiträge: 528
Registriert: Dienstag 14. Oktober 2008, 14:48
Wohnort: Elbe- Weser-Dreieck

Re: Einfacher Multiplexer

Beitrag von Mike D » Mittwoch 11. April 2012, 11:56

oder so?

Mike
Dateianhänge
DezToBin-ROM.prj
(73.84 KiB) 368-mal heruntergeladen

t.ebbinghaus
Beiträge: 51
Registriert: Montag 5. Juli 2010, 07:34

Re: Einfacher Multiplexer

Beitrag von t.ebbinghaus » Mittwoch 11. April 2012, 23:44

Hallo Bernd und Mike,

Ziel war es ein Ereignis-Logbuch zu führen - jetzt habe ich mehrere funktionierende Lösungen... viele Wege führen nach Rom. Ich habe die Lösungen für mein Audit unten zusammen gefasst.

@ Bernd:
Die Version mit Datei Lineread gefällt mir am besten da diese sehr variabel gegenüber dem Multiplexer mit Konstanten strings ist.
Mit dem Systemtakteverzögere hatte ich auch so meine Probleme, u.a. dafür habe ich den ping programmiert:
1. Wandelt er Schaltsignale in Impulse um
2. Ich kann damit an eine neuraligischen Stellen, wo ich ein längeres Signal brauche, so mit einer Kombi aus Ping und Delay so steuern, dass die das Anliegende Signal schon vorhanden ist und noch andauert, wenn die fallende Flanke an einem Clock-Eingang auftritt. Der Nachteil dabei: Ich erkaufe mir dieses Freature mit der Totzeit des Delay. Solange diese läuft (50 ms) kann kein anderes Signal kommen. Der Ping ist aber erheblich schneller, mir würden in dem Delay schon 10 ms reichen: In test_4 habe ich Analysator eingebaut und schau Dir die Signale hinter den Pings und den Delays an (Auslöser wär ein Schalter, die erste Verzögerung dient nur zur Veranschaulichung):
Data3 ist das Steuersignal für den Multiplexer, Data 4 ist lediglich der Trenn-Ping, Data 5 wäre der Clock-Ping für die Tabelle, die Verzögerung habe ich bewusst grösser gemacht als notwendig.


3. Notfalls kann man damit sogar ein Signalsplitting / Signaltrennung erreichen - das wäre im Test_2 die Funktion der jeweils rechten Pings (DLL 3, 6, 9, 12, ...) in der Kaskade: Dieser dient nur dazu, dass ich die Delays nicht alle ohne Trennung auf den selben Eingang eines nachfolgenden Bauteils lege. Eigentlich hätte ja ein Zusammenführer dieser Leitungen hinter den vorhergehenden PING DLLS mit einfachen Sperrdioden auch getan - Letztere fehlen aber auch im PL.
Dateianhänge
test_4.prj
(68.41 KiB) 380-mal heruntergeladen
test.zip
(167.15 KiB) 375-mal heruntergeladen
MySQP_PL_Ereignis.zip
Benötigt noch libmysql.dll
(162.46 KiB) 359-mal heruntergeladen

Antworten

Zurück zu „Makros & Schaltungen“