# Elau alle Infos zu mir!



## Oede_Bloede (11 Februar 2008)

Abend!

Ich soll im Rahmen meiner Techniker Arbeit einige Servomotoren der Firma Elau ansteuern, hab so was in der Art aber leider leider noch nie gemacht!

grobe Hardware:

Siemens MP-377 12"
Siemens S7 CPU 315 2dp
Digital In/Out
Analog In/Out
Pacdrive C600 Motion Control 
Motorcontroller MC-4

Da ich ein abloluter Neuling auf diesen Gebiet bin wäre ich sehr verbunden wenn ich alle Infos zu Servomotoren, Leitachse, Nockenschaltern, Positionsfahrten, Kurvenfahrten usw. von euch bekommen würde. Es muß nicht umbedingt auf Elau bezogen sein Hauptsache ich kann mir erst mal Infos raußziehen!! Und werde mit dem Thema Servomotoren etwas vertrauter.

Da mir ein fertiges (sehr sehr großes) Programm vorliegt kann ich vieleicht eure Anregungen nachvollziehen.

Ich bin jetzt seid einigen Tagen im Internet unterwegs um halbwegs gescheite PDF Dateien zu Servomotoren zu finden. Anscheinend ist da aber nicht viel gescheites zu holen.

Ich habe mich auch schon auf der Seite von Elau angemeldet, dauert aber noch ein wenig bis ich freigeschaltet werde! Und mir läuft halt die Zeit davon.

Also ich würde mich über alles zu dem Thema freuen und hoffe auf eure Hilfe.

MFG
Oede_Bloede


----------



## Oede_Bloede (11 Februar 2008)

*Hatte ich vergessen!*

Abend!

Das ePas Programm steht! Es geht rein um die Ansteuerung auf der SPS Seite!!

MFG
Oede_Bloede


----------



## Thomas Voegl (11 Februar 2008)

Hallo!

Bei Deiner Frage komme ich nicht ganz mit, denn wenn das EPAS Programm schon steht, dann mußt Du ja nur noch die gewissen Signale von der S7 zum C600 schicken, damit die Servos sich bewegen. Wie diese Signale aussehen kann ich Dir hier nicht sagen, obwohl ich seit Jahren ELAU programmiere, da es sich auf das Programm, welches Dir für den C600 vorliegt ankommt.

Warum habt Ihr eigentlich zum C600 noch eine S7 ?? Der C600 ist ja schon eine SPS und meines Wissens wesentlich leistungsstärker als die S7


Gruß

Thomas


----------



## Oede_Bloede (11 Februar 2008)

*Kein Plan!*

Abend nochmal!

Du das kann ich dir nicht genau sagen! Ich frage morgen aber sofort nach und werde dir schreiben. Ich kann dir auf jeden Fall mit Sicherheit sagen das ich (für mich tausende) PEW`s bekomme und PAW`s zurück schicke.

zB.: Struktur Word 10:

Byte 10
7 Tippen +
6 Tippen -
5 Aktion Start
4 Position 4
3 Position 3
2 Position 2
1 Position 1
0 Position 0

Byte 11
7 Kurve 1
6 Kurve 2
5 Kurve 3
4 Referenz
3 Freigabe Synchron
2 Freigabe Antriebe
 1 Freigabe Einrichtposition
0 Freigabe Tippen

Den Aufbau hab ich aus dem Programm entnommen!

Es geht aber um die eigentliche Funktion oder Aufbau, wie kann ich die Leitachse verstehen. Wie und wann fahren dann die Servos los? Was sind virtuelle Nockenschalter?

Ich will erst mal die Grundfunktion geklärt haben, ich kann mich da nicht so rein denken. Hab halt überhaupt kein Grundwissen.

MFG
Oede_Bloede



​


----------



## Thomas Voegl (11 Februar 2008)

Normalerweise ist eine virtuelle Leitachse eine Rundachse mit 360°. An diese Leitachse werden Slaves gekoppelt. Bei ELau bedient man sich hier mit dem FB MultiCAM. Man kann sich das ganze als elektronische Königswelle vorstellen, bei dem ein Motor die Welle antreibt und die anderen Funktionen über Scheiben deren Bewegung machen. Bei Elau sind eben diese Kurvenscheiben sogenannte CAM-Profile.

Ich denke die virtuellen Nockenschalter sind bei Dir eben Positionen der Leitachse, bei der Ventile ein- bzw ausgeschaltet werden.

Wenn ich mir die Bytes so ansehe macht Ihr wirklich alles auf der S7 und gebt über Bits vor welche Kurve bzw. Position und Funktion angesteuert wird. 
Gruß

Thomas


----------



## Oede_Bloede (12 Februar 2008)

*Elau*

Morgen!

Also es ist auf jeden Fall so das wir alles von der S7 aus ansteuern!

Gibt es vieleicht eine gute Allgemeine Erklärung zu dem Thema Servomotoren??

Das mit der Leitachse habe ich auch schon so vermutet. Wenn ich also die Leitachse schneller drehe wird die ganze Maschine schneller?! Die Servos werden halt nur zu gestimmten Gradzahlen eingekoppelt?! 
Wenn ich die Anforderung von meinen Programm losschicke (PAW mit der Freigabe für Kurve 3 Servo 4 zB.) wie und wann fährt der Motor dann los? Zu dem in der C600 festgelegten Gradzahl oder sofort und so lange wie das PAW mit dem richtigen Bitmuster anliegt?

Verstehe das nicht ganz ist in der C600 ein ganzer Maschinenzyklus? Der nur Freigaben und Vorgaben benötigt?

Die Nockenschalter steuern auch Ventile genau wie du es gesagt hast! Wie wird das normalerweise gemacht?? Wird die Position der Leitachse abgefragt und in Bereiche eingeteilt?? Wenn dann diese Bereiche "aktiv" sind wird das Ventil angesteuert?

MFG
Oede_Bloede


----------



## Thomas Voegl (12 Februar 2008)

Wenn Du bei Elau angemeldet bist, dann kannst Du zu den einzelnen Movebefehlen die Anleitung runter laden, oder im EPAS in den Bibliotheken danach forschen. Allgemein gibt es da nichts, da Elau die Befehle VarioPos etc nennt und andere Hersteller z.b. MAM; MAPC etc.

Das Nockenschaltwerk kann entweder mit Switchcam in der Software oder mit der Cam-Verwaltung in der Steuerungskonfig definiert werden.

Die Achsen der Camfunktion fahren je nachdem wie Du Deine CAm-Kurven in der Datenbank für den Multicam hinterlegt hast, da mußt Du ins EPAS-Programm schauen, auch wie der Slave konfiguriert ist mußt Du dort nachsehen. Je nach Modi synchronisiert der Slave gleich auf, oder wartet eben auf diverse Zustände

Gruß

Thomas


----------



## Oede_Bloede (12 Februar 2008)

*Nockenschalter!*

Abend!

Thomas erstmal danke ich dir das du mir so schnell hilfst! TOP

Also die Leitachse habe ich (vieleicht) verstanden! Außer vieleicht woher weiß ich wann ich Motoren einkoppel? Kann ich die Leitachse abfragen oder mache ich das sogar?

Das mit den Nockenschaltern wird mir aber immer noch nicht klar, gebe ich die Winkel vor von wann an Ventile geschaltet werden??

MFG
Oede_Bloede

Kannst du die Erklärung vieleicht auf was greifbaren umsetzen wie zB. das mit der Königswelle??


----------



## Thomas Voegl (13 Februar 2008)

Beim Multicam kannst Du entweder die Kurve in einem bestimmten Moment (meist der Nulldurchgang der Leitachse) zuschalten, oder die ist eben fix drauf. Was für Bewegungen Deine Achsen machen, siehst Du im jeweiligen Cam-Profil. Dies ist alles allerdings applikationsabhängig.

Auch das Nockenschaltwerk ist applikationsabhängig. Man kann die Ventile über die Winkel der Leitachse, aber auch über diverse Slavepositionen schalten. Kommt sich auf die Anwendung darauf an.

Kann Dir eigentlich in Deiner Firma niemand das ELau-Programm ungefähr erklären ?

Gruß

Thomas


----------



## 3Scode (13 Februar 2008)

*Elau*

Hallo oede,

  Die Kombination Master (Endlessfeed3) und Slave (Multicam5) ist wichtig.
  Als erstes die Achsen (MC-4) und jeweils einen logischen Geber (Log_Geber)in der Steuerungskonfiguration von EPAS deklariere.
  (z.b. MC_Slave und Enc_Slave , MC_Master und Enc_Master)
  In der Programmierumgebung : 
    Für den Master (Leitachse virtuel) gibt es in Pacdrive.lib den Baustein Endlessfeed3  :
*Enable*:                        BOOL;
  Axis:                            MC_4;  (virtuel ist eine Sercosadress ab 100 z.b. Master)            
  VEL:                            REAL;  (z.b. 100 °/sec)                                 
  ACC:                           REAL;            (z.b. 10 °/sec2)                            
  DEC:                           REAL; (z.b. 10 °/sec2)                                       
  Smooth:                       REAL;            (z.b. 100%)                                 
  EmergencyDEC:            REAL;                                                  
  Periode:                       LREAL;           (360 °)                                        
  StopPosition:               LREAL;           (0 °)                                 
*Start:*                          BOOL;                      

  Den Slave (Folgeachse ) gibt es in Pacdrive.lib den Baustein Multicam5  :

Enable:             BOOL;
  Axis:                 MC_4;  (z.b. Adresse = 1 ersteAchse)                      

    EncoderId:         DINT;            (soll der Positionsgeber sein Log_Geber)     
Start:                BOOL;                                                            
   WSSelect:         BOOL;                                                            
  CSModeAxis:       DINT:= 0; (kaltstart keine Bewegung )                          
  CSModeMaster:   DINT:= 0; (kaltstart keine Bewegung             

WSMode:           DINT:= 10; (warmstart nach einem Quickstop )                
  WSWindow:        LREAL:= 90;(warmstart nach einem Quickstop )                
      EmergencyDEC:   REAL:= 10000;                                                                               

  MultiCamData:            MultiCamStruct; (Die Kurve die gefahren werden soll muss                                                          vorher deklariert werden)
erst muss die Masterachse gekuppelt werden :
   SetMasterEncoder(LogGebId := Enc_Master.logAdr, MasterAdr:=* 0*) ( Masterachse erhält die Position vom eigenen Geber) 
  Danach brauchst du nur die Salve mit dem Master zu kuppeln mit der Funktion aus der Max-Bib:  SetMasterEncoder(LogGebId := Enc_Slave.logAdr, MasterId:=* MC_Master.logAdr*)

              Denn die x-Position des Master wird dem Geber des Slaves übergeben und dieser die Position y anhand deines Fahrprofil(in MultiCamData) berechnet.        

  (Beispiel eines einfachen Fahrprofil über 2 Punkte einfach nur drehen)

              AxData : MultiCamStruct;

  AxData.Cam.MotionPar.NumberOfCamPoints                      := 2;                 
AxData.Cam.MotionPar.CamPoint[0].X                                := 0.0;
              AxData.Cam.MotionPar.CamPoint[0].Y                                := 0.0;
              AxData.Cam.MotionPar.CamPoint[0].m                                := 1.0;
              AxData.Cam.MotionPar.CamPoint[0].CamType                    := straight;
              AxData.Cam.MotionPar.CamPoint[1].X                                := 360.0;
              AxData.Cam.MotionPar.CamPoint[1].Y                                := 360.0;
              AxData.Cam.MotionPar.CamPoint[1].m                                := 1.0; (Steigung)
              AxData.Cam.MotionPar.CamPoint[1].CamType                    := straight;

  Danach setzt du für die Slaveachse  Enable = true (Achtung Achse geht in Regelung also wird bestromt), Start = true  und danach die Master Achse Enable = true mit Start = true der Masterachse fährt die Masterachse und hinterher die Slaveachse.

  Nun zum Nockenschaltwerk:
  In der Steurungskonfiguration CamSwitchGroup (Ventilgruppe)deklarieren darunter CamTrack (Venti1) und darunter Camswitch(Schaltpunkt)
  Als Ausgang : OU_Ventil

  In der Programierumgebung einmalig folgende Daten belegen:
  Ventilgruppe.Enable := true;

  Venti1.Enable:=true;
  Ventil1.PositionSource:= Enc_Slave ; (Auf welche Position soll die Nocke geschaltet)
  Ventil1.Periode := 360 ;
  Ventil1. Distination:= OU_Ventil; (welche Ausgang soll angesteuert werden)
  Ventil1.Onlevel:= True ; ( gibt true aus wenn die Nocke erreicht ist)

  Schaltpunkt.Enable := true;
  Mode := 0; High signal (1 := Impuls)
  OnPosition := 20 ;
  OffPosition := 30 ;
   Nocke zwischen den Werten 20° und 30°
  Mehr braucht man eigentlich nicht Also viel spass.


----------



## Oede_Bloede (15 Februar 2008)

Morgen!

Ich danke euch erstmal für eure Hilfe!!!

Wenn ich noch Fragen habe oder die Anlage läuft melde ich mich wieder.

MFG
Oede_Bloede


----------

