본문 바로가기
설계, 만들기,잡다한 D.I.Y 이야기....

자작 CNC 만들기 기초 총정리 1편

by PBangAZe 2019. 8. 25.

인터넷 이리저리 검색하다가 

 

알아두면 좋은것들을 정리해봤다

 

---------------------------------------------------------------------------------------------------------------------------------

 

CNC를 만드는데 필요한 부품에서 크게 모터를 기준으로 구분한다.

 

1. Stepping 모터를 사용하는 경우

2. AC Servo 모터를 사용하는 경우

 

스테핑 모터 : 주로 600mm이하 행정거리에서 사용된다. 볼나사는 20파이 이하가 사용되며, 리드는 5이하가 바람직하나 이럴 경우 스텝모터의 출력특성을 잘 보고 선정해야 최대속도를 뽑아낼 수 있다. 스텝모터에는 2상과 5상 등이 있는데 2상만 고려한다. 2상에는 유니폴라와 바이폴라 방식이 있으며, 출력곡선을 보면 알수 있듯이 5상이 출력 토크가 크나, 비싸다. 따라서, 저렴한 2상에서 유니폴라방식을 선정한다.

제팬서보 : 42 56각이 있으나, 가격은 엇비슷하다. 그냥 56각 선정한다.

산요스테핑

- 제팬서보와 산요스테핑의 차이는 사용해보면 속도에서 차이나는 듯 했다. 물론 기구물의 강성과 조립의 정밀도에 따라 차이가 있겠으나, 볼나사 리드5에 피드 1600넘어가면 제팬서보는 탈조가 나기 시작했다. 산요는 2000도 괜찮은 듯 했다.(개인적인 측정치이다). 스펙을 보면 제팬서보는 중저속, 산요는 중고속용인 듯 했다. 개인적으로 그냥 저렴한 것이 좋을 듯하나, 사용자분들의 조언에 의한 데이터베이스가 필요한 것 같다.

 

 

 

각 모터를 사용하여도 필수적으로 들어가는 부품은 다음과 같다.

A: 직동부품

A-1. LM 가이드 ( 이것은 별로 이야기할 것이 없으나, 힘받는 모멘트가 종류에 따라 다르다. 2방향형(SR), 4방향형(HSR)이 있으니 잘 보고 선정해야하며, 또한 높이가 제품 종류에 따라 다르니 설계시 꼭 확인해야한다.

 

A-2. 볼나사, TM볼스크류 (TM볼스크류는 정밀도와 내구성에서 CNC용으론 부적합하다), 볼나사는 연삭급과 전조급이 있다. 전조급의 경우 나사선이 두줄로 거의 대부분 되어있고, 연삭급은 나사선이 하나이다. 연삭급은 C7, C5, C3 등 정밀도 급이 있다. 정밀도가 높으면 당연히 비싸다)

 

 

전조급 볼스크류

                     

 연삭급 볼스크류

 

A-3. 연마봉 혹은 리니어부시( 400mm 이하에서 사용해도 되지만 왠만하면 LM을 사용 권장)

 

A-4. 엑츄에이터(일체형으로 강성 및 정밀도를 보장하지만, 모터결속, 엑츄에이터 결속, 이송 리드값 등을 고려해서 구입해야한다. 거의 고속이송용(20리드정도)으로 제작되기 때문에 마음에 드는 중고를 선정하기 어려운 점이 있다. )

 

B: 볼나사를 고정하고 지지하는 서포트유닛

B-1. 표준품인 EK, FK, BK 고정측과 EF, FF, BF 지지측(거의 대부분 사용)

B-2. 모터 결속 일체형으로 만들어진 조인트유닛 (상용기에서 가끔사용)

  

EK   

EF형 볼나사 축이 최대 25파이까지일경우 사용

 

 

 

BK   

BF 형 볼나사 축이 최대 40파이까지일경우 사용, 앞면 구멍으로도 결속이 가능하다. 결속 구멍이 4개라 EK형보다 결속 허용오차가 적어야한다.

 

 

 

