18. 커스텀 프로토콜 슬레이브 명령
18.1. 개요
18.2. 산업용 버스 프로토콜 통합 기반 로봇 운동 제어
PLC가 각종 산업용 버스 프로토콜(CC-Link IEF Basic, Profinet, Ethernet/IP, EtherCAT)을 통해 로봇을 제어할 수 있도록, 통합형 mini 제어 박스에 RYH-PCIeN-EC/EIP/CC/PN-RJ-V10, RYJ-PCIeN-EIP/CC/PN-RJ-V10, RYJ-PCIeN-EC-RJ-V10 카드를 추가했습니다.
18.3. 환경 설정
필요한 카드 모델과 소프트웨어 버전은 다음과 같습니다.
프로토콜 종류 |
카드 모델 |
로봇 소프트웨어 버전 |
|---|---|---|
CC-Link IEF Basic |
RYH-PCIeN-EC/EIP/CC/PN-RJ-V10, RYJ-PCIeN-EIP/CC/PN-RJ-V10 |
V3.8.0 이상 |
Profinet |
RYH-PCIeN-EC/EIP/CC/PN-RJ-V10, RYJ-PCIeN-EIP/CC/PN-RJ-V10 |
V3.8.0 이상 |
Ethernet/IP |
RYH-PCIeN-EC/EIP/CC/PN-RJ-V10, RYJ-PCIeN-EIP/CC/PN-RJ-V10 |
V3.8.0 이상 |
EtherCAT |
RYH-PCIeN-EC/EIP/CC/PN-RJ-V10, RYJ-PCIeN-EC-RJ-V10 |
V3.8.4.1 이상 |
18.3.1. RYH-PCIeN-EC/EIP/CC/PN-RJ-V10 하드웨어 환경 구성
그림과 같이 RYH-PCIeN-EC/EIP/CC/PN-RJ-V10 보드를 통합 mini 컨트롤 박스에 장착합니다.
그림 17.2-1 Hilscher 보드 장착
그림 17.2-2 Hilscher 보드 네트워크 포트
로봇 제어 박스와 PLC 배선은 아래 그림과 같습니다.
그림 17.2-3 제어 박스와 미쓰비시 PLC 배선도
그림 17.2-4 제어 박스와 지멘스 PLC 배선도
그림 17.2-5 제어 박스와 오므론 PLC 배선도
그림 17.2-6 제어 박스와 오므론 PLC 배선도
참고
1: 로봇 제어 박스(보드 네트워크 포트) 2: 스위치 3: 노트북 PC 4: 미쓰비시 PLC(CC-Link IEF Basic 네트워크 포트) 5: Siemens PLC(Profinet 네트워크 포트) 6: 오므론 PLC(Ethernet/IP 네트워크 포트) 7: 오므론 PLC(EtherCAT 네트워크 포트)
중요
프로토콜을 EtherCAT 버스로 전환할 경우 보드 네트워크 포트를 EtherCAT_IN`과 `EtherCAT_OUT`으로 나누어 사용해야 합니다. 이때 오므론 PLC의 EtherCAT 네트워크 포트를 보드의 `EtherCAT_IN 포트에 직접 연결해야 합니다.
18.3.2. RYJ-PCIeN 보드 하드웨어 환경 구성
그림과 같이 보드를 통합형 mini 제어 박스에 장착합니다.
그림 17.2-7 RYJ-PCIeN 보드 LAN 포트
로봇 제어 박스와 PLC 연결은 아래와 같습니다.
그림 17.2-8 제어 박스와 미쓰비시 PLC 연결도
그림 17.2-9 제어 박스와 지멘스 PLC 연결도
그림 17.2-10 제어 박스와 Inovance PLC 연결도
참고
1: 로봇 제어 박스(보드 LAN 포트) 2: 스위치 3: 노트북 PC 4: 미쓰비시 PLC(CC-Link IEF Basic 포트) 5: 지멘스 PLC(Profinet 포트) 6: Inovance PLC(Ethernet/IP 포트)
RYJ-PCIeN 보드에서 프로토콜 전환 시에는 펌웨어 업그레이드가 필요합니다.
PC IP를 `192.168.0.xxx`로 설정
게이트웨이 툴 세트 소프트웨어 실행
PC 네트워크 어댑터 선택
오른쪽 아래 시작 버튼 클릭
오른쪽 위 검색 버튼으로 보드 장치 검색
그림 17.2-11 보드 장치 연결
왼쪽 아래 업그레이드 버튼을 클릭합니다.
보드 장치 선택
오른쪽 위 … 버튼으로 프로토콜 펌웨어 선택
업그레이드 버튼 클릭 후 완료 대기
그림 17.2-12 보드 프로토콜 전환
참고
프로토콜 전환 후 보드 IP 주소는 아래 표와 같이 변경됩니다.
표 17.2-1 보드 IP 주소
프로토콜 |
IP 주소 |
|---|---|
CC-Link IEF Basic |
192.168.0.113 |
Ethernet/IP |
192.168.0.112 |
Profinet |
192.168.0.2 |
CC-Link IEF Basic 설정 시 컨트롤러는 보드 IP를 `192.168.0.113`으로 변경합니다.
Ethernet/IP 설정 시 컨트롤러는 보드 IP를 `192.168.0.112`로 변경합니다.
Profinet 전환 시 슬레이브 장치 이름이 마스터와 일치하면, 마스터가 슬레이브 IP를 자동 설정합니다.
18.3.3. 소프트웨어 환경 구성
그림 17.2-13 Web 로그인 인터페이스
보조 애플리케이션 -> 툴 애플리케이션 -> 시스템 업그레이드 인터페이스`를 클릭하고 `software.tar.gz 파일을 선택해 업그레이드 패키지를 업로드합니다.
그림 17.2-14 소프트웨어 업그레이드
참고
QX 제어 박스와 LA 제어 박스의 Web 버전은 모두 3.8.0 이상이어야 합니다.
오른쪽 위의 `로컬 모드`를 클릭하여 리모트 모드로 전환합니다.
그림 17.2-15 리모트 모드 전환
컨트롤러 슬레이브 프로토콜을 선택하고 자동 시작 기능 사용 여부를 선택한 뒤 설정 버튼을 클릭합니다. 다른 프로토콜로 전환하려면 먼저 제거 버튼을 클릭해 기존 프로토콜을 해제한 후 새로운 프로토콜을 설정해야 합니다.
그림 17.2-16 통신 프로토콜 설정
참고
다른 프로토콜로 전환하려면 컨트롤 박스를 재시작한 후 프로토콜을 다시 구성해야 합니다.
18.3.4. PLC 환경 구성
각 프로토콜의 슬레이브 스테이션 명령을 구현하기 위해 구성한 테스트 환경은 다음 표와 같습니다. 여기에는 각 프로토콜에서 사용된 PLC 모델, 펌웨어 버전, 테스트 소프트웨어가 포함됩니다.
프로토콜 |
브랜드 |
모델 |
펌웨어 |
소프트웨어 |
|---|---|---|---|---|
Profinet |
SIEMENS |
CPU 1515-2 PN |
6ES75152AM020AB0 |
TIA Portal V17 |
CC-Link IEF Basic |
Mitsubishi |
FX5S-30TR/DS |
30MR/ES V1.3 |
GX Works3 V1.097B |
Ethernet/IP |
OMRON |
MX102-1100 |
V1.3 |
Sysmac Studio V1.50 |
EtherCAT |
OMRON |
MX102-1100 |
V1.3 |
Sysmac Studio V1.50 |
18.3.4.1. SIEMENS Profinet
GSD 파일(XML 파일) 가져오기
SIEMENS 프로그래밍 소프트웨어 TIA Portal V17을 열고 새 PLC 프로젝트를 만든 뒤 `디바이스와 네트워크`를 선택하고, 오른쪽의 `하드웨어 카탈로그`에서 `6ES7 515-2AM02-0AB0`를 더블클릭하여 PLC 모듈을 추가합니다.
TIA Portal 소프트웨어에서 메뉴바의 `옵션 -> 일반 스테이션 설명 파일(GSD) 관리`를 선택하여 설치된 GSD 파일을 설치 또는 삭제합니다.
RYH-PCIeN-EC/EIP/CC/PN-RJ-V10 GSD 파일 설치를 예로 들면, `일반 스테이션 설명 파일(GSD) 관리`를 선택하면 해당 관리 창이 표시됩니다.
소스 경로`에서 GSD 파일이 있는 폴더를 선택하고, 표시된 GSD 파일 목록에서 설치할 파일을 선택한 뒤 `설치 버튼을 클릭합니다.
설치가 성공하면 아래 그림과 같이 하드웨어 디렉터리의 기타 필드 디바이스 아래에 해당 장치가 표시됩니다.
프로그램 실행
프로젝트 `QNXtest`를 엽니다.
프로그램을 컴파일합니다. 왼쪽 프로젝트 트리에서 디바이스와 네트워크`에 들어가 `PLC_1 모듈을 오른쪽 클릭하고 드롭다운 메뉴에서 컴파일을 선택한 뒤, `하드웨어와 소프트웨어(변경분만)`를 선택합니다. 완료되면 소프트웨어 뷰 아래에 컴파일 완료 메시지가 표시됩니다.
프로그램을 장치에 다운로드합니다. 왼쪽 프로젝트 트리에서 디바이스와 네트워크`에 들어가 `PLC_1 모듈을 오른쪽 클릭하고 드롭다운 메뉴에서 `디바이스에 다운로드`를 선택한 뒤, `하드웨어와 소프트웨어(변경분만)`를 선택합니다.
장치 검색 및 다운로드: 창이 뜨면 PG/PC 인터페이스 타입을 설정하고 `검색 시작`을 클릭합니다. 프로그램을 다운로드할 장치를 선택한 후 `다운로드`를 클릭합니다.
18.3.4.2. Mitsubishi CC-Link IEF Basic
CC-Link IEF Basic 기본 설정
CC-Link IEF Basic 사용 설정: 왼쪽 네비게이션 메뉴에서 `이더넷 포트`를 선택하고 PLC IP 주소를 보드와 같은 네트워크 세그먼트로 설정합니다. 이후 `CC-Link IEF Basic 기본 사용 방법`을 클릭하여 `사용`을 선택합니다.
CC-Link IEF Basic 네트워크 구성 설정: 기본 설정 화면에서 `네트워크 구성 설정`을 선택하고, 모듈로 `RYH-PCIeN-EC/EIP/CC/PN-RJ-V10 CIFX 디지털 I/O 모듈`을 선택한 뒤 좌하단 뷰로 드래그해 하드웨어 구성을 완료합니다.
CC-Link IEF Basic 업데이트 설정: 기본 설정에서 `업데이트 설정`을 클릭하고 송수신 설정을 사용자 정의합니다(수신 256바이트, 송신 256바이트).
프로그램 다운로드
테스트 프로그램을 연 뒤 `온라인 -> PLC에 쓰기`를 클릭해 다운로드 인터페이스로 들어갑니다.
다운로드 인터페이스에서 왼쪽 상단 `파라미터+프로그램`을 클릭하고, 오른쪽 하단 `실행`을 클릭해 다운로드를 진행합니다.
18.3.4.3. Inovance EtherCAT 설정
XML 파일 가져오기
Inovance AutoShop 프로그래밍 소프트웨어를 열고 새 PLC 프로젝트를 생성합니다. 오른쪽 툴박스에서 `EtherCAT Devices`를 선택합니다.
EtherCAT Devices`를 선택한 후 우클릭해 `디바이스 XML 가져오기 대화상자를 띄웁니다. 카드 XML 파일이 있는 폴더를 지정하고 가져오기에 성공하면 EtherCAT Devices 아래에 카드 이름이 표시됩니다. 프로젝트를 닫고 다시 시작해 가져오기를 완료합니다.
변수 매핑
왼쪽 툴바에서 변수표를 더블클릭하고 아래 항목을 생성합니다.
256바이트 입력 배열(소프트 요소 주소: D0)
256바이트 출력 배열(소프트 요소 주소: D200)
왼쪽 툴바 EtherCAT 아래의 `Xone-PCIe-ECATs`를 더블클릭합니다. 대화상자에서 `I/O 기능 매핑`을 클릭하고 변수표의 주소를 바인딩합니다. 다른 주소도 같은 방식으로 설정합니다.
프로그램 다운로드
테스트 프로그램을 열고 PLC IP를 기본값 `192.168.1.88`에서 `192.168.0.88`로 변경합니다.
`IP/장치명 변경`을 클릭해 IP와 게이트웨이를 `192.168.0.88`로 변경합니다.
IP 변경 클릭 후 팝업에서 `예`를 선택해 확정합니다.
통신이 성공하면 PLC 프로그램을 다운로드합니다.
18.3.5. HMI 설정(CC-Link IEF Basic 시뮬레이션)
HMI 인터페이스에 로그인한 뒤 `작업 활성화`를 켜서 PLC와 컨트롤러 간 통신 연결을 수립합니다.
`02_MC_ToolData`를 클릭해 툴 정보 인터페이스로 들어갑니다. 왼쪽에 파라미터를 입력하고 `WriteToolData`를 클릭해 툴 정보를 기록합니다. 오른쪽의 `ReadToolData`로 기존 툴 정보를 읽을 수 있습니다.
`03_MC_FrameData`를 클릭해 워크피스 정보 인터페이스로 들어갑니다. 왼쪽 파라미터를 입력하고 `WriteFrameData`를 클릭해 워크피스 정보를 기록합니다. 오른쪽의 `ReadFrameData`로 기존 정보를 읽을 수 있습니다.
`04_MC_LoadData`를 클릭해 하중 정보 인터페이스로 들어갑니다. 왼쪽 파라미터를 입력하고 `WriteLoadData`를 클릭해 하중 정보를 기록합니다. 오른쪽의 `ReadLoadData`로 기존 정보를 읽습니다.
`05_MC_RobotReferenceDynamics`를 클릭해 로봇 최대 속도와 최대 가속도 인터페이스로 들어갑니다. 왼쪽 파라미터를 입력하고 `WriteRobotRefD`를 클릭해 정보를 기록합니다. 오른쪽의 `ReadRobotRefD`로 정보를 읽습니다.
`06_MC_Robot DefaultDynamics`를 클릭해 로봇 기본 속도와 기본 가속도 인터페이스로 들어갑니다. 왼쪽 파라미터를 입력하고 `WriteRobotDefD`를 클릭해 정보를 기록합니다. 오른쪽의 `ReadRobotDefD`로 정보를 읽습니다.
`07_MC_RobotSwLimits`를 클릭해 좌표 제한 인터페이스로 들어갑니다. 왼쪽에 최대/최소 제한 파라미터를 입력하고 `WriteRobotSwLimits`를 클릭해 제한 정보를 기록합니다. 오른쪽의 `ReadRobotSwLimits`로 기존 제한 정보를 읽습니다.
`09_MC_MoveLinearAbsolute`를 클릭해 직선 운동 인터페이스로 들어간 뒤 좌표 파라미터를 입력하고 `MoveLinearAbsolute`를 클릭하면 로봇이 목표 위치까지 직선 이동합니다.
`10_MC_MoveAxesAbsolute`를 클릭해 축 좌표 운동 인터페이스로 들어갑니다. 좌표 파라미터를 입력하고 `MoveAxesAbsolute`를 클릭하면 입력한 축 좌표를 종점으로 로봇이 이동합니다.
`11_MC_MoveDirectAbsolute`를 클릭해 직접 운동 인터페이스로 들어갑니다. 좌표 파라미터를 입력하고 `MoveDirectAbsolute`를 클릭하면 입력값을 종점으로 로봇이 직접 이동합니다.
12_MC_Groups`를 클릭해 직접 운동 조작 인터페이스로 들어갑니다. 동작 중 로봇의 움직임을 중단하려면 `GroupInterrupt, 목표 위치까지 계속 이동하려면 GroupContinue, 진행 중인 이동 동작을 정지하려면 GroupStop, 오류가 발생하면 `GroupReset`을 클릭합니다.
`13_MC_PositionConversion`을 클릭해 위치 변환 인터페이스로 들어갑니다. `XtoJ1`은 직교 자세를 관절 각도로, `J1toX`는 관절 각도를 직교 자세로 변환합니다.
14_MC_GroupJog`를 클릭해 로봇 조그 인터페이스로 들어갑니다. 설정 후 좌표축 드롭다운으로 조그할 축과 회전 방향을 선택합니다. 조그 이동은 `JogMove, 이동 속도 조정은 오른쪽의 `MC_ChangeSpeedOverride`를 사용합니다.
18.3.6. HMI 설정(Profinet 시뮬레이션)
프로그램을 열고 프로젝트 트리의 `HMI_1[ktp700 Basic PN]`을 클릭한 뒤 메뉴바 `온라인 -> 시뮬레이션 -> 시작`을 클릭합니다. 소프트웨어가 컴파일되고 시뮬레이션될 때까지 기다립니다.
시뮬레이션 후 기능은 CC-Link IEF Basic 화면과 동일하므로 위 설정을 참고하십시오.
18.4. 로봇 슬레이브 모드 조작 설명
18.4.1. 슬레이브 모드 로드
Step 1: WebApp을 열고 `초기 설정 -> 주변기기 -> 보드 통신 -> 수동 설정`으로 이동합니다.
그림 17.3-1 보드 통신 수동 설정
먼저 RYJ-PCIeN 보드의 IP 주소를 설정합니다. 공란이면 기본 IP `192.168.0.100`으로 기동 설정됩니다. 현재 IP 설정은 EIP와 CC-Link IEF Basic 프로토콜에만 적용되며, PN 프로토콜에서는 PLC 마스터 스테이션이 슬레이브 장치를 스캔해 IP를 할당합니다.
참고
페이지에서 IP 주소를 변경한 뒤에는 반드시 슬레이브 모드를 다시 로드해야 합니다.
DI, DO, AO에 필요한 매핑 기능을 순서대로 선택합니다(부록 1 참조). 각 파라미터 의미는 다음과 같습니다.
DI(로봇 제어): 로봇 슬레이브가 외부 신호 입력을 받고 매핑된 기능을 수행합니다.
DO(로봇 상태 출력): 로봇 슬레이브가 상태 신호를 마스터 스테이션에 피드백합니다.
AO(로봇 상태 피드백): 로봇 슬레이브가 상태 데이터를 마스터 스테이션에 피드백합니다. `AO0~AO15`는 부호 있는 정수(int16), `AO16~AO31`는 단정도 부동소수점(float)입니다.
Step 2: 설정 버튼을 클릭해 오픈 프로토콜 Lua 파일을 생성합니다.
그림 17.3-2 장치 조작 및 상태
참고
오픈 프로토콜 Lua 파일은 다운로드 가능하며, 자동 설정 화면에서 다시 가져올 수 있습니다.
생성 프로그램 예:
1local id = 3
2local ctrlDI = {0, 0, 0, 0, 0, 0}
3local funcDI = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
4local DOState = {0, 0, 0, 0, 0, 0, 0, 0}
5local AOState = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
6-- 보드 통신 프로세스 시작
7LoadFieldBusSlave()
8sleep_ms(8000)
9while(1) do
10 -- DO 상태 설정
11 CtrlBoxDO, CtrlBoxCO, CtrlBoxDI, CtrlBoxCI, errState, motionState, moveToOriginState, robotStartDoneState, modeChangeState, programStartStopState, emergencyState, reduceState, collision, enablestate, safetyStop0, safetyStop1, pauseState, interfereState = GetRobotFuncDOState()
12 DOState[1] = CtrlBoxDO
13 DOState[2] = CtrlBoxCO
14 DOState[3] = CtrlBoxDI
15 DOState[4] = CtrlBoxCI
16 local ctrlWord0 = 0
17 ctrlWord0 = SetBitWithIndex(ctrlWord0, 0, errState)
18 ctrlWord0 = SetBitWithIndex(ctrlWord0, 1, motionState)
19 ctrlWord0 = SetBitWithIndex(ctrlWord0, 2, moveToOriginState)
20 ctrlWord0 = SetBitWithIndex(ctrlWord0, 3, robotStartDoneState)
21 ctrlWord0 = SetBitWithIndex(ctrlWord0, 4, modeChangeState)
22 ctrlWord0 = SetBitWithIndex(ctrlWord0, 5, programStartStopState)
23 ctrlWord0 = SetBitWithIndex(ctrlWord0, 6, emergencyState)
24 ctrlWord0 = SetBitWithIndex(ctrlWord0, 7, reduceState)
25 DOState[5] = ctrlWord0
26 local ctrlWord1 = 0
27 ctrlWord1 = SetBitWithIndex(ctrlWord1, 0, collision)
28 ctrlWord1 = SetBitWithIndex(ctrlWord1, 1, enablestate)
29 ctrlWord1 = SetBitWithIndex(ctrlWord1, 2, safetyStop0)
30 ctrlWord1 = SetBitWithIndex(ctrlWord1, 3, safetyStop1)
31 ctrlWord1 = SetBitWithIndex(ctrlWord1, 4, pauseState)
32 ctrlWord1 = SetBitWithIndex(ctrlWord1, 5, interfereState)
33 DOState[6] = ctrlWord1
34 SetFieldBusDOState(DOState)
35
36 -- AO 상태 설정
37 mainErrCode, subErrCode, TCPSpeed, axisPos1, axisPos2, axisPos3, axisPos4, axisPos5, axisPos6, jointVelFeedback1, jointVelFeedback2, jointVelFeedback3, jointVelFeedback4, jointVelFeedback5, jointVelFeedback6, jointCurFeedback1, jointCurFeedback2, jointCurFeedback3,jointCurFeedback4,jointCurFeedback5,jointCurFeedback6, jointTorqueFeedback1, jointTorqueFeedback2,jointTorqueFeedback3,jointTorqueFeedback4, jointTorqueFeedback5, jointTorqueFeedback6, cartPosx, cartPosy, cartPosz, cartPosrx, cartPosry, cartPosrz = GetRobotFuncAOState()
38 AOState[1] = mainErrCode
39 AOState[2] = subErrCode
40 AOState[17] = axisPos1
41 AOState[18] = axisPos2
42 AOState[19] = axisPos3
43 AOState[20] = axisPos4
44 AOState[21] = axisPos5
45 AOState[22] = axisPos6
46 AOState[23] = cartPosx
47 AOState[24] = cartPosy
48 AOState[25] = cartPosz
49 AOState[26] = cartPosrx
50 AOState[27] = cartPosry
51 AOState[28] = cartPosrz
52 SetFieldBusAOState(AOState)
53 sleep_ms(10)
54
55 -- DI 상태 설정
56 -- DI 기능 설정 및 실시간 갱신
57 ctrlDI[1],ctrlDI[2],ctrlDI[3],ctrlDI[4],ctrlDI[5],ctrlDI[6] = GetFieldBusDIState()
58 funcDI[1] = ctrlDI[1]
59 funcDI[2] = ctrlDI[2]
60 funcDI[3] = GetBitWithIndex(ctrlDI[3], 0)
61 funcDI[4] = GetBitWithIndex(ctrlDI[3], 1)
62 funcDI[5] = GetBitWithIndex(ctrlDI[3], 2)
63 funcDI[6] = GetBitWithIndex(ctrlDI[3], 3)
64 funcDI[7] = GetBitWithIndex(ctrlDI[3], 4)
65 funcDI[8] = GetBitWithIndex(ctrlDI[3], 5)
66 funcDI[9] = GetBitWithIndex(ctrlDI[3], 6)
67 funcDI[10] = GetBitWithIndex(ctrlDI[3], 7)
68 funcDI[11] = GetBitWithIndex(ctrlDI[4], 0)
69 funcDI[12] = GetBitWithIndex(ctrlDI[4], 1)
70 funcDI[13] = GetBitWithIndex(ctrlDI[4], 2)
71 funcDI[14] = GetBitWithIndex(ctrlDI[4], 3)
72 funcDI[15] = GetBitWithIndex(ctrlDI[4], 4)
73 funcDI[16] = GetBitWithIndex(ctrlDI[4], 5)
74 SetRobotFuncDIState(funcDI)
75 local stopFlag = GetOpenLUAStopFlag(id)
76 if(stopFlag ~= 0) then
77 UnloadFieldBusSlave()
78 break
79 end
80 sleep_ms(10)
81end
Step 3: 로드 버튼을 클릭해 로봇 슬레이브 모드를 로드합니다.
그림 17.3-3 슬레이브 모드 로드
참고
로봇 슬레이브 모드 로드가 성공하면 자동 시작 기능이 지원됩니다. 리모트 모드를 사용하려면 먼저 슬레이브 모드를 언로드하십시오.
Step 4: 오른쪽 상태 바 버튼을 클릭해 DI, DO, AI, AO 상호작용 정보를 모니터링합니다. 각 파라미터 의미는 다음과 같습니다.
CtrlDO: 마스터 장치가 로봇 제어 박스 DO를 제어하는 입력 신호값
DI: 외부 마스터 제어 신호 입력값
DO: 로봇 슬레이브가 피드백하는 출력 신호값
그림 17.3-4 DI, DO, AI, AO 상호작용 정보
Step 5: 로드 완료 후 `티칭 프로그램 -> 통신 명령 -> 보드 명령`에서 보드 Lua 명령을 생성하여, 슬레이브 DO/AO 설정, 슬레이브 DI/AI 취득, 슬레이브 DI/AI 대기를 구현할 수 있습니다.
그림 17.3-5 보드 생성 Lua 명령
18.5. 부록
18.5.1. 명령 목록
명령 코드 |
명령 설명 |
|---|---|
0x1000 |
로봇 활성화 |
0x1001 |
모든 오류 리셋 |
0x1002 |
로봇 정지 |
0x1003 |
실제 위치 읽기 |
0x1004 |
로봇 속도 설정 |
0x1005 |
로봇 계속 동작 |
0x1006 |
로봇 동작 일시정지 |
0x1007 |
관절 위치 기반 직교 좌표 계산 |
0x1008 |
직교 좌표 기반 관절 위치 계산 |
0x2000 |
툴 정보 쓰기 |
0x2001 |
툴 정보 읽기 |
0x2002 |
워크피스 정보 쓰기 |
0x2003 |
워크피스 정보 읽기 |
0x2004 |
하중 정보 쓰기 |
0x2005 |
하중 정보 읽기 |
0x2006 |
reference dynamic 정보 쓰기 |
0x2007 |
reference dynamic 정보 읽기 |
0x2008 |
default dynamic 정보 쓰기 |
0x2009 |
default dynamic 정보 읽기 |
0x2010 |
소프트 리밋 정보 쓰기 |
0x2011 |
소프트 리밋 정보 읽기 |
0x3000 |
MoveAxes(관절 각도 기준) |
0x3001 |
MoveLinear |
0x3002 |
MoveDirect(직교 좌표계 기준) |
0x3003 |
jog 운동 |
0x3004 |
jog 정지 |