TwinCAT 3 mit SPS verbinden

Montreal

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

ich beschäftige mich aktuell das erste Mal TwinCAT3. Mein Ziel: Ich würde gerne eine LED ansteuern und einen Taster auslesen.
Als Hardware habe ich dazu einen Programmier-PC zur Verfügung (mit TwinCAT 3 in Visual Studio 2013 Professional integriert) und als SPS einen Beckhoff CX9020, mit EL1904 und und EL2904 Klemmen.
Zum Anfang habe das C/C++-Schnellstartprojekt vom Beckhoff Information System für TwinCAT 3 befolgt: http://infosys.beckhoff.com/index.php?content=../content/1031/cx8090/html/cx8000_firststeps.htm&id= Als Zielsystem habe ich den CX9020 gewählt, welchen ich vorher über den System-Knoten hinzugefügt habe. Wenn ich das Programm dann ausführe erhalte ich folgende Warnung: "Active Project platform 'TwinCAT RT(x64)' differs from current target platform 'TwinCAT CE6 (arm)'! Continue anyway (not recommended)"
Ich verstehe aber nicht wo das Problem liegt. Kann mir jemand erklären, was ich dagegen machen kann?

Zum zweiten würde ich den CX9020 eigentlich gerne an ein Netzwerk über einen Switch anschließen, an dem mein Programmier-PC ebenfalls hängt. Ich finde den CX9020 unter dem System-Knoten aber nur, wenn ich den CX9020 per Ethernet direkt an meinen Programmier-PC anschließe. Weiß jemand, ob das über einen Switch möglich ist und wenn ja, wie?

Zum dritten habe ich nichts gefunden, wie ich die einzelnen I/Os ansteuern kann. Ich muss dafür ja zuerst die Geräte anlegen, aber es werden dann nie angeschlossene Geräte gefunden. Ich bin mir da aber auch nicht sicher, welche Geräte ich zu meiner Hardware anlegen muss. Wie muss ich da vorgehen?
Wie geht es dann weiter, wenn ich die I/Os mit den Variablen verknüpfen möchte?

Ich danke euch schonmal im Voraus! Ohne ein paar Hilfestellungen komme ich aktuell kein Stück weiter...

Viele Grüße
Montreal
 
Morgen,

die Target Platform sollte auf ARM stehen. Der CX9020 hat eine ARM CPU, wenn für x64 kompeliert wurde kann das auf dem Gerät nicht funktionieren.
--> Einfach umstellen, neu übersetzten, sollte gehen.

Sollte mit Switch Problemlos funktionieren. Kann man das Gerät Pingen?

Im Konfig-Mode, kann man die Geräte scannen. Funktioniert das schon nicht?

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen Hack,

vielen Dank für deine Antwort, ich werde die Zielplattform morgen mal umstellen. Leider werde ich erst dann wieder Zugriff auf die Hardware haben.
Zum Switch: Ja, wenn alles am Switch ist, kann ich das Gerät problemlos pingen.
Zum Scannen: Ich bin mir zu 90% sicher, dass ich das auch ausprobiert habe, ich werde das aber auch am Mittwoch nochmal ausprobieren.
Dann melde ich mich wieder!

Viele Grüße
 
Das Scannen hat jetzt geklappt. Ich hatte doch tatsächlich vergessen TwinCAT in den Konfig-Modus zu versetzen :oops: Auch die Fehlermeldung zur Zielplattform habe ich abgestellt bekommen. Bei so doofen Fehlern merke ich das TwinCAT mir noch fremd ist.
Was ich aber immer noch nicht verstanden habe, ist wie ich auf die In- und Outputs der Klemmen zugreifen kann? Wie kann ich einen Wert lesen oder einen Output setzen? Es wäre nett, wenn mir da noch jemand helfen könnte.
Vielen Dank auf jeden Fall aber schonmal bis hierhin.
 
Wenn du im Programm eine Variable als Ein/Ausgang deklarierst, Bsp.:
bIn AT %I*: BOOL;
bOut AT %Q*: BOOL;
kannst du nach dem übersetzten unter Instance eine Verknüpfung ändern.

Anschliessend Konfiguration aktivieren und in den Run-Modus schalten.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du im Programm eine Variable als Ein/Ausgang deklarierst, Bsp.:
bIn AT %I*: BOOL;
bOut AT %Q*: BOOL;
kannst du nach dem übersetzten unter Instance eine Verknüpfung ändern.

Anschliessend Konfiguration aktivieren und in den Run-Modus schalten.

Grüße

Das geht aber nur im SPS-Projekt, oder? Ich würde das eigentlich lieber mit C++ programmieren, da das näher an den Sprachen ist, die ich bereits kann und ich dazu auch generell mehr Infos im Netz finde.
 
Ok, wie die Zuordung der Variablen zu den In-/Outputs in C++ funktioniert habe ich herausgefunden. Für die, die später nocheinmal vor dem gleichen Problem stehen sollten: 1.Im Projekt den <Classname>.tmc-File öffnen. Dort unter Data Areas/Inputs Outputs Variablen anlegen. 2.Rechtsklick auf das C++-Projekt und "TwinCAT TMC Code Generator" auswählen. 3. Dann lässt sich die Variable im Code verwenden, indem man "m_Outputs.<Variablenname>" eingibt (oder "m_Inputs" für Eingänge und 4. Zuordung bei der Modulinstanz festlegen, indem man die Variable auswählt.

Dafür kommt jetzt wieder die Fehlermeldung zur Zielplattform :( Was habe ich falsch gemacht? (Die Zielplattform habe ich zwischendurch nicht verändert)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Im Kofigurationsmanager für die Zielplattform steht bei dem C++-Projekt "TwinCAT RT(x64)" Ein ARM-Prozessor ist hier aber leider nicht auswählbar. Zur Auswahl stehen nur noch "RT(x86)", "UM (x64)" und "UM(x86)".
Bei dem SPS-Projekt steht wie gewollt "CE 7(ArmV7)"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ausserdem brauchst du eine entsprechende TC3 Lizenz für C++ Module. Ob da die TC1210 TC3 PLC/C++ die passende ist, kann ich dir nicht sagen. Da muss du evtl. bei eurem Aussendienstler oder beim Support nachfragen.
 
Zurück
Oben