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 

bitte Hilfe, wieder Problem bei Datasocket Lesen/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!

18.08.2014, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2014 19:06 von jg.)
Beitrag #1

LabviewLearning Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2014

13.0.1
2013
DE


Deutschland
bitte Hilfe, wieder Problem bei Datasocket Lesen/Schreiben
Moin alle,


für meine aktuelle Aufgabe muss ich einige Daten zwischen der SPS und HMI in Labview über OPC CoDeSys Server (Localhost) austauschen. Man hat ja eine Möglichkeit, Daten über die Datenbindung mit Datasocket zu machen. Dabei sucht man für jedes Anzeige- oder Bedienelement unter Zugriffsarten (Lesen, Schreiben oder Lesen/Schreiben) eine entsprechende OPC-Adresse. Danach fügt man diese Pfade in die Daten hinzu.

Alternativ möchte ich einige Werte anhand von URL in String über DS Open, DS Lesen und DS Schreiben auf HMI anzeigen und bedienen.

Jetzt kommt ein Problem, wobei ich noch keine Lösung gefunden habeBlush. Z. B. ich habe ein Bedienelement auf HMI bei dem Labview-Rechner und vor Ort bei der SPS. Nunn möchte ich einen Sollwert bei der SPS einstellen und verändern. Es soll passieren, nachdem ich diesen eingestellt habe, soll der eingestellte Wert auch bei dem Bedienelement auf HMI vom Labview-Rechner angezeigt werden. Umgekehrt muss es auch auf HMI bei der SPS angezeigt werden. Es soll keinen Konflikt zwischen beiden haben. Ich konnte nur den Wert auf HMI von Labview Rechner einstellen und abändern. Dieser Wert wird auch auf HMI bei der SPS angezeigt. Ich konnte aber nicht den Sollwert bei der HMI von der SPS verändern, da SPS immer nur die Werte auf HMI vom Labview-Rechner abliest.

Ich hoffe, dass Ihr meine Beschreibung des Problems verstehen konntet. Habt jemand von Euch dieses Prolem schon gekriegt und gelöst? Könntet Ihr mir bitte eine Idee empfehlen.

Viele Grüße,
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2014, 16:22 (Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2014 16:27 von LabviewLearning.)
Beitrag #2

LabviewLearning Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2014

13.0.1
2013
DE


Deutschland
RE: bitte Hilfe, wieder Problem bei Datasocket Lesen/Schreiben
ich habe jetzt ein Problem bei der Anwendung von Datasocket für die Datenkommunikation zwischen SPS und HMI Labview. Dabei habe ich den CodeSys OPC Server (Localhost) eingerichtet.

Für die Anzeigen von Rückmeldungssignalen im HMI habe ich hingekriegt und es funktioniert unproblematisch.

Ich habe Problem nur bei Daten (Lesen/Schreiben). Ich habe einen Display bei der SPS, in der man bei einer Bedientaste einen Sollwert verändern kann. Diese Änderung soll auch bei dem Bedienelement auf HMI Labview aktualisert werden. Analog wenn man diesen Sollwert im HMI Labview verändert hat, soll dieser Wert auch auf dem Display bei der SPS mitgeändert werden. D.h. es muss bidirektional funkiert sein.

Ich habe den Zugriffsart (Lesen/Schreiben) bei der Eigenschaften für Bedienelement mit Datasocket ausgewählt, wobei ich den richtigen Pfad suchen und anbinden musste. Bei dieser Variante funktioniert in beider Richtungen von SPS und HMI Labview einwandfrei. Ich weiß nicht, wie man im Hintergrund diese FUnktion programmiert hat. Ich habe versucht selbst programmiert. D.h. mit einen String für URL im OPC Server habe ich DS Open, Lesen und Schreiben verwendet. Ich habe den Modus ReadWrite bei dem DS Open ausgewählt. Es funktioniert leider nicht mehr bidirektional. Ich kann nur den Sollwert bei dem HMI Labview verändern. Bei gleichen Sollwert auf dem Display der SPS kann ich nicht einstellen. Das Problem ist es, dass SPS nur den Wert von HMI Labview abliest.

Ich bitte um Eure Antwort.

Viele Grüße,

Phuong
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2014, 10:26
Beitrag #3

LabviewLearning Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2014

13.0.1
2013
DE


Deutschland
RE: bitte Hilfe, wieder Problem bei Datasocket Lesen/Schreiben
Moin alle,

Ich habe eine Verbindung zwischen der SPS und HMI Labview über OPC Server eingerichtet. Das Ziel ist es, dass man die Sollwerte entweder bei der SPS oder im HMI verändern kann.

ich möchte Euch einen kleinen Code zeigen, in dem ich zwei Bedien- bzw. Anzeigeelemente für Sollwertsänderungen habe.

Wenn ich die Sollwerte im HMI einstellen möchte, werden diese Werte vom HMI zur SPS über OPC Server geschickt und auf dem Display bei SPS bei der Anzeige- und Bedienelementen angezeigt. Diese Variante funktioniert einwandfrei.

Umgekehrt funktioniert leider nicht. Nachdem ich die Sollwerte bei der Bedienelemten auf SPS Display eingestellt habe, konnten dieser Werte nicht auf dem Bedienelement von HMI schreiben.

Wie kann ich die Werte bidirektional bedienen und aktuallisieren.

Kann jemand von Euch mir eine Idee geben. Ich bedanke mich im Voraus und begrüße,

Phuong


