Hallo,
ich möchte den neuen Stand der one-wire.lib (V6.3) vorstellen.
Wer es noch nicht wissen sollte, es handelt sich um die Kopplung des one-wire Bussystems mit dem Wago Controller 750-841/881 über die interne serielle Schnittstelle, oder über eine RS232 Klemme (getestet mit 750-650/000-001).
Es werden folgende one-wire IC’s unterstützt: DS18B(S)20, DS2438,DS2450, DS2405, DS2408, DS2413 und auch iButton‘s.
Eine CRC-Prüfung erfolgt an allen Baustein welche auch eine Prüfsumme generieren (DS18B(S)20, DS2438, DS2450, DS2408).
Achtung: um die Kompatibilität mit der OSCAT-Bibliothek zu gewährleisten habe ich die Rayk_Wago.lib geändert. Bitte die V2.2 benutzen (Rayk_WagoV2.2.lib)!
Wer das Beispielprogramm „ow example“ nutzen möchte, muss natürlich das Zielsystem und Steuerungskonfiguration an seine verwendete Hardware anpassen.
Ebenfalls müssen die ID’s der one-wire Bausteine angepasst werden, sonst wird das nix.
Hallo,
die ID’s können gesucht werden, Voraussetzung ist, dass „Anzahl_T_Snsoren“ groß genug ist.
Globale Var.: -->“owp.ID_suchen.neue_ID_suchen“ =“TRUE“ aber vorher unter Globale Var.: -->“owp.ID_suchen.was_suchen.DS1820“ =“TRUE“ festlegen, was gesucht werden soll.
Dann wird die gefundene ID an der ersten freien Stelle eingetragen.
Nachteil ist, sie wird nicht dauerhaft gespeichert, also notieren und manuell eintragen.
hab seit längerem mal wieder etwas zeit zum bastenl, also gleich mal deine neue lib ausprobiert, funktioniert soweit super, ich hätte aber 2 Verbesserungsvorschläge:
sensor suchen: die Werte werden leider als Dezimal angezeigt man muß sie aber als Hex in die Globalen Var eintragen, irgend wie umständlich …
ich und warscheinlich einige andere setzten den DS2438 nicht nur zur helligkeitsmessung ein sondern z.b. auch für Feuchte messung, könntest du mir erklären was ich in der lib ändern muß damit ich keinen Helligkeits wert bekommen sondern die Gemessene Spannung mit der man sich dann ausrechnen kann was man will?
du kannst die ID auch als Dezimalzahl eingeben, einfach 16# weglassen,
ist schon fertig nur die Doku ist noch nicht soweit DS2438 -->VDD,VAD und Xsens-Werte in Version 7
für die Feuchtemessung (DS2438) ist auch eine Funktion zur Umrechnung mit dabei
ich muss nur noch die one-wire LCD-Anzeige mit reinbasteln, dann wird die neue Lib veröffentlicht.
Startprogrmm wird als Task–>Systemereignisse definiert und wird demzufolge bei Systemstart ausgeführt
"owp.ID_suchen.was_suchen.DS1820:=TRUE; owp.ID_suchen.neue_ID_suchen:=TRUE; "
sollte manuell ausgeführt werden um die ID’s zu suchen,
nach dem suchen der ID’s müssen diese manuell in die Globaldaten eingetragen werden, sonst sind sie nach dem nächsten Systemstart weg.
„gefundener_typ.DS1820“ ist eine automatische Suche um die Bausteinarten am Bus zu erkennen, das hat nix mit der ID-Suche zu tun
habe jetzt das Startprogramm so eingestellt, dass es beim Systemstart ausgeführt wird. Dies führt jedoch dazu, dass der „bus_i_o“ status nicht auf true geht.
Was meinst Du mit „sollte manuell ausgeführt werden“? Nicht im Startprogramm? Wie geht das?
Vielen Dank schonmal für eure Hilfe! Bin sonst richtig aufgeschmissen.
globale Variablen -->„owp.ID_suchen.was_suchen.DS1820:=TRUE“;
„owp.ID_suchen.neue_ID_suchen:=TRUE“;
dann STRG+F7 (Werte schreiben)
dann wird die ID-Suche gestartet.
wenn „bus_i_o“ nicht „True“ ist, mal unter „owp.Busstatus.Versuche“ nachsehen, wenn dort eine 6 steht, dann kann die Kommunikation mit dem ow-Gateway (DS2480B) nicht aufgebaut werden.
Evtl. „owp.sonstige werte.one_wire_reset“ auf TRUE setzen s.o. (STRG+F7),dann wird ein neuer Versuch gestartet.
Gruß,
Rayk
hatte das ganze bis jetzt nur an einer 841 und 881 im einsatz, wüsste aber nicht was gegen die 880 spricht, ist ja das gleiche system ausser dem sd slot …