Digitale Temperatursensoren an 313C-2DP

xxgamerz

Active member
Beiträge
42
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo Community,


Ich möchte bei mir zu Hause die Heizung mit einer S7 automatisieren. Im ganzen System wären 20 Temperatursensoren, 7 Pumpen und ein Impulsgeber. Die Pumpen schalten nur bei bestimmten Temperaturen ein oder aus, dazu habe ich eine SM322(322-1HF01-0AA0), dass ich einfach über ein Relais die Pumpen direkt anspreche. Den Impulsgeber schließe ich, dachte ich mir, an Kanal 0, parametriert auf Zählen, an. Der Impulsgeber ist ein Durchflussmesser, er gibt bei jeweils einem halben Liter Durchfluss ein Signal. Mein Problem sind jetzt die Temperatursensoren. Digitale Eingänge habe ich genug(Erweitert mit SM323(VIPA 323-1BL00)), also 32 DI und 32 DO. Angezeigt werden die Temperaturen auf einem OP77B, über MPI an X1(CPU) und IF1B(Panel). Das Panel st bereits fertig, Programm ist überspielt. Es will nur noch die Sensorwerte aus der DB.

Ich würde gerne wissen, ob es möglich ist, digitale Temperatursensoren (z.b. der hier) an die 313C-2DP anzuschließen und auszuwerten? Ich möchte eigentlich keine Messumwandler kaufen, da ich nicht so viel Geld habe. Azubileben eben.

Dazu kommt das ich S7-Neuling bin, hatte auch noch nie etwas mit S7 zu tun.

Hoffe auf schnelle Hilfe und danke im voraus.
 

Deltal

Well-known member
Beiträge
1.074
Punkte Reaktionen
140
Die TSic Sensoren (Datenblatt) geben ihre Temperaturmessdaten automatisch in einem festen Intervall aus. Daher muss der Host nur warten bis die nächsten Messdaten rausgeschickt werden. Die TSic Sensoren die es im freien Handel gibt, geben ihre Messdaten alle 100ms (10Hz) aus. Zur Übertragung wird das ZACwire Protokoll benutzt. Es handelt sich um eine einfach zwei Byte Übertragung per Manchester-Code. Diese zwei Byte repräsentieren den digital gewandelten Temperaturwert. Im Gegensatz zu Sensoren wie den DS18xxx von Dallas muss dieser Wert aber erst auf einen dezimalen Wert umgerechnet werden. Die Sensoren kommen mit 3 Pins aus (VCC, GND, Dout).
Quelle: http://www.mikrocontroller.net/articles/Temperatursensor#TSic

Da der Link zum Protokoll kaputt ist, nochmal googlen und http://wiki.trimension.de/wiki/TSIC™_und_ZACWIRE™_auslesen dieses lesen.

Jetzt schau mal nach welche Impulszeiten du mit einer DI-Baugruppe einlesen kannst ;)


Alternativen wären halt Analoge Baugruppen. Es gibt auch extra für P100 Baugruppen, die werden "RTD" genannt. Eventuell findest du da ja bei Ebay nen Schnäpchen.

Wenn du nicht dauerhaft aktuelle Messwerte brauchst.. hast du mal drüber nachgedacht ein Multiplexer einzusetzen?
 
OP
X

xxgamerz

Active member
Beiträge
42
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Danke für deine schnelle Antwort.

Also zu den Impulszeiten an der CPU habe ich nichts gefunden. Die der DIO-Baugruppe sind hier. Ich kann aber nur entnehmen, dass ich zwischen 1 und 0 3ms Verzögerung habe.


Andauernd aktuelle Messwerte brauche ich nicht. Die Messwerte werden eh verzögert am Panel ankommen, da das Signal fast 50 Meter durchs Kabel muss.


Das Signal kann ich dann CPU-Intern als Byte verwerten. Oder?
 

Deltal

Well-known member
Beiträge
1.074
Punkte Reaktionen
140
Ohkay.. also wenn du dir den Link anschaust, wirst du sehen das die Daten mit "8kHz" Frequenz gesendet werden, wobei eine Periode für ein Bit steht. Damit ist ein Bit etwa 125µs lang, wobei du für die Auswertung auch noch eine vierfach höhere Abtastrate brauchst, also etwa 32µs.

