1-Wire mit owos 8.3 Probleme mit DS2438

Hallo,
ich nutze eine Wago 750-881 mit 1-Wire Buskoppler und 1-Wire Hub von eservice online.
Am 1-Wire Bus betreibe ich 10 Stück DS18B20 sowie einen Luftgütesensor mit 1-Wire Baustein DS2438.

Das Auslesen der DS18B20 Sensoren läuft fehlerfrei, leider habe ich mit dem DS2438 Probleme. Ich habe mir nun einen Testaufbau mit einer autarken Wago 750-881 nebst Buskoppler gamacht, hier läuft mein 1-Wire Netzwerk fehlerfrei, auf der Testwago läuft die owos_8_3_example.pro.

Schließe ich den Bus wieder an mein Produktivsystem an, so habe ich wieder Probleme mit den DS2438. Er wird nicht mehr angesprochen. Nun habe ich die Zykluszeit in Verdacht. Im Testsystem läuft das Programm als freilaufender Task, im Produktivsystem sind einige andere Task mit auf der SPS und somit wird die Zykluszeit natürlich stärker beeinflusst.

Die Taskzeiten im Testsystem für 1-Wire: (ow_baustein)

Task 0: xyz, ID: 0
Cycle count: 168008165
Cycletime: 1 ms
Cycletime (min): 1 ms
Cycletime (max): 5 ms
Cycletime (avg): 1 ms
Status: RUN
Mode: UNHANDLED

Die Taskzeiten im Produktivsystem für 1-Wire: (ow_baustein)
Task 4: OneWire, ID: 4
Cycle count: 156789908
Cycletime: 2 ms
Cycletime (min): 1 ms
Cycletime (max): 30 ms
Cycletime (avg): 1 ms
Status: RUN
Mode: UNHANDLED

Priority: 1
Intervall: 1 ms
Event: NONE

Hat jemand ähnliche Erfahrungen oder kann mir eine Rat in der Angelegenheit geben?
Hardware oder Busprobleme schließe ich in der Zwischenzeit aus.

Gruß
Norbert

Hallo,

…so habe ich wieder Probleme mit den DS2438. Er wird nicht mehr angesprochen

Was passiert, wenn ein DS2438 nicht „angesprochen“ wird, bzw. welche Werte stehen in der Struktur des DS2438?
Ist „Anzahl_DS2438“ gleich der existierenden DS2438?

Das ein Baustein nicht angesprochen wird ist unmöglich, wenn bei der Kommunikation etwas schief läuft dann sollte ein CRC-Fehler auftreten, welcher unter „DS2408_Daten.Fehler“ abgelegt wird.

Welche Zeiten stehen bei „T_sensor“ und „T_a“?

Gruß,
Rayk

Hallo,

Was passiert, wenn ein DS2438 nicht „angesprochen“ wird, bzw. welche Werte stehen in der Struktur des DS2438?

Er wird nicht mehr gefunden, wenn ich ihn suchen lasse.
Was suchen - DS2438 auf true
Neue ID suchen - true
Trage ich die ID statisch ein, so passiert nichts, in der Statusmeldung werden die DS18B20 gemessen und dann kommt „Warten auf neue Messung“.

Sruktur
DS2438_Daten [1]
Name = ‚CO2Box Box‘
ID = ‚C00000017121D426‘
Temperatur = 0
VAD = 0
VDD = 0
XSENS = 0
Stoerungen = 0
Fehler = FALSE
aktiv =TRUE

Ist „Anzahl_DS2438“ gleich der existierenden DS2438?

Ja = 1

Das ein Baustein nicht angesprochen wird ist unmöglich, wenn bei der Kommunikation etwas schief läuft dann sollte ein CRC-Fehler auftreten, welcher unter „DS2408_Daten.Fehler“ abgelegt wird.

Frage: Ist „DS2408_Daten[x].Fehler“ unter ow_baustein zu finden?
Hier gibt es doch nur False oder True oder muss ich an anderer Stelle suchen?

