Forum: Mikrocontroller und Digitale Elektronik Datenlogger für SPS-Eingänge


von Andreas M. (netwalker)


Lesenswert?

Hallo zusammen,

ich habe ein Projekt im Auge, das ich hier erst mal posten wollte um die 
Cracks zu Fragen in wie fern das realisierbar ist.

Also es geht um die Realisierung eines Datenloggers. Dieser Datenlogger 
sollte Eingänge aufnehmen wie sie auch von einer SPS aufgenommen werden. 
Es geht hier um ca. 8 Digitaleingänge, 3 Impulseingänge und 6 
Analogeingänge. Diese Eingänge sollen ca. in Minutenzyklen mit 
Zeitstempel auf eine SD-, MMC-Karte o.ä. geschrieben werden. Im CSV 
Format ö.ä.

Bei den Analogeingängen handelt es sich um den Industriestandart 0..20mA 
oder 4...20mA. Ist das möglich dies über den µC zu erfassen? Über einen 
niederohmigen Widerstand müsste man doch die Stromschwankungen als 
Spannungsabfall an dem Widerstand abnehmen können, oder?(wie bim Oszi 
gängig)

Ist es möglich diese Eingänge wie beschrieben auf eine SD-Karte 
Aufzuzeichnen? Das ganze möchte ich als Technikerarbeit für eine Firma 
durchführen.

mit besten Grüßen

von Purzel H. (hacky)


Lesenswert?

Ja. Sicher ist es moeglich. Und Sinnvoll. Viel Glueck.

von Gast123 (Gast)


Lesenswert?

Klar geht das - eine SPS ist auch nix weiter je nachdem ein kleiner oder 
grosser MC/Prozessor.

8 Digitaleingänge => du brauchst sowas wie Optokoppler oder sowas um die 
24V auf 5/3,3V runterzubrechen (wenn du SPS 24V benutzt sonnst halt an 
dein System anpassen)

3 Impulseingänge => sagt mir grad nix aber impulse mit MC aufnehmen geht 
also wird das schon irgendwie ;)

 6 Analogeingänge =) mit Multiplexing geht das - hast halt minimalste 
differenzen zw ADC1 und ADC6

"in Minutenzyklen mit
Zeitstempel auf eine SD-, MMC-Karte o.ä. geschrieben werden."

nun ja bei dieser Geschwindigkeit kannst du auch davor sitzen und 
mitschreiben ;)))

von Claus A. (cand)


Lesenswert?

Die Quallität der Antworten....kopfschüttel.

Man nehme:
Von Pollin
http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetze/Diverse/Bausatz_AVR_NET_IO.html

Hat aber nur 4AE, 8DE/ZE aber dafür 4DA. Man kann aber auch 2 Karten 
verwenden oder "Extensions" verwenden.

Software ist dabei, allerdings nicht so toll zum loggen geeignet. Hier 
schwirrt aber sowas rum. Ansonsten noch mal melden hier. Der Logger 
läuft dann aber auf dem PC, die Karte ist nur I/O TCP/IP Wandler.

Zähleingänge sind nicht ausreichend spezifiziert (macht man in Hz)
Analogeingänge sind nicht ausreichend spezifiert (macht man in Bit) (die 
Pollin hat 10Bit)

Schau dir die Specs mal an. (unter download)

Billiger gehts halt nimmer....

von Andreas M. (netwalker)


Lesenswert?

Den Letzten Vorschlag mit der Platine von Pollin is zwar ein guter 
Ansatz, aber ich habe vorort keien PC und somit nicht die möglichkeit 
die Daten wie bei diesem Board mit zu loggen. Ok, man könnte sich die 
ganze Sache ja dementsprechend umbiegen und evt. die besagte SD-Karte 
anbinden. Naja, da müss ich dann halt mal schaun wie für mich der beste 
Weg aussieht.

Nun ist mir aber noch mein Zweiter Lösungsansatz gekommen. Die 
Schaltschränke in denen dieser Logger eingesetzt werden soll, besitzten 
eine SPS mit Ethernet-Schnittstelle. Ich könnte die Loggdaten auf der 
SPS (es handelt sich um eine S7 von Siemens) Loggen und über eine 
Ethernetschnittstelle mit dem µC von der SPS abholen und auf die 
SD-Karte schreiben.
Wär das machbar? Wie schaut es mit Protokollen aus, wie bindet man die 
ein? Das Protokoll für die S7 SPS ist offen und da kommt man ran, nur 
wie einfach oder schwer ist es das dann dem µC mit Ethernetadapter bei 
zu bringen.

wäre da folgendes zur anbindung an den µC geeignet?:

http://shop.embedded-projects.net/product_info.php/info/p65_ENC28J60-Ethernetadapter--ENC28J60-H-.html

http://shop.embedded-projects.net/product_info.php/info/p77_CS8900-Ethernetadapter--CS8900A-H-.html

danke für die hilfe bisher...