FK 형   

FF형 볼나사 축이 4-30까지 사용된다.

 

 조인트형은 축 맞추기가 쉬우나, 비싸다

 

중고 구입시 서포트유닛의 유격이 있는지 반드시 확인해야한다. 안그러면 도루아미타불이 된다...

 

C: 커플링 ( 사실 이 부품을 간과하는 경우가 종종 있다. 그러나, 상당히 중요한 부품이다)

C-1: 세트스크류형 (스텝모터처럼 축이 단면가공되었을 경우 많이 사용)

C-2: 클램프형 ( 서보모터처럼 축만 있을 경우 많이 사용)

C-3: 키홈 + 세트스크류 혹은 클램프형 ( 가장 바람직한 서보모터 결속형 )

 

커플링의 종류는 많이 있지만 가장 많이 사용되는 것은

1. 올댐형

2. 디스크형

3. 죠형

이 있는데

죠형은 큰토크전달에 사용됨으로 서보 직결 스핀들을 만들때 많이 사용된다.

 

올댐형은 저렴하고 양단 축 파이에 따라 교체가 가능한 장점이 있지만, 큰토크에서 깨짐이

 

발생한다. 또한, 약간의 백래쉬를 가지고 있다. 서보 및 스테핑모터에 사용된다

디스크형은 서보모터에 거의 사용된다. 백래쉬가 없기 때문과 중토크 전달이기 때문이다. 또한, 싱글디스크와 더블디스크가 있는데, 더블디스크가 축간 편심, 편각 허용오차가 크기 때문에 더블을 많이 사용한다.

 

 

커플링의 파이에 따라 양단 축 파이가 정해지는데 대략 서보모터와 볼나사 축이 12파이, 14파이의 경우에는 32파이 커플링을 사용한다. 스텝모터의 경우 6파이 6.35파이가 있으므로 볼나사 축이 8파이인지 10파이, 12파이인지에 따라 크기가 다르나, 올뎀형인 경우 25파이인 경우 10파이까지 가능하고, 32파이인 경우 14파이까지 가능하다. 디스크형인 경우 26파이인 경우 10파이까지 가능하고, 31파이인 경우 최대 12-14까지 가능하다.

 

개인적으로 한단계 파이가 높은 커플링을 사용하는 것이 좋다고 생각되나 그것은 사용자 몫이다.

 

커플링이 왜 중요한것인가? 하면

사용중에 커플링 결속이 풀려서 X, Y, Z 이송시 한쪽으로 밀리는 현상이 발생한다. 이는 대부분 커플링 결속 문제이다. 그래서, 개인적으로는 종종 다시 죄어주며 왠만하면 키형을 사용한다.

또한, 조립시 정확히 센터를 맞추는데 노력을 게을리하면 성능저하가 팍팍된다. 예로 이송시 떨림등이 발생될 수 있으며, 모터의 수명과 성능이 제대로 발휘되지 않을 가능성이 높다.

 

 

D: 타이밍벨트

타이밍벨트의 용도는 비싼 감속기 대신 저렴하게 감속기를 구현할 수 있다는 장점이 있다. 물론 서보모터의 경우 이송속도에 큰 문제는 없지만, 스테핑모터를 사용하는 경우 데이터쉬트를 참고해서 설정해야한다. 약 2:1이 많이 사용되는 듯하다.

타이밍벨트를 사용하는 경우 모터를 감출수 있기때문에 미관상 좋지만, 먼지가 많은 곳에서는 반드시 직결형으로 가는 것이 바람직하다. 또한, 장기간 사용시 벨트를 교체해주는 것이 좋다. 벨트는 허용모멘트를 잘 확인하고 한단계 위의 스펙을 사용하는 것이 좋으며, 사다리꼴과 V형이 있다. 장단점이 있으니 특성 공부도 할겸 알아두면 좋다.

타이밍벨트를 사용하면 정밀도가 안나올것으로 생각하는 경우가 있는데, 개인적으로는 크게 문제시 되지 않았다. 가장 큰문제는 바로 텐션이다. 텐션장치를 잘 고려해서 설계해야한다.

타이밍벨트 사용시 서보모터를 사용한다면 서보의 장점을 버리는 결과라고 본인은 생각한다. 서보튜닝또한 조금 , 아주 조금 더 시간을 필요로한다.

 

 

-----------------------------------------------------------------------------------------------------------------------------------

 

마하3 서보 전자기어비 기본이론 

 

 

1. 기본적으로 알아야할 사항들
  1.1 서보모터
    - 서보모터는 엔코더의 비트수 x 4체제배에 해당하는 펄스수로 1회전한다.(이론적인 이상값, 최대값이다. 그러므로 줄여야 만약의 사태에 대비할 수 있다)
    - 세상의 서보모터는 각각 비트수가 다르다(가격 정밀도 요인에 따른 소비자 선택권?)
    - 서보 모터를 돌리기 위해선 서보팩(드라이버)가 필요하다
    - 서보팩(머리)에서 서보 모터(손,발)를 완벽히 제어한다. 엔코더(신경), 전력선(위장, 대장??) ㅋㅋㅋ
    - 엔코더 펄스수(P/R = Rotation per Pulse = 회전당 펄스수)    (반드시 메뉴얼참조 계산치가 아님)
       13비트 = 2048          x 4 = 8192
       16비트 = 16384        x 4 = 65536
       17비트 = 32768        x 4 = 131072
    - 신기하게도 서보팩은 공장출하시 4체배를 전자기어비에서 제외시켜 비트수만큼의 펄스를 사용하도록 초기화 되어있다. 다시말해 전자기어비의 분자/분모 = 4/1 로 기본 되어있어서 비트수를 펄스입력하면 1회전한다.
    - 엔코더 비트수가 높으면 당연히 분해능이 좋다.(더 정밀하다. 그래서 Z축의 모터는 비트가 높을걸 사용한다. 그러나, 노이즈에 취약하다)
    
   1.2 마하3 ( 모터관련만)
    - 모터튜닝(서보든 스텝이든)에서 unit 당 스텝(펄스) (A 라고 하자)수로 이동량을 결정한다.
    - 즉, 마하3 기본단위가 mm면 1mm움직이는데 펄스수를 맘대로(커널주파수 이하) 설정할 수 있다
     예) 난 1mm 움직이는데 2000개의 펄스를 사용할 거야~~
    - 3축이라면 컴퓨터 성능에 따라 다르지만 커널스피드 설정에서 25000Hz로 설정되어 있다면 축당 25000/3 = 71000 의 펄스를 분배한다.. (훨씬 작아지므로 50000 이라고 하자)
    - 서보 1회전시키려면 A값은 (전자기어비 분자/분모 = 1/1 일 경우)
      13비트 = 8192 , 16비트 65536, 17비트 131072 를 입력하면 1회전한다. 그런데 16,17비트는 너무 펄스수가 많아서 마하3가 감당을 못한다.
     - 그러면 맨날 13비트만 써야겠네???? 
     - 마하3에서는 피드(움직이는 속도)가 A에 영향을 받는다. 
     - A 값이 낮으면 10000피드도 가능하다, A 값이 높으면 당연히 피드값이 떨어진다.
     - 3축을 동일하게 제어하고 싶으면 이 피드값을 동일시 하는 것이 중요하다.(물론 마하는 제일 낮은 피드값을 기준으로 정해버린다)
    - x, y, z 각각 A값을 다르게하면 수동조작시에는 최대피드로 움직이지만, 자동으로 가공시에는 제일 낮은 피드값으로 움직인다 G0, G1 코드에 따라 다르다)

 

