IndexGroup u. IndexOffset der EC Klemmen an einem Beckhoff CX berechnen oder auslesen

AntonEmil

Level-1
Beiträge
10
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin allerseits,

Ich bin gerade in einem Twincatprojekt zugange in dem ich von einer SPS aus an einer anderen SPS die Werte der angeschlossenen I/O Units auslese. Ich verwende dabei einen gewöhnlichen ADSREAD Baustein bei dem ich den Port, IndexGroup und IndexOffset angeben muss. Diese einmal aus der einen SPS auszulesen und in die andere eintragen ist nicht das Problem, allerdings weiß ich nicht mit Sicherheit, unter welchen Bedingungen diese sich ändern können, z.B. wenn die Anlage transportiert wird und ein paar Tage später wo anders wieder aufgebaut wird.

Meine Fragen lauten also:

Wodurch können sich die Adresswerte ändern, was darf ich nicht tun, damit sie bleiben?
Lassen sich die Werte von außen irgendwie auslesen oder auch berechen? Welche Faktoren nehmen Einfluss auf sie?

Liebe Grüße

AntonEmil
 
Mich interessiert die Port# die du nutzt genauso wie die Indexgruppe.
Je nachdem was du nutzt ist das stabil (oder eben auch nicht).
So mal allgemein: Port bedeutet Submodul von TwinCAT (NC, PLC, EA, Task,....).
Die Indexgruppe ist dann die Funktionalität (zugriff über Handle, Lesen von Wörtern, lesen von Bits...) und der Offset dann die Adresse oder ein sonstiger Parameter die die Indexgruppe benötigt....

Je nach Typ ist das Ganze ziemlich abstrakt und quasi unveränderlich und stabil oder eben nicht.
Also.. mehr Info bitte.

Guga
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also solange beim Device nicht ADS Routing eingestellt ist, was bei mir nicht der Fall ist, benutze ich den Port 11. Die IndexGruppe ist meistenfalls 16#3040010, jedoch hatte ich auch bereits Projekte in den Händen, in denen ich in einem Klemmenstrang unterschiedliche IndexOffsets für die einzelnen Klemmen Fand. Ob diese ggf. unterschiedliche Datentypen abfragen bzw. welche Klemme welche Gruppe hatte, kann ich im Moment nicht sagen, dies machte mich jedoch stutzig. Vor allem war ich verwundert, als ich für diese Hardware ein leeres Projekt erstellte und die IOs scannte und nun alle Klemmen dieselbe Gruppe anzeigten.
Die Werte dafür entnehme ich im Übrigen aus dem I/O Teil des laufenden Projektes, zu finden wenn man den Output oder Input eines Channels betrachtet, unter dem Reiter Variable bei ADS Info.
Es wäre mir ziemlich lieb, diese Werte benutzen zu können, noch besser sogar, wenn ich sie aus der SPS auslesen könnte. Die grobe Vorarbeit habe ich auch bereits gemacht indem ich die NetIds der Master und die EcSlaConfigData der Slaves auslese, wenn ich es nun noch schaffe, die Indexgruppe und den Offset auszulesen, könnte es mir auch egal sein, wann und ob diese sich ändern.
Interessieren tut mich das Thema aber so oder so, denn es ist mir noch immer ein kleines Rätsel, wie sich diese ergeben auch wenn du Guga mir schon wieder ein wenig mehr Licht ins dunkel brachtest.
 
Der Port 11 wird vom System verwaltet. Du hast keinen Einfluss auf Indexgruppe/Offset der EAs. Also wenn du irgendwo deine Topo der EA änderst hast du die A..-Karte.
Das wird deshalb eigentlich quasi nie / selten so benutzt.
Stattdessen ist es häufig so das man die EAs auf eine Task oder die PLC mappt und dort die Adressen bzw. Variablen (bevorzugt) nutzt. Diese sind dann fix und ändern sich nicht mehr (grob gesagt mit Unterschlagung von ein paar Ausnahmen).
Etwas mehr Aufwand ist es über die Namens-Topo der EA Variablen gehen. Also "MasterName.EK1100Name.ELxxxxName.ChannelNummer".
Dafür musst du im Master aber die Symbolischen Namen freigeben. Die Topologischen Namen sind dann (bis auf die "ChannelNummer" im Master CoE abgelegt und man kann sich die Topo auslesen.

Ich glaube irgendwo in der EtherCAT-Doku gibt es ein Beipielprojekt für die Diagnose des EtherCATs. Da wird darauf zugegriffen und in der PLC logisch dein EA Baum abgebildet..
Wenn du das Projekt (könnte ein TC2-Projekt sein, müsstest du also gegebenenfalls über den Converter nach TC3 ziehen) nicht findest melde dich hier.

Guga
 
Ja sauber, ich glaub damit komme ich weiter, ich habe auf jeden Fall einen Ansatz wie ich weitermachen kann, danke :rolleyes:
Ich denke ich werde es einmal mit der Namestopologie, ansonsten werde ich wohl auf die gemappten Variablen zurückgreifen.

Gerne würde ich aber noch etwas klar stellen, um zu sehen ob ich das richtig verstanden habe.
Wenn ich das richtig verstehe, ändert sich also nur der Offset, wenn ich die Hardwarekonfiguration der E/A Einheit verändere. Dies könnte in meinem Fall höchstens passieren, um eine defekte Einheit auszutauschen, dennoch sollte sich ja im Nachhinein wieder die alte Adressierung einstellen.

Und eine kleine Anekdote habe ich auch noch.
Bei uns im Hause haben wir 2 identische Anlagen stehen, welche noch in Betrieb genommen werden sollen. Auf diesen habe ich gestern jeweils ein leeres Projekt geladen und einen Scan der E/A Einheiten durchgeführt. Beide Anlagen sind wie erwähnt physisch und logisch identisch und auch die Indexgruppe sowie der -offset waren bei allen Channels gleich.
Für mich war dies sehr interessant um die Welt der ADS- Kommunikation ein wenig mehr zu durchblicken und vielleicht bringt diese Info ja nochmal wem etwas.

Liebe Grüße

AntonEmil
 
Zurück
Oben