샘플 프로그램2:MM_S2_Vis_Basic

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

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

프로그램 소개

기능 설명

PLC가 Mech-Viz 프로젝트 실행를 트리거하여 Mech-Viz가 계획한 경로를 획득합니다.

파일 경로

Mech-Viz 및 Mech-Viz 소프트웨어 설치 디렉토리의 통신 구성 요소/Robot_Interface/EthernetIP/Programming Samples/AB PLC EthernetIP/sample applications/ExportedRoutineOfSampleProjects/MM_S2_Viz_Basic.L5X에 있습니다.

필요한 프로젝트

Mech-Vision와 Mech-Viz 프로젝트

사용 조건

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

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

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

프로그램 설명

다음에는 MM_S2_Viz_Basic 샘플 프로그램과 관련 설명입니다.

sample2 1
sample2 2
sample2 3
sample2 4
sample2 5
sample2 6
sample2 7

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

sample2 8

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

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

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

워크플로 설명

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

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

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

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

  • Camera_Pose_Ready: PLC가 계획 경로를 획득한지 여부를 확인합니다. 유효한 값은 다음과 같습니다.

    • 0: 카메라가 이미지 캡처 준비 중이거나 이미 캡처하기를 완료했습니다. Mech-Viz가 계획 경로를 계산하는 중일 때 PLC는 계획 경로를 수신하지 못합니다.

    • 1: 카메라가 이미지 캡처하기를 완료했고 PLC는 계획 경로를 수신했습니다.

    • 2: 카메라가 첫 번째 캡처를 준비하는 중일 때 PLC는 계획 경로를 수신하지 못합니다.

따라서 Rung 0은 ToCamera.COMM_ENABLE을 셋트하며, 첫 번째 스캔 사이클에서만 Camera_Pose_Ready에 2를 할당합니다.

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

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

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

  • 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-Viz 프로젝트와 관련된 인터페이스 파라미터를 설정하기

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

따라서 Rung 2는 User_Robot_Pose_Type을 2로 설정하는 것을 의미합니다.

sample2 4
  • Camera_User.Robot_Pose_JPS[0]\~[5]: 로봇의 6개 관절 각도 데이터. User_Robot_Pose_Type이 2인 경우 여기의 관절 각도는 로봇 측에서 정의한 관절 각도입니다. Camera_User.Robot_Pose_JPS[0]~[5]는 MM_Start_Viz 명령어의 Robot_Pose_JPS 파라미터와 일치해야 합니다. 이 예시에서는 로봇 J1~J6의 관절 각도가 각각 10000, 20000, 30000, 40000, 50000, 60000으로 설정됩니다. 사용자는 실제 필요에 따라 값을 수정할 수 있습니다. 동시에 로봇 플랜지 포즈 데이터(MM_Start_Viz 명령어의 Robot_Pose_TCP 파라미터)를 추가할 수도 있습니다.

따라서 Rung 3은 User_Robot_Pose_Type이 2일 경우 Camera_User.Robot_Pose_JPS[0]~[5]를 순차적으로 10000, 20000, 30000, 40000, 50000, 60000으로 설정함을 나타냅니다.

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

sample2 5
  • External_Photo_Signal: 상승 에지가 발생할 때 이미지 캡처를 트리거하는 외부 신호입니다.

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

  • FromCamera.STATUS_CODE: 비전 시스템 상태 코드입니다. 2103은 PLC가 성공적으로 Mech-Viz 프로젝트 실행을 트리거함을 의미합니다. 2100은 PLC가 성공적으로 Mech-Viz가 계획한 경로를 획득함을 의미합니다.

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

  • Camera_User.Start_Viz: 상승 에지가 발생할 때 Mech-Viz 프로젝트가 실행되도록 하는 플래그입니다.

  • Camera_User.Get_VizData: 상승 에지가 발생할 때 Mech-Viz 프로젝트가 계획 경로를 획득하도록 하는 플래그입니다.

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

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

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

  3. 다음번에는 이미지가 비정상적으로 캡처됩니다. FromCamera.STATUS_CODE가 2100과 같지 않고 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_Viz와 Camera_User.Get_VizData를 리셋합니다.

Mech-Viz 프로젝트 실행을 트리거하고, 성공적으로 트리거되었는지를 판단한 후 그에 따라 다른 처리를 수행하기

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

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

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

  2. MM_Start_Viz.EnableOut은 True이고 FromCamera.TRIGGER_ACKNOWLEDGE가 False일 경우 Camera_User.Start_Viz가 셋트되어 PLC가 Mech-Viz 프로젝트 실행을 트리거합니다.

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

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

Mech-Viz 계획 경로를 획득하고, 성공적으로 획득한지를 판단한 후 그에 따라 다른 처리를 수행하기

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

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

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

  2. MM_Get_VizData.EnableOut가 True이고 FromCamera.TRIGGER_ACKNOWLEDGE가 False일 때, Camera_User.Get_VizData가 셋트되어 PLC가 Mech-Viz 프로젝트 출력한 계획 경로를 획득합니다.

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

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

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

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

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

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