샘플 프로그램3: MM_S3_Vis_Path

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

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

프로그램 소개

기능 설명

PLC가 Mech-Vision 프로젝트 실행을 트리거한 다음 Mech-Vision가 계획한 경로를 획득합니다.

파일 경로

Mech-Vision 및 Mech-Viz 소프트웨어 설치 디렉터리의 Communication Component/Robot_Interface/EthernetIP/Programming Samples/AB PLC EthernetIP/sample applications/ExportedRoutineOfSampleProjects/MM_S3_Vis_Path.L5X에 있습니다.

필요한 프로젝트

Mech-Vision 프로젝트

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

사용 조건

  1. 표준 인터페이스 통신 구성을 완료해야 합니다.

  2. 자동 캘리브레이션을 완료해야 합니다.

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

프로그램 설명

다음은 MM_S3_Vis_Path 샘플 프로그램에 대한 설명입니다.

sample3 1
sample3 2
sample3 3
sample3 4
sample3 5
sample3 6
sample3 7

이 샘플 프로그램에 해당하는 작업 흐름은 아래 그림과 같습니다.

sample3 8

아래 표는 이 프로그램에 대한 설명입니다.

  • AB PLC 표준 인터페이스 명령어와 관련해서는 아래 설명에서 명령어 이름이 있는 하이퍼링크를 클릭하면 해당 명령어의 자세한 설명을 확인할 수 있습니다.

  • AB PLC에 내장된 자주 사용하는 기본 명령어는 자주 사용하는 명령어 설명을 참고하십시오.

워크플로 설명

PLC가 비전 시스템과 통신 구축하기

sample3 1
  • ToCamera.COMM_ENABLE: 트리거 신호를 활성화할지 여부를 지정합니다. True는 트리거 신호가 유효하여 비전 시스템이 PLC가 전송한 명령어를 수신함을 의미합니다. False는 비전 시스템이 PLC가 전송한 명령어를 무시함을 의미합니다.

  • S:FS: 첫 번째 스캔 사이클에서만 수행됩니다.

  • MOV: Camera_Pose_Ready를 2로 설정합니다.

  • Camera_Pose_Ready: PLC가 계획 경로를 획득했는지 여부를 나타냅니다. 유효한 값은 다음과 같습니다.

    • 0: 카메라가 이미지를 캡처하려고 하거나 이미 캡처를 완료했거나, Mech-Vision가 계획 경로를 계산하는 중이어서 PLC가 계획 경로를 수신하지 못한 상태입니다.

    • 1: 카메라가 이미지 캡처를 완료했고 PLC가 계획 경로를 수신한 상태입니다.

    • 2: 카메라가 첫 번째 캡처를 준비하는 중이어서 PLC가 계획 경로를 수신하지 못한 상태입니다.

따라서 Rung 0은 ToCamera.COMM_ENABLE을 셋트하고, 첫 번째 스캔 사이클에서만 Camera_Pose_Ready를 2로 설정함을 나타냅니다.

비전 시스템 비정상 상태 코드 플래그 리셋

sample3 2
  • Camera_User.Status_Code_Error[0]: 비전 시스템 상태 코드 이상 플래그입니다. True는 Mech-Vision 프로젝트가 성공적으로 실행되지 않았고, 즉 비전 시스템에 오류가 발생했음을 의미합니다.

  • Camera_User.Status_Code_Error[1]: 비전 시스템 상태 코드 이상 플래그입니다. True는 Mech-Vision 프로젝트가 계획 경로를 성공적으로 출력하지 못했고, 즉 비전 시스템에 오류가 발생했음을 의미합니다.

  • External_Reset_Camera_Error: 외부 리셋 신호입니다. 비전 시스템에 오류가 발생한 상태에서 이 신호가 False에서 True로 전환되면, 뒤에 있는 Camera_User.Status_Code_Error[0]과 Camera_User.Status_Code_Error[1] 값이 리셋됩니다.