2. 전자기어비가 있으면 좋은 이유
  2.1 전자기어비 존재의 이유
    - 앞에서 말했듯이 높은 비트수의 고성능의 모터는 고성능의 마하가 필요하다(불가능)
    - 모터별 비트수가 제각각이다 ( 통일시키고 싶지 않은가? )
    - 피드를 통일시키고 싶다(나도 그러고 싶다. 서보튜닝을 쉽게 하기 위한 초석이다)    
    - 볼스크류 리드가 x,y,z 제 각각이다 ( 하나씩 다 설정해야하나 ㅠㅠ. 귀찮다 )
    - 감속기, 타이밍벨트, 풀리 ( 아이고, 언제 계산해서 마하에 입력하나,, )

   - 엔코더 비트수로 1회전 시켜야해??? 꼭??? 난 2000으로 하고 싶은데.. 난 딱 떨어지는 숫자가 좋아.. 방법이 없나? -> 있습니다요
   - 예를들어 15mm 리드인 볼스크류를 1회전시키면 15mm이동하고 이때 13비트 모터는 A에 2048을 입력해야하는데 헛갈리니깐 1500개의 펄스로 1회전 못시킬까? -> 있습니다요

    - 그래서 나의 선택은 난 모터 1회전시키는데 무조건 마하3의 A값에 2000 넣을꺼야... 감속기든 리드가 다르든, 풀리든지 간에 . 그래야 피드가 동일해~~~ 난 동일 피드가 좋아~~ 무조건 우선이야~~

  

2.2 전자기어비 설정시 기본 알아야할 사항 (컴퓨터 스팩 같은것임)
     - 모터 엔코더 펄스수 ( x4체배 말고 기본 비트수 )
     - 모터부터 풀리든, 감속기든, 타이밍벨트든 등등등의 총 감속비  끝........
    - 감속비는   
        모터가 5회전했을때 기구부(예 볼스크류)가 1회전한다? 그럼 5 (감속개념)
        모터가 1회전했는데 5회전한다? 그럼 1/5 = 0.2     (증속개념)
       수식으로는 모터회전수/최종기구부회전수

 

3. 설정하기
   3.1  16비트 엔코더 서보모터와 리드 10[mm] 볼스크류 예
    - 난 마하3에서 A 값에 2000 넣을꺼야. 그러면 1mm이동해  그런데???????? 몇회전 하는거지??(며느리도 몰러~)  
    - 서보에서 엔코더 펄스를 2000넣으면 1회전시키기로 했으니깐 마하에서 A값 2000넣으면 1mm움직인다는데 1회전이랑 1mm랑 같나????? 다르구나~~~ 
    - 리드1mm볼스크류면 엔코더 2000펄스에 모터도 1회전하고 마하3에서도 A값 2000으로 1mm 이동하고 딱~~~~좋아~딱 떨어져~~~~
    - 헉, 내 볼스크류 10mm 리드짜리인데?????한바퀴 돌면 10mm이동하는데?????? 이런 망할..... 리드1mm짜리 볼스크류 사야겠네 ㅠㅠ
    - 그래 결정했어 .. 다시 계산하자

