Was läuft wo bei TwinCAT E/A?

MehrPower

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

kurz zu mir, da das mein erstes Posting ist:
Bis jetzt habe ich nur µCs in C und für Windows in C, C++ und ein bischen Visual C++ programmiert. Es sind also Programmierkenntnisse vorhanden, jedoch gar nichts bezüglich SPS und Feldbussen.


Nun soll ich "kurz" eine "einfache" Funktionalität realisieren. Dazu lag eine Funktionsbeschreibung und folgende Hardware auf meinem Schreibtisch:confused::
- EtherCAT-Koppler EK1100
- IO Klemme EL1859
- Analog IN EL3602, EL3122, EL3152 und EL9011
- TwinCAT E/A-Lizenz
- CD mit TwinCAT v2.11

Derjenige, der das System haben möchte, hat das Wohl mit einem Vertriebler von Beckhoff zusammengestellt, aber leider ist er die nächsten Wochen im Urlaub und nicht erreichbar. Für den späteren Einsatz im Feld steht wohl ein extrem leistungsstarker PC bereit, entwickeln soll ich aber am Laptop im Labor.

Die geforderte Funktionalität beschränkt sich auf bitorientierte Logik und Vergleichsoperationen, also imho rein programmiertechnisch nichts weltbewegendes. Progammiersprache soll C# sein. Es ergeben sich für mich auch aus der Funktionsbeschreibung keine Anhaltspunkte für eine schnelle Reaktionsfähigkeit oder harte Echtzeitbedingungen.

Habe mich nun versucht die Tage mich mit dem Beckhoff Information System in die Materie einzulesen. Mir ist sind aber noch einige Dinge unklar und hoffe hier auf Hilfe oder Hilfe zur Selbsthilfe.

Mein Status ist derzeit:
Im System Manager (default im Config Mode) habe ich ein EtherCAT-Gerät hinzugefügt, die Netwerkkarte als Adapter ausgewählt, ... beim "Boxen Scannen" wurde auch der Buskoppler mit den Busklemmen richtig erkannt.
Im "Free-Run" kann ich auch die Ausgänge setzen und Eingänge lesen.

Unsichere Vermutung(en): (bitte bestätigen, verneinen und/oder ergängzen)
1. Würde man (ich) die PLC-Version benutzen, könnte man eine SPS-Funktionalität in den entsprechenden Sprachen (KOP, FUP, ...) erstellen, das Projekt im System Manager als Task einfügen, die Zuordnung der HW und des Prozessabbildes konfigurieren und dann das System starten. Fertig!?

2. Da ich die E/A-Lizenz benutzen soll (und in C# programmieren) muss ich ein VS ein Projekt erstellen und die ADS-DLL benutzen.

Folgendes baut auf 2. auf:
3. Ich generiere ein dynamisches "TcAdsClient" objekt, überprüfe dann ggf. ob alle meine erwarteten Busklemmen da sind, und kann dann direkt (bzw. über Handles) meine Eingänge auslesen und die Ausgänge beschreiben. Die nötige Softwarestruktur kann ich dann ja den Beispielen entnehmen.

4. Falls obiges halbwegs korrekt sein sollte, wie muss ich dann den System Manager konfigurieren bzgl. Zykluszeit, Systemzustand,...? Oder erledigt das dann alles meine Anwendungssoftware?


Ziel soll es (möglichst ohne weitere Kenntnisse des Monteurs, der die Maschine aufbaut) sein: TwinCAT installieren, Anwendungssoftware (Fuktionalitaet.exe) starten - läuft oder sagt ggf. was fehlt.

Das wars fürs Erste. Danke schon im Voraus für Kommentare und fürs Lesen dieses Romans ;-)
viele Grüße -MehrPower


Noch nebenbei: Ist es normal, dass bei meinem jetzigen Status, d.h. E/A-Konfiguration ist imho korrekt- sonst nix geändert- beim Umschalten des Systemmodus auf "Start" von Windows XP32 ein Bluescreen auftaucht???
 
