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 

Dieses Thema hat akzeptierte Lösungen:

LabView 2012 SP1 und TwinCat 2 Ads.Net



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!

04.07.2014, 12:19 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2014 12:32 von jg.)
Beitrag #1

RughNeXX Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jul 2014

12
2013
DE



LabView 2012 SP1 und TwinCat 2 Ads.Net
Hallo zusammen,

Ich habe ein Problem mit der Kommunikation zwischen LabView und TwinCat über die ADS.Net Schnittstelle.
Um verschiedene Werte mit einer Frequenz von 10Hz aus den Merkern der SPS abzufragen nutze ich diese Anleitung: Anleitung.

Klappt soweit auch ganz gut, jedoch "müllt" sich der RAM stückweise zu, bis das Programm (nach ca. 4Stunden) folgende Fehlermeldung ausgibt.
   

In einem anderen Beitrag gab es das selbe Problem, welches gelöst werden konnte. Ich habe denselben Ansatz versucht (siehe angehängtes VI) jedoch brachte mir diese Lösung keinen Erfolg.
http://www.labviewforum.de/Thread-Arbeit...dll-Aufruf

Ohne die .Net Kommunikation, also mit selbst generierten Werten läuft das VI stundenlang ohne an Geschwindigkeit oder Speicher einzubüßen, weshalb sich die Ursache auf die beschriebene Kommunikationsschnittstelle zurückführen lässt.

Auch ein Port öffnen und schließen nach jedem Aufruf brachte keinen wirklichen Erfolg.

Leider finde ich auch keine gute Dokumentation zu der ADS.Net Schnittstelle und dessen Funktionen.

Hat jemand eine Idee wo ich ansetzen könnte?
Bei Beckhoff wird mir nur gesagt ich sollte die Frequenz auf 1Hz drosseln, wobei dies meiner Meinung nach das Problem nur zeitlich hinausschieben wird, statt es zu lösen. Die Messungen die realisiert werden sollen können jedoch auch länger als 10 Stunden andauern.

Ich bedanke mich vorab schonmal für jeglichen konstruktiven Beitrag.

Gruß

Edit jg: Externer Link gelöscht.


Angehängte Datei(en)
12.0 .vi  server.vi (Größe: 96,02 KB / Downloads: 507)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2014, 14:08
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: LabView 2012 SP1 und TwinCat 2 Ads.Net
Kein Wunder, dass der Speicher vollläuft. Dauernd machst du neue Konstruktoren/Referenzen auf, schließt diese aber NIE.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2014, 14:14 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2014 14:31 von RughNeXX.)
Beitrag #3

RughNeXX Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jul 2014

12
2013
DE



RE: LabView 2012 SP1 und TwinCat 2 Ads.Net
Moin,

erstmal vielen Dank für die Antwort.
Hatte auch schon versucht, die Referenzen stets zu schließen, jedoch bleibt das Problem weiterhin bestehen...

Hab mal die Version angehängt mit der es 4 Stunden lang lief.
Wie sollte ich das VI deiner Meinung nach ändern?

Gruß


Angehängte Datei(en)
12.0 .vi  server.vi (Größe: 167,68 KB / Downloads: 489)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2014, 14:30
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: LabView 2012 SP1 und TwinCat 2 Ads.Net
Dann zeig mal die Variante mit Refnum Schließen. Würde mich nicht wundern, wenn du was übersehen hast.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2014, 20:53
Beitrag #5

RughNeXX Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jul 2014

12
2013
DE



RE: LabView 2012 SP1 und TwinCat 2 Ads.Net
Habs mal oben angehängt an den vorherigen Post...über die dispose-Funktion wird die Verbindung laut Beckhoff wieder getrennt und der Speicher sollte sich nicht zumüllen...naja denkste Wink

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.08.2014, 09:31
Beitrag #6

RughNeXX Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Jul 2014

12
2013
DE



RE: LabView 2012 SP1 und TwinCat 2 Ads.Net

Akzeptierte Lösung

Okay konnte das Problem lösen.

Scheinbar wurden bei der Nutzung der ADS.Net Schnittstelle die erzeugten Objekte nicht schnell genug gelöscht und blieben so peu a peu im Speicher. Habe daraufhin die ADSOCX Schnittstelle mal angetestet, da diese Pointerbasiert arbeitet und siehe da schon klappt es. Einziges Manko war, dass man nicht alle Datentypen nutzen kann (bpsw. nen einfaches Byte oder unsigned ints).

Vielen Dank für die Hilfestellung.

Gruß


