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

Ergebnis 1 bis 4 von 4

Thema: ADS Zugriff per Variablenname (Sample 9 Infosys)

  1. #1
    Registriert seit
    22.09.2011
    Beiträge
    53
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin zusammen,

    Habe mir eine ADS Kommunikation anhand des Beispiel 9 der Beckhoff Seite aufgebaut (Link)

    Hier der Quellcode:

    Code:
    #include <iostream.h>
    #include <windows.h>
    #include <conio.h>
    #include "c:\twincat\ads api\tcadsdll\include\tcadsdef.h"
    #include "c:\twincat\ads api\tcadsdll\include\tcadsapi.h"
    
    void main()
    { 
      long      nErr, nPort; 
      AmsAddr   Addr; 
      PAmsAddr  pAddr = &Addr; 
      ULONG     lHdlVar, nData; 
      char      szVar []={"MAIN.PLCVar"}; 
    
      // Kommunikationsport auf dem ADS Router öffnen
      nPort = AdsPortOpen();
      nErr = AdsGetLocalAddress(pAddr);
      if (nErr) cerr << "Error: AdsGetLocalAddress: " << nErr << '\n';
      pAddr->port = AMSPORT_R0_PLC_RTS1;
    
      // Handle einer SPS-Variablen <szVar> holen 
      nErr = AdsSyncReadWriteReq(pAddr, ADSIGRP_SYM_HNDBYNAME, 0x0, sizeof(lHdlVar), &lHdlVar, sizeof(szVar), szVar);
      if (nErr) cerr << "Error: AdsSyncReadWriteReq: " << nErr << '\n';
      do 
      { 
        // Wert einer SPS-Variablen auslesen, per Handle 
        nErr = AdsSyncReadReq( pAddr, ADSIGRP_SYM_VALBYHND, lHdlVar, sizeof(nData), &nData ); 
        if (nErr) 
          cerr << "Fehler: AdsSyncReadReq: " << nErr << '\n'; 
        else 
          cout << "Wert: " << nData << '\n'; 
        cout.flush(); 
        if (Data > 10)
        { 
          // Wert der SPS-Variablen wieder auf 0 setzen 
          nData = 0; 
          nErr = AdsSyncWriteReq(pAddr, ADSIGRP_SYM_VALBYHND, lHdlVar, sizeof(nData), &nData); 
          if (nErr) cerr << "Error: AdsSyncWriteReq: " << nErr << '\n';
        }
      }
      while ( getch() == '\r');  // nächsten Wert auslesen mit RETURN, sonst Ende
    
    
      //Handle der SPS-Variablen wieder freigeben
      nErr = AdsSyncWriteReq(pAddr, ADSIGRP_SYM_RELEASEHND, 0, sizeof(lHdlVar), &lHdlVar); 
      if (nErr) cerr << "Error: AdsSyncWriteReq: " << nErr << '\n';
    
      // Kommunikationsport schließen 
      nErr = AdsPortClose(); 
      if (nErr) cerr << "Error: AdsPortClose: " << nErr << '\n';
    }
    Klappt auch alles soweit wunderbar. In der Dekleration

    Code:
    char      szVar []={"MAIN.PLCVar"};
    wird jedoch auf den Baustein "MAIN" zugegriffen und dort auf die Variable "PLCVar". Ich würde jedoch gerne auf Globale Variablen zugreifen.
    Ändere ich jetzt jedoch den Zugriff auf "Global_Variables.PLCVar" bekomme ich keine Verbindung zu der Variablen.

    Hat jemand eine Idee?

    Gruß
    Zitieren Zitieren ADS Zugriff per Variablenname (Sample 9 Infosys)  

  2. #2
    Registriert seit
    29.09.2006
    Beiträge
    368
    Danke
    0
    Erhielt 41 Danke für 38 Beiträge

    Standard

    "Global_Variables." weglassen also ".PLCVar" oder "PLCVar" probieren.

  3. #3
    Registriert seit
    29.09.2006
    Beiträge
    368
    Danke
    0
    Erhielt 41 Danke für 38 Beiträge

    Standard

    Nachtrag: ...wenn ein TwinCAT2 ist.

  4. #4
    Leto ist offline Benutzer
    Themenstarter
    Registriert seit
    22.09.2011
    Beiträge
    53
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ohh man, da hätte ich auch selbst mal drauf kommen können. klappt.

    Danke

Ähnliche Themen

  1. Ethercat Sample Code
    Von EtherKater im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 23.05.2011, 11:16
  2. Gesamtes Projekt nach Variablenname durchsuchen
    Von twincatter im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 21.04.2011, 12:26
  3. WinCC Variablenname aktualisieren
    Von Taddy im Forum HMI
    Antworten: 1
    Letzter Beitrag: 24.06.2010, 12:48
  4. Variablenname per Script
    Von Waelder im Forum HMI
    Antworten: 4
    Letzter Beitrag: 09.07.2007, 21:07

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •