# Wago Stepper 750-672 in Codesys 3.5 an Ethercat Feldbusskoppler I/O Problem



## Kunole (17 April 2021)

*Wago Stepper 750-672 in Codesys 3.5 an Ethercat Feldbusskoppler I/O Problem : Gelöst*

Hallo,

Ich möchte einen Steppercontroller 750-672 von Wago an einem Wago Ethercat-Koppler 750-354 zum laufen bekommen.
Leider ist das Gebiet noch Neuland für mich da ich in den Automatisierungszweig wechseln möchte und nach einem Fernstudium mich Zuhause mit dem ganzen weiter beschäftige.

Derzeitig habe ich mehrere Geräte am Ethercat-Koppler die ich auch ansteuern kann, nur mit dem Steppercontroller habe ich so meine Probleme.
Die Bibiliotheken von Wago für Codesys 3.5 habe ich schon geladen und auch die entsprechenden Bibiliotheken für den WagoStepper habe ich hinzugefügt.







Ich weis einfach nicht wie ich meine Variable "meinstepper" von Datentyp WagoTypesModule_75x_67x.I_Module_75x_67x auf die Ea's von meinen Stepper bekomme.

Wenn ich den Gerätenamen "stepper_device_01" als I_port angebe bekomme ich einen Fehler weil, von Codesys dem Gerät schon ein Datentyp zugewiesen wird.
Ich habe schon länger das Internet durchforstet aber das meiste was ich finde ist zu Codesys 2.3 mit der alten .Lib Bibiliothek, es half mir an der stelle nicht weiter bzw. habe Ich extra mir Codesys 2.3 von Wago installiert um mir die Example Dateien vom Stepper schauen zu können.

Für etwas unterstüzung wäre ich sehr Dankbar

Update:

Ok, Ich habe nun nach längerer Zeit nochmal die Bibiliotheken durchforstet und habe eine Pdf von Wago gefunden in der mir der Hinweis gegeben wurde - Falls man ein Modul über einen Feldbus betreibt.

In der Bibiliothek WagoSysFieldbusModule gibt es für viele Sondermodule entsprechende Fb's

Für mich war FbModule_75x_672 wichtig. 
Dort kann man für ein PA vom Eingang und ein PA vom Ausgang angeben, bzw. kann mit GetNewPaOutput und SetNewPaInput jeweils einen Pointer angeben. Dazu kann ich die PA Größe angeben.
Der Controller hat 12 Bytes Input und 12 Bytes Output also jeweils 12.

Also eine Instanz von dem Fb deklariert:


```
feldstepper :FbModule_75x_672;
```

Dannach habe ich eine Variable deklariert die ein Array ist, das in meinen Fall 12 einträge hat und ab einer bestimmten Adresse beginnt.


```
SteppercontrollerIn AT %IB10 : ARRAY[0..11] OF BYTE; // %IB10 die Startadresse vom Input.
StepeprcontrollerOut AT %QB7 : ARRAY[0..11] OF BYTE; // %QB7 die Startadresse vom Output.
```

Als nächstes weisen wir das Array zu.
Da ein Pointer erwartet wird, können wir nicht einfach die Variable angeben, sondern müssen mit einer Zusatzfunktion auf die Adresse der Variable verweisen.


```
feldstepp.SetNewPaInputs(pInputData := ADR(SteppercontrollerIn),12);
feldstepp.GetNewPaOutputs(pOutputData := ADR(StepeprcontrollerOut),12);
```

Somit werden nun die PA's an den Controller übergeben.
Falls Ich etwas nicht richtig geschrieben habe, korrigiert mich.


----------