--> Das wird nie klappen!

----

Das mit den aktuellen Messwerten bezieht sich auf den Muliplexer. Sagen wir mal du brauchst nur alle 10min einen aktuellen Temperaturwert. Dann könntest du theoretisch 20 Relais nehmen und damit alle 30sek einen anderen Sensor an den Analogeingang deiner CPU anschliessen. Durch den Einsatz von Halbleitern kannst du natürlich auch schneller umschalten, aber du kannst eben niemals alle Sensoren gleichzeitig auslesen.
 

gravieren

Well-known member
Beiträge
2.213
Punkte Reaktionen
237
Zuviel Werbung?
->Hier kostenlos registrieren
Hi

TSIC206-50 --> Serielle Schnittstelle benötigt --> NUR 1 Sensor pro V24 anschliessbar !
- Willst du das, Reicht dir das ?

Deine CPU kann 1 Temperatursensor einlesen ! (Die Genauigkeit ist jedoch nicht so der "Renner")
- Das ist dir bewust ?


TIP:
Schau dir doch mal den 1-Wire an ! --> (Dutzende Temperatursensoren und z.b. Display, Taster am BUS möglich)

Z.b.
http://www.fuchs-shop.com/de/shop/5/


Infos hierzu gibt es ausreichend.


Du benötigst natürliche entweder eine V24 oder Ethernet für die Messungen.


Gruß Karl
 
OP
X

xxgamerz

Active member
Beiträge
42
Punkte Reaktionen
0
Das Kabel interessiert mich! Wo kann man es kaufen? Oder selbst gemacht, dann lass es Dir noch dieses Jahr patentieren! :razz:

50 Meter Lapp-Buskabel und 2 D-Sub Stecker. :p

Ohkay.. also wenn du dir den Link anschaust, wirst du sehen das die Daten mit "8kHz" Frequenz gesendet werden, wobei eine Periode für ein Bit steht. Damit ist ein Bit etwa 125µs lang, wobei du für die Auswertung auch noch eine vierfach höhere Abtastrate brauchst, also etwa 32µs.

--> Das wird nie klappen!

----

Das mit den aktuellen Messwerten bezieht sich auf den Muliplexer. Sagen wir mal du brauchst nur alle 10min einen aktuellen Temperaturwert. Dann könntest du theoretisch 20 Relais nehmen und damit alle 30sek einen anderen Sensor an den Analogeingang deiner CPU anschliessen. Durch den Einsatz von Halbleitern kannst du natürlich auch schneller umschalten, aber du kannst eben niemals alle Sensoren gleichzeitig auslesen.

Ich hab aber keinen Analogeingang, das ist das Problem. Eine Baugruppe wollte ich mir aber eigentlich nicht mehr zulegen.

Di andere Frage ist - gibt es dann überhaupt einen Sensor, der an einem Digitaleingang funktioniert?

Hi

TSIC206-50 --> Serielle Schnittstelle benötigt --> NUR 1 Sensor pro V24 anschliessbar !
- Willst du das, Reicht dir das ?

Deine CPU kann 1 Temperatursensor einlesen ! (Die Genauigkeit ist jedoch nicht so der "Renner")
- Das ist dir bewust ?


TIP:
Schau dir doch mal den 1-Wire an ! --> (Dutzende Temperatursensoren und z.b. Display, Taster am BUS möglich)

Z.b.
http://www.fuchs-shop.com/de/shop/5/


Infos hierzu gibt es ausreichend.


Du benötigst natürliche entweder eine V24 oder Ethernet für die Messungen.


Gruß Karl

Da ich 32 digitale Eingänge habe, kann ich die 20 Sensoren ja gut an jeweils einen Eingang anschließen. Das macht mir nichts.

Die Funktion für den einen Sensor ist mir bewusst, aber ich habe 20, und möchte ein möglichst genauen Temperaturwert haben.
 
Zuletzt bearbeitet:

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.241
Punkte Reaktionen
2.442
Google mal nach OneWire.
Es gibt viele Leute, die damit ihre Raumtemperaturen erfassen.
Für S7 brauchst ein Gateway. Entweder seriell oder Netzwerk.
Für Wago SPS gibt es eine fertige Lib.

Gruß
Dieter
 

