Various motor documents
-----------------------
- /home/zamofing_t/Documents/doc-ext/SwissFEL/ESB-MX-Stage

Parker stage
------------
```
- encoder is incremental encoder
25mm or 50mm travel stage
Stall Current Continuous 0.8
Peak Current Amps RMS 2.4    (->sqrt(2)*2.4=3.39A_peak)
Resistance Ohms 8.8
Inductance mH 2.4
Max.BuxVoltage V 80

Continous Force 4N -> assume 1kg load -> acceleration=a=F/m=4m/s^2
Weight top stage: 250g=2.5N
```


Mecapion rot stage
------------------
```
http://www.lsmecapion.com/eng/
http://www.lsmecapion.com/eng/contents/sub01/sub02_03.php
http://www.a2v.fr/program/mdm-dc06d.htm
http://www.parkem.ch/medien/produkte/direktantriebstechnik/pdf/MDM_Rundtisch_katalog.pdf
http://www.goto.si/wp-content/uploads/2016/kat/L7%20Series%20catalog.pdf
http://farasys.ir/wp-content/uploads/2015/Direct%20Drive%20Rotary%20Motors.pdf
http://www.inmoco.co.uk/Upload/product/1037_DD_Series_Motors_79.pdf

- encoder is biss 20 bit
- Rated Current 1.46 Arms
- Max Current 4.38 Arms
- 32 pole (16 einraster per rev)
```

Servo Test Motor QBL 4208-41-04-006
-----------------------------------
```
     8     pole (4 lock position per rev)
    24 V   rated voltage
  1.79 A   rated phase current
   5.4 A   max peak current
  4000 rpm rated speed
   1.8 ohm line to line resistance
   2.6 mH  line to line inductance
```


2Phase Stepper Test Motor Vextra PK244M
---------------------------------------
```
- 200 pole (100 einraster per rev)


******* Path shaping test *****************
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/cfg
gpasciiCommander --host SAR-CPPM-EXPMX1 -i

!mx-stage()
#1..3$
&1
#1..3j/

cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python
./shapepath.py -v255
```


Testing ServoFrq.
-----------------
```
!common(PhaseFreq=20000,PhasePerServo=4) -> 25000points, 20um error  leads the trajectory in x
!common(PhaseFreq=20000,PhasePerServo=2) -> 25000points, 6.6um error
!common(PhaseFreq=20000,PhasePerServo=1) -> 25000points, 6.1um error ossilates in y, x is quite good

-> the servo loop has to be optimized!
```

Testing linear,pvt,spline moves
-------------------------------
```

Tested with shapepath.py: THE BEST TRAJECTORY RESULT IST WITH PVT MOTION

```


Optimize/Test Parameters with Parker Stage
------------------------------------------
```
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/cfg
gpasciiCommander --host SAR-CPPM-EXPMX1 -i
!mx-stage()
#1..3$
&1
#1..3j/

load program prg/testPerfGrid.prg
b2r

cd ~/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/src/usrServo
make #will install the user servo loop
watch P3000 (average following error)
tweak servo parameters ->!motor_servo(mot=3,ctrl='ServoCtrl',Kp=20,Kvfb=220,Ki=0.02,Kvff=240,Kaff=1500,MaxInt=1000)

Same for motor 2 -> watcp P2000
Increase load will need an increase of gains to compensate following error

Motor[2].Servo.Kp=20
Motor[2].Servo.Kvfb=1000
Motor[2].Servo.Ki=0.07
Motor[2].Servo.Kvff=1000
Motor[2].Servo.Kaff=4000


Motor[3].Servo.Kp=20
Motor[3].Servo.Kvfb=220
Motor[3].Servo.Ki=0.02
Motor[3].Servo.Kvff=240
Motor[3].Servo.Kaff=1500

 ./shapepath.py --yx
average error x 0.313575 um, y 0.461707 um, 0.629583 um

./shapepath.py
average error x 0.371877 um, y 0.317152 um, 0.542073 um
```


Start motion on external signal
-------------------------------
```
open plc 1
Coord[1].DesTimeBase=0       // freezes timebase at boot
while(1)
{
  if(PowerBrick[0].GpioData[0].0.1==1)
  {
     PowerBrick[0].GpioData[0].16.8=255
     Coord[1].DesTimeBase=Sys.ServoPeriod
  }
  else
  {
    PowerBrick[0].GpioData[0].16.8=7
     Coord[1].DesTimeBase=0
  }
}
close
enable plc 1
-> run motion program. press gpio 0 to run at 100%

```

29.9.17 Testing in MX-LAB
-------------------------
```
Start the powerbrick. ioc is started automatically
zamofing_t@ganymede:~$ ssh x06mx-cons-1

caget SAR-ESB_MX:MOTOR_AX
cd /net/slsfs-crtl/export/sf/common/config/qt/
startDM -macro 'P=SAR-ESB_MX' ESB_MX_exp
press homing button
-> all axes can be moved.

(on thierrys laptop only)
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python
./shapepath.py
will execute the custom motion. No problems with EPICS

(on other machines)
module is installed in:
ls /net/slsfs-crtl/export/sf/ioc/modules/ESB_MX/zamofing_t/R3.14.12/
PATH=/net/slsfs-crtl/export/sf/controls/bin/:$PATH
source /opt/gfa/python-2.7/2.3.0/bin/activate xblpython > /dev/null 2>&1
cd /net/slsfs-crtl/export/sf/ioc/modules/ESB_MX/zamofing_t/R3.14.12/
./shapepath.py

```


export EPICS_CA_ADDR_LIST="129.129.109.255"
export EPICS_CA_ADDR_LIST="129.129.126.255"
caQtDm -macro 'P=SAR-ESB_MX' ESB_MX_exp

HelicalScan
-----------
```
PPMAC=MOTTEST-CPPM-CRM0485
gpasciiCommander --host $PPMAC mx-stage_sim.cfg -i


ssh root@$PPMAC sendgetsends -1
    send 1"SampleMessage\n"
&1p  ->this will trigger:forward kinematic
cpx pmatch  ->this will trigger:forward kinematic


cpx ;linear abs; X0Y0Z0B0  ->this will trigger: inverse

#7j=0.1 //cx
#8j=0.2 //cy
#1j=0.3 //w
#2j=0.4 //fx

(cx,cz,w,fy)  (2.6164986454377614, 17.758728111340563, 0.1, 4.3)
(dx,dz,w,y)   (0.2, 0.3, 0.1, 4.3)

#7j=2.6164986454377614
#8j=17.758728111340563
#1j=5729.578 //  0.1*1000.*360./(2*pi)
#2j=4.3
&1p
B0.1 X0.2 Y4.3 Z0.3
cpx ;linear abs; X0.2 Z0.3, B0.1 Y4.3
```

