# Cp340 Dallas Sensoren



## MichaelHuf (27 März 2006)

Hallo zusammen,

ich versuche gerade Dallas 1820 Sensoren über eine Cp340
auszulesen.Bekomme es aber nicht hin.

Ist dies überhaupt möglich , brauche ich eine andere Schnittstelle ?
Hat jemand so was schon gemacht?

Laut Internet kann man diese per Acsii auslesen.
Schnittstelle hab ich schon zusammengebaut,und funktioniert unter Windows/Linux einwandfrei.

CPU 614,CP340,Step75.3Sp3


MGF
Michael Huf


----------



## thomass5 (19 Juni 2010)

.... auch wenn das Thema schon alt ist, möchte ich es mal fortsetzen.
Hat jemand schon die Temperatursensoren von Dallas erfolgreich mit einer S7 (welche auch immer) verbunden? Ich überlege gerade, ob ich auf analoge Sensoren zurückgreife, oder diesen Weg gehe.
Thomas


----------



## Thomas_v2.1 (19 Juni 2010)

Die DS1820 kannst du nicht direkt an eine RS232-Schnittstelle anschließen, denn die Sensoren laufen mit dem 1-Wire Bus der nicht kompatibel ist.
Es gibt aber von Dallas entsprechende Pegelwandler von RS232 auf 1-Wire (DS9097U), und ich habe auch schon Selbstbaulösungen gesehen. Ich kann aber nicht berichten wie gut diese funktionieren, da ich die Dallas Sensoren bisher nur über einen Mikrocontroller direkt über 1-Wire angesprochen habe.

Aber du wirst trotzdem noch einen Großteil der Kommunikation in der SPS ausprogrammieren müssen (Stichwort ROM-Codes der Sensoren auslesen, speichern etc.).


----------



## dalbi (19 Juni 2010)

Hi,

eine andere Möglichkeit wäre über I2C hier für gibt es unter http://www.horter.de/i2c/i2c-modem/i2c_modem_1.html eine Art Modem.
Sensoren usw. gibt es dafür auch ziemlich viele.

Gruss Daniel


----------



## gravieren (19 Juni 2010)

Hi

Hierüber wandelst du RS232 nach 1-Wire.

http://www.fuchs-shop.com/de/shop/17/



Falls du einen Wandler kaufen willst, frage hier nochmals nach.


----------



## thomass5 (19 Juni 2010)

Danke,
das mit dem Schnittstellenumsetzer war mir bewusst. Bei den Sensor-IDs wollte ich "faul" sein, und vorher alles über den Rechner machen und in einem DB ablegen. "Nur" noch den Datenempfang soll die SPS übernehmen.
Schnittstellenwandler werd ich mir nen fertigen kaufen(kost ja nicht die Welt) und mal rumprobieren. CPU hätte ich erstmal ne 314ifm mit nem 340er RS232 CP.
Thomas


----------



## gravieren (19 Juni 2010)

Hallo Thomas.



Hat dein CP an den Steuersignalen die 12 Volt Spannung.
(  DTR und RTS  etwa 12 Volt  gegen Masse)

Ansonsten benötigst du ein separates Netzteil.


Siehe hier.
http://www.magnia.de/index.php?option=com_kunena&Itemid=55&func=view&catid=4&id=12


Bitte meße vorher.   (  DTR und RTS  gegen Masse)
Ansonsten empfehle ich dir einen Adapter mit.


----------



## MichaelHuf (26 Juni 2010)

Hallo Thomas,

gibt's denn bei dir schon Erfolgsmeldungen betreffend deiner 1-Wire Sensoren.
Ich Arbeite auch seid kurzem wieder an einer Lösung über einen DS9097-U Adapter.Der auch soweit funktioniert wenn du ihn mit einer externen Spannung speist.Die einzigen Probleme die ich noch lösen muss sind,
1. beim auslesen kommt immer in 1. u 2.Byte AA 00 heist 85°C 
   (alles probiert parasitär und mit extern 5V)
2. das Schreiben in den REAL Wert , steh da gerade etwas auf dem Schlauch weil ich alles in SCL geschrieben habe.

Mein Ablauf sieht bis jetzt so aus:

1. SEND  E3 C5  //RESET
    RECV CD
2. SEND  E1 CC 44 E3 C5 // TEMP-CONVERT
    RECV CD
3. SEND  E1 55 10 E1 08 01 00 22 17 22 // READ ID
    RECV  55 10 E1 08 01 00 22 17 22
4. SEND  BE FF FF FF FF FF FF FF FF FF // TEMPERTUR AUSLESEN
    RECV  BE AA 00 4B 46 FF FF 0C  -> 85°C
dann geht von vorne los.

Verwende eine Cp340 mit Ascii Protokoll
9600 Baudrate 
8Bit 
1 Stopbit 
keine Parität



Gruss Michael


----------



## Thomas_v2.1 (26 Juni 2010)

MichaelHuf schrieb:


> Mein Ablauf sieht bis jetzt so aus:
> 
> 1. SEND  E3 C5  //RESET
> RECV CD
> ...



Was ist das denn für ein Ablauf? Ich habe meine DS1820 folgendermaßen ausgelesen (ohne parasite Power, mehrere DS1820 am Bus):

1. Master Reset
2. MATCH_ROM (0x55) senden
3. Seriennummer (8 Bytes) des gewünschten Sensors senden
4. CONVERT_T (0x44) senden
5. Warten bis Pin auf 1 wechselt, dann ist die Wandlung fertig
6. Master Reset
7. MATCH_ROM (0x55) senden
8. Seriennummer (8 Bytes) des gewünschten Sensors senden
9. READ (0xBE) senden
10. 8 Bytes vom Slave empfangen, Temperatur steht in den ersten beiden Bytes