Boxy

Well-known member
Beiträge
1.422
Punkte Reaktionen
138
Di andere Frage ist - gibt es dann überhaupt einen Sensor, der an einem Digitaleingang funktioniert?

Also was suchst Du eigentlich für einen Sensor?
So wie Du es beschreibst, suchst Du Sensoren die bei/ab einer bestimmten Temp. 0/1 schalten ...
Also einen reinen Digitalen Sensor wie z.B. von IFM (http://www.ifm.com/ifmde/web/news/intelligente-temperatursensoren-mit-io-link.html) (bei z.B. >25 Grad ein und bei <20 Grad wieder aus)? Die kannst an die Eingänge anstöpseln. Die kosten aber auch etwas Geld.
Alternative, da Du ja Azubi bist, bau doch die Dinger selbst. ein PTC und ein Schwellwertschalter und ein Optokoppler (ggf. nen PIC) und fertig ist das Teil ...
 
Zuletzt bearbeitet:
OP
X

xxgamerz

Active member
Beiträge
42
Punkte Reaktionen
0
Ich brauche einen Sensor, der mir einfach nur die Temperatur so ausgibt, dass sie an einem Digitaleingang aufnehmbar ist. Das Schalten wird dann im Programm erledigt.
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.241
Punkte Reaktionen
2.442
Zuviel Werbung?
->Hier kostenlos registrieren
Wie gesagt, ich möchte es vermeiden noch weitere Baugruppen zu kaufen.

Dann schnapp dir einen Microcontroller (Arduino oder ähnliches) und bau dir einen Protokollwandler.
Mit 2 Digitalen Eingängen kann man wunderbar Daten seriell erfassen. Und der Lerneffekt ist auch ganz nett :)

Gruß
Dieter
 

Deltal

Well-known member
Beiträge
1.074
Punkte Reaktionen
140
Aber 20x16Bit über zwei DIs einlesen und das mit maximal 10Hz macht jetzt nicht so viel Spass. Ich würde dann eher versuchen einen CP für RS232 zu schießen und darüber dann Daten tauschen.
Ich würde sagen, wenn µC, dann auch alles im µC machen und die SPS gewinnbringend veräußern ;)

----

Du hast doch eine 313C? Die müsste imho doch vier Analoge Eingänge haben?


----

Einen Sensor, welche digital seinen Messwert ausgibt, wirst du nie an einem Standart-DI einer SPS zum laufen bekommen, da der Eingang sowie die SPS zu langsam sind. In dem Fall deines Sensors wäre das so:

Sensor: "So ich schicke jetzt 10 Bit"... "fertig" -> Eingang an deiner SPS "war was?"
 
Zuletzt bearbeitet:

Thomas_v2.1

Well-known member
Beiträge
8.141
Punkte Reaktionen
2.462
Zuviel Werbung?
->Hier kostenlos registrieren
Ohne etwas zu programmieren könnte man das mit etwas Elektronik und einem Widerstandssensor (PTC) realisieren.
Man setzt einen Ausgang der SPS, und über den Widerstand des PTC wird ein Kondensator aufgeladen. Hat die Spannung an diesem einen Schwellwert überschritten (z.B. über einen OP vergleichen), dann wird ein Eingang der SPS gesetzt. Über die Zeitdauer kann man den Widerstand des PTC und dementsprechend die Temperatur bestimmen. Vom Prinzip her müsste das so funktionieren, fragt sich nur welche Genauigkeit du brauchst, und welche man damit erreichen kann.

Mit einem kleinen programmierten Mikrocontroller und 1-Wire Sensoren wird es einfacher eine entsprechende Genauigkeit zu erreichen. Wenn du damit noch nie was gemacht hast werden aber ein paar Monate ins Land gehen bis zu was Funktionierendes hast.
 

Thomas_v2.1

Well-known member
Beiträge
8.141
Punkte Reaktionen
2.462
Aber 20x16Bit über zwei DIs einlesen und das mit maximal 10Hz macht jetzt nicht so viel Spass. Ich würde dann eher versuchen einen CP für RS232 zu schießen und darüber dann Daten tauschen.

