$Mux und $Demux. 1-Draht-Übertragungsleitung?

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

$Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von compander » Montag 20. August 2012, 17:46

Hallo Freunde.

In der angehängten Schaltung gibt es eine $-Datenleitung und 3 Steuerleitungen.
Kennt jemand eine Möglichkeit, die 3 Steuerleitungen in die $-Datenleitung "reinzumuxen"?
Und auf der anderen Seite (rechts im BSB) wieder demultiplexen, so dass die Steuerleitungen
diskret wieder zur Verfügung stehen?
Ich habe da im Moment leider einen "Hänger".................

Herzlichen Gruß von C :shock: mpander.
Dateianhänge
$Demux 2.prj
(15.87 KiB) 280-mal heruntergeladen

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

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von HCS » Dienstag 21. August 2012, 12:19

Vieleicht so?

Bernd
Dateianhänge
$DemuxBernd.prj
(16.7 KiB) 281-mal heruntergeladen

funkybaer
Beiträge: 440
Registriert: Mittwoch 22. Oktober 2008, 08:51
Wohnort: Kitzingen

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von funkybaer » Dienstag 21. August 2012, 13:33

Hallo

Hatte es vorher schon beantwortet.

Gerhard
Dateianhänge
$Demux_1line.zip
(4.42 KiB) 269-mal heruntergeladen

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

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von compander » Dienstag 21. August 2012, 19:19

Hallo Freunde.

Besten Dank für die Beispiele.

@Bernd: Einfach, gut und rund.
(kleine Geschichte: hatte praktisch die gleiche Schaltung. In dem $Part-Einstellungen
mit der Maus ausgerutscht, und damit das falsche (nächste) Trennzeichen eingestellt.
Und sich gewundert, daß die Schaltung nicht funktioniert.
Und einen Abend lang dies nicht gemerkt.... Da kann man sich schon ärgern........)

@Gerhard: ...ist zwar etwas aufwändiger... macht nix. Funktioniert auch super!
(Nachtrag: gerade habe ich bemerkt, daß Du einen kleinen Fehler in der Logik hast.
Z.B. wenn "S1" High-Pegel führt, so erscheint der Wert "3" in der 2. Zeile)

@WoB: Aktion ist natürlich für Fall 2 vorgesehen.

Herzlichen Gruß von C :shock: mpander.

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

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von compander » Dienstag 21. August 2012, 22:23

Hallo WoB.

Glücklicherweise bietet PLE neben der Simulation sehr zahlreiche Realisationen in Kombination mit Hardware.

Ersetze bitte gedanklich die Übertragungsleitung im Projekt mit einer LWL-Leitung in einer Hardwarelösung. (Übertagungsleitung)

(zu einem sehr ähnlichen gab es einen Beitrag: "8-bit-Informationen über eine Leitung übertragen?"
Die Lösung von Kaktus funktioniert seit fast 3 Jahren! Nun möchte ich diese auf der Hardwareseite ändern. (Schnittstelle, Optoelemente und völlig anderes Lichtwellenleiterkabel)
Von daher meine Anfrage/die Bitte um einen (alternativen) Lösungsvorschlag.)

Herzlichen Gruß vom C :shock: mpander.

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

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von HCS » Mittwoch 22. August 2012, 13:44

Nur so als Bemerkung @WoB:
Ich nehme dieses Verfahren überwiegend in Fall 1: Ich habe in meiner Makro-Bibliothek viele Makros, die links und rechts die gleichen Anschlüsse haben. Jedes entnimmt, je nachdem was es gerade braucht, bestimmte Daten aus den Eingangsstring. Ich kann sehr effizient die Makros je nach Aufgabe der Schaltung einfach zusammenschieben ohne einer Nachverdrahtung.
Wäre es hier kein Datenstring sondern normale 1/0, bräuchten meine Makros 200 Pins.
Am Ende läuft das PL schneller als mit 100 einzelnen Leitungen.
Aber das ist das schöne an PL, daß es eben viele Möglichkeiten gibt.
Gruß
Bernd

