-> Hier kostenlos registrieren
Hallo SPS-Freunde,
ich bin gerade dabei mit einer .NET-Bibliothek über OPC auf die Datenbausteine in einer SPS zuzugreifen.
OPC-Client und SIMATIC OPC Server laufen auf dem gleichen PC. Mit dem OPC Scout v10 und dem Matrikon OPC Explorer ist es möglich, über die bekannte ItemID ("S7:[OPC_1]DB50,DINT38") auf die Werte zuzugreifen.
In meiner eigenen OPC-Implementation in C#/.NET bekomme ich allerdings nach erfolgreichem Verbindungsaufbau und hinzufügen einer Gruppe bei der AddItems-Methode am IOPCItemMgt-Interface für die kopierte ItemID
den Fehlercode OPC_E_UNKNOWNITEMID (-1073479673/C0040007). Die übergebene ItemID ist soweit richtig, allerdings macht der Aufruf trotzdem Probleme.
Der Aufruf der Methode erfolgt mit den folgenden Parametern:
Anzahl der Items - 1 (es wird immer nur ein Item einzeln angefordert)
Item-Definition:
- ItemID - wie oben beschrieben die gewählte ItemID nach SIMATIC-Standard.
- Access Path - Ist erneut die ItemID.
- Active - true
- Client-Handle - 50
- Blobsize/Blob - 0 und ein leerer Int-Poitner
- Requested Data Type - wird über einen Aufruf von "GetItemProperties" vor dem hinzufügen herausgefunden.
- Reserved - 0
Die .NET-Bibliothek basiert auf dem folgenden Quellcode: http://www.codeproject.com/Articles/1135/OPC-and-NET-with-COM-Interoperability
Kann es vllt. damit zusammenhängen, dass ich den Access Path gleich der ItemID verwende und der SIMATIC OPC Server damit Probleme hat? Ich werde mal probieren mit einem leeren Access Path zu arbeiten.
Vielen Dank für weitere Anregungen im Voraus!
ich bin gerade dabei mit einer .NET-Bibliothek über OPC auf die Datenbausteine in einer SPS zuzugreifen.
OPC-Client und SIMATIC OPC Server laufen auf dem gleichen PC. Mit dem OPC Scout v10 und dem Matrikon OPC Explorer ist es möglich, über die bekannte ItemID ("S7:[OPC_1]DB50,DINT38") auf die Werte zuzugreifen.
In meiner eigenen OPC-Implementation in C#/.NET bekomme ich allerdings nach erfolgreichem Verbindungsaufbau und hinzufügen einer Gruppe bei der AddItems-Methode am IOPCItemMgt-Interface für die kopierte ItemID
den Fehlercode OPC_E_UNKNOWNITEMID (-1073479673/C0040007). Die übergebene ItemID ist soweit richtig, allerdings macht der Aufruf trotzdem Probleme.
Der Aufruf der Methode erfolgt mit den folgenden Parametern:
Anzahl der Items - 1 (es wird immer nur ein Item einzeln angefordert)
Item-Definition:
- ItemID - wie oben beschrieben die gewählte ItemID nach SIMATIC-Standard.
- Access Path - Ist erneut die ItemID.
- Active - true
- Client-Handle - 50
- Blobsize/Blob - 0 und ein leerer Int-Poitner
- Requested Data Type - wird über einen Aufruf von "GetItemProperties" vor dem hinzufügen herausgefunden.
- Reserved - 0
Die .NET-Bibliothek basiert auf dem folgenden Quellcode: http://www.codeproject.com/Articles/1135/OPC-and-NET-with-COM-Interoperability
Kann es vllt. damit zusammenhängen, dass ich den Access Path gleich der ItemID verwende und der SIMATIC OPC Server damit Probleme hat? Ich werde mal probieren mit einem leeren Access Path zu arbeiten.
Vielen Dank für weitere Anregungen im Voraus!