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

Ergebnis 1 bis 8 von 8

Thema: Eingangswort per ADS und Group/Offset auslesen

  1. #1
    Registriert seit
    04.06.2010
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe ein kleines Problem. Ich habe an einer Maschine ein CP...irgendwas (dürfte nicht wichtig sein, schwankt auch) und an diesem hängt per Ethercat eine EK1100. Ich würde nun gerne per ADS in .NET C# die Eingänge dieser Klemme auslesen.
    Verbindungsaufbau und auslesen von Variablen nach Namen am Port 801 und der im Systemmanager angezeigten Zielsystem Ams Net Id funktioniert einwandfrei. Aber das Auslesen der Eingänge will nicht klappen.

    Ich möchte bspw. das Notification Event so hinzufügen:
    Code:
    Int32 Group = 0xF031;
    Int32 Offset = 0x59B;
    InputList.Add(tcClientIO.AddDeviceNotification(Group,
                                                                   Offset,
                                                                   new AdsStream(),
                                                                   AdsTransMode.OnChange,
                                                                   Intervall, TimeOut,
                                                                   Input));
    Bzw. den Eingang so auslesen:
    Code:
    int test=tcClientIO.Read(Group,
                                     Offset,
                                     new AdsStream());
    Ich habe im Systemmanager im EtherCAT Prozessabbild den ADS Server aktiviert, dieser gibt den Port 27906 vor. An diesen Port und die Ams Net Id vom EtherCAT Gerät (andere als die für den Port 801?!) habe ich die Verbindung des tcClientIO aufgebaut.
    Group und Offset entnehme ich dem ausgewählten Eingangskanal. Nur leider klappt weder das Hinzufügen der Notification, noch das Auslesen. Es kommt der Fehler "Target could not be found".
    Weiß jemand Rat? Über Hinweise wäre ich dankbar, testen kann ich es erst nächste Woche im Betrieb.

    Vielen Dank, Gruß
    AKNOT
    Zitieren Zitieren Eingangswort per ADS und Group/Offset auslesen  

  2. #2
    AKNOT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.06.2010
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hat niemand eine Idee? Ich verzweifel noch daran, wobei es wahrscheinlich nur eine Kleinigkeit ist. Ich habe also einen EK1100, an der hängen mehrere EL1008. Und die möchte ich gerne per ADS auslesen...wie mache ich das? Muss ich im Prozessabbild der EK das ADS und Symbole erzeugen aktivieren (dann ist aber nichts mehr mit Port 300...versteh ich da was falsch?), die EK hat eine eigene AmsNetId, muss ich mich mit der verbinden oder mit der, die beim Broadcast im Systemmanager gefunden wird (eigtl. geht nur die), welche Read-Befehle muss ich wie benutzen?

    Wäre euch wirklich dankbar!

    Gruß
    AKNOT

  3. #3
    Registriert seit
    01.03.2008
    Beiträge
    487
    Danke
    3
    Erhielt 43 Danke für 39 Beiträge

    Standard

    Sind die beiden Geräte miteinander "geroutet" ?
    Im Systemmanger kann man auch ein bißchen "spielen" ohne das "geroutet" ist !"

    MfG CAS
    www.cas-solution.de

    Alles geregelt...


    Weltraumflug in den USA zu gewinnen!
    Kratze hier ▒▒▒▒▒▒▒▒▒▒▒▒ mit einer Münze,
    und finde heraus, ob Du der Gewinner bist!

  4. #4
    AKNOT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.06.2010
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Welche beiden Geräte meinst du? Also zu der NetId, die beim Broadcasting gefunden wird, ist eine Route erstellt. Das Variablenauslesen per Symbolname geht...also kann es verbindungstechnisch eigtl. kein Problem geben oder meintest du was anderes?

  5. #5
    AKNOT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.06.2010
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe es mittlerweile hinbekommen...man muss über ReadAny lesen und den Typ mit übergeben, dann geht es. Aber es wäre ja nicht BECKHOFF, wenn es nicht gleich ein neues Probleme gäbe. Group Index und Offset, oder zumindest der Offset sind nicht konstant und schwanken ständig bei neuer Kompilierung, anderem Gerät usw.. Es scheint logisch, dass der Offset nicht konstant ist, aber man damit ja nicht arbeiten, wenn man Listen mit diesen Eigenschaften zum Auslesen erstellt.

    Also neue Frage...gibt es irgendeine Möglichkeit, evtl. beim Kompilieren oder so, den Offset zu ermitteln, oder irgendwo festzulegen, dass immer derselbe vergeben wird oder irgendeine andere Option die Anforderung eine Liste von Eingängen, welche einer .NET Anwendung übergeben wird zu nutzen, ohne dass man sie alle 5 min ändern muss?

    Danke für Anregungen,
    Gruß

    AKNOT

  6. #6
    Registriert seit
    01.10.2009
    Ort
    Regensburg
    Beiträge
    77
    Danke
    8
    Erhielt 11 Danke für 11 Beiträge

    Standard

    Hallo,

    Die Offsets musst Du wohl in Deiner C# Anwendung behandeln. Offsets etc. findest du in der Symboldatei. Bei meinen Projekten mach ich das immer über ADS mit Übergabe des Variablennamens. Du kannst ja IO Variablen deklarieren z.B.:

    Var_Input AT %I* : array[0..15] of Bool

    Auf diese Variablen kannst Du dann in Deiner C# Anwendung per ADS zugreifen

    cheers

  7. #7
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Ich würd auch sagen das der Zugriff über den Variablennamen am einfachsten ist. Wenn du dann immernoch Groupindex und Offset brauchst, bekommst du die über die ADSSymbolInfo.

  8. #8
    AKNOT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.06.2010
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    OK, danke für die Antworten, ich werde mir das anschauen. Die Anforderung vom Kunden war eben die physikalischen Eingänge direkt abzufragen, auch um sie mit den verknüpften Variablen zu vergleichen.

    Gruß

Ähnliche Themen

  1. LinkedIn Group for TwinCAT Developers
    Von kineticart im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 27.08.2010, 14:59
  2. Informationen über den ADS Router auslesen
    Von Neals im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 15.01.2010, 14:13
  3. Pointer und Offset
    Von SPSTorsten im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 14.01.2009, 21:42
  4. DB-Nummer und Offset aus Symbol auslesen
    Von nobby_nobbs im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.08.2008, 15:41
  5. Neue Group zur Diskussion
    Von pvbrowser im Forum Werbung und Produktneuheiten
    Antworten: 0
    Letzter Beitrag: 23.05.2008, 13:14

Lesezeichen

Berechtigungen

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