Hallo,

kurz zu mir, da das mein erstes Posting ist:
Bis jetzt habe ich nur µCs in C und für Windows in C, C++ und ein bischen Visual C++ programmiert. Es sind also Programmierkenntnisse vorhanden, jedoch gar nichts bezüglich SPS und Feldbussen.


Nun soll ich "kurz" eine "einfache" Funktionalität realisieren. Dazu lag eine Funktionsbeschreibung und folgende Hardware auf meinem Schreibtisch:confused::
- EtherCAT-Koppler EK1100
- IO Klemme EL1859
- Analog IN EL3602, EL3122, EL3152 und EL9011
- TwinCAT E/A-Lizenz
- CD mit TwinCAT v2.11

Derjenige, der das System haben möchte, hat das Wohl mit einem Vertriebler von Beckhoff zusammengestellt, aber leider ist er die nächsten Wochen im Urlaub und nicht erreichbar. Für den späteren Einsatz im Feld steht wohl ein extrem leistungsstarker PC bereit, entwickeln soll ich aber am Laptop im Labor.

Die geforderte Funktionalität beschränkt sich auf bitorientierte Logik und Vergleichsoperationen, also imho rein programmiertechnisch nichts weltbewegendes. Progammiersprache soll C# sein. Es ergeben sich für mich auch aus der Funktionsbeschreibung keine Anhaltspunkte für eine schnelle Reaktionsfähigkeit oder harte Echtzeitbedingungen.

Habe mich nun versucht die Tage mich mit dem Beckhoff Information System in die Materie einzulesen. Mir ist sind aber noch einige Dinge unklar und hoffe hier auf Hilfe oder Hilfe zur Selbsthilfe.

Mein Status ist derzeit:
Im System Manager (default im Config Mode) habe ich ein EtherCAT-Gerät hinzugefügt, die Netwerkkarte als Adapter ausgewählt, ... beim "Boxen Scannen" wurde auch der Buskoppler mit den Busklemmen richtig erkannt.
Im "Free-Run" kann ich auch die Ausgänge setzen und Eingänge lesen.

Unsichere Vermutung(en): (bitte bestätigen, verneinen und/oder ergängzen)
1. Würde man (ich) die PLC-Version benutzen, könnte man eine SPS-Funktionalität in den entsprechenden Sprachen (KOP, FUP, ...) erstellen, das Projekt im System Manager als Task einfügen, die Zuordnung der HW und des Prozessabbildes konfigurieren und dann das System starten. Fertig!?

2. Da ich die E/A-Lizenz benutzen soll (und in C# programmieren) muss ich ein VS ein Projekt erstellen und die ADS-DLL benutzen.

Folgendes baut auf 2. auf:
3. Ich generiere ein dynamisches "TcAdsClient" objekt, überprüfe dann ggf. ob alle meine erwarteten Busklemmen da sind, und kann dann direkt (bzw. über Handles) meine Eingänge auslesen und die Ausgänge beschreiben. Die nötige Softwarestruktur kann ich dann ja den Beispielen entnehmen.

4. Falls obiges halbwegs korrekt sein sollte, wie muss ich dann den System Manager konfigurieren bzgl. Zykluszeit, Systemzustand,...? Oder erledigt das dann alles meine Anwendungssoftware?


Ziel soll es (möglichst ohne weitere Kenntnisse des Monteurs, der die Maschine aufbaut) sein: TwinCAT installieren, Anwendungssoftware (Fuktionalitaet.exe) starten - läuft oder sagt ggf. was fehlt.

Das wars fürs Erste. Danke schon im Voraus für Kommentare und fürs Lesen dieses Romans ;-)
viele Grüße -MehrPower


Noch nebenbei: Ist es normal, dass bei meinem jetzigen Status, d.h. E/A-Konfiguration ist imho korrekt- sonst nix geändert- beim Umschalten des Systemmodus auf "Start" von Windows XP32 ein Bluescreen auftaucht???

Hallo MehrPower,