Für Raumtemperaturmessungen reicht die Datenrate normalerweise.
Ich hätte da schon eine Idee wie man so eine 1-Wire auf "langsame SPS" Adapter bauen könnte.
Einen AVR der fest für 10 DS1820 Sensoren zu verwenden ist. Jeder Sensor hat seinen eigenen Port, somit braucht man sich nicht um die ROM-Codes zu kümmern. Nachteil ist dass man zu jedem Sensor eine Leitung legen muss.
Der AVR liest die Temperaturen der Sensoren ein und schiebt diese seriell in die SPS, nur mit einer extrem langsamen Baudrate ansonsten wie auch bei RS232. Das Protokoll ist dabei starr, z.B. 1:temp:status:2:temp:status.... auch wenn an einem Port kein Sensor angeschlossen ist, dann steht eben der Status auf "schlecht".
In der SPS kann man dann das Protokoll über einen langsamen digitalen Eingang softwaremäßig auswerten.

Dann hat man sozusagen ein Kästchen an das man die gewünschte Anzahl an Sensoren anschließen kann, und in der SPS muss nur der entsprechende Funktions-Baustein für die Auswertung aufgerufen werden.
 
OP
X

xxgamerz

Active member
Beiträge
42
Punkte Reaktionen
0
Ich sollte die Temperatur auf +- 0,5 Grad genau haben.

Erschwerend dazu, was mich dazu gebracht hat digitale Sensoren zu verwenden, ist meine Leitungslänge. PT100 und 50 Meter Kabel vertragen sich meines Wissens nicht gut. Zumal die Leitungen teils in temperierten aber auch untemperierten Räumen ist, und sich dadurch auch der Widerstand vom Leiter ändert.
 

Thomas_v2.1

Well-known member
Beiträge
8.141
Punkte Reaktionen
2.462
Zuviel Werbung?
->Hier kostenlos registrieren
Ich sollte die Temperatur auf +- 0,5 Grad genau haben.

Erschwerend dazu, was mich dazu gebracht hat digitale Sensoren zu verwenden, ist meine Leitungslänge. PT100 und 50 Meter Kabel vertragen sich meines Wissens nicht gut. Zumal die Leitungen teils in temperierten aber auch untemperierten Räumen ist, und sich dadurch auch der Widerstand vom Leiter ändert.

Bei PT100 verwendet man dafür eine 3- oder 4-Leiter Messung, damit ist es möglich den Leitungswiderstand zu kompensieren.
Deine Anforderungen passen nicht zusammen: du willst genau, über lange Leitungen, aber nichts ausgeben. Das funktioniert nicht. Über so eine lange Leitung kannst du entweder digital fahren, eben z.B. über 1-Wire was aber eine entsprechende Karte und Protokollwandler benötigt, oder analog. Dann musst du aber 3- oder 4 Leiter verwenden um den Leitungswiderstand zu kompensieren, denn sonst kommst du nicht auf die geforderte Genauigkeit.

Wie hat der Hersteller von Fahrradkomponenten Keith Bontrager gesagt:
"strong, light and cheap - choose two"

Du kannst nicht alles haben ohne was dafür auszugeben zu wollen.
 
OP
X

xxgamerz

Active member
Beiträge
42
Punkte Reaktionen
0
Dann frage ich anders - kann mir jemand sagen, wie ich 20 Temperatursensoren - möglichst ohne microcontroller oder teure(300€ und mehr) Baugruppen verwalten kann? Die Temperaturen sollten dann von meinem OP77B über MPI/Profibus angezeigt werden. Also die Temperaturen in einer DB, verwalten kann?
 

Thomas_v2.1

Well-known member
Beiträge
8.141
Punkte Reaktionen
2.462
Bei deinen Preisvorstellungen hast du mit Siemens aufs falsche Pferd gesetzt, du kannst höchstens versuchen wie Deltal geschrieben hat dir bei Ebay gebrauchte Komponenten zu besorgen. Bei Siemens gibt es für 300 Euro so gut wie nichts.
Wahrscheinlich kannst du am einfachsten die S7 verkaufen und für das Geld eine Wago oder eine Beckhoff Steuerung besorgen.

Edit:
oder schau dir mal diese Geräte an:
http://www.sps-forum.de/showthread....ns-abgekündigten-OPs-TPs-MPs-samt-der-S7-CPU-!
 
Zuletzt bearbeitet:
Oben