MoonWalker Series Motor Controllers User’s Manual 12. I/O 오브젝트
MoonWalker Series
Motor Controllers
User’s Manual
MW-MDC24D100S / MW-MDC24D100D
MW-MDC24D200S / MW-MDC24D200D
MW-MDC24D500S / MW-MDC24D500D
※ 사용자 매뉴얼에 포함된 정보는 정확하고 신뢰성이 있는 내용입니다. 그러나 출판 당시 발견되지 않은 오류가 있을 수 있으니 사용자는 자신의 제품 검증을 수행하시기 바라며, 전적으로 사용자 매뉴얼에 포함된 정보에 의존하지 마시기 바랍니다.
12. I/O 오브젝트
제어기는 외부 센서와 액츄에이터를 연결할 수 있는 디지털 입력, 디지털 출력, 아날로그 입력, 펄스 입력 포트를 가지고 있습니다. 이러한 입출력 포트들은 모터제어기의 특정 기능으로 매핑되어 모터제어기가 외부로 인터페이스 할 수 있도록 합니다.
이 장에서는 제어기의 입출력 채널에 관련된 오브젝트들에 대해 설명합니다.
그림 12 1 I/O Objects |
12. 1 디지털 입력
이 절에서는 디지털 입력 채널들에 대해 공통으로 사용되는 오브젝트들에 대해 다룹니다.
표 12‑1 디지털 입력 오브젝트
Long name, Short name | Index/ Sub-index | Type | Description |
num_di, ndi | 60/0 | I8 (CN) | 디지털 입력 채널의 수 |
di_enable, die | 61/0 | I32 (CP) | 각 비트별 해당 디지털 입력 채널의 사용 여부 |
di_invert, dii | 62/0 | I32 (CP) | 각 비트별 해당 디지털 입력 채널의 반전 여부 |
di_all_values, di | 63/0 | I32 (ST) | 디지털 입력 채널들을 하나의 32bit 값으로 모음 |
상기 표에서 Long Name과 Short Name은 텍스트 모드에서 오브젝트를 엑세스 할 수 있도록 부여된 이름입니다. 그리고 Index와 Sub-index는 오브젝트를 엑세스 하기 위한 주소입니다.
Type 열은 오브젝트의 형식을 나타냅니다:
· I8 – 부호를 가지는 8bit 정수형 수
· I16 – 부호를 가지는 16bit 정수형 수
· I32 – 부호를 가지는 32bit 정수형 수
· F32 – 부호를 가지는 32bit 실수형 수
Type 열의 괄호 안 표기는 다음과 같습니다:
· (CN) – Constant 오브젝트
· (CM) – Command 오브젝트
· (ST) – Status 오브젝트
· (CP) – Configuration Parameter 오브젝트
· (VA) – Variable 오브젝트
12.1.1 num_di – Number of DI
num_di 상수는 제어기가 보유한 디지털 입력 채널의 수를 나타냅니다. 디지털 입력 채널의 수는 제어기 모델에 따라 다릅니다. 해당 제품의 데이터시트에서도 참조 가능합니다.
12.1.2 di_enable – DI Enable
di_enable 파라미터의 각 비트는 해당 디지털 입력 채널의 사용 여부를 결정합니다:
Bit0 – 디지털 입력 채널 1의 사용 여부
Bit1 – 디지털 입력 채널 2의 사용 여부
…
해당 비트가 0인 경우 디지털 입력 채널은 사용 불가능합니다. 1인 경우 디지털 입력 채널은 사용 가능합니다.
12.1.3 di_invert – DI Invert
di_invert 파라미터의 각 비트는 해당 디지털 입력 채널의 반전 여부를 결정합니다:
Bit0 – 디지털 입력 채널 1의 반전 여부
Bit1 – 디지털 입력 채널 2의 반전 여부
…
해당 비트가 0인 경우 디지털 입력 채널의 신호를 그대로 읽습니다. 1인 경우는 디지털 입력 채널의 입력 신호를 반전하여 읽습니다. 즉, 0인 경우 1로, 1인 경우 0으로 읽습니다.
12.1.4 di_all_values – DI All Values
di_all_values 상태의 각 비트는 해당 디지털 입력 채널의 값(di_value)을 나타냅니다:
Bit0 – 디지털 입력 채널 1의 값
Bit1 – 디지털 입력 채널 2의 값
…
이 상태는 모든 디지털 입력 채널의 값을 한 번에 읽을 수 있도록 합니다.
12.2 디지털 입력 채널
다음은 디지털 입력의 각 채널 별로 설정되는 오브젝트입니다.
표 12‑2 디지털 입력 채널 오브젝트
Long name, Short name | Index/ Sub-index | Type | Description |
di_value, div | 201/ 1~n | I8 (ST) | 디지털 입력 채널의 값 (범위: 0 or 1) |
di_function, dif | 202/ 1~n | I16 (CP) | 디지털 입력 채널을 특정 모터의 동작으로 매핑 |
상기 표에서 Sub-index에 사용된 n은 디지털 입력 채널의 수(num_di)를 나타냅니다.
12.2.1 di_value – DI Value
di_value 상태는 디지털 입력 채널의 값을 나타냅니다. 값으로 1bit의 0이나 1을 가지며, di_invert에서 설정된 반전 여부가 적용된 값입니다.
12.2.2 di_function – DI Function
di_function 파라미터는 제어기의 디지털 입력 채널을 특정 모터의 디지털 입력 버퍼의 동작으로 매핑합니다. 이 파라미터의 상위 8bit로는 대상 모터를 선정합니다:
· 0×0000 – 채널 1번에 연결된 모터 선택
· 0×0100 – 채널 2번에 연결된 모터 선택
하위 8bit로는 동작을 선택합니다:
0 – None
1 – Emergency Stop
2 – Quick Stop
3 – Stop
4 – Run Script
5 – Forward Limit Switch
6 – Reverse Limit Switch
7 – Invert Direction
8 – Load Home Counter
12.3 디지털 출력
이 절에서는 디지털 출력 채널들에 공통으로 사용되는 오브젝트들에 대해 다룹니다.
표 12‑3 디지털 출력 오브젝트
Long name, Short name | Index/ Sub-index | Type | Description |
num_do, ndo | 65/0 | I8 (CN) | 디지털 출력 채널의 수 |
do_enable, doe | 66/0 | I32 (CP) | 각 비트별 해당 디지털 출력 채널의 활성화 여부 |
do_invert, doi | 67/0 | I32 (CP) | 각 비트별 해당 디지털 출력 채널의 반전 여부 |
do_all_values, do | 68/0 | I32 (ST) | 디지털 출력 채널들을 하나의 32bit 값으로 모음 |
12.3.1 num_do – Number of DO
num_do 상수는 제어기가 가진 디지털 출력 채널의 수를 나타냅니다. 디지털 출력 채널의 수는 제어기 모델에 따라 다릅니다. 해당 제품의 데이터시트에서도 참조 가능합니다.
12.3.2 do_enable – DO Enable
do_enable 파라미터의 각 비트는 해당 디지털 출력 채널의 사용 여부를 결정합니다:
Bit0 – 디지털 출력 채널 1의 사용 여부
Bit1 – 디지털 출력 채널 2의 사용 여부
…
해당 비트가 0인 경우 디지털 출력 채널은 사용 불가능합니다. 1인 경우 디지털 출력 채널은 사용 가능합니다.
12.3.3 do_invert – DO Invert
do_invert 파라미터의 각 비트는 해당 디지털 출력 채널의 반전 여부를 결정합니다:
Bit0 – 디지털 출력 채널 1의 반전 여부
Bit1 – 디지털 출력 채널 2의 반전 여부
…
해당 비트가 0인 경우 디지털 출력 채널의 신호는 변환 없이 출력됩니다. 1인 경우 디지털 출력 채널의 신호는 반전되어 출력됩니다.
12.3.4 do_all_values – DO All Values
do_all_values 변수의 각 비트는 해당 디지털 출력 채널의 값(do_value)을 나타냅니다:
Bit0 – 디지털 출력 채널 1의 값
Bit1 – 디지털 출력 채널 2의 값
…
이 변수는 모든 디지털 출력 채널의 값을 한 번에 내보낼 수 있도록 합니다.
12.4 디지털 출력 채널
다음은 디지털 출력의 각 채널 별로 설정되는 오브젝트입니다.
표 12‑4 디지털 출력 채널 오브젝트
Long name, Short name |
Index/ Sub-index |
Type | Description |
do_value, dov | 211/ 1~m | I32 (VA) | 디지털 출력 채널의 값 (범위: 0 or 1) |
do_function, dof | 212/ 1~m | I32 (CP) | 디지털 출력 채널을 특정 모터의 상태로 매핑 |
상기 표에서 Sub-index에 사용된 m은 디지털 출력 채널의 수(num_do)를 나타냅니다.
12.4.1 do_value – DO Value
do_value 변수는 디지털 출력 채널에 값을 읽고 씁니다. 값으로 1bit의 0이나 1을 가지며, do_invert에서 설정된 반전 여부가 적용되기 전의 값입니다. 반전 여부는 디지털 출력 포트로 신호가 나갈 때 적용됩니다.
디지털 출력 채널에 do_function으로 기능이 매핑되지 않은 경우, 사용자가 직접 do_value에 값을 씀으로 디지털 출력 채널로 원하는 값을 내보낼 수 있습니다.
12.4.2 do_function – DO Function
do_function 파라미터는 제어기의 디지털 출력 채널을 특정 모터의 디지털 출력 버퍼의 상태로 매핑합니다. 이 파라미터의 상위 8bit로는 대상 모터를 선정합니다:
0×0000 – 채널 1번에 연결된 모터 선택
0×0100 – 채널 2번에 연결된 모터 선택
하위 8bit로는 상태를 선택합니다:
0 – None
1 – Motor Power ON (Break Release)
2 – Motor is Reversed (Warning Buzzer ON)
3 – High Voltage (Brake Resistor ON)
4 – High Temperature (Cooling Fan ON)
12.5 아날로그 입력
이 절에서는 아날로그 입력 채널에 공통으로 사용되는 오브젝트들에 대해 다룹니다.
표 12‑5 아날로그 입력 오브젝트
Long name, Short name | Index/ Sub-index | Type | Description |
num_ai, nai | 70/0 | I8 (CN) | 아날로그 입력 채널의 수 |
ai_enable, aie | 71/0 | I32 (CP) | 각 비트별 해당 아날로그 입력 채널의 활성화 여부 |
ai_invert, aii | 72/0 | I32 (CP) | 각 비트별 해당 아날로그 입력 채널의 극성 반전 여부 |
12.5.1 num_ai – Number of AI
num_ai 상수는 제거기가 보유한 아날로그 입력 채널의 수를 나타냅니다. 아날로그 입력 채널의 수는 제어기 모델에 따라 다릅니다. 해당 제품의 데이터시트에서도 참조 가능합니다.
12.5.2 ai_enable – AI Enable
ai_enable 파라미터의 각 비트는 해당 아날로그 입력 채널의 사용 여부를 결정합니다:
Bit0 – 아날로그 입력 채널 1의 사용 여부
Bit1 – 아날로그 입력 채널 2의 사용 여부
…
해당 비트가 0인 경우 아날로그 입력 채널은 사용 불가능합니다. 1인 경우 아날로그 입력 채널은 사용 가능합니다.
12.5.3 ai_invert – AI Invert
ai_invert 파라미터의 각 비트는 해당 아날로그 입력 채널의 반전 여부를 결정합니다:
Bit0 – 아날로그 입력 채널 1의 반전 여부
Bit1 – 아날로그 입력 채널 2의 반전 여부
…
해당 비트가 1인 경우, 아날로그 입력 값이 변환 과정을 거쳐 정규화 된 ai_converted_value 값의 극성이 반전됩니다. 즉, -1은 1로 반전되고 1은 -1로 반전됩니다. 0의 값은 그대로 유지됩니다.
12.6 아날로그 입력 채널
다음은 아날로그 입력의 각 채널 별로 설정되는 오브젝트입니다.
표 12‑6 아날로그 입력 채널 오브젝트
Long name, Short name | Index/ Sub-index | Type | Description |
ai_value, aiv | 221/ 1~o | I32 (ST) | 아날로그 입력 채널의 원시 값(raw value) (범위: 0 ~ 4095) |
ai_converted_value, aicv | 222/ 1~o | F32 (ST) | 변환 과정을 거쳐 정규화된 값(normalized value) (범위: -1 ~ 1) |
ai_linearity, ail | 223/ 1~o | I8 (CP) | 지수/로그 변환 형식 지정 |
ai_function, aif | 224/ 1~o | I16 (CP) | 아날로그 입력을 특정 모터의 명령이나 피드백과 매핑 |
ai_input_min, ain | 225/ 1~o | I32 (CP) | 캘리브레이션: 입력 최소값 |
ai_input_center, aic | 226/ 1~o | I32 (CP) | 캘리브레이션: 입력 중앙값 |
ai_input_max, aix | 227/ 1~o | I32 (CP) | 캘리브레이션: 입력 최대값 |
ai_input_deadband, aidb | 228/ 1~o | I32 (CP) | 캘리브레이션: 입력의 데드밴드(deadband) 값 |
상기 표에서 Sub-index에 사용된 o는 아날로그 입력 채널의 수(num_ai)를 나타냅니다.
12.6.1 ai_value – AI Value
아날로그 입력 포트에는 0V 과 5V 사이의 전압이 가해집니다. 전압은 12bits AD 컨버터에 의해 디지털로 변환되어 마이크로컨트롤러가 읽게 됩니다.
ai_value 상태는 아날로그 입력 채널의 값을 나타냅니다. 값은 변환이 이루어지기 전의 0과 4095 사이의 12bits 디지털 값입니다.
12.6.2 ai_converted_value – AI Converted Value
ai_converted_value 상태는 아날로그 입력 채널에서 읽은 원시 값을 변환 과정을 거쳐 -1과 1 사이의 정규화 된 값으로 나타냅니다.
12.6.3 ai_linearity – AI Linearity
ai_linearity 파라미터는 아날로그 입력의 정규화 된 값을 지수/로그 함수로 변환합니다. 이 파라미터의 값으로 다음 중 하나를 선택합니다:
0 – linear(no change) (기본값)
1 – exp weak
2 – exp medium
3 – exp strong
4 – log weak
5 – log medium
6 – log strong
12.6.4 ai_function – AI Function
ai_function 파라미터는 제어기의 아날로그 입력 채널을 특정 모터의 명령 버퍼나 피드백 버퍼, 디지털 입력 버퍼로 매핑 합니다. 이 파라미터의 상위 8bit로는 대상 모터를 선정합니다:
0×0000 – 채널 1번에 연결된 모터 선택
0×0100 – 채널 2번에 연결된 모터 선택
하위 8bit로는 명령 버퍼나 피드백 버퍼, 디지털 입력 버퍼의 기능을 선택합니다:
0 – None
1 – Command: Voltage
2 – Command: Current
3 – Command: Velocity
4 – Command: Position
5 – Feedback: Position
6 – Feedback: Velocity
7 – DI: Emergency Stop
8 – DI: Quick Stop
9 – DI: Slowdown Stop
10 – DI: Run Script
11 – DI: Forward Limit Switch
12 – DI: Reverse Limit Switch
13 – DI: Invert Direction
14 – DI: Load Home Counter
여기서 ‘Command:’로 표기된 기능은 명령 버퍼로 매핑되는 기능입니다. ‘Feedback:’으로 표기된 기능은 피드백 버퍼로 매핑되는 기능입니다. ‘DI’로 표기된 기능은 디지털 입력 버퍼로 매핑되는 기능입니다. 디지털 입력 버퍼로 매핑된 경우, 아날로그 입력 값이 0보다 크면 버퍼 값은 1, 0을 포함하고 0보다 작으면 버퍼 값은 0이 됩니다.
12.6.5 ai_input_min, ai_input_center, ai_input_max – AI Input Min, Center, Max
ai_input_min, ai_input_center, ai_input_max는 아날로그 입력을 정규화하는데 사용되는 캘리브레이션 파라미터들입니다.
ai_input_min 파라미터는 아날로그 입력의 최소값을 나타냅니다. 이 값이 정규화되면 -1이 됩니다. ai_input_center 파라미터는 아날로그 입력의 중앙값을 나타냅니다. 이 값이 정규화되면 0이 됩니다. ai_input_max 파라미터는 아날로그 입력의 최대값을 나타냅니다. 이 값이 정규화되면 1이 됩니다.
ai_input_min 보다 ai_input_center 값이 같거나 커야 하고, ai_input_center 보다 ai_input_max 값이 같거나 커야 합니다.
12.6.6 ai_input_deadband – AI Input Deadband
ai_nput_deadband 파라미터는 아날로그 입력의 중앙값에서 0으로 인식하는 입력 범위를 나타냅니다.
12.7 펄스 입력
이 절에서는 펄스 입력 채널에 공통으로 사용되는 오브젝트들에 대해 다룹니다.
표 12‑7 펄스 입력 오브젝트
Long name, Short name | Index/ Sub-index | Type | Description |
num_pi, npi | 75/0 | I8 (CN) | 펄스 입력 채널의 수 |
pi_enable, pie | 76/0 | I32 (CP) | 각 비트별 해당 펄스 입력 채널의 활성화 여부 |
pi_invert, pii | 77/0 | I32 (CP) | 각 비트별 해당 펄스 입력 채널의 극성 반전 여부 |
12.7.1 num_pi – Number of PI
num_pi 상수는 펄스 입력 채널의 수를 나타냅니다. 펄스 입력 채널의 수는 제어기 모델에 따라 다릅니다. 해당 제품의 데이터시트에서도 참조 가능합니다.
12.7.2 pi_enable – PI Enable
pi_enable 파라미터의 각 비트는 해당 펄스 입력 채널의 사용 여부를 결정합니다:
Bit0 – 펄스 입력 채널 1의 사용 여부
Bit1 – 펄스 입력 채널 2의 사용 여부
…
해당 비트가 0인 경우 펄스 입력 채널은 사용 불가능합니다. 1인 경우는 펄스 입력 채널은 사용 가능합니다.
12.7.3 pi_invert – PI Invert
pi_invert 파라미터의 각 비트는 해당 펄스 입력 채널의 반전 여부를 결정합니다:
Bit0 – 펄스 입력 채널 1의 반전 여부
Bit1 – 펄스 입력 채널 2의 반전 여부
…
해당 비트가 1인 경우, 펄스 입력 값이 변환 과정을 거쳐 정규화 된 pi_converted_value 값의 극성이 반전됩니다. 즉, -1은 1로 반전되고 1은 -1로 반전됩니다. 0의 값은 그대로 유지됩니다.
12.8 펄스 입력 채널
다음은 펄스 입력의 각 채널 별로 설정되는 오브젝트들입니다.
표 12‑8 펄스 입력 채널 오브젝트
Long name, Short name | Index/ Sub-index | Type | Description |
pi_value, piv | 231/ 1~p | I32 (ST) | 펄스 입력 채널의 원시 값(raw value) |
pi_converted_value, picv | 232/ 1~p | F32 (ST) | 변환 과정을 거쳐 정규화 된 값(normalized value) (범위: -1 ~ 1) |
pi_capture_type, pit | 233/ 1~p | I8 (CP) | 펄스 캡쳐의 종류 |
pi_linearity, pil | 234/ 1~p | I8 (CP) | 지수/로그 변환 형식 지정 |
pi_function, pif | 235/ 1~p | I16 (CP) | 펄스 입력을 특정 모터의 명령이나 피드백과 매핑 |
pi_input_min, pin | 236/ 1~p | I32 (CP) | 캘리브레이션: 입력 최소값 |
pi_input_center, pic | 237/ 1~p | I32 (CP) | 캘리브레이션: 입력 중앙값 |
pi_input_max, pix | 238/ 1~p | I32 (CP) | 캘리브레이션: 입력 최대값 |
pi_input_deadband, pidb | 239/ 1~p | I32 (CP) | 캘리브레이션: 입력의 데드밴드(deadband) 값 |
상기 표에서 Sub-index에 사용된 p는 펄스 입력 채널의 수(num_pi)를 나타냅니다.
12.8.1 pi_value – PI Value
펄스 입력 포트는 펄스기반 입력 신호를 받아들입니다. 펄스 입력은 최소 20Hz에서 최대 20kHz 사이에서 동작하여야 합니다. 그리고 펄스의 ON 신호 폭은 최소 10μs 이상 되어야 합니다.
pi_value 상태는 설정된 pi_capture_type에 따라 Pulse Width, Frequency, Duty Cycle 중 하나의 값을 캡쳐 한 원시 값입니다.
12.8.2 pi_converted_value – PI Converted Value
pi_converted_value 상태는 펄스 입력 채널에서 읽은 원시 값을 변환 과정을 거쳐 -1과 1 사이의 정규화 된 값으로 나타냅니다.
12.8.3 capture_type – PI Capture Type
capture_type 파라미터는 펄스 입력의 데이터 수집 형식(Capture Type)을 나타냅니다. 이 파라미터의 값으로 다음 중 하나를 선택합니다:
0 – Pulse Width
1 – Frequency
2 – Duty Cycle
데이터 수집 형식으로 ’0 – Pulse Width’가 설정되면 pi_value는 펄스의 폭을 측정합니다. ’1 – Frequency’가 설정되면 펄스의 주파수를 측정합니다. ’2 – Duty Cycle’로 설정되면 펄스의 듀티 사이클을 측정 하며 측정 값은 0 ~ 1000‰ 사이가 됩니다.
12.8.4 pi_linearity – PI Linearity
pi_linearity 파라미터는 펄스 입력의 정규화 된 값을 지수/로그 함수로 변환합니다. 이 파라미터의 값으로 다음 중 하나를 선택합니다:
0 – linear(no change) (기본값)
1 – exp weak
2 – exp medium
3 – exp strong
4 – log weak
5 – log medium
6 – log strong
12.8.5 pi_function – PI Function
pi_function 파라미터는 제어기의 펄스 입력 채널을 특정 모터의 특정 모터의 명령 버퍼나 피드백 버퍼, 디지털 입력 버퍼로 매핑합니다. 이 파라미터의 상위 8bit로는 대상 모터를 선정합니다:
0×0000 – 채널 1번에 연결된 모터 선택
0×0100 – 채널 2번에 연결된 모터 선택
하위 8bit로는 명령 버퍼나 피드백 버퍼, 디지털 입력 버퍼의 기능을 선택합니다:
0 – None
1 – Command: Voltage
2 – Command: Current
3 – Command: Velocity
4 – Command: Position
5 – Feedback: Position
6 – Feedback: Velocity
7 – DI: Emergency Stop
8 – DI: Quick Stop
9 – DI: Slowdown Stop
10 – DI: Run Script
11 – DI: Forward Limit Switch
12 – DI: Reverse Limit Switch
13 – DI: Invert Direction
14 – DI: Load Home Counter
여기서 ‘Command:’로 표기된 기능은 명령 버퍼로 매핑되는 기능입니다. ‘Feedback:’으로 표기된 기능은 피드백 버퍼로 매핑되는 기능입니다. ‘DI’로 표기된 기능은 디지털 입력 버퍼로 매핑되는 기능입니다. 디지털 입력 버퍼로 매핑된 경우, 아날로그 입력 값이 0보다 크면 버퍼 값은 1, 0을 포함하고 0보다 작으면 버퍼 값은 0이 됩니다.
12.8.6 pi_input_min, pi_input_center, pi_input_max – PI Input Min, Center, Max
pi_input_min, pi_input_center, pi_input_max는 펄스 입력을 정규화하는데 사용되는 캘리브레이션 파라미터들입니다.
pi_input_min 파라미터는 펄스 입력의 최소값을 나타냅니다. 이 값이 정규화되면 -1이 됩니다. pi_input_center 파라미터는 펄스 입력의 중앙값을 나타냅니다. 이 값이 정규화되면 0이 됩니다. pi_input_max 파라미터는 펄스 입력의 최대값을 나타냅니다. 이 값이 정규화되면 1이 됩니다.
pi_input_min 보다 pi_input_center 값이 같거나 커야 하고, pi_input_center 보다 pi_input_max 값이 같거나 커야 합니다.
12.8.7 pi_input_deadband – PI Input Deadband
pi_input_deadband 파라미터는 펄스 입력의 중앙값에서 0으로 인식하는 입력 범위를 나타냅니다.