# Codesys, Nanotec und Ethercat



## Techrotek (12 Mai 2015)

Hallo Leute,

ich brauche mal euren Rat bzw. Hilfe. Der generelle Aufbau ist: 
Die Codesys-Runtime läuft auf einen Raspberry Pi 2 und soll über Ethercat die Schrittmotosteuerung Nanotec N5 ansteuern. Der Schrittmotor soll mittels inkremetalen Encoder im Closed-Loop betrieben werden.

Als ersten Schritt sollte das Referenzieren auf den Refernzschalter erfolgen. Dazu wollte ich den Baustein _SMC_Homing_ benutzen, die Refernzfahrt wird jedoch nicht nach dem Start geht automatisch ausgeführt. Der Kanal _Modes of operation_ bekommt auch automatisch eine 8 zugewiesen, dieses entspricht dem _Cyclic sync position mode_. Wenn ich in den Kanal eine 6 (Homing) per Hand einstelle (forcen über Codesys bzw. über das Webinterface der Schrittmotorsteuerung) stellt er den Wert nicht um, er bleibt bei der 8. Den Kanal _Modes of operation_ kann man lesen und schreiben und kann er per PDO gemappet werden. 

Ich hoffe ihr könnt mir irgendwie helfen. Wenn ihr noch mehr Information braucht, sagt Bescheid.

Lg Techrotek

Update: Ich habe das jetzt mal getestet ohne den Motor an den Feldbus in Codesys einzupflegen. Dann kann ich den Kanal _Modes of operation umstellen_ auch auf 6 forcen. Wird der Motor wieder eingebunden wird, lässt sich der Kanal nicht mehr ändern.


----------



## HausSPSler (12 Mai 2015)

Hallo Techrotek,
da gibt es mehrere Möglichkeiten, abhängig von dem was der Nantoec N5 so alles kann (was er an DS402 so unterstützt meine ich)
Aufgrund der Tatsache das der Raspberry Pi keine Echtzeit hat ist die SoftMotion nur eingeschränkt benutzbar. (Für Schrittmotoren oder Poscontrol geht das schon  mit dem PI)
Für die SoftMotion ist in der Regel ein aktiviertes Distributed Clocks auf dem Ethercat Slave erforderlich. Daher schlage ich vor du machst einen Versuch mit SoftMotion Light.

Dazu gehst du auf den Slave machst einen rechtsclick und fügst einen "SoftMoitonLight DS402 Axis" Knoten hinzu. (siehe screenshot) verwenden musst du dann die SML PLCopen Bausteine aus der SoftMotion Light Bibliothek.
Am besten du machst gleich den Versuch mit diesem Projekt das über das Setup mit installiert wird:
"c:\Program Files (x86)\3S CODESYS\CODESYS\Projects\SoftMotion\SoftMotionLight\SML_CompatibilityCheck_DS402.project"
oder alternativ mein angehängtes CODESYS Projektarchiv in dem Zip verwenden hier ist alles schon auf Pi und deinen Nanotec angepasst.

Also 

1. Auf die SPS clicken und die mit Gerät aktualisieren auf eine Raspberry Pi SPS ändern
2. dann den Accelnet Slave unterhalb des Ethercat Masters raus löschen und hier deinen Nanotec einfügen
3. rechtsclick auf den Nanotec Slave und die SoftMoitonLight DS402 Axis anhängen (den neuen Knoten dann umbenennen zu 'Drive')
4. Download und mit diesem Project deinen Antrieb testen du kannst die zweite Visu Seite dazu verwenden über den PLCopen fb's deinen Antrieb zu verfahren (nachdem der halb automatische Kompabilitätscheck erfolgreich durchgeführt wurde)

->Mit diesem Projekt kannst du prüfen ob der Antrieb für SoftMotion light geeignet ist.


Grüße


----------



## Techrotek (13 Mai 2015)

Hallo HausSPSler,

vielen dank für deine Hilfe , ich habe mir mal dein Programm runtergeladen und getestet. Mit dem _SoftMoitonLight DS402 Axis _kann man die verschiedene Moden benutzen, dass war wirklich ein super Hinweis. Der Kompabilitätscheck verlief auch positiv. Ich bekomme jetzt die 1000 beim ErrorID _MS_Home_SML _Baustein angezeigt, aber damit kann ich schon mehr arbeiten als zuvor. Dann verusche ich jetzt mal denn Schrittmotor zum laufen zu bekommen. Ich wollt mit dem Raspberry Pi, zwei Schrittmotoren ansteuern und für meine Anwendung reicht der Poscontrol aus.

Könntest du mir kurz sagen, auf was ich beachten bzw. was ich noch einbinden muss, wenn ich ein neues Projekt möchte, weil ich habe den Pi eingebunden, Nanoteg eingepflegt und den Softmotion Light Knoten ausgewählt und auf Drive unbenannt. Danach möchte ich einfach mit _MC_Power() _den Motor starten und habe für_ AxisriveF_eingetragen. Die Fehlermeldung lautet "Typ 'SML_Drive_ETC.Axis_REF_ETC_DSP402_SML' entspricht nicht dem Typ 'Axis_REF_SM3' von VAR_IN-OUT" und das hatte ich bei dem anderen Knoten nicht gehabt. Ich hab mir dein Beispiel angeschaut, aber ich habe jetzt nichts markantes gefunden.

Lieben Gruß


----------



## HausSPSler (13 Mai 2015)

Hi,
also Error 1000 heiß keine Lizenz für SoftMotionLight, das ist tatsächlich momentan so. Sieht man auch im SPS Logger. 
Aktuell kannst du 30min mit den Achsen alles tun bevor die 1000 kommt. Dazu gibt es eine Lizenz im Store.
Dann noch ein Mini Projekt und ein Scrennshot dann wird's deutlicher wie es geht mir den z.B MC_Power_SML fb's.

Grüße


----------



## Techrotek (14 Mai 2015)

Hi,
ich habe mir die SML_ERROR (ENUM) aus der Hilfe raus genommen und ich habe gedacht die 10000 wäre _SML_TIMEOUT_CHANGING_OPMODE, _aber wenn das an der Lizenz liegt, verstehe ich warum der Fehler kommt. Ja bevor ich die Lizenz im Store kaufen wollte, wollt ich erstmal ein paar Test Programme durchführen. Vielen dank für deine Hilfe, mit deinem Programm habe ich jetzt meinen Fehler erkannt. Ich habe einen falschen Baustein benutzt.

Lieben Gruß


----------



## Techrotek (18 Mai 2015)

Hallo HausSPSler,

ich hab noch eine Frage zu der Lizenz und zwar reicht es aus, wenn ich die Raspberry Pi Lizenz kaufe um die SoftMoitonLight komplett zu benutzen, oder brauch ich beide Lizenzen (Raspberry Pi und SoftMoitonLight ), damit die beide komplett laufen?

Lieben Gruß


----------



## HausSPSler (18 Mai 2015)

Hallo,
du musst beides kaufen, SML ist auch wenn du Control Win oder Control RTE verwenden würdest ein extra zu lizensierendes Produkt.

Grüße


----------



## juki01 (3 März 2020)

Xxxxxxxxxxxxxxxxxxxxxxx


----------

