# Grundsätzliche Konfiguration TwinCAT



## olitheis (2 Juni 2008)

Hallo,
ich beschäftige mich zum 1. Mal mit der Konfiguration einer Beckhoff Steuerung und wollte mal hören, ob mir jemand mal "kurz " erklären kann, wie das Grundsätzlich von statten geht.
Die Hardware:
-Panel PC CP6221 mit Visu vorinstalliert
- 3 x Koppler BK1120
1. Welcher Teil von TwinCAT muss auf dem CP6221 installiert werden. 
2. Wie sieht die Konfiguration der Hardware aus (Anbindung der Koppler mit Analog u. Digital I/O's an's CP6221).
Wäre super, wenn mir jemand da etwas Licht in die Sache bringen könnte.
Vielen Dank
Oli


----------



## trinitaucher (3 Juni 2008)

olitheis schrieb:


> Hallo,
> -Panel PC CP6221 mit Visu vorinstalliert
> - 3 x Koppler BK1120


Bestimmt ist TwinCAT dann auch schon vorinstalliert. Wenn Windows CE, dann eine Runtime, d.h. du musst das Panel von einem externen Rechner aus programmieren. 
Dafür intallierst du auf dem Programmierrechner die 30 Tage Version von TwinCAT (kann zum Programmieren unbegrenzt genutzt werden) und stellst zunächst mal eine Netzwerkverbindung zwischen PC und Panel her.
Dann öffnest du den "System Manager" und suchst den Dialog "Zielsystem wählen", dann:
http://infosys.beckhoff.com/index.p...1/cx1000_sw/html/cx1000_cosetupfortwincat.htm
Dann kannst du ein kleines Programm basteln, mit "PLC Control". Dafür gibt ein Beispielprogramm:
http://infosys.beckhoff.com/index.p...31/tcquickstart/html/tcquickstart_sample1.htm
Nach dem kompilieren dann verfahren wie hier:
http://infosys.beckhoff.com/index.p...31/tcquickstart/html/tcquickstart_sample6.htm

(ist zwar für CX-Systeme geschrieben, aber vom Prinzip her bei allen Beckhoff PC-Steuerungen gleich)


----------



## olitheis (3 Juni 2008)

Hallo Trinitaucher,
danke für die super Links zum infosys.
Ich hbe da aber noch ein paar Fragen:
1. Ist es erstmal egal, mit welcher Netzwerkkarte des CP ich mich mit meinem Programmier PC verbinde? Es gibt dort eine 10/100 und eine 10/100/1000. Ich denke mal die schnelle wird nachher zur Com mit den EtherCAT Kopplern genutzt(?). Also verbinde ich mich mit der 10/100er. Muss ich hier einen bestimmten Adressbereich einhalten, oder ist das egal?
Bei mir hakt es gedanklich noch etwas bei der ganzen EtherCAT Kommunikation. Ich muss mich ja später auch online in die SPS "einklinken" können. geht das dann auch über die 2. NW-Karte oder hänge ich dann mit meinem PC im EtherCAT NW?
Vielen Dank nochmal
Oli


----------



## trinitaucher (3 Juni 2008)

Grundsätzlich arbeitet EtherCAT mit 100MBit/s, also kannst du die "langsame" dafür nutzen.
Die schnelle Karte ist besser für die Programmierung geeignet.

Du wählst im System-Manager eine Netzwerkkarte für EtherCAT aus. Normalerweise ist der TwinCAT Echtzeit-Treiber für die Karte schon installiert.
Probier mal das suchen der E/A-Geräte, wenn dort schon EtherCAT aufgelistet wird, ist alles ok. Ansonsten unter "E/A-Konfiguration" -> Rechtsklick: "Gerät anfügen" -> "EtherCAT". Dann kommt ein Dialog zur Auswahl der Netzwerkkarte. Hier die gewünschte Karte auswählen.
Tipp: Vergebe feste IP-Adressen und benenne die Karten in der WIndows-Konfig entsprechend um, damit du später im Auswahödialog auch die richtige Karte auswählst.

Dann ist eine Netzwerkkarte extra für EtherCAT reserviert und über die andere wird der PC konfiguriert.


----------



## olitheis (3 Juni 2008)

Hallo,
ich habe zu unserer Steuerung nun auch ein System Manager Projekt und ein PLC Projekt bekommen. Komplett für unserer Anwendung. In diesem Projekt sind jetzt alle Koppler usw. schon integriert. Ich habe die Koppler am CP hinternander an der entsprechenden NW-Karte angeschlossen (IN-OUT-IN usw...). Mein Programmier PC hängt an der anderen NW-Karte. So, wie kann ich den nun die Koppler so konfigurieren, wie sie im Projekt angelegt wurden (die Klemmen sind alle entsprechend gesteckt)? Bzw. wie bekomme ich den EtherCAT Bus zum Laufen? 
Nochmals recht herzlichen Dank
Oli


----------



## trinitaucher (3 Juni 2008)

Die Klemmen sollten natürlich schon gesteckt sein. Sofern du keine Spezialklemmen dran hast, die erst noch konfiguriert werden müssen, kannste die Konfiguration sofort starten.
Wenn du nicht sicher bist, ob die Reihenfolge der Klemmen so ist wie in der Konfiguration, die du bekommen hast, würde sich das Einscannen anbieten.
Steuerung in Konfig-Modus setzen und im System Manager => Rechtsklick auf E/A-Geräte => Geräte Suchen.
In neueren TwinCAT-Versionen wird dir sogar eine Gegenüberstellung von konfigurierten und tatsächlich vorhandenen E/As geliefert. So kann man ein bestehendes Projekt leicht anpassen.

Die E/As müssen dann verknüpft werden, dann die Konfiguration im System Manager "Aktivieren" und dann das PLC-Programm starten.
Wenn das PLC-Programm läuft, wird der EtherCAT automatisch gestartet, da der Bus Tasksynchron arbeitet.


----------



## olitheis (4 Juni 2008)

Vielen Dank trinitaucher für Deine tolle Hilfe:s1: ,
es hat jetzt alles soweit funktioniert, aber erst nachdem ich die IP der Netzwerkkarte meines PC auf 172.16.17.*101 *umgestellt hatte. Jetzt nocheinmal zu meinem Verständnis: Auf dem CP läuft ein TwinCAT Laufzeitsystem, welches die Soft SPS behinhaltet. Die Konfiguration und das SPS Programm werden dorthin übertragen und alles läuft von dort aus(?).
Ich bin vielleicht etwas zu sehr Siemens geschädigt... und deshalb habe ich irgendwie einen Knoten im Kopf . 
Nochmals vielen Dank
Oli


----------



## trinitaucher (4 Juni 2008)

olitheis schrieb:


> ...zu meinem Verständnis: Auf dem CP läuft ein TwinCAT Laufzeitsystem, welches die Soft SPS behinhaltet. Die Konfiguration und das SPS Programm werden dorthin übertragen und alles läuft von dort aus(?)


kurz: Ja
Ist wie ne herkömmliche SPS, nur dass der PC nen bisschen mehr kann. Wenn der PC von nem anderen PC aus programmiert wird, sind SPS und PC-Steuerung ja nicht soweit voneinander entfernt.

Zu der Netzwerkproblematik ein Tipp: vergib am besten feste IP-Adressen mit völlig untersciedlichen Adressbereichen,um konflkte zu vermeiden, also für die Programierschnittstelle z.B. deine 172.16.17.101 und für die EtherCAT-Schnittstelle z.B. 192.168.0.1.


----------



## drfunfrock (4 Juni 2008)

Man benötigt kein TCP/IP an der Ethercat-Netzwerkkarte. Ich habe es schlichtweg abgeschaltet und dann hat man auch keine Sorgen mit der TCP/IP-Adresse


----------



## drfunfrock (4 Juni 2008)

olitheis schrieb:


> Vielen Dank trinitaucher für Deine tolle Hilfe:s1: ,
> es hat jetzt alles soweit funktioniert, aber erst nachdem ich die IP der Netzwerkkarte meines PC auf 172.16.17.*101 *umgestellt hatte. Jetzt nocheinmal zu meinem Verständnis: Auf dem CP läuft ein TwinCAT Laufzeitsystem, welches die Soft SPS behinhaltet. Die Konfiguration und das SPS Programm werden dorthin übertragen und alles läuft von dort aus(?).
> Ich bin vielleicht etwas zu sehr Siemens geschädigt... und deshalb habe ich irgendwie einen Knoten im Kopf .
> Nochmals vielen Dank
> Oli



Ja, auf dem PC mit dem TwinCat-Runtime, der als SPS arbeiten soll, läuft wenn du alles richtig machst dein Programm. Da du zum Programmieren auf deinem Arbeitsplatz-PC ebenfalls Twincat (Demo-Version) installiert hast, musst du dort nur noch das Zielsystem angeben und zwar im System-Manager und in "PLC Control". Dazu muss aber das Routing zu deinem Arbeits-PC stehen.

Die Demo-Version des Runtime-Moduls läuft übrigens 30 Tage, dh. man kann mit dem Arbeitsplatz-PC alles probieren. Bei jedem Update auf eine neue Version - dh. Neuinstallation - geht die Frist von vorn los.


----------



## olitheis (4 Juni 2008)

Danke euch allen!
Ich habe mir heute einen Testaufbau mit einem BK9000 aufgebaut. Nach etwas (aus-) probieren habe ich den Koppler mit einem kleinen Testprogramm zum laufen gebracht.
Allerdings: Etwas scheint mit der Ethernetverbindung nicht in ordnung zu sein (oder mit der Konfiguration?) Die Kommunikation scheint immer wieder abzubrechen.
LINK LED - immer an
ACT - flackert
ERROR - aus
WDG - flackert
I/O run - flachert schwach(?)
I/O error - aus
Kann es mit einer nicht kompartiblen NW-Karte zusammenhängen?

Dann habe ich noch eine Frage zur Variablendeklaration. Wie wird die einfachsterweise vorgenommen for PLC und System Manager?

Vielen Dank
Oli


----------



## trinitaucher (4 Juni 2008)

Zuvor hast du von nem BK1120 geschrieben (EtherCAT), jetzt nen BK9000 (Ethernet)... Hoffentlich verwechselst du hier was nicht.

Ethernet =|= EtherCAT

Wenn "Watchdog" flackert, kann's daran liegen, dass das SPS-Programm die I/Os nicht triggert, oder dass die Netzwerkverbindung nicht zustande kommt.

Variablendeklaration:
Inner PLC natürlich. Die I/Os am besten mit %Q* oder %I* deklarieren, dann vermeidest du Adressüberschneidungen.


----------



## olitheis (5 Juni 2008)

Sorry, hätte ich vielleicht etwas besser formulieren sollen.
Der Originalaufbau ist mit 3 EtherCAT Kopplern, und das läuft nun auch soweit.

Mit dem BK9000 habe ich mir nur einen Testaufbau zusammengestellt, um mich mit der Programmierung, Konfiguration besser vertraut zu machen, also mit TwinCAT allgemein (Benchtest ohne CP). 

Bei den Variablen ist es also dann so, dass ich die in PLC einzeln anlegen muss in der Variablendeklaration, und später dann einzeln mit der Hardware im SystemManager verknüpfen muss?

Danke
Oli


----------



## trinitaucher (5 Juni 2008)

In PLC Control anlegen und im System Manager verknüpfen, korrekt.
Du kannst auch "Mehrfachverknüpfungen" machen, also z.B. ein Byte auf 8 digitale Signale legen.


----------



## MarkusP (6 Juni 2008)

Hallo,