KAKTUS
Beiträge: 651
Registriert: Samstag 18. Oktober 2008, 21:12

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von KAKTUS » Mittwoch 22. August 2012, 16:47

Hi,

ich weiß zwar nicht genau ob hier 2 PCs verbunden werden sollen, aber wenns nicht über WLAN oder Bluetooth passieren soll, sonder über LWL, dann würde ich es so machen.
Dateianhänge
kaktus.prj
(18.44 KiB) 279-mal heruntergeladen
stachlige Grüße, Kaktus

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung

Beitrag von tom_g » Freitag 24. August 2012, 23:43

Guten Abend,

muss auch noch ne one wire Übertragungsvariante beisteuern ;-)

Sie kann Werte von Strings unterscheiden; beide Typen können frei vorgegeben werden.
Sie müssen mit <SPACE> voneinander getrennt werden und ein einzelner Space muss am Schluss nach einer Information platziert werden. (Space wird hier von der Funktion "partition" verwendet
Im selben String-Eingabefeld kann ein einzelner char (z.B 0 oder 1 für binär), ein String oder auch ein (float)Wert, aber auch mehrere Typen hintereinander, auch gemischt stehen. Wichtig nur, dass ein SPACE dazwischen UND am Ende des Eingabefeldes steht !

Im Beispiel muss dieser SPACE in allen Feldern noch eingetippt werden, irgendwie werden die Endspaces nicht gespeichert. (Die Spaces können natürlich auch direkt im Stringadder programmiert werden.)

Die Felder werden in einen grossen String aufaddiert (wer weiss, wie lange dieser in PL sein darf ?).
Ein loop tastet Zeichen für Zeichen (mit index) ab; zwischen jedes Zeichen wird ein delimiter (hier wurde ":" gewählt) eingearbeitet.
Dieser dient dazu, Zeichen für Zeichen synchron in den Buffer reinzuspeichern (sozusagen als clock)

Damit jede Übertragung frisch beginnt, wird zu Beginn ein Löschzeichen (hier wurde "/" gewählt) gesendet. Dieses, wenn erkannt, führt zum Löschen des Bufferinhalts. Es kann auch zwischen drin stehen.

Viel Spass: Grüsse von Thomas
Dateianhänge
spell_1.zip
(4.63 KiB) 269-mal heruntergeladen
Curiousity makes us progress !

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

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von compander » Samstag 25. August 2012, 16:43

Hallo Freunde.

Danke für die Rückmeldungen.

@Kaktus: Du hast es wieder einmal erraten. Es geht hier um den Datenaustausch zwischen 2 PC´s. Unidirektional.
Dazwischen gibt es nur eine Leitung. Die in der Simulation verwendete "1-Draht-Leitung" muß in der Praxis
durch eine LWL-Leitung getauscht werden. Dieses Thema ist nicht Bestandteil der derzeitigen Diskussion.
(.....jedenfalls habe ich schon einmal den Lötkolben angeschmissen.....)
Gerne greife ich auf dein Konzept zurück, falls in der Praxis meine Schnittstelle (Parallelport; eine Leitung
für die Wandlung auf/bzw. von LWL; viele I/O für jeweils andere Zwecke auf der Sender- und Empfägerseite) nicht funktionieren sollte.

@Tom: sehr interessant! Du hast sozusagen erstmals in PLE eine neue Deffinition für serielle Übertragungen
erfunden. Respekt!
Leider passt die Übertragungsmöglichkeit mittels 3 Leitungen (1x Übertragungsleitung; 2 Steuerleitungen)
nicht in mein Konzept. Es darf nur eine geben.
Dennoch: vielen Dank!

Herzlichen Gruß von C :shock: mpander.

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von tom_g » Samstag 25. August 2012, 20:42

Hi Compander,

obwohl mein publiziertes Blockschema ausschaut, als ob da noch 2 Steuerleitungen da wären, stimmt das so nicht.
Ich habe nur aus Bequemlichkeit auf der Sender- und Empfängerseite dieselbe Delimitervariable verlinkt.
Es gibt tatsächlich nur eine Transmission Line.

Vom Datenstrom abgeleitet werden "clock" und Steuercharakter. "Wie richtig" halt :-)

