Stefan.Belkot
Level-1
- Beiträge
- 14
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
*Gelöst*
Hallo liebe Community,
Vorgeschichte:
ich bin recht neu auf dem Gebiet OPC-Lösungen und arbeite nun an einer automatisierten Sicherung der SPS-Daten... da der OPC-Server "qualifiziert" ist kann ich nur über größeren Aufwand änderungen direkt am OPC-Server-PC vornehmen.
Problemstellung:
Wir haben hier noch keine Lösung zum dauerhaften "logging" der SPS Daten. Genau dies soll nun das Ziel sein:
Im Automatisierungsnetzwerk, also abgeschottet von aussen, soll ein PC als OPC-Client mit der Möglichkeit einer vollständigen Daten-Aufnahme & vor allem standardisierter Datensicherung (z.B. in Access DB`s) eingerichtet werden.
Lösungsweg:
Es soll über ein Excel VBA Projekt ein OPC Client eingerichtet werden. Das Excel Programm wird so gestaltet werden, dass es die Daten erfasst und sichert.
Stand:
Die OPCDAAuto.dll ist downgeloaded & in Excel VBA über "Verweise" registriert. Als Grundlage zur Programmierung habe ich zwei verschiedene Excel-Clients. Einmal direkt von der Siemens Seite und einmal aus einem privatem Projekt aus diesem Forum.
Die Funktionsweise beider Programme ist recht schnell ersichtlich.
Bei der Siemens Lösung muss jedoch, falls das Programm nicht direkt auf dem Server PC ausgeführt wird, eine Anpassung gemacht werden:
Vorher: Call MyOPCServer.Connect(Cells(4, 2))
Nacher: Call MyOPCServer.Connect(Cells(4, 2), Cells(5,2))
Es muss also OPC-Server Name & die IP des PC`s im Netzwerk angegeben werden. Alternativ zur IP kann auch der Name des PC`s angegeben werden (in der Form "\\ PCName" ohne Leerzeichen). Nicht verwechseln mit dem Namen des OPC-Servers, der z.B. in etwa so lautet: OPC.SimaticNET
Mein spezielles Problem:
Leider konnte ich keine Lösung finden... ein Hinweis war über DCOM Einstellungen zu finden: Dokument zu DCOM Einstellungen - gegoogleter Forenbeitrag zu Dokument
Die DCOM Einstellungen am geplanten Client waren schon passend eingestellt. Auf dem Server habe ich noch nicht nachschauen können.
Also abhacken...
... denn mein Problem ist: Ich kann mit dem Server Connecten! Jedoch keine Daten auslesen. Also woran kann das liegen?
Es kommt immer die "Fehlermeldung 70: Keine Berechtigung"
Nun aber Schritt für Schritt wie weit ich komme:
Im VBA Script sind folgende Zeilen von Bedeutung
Im Debug-Modus schaffe ich es noch die .Connect Funktion auszuführen.
Bei .OPCGroups.Add streikt mir das ganze aufgrund von fehlenden Rechten.
Auch auf verschiedene andere Funktionen wie z.B.
MyOPCServer.CurrentTime
kann ich nicht zugreifen aufgrund von Rechtemangel.
Ein Hinweis noch zu meinem Vorgehen:
Noch bevor ich "connecten" kann muss ich z.B. über die Netzwerkumgebung auf den OPC-Server-PC zugreifen und dort mit OPC-Server-PC lokalem Benutzername & Passwort "einloggen". Vorher geht garnichts.
Mein 1.Lösungsansatz:
Ich bin mir leider nicht sicher ob das funktioniert... könnte es helfen mich am OPC-Client PC mit dem selben Benutzername/Passwort anzumelden als wie ein existierender User am OPC-Server?
Leider konnte ich das noch nicht testen, OB das überhaupt helfen könnte würde mich brennend interessieren (dazu habe ich nur einen kurzen nicht weiter erklärten Satz über google gefunden, daher dieser Ansatz)
Fragestellungen:
Hat vielleicht jemand einen Tip für mich?
Alle Beiträge die ich bisher gefunden habe "scheitern ja schon am .connect"
Ich komme da drüber... also scheint mir ein anderes Problem vorzuliegen als in den dort genannten Beiträgen.
Last but not Least:
Der OPC-Server ist von Softing.
... ich hoffe evtl mit ausführlichen & verlinkten Beitrag auch anderen schon weiterhelfen zu können.... und dass die Länge daher eher Förderlich ist als Abschreckt
PS:
Ah bevor ichs vergesse... ich habe es auch schon mit einem NICHT Excel Client probiert mit ebenso der Fehlermeldung "Keine Berechtigung"
Lösung:
Die Fragestellung, warum ich denn die .connect Funktion ausführen konnte, jedoch dann doch noch die "Zugriff verweigert" Meldung bekommen hatte, hat sich geklärt.
Stichwort: DCOM Einstellungen!
Und zwar Client-PC Seitig. Um nämlich über Excel mit dem OPC-Server kommunizieren zu können muss über die Start->Ausführen->"dcomcnfg" die Einstellung für "Microsoft Office Excel (Worksheet)" gemacht werden.
Meine Einstellungsänderung war: "Authentifizierungsebene => Keine", Sicherheitseinstellungen => Jeweils "Anpassen" und alles erlauben.
Tip:
Warum ich dann noch nicht direkt "arbeiten" konnte war noch ein Problem mit ".additem"
Es ist sehr wichtig dass entsprechendes item wirklich richtig bezeichnet ist, sonst wir keines "erzeugt".
Hallo liebe Community,
Vorgeschichte:
ich bin recht neu auf dem Gebiet OPC-Lösungen und arbeite nun an einer automatisierten Sicherung der SPS-Daten... da der OPC-Server "qualifiziert" ist kann ich nur über größeren Aufwand änderungen direkt am OPC-Server-PC vornehmen.
Problemstellung:
Wir haben hier noch keine Lösung zum dauerhaften "logging" der SPS Daten. Genau dies soll nun das Ziel sein:
Im Automatisierungsnetzwerk, also abgeschottet von aussen, soll ein PC als OPC-Client mit der Möglichkeit einer vollständigen Daten-Aufnahme & vor allem standardisierter Datensicherung (z.B. in Access DB`s) eingerichtet werden.
Lösungsweg:
Es soll über ein Excel VBA Projekt ein OPC Client eingerichtet werden. Das Excel Programm wird so gestaltet werden, dass es die Daten erfasst und sichert.
Stand:
Die OPCDAAuto.dll ist downgeloaded & in Excel VBA über "Verweise" registriert. Als Grundlage zur Programmierung habe ich zwei verschiedene Excel-Clients. Einmal direkt von der Siemens Seite und einmal aus einem privatem Projekt aus diesem Forum.
Die Funktionsweise beider Programme ist recht schnell ersichtlich.
Bei der Siemens Lösung muss jedoch, falls das Programm nicht direkt auf dem Server PC ausgeführt wird, eine Anpassung gemacht werden:
Vorher: Call MyOPCServer.Connect(Cells(4, 2))
Nacher: Call MyOPCServer.Connect(Cells(4, 2), Cells(5,2))
Es muss also OPC-Server Name & die IP des PC`s im Netzwerk angegeben werden. Alternativ zur IP kann auch der Name des PC`s angegeben werden (in der Form "\\ PCName" ohne Leerzeichen). Nicht verwechseln mit dem Namen des OPC-Servers, der z.B. in etwa so lautet: OPC.SimaticNET
Mein spezielles Problem:
Leider konnte ich keine Lösung finden... ein Hinweis war über DCOM Einstellungen zu finden: Dokument zu DCOM Einstellungen - gegoogleter Forenbeitrag zu Dokument
Die DCOM Einstellungen am geplanten Client waren schon passend eingestellt. Auf dem Server habe ich noch nicht nachschauen können.
Also abhacken...
... denn mein Problem ist: Ich kann mit dem Server Connecten! Jedoch keine Daten auslesen. Also woran kann das liegen?
Es kommt immer die "Fehlermeldung 70: Keine Berechtigung"
Nun aber Schritt für Schritt wie weit ich komme:
Im VBA Script sind folgende Zeilen von Bedeutung
Code:
'connect the OPC Server
Call MyOPCServer.Connect(Cells(4, 2), Cells(5, 2))
'add one OPC Group
[I][B]Set MyOPCGroup = MyOPCServer.OPCGroups.Add("Gruppe1")[/B][/I]
Bei .OPCGroups.Add streikt mir das ganze aufgrund von fehlenden Rechten.
Auch auf verschiedene andere Funktionen wie z.B.
MyOPCServer.CurrentTime
kann ich nicht zugreifen aufgrund von Rechtemangel.
Ein Hinweis noch zu meinem Vorgehen:
Noch bevor ich "connecten" kann muss ich z.B. über die Netzwerkumgebung auf den OPC-Server-PC zugreifen und dort mit OPC-Server-PC lokalem Benutzername & Passwort "einloggen". Vorher geht garnichts.
Mein 1.Lösungsansatz:
Ich bin mir leider nicht sicher ob das funktioniert... könnte es helfen mich am OPC-Client PC mit dem selben Benutzername/Passwort anzumelden als wie ein existierender User am OPC-Server?
Leider konnte ich das noch nicht testen, OB das überhaupt helfen könnte würde mich brennend interessieren (dazu habe ich nur einen kurzen nicht weiter erklärten Satz über google gefunden, daher dieser Ansatz)
Fragestellungen:
Hat vielleicht jemand einen Tip für mich?
Alle Beiträge die ich bisher gefunden habe "scheitern ja schon am .connect"
Ich komme da drüber... also scheint mir ein anderes Problem vorzuliegen als in den dort genannten Beiträgen.
Last but not Least:
Der OPC-Server ist von Softing.
... ich hoffe evtl mit ausführlichen & verlinkten Beitrag auch anderen schon weiterhelfen zu können.... und dass die Länge daher eher Förderlich ist als Abschreckt
PS:
Ah bevor ichs vergesse... ich habe es auch schon mit einem NICHT Excel Client probiert mit ebenso der Fehlermeldung "Keine Berechtigung"
Lösung:
Die Fragestellung, warum ich denn die .connect Funktion ausführen konnte, jedoch dann doch noch die "Zugriff verweigert" Meldung bekommen hatte, hat sich geklärt.
Stichwort: DCOM Einstellungen!
Und zwar Client-PC Seitig. Um nämlich über Excel mit dem OPC-Server kommunizieren zu können muss über die Start->Ausführen->"dcomcnfg" die Einstellung für "Microsoft Office Excel (Worksheet)" gemacht werden.
Meine Einstellungsänderung war: "Authentifizierungsebene => Keine", Sicherheitseinstellungen => Jeweils "Anpassen" und alles erlauben.
Tip:
Warum ich dann noch nicht direkt "arbeiten" konnte war noch ein Problem mit ".additem"
Es ist sehr wichtig dass entsprechendes item wirklich richtig bezeichnet ist, sonst wir keines "erzeugt".
Zuletzt bearbeitet: