Thierry Zamofing 789224b83d towards recabeling and reconfiguring all Powerbricks and Smaracts devices
Here all IOCs were started without any hardware.
So in the next steps the hardware must be tested.
2017-12-21 15:04:23 +01:00
2017-01-27 11:23:31 +01:00
2017-12-20 12:01:55 +01:00
2017-06-12 09:51:02 +02:00
2017-11-08 14:48:02 +01:00
2017-06-12 09:51:02 +02:00

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

Coord[1].SegMoveTime=.05
will calculate all 0.05 sec the inverse kinematic.
default Coord[1].SegMoveTime=0, calculates inv kin. only at endpoints


ssh root@$PPMAC sendgetsends -1
    send 1"SampleMessage\n"

execute helicalscan.py

SCRATCH
-------

&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

Motor[1,27,8].JogSpeed=8


#1,2,7,8j=10000

cpx ;linear abs; X0.2 Z0.3 B0.1 Y00000
cpx ;linear abs; X0.2 Z0.3 B0.1 Y10000

input  : dx:0.2 dz:0.3 w:5.72958 fy:3.3
inv_trf: cx:2.34244 cz:18.2563 w:5.72958 fy:3.3
fwd_trf: dx:0.2 dz:0.3 w:5.72958 fy:3.3

#7j=2.34244;#8j=18.2563;#1j=5729.58;#2j=3.3
&1p

Motors final setup 20.12.17

SAR-CPPM-EXPMX1: biss:y timing:y
  1: fy
  2: fx
  3: ry
  4: cx
  5: cy
  6: interfero y
  7: interfero x

SAR-CPPM-EXPMX2: biss:n timing:n
  1: wedge1
  2: wedge2
  3: wedge3
  4: wedge4
  5: backlight

SAR-CPPM-EXPMX3: biss:n timing:y
  1: girder1
  2: girder2
  3: girder3
  4: girder4
  5: girder5


PPMAC=MOTTEST-CPPM-CRM0485
ssh root@$PPMAC
cd /ioc/SAR-CPPM-EXPMX1;iocsh startup.script


ssh sf-lc
caqtdm -macro "P=SAR-EXPMX" ESB_MX_exp.ui

Description
No description provided
Readme 10 MiB
Languages
Python 57.2%
C 15.7%
MATLAB 12.5%
TeX 11.3%
Makefile 3.3%