Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Results 1 to 7 of 7

Thread: Struktur auslesen über AdsDLL LabVIEW mit Arrays und Sting

  1. #1
    Join Date
    21.06.2018
    Posts
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich moechte mit LabVIEW über die AdsDLL Schnittstelle eine Struktur aus TwinCAT 3 auslesen. Die Struktur enthält unter anderem Strings und Arrays. Hat einer hiermit Erfahrung und kann mir vielleicht helfen bzw einen Tipp geben. Ich habe mal ein Bild meines VIs eingefügt und die entsprechende Struktur in TwinCAT 3. Spaeter wuede ich gerne auch noch ein Array von Strukturen dieser Art auslesen. Ist das mit der AdsDLL moeglichen?

    Vielen Dank schonmal fuer Eure Antworten

    AdsDLLStrukturMitStringUndArraysLesen.JPG StrukturInTwinCAT3.JPG
    Reply With Quote Reply With Quote Struktur auslesen über AdsDLL LabVIEW mit Arrays und Sting  

  2. #2
    Join Date
    10.08.2012
    Posts
    587
    Danke
    0
    Erhielt 158 Danke für 150 Beiträge

    Default

    VI ist jetzt nicht meins, aber klar geht das.
    Mit F003 holst du dir den Handle (einmalig)
    Mit F006 released du den HAndle ganz am Ende (einmalig)
    und Mit F005 und dem Indexoffset aus F003 liest du die Struktur bzw Array der Struktur.
    Du erhälst eine Binärwurst und musst das entsprechend der Definition aufdröseln. Insofern solltest du beachten das default in TC3 die Daten 8-Byte aligned sind.
    D.h. ein String(80) ist de-facto 81 Byte lang, der nächste LREAL wird entsprechend auf einer 8-Byte aligned adresse starten, der INT auf einem 2 Byte aligned Wert.

    Guga

  3. Folgender Benutzer sagt Danke zu Guga für den nützlichen Beitrag:

    Deeply (03.04.2019)

  4. #3
    Join Date
    21.12.2015
    Posts
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo Deeply,

    ich arbeite auch gerade an der Thematik AdsDll und Labview.
    Könntest du dein Labview Vi hier hochladen?
    Kann man auch ein Labview Struct per AdsSyncWriteReq anch Twincat schreiben?

    Kann man auch eine reines String Array von Labview nach Twincat schreiben?

    Danke und Gruß
    Vetje

  5. #4
    Join Date
    10.08.2012
    Posts
    587
    Danke
    0
    Erhielt 158 Danke für 150 Beiträge

    Default

    Entsprechend dem Thread #2 gilt:
    -auf ein String-Array kann man zugreifen (String wird in TwinCAT als 1-Byte aligned Wert gesehen), allerdings solltest du daran denken das laut IEC z.B. ein String(80) de facto 81 Bytes benötigt wegen dem "Ende-Wert" der 0x0 ist.
    -Wer Lesen kann, kann prinzipiell identisch auch schreiben

  6. #5
    Join Date
    21.12.2015
    Posts
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke für die Antwort.
    Hab's aber leider nicht hinbekommen. Twincat zeigt zwar Zeichen an, aber das sind nur Hieroglyphen...
    Welche Länge muss ich in Labview angeben, damit die beiden Strings aus dem Array bei Twincat richtig angezeigt werden?
    Hallo = 5 Byte
    TC = 2Byte
    2 mal "Ende-Wert" zu je 1 Byte
    Summe: 9 Byte?


    LabView.jpgTwinCat3.jpg
    Last edited by vetje; 28.01.2020 at 08:41.

  7. #6
    Join Date
    10.08.2012
    Posts
    587
    Danke
    0
    Erhielt 158 Danke für 150 Beiträge

    Default

    Typdefinition und Längen seitens der PLC:
    STRING -> 81 Byte
    String(10) -> 11 Byte
    String(255) -> 256 Byte

    Ich bin nun kein aktiver Nutzer von Labview und kann deshalb nicht sagen ob deine "Strings", also 'Hallo' und 'AB' denn tatsächlich als Strings dort betrachtet werden.
    Physikalisch sollte somit ein "Hallo" + ein Byte mit dem Wert 0 und hier somit 6 Byte geschrieben werden. Die restlichen 5 Bytes vom String(10) sind dann vom Inhalt uninteressant bevor du den nächsten Bytestream definiert (das "AB").

    Mangels Labview Erfahrung und da des doch limitierten Ausschnitts des Codes kann ich dir aber sonst nicht weiterhelfen.

    Guga

  8. #7
    Join Date
    24.02.2009
    Posts
    1,451
    Danke
    29
    Erhielt 344 Danke für 280 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Kann es sein, dass es da ein Codierungsproblem gibt?
    Wandle mal die Strings in LabView und in TwinCat in Byte-Arrays um und schau dir die Rohdaten an.
    Sänd from mei Kombjudder mitse Dastadurr.

Similar Threads

  1. Replies: 3
    Last Post: 02.04.2019, 10:39
  2. Problem mit TwinCAT-LabVIEW kommunication mit ADSDLL Protokol
    By AdsDll in forum CODESYS und IEC61131
    Replies: 0
    Last Post: 01.10.2018, 10:11
  3. Replies: 3
    Last Post: 17.05.2017, 15:40
  4. Visual Studio zugriff über TwinCat3 (C# / ADSdll)
    By Franki in forum CODESYS und IEC61131
    Replies: 27
    Last Post: 22.09.2016, 18:45
  5. Probleme mit dem Auslesen von String-Arrays
    By FelMa in forum CODESYS und IEC61131
    Replies: 4
    Last Post: 10.03.2014, 15:32

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •