Simulationsgeschwindigkeit erhöhen

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

Simulationsgeschwindigkeit erhöhen

Beitrag von abacom » Dienstag 30. September 2008, 11:00

KEU



Anmeldungsdatum: 28.11.2006
Beiträge: 5

Verfasst am: 01.12.2006 14:41 Titel: Simulationsgeschwindigkeit erhöhen

--------------------------------------------------------------------------------

Hallo,
erstmal ein großes Lob für ein Programm wie ProfiLab Expert 4.0, mit dem man viel Lötzinn sparen kann – bleifrei und Spaß dabei!

Mit meinem jetzigen Projekt stoße ich jedoch massiv an die Grenzen der Arbeitsgeschwindigkeit und habe keine Ideen mehr zur Beschleunigung.
Jetzt bräuchte ich mal ein paar Tips von alten Hasen…

Rund um ein RedLab 1008 von Meilhaus entwickle ich eine Aufzeichnungs- Oberfläche, um 4 Analog- Istwerte mit 2 Y(t)- Schreibern und einem Meßwertrecorder (5 Analog- Werte, zwei während der Laufzeit statische Strings) zu verarbeiten.
Die Meßwerte (ca. 1Hz Sinus- Signale als Test) werden dabei jeweils mit einem von 7 wählbaren Faktoren multipliziert, um aus 0…10V- Pegeln für die Darstellung und Aufzeichnung gleich die „wirklichen“ Werte zu erhalten.

Mein 2.8GHz Intel XP- Rechner schaffte nur knappe 30Hz Simulations- Geschwindigkeit mit entsprechend grausigen Y(t)- Kurven, bis ich angefangen habe, die „Bremsen“ zu suchen.

Durch Rausschmeißen und Vereinfachen von Formel- Funktionen konnte ich die Simulation auf ca. 50Hz beschleunigen.
McAfee Zugriffs- Scan auf ProfiLab- Verzeichnis abstellen: 60Hz.
Vergleicher, FlipFlops etc. ausmisten: 70Hz.

Um die größten Übeltäter in meiner Schaltung zu ermitteln, habe ich mal ein paar Testschaltungen ausprobiert:

Taster + LED: 6,1MHz
Einsteller + Leuchtbalken dazu: 2,3MHz
RedLab 1008 (nichts angeschlossen) dazu: 10kHz
RedLab alle Ports (benutze ich eh nicht) als Ausgang: 9kHz
RedLab alle Ports als Eingang: 13kHz

An der Rechenleistung kann’s wohl nicht liegen, ProfiLab dümpelt bei unter 20% CPU- Zeit im Taskmanager. Interessanterweise ist das Verhalten der Port- Konfiguration in meinem Projekt genau umgekehrt:
als Eingänge: 80Hz,
als Ausgänge: 170Hz.

Seit gestern stürzt mir die Schaltung übrigens nach Schaltungsänderungen und Neustart der Simulation fast immer ab mit der Meldung: „….\TEMP\SMPxxx.TMP kann nicht geöffnet werden.“

Danach kann ich das Projekt dann nicht mehr starten, weil das RedLab keine Signale mehr liefert (BTW: 600Hz). Also ProfiLab schließen, neu starten, Projekt laden… Auch ein zweites RedLab zeigt dieses Verhalten.

Auch wenn das allmählich eine Kurzgeschichte wird , hier noch die Stückliste des Projekts:

2x Schalter logisch ein/aus
6x Taster logisch ein/aus
2x Auswahlliste hexadezimal
3x Einsteller analog (Schieber)
4x Numerisches Eingabefeld
1x Inverter
1x AND, 2 Eingänge
1x AND, 3 Eingänge
2x OR, 2 Eingänge
2x OR, 3 Eingänge
5x EXOR, 2 Eingänge
1x JK-FlipFlop (master-slave)
1x Taktgenerator 1Hz...1kHz
2x Power-On-Reset
3x Frontplatte aktivieren
14x Formel universell
8x Sample & Hold
3x LED
1x Duo-LED
4x Leuchtbalken
19x Numerisches Display
2x $Display
1x Meilhaus PMD-1008
2x Y(t)-Schreiber (leider immer noch nur 4kanalig…)
1x Messwert- Rekorder
1x Sampler
5x Analog- Vergleicher
5x Multiplexer analog
24x Festwert
3x Vcc (+5V)
1x Masse
3x Sprung
2x Sprung (Ziel)

Für Tips zur Beschleunigung wäre ich sehr dankbar!
Grüße aus dem Schwarzwald

Udo


Nach oben


komoloko



Anmeldungsdatum: 09.11.2006
Beiträge: 74
Wohnort: Bremen
Verfasst am: 01.12.2006 16:57 Titel:

--------------------------------------------------------------------------------

Hallo!
Bei mir war das Problem der Geschwindigkeit die Schnittstelle. Hab zunächst mit USB Adaptern auf Seriell gearbeitet. Sobald ich eine von diesen Schnittstellen in das Projekt aufgenommen habe, sank die Geschwindigkeit von einigen kHz auf einige Hz. Jetzt arbeite ich mit "echten" Seriellen Ports, und nun klappt das einwandfrei. Bei mir hat mich also die Hardware "ausgebremst".
Vielleicht hilft Dir das ja weiter, Holger

Nach oben


Karl_B



Anmeldungsdatum: 09.07.2006
Beiträge: 47

Verfasst am: 01.12.2006 17:04 Titel:

--------------------------------------------------------------------------------

Hi Udo,

nimm doch mal die "Spruenge" heraus und ersetze diese durch "Draht".
Vielleicht kannst noch ein paar "Hz" herauskitzeln.

USB kann eine grosse Bremse sein. Es arbeitet aehnlich dem "Zeitscheibensystem". Macht sich oft bemerkbar bei relativ kleinen Datenmengen.

mfg Karl

Nach oben


Gucky_av



Anmeldungsdatum: 27.07.2006
Beiträge: 39

Verfasst am: 02.12.2006 17:13 Titel:

--------------------------------------------------------------------------------

Hallo,
zu diesem Thema habe ich auch einen Kommentar
Ich muss aus meiner Sicht sagen Profilap ist eine sehr tolle Anwendung und ich nutze diese sehr viel. Darum will ich auch diese nicht schlecht reden.
Durch die Vielfalt wird der Ablauf verlangsamt. Besonders die Sprung und Ziel Funktion ist toll. Aber die Bearbeitungszeit ist für mich auch eine sehr wichtige Sache und darum würde ich mir wünschen das es eine Anzeige in der Fontplatte gibt, welche die Bearbeitungszeit ( z.B in Hz anzeigt ). Desweiteren ein Siganl am Anfang wenn der Zyklus beginnt.

Das Forum ist sehr gut geworden durch gute Beiträge

Nach oben


Mike D



Anmeldungsdatum: 03.07.2006
Beiträge: 236

Verfasst am: 02.12.2006 23:09 Titel:

--------------------------------------------------------------------------------

die Simulatorfrequenz kannst du vom Bauteil $INFO kriegen.

Nach oben


Gucky_av



Anmeldungsdatum: 27.07.2006
Beiträge: 39

Verfasst am: 03.12.2006 13:23 Titel:

--------------------------------------------------------------------------------

Danke wuste ich auch noch nicht

mfg

Gucky_av

Nach oben


KEU



Anmeldungsdatum: 28.11.2006
Beiträge: 5

Verfasst am: 04.12.2006 08:35 Titel: Danke für die Vorschläge!

--------------------------------------------------------------------------------

Hallo zusammen,
danke erstmal für die Tips!

Die Sprünge habe ich ersetzt - ohne Erfolg. Diese Funktion ist wohl rein kosmetisch, denn ein "Draht" muß ja auch interpretiert werden.

Das $info- Bauteil war ganz nützlich, jetzt kann ich auch beim compilierten Projekt sehen, daß es genauso lahmt...

Die Schnittstelle habe ich auch irgendwie in Verdacht, nur kann ich an USB recht wenig beeinflussen - zumal unsere IT mich mit User- Rechten reichlich kurz hält...

Möglicherweise ließe sich noch etwas kitzeln, wenn ich nicht benötigte Funktionen des RedLab ganz abschalten und aus dem USB- Protokoll herausnehmen könnte. Der "Schmuck am Nachthemd" vertüddelt sicher auch etliche Hz.

