-> Hier kostenlos registrieren
Hallo zusammen,
ich habe hier ein Problem...
Nehmen wir an ich hätte eine Anlage mit vielen Klemmen, die immer wieder umgesteckt werden.
PC mit Profibus-Harte
BK3100 Profibus-Koppler)
... jede Menge KLxxxx ...
Ziel ist es, mit einer externen Anwendung über TwinCAT IO bzw ADS auf die Variablen zugreifen zu können.
Ich habe ein paar Möglchkeiten durchgespielt und keine ist richtig praktisch.
zB.
1. Zugriff per ADS dll direkt auf die Klemmen (ohne Verlinkung auf Variablen eines zusätzlichen Tasks), mit AdsSyncReadReq.
-> damit kann ich immer nur einen Wert lesen/schreiben. Unglaublich langsam bei vielen Klemmen. Ich kann aber nicht zB alle DIs auf einmal lesen. (Oder geht das doch? Hab ich nicht geschafft. Man sollte ja denken, dass die DIs nur im Offset verscheiden sind und daher auch Byte-weise ausgelesen werden könnten... geht aber bei mir nicht)
2. Man legt einen zusätzlichen Task an, da generiert man ein Array und mappt die EAs per Hand...
-> Dieses Array kann ich dann mit einem einzigen Zugriff auslesen. Top. Aber alle Klemmen per Hand zu verknüpfen gibt GrauesHarr++.
Hat jemand noch eine andere Lösung?
Gibt es eine (einfache) Möglichkeit, mit TwinCAT IO alle E/A-Werte automatisch in ein Array zu mappen? Kleines Skript oder so?
Ich hätte auch gerne einfach das Prozessabbild geschnappt und dann in meiner App zerlegt, aber da komme ich nicht ran (Port? iGrp? Offset?).
Ich würde mich freuen, wenn einer von den Profis hier im Forum Licht in meinen Nebel bringen würde!!!
ich habe hier ein Problem...
Nehmen wir an ich hätte eine Anlage mit vielen Klemmen, die immer wieder umgesteckt werden.
PC mit Profibus-Harte
BK3100 Profibus-Koppler)
... jede Menge KLxxxx ...
Ziel ist es, mit einer externen Anwendung über TwinCAT IO bzw ADS auf die Variablen zugreifen zu können.
Ich habe ein paar Möglchkeiten durchgespielt und keine ist richtig praktisch.
zB.
1. Zugriff per ADS dll direkt auf die Klemmen (ohne Verlinkung auf Variablen eines zusätzlichen Tasks), mit AdsSyncReadReq.
-> damit kann ich immer nur einen Wert lesen/schreiben. Unglaublich langsam bei vielen Klemmen. Ich kann aber nicht zB alle DIs auf einmal lesen. (Oder geht das doch? Hab ich nicht geschafft. Man sollte ja denken, dass die DIs nur im Offset verscheiden sind und daher auch Byte-weise ausgelesen werden könnten... geht aber bei mir nicht)
2. Man legt einen zusätzlichen Task an, da generiert man ein Array und mappt die EAs per Hand...
-> Dieses Array kann ich dann mit einem einzigen Zugriff auslesen. Top. Aber alle Klemmen per Hand zu verknüpfen gibt GrauesHarr++.
Hat jemand noch eine andere Lösung?
Gibt es eine (einfache) Möglichkeit, mit TwinCAT IO alle E/A-Werte automatisch in ein Array zu mappen? Kleines Skript oder so?
Ich hätte auch gerne einfach das Prozessabbild geschnappt und dann in meiner App zerlegt, aber da komme ich nicht ran (Port? iGrp? Offset?).
Ich würde mich freuen, wenn einer von den Profis hier im Forum Licht in meinen Nebel bringen würde!!!