제목Servo IC 가 없는 경우 가상축 설정하기 2020-04-14 15:02:43
카테고리PowerPMAC
작성자 Level 10

안녕하십니까 온시스 입니다. 

항상 저희 홈페이지를 이용해 주셔서 감사합니다. 


Power PMAC CPU 만 있고 Servo IC 가 없는 경우 시뮬레이션을 위한 가상축 설정 방법입니다. 


//////////////

// Power PMAC 가상축 설정입니다.

// Servo IC 없이도 지정 가능합니다.

//////////////


////////////////////////////////////////////////////

// Servo IC가 없을 경우 CPU clock을 사용하여 Servo Interrupt를 생성합니다.

// Sys.CPUTimerIntr를 1로 놓고 Sys.ServoPeriod로 Servo 주기를 정해주면 됩니다.

// Sys.ServoPeriod의 단위는 [ms]입니다.

////////////////////////////////////////////////////

//Sys.CPUTimerIntr = 1

//Sys.ServoPeriod = 0.5


////////////////////////////////////////////////////

// #1

Motor[1].Ctrl = Sys.PidCtrl // only need simple PID loop

Motor[1].ServoCtrl = 1

Motor[1].pDac = Sys.Idata[1].a 

Motor[1].pAmpEnable = 0

Motor[1].pAmpFault = 0

Motor[1].pLimits = 0

Motor[1].CaptureMode= 1 // software capture 


// needed gains

Motor[1].Servo.Kp = 1 

Motor[1].Servo.Kvfb = 0 

Motor[1].Servo.Kvff = 0

Motor[1].Servo.Kaff = 0

Motor[1].Servo.Ki = 0


// process Dac data

EncTable[1].type = 1

EncTable[1].ScaleFactor = 1/65536

EncTable[1].pEnc = Sys.Idata[1].a

EncTable[1].index4 = 1

////////////////////////////////////////////////////

// #2

Motor[2].Ctrl = Sys.PidCtrl // only need simple PID loop

Motor[2].ServoCtrl = 1

Motor[2].pDac = Sys.Idata[2].a 

Motor[2].pAmpEnable = 0

Motor[2].pAmpFault = 0

Motor[2].pLimits = 0

Motor[2].CaptureMode= 1 // software capture 


// needed gains

Motor[2].Servo.Kp = 1 

Motor[2].Servo.Kvfb = 0 

Motor[2].Servo.Kvff = 0

Motor[2].Servo.Kaff = 0

Motor[2].Servo.Ki = 0


// process Dac data

EncTable[2].type = 1

EncTable[2].ScaleFactor = 1/65536

EncTable[2].pEnc = Sys.Idata[2].a

EncTable[2].index4 = 1

////////////////////////////////////////////////////

// #3

Motor[3].Ctrl = Sys.PidCtrl // only need simple PID loop

Motor[3].ServoCtrl = 1

Motor[3].pDac = Sys.Idata[3].a 

Motor[3].pAmpEnable = 0

Motor[3].pAmpFault = 0

Motor[3].pLimits = 0

Motor[3].CaptureMode= 1 // software capture 


// needed gains

Motor[3].Servo.Kp = 1 

Motor[3].Servo.Kvfb = 0 

Motor[3].Servo.Kvff = 0

Motor[3].Servo.Kaff = 0

Motor[3].Servo.Ki = 0


// process Dac data

EncTable[3].type = 1

EncTable[3].ScaleFactor = 1/65536

EncTable[3].pEnc = Sys.Idata[3].a

EncTable[3].index4 = 1

////////////////////////////////////////////////////

// #4

Motor[4].Ctrl = Sys.PidCtrl // only need simple PID loop

Motor[4].ServoCtrl = 1

Motor[4].pDac = Sys.Idata[4].a 

Motor[4].pAmpEnable = 0

Motor[4].pAmpFault = 0

Motor[4].pLimits = 0

Motor[4].CaptureMode= 1 // software capture 


// needed gains

Motor[4].Servo.Kp = 1 

Motor[4].Servo.Kvfb = 0 

Motor[4].Servo.Kvff = 0

Motor[4].Servo.Kaff = 0

Motor[4].Servo.Ki = 0


// process Dac data

EncTable[4].type = 1

EncTable[4].ScaleFactor = 1/65536

EncTable[4].pEnc = Sys.Idata[4].a

EncTable[4].index4 = 1

//////////////////////////////////////


그럼.. 항상 즐거운 하루 되십시요.. 

댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)