1mm리드 볼스크류, 엔코더2000펄스 모터 1회전 -> [실제이동 1mm]      마하3 A값 2000 -> 모터1회전 -> 1mm 좋아
10mm리드 볼스크류, 엔코더2000펄스 모터 1회전 -> [실제이동 10mm]      마하3 A값 2000 -> 모터1회전 -> 1mm 안좋아... 실제이동거리랑 안맞아 ㅠㅠ.. 
아.... 고민이다.. 
A값을 200 하면 -> 엔코더 200펄스 -> 모터 1/10회전 -> 실제이동 1mm 인데...  난 A값 2000을 1mm 로 하기로 했는데... 피드도 중요할꺼 같고,,ㅠㅠ
둘중 하나군........
마하3 A값을 X,Y,Z 축 각각 계산해서 넣던가..    아니면, A값 2000 -> 엔코더 2000펄스로 1/10 회전하게 하던가 둘 중하나네 ~~~~

  

  3.2 전자기어비 설정하기  (감속기 없는 직결의 경우)
    - 엔코더 16비트니깐 16384펄스에 1회전( 4/1 공장초기 출하 설정시 ), 이제 조정해야하니깐 공장 출하 설정은 필요없으니 4체배 해야지 65536펄스
    - 난 2000펄스에 1mm 이동시킬꺼야..  
    - 마하3 A 값에 2000넣고 1mm움직일꺼야... 이젠 마하3 니가 주인이당.
    - 그럼, 1펄스당 얼마움직이지?? 0.0005 mm 움직이네 .... 내 CNC의 분해능은 0.0005야    대단해(뿌듯)
    -
    - 이제 회전을 거리mm로 바꿔보장(이게 핵심) 
    - 10mm리드 볼스크류를 회전체라고 생각하지말고
    - 10mm를 움직일면 몇개의 펄스가 필요하지???   1펄스:0.0005mm = x펄스 : 10  => 10/0.0005 => 20000개 펄스 필요허당
    - 10리드 볼스크류는 1회전 하면 10mm 이동하니깐...   20000개의 펄스로 1회전 시키면 되겠네.  --> 이것을 부하측1회전당 이동량이라 한다
    - 그런데 16비트 65536펄스가 1회전인데 20000개 펄스로 1회전 시키려면 펄스수를 줄여야겠네
                 엔코더 비트 펄스수 x 4체배                 16384 x 4        65536           비트펄스수 x 4 x 분해능
               --------------------------------------      =  ----------------- = -------------- =  ---------------------------------      = 전자기어비
                  부하측1회전당 이동량                      10 / 0.0005      20000               볼스크류리드
    - 아하~~~~ 이게 전자 기어비구나...

    - 이제 볼스크류 리드가 변해도 리드값만 넣고 계산하면 돼겠당... 그럼 분해능값만 0.0005넣고  마하3 A값 2000에 1mm 움직인당...... 
    - 마하3 기준으로 수식을 바꾸면
                         분자            비트펄스수 x 4 x 1
     전자기어비 = ----------  = ------------------------------------------------
                        분모             볼스크류리드 x 마하3 A     


    - ㅋㅋㅋ 쉽네

  

  3.3 전자기어비 설정하기  (감속기 있는 경우)
     - 위에랑 똑같고 25대1 감속기 쓸경우   ( m/n )
           이렇게 정의하자 수식만들기 편하게
           모터25회전     m        25
        ----------------  = ----- = -----
            부하1회전      n        1
     - 2000펄스에 1mm이동
     - 10리드 볼스크류 1회전에 10mm 이동하는데 감속기 물려서    부하1 회전하는데 모터는 25회전해야함,   즉, 펄스수가 25배 더 필요함
     - 감속기없을때보다 25배 더 빨리 모터를 돌려야함. 오히려 모터 펄스 증속을 해야함 (서보팩이 알아서해줌 튜닝필요)
     - 마하3 기준으로 수식을 바꾸면
                         분자            비트펄스수 x 4 x 1        x m
     전자기어비 = ----------  = ------------------------------------------------
                        분모             볼스크류리드 x 마하3 A   x n  

 

 

출처:  http://blog.daum.net/elcotics

 

보물스 창고

보물스 님의 Daum블로그

blog.daum.net

 좋은 블로그인데 더이상 활동을 안하신다

 

 정말 아쉽다

 

 

-----------------------------------------------------------------------------------------------------------------------------------

 

1편은 그냥 한번쯤 읽어보면 좋을거 같아 올렸다 

 

2편 부터는 본격적으로 CNC 3축을 올릴것다

 

모션보드는 위칸  BLX6 6축보드 + 미쯔비시 서보 + 삼지ATC 로 만들건데 

 

ATC는 조금 걸릴거 같다 내가 잘모르니 또 공부해야지 ㅋㅋ

 

그다음은 그 CNC로 부품깍아서 마하3 + 스텝모터 조합으로 프라즈마 절단기 만들고 

 

그다음은 미니 범용선반 만들고 ㅋㅋ 

 

그다음은 처음 만들었던 CNC를 5축가공기로 개조

 

내년 여름이 다시 찾아오기 전까지 모두 완성을 목표로~~

댓글