ich würde die Variablen nicht so deklarieren. (komme von der SCHNEIDER-Welt, und hab's halt dann auch ursprünglich so gemacht)
Man kann die Variablen mit %I* bzw. %Q* deklarieren, du brauchst keine Adressen anzugeben! Weiters kann man Variablen auch im PLC-Control in der Variablenliste deklarieren. So machts dann meistens jeder "typischer"  SPS-Programmierer. Die Stärke von TwinCAT liegt aber genau hier. Ich für meinen Teil, deklariere bei einem Projekt mit 100en Hardware I/O's max. 5 Variablen im PLC-Control, den Rest von 99% mache ich so:
Für alles das ich öfter als zwei mal in einem Programm brauche, mache ich mir einen FB mit %I* bzw. %Q*. Bei deinem Beispiel wäre dies

POWER_OK AT %I* : BOOL; 
DRIVES_OK AT %I*:  BOOL;
INIT AT %Q*: BOOL;

Wenn ich nun eine Instanz des FB's anlege (z.B. fbEinheit1) generiert TwinCAT automatisch die E/A-Variablen fbEinheit1.POWER_OK, fbEinheit1.DRIVES_OK sowie fbEinheit1.INIT, die dann lediglich im SYSTEM-Manager bei Bedarf belegt werden. Die E/A's müssen dem Baustein nicht mehr explizit zugewiesen werden! Wenn Du nun 100 solcher Einheiten hättest, wäre dies nur mehr ein Dreizeiler (kpl. mit Code)

for i:=1 to  100 do
 fbEinheit(i);
end_for;

Dabei wird der gesamte Code für alle 100 Einheiten (Motoren, Schieber etc.) bearbeitet.  Die Variablendeklaration für deine 300 E/A's ist nur mehr ein Array von 100 deines Bausteins. Und das macht's dann voll mächtig. So baue ich mir universelle Bausteine, nicht benötigte (verknüpfte) Hardware wird direkt am Bausteineingang mit TRUE oder FALSE beschaltet. (je nach Code im Baustein) Es muss nicht jeder deklarierte I/O auch wirklich im Systemmanager verknüpft werden.

Ich programmiere seit ca. 20 Jahren die verschiedensten SPS-Systeme. Man kann nun TwinCAT wie gewohnt weiterprogrammieren, oder schmeisst vieles über Bord und nützt die vielen neuen Möglichkeiten. Der Traum vom hardwareunabhängigen Programmieren ist für mich mit TwinCAT wahrgeworden. Ich schreibe meine Programme fix fertig, da gibt es noch nicht einmal einen Schaltplan geschweige eine I/O-Liste der Hardware. Ich verknüpfe die Hardware nicht einmal selber....

Entschuldige, ich schweife total ab, aber ich bin vom System nunmal so begeistert.

Schönes WE


----------



## olitheis (8 Juni 2008)

Hallo Markus,
danke für die ausführliche Erklärung. Ich werde mich ab Mittwoch ans Testen geben. Ich muss erst mal in des Systen reinfinden, wie man wahrscheinlich an meinen Fragen feststellen kann.

Hast Du evtl. noch eine Idee, was das Problem mit der Kommunikation sein könnte?

Und dann noch eine Frage: hat jemand von euch schonmal ein TwinCAT System an InTouch angebunden (Konfiguration der Server)?

Vielen Dank und noch einen schönen (Fussball-) Sonntag!!!
Oli


----------



## drfunfrock (9 Juni 2008)

MarkusP schrieb:


> Hallo,
> 
> ich würde die Variablen nicht so deklarieren. (komme von der SCHNEIDER-Welt, und hab's halt dann auch ursprünglich so gemacht)
> Man kann die Variablen mit %I* bzw. %Q* deklarieren, du brauchst keine
> ...




Bitte, wo steht das in der Doku? Ich mein, die schon dreimal gelesen zu haben und habe das recht und schlecht überlesen. Ist ein wirklich geniales Feature.


----------