Ich forsch' mal weiter!

Schöne Grüße aus dem Schwarzwald.

Udo

Nach oben


kpaul



Anmeldungsdatum: 29.09.2006
Beiträge: 43
Wohnort: Rosenheim
Verfasst am: 04.12.2006 13:06 Titel:

--------------------------------------------------------------------------------

Hallo,
ich hab die Erfahrung gemacht, dass 'Formel universell' ziemlich bremst.
Versuch mal einen Teil deiner 14 Formeln durch DLL´s. zu ersetzen.

Ich kann dir gerne mal eine od. zwei DLL schicken wenn du mir Formeln nennst. Vielleicht sind welche dabei die öfter vorhanden sind in deiner
Schaltung dann wirds effektiver.

kpaul

Nach oben


KEU



Anmeldungsdatum: 28.11.2006
Beiträge: 5

Verfasst am: 04.12.2006 13:30 Titel: DLLs statt Formeln

--------------------------------------------------------------------------------

Hallo kpaul,

vielen Dank für Deinen Tip und Dein Angebot – mit DLLs fehlt mir jegliche Erfahrung und Delphi oder C++ hätte ich sowieso nicht zur Verfügung.

Den Verdacht mit den Universalformeln hatte ich auch schon und habe daher auch schon beim Ausmisten die Konfiguration „Formel (als Faktor) und nachgeschalteter Multiplizierer“ gegen eine einzige Formel mit zwei Eingängen getauscht.
Hat auch ein paar milliHertz gebracht – man wird ja bescheiden…

Die Formeln sind nicht wirklich komplex:

4x vorhanden: E0*(E1/100)
4x vorhanden: E0*0.999
1x vorhanden: E1*(E0/100+1)
1x vorhanden: E1*(1-E0/100)

Wenn Du mir die beiden ersten als DLL schicken könntest, wäre ich Dir wirklich sehr dankbar!

Schöne Grüße aus dem Schwarzwald

Udo

Nach oben


kpaul



Anmeldungsdatum: 29.09.2006
Beiträge: 43
Wohnort: Rosenheim
Verfasst am: 04.12.2006 20:15 Titel:

--------------------------------------------------------------------------------

Hallo Udo,
so aufwändig sind Deine Berechnungen nicht, da kannst
Du ja die 'Formel universell' durch einzelne 'Dividierer' und 'Multiplizierer' ersetzen
das bringt schon einiges an Geschwindigkeit und ist bei mir als Einzelschaltung aufgebaut
nicht viel langsamer als die DLL.

Beispiel E0*(E1/100) mit 'Formel universell' bringt bei mir Simulationsfrequenz von
4.5 kHz, mit DLL 1000 kHz und mit 'DIV' und 'MUL' aufgebaut 700 kHz.

Ich habe trotzdem die DLL´s gemacht dann kannst Du testen wie sie
sich in Deiner Schaltung verhalten.
Viel Erfolg dabei

Wer Interesse hat es ist auch ein Quellcode dabei.
http://www.kpaul.ag.vu/downloads.html

kpaul

Nach oben


hrd



Anmeldungsdatum: 18.10.2006
Beiträge: 123

Verfasst am: 04.12.2006 21:17 Titel: ist ja interessant

--------------------------------------------------------------------------------

Das hat mich jetzt echt vom Stuhl gehauen. Ich hätte nicht erwartet, dass dies Faktor 50 ausmacht. Klar könnte man in dieser Formel noch die Klammern weglassen aber das hat auch nicht viel gebracht. Ich hab's noch als Macro probiert aber es wird dann nur noch etwas langsamer (in beiden Fällen sprich mit Formel oder Multiplikation/Division).

Es scheint, dass in PLE die Komponenten selbst als DLL verwendet werden. Dieser Test heisst für mich praktisch, wenn ich zeitkritische Vorgänge mit Berechnungen habe, diese auf die Grundfunktionen reduziere (keine freien Formel zu verwenden dafür aber lieber ein paar Komponenten mehr jedoch wird es da auch wieder ein Optimum geben weil ja auch die Verdrahtung hinzukommt).