따라서 Rung 1은 External_Reset_Camera_Error가 트리거되면 Camera_User.Status_Code_Error[0]과 Camera_User.Status_Code_Error[1]을 리셋함을 나타냅니다.

Mech-Vision 프로젝트와 관련된 인터페이스 파라미터 설정하기

sample3 3
  • User_Vision_Project_Num: Mech-Vision 프로젝트 번호.

  • User_Robot_Pose_Type: 실제 로봇의 포즈가 Mech-Vision 프로젝트에 전달되는 방식을 지정합니다. 이 파라미터 값은 MM_Start_Vis 명령어의 Robot_Pose_Type 값과 일치해야 합니다. 이 예시에서는 값이 0으로 설정되어 있으며, 실제 요구 사항에 맞게 수정할 수 있습니다.

따라서 Rung 2는 Mech-Vision 프로젝트 번호를 1로 설정하고, User_Robot_Pose_Type을 0으로 설정함을 나타냅니다.

sample3 4
  • Camera_User.Robot_Pose_JPS[0]~[5]: 로봇의 6개 관절 각도 데이터입니다. 이 파라미터 값은 MM_Start_Vis 명령어의 Robot_Pose_JPS 값과 일치해야 합니다. 이 예시에서는 0으로 설정되어 있으며, 사용자는 실제 요구 사항에 따라 값을 수정할 수 있습니다. 또한 로봇 플랜지 포즈 데이터, 즉 MM_Start_Vis 명령어의 Robot_Pose_TCP 파라미터를 추가할 수도 있습니다.

따라서 Rung 3은 Mech-Vision 프로젝트 번호가 1이고 User_Robot_Pose_Type이 0인 경우 Camera_User.Robot_Pose_JPS[0]~[5]를 순차적으로 0으로 설정함을 나타냅니다.

외부 이미지 캡처 신호 트리거하기

sample3 5
  • External_Photo_Signal: 상승 에지에서 유효한 외부 이미지 캡처 신호입니다.

  • Camera_User.Set_Edge[0]: ONS 명령어를 사용하여 External_Photo_Signal의 상승 에지를 얻습니다.

  • FromCamera.STATUS_CODE: 비전 시스템 상태 코드입니다. 1102는 PLC가 Mech-Vision 프로젝트 실행을 성공적으로 트리거했음을 의미하며, 1103은 PLC가 계획 경로를 성공적으로 획득했음을 의미합니다.

  • FromCamera.COMMAND_COMPLETE: 비전 시스템이 PLC에서 보낸 명령어의 실행을 완료했는지 여부를 나타냅니다. True는 실행이 완료되었음을, False는 실행이 완료되지 않았음을 의미합니다.

  • Camera_User.Start_Vis: 상승 에지에서 Mech-Vision 프로젝트 실행을 트리거하는 플래그입니다.

  • Camera_User.Get_VisData: 상승 에지에서 Mech-Vision 계획 경로 획득을 트리거하는 플래그입니다.

따라서 Rung 4는 외부 이미지 캡처 신호 External_Photo_Signal의 상승 에지를 감지하여 다음 세 가지 촬영 시나리오를 연속으로 수행함을 나타냅니다.

  1. 이미지를 처음으로 캡처합니다. FromCamera.STATUS_CODE가 0으로 설정되고 Camera_Pose_Ready가 2로 설정됩니다.

  2. 다음번에는 이미지가 정상적으로 캡처됩니다. FromCamera.STATUS_CODE가 1103으로 설정되고 FromCamera.COMMAND_COMPLETE가 True로 설정됩니다.

  3. 다음번에는 이미지가 비정상적으로 캡처됩니다. FromCamera.STATUS_CODE가 1103과 같지 않고 Camera_User.Status_Code_Error[0]과 Camera_User.Status_Code_Error[1]이 모두 False입니다.

마지막으로 Camera_User.Step_Num 값을 5로 설정하고, Camera_Pose_Ready 값을 0으로 설정한 다음, Camera_User.Start_Vis와 Camera_User.Get_VisData를 리셋합니다.

Mech-Vision 프로젝트 실행을 트리거하고 결과에 따라 다르게 처리하기

