INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Array über OPC Schreiben



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.07.2008, 10:59
Beitrag #1

msalcher Offline
LVF-Grünschnabel
*


Beiträge: 31
Registriert seit: Jun 2008

8.5
2008
de

9990
Oesterreich
Array über OPC Schreiben
Tja wiedermal ich, der nervige und unverbesserliche OPC UserSmile

Hat sich jemand schon mal dran versucht ein Array über den OPC ( Siemens WINCC Flex ) zu schreiben?
Mit einzelnen Werten hab ich keine Probleme, aber bei dem Versuch Arrays zu schreiben kommt im OPC nix an.

Das auslesen von Arrays hingegen funktioniert.

dank und gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.07.2008, 12:03
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Array über OPC Schreiben
Ich hab' hier schon mal ein Bsp. hochgeladen.
Da drin findest Du unter anderem auch, wie man ein Array per OPC schreiben kann.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2008, 12:13 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2008 12:13 von Y-P.)
Beitrag #3

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Array über OPC Schreiben
Hab' das Bsp. von oben rausgesucht und hier das (leicht abgeänderte) VI hochgeladen.
Das VI SPS_Command_Write.vi ist das Haupt-VI.


Sonstige .zip  SPS_Command_Write.zip (Größe: 110,46 KB / Downloads: 397)

Lv80_img

Gruß Markus

' schrieb:Ich hab' hier schon mal ein Bsp. hochgeladen.
Da drin findest Du unter anderem auch, wie man ein Array per OPC schreiben kann.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2008, 13:28
Beitrag #4

msalcher Offline
LVF-Grünschnabel
*


Beiträge: 31
Registriert seit: Jun 2008

8.5
2008
de

9990
Oesterreich
Array über OPC Schreiben
hm ich hab das jetzt mal versucht.
leider ohne erfolg.

Folgendes Ergebnis:

DataSocket Write Integer Vector.vi
Active:Can't write data. Falscher Variablentyp. <ERR>

Ich versuche über ein 1D-Array of Long in ein Array[0...1] of Real zu schreiben.
Funkt mir hier die WinCC flex dazwischen oder was ist hier los?

danke erstmals
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2008, 14:06
Beitrag #5

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Array über OPC Schreiben
In meinem Bsp. siehst Du ja, dass ich in ein "Doppelwort" (also 32 Bit) schreibe, daher habe ich ja auch ein Array mit "32 Bit-Werten" (I32) verwendet.
Versuch' doch mal, Deine Datentypen entsprechend anzupassen.
Mehr kann ich leider dazu auch nicht sagen.

Gruß Markus

' schrieb:hm ich hab das jetzt mal versucht.
leider ohne erfolg.

Folgendes Ergebnis:

DataSocket Write Integer Vector.vi
Active:Can't write data. Falscher Variablentyp. <ERR>

Ich versuche über ein 1D-Array of Long in ein Array[0...1] of Real zu schreiben.
Funkt mir hier die WinCC flex dazwischen oder was ist hier los?

danke erstmals

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2008, 14:16
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Array über OPC Schreiben
' schrieb:Ich versuche über ein 1D-Array of Long in ein Array[0...1] of Real zu schreiben.
Funkt mir hier die WinCC flex dazwischen oder was ist hier los?
Die OPC-Treiber von LV transportieren sowieso nur Bytes. Daher übertrage ich immer nur 1D-Array of U8. Wichtig scheint mir nur, dass die Anzahl der U8-Bytes mit der Anzahl der Gesamtbytes im Zielsystem übereinstimmt. Haben dein 1D-Array of long und dein 1D-Array of real, also der Datensatz in LV und der in WinCC, die gleiche Gesamtlänge?

Wie die Sache auf der SPS-Seite respektive bei WinCC aussieht, weiß ich nicht. Dafür ist der SPS-Programmierer (also mein Kollege) zuständig, nicht ich.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.07.2008, 06:28
Beitrag #7

msalcher Offline
LVF-Grünschnabel
*


Beiträge: 31
Registriert seit: Jun 2008

8.5
2008
de

9990
Oesterreich
Array über OPC Schreiben
Hallo IchSelbst wäre es möglich das du deinen Kollegen mal befragst welche art von Arrays er verwendet?
bzw. welcher OPC ist bei euch in Verwendung?

Hab es gestern auch mit einem DWORD Array probiert aber da hat er mir auch gestreikt.

Je länger man sich mit Siemens beschäftigt um so weniger kann man glauben das die Firma überhaupt noch Umsatz macht grml.

grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2008, 11:58
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Array über OPC Schreiben
' schrieb:Hallo IchSelbst wäre es möglich das du deinen Kollegen mal befragst welche art von Arrays er verwendet?
Wir machen das immer so:
In der SPS (S7) gibt es einen Arbeitsbereich z.B. DB100, und einen Transferbereich z.B. DB110. Datenaustauch zwischen LV und SPS findet also über DB110 statt. Was der SPS-Programmierer mit diesen Daten dann macht (z.B. nach Double wandeln, mal 1000 nehmen, in einzelne Variablen kopieren etc) bleibt ihm überlassen.
Definiert wird der Transferbereich in der SPS als array of dword (also array of I32). Und zwar so, dass auch in der SPS dieser Bereich als Array erkenntlich ist. Dieses Array bekommt dann, wie im übrigen Einzelvariablen und Records auch, einen Namen. Mit genau diesem Namen, der also in der SPS generiert wird, spreche ich dann später von LV aus das Array in der SPS an.
Dann erstellt der SPS-Programmierer ein Datenbankfile (dessen prinzipiellen Namen ich schon wieder vergessen habe). Dieses File kann man dann in den "Konfigurator" auf PC-Seite einlesen. Wenn der Konfigurator alle drei einzustellenden Zeilen (0:Implementation(?); 1:OPC; 125:Station (Datenfileimport)) als OK markiert, funktioniert meistens schon alles.
Weiterhin gibt es den "OPC-Scout". Mit dem kann man praktisch manuell Daten aus der SPS ankucken. Ich suche mir dann hier den OPC-Pfad (quasi Pfad + Variablennamen) zu genau den Daten, die ich später in LV bearbeiten will. Gibt der OPC-Scout dann in seiner Anzeige "Verbindungsstatus OK" aus, so hat er die SPS Daten lesen können. Und wenn der sie lesen kann, kann auch LV sie lesen.

Es gibt folgende Probleme:
Wird irgandwas am DB110 in der SPS geändert, muss die komplette Prozedure neu durchlaufen werden: File exportieren, Konfigurator-Parametrierung löschen(!), Rechner runter/rauf fahren ( Bahn ), Konfigurator neu, Scout testen.
Irgendwann hab ich festgestellt, dass die Typen der zu übertragenden Daten eigentlich unerheblich ist. Hauptsache die Anzahl der Gesamtbytes ist gleich. Es würde als auch gehen, in der SPS ein Array[0..1] of I32 und in LV ein Array[0..7] of U8 zu haben.

Zitat:bzw. welcher OPC ist bei euch in Verwendung?
Du fragst Zeug. Wink
Siemens-OPC? Den, wo's die 31/2"-Diskette gibt zum Lizenz-Transfer. Auf LV-Seite den ganz normale OPC.

Zitat:Je länger man sich mit Siemens beschäftigt um so weniger kann man glauben das die Firma überhaupt noch Umsatz macht
Machen sie doch - Leute entlassen ist auch Umsatz.


Im übrigen ist der OPC nur dazu geeignet, sporadisch Daten zu übertragen. Eine Dauerübertragung im Sinne von z.B. einer Online-Messwertaufzeichung geht mit dem OPC praktisch nicht. Hierfür (sprich für die Datenkonsistenz) ist Overhead erforderlich, der normalerweise im OPC-Protokoll vorhanden sein sollte.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2008, 13:24
Beitrag #9

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Array über OPC Schreiben
Nur so als Ergänzung:
Also, ich verwende zwar keine Siemens SPS sondern eine mit CoDeSys, spielt aber, denke ich, keine Rolle.
Wie IchSelbst sagte, mache auch ich alles mit U8 Array.

Mit DS.Variant der mit "Variant to Data" in ein U8 Array gewandelt wird und danach in entsprechende Clusters zum lesen von SPS.
(im Variant steht dann auch noch der OPC TimeLow, TimeHigh und Quality drinn)

Zum schreiben, wandle ich die Cluster wieder in ein U8 Array und schreibe das U8Array mit dem DS.Write.
Wichtig ist nur das die Byte in der richtigen reihenfolge in das U8 Array geschrieben werden.

Um richtig mit OPC zu arbeiten genügen die DataSockets denke ich nicht, dazu gibt es ja das "teure" Zusatzpaket.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2008, 14:47
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Array über OPC Schreiben
' schrieb:Um richtig mit OPC zu arbeiten genügen die DataSockets denke ich nicht, dazu gibt es ja das "teure" Zusatzpaket.
Verstehe ich das jetzt richtig: Neben den OPC-VIs, die im normalen LV-Full dabei sind - es gibt eine Palette, das stehen VIs mit OPC-Berschriftung - gibt es ein Zusatzpaket OPC?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Wink Siemens OPC - Array schreiben/lesen vescon 1 5.079 04.03.2014 08:26
Letzter Beitrag: Y-P

Gehe zu: