Delta Tau GEO BRICK DRIVE Manuel D’Utilisation

Page de 294
 Geo Brick Drive User Manual 
Motor Setup 
 186 
Absolute Power-On 
Phasing, channels 
1 through 4 
Channel# 
8  7  6  5  4  3  2  1 
 
ChPhaseSel (Binary)  0  0  0  0  1  1  1  1  => ChPhaseSel =$0F 
ChPhaseSel (Hex) 
 
 
Absolute Power-On 
Phasing, channels 
1,3,5,7 
Channel# 
8  7  6  5  4  3  2  1 
 
ChPhaseSel (Binary)  0  1  0  1  0  1  0  1  => ChPhaseSel =$55 
ChPhaseSel (Hex) 
 
 
//=========================== NOTES ABOUT THIS PLC EXAMPLE ================================// 
// This PLC example utilizes: - P7050 through P7079 
// 
 
 
 
- Suggested M-Variables (make sure they are downloaded) 
 
// Make sure that current and/or future configurations do not create conflicts with  
// these parameters. 
//=========================================================================================// 
 
P7050..7079=0  ; Reset P-Variables at download 
 
//==================================== USER INPUT =========================================// 
#define Mtr1SF P7050  #define Mtr5SF P7054  ; Motors scale factor 
#define Mtr2SF P7051  #define Mtr6SF P7055  ; cts/rev for rotary encoders 
#define Mtr3SF P7052  #define Mtr7SF P7056  ; cts/user units (i.e. mm, inches) for linear  
#define Mtr4SF P7053  #define Mtr8SF P7057  ;  
Mtr1SF=0 
Mtr5SF=0 
--User Input 
Mtr2SF=0 
Mtr6SF=0 
--User Input 
Mtr3SF=0 
Mtr7SF=0 
--User Input 
Mtr4SF=0 
Mtr8SF=0 
--User Input 
 
#define Mtr1PhaseTest P7058 
#define Mtr5PhaseTest P7062 
; Phase force test values 
#define Mtr2PhaseTest P7059 
#define Mtr6PhaseTest P7063 
;  
#define Mtr3PhaseTest P7060 
#define Mtr7PhaseTest P7064 
;  
#define Mtr4PhaseTest P7061 
#define Mtr8PhaseTest P7065 
;  
Mtr1PhaseTest=0 Mtr5PhaseTest=0 
--User Input 
Mtr2PhaseTest=0 Mtr6PhaseTest=0 
--User Input 
Mtr3PhaseTest=0 Mtr7PhaseTest=0 
--User Input 
Mtr4PhaseTest=0 Mtr8PhaseTest=0 
--User Input 
 
#define ChPhaseSel P7066 
; Select channels to perform power-on phasing (in Hexadecimal) 
ChPhaseSel=$0   
 
; Channels selected for power-on phasing --User Input 
 
//=============================== DEFINITIONS & SUBSTITUTIONS =============================// 
#define ChNo 
 
P7067  ; Present addressed channel 
#define PhaseOffset 
P7068  ; Holding register for computing phase position offset 
#define ActPos  
P7069  ; Indirect addressing index for actual position, 162 
#define PresPhasePos  P7070  ; Holding register for computing present phase position 
#define Ixx70   
P7071  ; Indirect addresssing index for No of commutation cycles, 170  
#define Ixx71   
P7072  ; Indirect addresssing index for commutation cycle size, 171  
#define Mxx71   
P7073  ; Indirect addresssing index for phase position register, 171 
#define PhaseErrBit 
P7074  ; Indirect addresssing index for phasing search error bit, 148 
#define PhaseTest 
P7075  ; Indirect addresssing index for force phase test values, 7058 
#define MtrSF   
P7076  ; Indirect addresssing index for motor scale factor, 7050 
#define ChNoHex 
P7077  ; Channel number in hex 
#define Ixx08   
P7078  ; Indirect addresssing index for position scale factor, 108 
#define ChPhaseTrue 
P7079  ; Present channel power-on phasing flag, =1 true =0 false 
 
//=================================== PLC SCRIPT CODE =====================================// 
Open plc 1 clear 
ChNo=0   
; Reset channel number 
While(ChNo!>7) ; Loop for 8 channels 
 ChNo=ChNo+1 
 
 ChNoHex=exp((ChNo-1)*ln(2)) 
 ChPhaseTrue=(ChPhaseSel&ChNoHex)/ChNoHex 
 If (ChPhaseTrue!=0)  ; Absolute read on this channel? 
  MtrSF=7050+(ChNo-1)*1 
  PhaseTest=7058+(ChNo-1)*1 
  Ixx70=170+(ChNo-1)*100 
  Ixx71=171+(ChNo-1)*100 
  ActPos=162+(ChNo-1)*100