es ist schon immer interessant, was manch einer sich so vorstellt.

Vielleicht mal erst zu der TwinCAT Version:
TwinCAT E/A bzw. TwinCAT I/O dient im Prinzip genau dazu, was Du machen sollst.
Die I/O stellt Dir zyklisch ein Prozessabbild mit Ein- und Ausgangsdaten zur Verfügung, die über eine zyklissche I/O-Task aktualisiert werden.

Dein Problem fängt aber schon bei der Testhardware an. Ein Notebook eigent sich in den meisten Fällen nur noch fürs Einscannen und für vielmehr nicht. Das EtherCAT Bussystem ist sehr restriktiv was das Echzeitverhalten des EtherCAT Masters, also der Netzwerkkarte bzw. dem Quarz angeht.
Dein Bluescreen kann von einer falschen Netzwerkkarten- und somit EtherCAT-Master Konfiguration her stammen.

Was nutzt Du für eine Netzwerkkarte? Welcher Chipsatz ist verbaut? Ist dieser Chipsatz kompatibel mit den gelistetetn, durch den RT-Treiber unterstützen, Intel-Chipsätzen? Bitte prüfen.

Nun zu Deinen weiteren Fragen:
1) - 3) soweit korrekt.

4) Du legst unter System-Konfiguration-->Zusätzliche Tasks per Rechtsklick eine neue Taskt an und setzt die Option Auto-Start, damit die Triggerung der Task das Echtzeitsystem von TwinCAT und nicht C# machen muss (Dazu wäre sonst R3IO und bspw. C++ notwendig).
Bei den Zyklusticks kannst Du dann die gewünschte Zykluszeit, basierend auf der Basiszeit einstellen.
Bei Eingänge und Ausgänge legst Du per Rechtsklick jeweils eine Variable an und verknüpfst diese wiederrum per Rechtsklick mit der E/A Ebene, also den Klemmen.
Wenn Du unter 3) per Name auf die Variablen zugreifen möchtest, muss auf der Task (Task 1) noch die Option Symbole erzeugen aktiviert sein.

Ich hoffe, das hilft Dir erst einmal weiter....ansonsten Support von Beckhoff.

Gruß,
Marco
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Marco, besten Dank für die Erläuterungen! Hat mir schon ein rießiges Stück weiter geholfen.

Bzgl.
es ist schon immer interessant, was manch einer sich so vorstellt.
...geht mir genauso, diesmal eben von der anderen Seite ;-)

Das Bluescreen-Problem ist zumindest schonmal behoben. Mein Laptop hat einen AMD Prozessor und eine Realtek LAN-Karte - das sind ja beides nicht unbedingt die besten Voraussetzungen...
Daher verwende ich einerseits den "RT Intermediate Driver". Das ist zwar nicht optimal, sollte aber zum Entwickeln genügen?! Vor allem dahingehend, da ich nichts zeitkritisches bearbeiten muss.
Die Lösung ist die Variable HKEY_LOCAL_MACHINE\SOFTWARE\BECKHOFF\TWINCAT\SYSTEM KEY ‘DisableC1E’ in der Registry auf "0" zu setzen.
Quelle: http://www.pccontroltools.com/site/blogs/beckhoff/09-08-06/TwinCAT_Blue_Screen_64_Bit_AMD_Processor.aspx
Vielleicht weiss ja jemand dazu mehr? Laut der Quelle hat dieses ja keine negativen Auswirkungen?!

Morgen werd ich mich mal mit der neuen Task beschäftigen und ein Update geben.

Viele Grüße -MehrPower
 
Guten Morgen!

Sorry, auf die Sache mit dem C1E hätte ich noch hinweisen können.

Prinzipiell spielt es aber erst mal keine Rolle, ob AMD oder INTEL.
Die Echtzeitfähigkeit eines Systems hängt nicht allein von der CPU ab.

Der Intermediate Treiber hingegen ist zum Testen okay, für alles andere Schei***
 
Zurück
Oben