Welche Zeiten stehen bei „T_sensor“ und „T_a“?
T_sensor=70ms
T_a=60s

Gruß,
Norbert

Hallo,

Frage: Ist „DS2408_Daten[x].Fehler“ unter ow_baustein zu finden?
Hier gibt es doch nur False oder True oder muss ich an anderer Stelle suchen?

soory, die Störungen sind natürlich unter "DS2408_Daten[x].Stoerungen" zu finden, aber…

Er wird nicht mehr gefunden, wenn ich ihn suchen lasse.
das ist die Ursache,
der owos Baustein sucht bei Start alle vorhandenen Bausteine und arbeitet demzufolge auch nur die Typen ab, weche gefunden wurden…
ich vermute an der Hardware ist ein Fehler

Gruß,
Rayk

Hallo,

um einen Hardwarefehler auszuschliessen habe ich ein Testsystem aufgebaut und dort den 1-Wire Bus mit diesem DS2438 und den anderen Sensoren angeschlossen.

Wenn ich dort die owos 8.3 und das mitgelieferte Beispielprogramm betreibe, wird der Sensor gefunden und auch angesprochen. Der einzige Unterschied zum Prdoduktivsystem ist, dass keine weiteren Programme auf der SPS laufen sondern nur die owos 8.3 im freilaufenden Task. Die „weiteren Programme“ im Produktivsystem sprechen die serielle Schnittstelle nicht an und sind für Licht- und Rollladensteuerung zuständig.
Die DS18B20 machen auch im Produktivsysem keine Probleme, nur der DS2438.
Daher kommt meine Ratlosigkeit.

Gruß
Norbert

…bezüglich Task, welche Taskzeit hat der owos Baustein bzw. wie ist die Priorität …

Hier die Taskzeiten des Produktivsystems:
Task 4: OneWire, ID: 4
Cycle count: 275629154
Cycletime: 9 ms
Cycletime (min): 1 ms
Cycletime (max): 44 ms
Cycletime (avg): 1 ms
Status: RUN
Mode: UNHANDLED

Priority: 1
Intervall: 1 ms
Event: NONE

Ich habe die Sensorik nochmal ans Testsystem angeschlossen. Der DS2438 läuft und hier sind die Taskzeiten:
Number of Tasks: 2
Task 0: xyz, ID: 0
Cycle count: 414354
Cycletime: 1 ms
Cycletime (min): 1 ms
Cycletime (max): 4 ms
Cycletime (avg): 1 ms
Status: RUN
Mode: UNHANDLED

Priority: 5
Intervall: 0 ms
Event: NONE

Function pointer: 16#28D23270
Function index: 979

  1. ist am one-wire-Baustein der Eingang „DS2438_Daten“ mit ADR(DS2438) und der Eingang Anzahl_DS2438 auch mit „Anzahl_DS238“ oder alternativ Konstante >0 belegt?

  2. wenn bei 1. alles i.o. ist, auch wenn du Hardwarefehler ausgeschlossen hast, ist der Sensor richtig angeschlossen,
    bzw. antwortet der DS18B20 welcher im Senor neben dem DS2438 verbaut ist?

  3. wenn der DS18B20 im Luftgütesensor ordenlich arbeitet dann starte noch einmal eine ID-suche und
    beobachte mal owp ->ID_suchen ->anzahl_gefunden ob dort bei DS2438 eine Zahl >0 steht
    alternativ owp ->gefundener_typ obdort bei DS2438 ein TRUE-Signal zu finden ist

  4. wenn kein DS2438 gefunden wurde, ist die letzte Möglichkeit manuell ein gefundener DS2438 einzutragen
    owp ->gefundener_typ ->DS2438 TRUE eintragen, dann sollte sofern der DS2438 richtig angeschlossen ist ein Wert gemessen werden