Die Math-Komponente scheint ebenfalls noch schnell zu sein wie ein paar kleine Test ergeben haben.

Nach oben


KEU



Anmeldungsdatum: 28.11.2006
Beiträge: 5

Verfasst am: 05.12.2006 09:29 Titel: DLLs statt Formeln - das bringt was!!

--------------------------------------------------------------------------------

Hallo kpaul,

vielen Dank für die großartige Unterstützung!

Nach ein bißchen Suchen nach dem DLL- Import - realitätsnah, wie Stöbern in meiner Elektronik- Grabbelkiste - und Einbau in meine Schaltung bin ich verblüfft!

Die Simulationsfrequenz bewegt sich jetzt zwischen 160 und 350Hz.

Jetzt sehe ich endlich, daß ich einen neuen A/D- Wandler benötige, der RedLab 1008 ist inzwischen zu lahm (vorher hat die Schaltung ihn ausgebremst).

Ich habe jetzt den 1608FS bestellt und bin gespannt, wie's mit dem läuft!

Sobald ich das Teil habe: Bescheid!

Schöne Grüße aus dem Schwarzwald.

Udo

Nach oben


abacom
Site Admin


Anmeldungsdatum: 30.06.2006
Beiträge: 898

Verfasst am: 05.12.2006 11:16 Titel:

--------------------------------------------------------------------------------

Nichts gegen die PMD xxx, aber unsere Empfehlung lautet: LabJack U3 oder LabJack UE9, denn die Treiber sind einfach viel schneller.
ABACOM support

Nach oben


Gucky_av



Anmeldungsdatum: 27.07.2006
Beiträge: 39

Verfasst am: 06.12.2006 19:53 Titel:

--------------------------------------------------------------------------------

Hallo,
kann folgendes dazu beisteuern
Habe an USB Bus hängen 4 mal BMC MEM Pio und ein U12 damit eine Bearbeitungewschwindikeit von ca 150 Hz bis 500 Hz gehabt Pc mit 2,4 Ghz 1GB
nun kam von Meilhaus Redlab Temp dazu mit 8 Anzeigen und 4 Schreibern
nach Tipp mit $ Info habe ich eine Bearbeitungszeit von 35 bis 220 Hz

Nach oben


KEU



Anmeldungsdatum: 28.11.2006
Beiträge: 5

Verfasst am: 18.12.2006 14:23 Titel: Der neue Wandler...

--------------------------------------------------------------------------------

Hallo zusammen,

wie versprochen, hier die Rückmeldung:

Der Tip mit dem LabJack kam leider ein wenig zu spät - werde ich vielleicht auch noch testen.

Mit dem PMD 1608FS flitzt meine Schaltung jetzt jedenfalls mit ca. 1.6kHz!

Und das, obwohl ich nochmals kräftig erweitert habe:

2x Schalter logisch ein/aus
7x Taster logisch ein/aus
2x Auswahlliste hexadezimal
3x Einsteller analog (Schieber)
4x Numerisches Eingabefeld
2x $Eingabe
2x Inverter
3x AND, 2 Eingänge
1x AND, 3 Eingänge
3x OR, 2 Eingänge
2x OR, 3 Eingänge
6x EXOR, 2 Eingänge
1x JK-FlipFlop (master-slave)
1x Taktgenerator 1Hz...1kHz
1x MonoFlop
1x Power-On-Reset
11x DLL-Import
4x Frontplatte aktivieren
4x Multiplizierer
1x Integrierer
9x Sample & Hold
3x LED
1x Duo-LED
1x RGB-LED
4x Leuchtbalken
1x Zähler
1x Tabelle
20x Numerisches Display
3x $Display
1x Meilhaus PMD-1608FS
1x $Info
2x Y(t)-Schreiber
1x Messwert- Rekorder
1x Sampler
5x Analog- Vergleicher
1x Bereichsprüfung
6x Multiplexer analog
28x Festwert
4x Vcc (+5V)
1x Masse
6x Sprung
16x Sprung (Ziel)

Vielen Dank nochmal für die Unterstützung!

Schöne Grüße aus dem Schwarzwald.

Udo
ABACOM support

Antworten

Zurück zu „Einsteigerfragen / FAQ“