Angehängte Datei(en)
12.0 .vi  server.vi (Größe: 56,79 KB / Downloads: 525)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.08.2014, 13:14 (Dieser Beitrag wurde zuletzt bearbeitet: 14.08.2014 13:15 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: LabView 2012 SP1 und TwinCat 2 Ads.Net
(14.08.2014 09:31 )RughNeXX schrieb:  Okay konnte das Problem lösen.

Scheinbar wurden bei der Nutzung der ADS.Net Schnittstelle die erzeugten Objekte nicht schnell genug gelöscht und blieben so peu a peu im Speicher. Habe daraufhin die ADSOCX Schnittstelle mal angetestet, da diese Pointerbasiert arbeitet und siehe da schon klappt es. Einziges Manko war, dass man nicht alle Datentypen nutzen kann (bpsw. nen einfaches Byte oder unsigned ints).

Vielen Dank für die Hilfestellung.

Gruß

Klingt ein bischen wie: Also die Tür zu meinem Haus klemmte immer, deshalb habe ich mir ein neues Haus gekauft!

Jens hat's dir schon gesagt: für jede Konstruktor Node MUSST Du auch eine Close Reference Node verwenden. Ich denke Du weisst was eine Konstruktor Node ist??

Das gilt übrigens für OCX auch, nur so mal als extra Information, ausser dass da die Funktion um ein Objekt zu generieren nicht Konstruktor Node heisst sondern Open Automation Refnum.

Ansonsten möchte ich keine Worte über Dein Server.vi verlieren. Da ist nichts positives zu sagen! Smilie_saug_

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
10.01.2018, 10:46 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2018 10:54 von Ralfk84.)
Beitrag #8

Ralfk84 Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2017

2015 Prof Dev. System
2017
DE


Deutschland
RE: LabView 2012 SP1 und TwinCat 2 Ads.Net
Hallo,

tut mir leid, dass ich einen eher sehr alten Threat noch einmal aufmache, ich wollte aber keinen neuen öffnen.

Für ein aktuelles Projekt bin ich gerade dabei eine Schnittstelle zu einer Beckhoff SPS über TwinCAT zu erstellen. Normalerweise nutzen wir Siemens, daher ist das auch Neuland. In der vom ursprünglichen Threadersteller erwähnten "server.vi" fehlt meines Erachtens jeweils das Schließen der "ADSBinaryReader" und der "AdsStream", sodass diese ja im LabVIEW-Speicher verbleiben. Außerdem tue ich mich schwer, gestapelte Sequenzstrukturen zu lesen. Daher will ich lieber eine state-machine nutzen.
Im Init-Case der state-machine wird im Grunde nur der TcAdsClient über eine Konstruktor- und Methodenknoten zur SPS gestartet. Die weiteren cases beinhalten dann die einzelen Lese- und Schreibbefehle. Als Beispielbild habe ich das Auslesen einer festgelegten Variable (Array aus 56 singles) als Anhang beigefügt. Würde das so funktionieren? Im Exit-state (aufgerufen durch Betätigen von Stop oder einen Fehler, würde dann noch der TcAdsClient geschlossen werden.
Mein Problem ist, dass die Hardware für das Projekt aktuell noch in Bestellung ist und ich vorher so viel wie möglich vorbereiten will (ohne es aber testen zu können). Außerdem kann ich das LabVIEW Programm dann nur als EXE auf den Mess-PC nutzen. Daher die Frage an die Profis, ob das generell so funktionieren würde oder ob da eventuell irgendwo noch Stolpersteine vorhanden sind. Als Orientierung habe ich die Beispiel-VIs von Beckhoff genommen.

Viele Grüße,
Ralf

PS: Der Fehlercluster muss dann natürlich noch aus dem case raus (bzw. vorne rein), um im Fehlerfall das Exit case-aufzurufen. Das ist jetzt noch nicht implementiert, kommt aber auf alle Fälle mit rein.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  LabVIEW TwinCAT via ADS.NET dacripple 1 10.843 14.09.2017 14:17
Letzter Beitrag: Achim
  Kommunikation LabView mit TwinCat 3 - Update mathez 4 13.832 20.04.2015 10:16
Letzter Beitrag: rolfk
  Lange Ladezeiten bei .NET Bibliotheken mit LV 2012 Msengxxl 2 4.841 03.05.2013 08:05
Letzter Beitrag: GerdW
  Strukturvariablen in Beckhoff TwinCAT schreiben Achim 1 7.658 27.01.2012 07:02
Letzter Beitrag: Achim
  TwinCat PLC Control Schü 1 6.533 10.01.2011 07:37
Letzter Beitrag: Schü
  LabVIEW, TwinCAT und DSC Thor 3 7.547 08.03.2010 21:13
Letzter Beitrag: rolfk

Gehe zu: