MBBL-2ACD 2 축 BLDC 모터드라이버컨트롤러사용설명서 Motion Bank
1. 목차 1. 목차 ------------------------------------------------------------ 1 2. 제품의특징 --------------------------------------------------------- 3 3. 시스템의구성 ------------------------------------------------------- 4 4. 제품의구성 --------------------------------------------------------- 5 5. 제품의배선 - 5.1 전원배선 -------------------------------------------------- 7-5.2 통신배선 (RS232) ------------------------------------------- 8-5.3 Motor /Hall sensor ----------------------------------------- 9-5.4 Encoder 배선 ---------------------------------------------- 10-5.5 Home Sensor 배선 ------------------------------------------ 11 6. 통신프로토콜 - 6.1 통신개요 ------------------------------------------------- 12-6.2 Port 확인방법 ---------------------------------------------- 13-6.3 Port 변경방법 ---------------------------------------------- 14-6.4 RS232 통신 ( 하이퍼터미널세팅 ) ---------------------------------- 15 7. 명령프로토콜개요 -------- -------------------------------------------- 16-1 -
1. 목차 8. 모터구동파라미터설정 - 8.1 S1명령으로엔코더타입설정하기 ---------------------------------- 17-8.2 S1명령으로엔코더펄스설정하기 --------------------------------- 18-8.3 S1명령으로최대구동전류설정하기 ------------------------------- 19-8.4 S1명령으로최대허용전류설정하기 ------------------------------- 20-8.5 S2명령어를이용한위치루프게인설정 ----------------------------- 21-8.6 S2명령어를이용한속도루프게인설정 ------------------------------ 22-8.7 S2명령어를이용한속도루프시정수설정 ---------------------------- 23-8.8 S2명령어를이용한속도 LIMIT 설정 -------------------------------- 24-8.9 S2명령어를이용한토크 LIMIT 설정 ------------------------------- 25 9. 명령프로토콜설명 ------------------------------------------------------ 26 10. 명령프로토콜예시 - 10.1 Ss명령어를사용한위치제어예시 -------------------------------- 36-10.2 ST명령어를사용한위치제어예시 -------------------------------- 37-10.3 SS명령어를사용한위치제어예시 -------------------------------- 38-10.4 SC명령어를사용한위치제어예시 -------------------------------- 39-10.5 Sr명령어를사용한위치제어예시 -------------------------------- 40-10.6 Sa/SV명령어를사용한속도제어예시 ----------------------------- 41-10.7 SV명령어를이용한가 / 감속-시간그래프 ---------------------------- 42-10.8 ED명령어를사용한작동중정지 --------------------------------- 43-10.9 홈관련통신예시 -------------------------------------------- 44 11. Fault 처리 ---------------------------------------------------------- 45-2 -
2. 제품의특징 8~24V 넓은전원입력범위 실시간위치 / 속도제어기능 초소형사이즈 (60mm X 87mm X 15mm) 2축 BLDC모터동시 / 독립제어가능 Hall Sensor와 Encoder Sensor를이용하여 BLDC모터구동이가능 RS232 통신방식지원 파라미터확인, 변경, 저장 (EEPROM) 기능 검증된모터구동전용칩사용 (L6234) - 3 -
3. 시스템의구성 Encoder 2 전원입력 Motor2, Hall Sensor2 Motor1, Hall Sensor1 Home Sensor RS232 통신 Encoder 1-4 -
4. 제품의구성 분류이름설명 1 Power Connector 1 GND 2 DC 8~24V 입력 3 DC 8~24V 입력 4 GND 1 BOOT 5 2 2 RS232 Connector 2 TXD 3 RXD 4 GND 5 GND 1 1 VCC (3.3V) 1 4 2 Hall Sensor1 IN 1 7 1 3 3 Home Sensor Connector 3 Hall Sensor2 IN 4 GND 5 NC 6 NC 7 GND - 5 -
4. 제품의구성 분류이름설명 1 NC 2 VCC (5V) 3 GND 4 NC 4 Encoder Connector 5 Encoder /A 상 6 Encoder A 상 7 Encoder /B 상 10 8 9 7 2 4 1 3 8 Encoder B 상 6 4 5 3 6 8 5 7 9 Encoder /I 상 2 1 10 9 10 Encoder I 상 4 1 Motor U 상출력 2 Motor V 상출력 3 Motor W 상출력 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 5 Motor/Hall Connector 4 VCC (5V) 5 GND 5 6 Hall Sensor 1 상입력 7 Hall Sensor 2 상입력 8 Hall Sensor 3 상입력 - 6 -
5. 제품의배선 5.1 전원배선 1 2 GND DC 8~24V 3 DC 8~24V 4 GND 1 번핀을의미합니다. 전원의잘못된결선은제어기와모터파손의원인이되오니배선을확인하신후결선하여주시기바랍니다. - 7 -
5. 제품의배선 5.2 통신배선 (RS232) 5 4 3 2 1 MOLEX 5P GND GND RXD TXD Boot GND 5 4 TXD 3 RXD 2 1 6 7 8 9 DIP SUB 9P 1 번핀을의미합니다. 5pin RS232 커넥터의 1 번핀 (Boot) 은 Firmware Download 를위해할당된핀으로서, 일반적인통신시 1 번핀 (Boot) 은연결하지않아도됩니다. - 8 -
5. 제품의배선 5.3 Motor/Hall Sensor 배선 U MOTOR U 상 MOTOR V 상 MOTOR W 상 VCC (5V) GND Hall Sensor 1 상 Hall Sensor 2 상 Hall Sensor 3 상 H3 H2 MOTOR U 상 MOTOR V 상 MOTOR W 상 VCC (5V) GND Hall Sensor 1 상 Hall Sensor 2 상 Hall Sensor 3 상 W H1 V 사용하시는 BLDC 모터 U, V, W 상 3 상을정확히확인후결선해주십시오. 잘못된결선은제어기와모터의파손원인이됩니다. Hall Sensor 의배선을확인하신후정확히결선해주십시오. 잘못된결선은제어기와모터의파손원인이됩니다. - 9 -
5. 제품의배선 5.4 Encoder 배선 EncoderA EncoderB Encoder I VCC (5V) 10 8 6 4 2 9 7 5 3 1 /Encoder A /Encoder B /Encoder I GND GND / Encoder A / Encoder B / Encoder I 1 3 5 7 9 2 4 6 8 10 VCC (5V) EncoderA EncoderB EncoderI 1 번핀을의미합니다. Encoder 의정확한결선을위해배선을참고하여주십시오. 잘못된결선은제어기와모터의파손원인이됩니다. - 10 -
5. 제품의배선 5.5 Home Sensor 배선 1 2 3 4 5 6 7 VCC (3.3V) Hall Sensor1 IN Hall Sensor2 IN GND GND 1 번핀을의미합니다. Home Sensor 의잘못된결선은제어기와모터파손의원인이되오니배선을확인하신후결선하여주시기바랍니다. Hall Sensor1 IN, Hall Sensor2 IN 는제어기의홈위치검색용센서입력으로사용할수있습니다. - 11 -
6. 통신프로토콜 6.1 통신개요 모션뱅크의제어기와통신하기위해서는제어기의프로토콜을준수하여통신을해야합니다. 해당제품은 ASCII 형태의데이터를사용하기때문에그에맞는명령어를사용하셔야합니다. ASCII 는 0 ~ 255 (8 비트 ) 를사용합니다. Port 는 PC 사양에맞게설정하셔야합니다. (Port 확인방법 P13 참조 ) (Port 변경방법 P14 참조 ) 제품의테스트프로그램을다운받은후우측과같은셋팅값을설정해주시기바랍니다. ( 셋팅방법은 P15 참조 ) Baudrate ( 통신속도 ) Data Bits ( 데이터비트 ) Stop Bits ( 정지비트 ) Parity ( 패리티 ) Port Com Port Setting 19200 8 1 None COM Number - 12 -
6. 통신프로토콜 6.2 Port 확인방법 1. 실행프로그램을클릭한후 devmgmt.msc 을입력합니다. 2. 포트 (COM & LPT) 를클릭합니다. 3.Port 를확인합니다. - 13 -
6. 통신프로토콜 6.3 Port 변경방법 1.USB Serial Port 를마우스오른쪽버튼을누르고속성을클릭합니다. 2. 속성창이뜨면포트설정을클릭한후에고급 (A) 를클릭합니다. 3. 고급설정창에서원하는 COM 포트번호를설정한후에확인을누릅니다. - 14 -
6. 통신프로토콜 6.4 RS232 통신 ( 하이퍼터미널세팅방법 ) 1. 하이퍼터미널을엽니다. 2.Name( 이름 ) 입력후확인 OK 버튼을누릅니다. 4. 포트등록정보창에서아래와같이설정후적용 확인을누릅니다. 비트 / 초 : 19200, 흐름제어 : 없음 3. 컨버터에할당된 Port 를선택하고확인을누릅니다. - 15 -
7. 명령프로토콜개요 RS232 통신 Command message ( 명령어 ) 호스트 (PC) Response message ( 응답 ) 컨트롤러 호스트가 Command Message를컨트롤러에전송하게되면컨트롤러는 Command Message에상응하는 Response Message를호스트에전송하게됩니다. 호스트가전송하는 Command Message의종료문자는크게 3가지로이루어져있습니다. ; 명령어를사용하고끝내는통상적인종료문자입니다.? 설정한명령어를확인할때사용하는종료문자입니다.! 컨트롤러에서발생된예외상황에의해호스트에일방적으로송신하는종료문자입니다. - 16 -
8. 모터구동파라미터설정 8.1 S1 을이용한엔코더타입설정 S1001 명령은엔코더타입을설정하는명령어입니다. 엔코더타입은오픈컬렉터방식과라인드라이버방식으로나뉘며이제품은라인드라이버방식만을지원합니다. 명령어포맷 S1001,ddddd,ddddd; 모터 2의엔코더타입설정 (00001) 모터 1의엔코더타입설정 (00001) 엔코더타입명령어 S1 을이용한엔코더타입설정예시 * 설정전기본값 : S1001,00001,00001; 명령어 (Command msg) 응답 (Response msg) 설명 1 S1001,00001,00001; S1001,00001,00001; 제어기의엔코더타입을라인드라이버로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S1001? S1001,00001,00001; 설정한엔코더타입을확인합니다. - 17 -
8. 모터구동파라미터설정 8.2 S1 을이용한엔코더펄스설정 S1002 명령은모터가 1 회전할때엔코더펄스수를설정하는명령어입니다. 명령어포맷 S1002,ddddd,ddddd; 모터 2의엔코더펄스설정 (00000~10000) (pulse/rev) 모터 1의엔코더펄스설정 (00000~10000) (pulse/rev) 엔코더펄스명령어 S1 을이용한엔코더펄스설정예시 명령어 (Command msg) 응답 (Response msg) 1 S1002,00500,02500; S1002,00500,02500; * 설정전기본값 : S1002,00128,00128; 설명 모터 1 의엔코더펄스값을 500pulse/rev 으로설정하고모터 2 의엔코더펄스값을 2500pulse/rev 으로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S1002? S1002,00500,02500; 설정한엔코더펄스값을확인합니다. - 18 -
8. 모터구동파라미터설정 8.3 S1 을이용한최대구동전류설정 S1003 명령은제어시사용하는최대구동전류값을설정하는명령어입니다. 제어기측에서모터로흐르는전류값을제한할수있습니다. 명령어포맷 S1003,ddddd,ddddd; 모터 2 의최대구동전류설정 (00000~02500) (ma) 모터 1 의최대구동전류설정 (00000~02500) (ma) 최대구동전류 명령어 S1 을이용한최대구동전류설정예시 명령어 (Command msg) 응답 (Response msg) 1 S1003,00500,01500; S1003,00500,01500; * 설정전기본값 : S1003,00300,00300; 설명 모터 1 의최대구동전류값을 500mA 로설정하고모터 2 의최대구동전류값을 1500mA 로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S1003? S1003,00500,01500; 설정한최대구동전류값을확인합니다. - 19 -
8. 모터구동파라미터설정 8.4 S1 을이용한최대허용전류설정 S1004 명령은최대허용전류를설정하는명령어입니다. 제어기로입력되는허용전류를제한함으로써구동회로를보호하기위한명령어입니다. 명령어포맷 S1004,ddddd,ddddd; 모터 2 의최대허용전류설정 (00000~02500)(mA) 모터 1 의최대허용전류설정 (00000~02500)(mA) 최대허용전류 명령어 S1 을이용한최대허용전류값설정예시 명령어 (Command msg) 응답 (Response msg) 1 S1004,00500,01500; S1004,00500,01500; * 설정전기본값 : S1004,00899,00899; 설명 모터 1 의허용되는전류값을 500mA 로설정하고모터 2 의허용되는전류값을 1500mA 로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S1004? S1004,00500,01500; 설정한최대허용전류값을확인합니다. - 20 -
8. 모터구동파라미터설정 8.5 S2 명령어를이용한위치루프게인설정 S2001 명령은위치루프게인을설정하는명령어입니다. 명령어포맷 S2001,ddddd,ddddd; 모터 2의위치루프게인설정 (00000~02000)(Hz) 모터 1의위치루프게인설정 (00000~02000)(Hz) 위치루프게인명령어 S2 을이용한위치루프게인값설정예시 명령어 (Command msg) 응답 (Response msg) 1 S2001,01500,02000; S2001,01500,02000; * 설정전기본값 : S2001,00005,00005; 설명 모터 1 의위치루프게인값을 1500Hz 로설정하고모터 2 의위치루프게인값을 2000Hz 로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S2001? S2001,01500,02000; 설정한위치루프게인값을확인합니다. - 21 -
8. 모터구동파라미터설정 8.6 S2 명령어를이용한속도루프게인설정 S2002 명령은속도루프게인을설정하는명령어입니다. 명령어포맷 S2002,ddddd,ddddd; 모터 2 의속도루프게인설정 (00000~02000)(Hz) 모터 1 의속도루프게인설정 (00000~02000)(Hz) 속도루프게인 명령어 S2 을이용한속도루프게인값설정예시 명령어 (Command msg) 응답 (Response msg) 1 S2002,01500,00500; S2002,01500,00500; * 설정전기본값 : S2002,00005,00005; 설명 모터 1 의속도루프게인값을 1500Hz 로설정하고모터 2 의속도루프게인값을 500Hz 로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S2002? S2002,01500,00500; 설정한속도루프게인값을확인합니다. - 22 -
8. 모터구동파라미터설정 8.7 S2 명령어를이용한속도루프시정수설정 S2003 명령은속도루프시정수를설정하는명령어입니다. 명령어포맷 S2003,ddddd,ddddd; 모터 2 의속도루프시정수설정 (00000~02500)(ms) 모터 1 의속도루프시정수설정 (00000~02500)(ms) 속도루프시정수 명령어 S2 을이용한속도루프시정수설정예시 명령어 (Command msg) 응답 (Response msg) 1 S2003,01500,00500; S2003,01500,00500; * 설정전기본값 : S2003,00030,00030; 설명 모터 1 의속도루프시정수를 1500ms 모터 2 의속도루프시정수를 500ms 로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S2003? S2003,01500,00500; 설정한속도루프시정수값을확인합니다. - 23 -
8. 모터구동파라미터설정 8.8 S2 명령어를이용한속도 LIMIT 설정 S2004 명령은속도 LIMIT 을설정하여모터를보호하기위한명령어입니다. 명령어포맷 S2004,ddddd,ddddd; 모터 2의속도 LIMIT 설정 (00000~20000)(rpm) 모터 1의속도 LIMIT 설정 (00000~20000)(rpm) 속도 LIMIT 명령어 S2 을이용한속도 LIMIT 설정예시 명령어 (Command msg) 응답 (Response msg) 1 S2004,03500,04500; S2004,03500,04500; * 설정전기본값 : S2004,11000,11000; 설명 모터 1 의속도 LIMIT 을 3500rpm 모터 2 의속도 LIMIT 을 4500rpm 으로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S2004? S2004,03500,04500; 설정한속도 LIMIT 값을확인합니다. - 24 -
8. 모터구동파라미터설정 8.9 S2 명령어를이용한토크 LIMIT 설정 S2005 명령은토크 LIMIT 을설정하는명령어입니다. 명령어포맷 S2005,ddddd,ddddd; 모터 2 의토크 LIMIT 설정 (00000~00300)(%) 모터 1 의토크 LIMIT 설정 (00000~00300)(%) 토크 LIMIT 명령어 S2 을이용한토크 LIMIT 설정예시 명령어 (Command msg) 응답 (Response msg) 1 S2005,00300,00200; S2005,00300,00200; * 설정전기본값 : S2005,00300,00300; 설명 모터 1 의토크 LIMIT 을 300% 모터 2 의토크 LIMIT 을 200% 로설정합니다. 2 SE; SE; 파라미터를저장합니다. 3 S2005? S2005,00300,00200; 설정한토크 LIMIT 값을확인합니다. - 25 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 1 Q1? Q1ABCD, ABCD; 모터2 모터1 Q1ABCD,ABCD; 작동이상유무 위치도달여부 모터구동상태 현재동작상태요청모터구동가능여부 >> 호스트 (PC) 의요청에의해 4자리로구성된 2 데이터 ( 모터1, 모터2) 를전송합니다. 2개의데이터는현재컨트롤러와드라이버에상태를나타냅니다. A( 모터구동가능여부 ) B( 모터구동상태 ) C( 위치도달여부 ) D( 작동이상유무 ) E : enable- 모터구동가능 D : disable- 모터구동불가능 R : run- 모터구동상태 S : stop- 모터정지상태 I : Inposition - 위치에도달 O : Outposition - 위치에도달하지못함 A : alarm-fault 발생 C : clear- 정상 Ex)Q1EROC,ERIC - 26 - 모터2 : 정상모터2 : 위치에도달모터2 : 모터구동상태모터2 : 모터구동가능모터1 : 정상모터1 : 위치에도달하지못함모터1 : 모터구동상태모터1 : 모터구동가능
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 2 BRd; BRd; >> Baudrate를설정합니다. 0 : 9600 1 : 19200 2 : 38400 3 : 57600 4 : 115200 *Baudrate 설정을설정한후테스트프로그램에 Baudrate도재설정해주시기바랍니다. Ex)BR1; -Baudrate를 19200으로설정합니다. * 테스트프로그램 Baudrate 설정 P15 참조 BR? BRd; >> 설정한 Set Baudrate 를확인합니다. 3 PE; PE; >> Motor 출력 ON 명령에의해모터출력을 ON 합니다. * 모터구동을하시려면꼭사용하여야하는명령어입니다. 4 PD; PD; >> Motor 출력 OFF 명령에의해모터출력을 OFF 합니다. 5 ME; ME; >> Motion Enable 명령에의해설정한 motion 을시작합니다. - 27 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 7 MD; MD; >> Motion Disable 명령에의해설정한 motion 을멈춥니다. 8 ED; ED; >> Emergency Stop 명령에의해 motion 을급정지합니다. 9 SMd; SMd; >> Motor 의제어모드설정 ( 위치제어모드 / 속도제어모드 ) 명령에의해모터의제어모드를설정합니다. 0 : 제어모드비활성화 1 : 속도제어모드 2 : 이동속도를설정하여목표위치까지도달하는위치제어모드 3 : 이동시간을설정하여목표위치까지도달하는위치제어모드 Ex)SM1; - 제어기의제어모드를속도제어모드로설정합니다. SM? SMd; >> 현재 Motor 의제어모드설정을확인합니다. - 28 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 10 TQ? TQFFF, FFF; TQFFF,FFF; 모터2의정격전류에대한비율모터1의정격전류에대한비율 >> 구동되고있는현재모터전류를요청합니다.( 단위 %/ 최대 100%) >> 호스트 (pc) 의요청에의해현재모터전류를정격전류에대한비율로표시합니다. Ex)TQ050,050; -전류가정격전류의 50% 흐르고있습니다. SV±ddddd,±ddddd; 11 SV±ddddd, ±ddddd; SV±ddddd, ±ddddd; >> 속도제어모드시속도를설정합니다. >> + 는정방향 는역방향으로설정합니다. ( 단위는 rpm) Ex)SV+00100,-00200; - 모터 1 : 정방향 100rpm, 모터 2 : 역방향 200rpm 모터 2 속도모터 1 속도 SV? SV±ddddd, ±ddddd; >> 설정한속도값을확인합니다. Saddddd,ddddd; 12 Saddddd, ddddd; Saddddd, ddddd; 모터2의가 / 감속시간모터1의가 / 감속시간 >> 속도제어모드시가 / 감속시간을설정합니다.( 단위는 ms) Ex)Sa10000,10000; -모터 1,2의가감속시간은 10000ms로설정합니다. Sa? Saddddd, ddddd; >> 설정한가 / 감속시간을확인합니다. - 29 -
9. 명령프로토콜설명 구분 13 14 15 명령어 Command message PC-> 컨트롤러 PAFFFFFFF, FFFFFFF; PA? SSddddd, ddddd; SS? SCddddd, ddddd; 응답 Response Message 컨트롤러 ->PC PAFFFFFFF, FFFFFFF; PAFFFFFFF, FFFFFFF; SSddddd, ddddd; SSddddd, ddddd; SCddddd, ddddd; 설명 PAFFFFFFF,FFFFFFF; 모터2의목표위치모터1의목표위치 >> 위치제어모드시의목표위치설정합니다.( 엔코더초기값은 0x8000000) Ex)PA8000FFF,7FFF000; -현재엔코더값 0x8000000을기준으로모터 1은 0xFFF(4095) 만큼정방향이동, 모터 2는 0x1000(4096) 만큼이동합니다. >> 설정한목표위치값을확인합니다. SSddddd,ddddd; 모터2의이동속도값모터1의이동속도값 >> 위치제어모드시의목표지점까지이동을할때이동속도값설정 ( 단위는 rpm) >> 이동속도설정에의한위치제어모드시의이동속도를설정합니다. Ex)SS01000,01000; -모터 1,2의위치제어시의속도를 1000rpm으로설정합니다. >> 설정한이동속도값을확인합니다. SCddddd,ddddd; 모터2 변경할이동속도모터1 변경할이동속도 >> 위치제어모드시의구동하고있는모터의이동속도값을변경합니다. Ex) SS01000,01000; -모터 1,2의위치제어시의속도를 1000rpm으로변경설정합니다. ( 등속구간에서적용 ) - 30 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 16 STFFFFFFF, FFFFFFF; STFFFFFFF, FFFFFFF; STFFFFFFF,FFFFFFF; 모터2의이동시간값모터1의이동시간값 >> 위치제어모드 (SM3) 일때목표지점이동시목표지점까지의이동시간값을설정합니다.( 단위ms) Ex) ST00000FF,00000FF; -위치제어시의목표지점까지의이동시간을 255ms로설정함, 모터 1,2의속도는목표위치까지의거리에설정된이동시간을나눈후가감속율시간을포함하여자동적으로산출합니다. ST? STFFFFFFF, FFFFFFF; >> 설정한이동시간값을확인합니다. 17 Ssddddd, ddddd; Ssddddd, ddddd; Ssddddd,ddddd; 모터2의가 / 감속시간모터1의가 / 감속시간 >> 위치제어모드 (SM3) 에서의위치구동시의가 / 감속시간을설정합니다. ( 단위ms) >> 이동시간설정에의한위치제어모드시의가감속시간을설정합니다. Ex)Ss00010,00010; -위치제어시모터 1,2의가감속이 10ms에이루어지도록설정합니다. Ss? Ssddddd, ddddd; >> 설정한가 / 감속시간을확인합니다. - 31 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 SrFFFFF,FFFFF; 모터1의목표위치수렴범위모터2의목표위치수렴범위 18 SrFFFFF, FFFFF; SrFFFFF, FFFFF; >> 위치제어모드일때목표위치수렴범위를설정합니다.( 단위 Encoder Count) Ex)Sr00100,00200; - 모터 1 은목표위치에엔코더펄스기준 ±0x100(256) 안으로도달했을때도착으로판단합니다. - 모터 2 는목표위치에엔코더펄스기준 ±0x200(512) 안으로도달했을때도착으로판단합니다. Sr? SrFFFFF, FFFFF; >> 설정한목표위치수렴범위를확인합니다. TGFFFFFFF,FFFFFFF! 모터 2 의목표위치까지남은거리모터 1 의목표위치까지남은거리 19 TG? TGFFFFFFF, FFFFFFF! >> 위치제어모드에서목표위치에도달함을알리고목표위치와남은거리를알립니다. >> 호스트의요청에의해현재위치와목표위치사이에오차 ( 엔코더펄스기준 ) 를리턴혹은목표위치에도달하는순간컨트롤러에서호스트로메시지를전송합니다. Ex) 수렴범위가 0x100(256) 일때 -TG00000FF(255),0000110(272)! 가호스트로전송되는경우에는모터 1 이수렴되었음을알립니다. TG00000FF(256),00000F0(240)! 가호스트로전송되는경우에는모터 1,2 이수렴되었음을알립니다. - 32 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 20 QP? QPFFFFFFF, FFFFFFF; QPFFFFFFF,FFFFFFF; 모터2 현재위치값모터1 현재위치값 >> 현재의위치값 ( 단위 Encoder count) >> 호스트의요청에의해현재의위치값전송합니다. ( 엔코더초기값은 0x8000000) GsD,ddddd; 모터 1,2의 homing 동작시 rpm 모터 1,2의동작모드 >> 홀센서를사용한 homing 동작설정 >> 1리 (D) 10 진수는동작모드, 나머지 5자리 (ddddd) 10진수는홈동작시속도입니다.( 혹은최대속도 )( 단위rpm) 21 GsD,ddddd; GsD,ddddd; 0 : 홈위치신호를상승엣지에서검출하고, 다수의상승엣지발생시에는탐색방향기준첫번째엣지를홈위치로정합니다. 1 : 홈위치신호를하강엣지에서검출하고, 다수의하강엣지발생시에는탐색방향기준첫번째엣지를홈위치로정합니다. Ex)Gs0,01000; - 홈위치신호를상승엣지에서검출하며, homing 동작시모터 1,2 는 1000rpm 으로동작하게됩니다. * 최저속도 : 1000rpm Gs? GsD,ddddd; >> 설정한동작모드와홈동작시속도를확인합니다. - 33 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 EAdd,FFFFFFF,FFFFFFF; 모터 1 의모드설정모터 2 의모드설정 모터 2 의엔코더카운터값모터 1 의엔코더카운터값 22 EAdd,FFFFFFF, FFFFFFF; EAdd, FFFFFFF, FFFFFFF; >> 엔코더카운터값재설정 ( 단위 Encoder count) >> 2 자리의 10 진수에의해모터선택및모드설정, 첫째자리는모터 1, 둘째자리는모터 2, 나머지 7 자리 16 진수는모터 1,2 엔코더카운터값입니다. 0 : 설정안함 1 : 엔코더카운터값초기값으로재설정전송된엔코더카운터값은무시하고, 0x8000000 로설정합니다. 2 : 엔코더카운터값전송된엔코터카운터값으로설정합니다 3 : 현재의엔코더카운터값을전송된엔코더카운터값만큼증가시킵니다. 4 : 현재의엔코더카운터값을전송된엔코더카운터값만큼감소시킵니다. Ex)-EA01,FFFFFFF,FFFFFF; 모터 1 은엔코더카운터재설정안함, 모터 2 는엔코더카운터값을 0x8000000 으로재설정합니다. -EA22,00000FF(255),00000D4(212); 모터 1,2 의엔코더카운터값을각각 0x00000FF(255),0x00000D4(212) 으로재설정합니다. -EA34,00000FD(253),00000F0(250); 모터 1 은현재의엔코더카운터값에서 0x00000FD(253) 만큼증가시켜재설정하고, 모터 2 는현재의엔코더카운터값에서 0x00000F0(250) 만큼감소시켜재설정합니다. * 최대값 : 0xFFFFFFF; 최소값 : 0x0000000; - 34 -
9. 명령프로토콜설명 구분 명령어 Command message PC-> 컨트롤러 응답 Response Message 컨트롤러 ->PC 설명 23 Ghdd; Ghdd; Ghdd; 모터2의동작수행모드모터1의동작수행모드 >> 홀센서를사용한 homing 동작수행 >> 첫째자리는모터1, 둘째자리는모터2, 설정된 homing 동작이완료되면호스트로동작완료메시지를보냅니다. 0 : 선택안함 1 : 정방향으로탐색하여 homing 동작수행, homing 동작완료메시지를전송합니다. 2 : 역방향으로탐색하여 homing 동작수행, homing 동작완료메시지를전송합니다. 3 : homing 동작완료메시지 Ex) Gh01; Gh01; Gh03! ( 모터 2가홈동작완료되면전송 ) Gh02; Gh02; GH03! ( 모터 2가홈동작완료되면전송 ) Gh11; Gh11; Gh33! ( 모터1,2가홈동작완료되면전송 ) Gh21; Gh21; Gh33! ( 모터1,2가홈동작완료되면전송 ) 24 Qh? Gh? Ghdd! >> Homing 동작시설정한동작수행모드를확인합니다. QhFFFFFFF, FFFFFFF; QhFFFFFFF,FFFFFFF; 모터 2 의홈위치값 모터1의홈위치값 >> 홀센서감지시점의위치값요청합니다.( 단위 Encoder count) >> 홀센서감지시점의홈위치값리턴합니다. ( 홈위치값은산출방법 Gs에의해 ) >> 홈위치가검출되지않은상태인경우에값을요청하면값을숫자대신기호등으로표시합니다. Ex)Qh00000B8(184),00000B9(185); -회전에의해홈위치가감지된시점이모터 1에서는엔코더카운터값이 0x00000B8(184) 이고, 모터2에서는엔코더카운터값이 0x00000B9(185) 됩니다. - 35 -
10. 명령프로토콜예시 10.1 Ss 명령어를사용한위치제어예시 현재의엔코더값을기준으로모터 1,2 모두정방향으로 0x60000 만큼가감속이 6000ms 에이루어집니다. 순차명령어설명 1 PE; Motor 출력 ON 합니다. 2 SM3; 모터 1,2 를이동시간설정에따른위치제어모드로설정합니다. 3 Ss06000,06000; 위치제어시모터 1,2 의가감속이 6000ms 에이루어지도록설정합니다. 4 PA8060000,8060000; 모터 1,2 모두정방향으로 0x60000 만큼이동합니다. 5 ME; 명령에의해 motion 을시작합니다. 6 MD; 명령에의해 motion 을정지합니다. *motion 을정지하려고할때사용해주시기바랍니다. - 36 -
10. 명령프로토콜예시 10.2 ST 명령어를사용한위치제어예시 현재의엔코더값을기준으로모터 1 은정방향으로 0x60000 만큼모터 2 는정방향으로 0x10000 만큼이동시간 10ms 안에이동합니다. 순차명령어설명 1 PE; Motor 출력 ON 합니다. 2 SM3; 모터 1,2 를이동시간설정에따른위치제어모드로설정합니다. 3 ST000000A,000000A; 4 PA8060000,8010000; 위치제어모드시목표위치까지의이동시간을 10ms 로설정합니다. 모터 1 은정방향으로 0x60000 만큼모터 2 는정방향으로 0x10000 만큼이동합니다. 5 ME; 명령에의해 motion 을시작합니다. 6 MD; 명령에의해 motion 을정지합니다. *motion 을정지하려고할때사용해주시기바랍니다. - 37 -
10. 명령프로토콜예시 10.3 SS 명령어를사용한위치제어예시 현재의엔코더값을기준으로모터 1 은정방향으로 0x70000 만큼모터 2 는정방향으로 0x60000 만큼 3000rpm 으로회전하게됩니다. 순차명령어설명 1 PE; Motor 출력 ON 합니다. 2 SM2; 모터 1,2 를이동속도설정에따른위치제어모드로설정합니다. 3 SS03000,05000; 4 PA8070000,8060000; 위치제어시모터 1 의속도를 3000rpm 으로설정하고모터 2 의속도를 5000rpm 으로설정합니다. 모터 1 을정방향으로 0x70000 만큼모터 2 를정방향으로 0x60000 만큼이동합니다. 5 ME; 명령에의해 motion 을시작합니다. 6 MD; 명령에의해 motion 을정지합니다. *motion 을정지하려고할때사용해주시기바랍니다. - 38 -
10. 명령프로토콜예시 10.4 SC 명령어를사용한위치제어예시 현재의엔코더값을기준으로모터 1,2 모두정방향으로 0x70000 만큼 3000rpm 으로회전하다가 500rpm 으로회전속도를변경할수있습니다. 순차명령어설명 1 PE; Motor 출력 ON 합니다 2 SM2; 모터 1,2 를이동속도설정에따른위치제어모드로설정합니다. 3 SS03000,03000; 위치제어시모터 1,2 의속도를 3000rpm 으로설정합니다. 4 PA8070000,8070000; 모터 1,2 모두정방향으로 0x70000 만큼이동합니다. 5 ME; 명령에의해 motion 을시작합니다. 6 SC00500,00500; 위치제어시모터 1,2 의속도를 500rpm 으로변경설정합니다. 7 MD; 명령에의해 motion 을정지합니다. *motion 을정지하려고할때사용해주시기바랍니다. - 39 -
10. 명령프로토콜예시 10.5 Sr 명령어를사용한위치제어예시 현재의엔코더값을기준으로모터 1,2 모두 3000rpm 으로회전을하며목표위치인 0x70000 의 ±0x200 안으로도달했을때도착으로판단합니다. 순차명령어설명 1 PE; Motor 출력 ON 합니다. 2 SM2; 모터 1,2 를이동속도설정에따른위치제어모드로설정합니다. 3 SS03000,03000; 위치제어시모터 1,2 의속도를 3000rpm 으로설정합니다. 4 PA8070000,8070000; 모터 1,2 모두정방향으로 0x70000 만큼이동합니다. 5 Sr00200,00200; 모터 1,2 의목표위치에도착수렴범위를 ±0x200 로설정합니다. 6 ME; 명령에의해 motion 을시작합니다. 6 MD; 명령에의해 motion 을정지합니다. *motion 을정지하려고할때사용해주시기바랍니다. - 40 -
10. 명령프로토콜예시 10.6 Sa/SV 명령어를이용한속도제어예시 아래표와같이순서대로명령을입력하면 Sa 로설정된가 / 감속률로 SV 로설정한속도 [rpm] 로회전하게됩니다. 순차명령어설명 1 PE; Motor 출력 ON 합니다. 2 SM1; 모터 1,2 를속도제어모드로설정합니다. 3 Sa01100,02200; 4 SV+06000,-06000; 모터 1 의가 / 감속시간을 1100ms 모터 2 의가 / 감속시간을 2200ms 로설정합니다. * 가속시간 : 0 부터 1100ms 까지가속감속시간 : motion 정지부터 1100ms 후까지감속 모터 1 은정방향 6000rpm, 모터 2 는역방향 6000rpm 설정합니다. 5 ME; 명령에의하여 Motion 을시작합니다. 6 MD; 명령에의해 motion 을정지합니다. *motion 을정지하려고할때사용해주시기바랍니다. - 41 -
10. 명령프로토콜예시 10.7 SV 명령어를이용한가 / 감속 - 시간그래프 1100ms 안에 6000rpm 의가 / 감속속도제어를나타내는그래프입니다. 속도 [rpm] 6000rpm 가속구간 감속구간 1100ms 2500ms (motion 정지 ) 3600ms 시간 [ms] - 42 -
10. 명령프로토콜예시 10.8 ED 명령어를이용한작동중정지 아래표와같이순서대로명령을입력하면 Sa 로설정된가 / 감속률로 SV 로설정한속도 [rpm] 로회전하다가 ED 로모터의작동을급정지합니다. 순차명령어설명 1 PE; Motor 출력 ON 합니다. 2 SM1; 모터 1,2 를속도제어모드로설정합니다. 3 Sa00100,00200; 4 SV+01000,-01000; 모터 1 의가감속시간은 100ms 모터 2 의가감속시간은 200ms 로설정합니다. 모터 1 은정방향 1000rpm, 모터 2 는역방향 1000rpm 설정합니다. 5 ME; 명령에의하여 Motion 을시작합니다. 6 ED; 명령에의해 Motion 을급정지합니다. - 43 -
10. 명령프로토콜예시 10.9 홈관련통신예시 아래과정은모터 1,2 가정방향으로탐색하여 homing 동작을수행하고, homing 동작완료시호스트로완료메세지를보냅니다. 홈동작시속도는 500rpm 이다. 순차명령어설명 1 PE; Motor 출력 ON 합니다. 2 Gs1,00500; 3 Gh11; 4 MD; 홈위치신호를하강엣지에서검출, 홈동작시속도는 500rpm 으로설정합니다. 모터 1,2 가정방향으로탐색하여 homing 동작을수행하고, homing 동작이완료되면호스트로동작완료메시지를보냅니다. 명령에의해 motion 을정지합니다. *motion 을정지하려고할때사용해주시기바랍니다. - 44 -
11. Fault 처리 FAULT Code 의표시 제어도중갑자기동작이멈춘다거나전류가높다거나하는등이상증상이발생됐을시에는 Q2 명령어를통해현재컨트롤러의 Fault 상황을나타냅니다. 명령어 Commend Message 응답 Response Message 설명 Q2ABCD,ABCD; 1 Q2? Q2ABCD,ABCD; 모터 2 모터1 정의된 Fault Code(status) 호스트 (PC) 의요청이나상황발생시 4자리로구성된두데이터를전송합니다. 2개의데이터는현재컨트롤러의 Fault 상황을나타냅니다. Fault상황이발생되면종료문자 <!> 로하여데이터를전송합니다. ( 기본 Fault는과전류, 과전압, 속도에러, 홀센서에러 ) A B C D O : Over Voltage U : Under Voltage N : None H : Open Hall sensor C : Current sensing N : None C : Over Current L : Over Load S : Over Speed P : Over Position N : None E : Eeprom P : Parameter N : None - 45 -
11. Fault 처리 FAULT 표시의예 응답 Response Message 1 Ex) Q2ONNN,NNCN! 2 Ex) Q2NNSN,NNLN! 3 Ex) Q2UNNN,NNPN! 설명 >> 모터 1 은과전압으로인한 Fault 상황발생모터 2 는과전류로인한 Fault 상황발생 >> 모터 1 은속도에러로인한 Fault 상황발생모터 2 는과부화로인한 Fault 상황발생 >> 모터 1 은저전압으로인한 Fault 상황발생모터 2 는위치에러로인한 Fault 상황발생 FAULT 처리의예 명령어 Commend Message 설명 1 Q2? Q2? 명령어를전송하여리턴되는데이터를분석하여현재 Fault 상태를판단 2 PR: Fault 가발생한경우원인을제거한후 PR 명령을사용하여 Fault Flag 를 Clear 함 - 46 -