1-Wire, OWOS-Library und iButton-Lesegerät

Hallo,

ich würde gerne den eservice 1-Wire-Buskoppler seriell und die OWOS-Library in Verbindung mit meiner 750-880 nutzen und hätte nun folgende Frage bzgl. des Einsatzes von iButton-Lesegeräten (welches ich für die Realisierung einer Zugangsberechtigung nutzen möchte).

Ich habe jetzt im Netz schon mal ein paar iButton-Leser angeschaut. Alle haben jedoch keinen 5V-Anschluss, sondern lediglich eine GND- und eine Datenleitung. In der OWOS-Dokumentation habe ich allerdings gelesen, dass ein parasitärer Betrieb nicht unterstützt wird.

Klappt das mit dem iButton-Leser und den beiden Leitungen trotzdem oder braucht man auf jedenfall einen iButton-Leser mit 5V-Leitung (haben noch keinen gefunden)?

Ich vermute mal es gibt hier bestimmt den ein oder anderen, der hier schon Erfahrungen sammeln konnte :wink:

Danke und Grüße

Martin

Hallo,
iButton haben nur GND und Daten-Anschluss.
Das klappt schon.
mfg.
Rayk

Dank Dir für die schnelle Antwort.

Dann werde ich jetzt mal „shoppen“ gehen :wink:

Grüße
Martin

Hallo,

klappt leider doch noch nicht so wie ich mir das vorstelle. Bräuchte nochmal etwas Hilfe für meine zu realisierende Zugangsberechtigung.

Ich haben den 1.Wire-Buskoppler an meine Wago angeschlossen und daran einen iButton-Leser angeschlossen. Dann habe ich mir noch Seriennummern
iButtons (DS1990A) besorgt. Was die Implementierung im Codesys angeht, habe ich mich an die OWOS-Dokumentation gehalten.

Das iButton-Datenarray habe ich schon mal den SeriennummernIDs befüllt

iButton_Daten:ARRAY[1..I_Button_Anzahl] OF i_Button_key_V8 :=
(Name:='Person A', ID:='ABCDEFGH12345678',aktiv := FALSE),
(Name:='Person B', ID:='12345678ABCDEFGH', aktiv := FALSE);

Jetzt habe ich folgendes Problem:

Ich bekomme erst mal die owp.Statusmeldung = ‚es ist kein ow-Baustein angeschlossen, erst mit ow-Reset neuer Versuch‘. Eigentlich ja sogar verständlich, da ja
wahrscheinlich nicht der iButton-Leser im 1-Wire-Netzwerk erkannt wird, sondern der iButton mit der Seriennummer wenn dieser dann an den Leser gehalten wird.

Wenn ich jetzt also den

  • Seriennummer-iButton an den Leser halte,
  • owp.ID_suchen.was_suchen.ibutton=TRUE setze (Strg+F7 [Werte schreiben])
  • owp.ID_suchen.neue_ID_suchen=TRUE setze (Strg+F7 [Werte schreiben])
  • und anschließend noch eine Reset über owp.one_wire_Reset=TRUE (Strg+F7 [Werte schreiben]) auslöse

dann wird auch der iButton kurz im Leser erkannt (im iButton_Daten-Array wird dann - bei dem entsprechenden Eintrag - aktiv=TRUE). Anschließend bekomme ich dann
wieder die Statusmeldung owp.Statusmeldung = ‚es ist kein ow-Baustein angeschlossen, erst mit ow-Reset neuer Versuch‘.

Die Durchführung dieser manuellen Schritte ist in der Praxis natürlich nicht praktikabel, zeigt allerdings, dass das Ganze technisch ja schon mal funktioniert.

Wie bekomme ich es denn hin, dass im 1-Wire-Netzwerk alle X Millisekunden automatisch nach Seriennummer-iButtons im Netzwerk gesucht wird? Muss ich hierfür meine OWOS-Bausteine
speziell konfigurieren?

Viele Grüße

Martin

Hallo,

(Name:=‚Person A‘, ID:=‚ABCDEFGH12345678‘,aktiv := FALSE),

bei aktiv sollte schon „TRUE“-stehen, sonst wird der iButton nicht beachtet.

Gruß,
Rayk

Habe ich nur zwecks Initialisierung so gemacht. Prinzipiell wechselte der Status dann schon auf TRUE, wenn der iButton (über die genannte Vorgehensweise) gefunden wurde. Laut Doku wechselt „aktiv“ ja dann auf TRUE, wenn der iButton mit der ID gefunden, also an das Lesegerät gehalten wurde.

Grüße
Martin

Ich bin jetzt auch etwas „verwirrt“ welche Bausteine ich für meine Lösung benötige.

Aktuell nutze ich Folgende:

  • one_wire
  • i_Button_suchen

