PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logikbaustein



Nafets
15.03.07, 13:11
Hallo Leute,

ich hab da mal ne Frage zu den Logikbausteinen: In welcher Sprache sind die geschrieben?? Ich würde nämlich gerne wissen welche Befehle (round,abs,...) noch funktionieren.

Danke Stefan

Michel
15.03.07, 13:12
Ich nehme mal an, daß du von Homeserver-Logikbausteinen sprichst.
Die sind in Python geschrieben.

Nafets
15.03.07, 13:22
Ja richtig, da hab ich wohl ein wichtiges Detail vergessen :eek: .

Ja die Logikbausteine des Homeservers.

Ich würde gerne einen Logikaustein selbst erstellen, der eine Kommazahl einfach aufrundet. Eventuell gibt es ja direkt den richtigen Befehl dazu wie ceil() in PHP.

Michel
15.03.07, 13:26
Was verstehst du unter aufrunden?

Generell aufrunden,
nur den Ganzzahlanteil anzeigen
kaufmännisch runden
???

Nafets
15.03.07, 13:34
Die nächst höere Ganze Zahl.

Bsp.: 21.1 -> 22

Michel
15.03.07, 13:41
Gibt´s.
ceil(x) Return the ceiling of x as a float.

Nafets
15.03.07, 13:55
Schreibt ihr die Logiksteine denn über eine gewisse Software von Python?

Ich hab mir den Programmaufbau schonmal angeschaut, in dem ich einfach die Datei, in der sich die Logikbausteine befinden, per Texteditor geöffnet hab.
sieht nicht soooooo schwer aus.... lieg ich da richtig?? hehe

Matthias Schmidt
15.03.07, 13:59
Es gibt keine Software - Handarbeit ist angesagt. Einfach die Doku laden, lesen, versuchen zu verstehen, Texteditor....

Michel
15.03.07, 14:01
Nein, alles per Hand im handelsüblichen Texteditor. Eine "Doku" zur Erstellung von Logikbausteinen gibt´s auf Anforderung von Dacom (http://www.dacom-homeautomation.de/page.php?pageid=delogikentw).

Nafets
15.03.07, 14:03
ihr habt keinen guten Link um mehr Infos über python zu bekommen??

Danke für eure ANtworten, bin immer wieder erstaunt wie schnell man in diesem Forum eine Antwort bekommt.

Matthias Schmidt
15.03.07, 14:16
python.org, mehr braucht man nicht.

Hilfreich ist auch ein Python-Shell (IDLE) zum Testen.

Die meisten Probleme entstehen allerdings bei der Umsetzung in das Homeserver-Format. Hier muss man höllisch aufpassen.

Nafets
15.03.07, 15:40
Hey Michel,

die Funktion ceil() gibt es nicht bei Python, hab aber einen anderen Weg gefunden.

Es gibt die Funktion round() dh über 0.5 aufrunden, unter 0.5 abrunden.

---> round(EN[1]+0.5) und zack wird immer die höer stehende ganze Zahl ausgegeben.

Trotzdem Danke MFG Stefan

Michel
15.03.07, 15:47
Hey Michel,

die Funktion ceil() gibt es nicht bei Python,Das sehe ich aber ganz anders: http://www.python.org/doc/2.4.4/lib/module-math.html

round(EN[1]+0.5) und zack wird immer die höer stehende ganze Zahl ausgegebenUnd was machst du, wenn EN[1]>x.5 ist? Dann kommt zumindest nicht das von dir gewünschte Ergebnis, sprich die nächst höhere Ganzzahl raus.

Nafets
15.03.07, 16:01
hmmmm komisch, wenn ich die Funtktion im PythonShell teste, krieg ich folgende Fehlermeldung:

>>> ceil(0.5)
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
ceil(0.5)
NameError: name 'ceil' is not defined

Hmm?? wahrscheinlich muss ich die Mathematischefunktionsbibliothek vorher noch aufrufen, wenn es soetwas gibt.

Ehm wenn EN1 grösser als 0.5 ist, dann rundet round ab und ich krieg den gewühnschten Wert.

BSP: EN1 = 23.3
23.3+0.5=23.8
round(23.8)=24 aufgerundet

EN1=23.9
23.9+0.5=24.4
round(24.4)=24 abgerundet

Nafets
15.03.07, 16:22
OK sorry war mein Fehler, hab die Funktion aus der Bibliothek importiert und Gut isssssssss, mal schauen ob das auf dem Homeserver auch so funzt

Nafets
22.03.07, 15:47
Hallo EIB'ler,

also einfache Logik Bausteine schreiben klappt echt super, nochmals danke für eure Hilfe.

Bin letztlich auf einen DatumsBaustein gestossen, der EI, EC, OC, AC, SN Variabeln benutzt, kann mir einer die Bedeutung davon sagen???

Dank Euch stefan

Matthias Schmidt
22.03.07, 16:33
Klar, aber besorg dir doch einfach bei Dacom die Entwickler-Doku!