PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EIB.Weiche und "Sammel aus"



sethach
30.11.05, 07:21
nach Anfangsschwierigkeiten bekomme ich nun auch Schaltbefehle auf den EIB Bus.
Ich habe einem Tastsensor (Taste 1) das Licht "Wohnraum decke" zugeordnet.
Der Taste 2 das Licht "Stehlampe", und der Taste 3 "Terrasse".
Funktioniert. Einmal drücken ein, zweites mal aus.
Die Taste 4 "Alles aus" sendet einen Aus-befehl an eine Gruppe, in der alle 3 Lampen sind.
Bei Betätigung gehen alle Lampen aus. Der Tastsensor hat LEDs, die den Status des Objekts anzeigen. Diese LEDs sind auch in der "Alles aus"-Gruppe, so dass der Status immer stimmt.
So weit so gut....
Mit den Befehlen EIB.value(GA) kann ich die einzelnen Lichter schalten, auch Status stimmt (EIB.Value(GA1)="0", dann erlischt dei zugehörige LED am Tastsensor.
Sende ich allerdings einen Aus-befehl an die "Alles-aus" Gruppe, erlöschen die Lampen. Da ich Taster programmiert habe, frage ich den Status von EIB.value(GA) ab, und schalte entsprechend um.
Nach einem "alles aus", bleibt der Status auf "1", bis ich ihn mit EIB.value(GA) für jede Lampe au "0" gesezt habe.

Irgendwie bekommt das EIB-Objekt den Zustand der einzelnen Aktoren nach dem Sammel-aus nicht mit.
hat jemand eine Idee?

Gruss
sethach

EIB-Freak
30.11.05, 08:16
Guten morgen,

zum 1629 mal:

Suchfunktion:

"zentralfunktion"

"hörende adresse"


Gruss,

EIB-Freak

non-smoker
30.11.05, 08:22
Hallo sethach,

wenn du mit Zentral-Funktionen arbeitest, dann solltest du in EIB.VB nicht den Befehl Value verwenden, sondern ObjValue.
Dann hast du immer den aktuellen Zustand der Kommunikationsobjekte.
Als Angabe muss man die Physikalische Adresse und die Nummer des Kommunikationsobjekts angeben, z.B.:

Dim wertLicht1 as String
wertLicht1 = EIB.ObjValue("1.1.23_1")
' hier jetzt den Wert auswerten und anzeigen
...

Im Beispiel wird der Wert des Kommunikationsobjekts 1 des Gerätes mit der Physikalischen Adresse 1.1.23 zurückgeliefert.

Wichtig ist, dass man die .GA und .OB Datei für das Projekt angibt, damit EIB.VB weiß, welche Objekte es gibt.


Gruß

non-smoker

sethach
30.11.05, 12:06
@non-smoker,

vielen dank für deine Erklärungen, ich werde es heute Abend testen.

@EIB-Freak
danke für deine unqualifierte Phrase, aber auf die Zentralfunktion bin ich schon ohne deinen 1629 Hinweis gekommen. Vielleicht hätte es geholfen, wenn du meine Frage nicht nur quer gelesen hättest.

EIB-Freak
30.11.05, 14:04
@sethach:

sorry...

sethach
30.11.05, 18:43
Hallo non-smoker,
so ganz komme ich noch nicht weiter.
Ich habe 2 schaltaktoren mit der Busadresse 2.11.1. Ausgang 8 und Ausgang 9, die mit der Taste 3 + 4 in dieser Gruppe hörend sind.
Die Taste 8 ist die Zentral-Aus Taste.
Die sind in der Gruppe mit der Adress 2.0.0
Wenn ich nun versuche auf EIB.ObjValue("2.0.0_1")
oder EIB.ObjValue("2.11.1_8") usw zuzugreifen, bekomme ich "Error".

Ist die Phys. Adresse die busadresse?

EIB-Freak
30.11.05, 21:08
Hallo Sethach,

die Phys. Adresse ist die, die einmalig dem Gerät vergeben wird (mittels dem Programmierknopf). Alles andere, das heisst das ansprechen der entsprechenden Wippen, Eingänge, Ausgänge etc. erfolgt über die Gruppenadresse.
Ich kenne mich mit dem VB garned aus.

Aber ich denke mal das du die entsprechende Gruppenadresse (GA) ansprechen musst.

Gruss,

EIB-Freak

tweky
30.11.05, 23:39
Aber ich denke mal das du die entsprechende Gruppenadresse (GA) ansprechen musst.


Bei EIB.ObjValue ist es die Phy. Adresse + Objekt Adr.

http://www.schlaps-automation.de/index.html?URL=eib_vb.html

non-smoker
01.12.05, 08:48
Hallo sethach,

folgendes habe ich in der Doku zu EIB.VB gefunden:

Wert eines Objekts aus Prozessabbild holen
Var = EIB.ObjValue("obj")

Über die Eigenschaft "ObjValue" kann man sich direkt den aktuellen Wert eines Objekts ausgeben lassen. "obj"

muss folgendermaßen angegeben werden: PA_ObjNr. Hierbei steht PA für die physikalische Adresse des

Objekts (z.B. 1.0.10) und ObjNr für die Nummer des Objekts (z.B. 1). Physikalische Adresse und

Objektnummer müssen durch einen Unterstrich getrennt sein.

Wenn vor dem Aufruf der ObjValue-Eigenschaft nicht eine gültige OB-Datei (Datei mit Objekten aus Projekt

des SuP EIB Explorers) über die Eigenschaft "OBFile" angegeben wurde, gibt die ObjValue-Eigenschaft den

Wert "ERROR" zurück.

Außerdem wird "ERROR" zurückgegeben, wenn das Objekt nicht existiert.

sethach
01.12.05, 18:17
(http://www.eib-userclub.de/forum/newreply.php3?do=newreply&noquote=1&p=33222)Also irgendwas ist bei mir faul.
Der SuPExplorer erlaubt den Transfer nur dann, wenn ich als Administrator angemeldet bin. Ansonsten bekomme ich die Mitteilung "Ungültige Schnittstelle". (Der User hat volle Rechte in das Verzeichnis.)

Als Administrator schreibt er 2 Dateien: 00000000.GA und 00000000.OB.
Keine 00000001.GA wie in der Doku, oder FFFFFF.GA wie zuvor beschrieben.
Ist das Bedeutungslos?
Im VB lese ich in der Initialisierung die Dateien
EIB.OBFile = "C:\Programme\SuP\00000000.GA"
EIB.GAFile = "C:\Programme\SuP\00000000.GA"
Ich versuche dann mit EIB.ObjValue("2.11.001_8") den Objektwert zu bekommen, geht nicht. Auch Variationen mit führenden "0" bringt immer "ERROR".
Das Bild zeigt die physk. (wie ich meine) im SupExplorer mit 2.11.001_8, da bin ich doch richtig oder?

non-smoker
02.12.05, 19:49
Hallo sethach,

also dieses Verhalten kann ich auf meinem PC gar nicht nachvollziehen.
Der Transfer aus dem SuP EIBExplorer klappt ohne Probleme Admin-Rechte problemlos. Mein Arbeitsaccount hat lediglich eingeschränkte Benutzerrechte. Die Meldung mit der falschen Schnittstelle habe ich aber nachvollziehen können:
Sie kommt, wenn man im SuP EIB Explorer den Projektnamen nicht richtig angibt. Man muss den Projektnamen immer mit USB bzw. COMx beginnen. Wenn man das nicht macht, dann kommt beim Datentransfer eben deine Fehlermeldung.

Nenne dein Projekt also einfach mal um auf
"USB MeinProjekt" wenn du eine USB Weiche hast oder
"COM1 MeinProjekt" wenn du eine serielle EIBWeiche hast und an COM1 angeschlossen hast.
Dann sollte der Transfer Problemlos klappen.

Jetzt aber viel Erfolg beim Programmieren!

Dundi
03.12.05, 00:17
Huhu sethach,

so wie es schon mein Vorschreibner schrieb.................

der EiB-Explorer wird in naher Zukunft dein Betthüpflerli sein. (Ohne deinen EIB-SuP-Explorer kannst du auch im Winter Wäsche aufhängen, ohne Kamin), der Mist wird nieeee trocken, wirst du deine Visu nie zum laufen bringen!

Solltest du das Betthüpflerie ignorieren, darfst du von einer EIB-Weiche keine
Daten empfangen und im Nierwana programmiernen...........Das will aber SuP nicht......ergo solltest du definitiv die Anleitungen lesen..............(auch dann.....wenn ich selbst diese Teile bis heute nicht verstehe).

Stell Dir eifach mal vor, du kaufst eine Schnittstelle und liest die Anleitung...............du verstehst nur die Hälfte und suchst Hilfe.........

In deinem Fall bei SuP...................TOLL...............dann such auch doch Hilfe und sofort wird Dir geholfen.

Grüßerle Dundi.
:)

*kotz*. SuP wird es sich nicht nehmen lassen, dich als Kunden bei deinen Problemen ALLEIN zu lassen!!!

SuP wird Dir bei deinen Probs helfen, SuP wird dir eigene Probleme programmieren. SuP ist einfach nur GEIL!

Du bist definitiv bei SuP in guten Händen!

Nochmals............

Grüßerle Dundi.
:)

sethach
03.12.05, 08:59
wow, dundi!!
Es scheint bei mir Probleme mit den Rechten gegeben zu haben:
Ich hatte alles als Administrator installiert.
Als normaler user war nichts von Schlaps zu sehen, also habe ich die Verknüpfungen geändert.
Nun ist Schlaps auch für den User verfügbar, aber es gibt diesen Fehler beim Transfer.
Ich habe die SuPWeiche noch mal installiert, als User. Nun erzeugt das Ding mir die Dateien mit 0000001.GA und 0000001.OB.
Und, EIB.ObjValue funktioniert nun.
Ich kann alle Funktionen meienr Berker B.IQ ansprechen und lesen.
Genau das wollteich.
Ich hab gezögert die Anleitung von Schlaps zu erwähnen, ich vermisse konkret den teil mit dem SuPExplorer und dem Transfer.
Ich musste die Anleritung schon mehrmals lesen...
Und noch einige Veröffentlichungen von Schlaps.