allerdings wird in der Doku auch von dem Baustein

„anwesenheit_iButton“ gesprochen (hiermit können iButtons am 1-Wire Netz abgefragt werden).

Jetzt frage ich mich ob ich ggf. diesen benutzen muss und „i_Button_suchen“ für meinen Aufgabenstellung überhaupt nicht notwendig ist (da ich die IDs meiner iButtons ja schon kenne und diesen nicht ermitteln muss).

„anwesenheit_iButton“ benötigt den Eingangs-Parameter
„werte: POINTER TO ow_werte;“
Wo bekomme ich diesen den her?
Irgendwie müsste ich es hier auch schaffen bei diesem Parameter „werte“ das Attribut „nur_iButton“ auf TRUE zu setzen, da ich nur iButtons in meinem 1-Wire Netzwerk betreiben möchte …

„anwesenheit_iButton“ ist eine Fehler, dieser Baustein existiert nicht,

Aktuell nutze ich Folgende:

  • one_wire
  • i_Button_suchen
    und hier ist das Problem.
    sofern nur iButton verwendet werden ist nur der Baustein „i_Button_suchen“ nötig,

Irgendwie müsste ich es hier auch schaffen bei diesem Parameter „werte“ das Attribut „nur_iButton“ auf TRUE zu setzen, da ich nur iButtons in meinem 1-Wire Netzwerk betreiben möchte …

macht der Baustein alles selbst…

Gruß,
Rayk

Danke für die Info!

Bin am Wochenende wieder zuhause und werde das dann gleich mal ausprobieren.

Gruß
Martin

Sooo … war heute mal wieder aktiv. Hier meine „Erkenntnisse“:

Wie Rayk schon geschrieben hat ist für den Einsatz von den iButtons (nur iButtons im 1-Wire-Netzwerk; keine anderen Fühler) lediglich der Baustein „i_Button_suchen“ notwendig, allerdings hat das bei mir dann leider trotzdem noch nicht funktioniert. Ich habe dann festgestellt das das Ganze wunderbar klappt, wenn man die Variable iButtonX.werte.nur_iButton := true setzt.

@Rayk: Mache ich hier trotzdem noch etwas falsch oder ist das „der richtige Weg“ zum Erfolg?


Im zweiten Schritt wollte ich einen einzelnen DS18B20-Temperaturfühler einbinden (OHNE iBUTTONs). Hierfür habe ich lediglich den Baustein

„ow_temperatur“

benutzt und habe anschließend - nach OWOS-Anleitung - den Temperaturfühler gesucht. Hat auch prima funktioniert.
(Der Baustein „one_wire“ ist hier laut Kommentar im Example nicht notwendig).


Im dritten Schritt wollte ich dann meine angestrebte Endlösung mit iButtons UND DS18B20-Temperaturfühler in Betrieb nehmen. Ich nutzte hierfür die beiden Bausteine:

„i_Button_suchen“
„ow_temperatur“

Leider habe ich jetzt den Fall das weder der DS18B20-Temperaturfühler noch die iButtons erkannt werden (die Variable iButtonX.werte.nur_iButton habe ich hierbei auf false gelassen, da ja nun nicht mehr nur iButtons im Netzwerks sind). Spaßeshalber habe ich dann auch noch den „one-wire“-Baustein dazugenommen. Hat aber leider auch nichts gebracht.

Hmm … warum klappt das denn jetzt nicht? Was mache ich falsch?

Freue mich wie immer über ein paar gute Tipps?

Viele Grüße
Martin

Hallo,

eine Kombination der Bausteine one_wire, ow_temperatur, i_Button_suchen ist generell nicht möglich, da jeder Baustein auf die serielle Schnittstelle zugreift und wenn zwei Bausteine auf die gleiche Schnittstelle zugreifen treten Probleme auf.

Für deinen Anwendungsfall iButton + DS18B20 habe ich den Baustein „ow_temperatur_i_button“. Der ist im Handbuch nicht dokumentiert ist aber wie die anderen Bausteine aufgebaut und sollte in der vorliegenden owos.lib drin sein, wenn er nicht vorhanden ist, lade ich die neue owos.lib hoch.
Bitte um Info.

Zur Variable „iButtonX.werte.nur_iButton“, diese Variable wird auf TRUE-gesetzt, wenn im Bus nur iButton erkannt worden sind, wenn ein weiterer 18B20 mit dran hängt ist er FALSE.

Gruß,
Rayk

Hallo,

dank Dir für die Infos!

Der Baustein „ow_temperatur_i_button“ ist bei mir in er OWOS-Library enthalten. Bin am Wochenende wieder zuhause uns werde das dann gleich mal ausprobieren.

Vielen Dank und eine schöne Arbeitswoche

Martin