Ich habe schon vermutet, dass Du Wireless gehen wolltest. Aber LWL funktioniert natürlich auch.

Viele Grüsse von Thomas
Curiousity makes us progress !

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von tom_g » Sonntag 26. August 2012, 18:12

WoB hat insofern recht, dass in (mindestens meinen) Beispielen nur die Darstellungsschicht (Begriff vom OSI-Modell) gezeigt wurde.
Für tiefere Schichten bietet sich in PL (für LWL) natürlich wie hier schon mehrfach vorgeschlagen und angewendet die serielle Schnittstelle dar.

Ich habe hier mal versucht, die Bit-Serialisierung auf Shiftregisterbasis anzuprogrammieren. Sofort zeigt es sich, dass ein Bit-Clock ünertragen werden muss, um die Bits wieder zu gewinnen. Dies führt bei meinem Beispiel unweigerlich zu einer 2. Leitung.

Bei einer UART (Zustandsmaschine zum Senden und Empfangen von seriellen Datenströmen) ist das Clockproblem durch komplizierte Methoden (Preambel...) so gelöst, dass
der Takt beider Sender und Empfänger schon mal recht genau stimmen muss (baudrate) und dann beim Empfangen eines Bitstromes der Anfang dazu verwendet wird, um den Takt des Empfängers dem Sender anzupassen (Frequenz und Phase).

Grüsse von Thomas
Dateianhänge
spell_2.prj
(31.61 KiB) 261-mal heruntergeladen
Curiousity makes us progress !

KAKTUS
Beiträge: 651
Registriert: Samstag 18. Oktober 2008, 21:12

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von KAKTUS » Sonntag 26. August 2012, 20:35

Ich will nur sicher gehen, für den Fall das mein Vorschlag untergegangen oder nicht verstanden wurde.

Einen Datenstring kann man bekanntlich am einfachsten über einen Comport aussenden. Man nimmt "Comstring senden" und betätigt den SND Eingang, somit werden die Daten vom PC am eingestellten Comport mit Start und Stopbit rausgeshiftet. Das geht von alleine und man muss sich um nichts kümmern.
Ich gehe davon aus das Companders LWL TX und Rx Module mit 5Volt TTL Pegel angesteuert werden bzw. liefern. Da würde sich ein USB nach TTL Konverter anbieten, die es schon für wenige Euronen gibt.

http://www.ebay.de/itm/2x-USB-Seriell-A ... vi-content
http://www.ebay.de/itm/5pcs-USB-to-UART ... 2a221ae8c2

Diese erzeugen nach dem einstecken in den PC einen virtuellen Comport den dann PL verwendet.

Zu einfach ?
Dateianhänge
LWL.prj
(4.44 KiB) 249-mal heruntergeladen
stachlige Grüße, Kaktus

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

Re: $Mux und $Demux. 1-Draht-Übertragungsleitung?

Beitrag von compander » Sonntag 26. August 2012, 22:01

Hallo Kaktus.

Ich baue zunächst einmal die Hardware bezüglich der LWL-Übertragung.
Diese akzeptiert auf der Senderseite TTL-Pegel.
Auf der Empfängerseite purzeln die Übertragungssignale ebenfalls mit TTL-Pegel heraus.
Was die Sache einfach macht.
Damit ist dann das Thema Hardware "1-Draht-Übertragung" ("Eindraht" buchstäblich) definiert und abgeschloßen.

Nächster Schritt:
Mit welcher Methode (Software=PLE und Hardware=Schnittstelle) man einfach und erfolgreich zum Ziel kommt,
wird sich dann in der Praxis schon zeigen.
Ich bin da recht zuversichtlich. Zumal es bereits mehrere Vorschläge gibt.
Allen Autoren dafür besten Dank!

Gruß von C :shock: mpander.

Antworten

Zurück zu „STRING-Verarbeitung“