Wago und 1-wire V6

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.

mfg.
Rayk

one_wire_6_3.zip (52.7 KB)

ow example V6.x.zip (29.8 KB)

ow-kommunikation V6.x.zip (835 KB)

Hallo,

kann ich mit der Wago die IDs von Temp Sensoren herausfinden, oder muss ich hier den Bus direkt an den PC anschließen?

Gruß,

Chris

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.

wird noch verbessert…

gruß,
Rayk

Hallo Rayk,

erst mal danke für deine tolle Arbeit !!!

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:

  1. sensor suchen: die Werte werden leider als Dezimal angezeigt man muß sie aber als Hex in die Globalen Var eintragen, irgend wie umständlich …

  2. 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?

schon mal danke und ein schönes Wochenende

Christian

Hallo,

  1. du kannst die ID auch als Dezimalzahl eingeben, einfach 16# weglassen,
  2. 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.

Gruß,
Rayk

na dann danke für die schnelle Antwort, freu mich schon auf die neue Version :loveips:

Hallo,

bin jetzt erst dazu gekommen nach den IDs der Sensoren zu suchen (Hausbau).

Habe folgendes im Beispielprogramm eingetragen:
Im Startprogramm:
owp.ID_suchen.was_suchen.DS1820:=TRUE;
owp.ID_suchen.neue_ID_suchen:=TRUE;

Wann/wie wird das Startprogramm überhaupt ausgeführt? Was ist der Trigger?

da die A_Anzahl_T_Sensoren ja schon auf 3 steht, müsste an der 3. Stelle doch jetzt eine ID angezeigt werden, wird es aber nicht.

gefundener_typ.DS1820 steht auf TRUE.

allerdings steht owp.ID_suchen.was_suchen.DS1820 auf false (wird das automatisch zurückgesetzt?).

Hat jemand eine Idee, was ich falsch mache? HW technisch sollte doch alles OK sein, wenn er ein DS1820 findet, oder?

Gruß,

Chris

Hallo,

  1. Startprogrmm wird als Task–>Systemereignisse definiert und wird demzufolge bei Systemstart ausgeführt

  2. "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.

  3. „gefundener_typ.DS1820“ ist eine automatische Suche um die Bausteinarten am Bus zu erkennen, das hat nix mit der ID-Suche zu tun

Gruß,
Rayk

Hallo,

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.

Gruß,

Chris

Hallo,

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

ID gefunden!

Vielen Dank!

Hallo zusammen,

geht das ganue auch mit der 880 oder gibt es da Problem. Da am Anfang des Thema steht, dass die 841 und 881 unterstütz werden?

MfG
Maik

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 …

… habe es mit der 841 und 881 getestet, 880 geht auch

Gruß,
Rayk

Super, dann kann bestellt werden.

Kann man die Platine auch selber bauen? Gibt es ne Anleitung?

Danke für Eure Antworten.

Gruß Maik