zu 1. ist alles so eingestellt
zu 2. der neben dem DS2438 verbaute Sensor DS18B20 antwortet mit korrektem Temparaturwert
zu 3. bei der Suche steht ID_suchen ->anzahl_gefunden = 0 und owp ->gefundener_typ bei DS2438 = false
zu 4. ich habe ihn dann manuell eingetragen und auf true gesetzt. Es wird nichts gemessen, nur die „Stoerungen“ werden bei jedem Messzyklus um +2 hochgesetzt

…Zusatz zu Punkt 4.die ID des DS2438 muss eingetragen sein sonst wird das nix

wenn das nix hilft schick dein Programm mal

nur die „Stoerungen“ werden bei jedem Messzyklus um +2 hochgesetzt
+2 muss ein +1 sein, das ist noch ein bug in der owos.lib, welcher noch entfernt werden muss

Hallo enra
natürlich habe ich die ID eingetragen.
Programm ist unterwegs.

Hallo,
ich möchte eine Zwischenstand posten:
Rayk hat mein Programm geprüft und keine Fehler festgestellt - es läuft soweit.
Die Taskzeiten, die ich Anfangs als Fehler vermutet hatte sind nicht die Ursache.
Im one_wire Baustein habe ich bei T_a 70ms eingetragen, die Taskzeit für den onewire Baustein habe ich auf 20ms mit Prirorität 1 gesetzt.

Ergebnis:
die DS18B20 werden nach wie vor problemlos ausgelesen.
Mein DS2438 war ca. 5 Tage ohne Reaktion auf die Änderungen. Wie von Geisterhand läßt er sich jetzt aber ab und an ansprechen und liefert auch Werte, die teilweise aber unrealistisch sind. (Luftfeuchte 137%)

Ich habe ihn bei „gefundenener Typ“ von Hand eingetragen.
Hin und wieder gibt er aber korrekte Werte aus. Die Anzahl der Störungen steigt kontinuierlich an.

Um einen Hardwaredefekt auszuschliessen, werde ich mir einen neuen DS2438 zulegen und dann wieder berichten.
Das Problem ist nicht gelöst aber ich bin eine großen Schritt weitergekommen!

Gruß Norbert

Das Problem ist gelöst. Die Verdrahtung aller GND Klemmen am Buskoppler und Hub auf ein einheitliches GND Potential haben das Problem gelöst. Die GND Verdrahtung am Buskoppler hatte gefehlt.

Gruß
composti

Hallo zusammen,

leider habe ich ähnliche Probleme mit dem DS2438.
An einer WAGO 750-650 hängt bei mir der Buskoppler von e-service. Diese fragt aktuell einen Temperatur- und Luftfeuchtesensor von e-service ab. Der onewire-Bus hängt an den entsprechenden Klemmen des 1Wire-Kopplers.
Als Test nutze ich das Demoprojekt „owos_8_3_1_example“. Es zeigt sich folgendes Verhalten:
Der Temperatursensor wird korrekt ausgelesen. Der Feuchtesensor (DS2438) wird am Bus zwar erkannt und die ID gelesen - Werte kommen aber keine (siehe Screenshot).

Folgende Tests habe ich schon durchgeführt:

  • Unterschiedliche Timings: auto sowie Ta zwischen 20ms und 200ms (Ta_hand = 1) -> gleiches Verhalten
  • Buskoppler an interne SPS-COM-Schnittstelle angeschlossen (mit Pegelwandler) -> gleiches Verhalten
  • Temperatur- und Luftfeuchtesensor an einen PC-Adapter (DS9490R) -> beide Sensoren werden korrekt ausgelesen

Wer hat noch eine Idee, an was es liegen könnte? Ich bin aktuell ratlos :confused:

Hallo,
sind die +5V richtig angeschlossen?
mfg.

Hi,

Die +5V für den Sensor kommen aus dem eservice Buskoppler.

Im Einsatz ist die 24V-Variante 1-Wire Buskoppler RS232, galvanisch Isoliert.