ach ja, zu den Impulsen. Es gibt z.B. Kippen die den Niederschlag 
messen. das sind kleine "Schäufelchen" die sich mit regenwasser füllen 
und wenn sie nahezu voll sind, Kippen sie. Beim Kippen wird ein Impuls 
gesendet. Man weis nun dass ein kippen ca. 4ml entspricht und nach 
zählen der impulse kann man nun eben den Niederschlag ermitteln. Aber 
das dürfte ja kein Ding sein. Einfach mittels Interrupt eine Variable 
hochzählen.

von Soe (Gast)


Lesenswert?

Also handelt es sich bei den Impulseingängen auch um "normale" Digitale 
Eingänge? Oder nicht?!

von Andreas M. (netwalker)


Lesenswert?

Ja, wie gesagt geht es um die aufnahme von ca. 8 Digitaleingänge, 3 
Impulseingänge und 6 Analogeingänge.

oder

dann eben die Lösung über Ethernet die schon geloggten Daten aus der SPS 
zu holen.

von Gerd G. (elektrikser)


Lesenswert?

Die Digitaleingänge mit Optokoppler abgreifen dürfte kein Problem sein. 
Bei den 0...20mA-Eingängen einen kleinen Shunt nehmen und mit 
Operationsverstärkern das Signal auf vernünftige Pegel bringen. Oder man 
baut einen u/f-Wandler, dann könnte man hier auch galvanisch trennen.

- Welche Abtastrate soll dein Logger haben? Das dürfte der Hauptpunkt 
deines Projektes sein. Möchtest du nur einmal in einer Zykluszeit der S7 
messen (30 ms), oder sicher gehen das in dem Zyklus die Eingänge sicher 
den Status haben? Dann müsstest du schon 2,5 x schneller sein (12 ms). 
Oder ist nur eine grobe Messung erwünscht, so jede Sekunde einmal?

von Gast (Gast)


Lesenswert?

@gerd: oben steht was von minutenzyklen...

von Martin V. (oldmax)


Lesenswert?

Hi
Warum über die Antworten mit dem Kopf schütteln ? So verkehrt sind sie 
nicht und wenn sein Projekt einen Sinn hat, dann wird er dafür auch ein 
paar Euronen ausgeben können. Das Problem wird sein, das man zwar 
Signale aufnehmen kann, aber in der Regel ist eine SPS mit einer Aufgabe 
belegt und da sich mal so eben einkopmeln mit "Basteltechnik" kann den 
Prozeß gefährden. Dazu die Daten im Minutentakt auf einen kleinen 
Datenträger.. egal, wenn's der Chef absegnet...
Mein Vorschlag, die Digitalsignale wie bereits erwähnt über Optokoppler 
oder gaz einfach mit Relais, wenn keine hohe Schaltfrequenz zu erwarten 
ist. Selbiges mit den Impulseingängen, da auch hier eher ein gemütliches 
Schalten zu erwarten ist. Analog wird's etwas teuer. Einfach mal so 
einen Shunt in einen Stromkreis einbringen geht zwar, aber damit wird 
entweder die Schaltung auf Meßkreispotential gebracht oder die 
Elektronik ist etwas aufwändiger. Da können Trennverstärker nützen, 
allerdings sind diese nicht grad billig. Da bist du bei 3 Kanälen locker 
über 500 €. Anders würd ich's aber nicht empfehlen. Schnell ist mal ein 
Schuß über verschiedene Potentiale oder der Schleifenwiderstand ist zu 
groß oder .. oder .. oder. Die Datenerfassung kann empfindlich gestört 
werden und der Prozeß dahinter ????
Einfache Antwort: ein Atmega kann das was du willst, aber er garantiert 
nicht für die "seriösität" der Signalaufnahme.
gruß oldmax

von Gast (Gast)


Lesenswert?

also wenn du die Daten per Ethernet von der S7 holen kannst, ist das 
wesentlich einfacher, als wenn du noch erst Signalaufbereitung betreiben 
musst. Auch der Hardwareaufwand ist geringer. Im Grunde brauchst du dann 
nur eine Ethernetschnittstelle und eine SD-Kartenschnittstelle. Beide 
könnten über SPI bedient werden.

von Andreas M. (netwalker)


Lesenswert?

gut, jetzt weis ich schon mal wo ich stehe und wo die engpässe sind. das 
hat schonmal ordentlich weitergeholfen.

die aufzeichnung findet wie gesagt in minutenzyklen statt. es geht um 
pegelstände, durchflussgeschwindigkeiten etc. in langzeit aufnahme. um 
eben z.b. am ende des monats/quartals/jahres eben statistiken auswerten 
zu können.

doch je mehr ich mich mit der ethernet geschichte beschäftige, umso mehr 
scheint das die bessere lösung zu sein. wie ja auch schon erwähnt wurde, 
dass dies wohl einfacher wäre.

