샘플 프로그램5: MMS5VIZUSER

현재 최신 버전 (2.2.0)에 대한 매뉴얼을 보고 계십니다. 다른 버전에 액세스하려면 페이지 오른쪽 상단 모서리에 있는 '버전 전환' 버튼을 클릭하세요.

■ 현재 사용하고 있는 제품의 버전이 확실하지 않은 경우에는 언제든지 당사 기술 지원팀에 문의하시기 바랍니다.

프로그램 소개

기능 설명

로봇이 Mech-Vision 프로젝트 실행을 트리거하고 계획 경로를 획득하여 피킹 및 배치 작업을 수행합니다.

파일 경로

Mech-Vision 및 Mech-Viz의 설치 디렉터리로 이동하여 통신 구성 요소/Robot_Interface/MELFA/MMS5VIZUSER 경로를 사용하여 파일을 찾을 수 있습니다.

필요한 프로젝트

Mech-Vision 프로젝트

Mech-Vision 프로젝트는 경로 계획 스텝을 포함해야 하며, 출력 스텝의 포트 유형 파라미터는 "사전 정의(로봇 경로)"로 설정되어야 합니다.

사용 조건

  1. 표준 인터페이스 통신 구성이 완료됩니다.

  2. 자동 캘리브레이션이 완료됩니다.

이 샘플 프로그램은 참고용으로 제공됩니다. 사용자는 실제 상황에 맞춰 이 내용을 바탕으로 수정해야 하며, 해당 프로그램을 그대로 사용하지 않도록 하십시오.

프로그램 설명

다음에는 MMS5VIZUSER 샘플 프로그램의 코드와 관련 설명입니다.

  #Include "MMMODULE"
  MM_DROP_COM()
  Mcomnum = 7
  MM_INIT_COM(Mcomnum)
  Tool P_NTool
  PMTool=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)
  Tool PMTool
  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  MM_START_VIZ(1,JntSend,MM_Status)
  If MM_Status <> 2103 Then
    Hlt
  EndIf
  MM_SET_BCH(1,1,MM_Status)
  If MM_Status <> 2105 Then
    Hlt
  EndIf
  Dim MM_Result(10,9)
  Dim MM_VisionInfo(10,21)
  Dim MM_VisionData(21)
  MM_GET_VMD (0,2,4,MM_Status,MM_VisionPt_Num,MM_VPos_Num,MM_Result,MM_VisionInfo)
  If MM_Status <> 2100 Then
    Hlt
  EndIf
  MM_GET_VMP(MM_Result,MM_VisionInfo,1,PPick,MM_MotionType,MM_ToolID,MM_Velocity,MM_VisionData)
  MM_DROP_COM()
  PPick_pre=PPick
  PPick_pre.Z=PPick_pre.Z+100
  Mov PPick_pre
  Fine 0,P
  Mvs PPick
  Hlt
  Mvs PPick_pre

위 샘플 프로그램 코드에 해당하는 워크플로는 아래 그림에 표시되어 있습니다.

sample5

아래 표는 위 프로그램에 대한 설명입니다. 명령어 이름의 링크를 클릭하면 해당 명령의 상세 설명을 확인할 수 있습니다.

워크플로 코드와 설명

MM_Module 헤더 파일 가져오기

  #Include "MMMODULE"

초기화 및 통신 구축하기

  MM_DROP_COM()
  Mcomnum = 7
  MM_INT_COM(Mcomnum)
  • MM_DROP_COM: 통신을 종료하는 명령어입니다.

  • MM_INIT_COM:통신을 초기화하는 명령어입니다.

먼저 통신을 종료한 후 다시 연결하여 연결 중인 프로젝트가 없는지 확인합니다.

제어점을 초기값으로 되돌리고 도구 변수를 선언하기

  Tool P_NTool
  PMTool=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)
  Tool PMTool

Mech-Vision파라미터 레시피를 전환하고 상태 코드를 확인하기

  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  • MM_SET_MOD: Mech-Vision파라미터 레시피를 전환하는 명령어입니다.

  • 첫 번째 1: Mech-Vision의 프로젝트 번호를 나타냅니다.

  • 두 번째 1: Mech-Vision 프로젝트의 파라미터 레시피 번호를 의미합니다.

  • <>: 같지 않음. 상태 코드 MM_Status가 1107이면 로봇이 파라미터 레시피 전환에 성공한 것입니다.

Mech-Viz 프로젝트 실행을 트리거하기

  MM_START_VIZ(1,JntSend,MM_Status)
  If MM_Status <> 2103 Then
    Hlt
  EndIf
  • MM_Start_Viz:Mech-Viz 프로젝트 실행을 트리거하는 명령어입니다.

  • 2: JntSend 변수로 표시된 관절 각도 데이터를 Mech-Viz프로젝트에 전송합니다.

이 명령어는 로봇이 비전 시스템을 트리거하여 Mech-Viz 프로젝트를 실행한 후, Mech-Vision가 출력한 비전 결과를 기반으로 Mech-Viz는 로봇의 피킹 경로를 계획한다는 것을 나타냅니다.

  • <>: 같지 않음. 상태 코드 MM_Status가 2103이면 로봇이 Mech-Viz 프로젝트 실행에 성공한 것입니다.

Mech-Viz 메시지 분기 아웃 포트를 설정하기

  MM_SET_BCH(1,1,MM_Status)
  If MM_Status <> 2105 Then
    Hlt
  EndIf
  • MM_SET_BCH: Mech-Viz 메시지 분기 아웃 포트를 설정하는 명령어입니다.

  • 첫 번째 1: 메시지 분기의 스텝 번호입니다.

  • 두 번째 1: Mech-Viz프로젝트는 "메시지 분기" 스텝의 아웃 포트0을 통해 계속 실행됩니다. 이 파라미터가 N으로 설정되면, 아웃 포트는 N-1이 된다는 것을 주의해야 합니다.

  • <>: 같지 않음. 상태 코드 MM_Status가 2105이면, 로봇이 Mech-Viz의 분기 아웃 포트를 성공적으로 설정된 것입니다.

저장 컨테이너 정의 및 선언하기

  Dim MM_Result(10, 9)
  Dim MM_VisionInfo(10, 21)
  Dim MM_VisionData(21)
  • Dim MM_Result(10,8): 웨이 포인트를 저장하는 데 사용하는 2차원 배열을 정의합니다.

  • Dim MM_VisionInfo(10, 21): 비전 처리의 규이동 계획 결과를 수신하는 데 사용할 이차원 배열을 정의합니다.

  • Dim MM_VisionData(21): 비전 처리를 통해 이동한 계획 결과를 저장하는 데 사용할 이차원 배열을 정의합니다.

계획 경로를 획득하기

  MM_GET_VMD(0,2,4,MM_Status,MM_VisionPt_Num,MM_VPos_Num,MM_Result,MM_VisionInfo)
  If MM_Status <> 2100 Then
    Hlt
  EndIf
  • MM_GET_VMD: 비전 결과를 획득하는 명령어입니다. 이 명령어로 가져온 비전 포인트는 포즈와 라벨 외에 사용자 정의 데이터도 포함됩니다.

  • 0: Mech-Vision의 프로젝트 번호를 0로 지정합니다.

  • 2: 지정한 웨이 포인트의 포즈 유형은 중심점 포즈입니다.

  • 4: 예상되는 반환 내용은 웨이 포인트 데이터와 비전 처리를 통해 이동한 계획 결과입니다.

  • MM_Status: 이 변수는 명령어 실행 상태 코드를 저장하는 것입니다.

  • MM_VisionPt_Num: 이 변수는 비전 시스템이 반환한 비전 포인트의 개수를 저장합니다.

  • MM_VPos_Num: 이 변수는 웨이 포인트 위치 번호를 저장합니다.

  • MM_Result: 이 변수는 계획 웨이 포인트를 저장합니다.

  • MM_VisionInfo: 이 변수는 비전 처리를 통해 이동한 계획 결과를 저장합니다.

이 전체 명령어는 Mech-Vision 항목 0에서 계획 경로비전 처리를 통해 이동한 계획 결과를 가져오는 것을 의미합니다.

  • <>: 같지 않음. 상태 코드 MM_Status가 2100이면, 로봇이 계획 결과를 성공적으로 가져온 것입니다.

계획 경로를 덤프하기

  MM_GET_VMP(MM_Result,MM_VisionInfo,1,PPick,MM_MotionType,MM_ToolID,MM_Velocity,MM_VisionData)
  • MM_Get_VMP: 계획된 경로를 덤프하는 명령어입니다. 첫 번째 항목을 예로 들면

  • MM_Result: 이 변수는 계획 경로 결과를 저장합니다.

  • MM_VisionInfo: 이 변수는 비전 처리를 통해 이동한 계획 결과를 저장합니다.

  • 1: 저장할 데이터의 인덱스 번호를 지정합니다.

  • PPick: 이 변수는 웨이 포인트의 말단장치 포즈를 저장합니다.

  • MM_MotionType: 이 변수는 로봇의 이동 방식을 저장합니다.

  • MM_ToolID: 이 변수는 데이터 인덱스 번호에 대응하는 웨이 포인트의 말단장치 번호를 저장합니다.

이 명령어는 첫 번째 비전 포인트의 말단장치 포즈, 라벨 및 말단장치 번호를 각각 지정된 변수로 덤프하는 명령어입니다.

통신을 끊기

  MM_DROP_COM()

접근점과 이탈점을 설정하기

  PPick_pre=PPick
  PPick_pre.Z=PPick_pre.Z+100

PPick의 값을 PPick_pre에 대입하고, PPick_pre의 z축 높이에 200을 더하여 접근점과 이탈점으로 사용합니다.

피킹 접근 웨이 포인트로 이동하기

  Mov PPick_pre
  Fine 0,P

접근 픽업 지점으로 이동하고, 절대 위치 도달을 설정합니다.

피킹 웨이 포인트로 이동하기

  Mov PPick
  Hlt

로봇은 직선 이동 방식으로 피킹 접근 웨이 포인트에서 피킹 웨이 포인트로 이동합니다.

Hlt는 프로그램의 실행을 종료하는 것을 나타냅니다. 사용자가 DO 명령어를 설정하는 문장을 추가한 경우, 여기에서 Pause 문장을 삭제할 수 있습니다.

피킹 출발 웨이 포인트로 이동하기

  Mvs PPick_after

로봇이 피킹 웨이 포인트 위로 어딘가에 이동합니다. 즉 피킹 출발 웨이 포인트로 이동합니다.

피킹 출발 웨이 포인트를 추가는 로봇이 이동 중에 시나리오 물체(예: 빈)와 충돌하는 것을 방지할 수 있습니다. 사용자는 실제 시나리오에 따라 여기의 Z축 음의 방향 오프셋 값(PPick_pre.Z값)을 조정하여 출발 과정에서 충돌이 발생하지 않도록 설정할 수 있습니다.

이 페이지가 도움이 되었습니까?

다음 방법을 통해 피드백을 보내주실 수 있습니다:

저희는 귀하의 개인정보를 소중히 다룹니다.

당사 웹사이트는 최상의 사용자 경험을 제공하기 위해 쿠키를 사용하고 있습니다. "모두 수락"을 클릭하시면 쿠키 사용에 동의하시는 것이며, "모두 거부"를 클릭하시면 이 웹사이트 방문 시 귀하의 정보가 추적되거나 기억되지 않도록 단일 쿠키만 사용됩니다.