Angehängte Datei(en) Thumbnail(s)
               
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.08.2014, 06:57 (Dieser Beitrag wurde zuletzt bearbeitet: 22.08.2014 07:11 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: bitte Hilfe, wieder Problem bei Datasocket Lesen/Schreiben
(21.08.2014 10:26 )LabviewLearning schrieb:  Moin alle,

Ich habe eine Verbindung zwischen der SPS und HMI Labview über OPC Server eingerichtet. Das Ziel ist es, dass man die Sollwerte entweder bei der SPS oder im HMI verändern kann.

ich möchte Euch einen kleinen Code zeigen, in dem ich zwei Bedien- bzw. Anzeigeelemente für Sollwertsänderungen habe.

Wenn ich die Sollwerte im HMI einstellen möchte, werden diese Werte vom HMI zur SPS über OPC Server geschickt und auf dem Display bei SPS bei der Anzeige- und Bedienelementen angezeigt. Diese Variante funktioniert einwandfrei.

Umgekehrt funktioniert leider nicht. Nachdem ich die Sollwerte bei der Bedienelemten auf SPS Display eingestellt habe, konnten dieser Werte nicht auf dem Bedienelement von HMI schreiben.

Wie kann ich die Werte bidirektional bedienen und aktuallisieren.

Kann jemand von Euch mir eine Idee geben. Ich bedanke mich im Voraus und begrüße,

Phuong

Wie das genau kann weiss ich jetzt auch nicht aber grundsätzlich ist das keine gute Idee. Du hast dann das Problem von Race-Conditions die fast gar nicht zu verhindern sind. Sobald eine der Seiten unterschiedliche Statusse für ein Kontroll sieht beginnen sie frisch fröhlich einander diese Statusveränderung hin und her zu zu pingen, mit dem Effekt dass Dein Kontrol im Takt der Datenverzögerung in der Kommunikation beginnt zu flippern. Die notwendige Logik dazu um das zu verhindern ist meist ziemlich kompliziert, anfällig auf kleine Anpassungen in Deiner Applikation und grundsätzlich schwer unterhaltbar. Multipliziere das mit der Anzahl der möglichen bidirektional gespiegelten Kontrolls und du hast eine Applikation mit der Du Dir den Rest des Lebens ein Einkommen garantierst, bis der Chef bestimmt dass das viel zu teuer ist und die ganze Applikation zum Fenster rauswirft, im schlimmsten Fall mit dem Verursacher dieses Verbrechens hintennach. Big Grin

Die einzige einigermassen funktionierende Methode ist es die beiden Richtungen ganz zu trennen. Also je zwei Variablen für ein solches Kontroll, eine die durch die SPS beschrieben und LabVIEW gelesen wird und umgekehrt. Dann musst Du noch auf beiden Seiten Logik einbauen um zu erkennen dass eine Änderung von der einen Seite durch die andere bestätigt wird. Das kann implizit indem Du jeweils lokal einen Status/Merker unterhältst der bei einer lokalen Änderung solange wartet bis er diese Änderung in der anderen Variablen zurücksieht (aufpassen bei Fliesskommazahlen!!! Durch die beschränkte Auflösung von solchen Zahlen in Computern ist eine einfache Vergleichung auf Übereinstimmung nicht genügend um festzustellen dass zwei solche Zahlen gleich sind. Es kann durchaus sein dass Du zwar auf beiden Seiten 3.11 siehst aber dass diese Zahlen effektive jeweils 3.11000000000001 und 3.1099999999999 sind und dann ist das Resultat bei == halt falsch auch wenn es optisch anders aussieht.) Diese Logik musst Du für jedes Kontroll dass auf beiden Seiten verändert werden kann und auch auf beiden Seiten implementieren! Gute Nacht wenn das mehr dan ein oder zwei Kontrolls sind.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.08.2014, 08:58 (Dieser Beitrag wurde zuletzt bearbeitet: 22.08.2014 09:00 von LabviewLearning.)
Beitrag #5

LabviewLearning Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2014

13.0.1
2013
DE


Deutschland
RE: bitte Hilfe, wieder Problem bei Datasocket Lesen/Schreiben
Hi Rolfk,

danke Dir für deine Antwort auf meiner Anfrage. Ich werde versuchen weiterhin zu machen.

Was ich besonders neugierig bin, wie man im Hintergrund für eine direkte Datenanbindung programmiert hat. Es funktioniert bidirektional einwandfrei (sieh. Bild 1).

Eine Frage habe ich noch offen, ich weiß nicht ob Du mal gemacht hast.

Wie kann man die Daten vom OPC Server über Datasocket Property Nodes lesen und schreiben? Ich habe ein kleines Beispiel gemacht und verglicht. Bei Datasocket Property Nodes zeigt es immer Fehler 1087 ( keine Datasocket Verbindung) (sieh. Bild 2 u. 3). Ich weiß nix, wie HMI mit OPC Server über diese Variante ansprechen kann. Was habe ich hier falsch verstanden? Kannst Du mir eine kurze Erklärung geben.

Vielen Dank und Grüße,

Phuong


Angehängte Datei(en) Thumbnail(s)
           
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
  DataSocket - alle Verbindungen anzeigen Marius89 2 2.856 10.03.2023 14:09
Letzter Beitrag: Marius89
  Problem mit Datasocket Ping Pong Hubert R. 6 5.686 10.11.2021 14:17
Letzter Beitrag: Martin.Henz
  DataSocket Connection Muaadh 4 5.030 26.11.2019 23:28
Letzter Beitrag: Muaadh
  OPC und DataSocket: Verstehe den Code nicht tuhpon 2 3.916 10.07.2019 14:53
Letzter Beitrag: tuhpon
  Mit Datasocket OPC schneller 1ms lesen? PreVIEW 4 6.189 25.08.2016 12:02
Letzter Beitrag: PreVIEW
  Daten lesen/schreiben Vorrangproblem Variablen buettnerstefan 6 7.422 26.05.2015 21:48
Letzter Beitrag: jg

Gehe zu: