샘플 프로그램2:MM_S2_Vis_Basic

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

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

프로그램 소개

기능 설명

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

파일 경로

Mech-Vision 및 Mech-Viz 소프트웨어 설치 디렉토리의 통신 구성 요소/Robot_Interface/PROFINET/Programming Samples/sample applications/SampleProjectProfinet.zip에 있습니다.

필요한 프로젝트

Mech-Vision와 Mech-Viz 프로젝트

사용 전제 조건

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

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

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

프로그램 설명

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

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

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

sample2 7

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

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

  • 지멘스 S7 시리즈 PLC에 내장된 자주 사용하는 기본 명령어는 자주 사용하는 명령어 설명을 참고하십시오.

워크플로 설명

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

sample2 1
  • "CameraIO".MM.ToCamera.COMM_ENABLE: 통신이 활성화되어 있는지 여부를 확인합니다. 유효한 값은 다음과 같습니다.

    • False: 통신이 비활성화되었습니다. 비전 시스템은 PLC가 전송한 명령어를 무시하겠습니다.

    • True: 통신이 활성화되었습니다. 비전 시스템은 PLC가 전송한 명령어를 수신하겠습니다.

  • P_TRIG: "CameraIO".MM.ToCamera.COMM_ENABLE이 True일 때 논리 연산 결과의 상승 에지를 감지합니다.

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

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

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

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

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

따라서, Network 1은 "CameraIO".MM.ToCamera.COMM_ENABLE이 True이고 P_TRIG가 상승 에지를 감지했을 때만 "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] 값이 초기화됩니다.

따라서, Network 2는 "External_Reset_Camera_Error" 신호가 True 상태일 때 "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로 설정되어 있습니다. 실제 요구 사항에 맞게 값을 수정할 수 있습니다.

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

따라서 Network 3은 "User_Robot_Pose_Type"이 2이면 "Camera_User".Robot_Pose[0,0]~[0,5]를 순서대로 10000, 20000, 30000, 40000, 50000, 60000으로 설정하기를 의미합니다.

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

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

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

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

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

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

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

  2. 다음번에는 이미지가 정상적으로 캡처됩니다. "CameraIO".MM.FromCamera.STATUS_CODE는 2100과 같습니다.

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

마지막으로 "Camera_User".Step_Num을 5로 설정하고, "Camera_User".Start_Viz와 "Camera_User".Get_VizData를 리셋합니다. 또한 "Camera_Pose_Ready"를 0으로 설정합니다.

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

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

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

  1. 기능 MM_Start_Viz를 활성화합니다.

  2. "MM_Start_Viz".ENO가 True이고 "CameraIO".MM.FromCamera.TRIGGER_ACKNOWLEDGE가 False일 때, "Camera_User".Start_Viz가 셋트되어 PLC가 Mech-Viz 프로젝트 실행을 트리거합니다.

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

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

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

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

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

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

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

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

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

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

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

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

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