# Codesys und Raspberry PI: Problem mit Onewire Beispielprogramm und ds18b20



## Jimbo200 (6 November 2015)

Hallo,
wenn ich das Programm starte, erscheint beim DS18B20 ein rotes Dreieck  und beim Status steht "1-wire bus : Kein trieber gefunden".
Bei der Visualisierung steht in der Tabelle 28-0215535ab4ff, die Lampe ist aus und die Temperatur beträgt 0°C.
Ich hab es davor ohne Probleme zum laufen bekommen, aber als ich es ein  paar studen später erneut probiert habe kam dieser Fehler.
Könnte der ds18b20 defekt sein?


----------



## HausSPSler (7 November 2015)

Hallo,

ist der onewire master noch grün im Gerätebaum?
du kannst mal  mit ssh (putty) dich auf dem Pi einloggen und dann in folgendes Verzeichnis schauen
'/sys/devices/w1_bus_master1/'
hier musst du dann irgendwo auch ein Verzeichnis bzw eine Datei finden die wie deine Slave ID heißt: 'XX-AABBCCDDEEFF' und darin dann z.B 
Beispiel:
sys/bus/w1/devices/28-041500634aff $ cat w1_slave

6a 01 55 00 7f ff 0c 10 85 : crc=85 YES
6a 01 55 00 7f ff 0c 10 85 t=22625
Einfach googeln wie  man die Sensoren über die Linux console ausließt um zu prüfen ob die generell gehen.
Vielleicht noch im CODESYS Projekt schauen on GPIO4 nicht durch was anderes belegt ist falls du GPIO'S in CODESYS verwendest.

Wenn die hier nicht gehen dann Verkabelung und den Wiederstand checken, wobei wenn es schon mal funktioniert hat und du an der Verkabelung nichts geändert hast
ist das schon komisch.

Grüße


----------



## Jimbo200 (9 November 2015)

Hallo danke für die Antwort. Die Ausgabe lautet:


> pi@raspberrypi ls /sys/devices/w1_bus_master1/
> 00-aabbccddeeff  w1_master_add              w1_master_remove
> 28-0004442100ff  w1_master_attempts         w1_master_search
> 28-0215535ab4ff  w1_master_max_slave_count  w1_master_slave_count
> ...



Grüße


----------



## Jimbo200 (9 November 2015)

Ich habe es jetzt mal mit einem neuen Sensor probiert. Jetzt ist alles grün im Gerätebaum, nur leider wird mir konstant eine Temperatur von 0°C angezeigt.


----------



## Jimbo200 (9 November 2015)

Habe es doch wieder zum Laufen bekommen  Habe die Lösung ja fast schon in meiner ersten Antwort gepostet. Anscheinend hat sich die ID von dem Sensor wie auch immer von 28-0004442100ff auf 28-0215535ab4ff geändert. Habe dass dann auch so in Codesys vorgenommen und die Temperatur wurde direkt wieder angezeigt Somit scheint der alte Sensor in Ordnung zu sein. Der neue scheint nicht erkannt wurden zu sein da er ja nicht mal in der Linux Konsole angezeigt wurde. Aber wie entsteht der Eintrag von 28-0004442100ff wenn nur ein Sensor angeschlossen ist?


----------



## HausSPSler (9 November 2015)

Hi,
sehr komisch... du könntest falls die Sensoren sich "dynamisch" ändern mit folgendem snippet (das passt zu dem Beispiel welches mit ausgeliefert wird)f
anpassen.. d.h es muss funktionieren wenn du einen anderen Sensor verdrahtest das der erkannt wird und eben auch ohne neuen neuen download die Sensordaten
von diesem Sensor mit neuer ID ließt. (wie gesagt ergänze die Zeile in dem Beispiel welches mit dem Package kommt)
*
DS18B20.ID :=Onewire_master.pasScannedDevices^[0];



*


----------



## Jimbo200 (10 November 2015)

Hallo,
es funktioniert jetzt alles ohne Probleme. Die Sensor ID's haben sich doch nicht geändert, ich habe mich nur geirrt 
Nochmals danke für die Hilfe


----------



## mike88 (5 Dezember 2015)

Hallo!
Ich habe auch ein sehr merkwürdiges Problem mit meinen Ds18B20. Wenn ich den raspberry mit angeschlossenem Pullup starte werden zwei Sensoren gefunden (obwohl nur einer angeschlossen ist) und es lässt sich keiner auslesen.
Wenn ich den raspberry ohne Pullup starte wird der Sensor richtig gefunden, liefert jedoch falsche Messwerte.
Die einzige Möglichkeit dass ich an die Temperatur komme ist, dass ich ohne Pullup starte und während des Betriebs den Pullup wieder einfügen. Ich hoffe ihr könnt mir helfen, habe bereits alles versucht...


----------



## mike88 (5 Dezember 2015)

Was mir gerade noch aufgefallen ist, die ID von Sensor ist die selbe, wie von Jimbo200: 28-0004442100ff


----------



## HausSPSler (5 Dezember 2015)

Hallo,
was steht in /boot/config.txt ? 
dtparam=i2c_arm=on
dtparam=spi=on
dtoverlay=w1-gpio-pullup,pullup=1

des muss eben  zu pullup oder eben nicht passen denke ich.
Grüße


----------



## mike88 (5 Dezember 2015)

Danke für die schnelle Antwort!
Ich denke ich habe bereits alle möglichen Kombinationen, die ich im Internet gefunden habe getestet (auch deaktivieren dieses dtoverlays), aber ich versuche es noch einmal kurz versuchen, um sicher zu gehen.


----------



## mike88 (5 Dezember 2015)

OK, habe es noch einmal so eingestellt:



pi@raspiSPS:~ $ /sys/bus/w1/devices
-bash: /sys/bus/w1/devices: Is a directory
pi@raspiSPS:~ $ cd /sys/bus/w1/devices
pi@raspiSPS:/sys/bus/w1/devices $ ls
28-000005482cd2  28-0004442100ff  w1_bus_master1
pi@raspiSPS:/sys/bus/w1/devices $ cd 28-000005482cd2
pi@raspiSPS:/sys/bus/w1/devices/28-000005482cd2 $ cat w1_slave
7b 01 4b 46 7f ff 05 10 1d : crc=1d YES
7b 01 4b 46 7f ff 05 10 1d t=23687
pi@raspiSPS:/sys/bus/w1/devices/28-000005482cd2 $ cd /sys/bus/w1/devices/28-0004442100ff
pi@raspiSPS:/sys/bus/w1/devices/28-0004442100ff $ cat w1_slave
ff ff ff ff ff ff ff ff ff : crc=c9 NO
00 00 00 00 00 00 00 00 00 t=-62
pi@raspiSPS:/sys/bus/w1/devices/28-0004442100ff $

Habe vorher immer gedacht, dass 28-0004442100ff der richtige Sensor ist und immer nur versucht diesen auszulesen.
Merkwürdig ist nur noch warum zwei angezeigt werden.


----------

