Beckhoff TwinCAT 3.1: Problem mit azyklischer Task bei Umstieg von TC2 auf TC3.1

flo199213

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander,

ich bin neu im Forum und suche Hilfe bezüglich eines sehr spezifischen Problems, das beim Umstieg von TwinCAT 2 auf TwinCAT 3.1 aufgetreten ist. Ich suche also nach einem sehr erfahrenen Nutzer von TwinCAT 3.1 der eine Herausforderung sucht und mir helfen möchte.

Hintergrund:
Auf meinem das Problem betreffenden PC ist TwinCAT und ein Windows auf dem eine eigenene Automatisierungssoftware läuft installiert. Um mit dem TwinCAT-System messen zu können werden SPS-Variablen von der Automatisierungssoftware über ADS-Kommunikation aus der TwinCAT-SoftSPS ausgelesen. Da das Auslesen nicht im gleichen Zyklus wie dem SPS-Zyklustakt erfolgt, wird hier (Stand TwinCAT 2) eine azyklische Task verwendet, um die Variablen auszulesen. Diese azyklische Task wird durch die Ring3 I/O Komponente unterstützt.

Bisheriges Vorgehen unter TwinCAT 2:
Bisher wurde die azyklische Task zum Auslesen der Variablen durch eine im SystemManager zusätzlich eingehängte Task mit Prozessabbild realisiert. Bei dieser Task wurde der "Auto-Start"-Haken entfernt, sodass diese Task nur anläuft, sofern per ADS-Kommunikation Variablen angefragt werden. Im Prozessabbild dieser azyklischen Task können dann eigene Variablen angelegt werden, die vom "normalen" SPS Programm in seinem langsamen Zyklus beschrieben und von meiner Automatisierungssoftware schneller (und wann ich es brauche) gelesen werden können. Der ganze Vorgang funktioniert über Shared-Memory-Bereiche und dient dem Zweck das Auslesen der Variablen über ADS-Kommunikation um Vielfache zu beschleunigen.

Problem unter TwinCAT 3.1:
Unter TwinCAT 3.1 wird die Ring3 I/O (R3IO)-Komponente nicht mehr unterstützt. Entfernt man den "Auto-Start"-Haken einer zusätzlich hinzugefügten Task mit Prozessabbild (um diese azyklisch laufen zu lassen), so lässt sich die Konfiguration nicht mehr ohne Fehlermeldung in die SPS spielen und starten. Folglich ist es mir nun nicht mehr möglich über die Shared-Memory-Bereiche der ADS-Kommunikation zwischen TwinCAT und Windows Variablenwerte mit der für mich notwendigen Geschwindigkeit auszulesen.

Da unser Beckhoff-Support nur sporadisch und sehr spröde antwortet wende ich mich mit der Bitte der Unterstützung an Sie. Möglicherweise bin ich nicht der einzige, dem dieses Problem beim Umstieg von TwinCAT 2 auf TwinCAT 3.1 Probleme bereitet.

Grüße und bereits vielen Dank für Ihre Hilfe,
flo199213
 
Hallo Flo,

du könntest dir ein eigenes TcCOM-Modul schreiben, welche DataAreas (Prozessabbild) verwendet und ein ADS Server bereitstellt um deine Daten über ADS zu empfangen.
Das lässt sich allerdings nur in C++ umsetzen.

Schau dir mal das Beispiel eines ADS Servers an:
http://infosys.beckhoff.de/content/1031/tc3_c/36028797131562763.html

Die DataAreas und die zylische Abarbeitung werden von den Projekt Templates bereits implementiert, ansonsten dieses Beispiel:
http://infosys.beckhoff.de/content/1031/tc3_c/18014398621052811.html

Gruß, Neals
 
Zurück
Oben