Messwerte in einem DB per SNMP abfragen?

phoo82

Level-1
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie der Thementitel schon sagt, würde ich gerne Messwerte, die ich
in einem DB ablege, per SNMP abfragen, und wollte fragen, ob dies überhauopt möglich ist, bevor ich mich weiter in die Thematik vertiefe.

Ich habe leider garkeine Kentnisse über SNMP, ich habe mir nur die MIB.Dateien im STEP7/S7DATA/snmp/ verzeichnis angeguckt und
einige Links und Beiträge gelesen.
Bis jetzt denke ich, dass es nur die Möglichkeit der Netzwerkanalyse über SNMP gibt (z.B. traffic, ausfall etc), denn die MIB-II Objekte sind ja standardisiert.

Bis jetzt hole ich die Messwerte über einen selbstgeschrieben OPC-Server (java) ab und speichere diese in eine SQL-Datenbank.

Sollte es jedoch möglich sein, Messwerte aus DBs abzufragen, haette ich gerne Vor- und Nachteile erfahren und eventuelle zusätzliche HardWare die
benötigt wird.

S7-300 CPU 313c mit STEP7 V5.4 SP3 und CP343-1(lean) und CP342-5

Vielen Dank für eure Antworten!
 
Warum den SNMP? Das ist doch ein Protokoll zum Netzwerk-Management, nicht zum Datenaustausch.

Datentransfer machste üblicherweise mit TCP/IP, UDP, Fetch/Write, OPC,...
das geht ganz bestimmt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

also ich habe vor einiger Zeit mein Praktikum begonnen und hatte keine
Ahnung von Speicherprogrammierbaren Steuerungen und deren Programmierung/Projektierung.

Ich sollte Messwerte von dezentraler Peripherie via PROFIBUS abfragen und archivieren. (erstes Projekt der Firma, sonst wurde fremdfirma beauftragt)

Ich kenne mich halt gut aus mit Programmierung, Elektronik und Mathe
(IT-Security) und habe direkt angefangen meinen eigenec OPC-Server mit
java zu schreiben, da ich WinCC iwie blöd fand (hatte auch keine lust mich in dieses programm neu einzuarbeiten und um messwerte abzufragen und zu archivieren braucht man nun wirklich kein WinCC für ein paar tausend euro)

Nun habe ich nicht bedacht, dass eine Firma ja schon existierende Softwarelösungen besitzt und es kam die Frage auf, ob man die daten nicht per SNMP abfragen kann.

In der technischen Beschreibung des CP343-1(lean) steht auch, dass die Standard-MIB objekte unterstützt werden, allerdings auch wie du schon sagtest, dass es Objekte zur Netzwerkanalyse sind (traffic, lost packets etc...)
In den MIB-Objekt Dateien auf der HDD habe ich auch keine Hinweise diesbezüglich gefunden.

Also im Prinzip läuft meine Anlage auch und die Messwerte werden in eine SQL-Datenbank geschrieben, von da aus können die Daten ja auch auf alle erdenkliche Arten weiterverarbeitet werden.

Ich wollte einfach nur wissen, ob es theoretisch möglich ist, Werte aus Datenbausteinen mit SNMP abzufragen (man kann ja auch eigene MIB-objekte definieren glaube ich).

Also mein Datentransfer läuft über TCP/IP (da im gegensatz du UDP nciht verbindungslos, checksumme , etc.... und ich frage nur ca alle 10sekunden wie dezentrale peripherie ab).

Und eins verstehe ich noch nciht, wo ist der Unterschied zwischen:
TCP, OPC, SNMP, FETCH/WRITE ??

baut nicht jede dieser Möglichkeiten eine/mehrere TCP verbindung(en) auf?

Wie gesagt, habe mich bis jetzt erst 3 monate mit der materie beschäftigt, und dass ist leider nciht viel, wenn man auch aufgaben hat die man
bewältigen muss .p

deshalb weiss ich nciht genau, wie ein OPC-Server oder das SNMP protokoll aufgebaut sind.
Und bevor ich mich weiter in die materie vertiefe wollte ich halt erst einmal nachfragen nach der theoretischen machbarkeit meiner frage .p


vielen dank nochmal

gruss, marc
 
Hoffe Ich erkläre was Ich weis hier richtig:

Und eins verstehe ich noch nciht, wo ist der Unterschied zwischen:
TCP, OPC, SNMP, FETCH/WRITE ??