jetzt ist nur meine frage, wie dann die datenkommunikation aus sieht? 
der µC ist über SPI an das ethernet modul angebunden und das wiederum 
per ethernet an die SPS. wie bring ich die sps dann dazu mit die 
benötigten daten zu übermitteln? wie schaut solch ein abfragebefehl aus 
wenn ich einen datenbaustein in der sps abfragen möchte? muss ich dafür 
dem ethernetcontroller noch eine bestimmtes protokoll oder 
nkommunikationsregeln geben um mit der sps kommunizieren zu können?

wisst ihr was an infos hierzu im netz, wie die datenkommunikation des 
ethernetkontrollers aussieht?

von Andre I. (dex) Benutzerseite


Lesenswert?

über die netzwerkschnittstelle wird industrial ethernet oder bei siemens 
profinet laufen. also ein festes protokoll an das du dich halten musst. 
mal eben irgendwelche daten darüber schieben dürfte schwierig werden, 
denn du wirst den datenverkehr aus der SPS zum uC ja in STEP7 
programmieren müssen. das schränkt deine kommunikationsmöglichkeiten 
stark ein.

ich würd mich da lieber direkt an die sensoren hängen wollen, bevor sie 
in die SPS gehen

von Gast (Gast)


Lesenswert?

> muss ich dafür dem ethernetcontroller noch eine bestimmtes protokoll
> oder nkommunikationsregeln geben um mit der sps kommunizieren zu können?

Das Übertragungs-Protokoll der Ethernetschnittstelle der S7 ist TCP/IP. 
D.h. dein µC müßte einen entsprechenden Stack programmiert haben. Der 
Ethernet-Controller (aus deinen Links oben) setzt das nur um.

von Gast (Gast)


Lesenswert?

> denn du wirst den datenverkehr aus der SPS zum uC ja in STEP7
> programmieren müssen.

öhm, nein?

von Andre I. (dex) Benutzerseite


Lesenswert?

und woher soll die sps dann wissen wann und welche daten sie übers 
ethernet verschicken soll?

von Reinhard Kern (Gast)


Lesenswert?

Andreas Mairon schrieb:
> jetzt ist nur meine frage, wie dann die datenkommunikation aus sieht?
> der µC ist über SPI an das ethernet modul angebunden und das wiederum
> per ethernet an die SPS. wie bring ich die sps dann dazu mit die
> benötigten daten zu übermitteln? ...

Warum eigentlich?

Wenn dein µC mit Ethernet verbunden ist und TCP/IP kann, dann ist es 
doch am einfachsten, du holst die Daten über Ethernet direkt von deinem 
µC ab, ohne dass die SPS das überhaupt mitbekommt. Dann hast du nur ein 
Protokoll zu realisieren und das ist auf beiden Seiten deins, also 
kannst du alles selbst definieren und damit einfach halten.

Gruss Reinhard

von Soe (Gast)


Lesenswert?

naja... wenn die Steuerung tatsächlich über Profinet läuft, könnte er ja 
prinzipiell relativ einfach die Netzwerkverbindungen mitsniffen und die 
benötigten Daten dann eben speichern. Aber in Abhängigkeit der 
verwendeten Zykluszeit braucht man dann einen beliebig schnellen 
Controller. Ich denke auch, dass es einfacher werden wird, die Sensoren 
VOR der Steuerung abzufragen.

von Reinhard Kern (Gast)


Lesenswert?

Soe schrieb:
> ... Ich denke auch, dass es einfacher werden wird, die Sensoren
> VOR der Steuerung abzufragen.

Ich meine ja parallel dazu - ich baue mir einen Datenlogger, der Signale 
erfasst und die gespeicherten Daten an einen PC weitergibt, dass da 
parallel eine SPS dranhängt und die Daten ebenfalls verarbeitet, kümmert 
mich einen feuchten Kehricht, ausser dass meine Eingänge zu den 
SPS-Eingängen parallel schaltbar sein müssen, was ein reines 
Hardwareproblem ist.

Ich weiss ja nicht, was der Zweck der ganzen Übung ist, aber wenn die 
SPS bzw. der Ablauf überwacht werden soll, dann sollte ja das Logging so 
unabhängig von der SPS wie möglich sein - sonst würde z.B. ein 
Einlesefehler der SPS im Log überhaupt nicht auftauchen.

Gruss Reinhard

von Thomas H. (supergrobi)


Lesenswert?

was für eine SPS ist das denn ?

ich meine, warum erst mit dem µC die Daten abholen ?
Speicher deine Daten in DB's ab und hole diese doch direkt mit dem PC 
ab. Suche mal nach Libnodave.

gruß
Thomas

von Gerd G. (elektrikser)


Lesenswert?

O.K. das mit den Minuten habe ich gnadenlos überlesen. Wahrscheinlich 
auch, ob es eine 300er oder 400er ist.

Wohin und was die SPS über Netzwerk schicken soll, kann man in der 
HW-Konfig und mit den vorgefertigten Transfer/Receive-FBs programmieren. 
Man braucht einen TCP/IP-Stack und kann mit Wireshark das ganze testen.

Ein AVR mit ENC28j60 könnte das vielleicht schon schaffen, wenn der 
Stack sauber programmiert ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.