Visualisierung von 7-Segment Anzeige aus LTspice-Plot (Python3 Programm)

spicer

Administrator
Teammitglied
Administrator
Moderator
Landesflagge
Habe nun meine Version fertig, welche in Python3 geschrieben ist.
Windows kann aber die Quell-TXT aus unerklärlichen Gründen nur öffnen, wenn diese im gleichen Verzeichnis wie die exe ist.
Nicht in exe umgewandelt, also als py Programm, funzt das einwandfrei.
Habe deswegen auch den Python Code angehängt. Dieser löst auch keinen Virenalarm aus.

Windows-User müssen Python 3.7 oder höher installieren (siehe Installation von Python unter Windows 10 – Bodos Blog ). Nach der Installation einen Reboot machen!
Nach Reboot in cmd eingeben: pip install pandas
Jetzt kann die s7s.py gestartet werden.

Hier ein paar Impressionen:

Auswahl_002.png

Auswahl_002.png

Auswahl_004.png

Nachtrag:
Habe die veralteten Versionen entfernt. Die aktuellste ist immer im letzen Post von mir zu finden.
Zudem verzichte ich künftig auf's Erstellen einer exe. Ein direktes Python Programm ist viel schneller, kleiner und macht wie gesagt auch keine Virenwarnungen.

Vollständige Anleitung in Post #6
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Udo

spicer

Administrator
Teammitglied
Administrator
Moderator
Landesflagge
Und die V1.4 :D

Auswahl_002.png

Auswahl_003.png


Anleitung, grösstenteils von Frank übernommen, da er zuerst ein solches Tool geschrieben hat (und mich erst auf diese Idee gebracht hat :D ).
Ich hoffe, Du nimmst es mir nicht übel ^^

Jede der Segmentspannungen V(a) .. V(g), steuern dabei ein Segment an; die Spannungen V(RBO) und V(Carryout) steuern zwei "LEDs" an. Diese Spannungen entnimmt das Programm einer Text-Datei, die die Simulationsergebnisse enthält. Die Text-Datei exportiert man folgendermaßen:
  1. Nach der Simulation klicke auf das Plot-Fenster und dann auf File / Export. Dort wählst Du die oben benannten Spannungen aus. Als Dateiname wird der Name der Simulation mit der Endung .txt vorgeschlagen.
    Das Programm sucht später in der Kopfzeile der Text-Datei nach diesen Spannungen, merkt sich die jeweilige Spalte und zeigt sie an. Die Spalten-Bezeichnungen können ggf in den Einstellungen im ersten Fenster angepasst werden. Es können auf Wunsch noch 2 weitere Signale verarbeitet werden (x1 und x2).
  2. Dann starte das Programm s7s.py.
  3. Nach dem Aufruf, dem Öffnen der txt Datei und ev weiteren Anpassungen, auf "Fertig" drücken. Meistens passen die Voreinstellungen. Sonst ggf anpassen. Nun wird die 7-Segment-Anzeige und die 4 zusätzlichen LEDs animiert.
Startzeit Anfang des betrachteten Zeitbereichs in Sekunden, siehe Plot-Fenster (voreingestellt: 0.0000)
Stopzeit Ende des betrachteten Zeitbereichs in Sekunden (voreingestellt: 999.9999)
Abtastintervall In diesem Zeitintervall in Sekunden wird die exportierte txt Datei "abgetastet". Bei einem Clock von 1 ms wäre hier z.B. Intervall=0.001 sinnvoll. (voreingestellt: 0.001)
Verzögerung Verzögerungszeit für die Anzeige aufeinanderfolgender Abtastungen, in Sekunden (voreingestellt: 0.2)
H/L Schwelle Höhe der Hell/Dunkel-Schwelle in V (voreingestellt: 2.5)
nun die weniger wichtigen Eintragungen:
Farbe hell RGB-Wert für ein eingeschaltetes Digit, (V(<Segment>) >= <Schwelle>). (voreingestellt: FF4000)
Farbe dunkel RGB-Wert für ein ausgeschaltetes Digit, (V(<Segment>) < <Schwelle>).(voreingestellt: C0C0C0)
nun noch die Spalten-Bezeichnungen wie in der txt eintragen.....wenn überhaupt nötig. Normalerweise passen diese "Labels", wenn die in LTspice so angegeben wurden ( V(a), V(b)....).

Wenn Du die Segmente/LEDs nur zu einem bestimmten Zeitpunkt betrachten willst - z.B. bei 1.45 ms - , dann gib zBsp Startzeit=0.00141 Stopzeit=0.00149 an....eine kleine Zeitspanne nach gesundem Menschenverstand einberechnen.

Habe noch zwei Testdatei (txt) angehängt, damit der interessierte gleich loslegen kann.

Leider gibt's in seltenen Fällen, dass die txt im gleichen Verzeichnis sein muss wie das s7s.py Programm. Wissen die Götter warum