sample3 6
MM_Start_Vis 명령어의 입력 및 출력 파라미터에 대한 자세한 설명은 MM_Start_Vis 명령어 설명을 참조할 수 있습니다.

Rung 5는 Camera_User.Step_Num이 5와 같으면 다음 논리가 실행됨을 의미합니다.

  1. 기능 블록 MM_Start_Vis를 활성화합니다. 이때 획득할 포즈 수량 Req_Pose_Num의 기본값은 0이며, 이는 모든 웨이 포인트를 획득함을 의미합니다. 최대값은 20입니다.

  2. MM_Start_Vis.EnableOut이 True이고 FromCamera.TRIGGER_ACKNOWLEDGE가 False인 경우 Camera_User.Start_Vis를 셋트하여 PLC가 Mech-Vision 프로젝트 실행을 트리거합니다.

  3. FromCamera.STATUS_CODE가 1001 이상 1099 이하인 경우 비전 시스템에 오류가 발생했음을 의미합니다. 이때 ONS 명령어를 통해 해당 논리 출력의 상승 에지를 감지하여 Camera_User.Status_Code_Error[0]을 셋트하고, 동시에 Camera_User.Start_Vis를 리셋합니다. 사용자는 표준 인터페이스 상태 코드 및 오류 분석에 따라 특정 상태 코드에 해당하는 오류 원인을 찾을 수 있습니다.

  4. FromCamera.STATUS_CODE가 1102이고 FromCamera.COMMAND_COMPLETE가 True인 경우 비전 시스템이 PLC에서 보낸 명령어를 성공적으로 수행했음을 의미합니다. 이때 ONS 명령어를 통해 해당 논리 출력의 상승 에지를 감지하여 Camera_User.Step_Num을 10으로 설정하고 Camera_User.Status_Code_Error[0]과 Camera_User.Start_Vis를 리셋합니다.

Mech-Vision 계획 경로를 획득하고 결과에 따라 다르게 처리하기

sample3 7
MM_Get_Planned_VisData 명령어의 입력 및 출력 파라미터에 대한 자세한 설명은 MM_Get_Planned_VisData 명령어 설명을 참조할 수 있습니다.

Rung 6은 Camera_User.Step_Num이 10과 같으면 다음 논리가 실행됨을 의미합니다.

  1. MM_Get_Planned_VisData 기능 블록을 활성화합니다.

  2. MM_Get_Planned_VisData.EnableOut이 True이고 FromCamera.TRIGGER_ACKNOWLEDGE가 False인 경우 Camera_User.Get_VisData를 셋트하여 PLC가 Mech-Vision 프로젝트가 출력한 계획 경로를 획득합니다.

  3. FromCamera.STATUS_CODE가 1001 이상 1099 이하인 경우 비전 시스템에 오류가 발생했음을 의미합니다. 이때 ONS 명령어를 통해 해당 논리 출력의 상승 에지를 감지하여 Camera_User.Status_Code_Error[1]을 셋트하고, 동시에 Camera_User.Get_VisData를 리셋합니다. 사용자는 표준 인터페이스 상태 코드 및 오류 분석에 따라 특정 상태 코드에 해당하는 오류 원인을 찾을 수 있습니다.

  4. FromCamera.STATUS_CODE가 1103이고 FromCamera.COMMAND_COMPLETE가 True인 경우 비전 시스템이 PLC에서 보낸 명령어를 성공적으로 수행했음을 의미합니다. 이때 Camera_User.Status_Code_Error[1]과 Camera_User.Get_VisData를 리셋하고, ONS 명령어를 통해 FromCamera.STATUS_CODE가 1103이고 FromCamera.COMMAND_COMPLETE가 True인 논리 출력의 상승 에지를 감지하여 Camera_Pose_Ready를 1로 설정하고 Camera_User.Step_Num을 0으로 설정합니다. 이는 PLC가 계획 경로를 수신했으며, 그 경로를 로봇에 전달할 수 있음을 의미합니다.

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

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

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

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