abacom-online.de

Das offizielle Elektronik-Software Forum
Aktuelle Zeit: Mittwoch 18. Oktober 2017, 13:46

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Freitag 7. September 2012, 06:29 
Offline

Registriert: Dienstag 7. Juni 2011, 10:50
Beiträge: 25
Hallo zusammen,

ich habe in einem meiner Projekte Probleme mit der Abarbeitungszeit und habe mich an die Optimierung gemacht.
Auffällig ist hier der Baustein "Formel universal". Die Beispiele in der Anlage hab ich unter Nutzung der Formel universal und unter konsequenter Vermeidung Derselben realisiert. Die Funktion beider Varianten ist gleich: Extrahiere aus einer 3-stelligen Zahl den Wert für Hunderter-, Zehner- und Einzerstelle.
Auf meinen PC ergibt sich zwischen beiden Varianten ein Unterschied in der Abarbeitungsgeschwindigkeit von ca. 1:70!!!!! Von dieser Größe war ich doch überrascht.
Daraus kann ich nur die konsequente zukünftige Meidung der Formel universal schlußfolgern.
So, jetzt meine Frage: Gibt es vergleichbare Erfahrungen mit anderen Elementen / Bausteinen? Z.B. Den Eingang eines Gatters negieren oder einen Negator vorschalten.......?

Viele Grüße
Karsten


Dateianhänge:
Test_Rechnung.prj [3.47 KiB]
263-mal heruntergeladen
Test_Rechnung_universal.prj [3.05 KiB]
257-mal heruntergeladen
Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Freitag 7. September 2012, 08:01 
Offline

Registriert: Dienstag 7. Juni 2011, 10:50
Beiträge: 25
Hallo,

ich habe mal einige Sachen probiert. Hier die Ergebnisse:
einfaches Gatter (AND oder OR) mit externen Negator verglichen mit negierten Anschluß ca. 40% langsamer. Also möglichst den PIN des Gatters negieren.
Taktgeber 1Hz realisiert mit Taktgeber 0,1s ...1000s verglichen mit Taktgeber 1Hz...1kHz ca. 3-mal so schnell.
Werden durch andere Nutzer ähnliche Ergebnisse erreicht?

Viele Güße
Karsten


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Samstag 8. September 2012, 09:02 
Offline

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

ich habe zwar keine so aufschlussreichen Vergleiche wie Du (super !), aber die Hinweise in Abacoms Objekthilfe erklären wohl die Effekte:

Formel universell: "Dieses Bauteil enthält einen Formelinterpreter. "
Dieses Objekt kann eine lange Reihe von (wenigen) Funktionen und Operatoren, und mit vielen Eingängen korrekt interpretieren. Es braucht im Hintergrund daher Zeit für diese Interpretation, wohl jeden Zyklus, was Du ja konstatiert hast. Je nach Komplexität der Formel wird somit die diskrete Ausprogrammierung schneller sein.

Würde die Formel kompiliert (im Unterschied zur Interpretation) könnte die Ausführung beschleunigt werden. Dieser Weg führt zur Programmierung von DLLs, was PL ja unterstützt.


Es gibt auch noch
Math und den Hinweis: "Dieses Bauteil implementiert verschiedene mathematisch Funktionen und arbeitet schneller als eine interpretierte Formel."

Grüsse von Thomas

_________________
Curiousity makes us progress !


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Sonntag 9. September 2012, 09:06 
Offline

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

Hier die Formel in ProfiLua interpretiert.
Auf meinem Rechner macht der Interpreter immerhin 30kHz "durch".

Für mein Interesse: Was erreicht Ihr hiermit für Zykluszeiten ?

(die drei Files müssen im selben Directory liegen, das lua-File kann editiert werden, Aenderungen kommen nach Stop/Neustarten der Simu zur Wirkung)

File 1.prj muss zu 1.lua umbenannt werden.

Gruss Thomas


Dateianhänge:
1.prj [500 Bytes]
221-mal heruntergeladen
calc_test.prj [3.13 KiB]
231-mal heruntergeladen

_________________
Curiousity makes us progress !


Zuletzt geändert von tom_g am Montag 10. September 2012, 07:25, insgesamt 4-mal geändert.
Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Sonntag 9. September 2012, 10:30 
Offline

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

Leider kann ich die "calc_test.zip" nicht entzippen.

Zu den Beipielen: Frequenzteiler.prj.
Vor geraumer Zeit stand das Problem an, eine Frequenz (hier 10 Hz) durch 75 und durch 1000 zu teilen.
- am einfachsten geht dies durch die Nutzung der Formel. Dies führte jedoch dazu, daß die Simulationsgeschwindigkeit auf 18 kHz sank.
Daraufhin habe ich nach Alternativen gesucht und diese realisiert.
- T75. Lösung mittels AVG. Sim-Speed: 305 kHz. Im dem Moment, wo die Led leuchtet: ca. 200 kHz.
- D75. Lösung mittels Zähler. Sim-Speed: 195 kHz. Im dem Moment, wo die Led leuchtet: ca. 140 kHz.

