OPC in DB schreiben

Adzalg

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin ganz neu im Forum aber auch ganz frisch im dem Thema. Hier nun meine Frage.

Ich habe mir ein kleines Programm in C# geschrieben das per OPC auf eine SPS zugreifen soll. Das läuft auch ganz gut. Im Augenblick Teste ich das ganze an der WinLC RTX. Ich kann sowohl lesen auch als schreiben. Jedoch beim schreiben in den DB muss bereits ein Typ und ein Anfangswert definiert sein. Ohne diese Vordefinition klappt es nicht.

Gibt es eine Möglichkeit dies über den OPC zu machen. Also die Definition eines Anfangswertes und des Types?



Vielleicht kann mir jemand einen Tipp geben in welche richtung ich mich bewegen sollte.


Vielen Dank
Adzalg
 
Es geht um den Datenbaustein. In diesem möchte ich Variablen ablegen die dann weiter von der SPS verarbeitet werden.

Wie ich schon geschrieben habe ist es kein Problem bereits vordefiniert zu beschreiben. Aber direkt über den OPC welche zu erzeugen... Wie macht man das?
 
Ich nutze den Siemens NET OPC-Server Version 3.6 und die "Siemens OPC DAAutomation"-Bibliothek. Leider konnte ich nichts zu diesem Thema finden.
 
Ich nutze den Siemens NET OPC-Server Version 3.6 und die "Siemens OPC DAAutomation"-Bibliothek. Leider konnte ich nichts zu diesem Thema finden.
Ich kenne zwar nur eine ältere Version vom SimaticNet OPC-Server, aber der konnte dynamisch adressieren und war auch nicht von der Typdefinition im DB abhängig. Wichtig war nur, das der DB existiert und ausreichend lang ist.

Kann es sein, daß Dein Problem darin besteht, daß Du die Struktur des DBs definieren mußt (Datentyp und Anfangswert), damit der DB überhaupt existiert ?

Oder übernimmst Du die Symbolik aus Deinem SPS-Programm in den OPC-Server, um über die Symbolik adressieren zu können ?

Im zweiten Fall könnte Dir die direkte Adressierung im OPC-Server weiter helfen: S7:[Verbindung]DBx,By z.B. für Datenbyte y in Datenbaustein x (wenn ich mich richtig erinnere, sonst bitte ich um Richtigstellung).


Gruß Axel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Alex,

Kann es sein, daß Dein Problem darin besteht, daß Du die Struktur des DBs definieren mußt (Datentyp und Anfangswert), damit der DB überhaupt existiert ?
Ja, das ist mein Problem und da komme ich nicht weiter. Gibt es eine Möglichkeit?

Im zweiten Fall könnte Dir die direkte Adressierung im OPC-Server weiter helfen: S7:[Verbindung]DBx,By z.B. für Datenbyte y in Datenbaustein x (wenn ich mich richtig erinnere, sonst bitte ich um Richtigstellung).
Genau so mache ich es...!

Wichtig war nur, das der DB existiert und ausreichend lang ist.
Wie bekomme ich das hin? Mit einem Array kann ich das nicht lösen da ich unterschiedlichen Datentypen verwenden werde. Teilweise auch Array's.
 
Wie bekomme ich das hin? Mit einem Array kann ich das nicht lösen da ich unterschiedlichen Datentypen verwenden werde. Teilweise auch Array's.
Dem OPC-Server im SimaticNET ist es meines Wissens nach egal, was für Datentypen im DB definiert sind, wenn Du so adressierst, hauptsache er ist da und lang genug. Im SPS-Programm kannst Du AFAIK (bin kein SPS-Programmierer) auch unabhängig vom definierten Typ drauf zugreifen, solange Du nicht unbedingt per Symbolik adressieren willst. Du kannst also einfach mit einem Array of Bytes einen ausreichend großen DB erzeigen, und dann beliebig mit direkter Adressierung aus dem OPC-Server und dem SPS-Programm drauf zugreifen. Es fehlt dann halt eine Struktur im DB und die Symbolik, Du mußt also die Struktur der Daten dann anders dokumentieren, um den Überblick zu behalten.


Gruß Axel
 
Zurück
Oben