Wichtiger Tipp für Linux User:
In Linux Systemen empfehle ich, die s7s.py als s7s (ohne Endung .py) in /usr/local/bin zu speichern.
So kann von überall aus nur der Befehl s7s direkt ausgeführt werden, oder gar ein Icon auf dem Desktop angelegt werden (siehe Post #6).
 

Anhänge

  • CD4033_test_8.10.21.txt
    367,4 KB · Aufrufe: 1
  • CD4033_test_9.10.21.txt
    425,2 KB · Aufrufe: 0
Zuletzt bearbeitet:

spicer

Administrator
Teammitglied
Administrator
Moderator
Landesflagge
Version V1.5 am Start.
Ein paar kosmetische Dinge geändert.
An der GUI und Bedienung hat nichts geändert.
 

spicer

Administrator
Teammitglied
Administrator
Moderator
Landesflagge
Aktuelle Anleitung:

Visualisierung von 7-Segment Anzeige aus LTspice-Plot (Python3 Programm)

Benötigt: Python3.7+ (Windows User müssen Python3.7 oder höher installieren / In Linux ist das bereits vorinstalliert)
Siehe: Installation von Python unter Windows 10 – Bodos Blog
Fehlende Bibliotheken werden automatisch beim Erststart installiert.

Jede der Segmentspannungen V(a) .. V(g), steuern dabei ein Segment an; die Spannungen V(RBO) und V(Carryout) steuern zwei "LEDs" auf der rechten Seite an. Diese Spannungen entnimmt das Programm der (exportierten) Text-Datei, die die Simulationsergebnisse enthält. Die Text-Datei exportiert man folgendermaßen:

Nach der Simulation klicke auf das Plot-Fenster und dann auf File / "Export data as text". Dort wählst Du die oben benannten Spannungen aus. Als Dateiname wird der Name der Simulation mit der Endung .txt vorgeschlagen. Das Programm sucht später in der Kopfzeile der Text-Datei nach diesen Spannungen, merkt sich die jeweilige Spalte und zeigt sie an. Die Spalten-Bezeichnungen können ggf in den Einstellungen im ersten Fenster angepasst werden. Es können auf Wunsch noch 2 weitere Signale verarbeitet werden (x1 und x2).

Dann starte das Programm s7s.py.

Nach dem Aufruf, dem Öffnen der txt Datei und ev weiteren Anpassungen, auf "Fertig" drücken. Meistens passen die Voreinstellungen. Sonst ggf anpassen. Nun wird die 7-Segment-Anzeige und die 4 zusätzlichen LEDs animiert.

Startzeit: Anfang des betrachteten Zeitbereichs in Sekunden (voreingestellt: 0.0000)
Stopzeit: Ende des betrachteten Zeitbereichs in Sekunden (voreingestellt: 999.9999)
Abtastintervall: In diesem Zeitintervall in Sekunden wird die exportierte txt Datei "abgetastet". Bei einem Clock von 1 ms wäre hier z.B. Intervall=0.001 sinnvoll. (voreingestellt: 0.001)
Verzögerung: Verzögerungszeit für die Anzeige aufeinanderfolgender Abtastungen, in Sekunden (voreingestellt: 0.2)
H/L Schwelle: Höhe der Hell/Dunkel-Schwelle in V (voreingestellt: 2.5)

nun die weniger wichtigen Eintragungen:

Farbe hell: RGB-Wert für ein eingeschaltetes Digit, (V(x) >= Schwelle). (voreingestellt: FF4000)
Farbe dunkel: RGB-Wert für ein ausgeschaltetes Digit, (V(x) < Schwelle).(voreingestellt: C0C0C0)

nun noch die Spalten-Bezeichnungen wie in der txt eintragen.....wenn überhaupt nötig. Normalerweise passen diese "Labels", wenn die in LTspice so angegeben wurden ( V(a), V(b)....).

Wenn Du die Segmente/LEDs nur zu einem bestimmten Zeitpunkt betrachten willst - z.B. bei 1.45 ms - , dann gib zBsp Startzeit=0.00141 Stopzeit=0.00149 an....eine kleine Zeitspanne nach gesundem Menschenverstand einberechnen.

Desktop Icon: Linux-User können einen Starter anlegen (Typ: Anwendung, Befehl: s7s >> Bedingung ist, dass die s7s in /usr/local/bin gespeichert ist) und dieses Icon (7segment.png) dazu einpflegen.

Das sieht dann etwas so aus:

Auswahl_001.png



V1.7 Changelog:
- Abfrage, ob pandas installiert ist. Sonst wird dies automatisch nachinstalliert.
- Sprache (DE/EN) wählbar in Programm-Kopf
Code:
Bitte, Anmelden oder Registrieren to view codes content!
 

Anhänge

  • 7segment.png
    7segment.png
    1,4 KB · Aufrufe: 3
  • s7s.py
    14,4 KB · Aufrufe: 1
Zuletzt bearbeitet:

Benutzer welche diesen Thread betrachten (Mitglieder: 0, Gäste: 1)

Wer hat diesen Thread gelesen

Oben