반응형

https://youtube.com/live/gPAcfhjBXtk

[6편] TB6600드라이버와 NEMA17스탭모터 드라이버를 LS PLC(XEM-DN32H2)로 제어해보기!(녹칸다의 내맘대로 PLC 시리즈)

녹칸다의 내맘대로 PLC시리즈이다!
이번 시리즈는 아래 구글 슬라이드에 설명자료를 작성하도록 한다!(모두에게 공유되어있음)
https://docs.google.com/presentation/d/1c5YLf60WR_41MiQoi98iuQQTgTxfjQfBKBZt6dUz8R0/edit#slide=id.g24d3ff1b04f_0_0

녹칸다는 아두이노 코딩하는 유튜버이다!
이번 시리즈는 아래와 같은 주의사항이 있다!

1.녹칸다는 PLC에 대해서 잘 모름(가장 중요)
2.아두이노로 코딩하던 사람이 PLC를 바라보는 관점으로 입문자용 자료를 만듦!
3.그러므로 PLC를 정석으로 하고자 하는 의도는 전혀 없음!
4.녹칸다가 가진 PLC CPU는 레더로직(LD)과 ST언어 2가지로 제어가 가능함!
5.레더로직은 전혀 이해가 안되어서 몇가지 샘플만 구동해보는 것으로 마무리 함!(대충 이렇게 하는구나~ 정도 수준)
6.ST언어는 약간 이해가 되므로 아두이노 코딩하는 전략을 기반으로 해서 다양한 예제를 만들어 보도록 함!
7.그러나 녹칸다가 ST언어로 코딩할 내용이 “실제로 이렇게 해도 되는건가?” 는 보장하지 못함, “결론적으로 작동이 됨”에 초점을 맞추도록 함!
8.진행중 잘못된 설명이 있으면 녹칸다에게 알려주면 감사!

이번편은 스탭모터를 제어해보는 것이 목표이다!
확실하게는 모르겠지만 녹칸다가 보유한 XEM-DN32H2와 XBM-DN32H2는 고속위치결정모듈이라는 추가적인 모듈이 있어야 스탭모터 제어가 가능한것으로 보인다!
PLC CPU만 가지고는 스탭모터를 제어하는 것을 기본적으로 지원하지는 않는 모습이다!

TB6600스탭모터 드라이버는 방향과 펄스만 입력해주면 스탭모터 제어가 가능한 녀석이다!
PLC에 들어가는 프로그램이 적절하게 신호만 입력해주면 제어가 불가능한것은 아니다!

하지만, PLC에서 타이밍을 만들어낼 TON이라는 함수의 최소 입력시간이 1ms이다!
그러므로 최소로 만들어낼 수 있는 펄스폭은 1ms라는 제약을 가진다!

고속위치결정모듈에서 고속이라는 키워드는 1ms보다 더 빠른 타이밍을 만들어주겠다라는 의미인듯하다!

아무튼 1ms의 펄스폭이라도 스탭모터가 돌아가기는 할 것이다! 다만 빠르게 회전시키지는 못할것이다!
녹칸다에게 주어진 준비물이 LS PLC본체와 TB6600과 NEMA17뿐이므로 있는것으로 최선을 다해서 제어를 해보도록 하자!

반응형

(라이브방송에서 구현한 ls plc 예제)

예제1)버튼을 %IX0.0.1 ~ %IX0.0.2까지 순서대로 3개를 연결하고 각각 정회전, 역회전, 정지버튼으로 지정한다! 스탭모터 드라이버의 DIR핀은 %QX0.0.0, PUL은 %QX0.0.1에 연결해서 스탭모터를 회전시키시오!

example6_1.zip
0.01MB

예제2)현재 스탭모터의 스탭량을 변수에 저장하는 예시를 보이시오!(정회전+, 역회전-)

example6_2.zip
0.02MB

예제3)%IX0.0.0을 누르면 스탭모터가 90도위치로 이동하고 %IX0.0.1을 누르면 180도 위치로 이동하고 %IX0.0.2를 누르면 원점으로 돌아오도록 하시오!

example6_3.zip
0.02MB

예제4)%IX0.0.0을 누르면 스탭모터가 현위치에서 90도 더 이동하고 %IX0.0.1을 누르면 180도 위치로 이동하고 %IX0.0.2를 누르면 270도 더 회전하도록 하시오!(상대적으로)

example6_4.zip
0.03MB

예제5)%IX0.0.0을 누르면 task가 작동되고 %IX0.0.1을 누르면 task가 종료된다!
task
0.아무것도 하지 않음
1.스탭모터가 원점에서 90도 회전한다 (1초 휴식)
2.스탭모터가 90도에서 180도로 회전한다 (1초 휴식)
3.스탭모터가 180도에서 90도로 회전한다 (1초 휴식)
4.스탭모터가 90도에서 원점으로 돌아온다 (1초 휴식)

example6_5.zip
0.03MB

예제6)%IX0.0.0을 누르면 task가 작동되고 %IX0.0.1을 누르면 task가 종료된다!
task
0.아무것도 하지 않음
1.+300스탭 (1초 휴식)
2.-300스탭 (1초 휴식)
3.+400 (1초 휴식)
4.-400 (1초 휴식)

example6_6.zip
0.02MB


예제7)%IX0.0.0을 누르면 task가 작동되고 %IX0.0.1을 누르면 task가 종료된다!
task
0.아무것도 하지 않음
1.300스탭 (1초 휴식)
2.-300스탭 (1초 휴식)
3.+400 (1초 휴식)
4.-400 (1초 휴식)
5.+600 (1초 휴식)
6.-600 (1초 휴식)

example6_7.zip
0.02MB


예제8)%IX0.0.0을 누르면 task가 작동되고 %IX0.0.1을 누르면 task가 종료된다!
task
0.아무것도 하지 않음
1.+4000스탭 (1초 휴식)
2.-4000스탭 (1초 휴식)

example6_8.zip
0.02MB


예제9)예제7번에 task사이의 간격을 등간격이 아니라 불규칙하게 하려면 어떻게 하면 좋을지 고민해보시오!
task
0.아무것도 하지 않음
1.300스탭 (5초 휴식)
2.-300스탭 (2초 휴식)
3.+400 (0.5초 휴식)
4.-400 (3초 휴식)
5.+600 (1초 휴식)
6.-600 (1초 휴식)

example6_9.zip
0.03MB

반응형
Posted by 덕력킹
,