TCP:
Protokoll welches die Datenübertragung zwischen 2 Computern definiert.

http://de.wikipedia.org/wiki/Transmission_Control_Protocol

OPC:
Protokoll zum Standartisierten datenaustausch zwischen unterschiedlichen Automatisierungsystemen.
(Verwendet oft TCP/IP als unterlagerte Komunikationsschicht)

SNMP:
Protokoll zur Verwaltung/Konfiguation/Wartung von Netzwerkgeräten (Switches,Routern,...) (Verwendet unterlagert oft UPD/IP)

FETCH/WRITE:
Bei einer Projektierten Verbindung in S7 kann statts Send/Recive auch FETCH/WRITE. Dies ist glaube Ich für den Zugriff von S5 Steuerungen auf die S7 nötig!
 
Hi,

Ich kenne mich halt gut aus mit Programmierung, Elektronik und Mathe
(IT-Security) und habe direkt angefangen meinen eigenec OPC-Server mit
java zu schreiben, ...

Und eins verstehe ich noch nciht, wo ist der Unterschied zwischen:
TCP, OPC, SNMP, FETCH/WRITE ??

Als IT-Mann dürfte man allerdings ein SNMP und TCP schon etwas kennen, ansonsten würd ich da an deiner Stelle mal ganz schnell den Google starten, wenn ein IT-Mann weiss was das ist :)

Ne zurück zum Thema,

TCP/IP ist Telegrammorientiert - deine SPS sendet alle 10s ein Telegramm mit den Messwerten hoch.

Am besten für dich geeignet ist aber definitiv der Fetch (altes S5 Protokoll von Siemens)!
Sehr wenig Overhead, fast nur Nutzdaten, sehr einfaches Protokoll. Da musst du auf der SPS nur eine Fetch-Verbindung projektieren und kannst anschliessend vom PC direkt die Daten aus dem gewünschten Datenbaustein auslesen (Fetch-Request an die SPS und die liefert dir die Daten). Dabei musst du nur beachten, dass wahrscheinlich Low- und Highbyte vertauscht sind...

Da ist das Fetch/Write Protokoll schön beschrieben:
http://support.automation.siemens.com/WW/llisapi.dll?func=cslib.csinfo&objId=1172423&objAction=csOpen&nodeid0=27103175&lang=de&siteid=cseus&aktprim=0&extranet=standard&viewreg=WW
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
vielen dank für die antwort .p

ich werde das gleich mal mit dem fetch testen,

ich habe alles per tcp gemacht und musste bei ca 1500 abzuholenden bytes, mindestens 4 sps-connections aufbauen (und queue implementieren) um die daten sekündlich abholen zu können.

was eine nächste frage aufwirft: ich konnte immer nur max 100bytes pro tcp-request von der sps abholen (also 25 DWords oder 50 Words etc...), ist das normal? oder könnte es an der library liegen?
Und wenn ich ein DWord bei mir auf der SPS in zwei MerkerBytes habe,
dann ist hier auch Low- vor High-Byte.

ich werde berichten, vielen dank nochmal :D

und natürlich weiss ich schon, dass es einen unterschied zwischen protokollen gibt, sonst gäbe es sie wohl nicht.
ich dachte halt z.B. opc setzt evtl. auf tcp auf.
(danke jochen, hab deinen post gerade erst gesehen .p)


Ferner habe ich immer noch keine zufriedenstellende antwort wegen datenabfrage per snmp,
obwohl ich echt glaube, dass dies einfach nicht gehen wird. per mib-objekte bekommt man echt nur
daten zur netzwerkanalyse.

ich werde jetzt mal versuchen FETCH/WRITE zu usen, allerdings habe ich da auch keine richtige idee .p

denn: ich baue mit der sps keine tcp-connection auf, ich baue mit meinem PC eine active connection zur SPS auf!
auf meine sps wird nur zyklisch der profibus abgefragt und die daten in verschiedene DBs unterteilt.

was wieder eine frage aufwirft: wäre es besser doch mit der sps die connection zu establishen? auch wegen FETCH/WRITE?

jedenfalls soll ja über eine SQL-DAtenbank die anlage konfigurierbar sein, da keiner SPS programmieren kann hier .p

deswegen konfiguriere ich über SQL mein java-app und baue darüber connections auf etc....sps nur passiv


vielen dank nochmal!!!!!!!!
 
Zuletzt bearbeitet:
Zurück
Oben