Gilt natürlich alles nur für meinen Rechner! Und nur für Sim.: FAST. Generatorfrequenz einheitlich 10 Hz.

Anbei noch das damalige Beispiel mit Formel (absichtlich mit Formel universell).

Gruß vom C :shock: mpander.


Dateianhänge:
F75.prj [1.59 KiB]
231-mal heruntergeladen
Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Sonntag 9. September 2012, 11:12 
Offline

Registriert: Freitag 31. Oktober 2008, 14:59
Beiträge: 215
Hallo zusammen,
weiss nicht, was die Ursache war;
habe nun die drei nötigen Files in meiner obigen Nachricht diskret deponiert: 1.prj muss zu 1.lua umbenannt werden.

Gruss Thomas

_________________
Curiousity makes us progress !


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Sonntag 9. September 2012, 11:34 
Offline

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

Nun läßt sich leider die .dll nicht in die "calc_test.prj" importieren. (Fehlermeldung)
(daran auch die Umbenennung der 1.prj nichts geändert)
Oder: ich mache etwas falsch.......

Gruß von C :shock: mpander.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Sonntag 9. September 2012, 15:50 
Offline

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

zuerst die 1.prj in 1.lua umbenennen;
erst dann PL starten; DLL importieren, dann sollte es klappen.
Beim Importieren "baut" sich PL die IOs grafisch in den Funktionsblock auf (bei jeder DLL ist das so, hier (bei ProfiLua) ist zudem die Datei 1.lua für diese Definition nötig.
Das kannst Du mit einem Texteditor den LUA-Script 1.lua einsehen.

Grüsse von Thomas

_________________
Curiousity makes us progress !


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Sonntag 9. September 2012, 20:47 
Offline

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

ich habe Probleme mit uploaden.
Die DLL ist sicher beschädigt, sie muss grösser sein. (232531 Bytes)

BTW: Sie IST ProfiLua 5.1, incl. Bibliotheken (von Askr)

Ich melde mich morgen wieder.
Gute Nacht allerseits und Grüsse Thomas

_________________
Curiousity makes us progress !


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Montag 10. September 2012, 07:37 
Offline

Registriert: Freitag 31. Oktober 2008, 14:59
Beiträge: 215
Guten Morgen zusammen,

erneute Versuche, die ProfiLua-dll ins Forum hochzuladen, sind derzeit erfolglos.

Wer es trotzdem mit meinem "Speedtest" versuchen will, kann sich auf http://www.askrprojects.net/software/pr ... a_V09c.zip verschiedene sehr interessante Beispiele laden, welche alle die benötigte DLL mitführen.

Nach dem Entzippen: In jedem Subdirectory der Beispiele befindet sich die nötige DLL: ProfiLua_V09.dll.
Man kann diese zu "meinen" beiden Files hinzukopieren (ins gewählte Subdirectory, z.B. ein neues Beispiele-Dir).
Dann erst ProfiLab starten, und diese DLL importieren. Sichern ! Im Import-Moment sucht sich ProfiLab aus dem Skript-File 1.lua die Funktionsblock-Konfiguration heraus und baut daraus die Anzahl IO und deren Namen im PL-Projekt-Blatt ein.

Hoffe, hiermit könnt Ihr den Versuch machen.

Schönen Tag und Grüsse von Thomas

_________________
Curiousity makes us progress !


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Mittwoch 12. September 2012, 09:07 
Offline
Site Admin

Registriert: Dienstag 23. September 2008, 10:54
Beiträge: 3156
"Zeitproblem Rechenzelle allgemein"
... um was geht es hier?

_________________
ABACOM support


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Mittwoch 12. September 2012, 09:52 
Offline

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

Thema wieviel Rechen-(zyklus)-zeit in PL verschlingt welche Methode:

es wurden in diesem Thread

1. "Formel universell",
2. "diskrete" Formulierung,
3. eine DLL mit der Formel und
4. ProfiLua mit einem lua-Script (script wird interpretiert in der PL-Lua-DLL)

zur Formelberechnung anhand eines kleinen Rechenbeispiels hinsichtlich Zykluszeit qualitativ verglichen.
Dabei löst die diskrete Formulierung die Formel am Schnellsten, gefolgt von der DLL, von ProfiLua, am Schluss die universelle Formel.
(Jedem natürlich selbst überlassen, welche Kriterien in seiner Anwendung wichtig sind)

Können Sie auch was Wissenswertes bezüglich Optimierung der Abarbeitungsgeschwindigkeit in einer Anwendung hinzufügen ?

Freundliche Grüsse von Thomas

_________________
Curiousity makes us progress !


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeitproblem Rechenzelle allgemein
BeitragVerfasst: Donnerstag 13. September 2012, 13:17 
Offline
Site Admin

Registriert: Dienstag 23. September 2008, 10:54
Beiträge: 3156
Danke für die Klarstellung. Ihre Forschungsergebnisse decken sich mit meinen Erwartungen.

_________________
ABACOM support


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de