Punkt 5 kannst du wahrscheinlich über deinen RS232-Wandler nicht durchführen, vielleicht mal probehalber eine kleine Verzögerungszeit einbauen?


----------



## MichaelHuf (26 Juni 2010)

Hallo ,

erstmal Danke für deinen Tip , ich hab auf die Aussage von dem aufgebaut.
http://www.ip-symcon.de/forum/f41/wago-1-wire-8880/index4.html

Ist den auch die aussage von dem Sendearray auch falsch ?
Für RESET
SENDEARRAY[1] := b#16#E3;
                           SENDEARRAY[2] := b#16#CD;
                           Sendelänge := 2;

oder TEMP_CONVERT
              SENDEARRAY[1] := b#16#E1;
                           SENDEARRAY[2] := b#16#CC;
                           SENDEARRAY[3] := b#16#44;
                           Sendelänge := 3;

Und noch eine Frage, weil ich jetzt das ganze in Frage stelle.
Ich hab meinen Adapter genau so angschlossen wie bei einer WAGO
http://www.magnia.de/images/fbfiles/images/Skizze_Wago_750-530_auf_DS9097.png
Hab jetzt auch mal den Ablauf von dir genommen, kommt aber auch nur AA 00 raus.
Wäre schön wenn du mir da weiter helfen könntest.

Gruss Michael


----------



## Thomas_v2.1 (27 Juni 2010)

Wie oben schon geschrieben spreche ich die Sensoren direkt an, ohne Umweg über diesen Umsetzer.
Gibt es denn entsprechende Steuerzeichen mit denen der Umsetzer z.B. ein Master-Reset erzeugt (bei dir 0xE3 0xCD)?

Mein beschriebener Ablauf steht auch so im Handbuch des DS1820.
Was mich stuztig macht ist dies hier:

```
4. SEND BE FF FF FF FF FF FF FF FF FF // TEMPERTUR AUSLESEN
```

Warum werden denn nach dem Read Befehl (0xBE) noch die 9 Bytes 0xFF gesendet? Naja, wenn es bei den anderen Leuten funktioniert scheint das wohl irgendeinen Sinn zu haben.


----------



## argv_user (27 Juni 2010)

Thomas_v2.1 schrieb:


> Wie oben schon geschrieben spreche ich die Sensoren direkt an, ohne Umweg über diesen Umsetzer.
> Gibt es denn entsprechende Steuerzeichen mit denen der Umsetzer z.B. ein Master-Reset erzeugt (bei dir 0xE3 0xCD)?
> 
> Mein beschriebener Ablauf steht auch so im Handbuch des DS1820.
> ...



Die FFs könnten reine Pausenfüller sein, wenn sie vom DS1820 ignoriert werden; also so eine Art definierte Wartezeit. Aber sicher bin ich da nicht.


----------



## MichaelHuf (27 Juni 2010)

Hallo,

eine Schnittstellen beschreibung des DS9097U hab ich noch nicht gefunden,
ich hab die Info's aus dieser Lib einer WAGO.
http://www.ip-symcon.de/forum/f41/wago-1-wire-8880/index2.html

Gruss Michael


----------



## Rayk (27 Juni 2010)

Hallo,
im DS9097U ist ein DS2480B als Wandler eingebaut demzufolge ist im Datenblatt des DS2480 alles beschrieben.
Aber nun zu den  16#FF nach 16#BE:
mit 16#BE (Read Scratchpad) wird eine Leseanforderung gestartet und jedes 16#FF sagt, dass ein Byte gelesen werden soll , wenn du nur die Temperatur lesen möchtest, dann genügen 2 x 16#FF wenn du aber die CRC-Prüfsumme auswerten möchtst (oscat lib!), dann müssen 9 Byte gelesen werden also 9 x 16#FF.

mfg.
Rayk


----------



## gravieren (27 Juni 2010)

MichaelHuf schrieb:


> 1. beim auslesen kommt immer in 1. u 2.Byte AA 00 heist 85°C


Du hast die Temperaturmessung NICHT gestartet.

Du liest nur aus  !  


Also starten Temperaturwandelung.
Abwarten der Wandelungszeit (ca. 500 ms)
Auslesen der Temperaturwerte.


----------



## MichaelHuf (27 Juni 2010)

Hallo,

ich hatte die wartezeit zu klein eingestellt steht jetzt auf 600ms.

Wenn ich euch noch um einen Gefallen bitten dürfte,
Ich scheitere immer noch beim schreiben in meinen DB als Real.
Geht das überhaupt mit SCL, es gibt gar kein DBD.

Wie kann man den so was umsetzen?

Sensordaten [Zeiger_Sensor].Temperatur:= Sensordaten [Zeiger_Sensor].Temperatur -0.25 + ((Empfangsdaten[7] - Empfangsdaten[6]) / Empfangsdaten[7]);

Gruss Michael


----------



## ET-SPS (1 März 2013)

Hi, 

wäre es möglich wenn es zu dem Thema eine kleine Anleitung (HowTo) als Zusammenfasung vom Thread-Ersteller zu bekommen?

Gruß.


----------



## gravieren (2 März 2013)

Hi

Lade dir die LIB von RAYK herunter.
(Inklusive Quellcode !)

Z.b. von hier:   http://www.eservice-online.de/Download-Support/OWOS-1-Wire-fuer-WAGO/



Gruß Karl


----------



## ET-SPS (2 März 2013)

*Danke werde das mal durchlesen*

Hi.

Danke werde das mal durchlesen. 

Gruß.


----------

