통신 구성 및 샘플 프로그램 사용

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

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

TIA Portal 소프트웨어를 사용하여 Siemens PLC Snap 7 프로토콜을 기반으로 Siemens SIMATIC S7 PLC와 Mech-Vision 및 Mech-Viz 소프트웨어 간의 통신은 다음과 같은 프로세스가 포함됩니다.

하드웨어 및 소프트웨어 요구 사항

하드웨어

  • 지원되는 Siemens S7 시리즈 PLC:

    • S7-300 : 통합 PN 네트워크 포트 또는 CP343-1

    • S7-400 : 통합 PN 네트워크 포트 또는 CP443-1

    • S7-1200 : 별도의 모듈 요구 사항 없음

    • S7-1500 : 별도의 모듈 요구 사항 없음

  • 전원 어댑터 : 220V AC → 24V DC

  • Mech-Mind 비전 시스템 IPC 또는 호스트

  • 네트워크 케이블

소프트웨어

  • Siemens PLC 프로그래밍 소프트웨어 TIA Portal V15.1.

  • Mech-Vision 및 Mech-Viz 소프트웨어 버전은 2.0.0 이상입니다.

  • Siemens Tia Portal 소프트웨어와 Mech-Vision 및 Mech-Viz 소프트웨어 간의 Siemens PLC Snap 7 통신을 수행하는 인터페이스 파일:

    • MM Interface.db. (데이터 통신에 사용됨)

    • MM Interface Program.scl. (각 인터페이스 명령어 기능을 구현하는 데 사용됨)

  • 파일은 Mech-Mind IPC 또는 호스트 Mech-Vision 및 Mech-Viz 소프트웨어 설치 디렉토리의 통신 구성 요소/Robot_Interface/Siemens Snap7/TIA Portal 플더에 있습니다. 파일을 TIA Portal 소프트웨어가 설치된 컴퓨터에 복사합니다.

  • MM Interface DB를 IN/OUT 인터페이스 파라미터로 직접 사용하지 마십시오. 그 이유는 PLC가 매 스캔 주기마다 IN/OUT 인터페이스 파라미터를 읽고 쓰기 때문입니다. DB가 활성화된 상태로 유지되면 비전 시스템에서 이미 전송한 데이터가 덮어써질 수 있습니다. 이런 문제를 방지하기 위해, MM Interface DB의 ToCamera 및 FromCamera 구조 데이터를 각각 DB의 OUT 및 IN 인터페이스의 파라미터로 사용해야 합니다.

PLC 프로젝트 만들기 및 구성하기

PLC 프로젝트를 만들기

  1. TIA Portal 소프트웨어를 열고 Create new project를 클릭하고 Project name을 입력합니다. Path에서 경로를 선택하고 Create 버튼을 클릭하면 새 창이 열립니다. Open project view를 클릭합니다.

    build plc 1
  2. Project tree 패널에서 Add new device를 더블 클릭하여 새 장치 추가 화면에 들어가서 Controllers에서 PLC와 일치하는 모듈을 선택하고 장치 이름을 기본값으로 두면 됩니다. 그 다음 OK 버튼을 클릭합니다.

    build plc 2
  3. device configuration 페이지에서 Device view를 클릭하고 PLC_1의 이더넷 아이콘을 더블 클릭합니다. Properties/General 페이지에서 Ethernet address를 클릭하여 IP 주소를 192.168.1.22로 설정하고 서브넷 마스크를 기본값으로 두면 됩니다. (비전 IPC와 같은 네트워크 세그먼트에 있어야 함)

    build plc 3
  4. Project tree의 PLC_1을 선택하고 우클릭하여 Properties를 선택합니다. 팝업된 창에서 순서대로 General  Protection & Security 인터페이스에 들어갑니다. Access level 패널에서 Full access (no protection) 옵션을 체크합니다. Connection mechanisms 인터페이스에서 Permit access with PUT/GET communication from remote partner 옵션을 체크하고 OK를 클릭하여 프로젝트를 저장합니다.

    build plc 4
    build plc 5

S7 통신 인터페이스 파일 가져오기

  1. Project tree에서 External source files를 클릭하고 Add new external file을 더블 클릭합니다. 팝업된 창에서 MM Interface.db, MM Interface Program.scl 파일을 선택하고 Open 버튼을 클릭하여 새 프로젝트에 가져옵니다.

    import s7 files 1
  2. 새로 가져온 외부 소스 파일을 선택하고 (먼저 MM Interface.db를 선택하고 다음 MM Interface Program.scl을 선택함) 우클릭하여 Generate blocks from source를 선택합니다. 팝업된 창에서 OK를 클릭합니다. (이 작업을 수행하면 프로젝트 내의 동일한 이름을 가진 기능 함수와 데이터 블록이 덮어쓰기되며, 사용되지 않은 번호가 자동으로 선택되어 번호로 지정됩니다)

    import s7 files 2
    import s7 files 2 1
    위의 순서대로 파일을 선택하지 않으면 로그 창에서 오류 메시지가 표시됩니다.
  3. 외부 소스 파일이 생성한 기능 함수, 데이터 블록은 다음과 같습니다. MM Interface DB의 번호는 Mech-Vision "로봇 통신 구성"의 DB 번호와 일치해야 합니다. Camera_User DB는 사용자 데이터를 저장하는 데 사용됩니다.

    import s7 files 3
  4. 프로젝트에서 MM 함수와 블록의 유지 관리를 용이하게 하려면 Program blocks를 우클릭하고 Add new group을 선택한 다음 "Mech-Mind"라고 이름을 지정합니다. 새로 생성된 모든 기능 함수와 데이터 블록을 선택하고 해당 그룹 폴더로 옮깁니다.

    import s7 files 4
    import s7 files 5

S7 통신 인터페이스 파일 다운로드

  1. Save project를 클릭하고 project tree 패널에서 새 프로젝트 PLC_1을 우클릭하여 선택합니다. 순서대로 Download to device  Hardware and software (only changes)를 선택하면 다운로드 창이 팝업됩니다.

    download s7 files 1
  2. 팝업된 다운로드 창에서 PG/PC interface를 network card driver connected to PLC로, Connection to interface/subnet를 Direct at slot '1 X1'로, Select target device를 Show all compatible devices로 선택하고 Start search를 클릭합니다. 감지된 CPU 장치를 선택하고 Download를 클릭하고 다운로드가 완료되면 Finish를 클릭합니다.

    download s7 files 2

IPC 구성 및 통신 시작

"로봇 통신 구성" 설정

  1. IPC의 IP 주소와 PLC의 IP가 같은 네트워크 세그먼트에 위치하도록 설정합니다. 예를 들어 192.168.1.10과 같은 주소로 설정합니다. 그 후 IPC에서 cmd 명령 프롬프트를 열고 (검색을 통해 cmd를 입력하여 열 수 있습니다), ping xxx.xxx.xxx.xxx (PLC의 IP 주소)를 입력하여 IPC와 PLC 간의 연결이 정상적인지 테스트합니다.

  2. Mech-Vision 소프트웨어를 시작합니다. 표시되는 인터페이스에 따라 다음의 적절한 방법을 선택하여 솔루션을 생성하십시오.

    • 시작 화면이 나타나면 새로운 솔루션 만들기를 클릭하여 새로운 솔루션을 만듭니다.

      create solution 1
    • 메인 인터페이스가 나타나면 메뉴 바에서 파일  새로운 솔루션을 차례로 클릭하여 새로운 솔루션을 만듭니다.

      create solution 2
  3. Mech-Vision 툴 바에서 로봇 통신 구성을 클릭합니다.

  4. 로봇 통신 구성 창에서 다음 구성을 수행합니다.

    1. 로봇 선택 드롭다운 메뉴를 클릭하여 실제 사용 중인 로봇에 따라 다음 설명을 참조하고 목록에 있는 로봇 또는 *사용자 지정 로봇*을 선택합니다. 마지막으로 다음을 클릭합니다.

      • 목록에 있는 로봇: 대부분의 로봇에 적합합니다. 로봇 모델 선택을 클릭하여 구체적인 모델을 선택할 수 있습니다.

      • 사용자 지정 로봇: 갠트리 로봇 또는 위 브랜드 이외의 로봇에 적용 가능합니다. 후속은 로봇 오일러 각 유형 및 *로봇 좌표계*를 선택해야 합니다.

    2. 통신 방식인터페이스 서비스 유형표준 인터페이스로, 프로토콜Siemens PLC Client로 선택하고 슬롯은 1로, DB 번호2로 설정합니다.(즉, PLC 프로젝트 "MM Interface"의 번호)

    3. PLC IP 주소192.168.1.22로 설정합니다.(즉, 이전에 설정된 PLC IP 주소)

    4. (선택 사항) 솔루션을 열 때 인터페이스 서비스 자동 활성화를 선택합니다.

    5. 응용을 클릭합니다.

      siemens plc tia

통신이 성공한지 여부 확인

  1. Mech-Vision 메인 화면에서 툴 바에 있는 “인터페이스 서비스” 기능이 활성화되어 있는지 확인하십시오. 연결이 성공하면 Mech-Vision 로그 창의 콘솔 탭에서 Connect to PLC server successfully 메시지가 나타납니다. 실패하면 구성을 확인하고 물리적 연결에 오류가 있는지 확인하세요.

    center settings 3
  2. TIA Portal 소프트웨어 인터페이스에 돌아가서 PLC_1 장치를 선택하고 Go online을 클릭합니다.

    center settings 4
  3. PCL_1  Program blocks에서 MM Interface DB를 더블 클릭하고 Monitor all icon_2를 클릭합니다. 연결이 성공하면 Heartbeat 하트비트 신호 모니터링 값은 계속해서 변경됩니다.

    center settings 5

비전 프로젝트 테스트

이 섹션에서는 Siemens PLC Client 인터페이스 프로그램을 사용하여 Mech-Vision 프로젝트를 트리거하고 비전 포인트를 획득하는 방법과, Mech-Viz 프로젝트를 트리거하고 계획된 경로를 획득하는 방법에 대해 주로 설명합니다. Siemens PLC Snap 7 통신 변수의 구체적인 기능과 소개는 DB 블록 명령어 설명을 참조하십시오.

사전 준비

  1. Mech-Vision 소프트웨어로 돌아가서 Mech-Vision 프로젝트를 구축합니다. 창 목록에서 솔루션 이름을 마우스 오른쪽 버튼으로 클릭하고 해당 프로젝트를 자동으로 로드하기를 체크합니다. 해당 솔루션 아래의 프로젝트도 자동으로 로드되도록 설정되며, 프로젝트 이름 앞에 특정 프로젝트 번호가 표시됩니다.

  2. Mech-Viz 프로젝트를 구축합니다. Mech-Viz 프로젝트 리소스 화면에서 프로젝트 명칭을 마우스 오른쪽 버튼으로 클릭하여 해당 프로젝트를 자동으로 로드하기를 선택합니다.

    테스트에 사용된 Mech-Viz 프로젝트에는 아래와 같이 스텝 이름이 1인 분기 스텝이 포함되어야 합니다.

    prepared 4

Mech-Vision에서 비전 포인트를 획득하기

파라미터를 설정하기

  1. TIA Portal 소프트웨어 project tree  Program blocks에서 Main[OB1]을 더블 클릭하여 메인 프로그램을 열고 MM_Start_Vis 기능을 Network 1로 드래그합니다.

    get visual point from vision 1
  2. "MM_Start_Vis"의 EN 포트는 스텝 ID를 비교하는 FB와 연결되며, 입력 포트인 Start_Vision에는 상승 에지를 감지하는 FB가 정의됩니다. Vision_Proj_Num의 포트 값을 1로 설정하면 번호가 1인 Mech-Vision 프로젝트가 실행될 것으로 의미합니다.

  3. Req_Pose_Num의 포트 값을 0으로 설정합니다. Mech-Vision가 모든 포즈 결과를 반환함을 요구합니다.

  4. Robot_Pose_Type의 포트 값을 0으로 설정하면, Eye to Hand 방식과 같이 이미지 캡처 시 로봇의 포즈가 필요 없음을 나타냅니다.

    get visual point from vision 4
  5. project tree에서 Camera_User 블록을 클릭하고 변수의 이름에 따라 세부 보기에서 변수를 "MM_Start_Vis" 해당한 입력 포트로 드래그합니다. MM Interface 블록을 클릭하고 변수의 이름에 따라 세부 보기에서 변수를 "MM_Start_Vis" 해당한 출력 포트로 드래그합니다.

    get visual point from vision 5
  6. MM_Get_VisData 기능을 메인 프로그램의 Network 2로 드래그합니다. EN 포트는 스텝 ID를 비교하는 FB와 연결되며, 입력 포트인 Start_Vision에는 상승 에지를 감지하는 FB가 정의됩니다.

    get visual point from vision 6
  7. Vision_Proj_Num의 포트 값을 1로 설정하면 Mech-Vision 프로젝트 번호가 1인 비전 인식 결과를 획득할 수 있습니다.

  8. project tree에서 Camera_User 블록을 클릭하고 변수의 이름에 따라 세부 보기에서 변수를 "MM_Get_VisData" 해당한 입력 포트로 드래그합니다. MM Interface 블록을 클릭하고 변수의 이름에 따라 세부 보기에서 변수를 "MM_Get_VisData" 해당한 출력 포트로 드래그합니다.

    get visual point from vision 9
  9. project tree에서 PLC_1을 우클릭하여 선택하고 순서대로 Download to device  Software (only changes)를 선택합니다. 팝업된 다운로드 인터페이스에서 Load를 클릭하여 PLC에 최신 프로그램을 다운로드합니다.

    get visual point from vision 10
    get visual point from vision 11

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

  1. Main[OB1] 메인 창에서 Enable/Disable Monitoring icon_2를 클릭하여 모니터링 기능을 활성화합니다.

    get visual point from vision 12
  2. "MM_Start_Vis"의 EN 포트에 연결된 "Camera_User".Step_Num을 우클릭하여 값을 6으로 변경합니다. 입력 변수인 "Camera_User".Start_Vis를 우클릭하여 값을 1로 변경하여 Mech-Vision 프로젝트를 트리거한 다음, 해당 변수를 리셋합니다. 이때 MM Interface DB의 StatusCode 변수의 반환 값이 1102로 되면 프로젝트를 성공적으로 시작함을 의미합니다. 반환 값이 10XX인 경우 표준 인터페이스 상태 코드 및 오류 분석 내용을 참조하여 문제를 해결하십시오.

    get visual point from vision 13
    get visual point from vision 14

Mech-Vision에서 계산된 포즈 결과를 획득하기

"MM_Start_Vis"의 EN 포트에 연결된 "Camera_User".Step_Num을 우클릭하여 값을 8로 변경합니다. 입력 변수인 "Camera_User".Get_VisData를 우클릭하여 값을 1로 변경하여 비전 포인트를 획득한 다음, 해당 변수를 리셋합니다. MM Interface DB StatusCode 변수의 반환 값이 1100으로 되면 프로젝트를 성공적으로 시작함을 의미합니다. 반환 값이 10XX인 경우 표준 인터페이스 상태 코드 및 오류 분석 내용을 참조하여 문제를 해결하십시오.

get visual point from vision 15

MM 인터페이스 데이터 블록은 다음 데이터를 반환합니다. Number of Pose Sent 값은 1이며, 이는 포즈 1개가 수신되었음을 나타냅니다. 포즈는 TargetPose에 저장됩니다.

get visual point from vision 16

Mech-Vision 자동 컨트롤 로직 샘플 파일

Mech-Vision 자동 컨트롤 로직 샘플 파일은 MM_S1_Vis_Basic 샘플 예시를 참조할 수 있습니다.

Mech-Viz에서 계획 경로를 획득하기

파라미터를 설정하기

  1. MM_Empty_Target 기능을 메인 프로그램의 Network 3으로 드래그합니다. EN 포트는 스텝 번호를 비교하는 FB와 연결하고, 입력 포트인 Start_Empty에는 평상시 열린 접점 FB를 정의합니다.

    get planning path from viz 1
  2. 데이터 블록 Camera_UserMM Interface를 각각 클릭한 후, 상세 보기에서 변수들을 이름에 맞게 "MM_Empty_Target" 해당한 입력 포트로 드래그합니다.

    get planning path from viz 2
  3. 기능 함수 MM_Start_Viz, MM_Set_Branch, MM_Get_VizData를 각각 Network 4, Network 5, Network 6으로 드래그합니다.

    get planning path from viz 4
    get planning path from viz 5
    get planning path from viz 6
  4. Robot_Pose_Type의 포트 값을 0으로 설정하면, Eye to Hand 방식과 같이 이미지 캡처 시 로봇의 포즈가 필요 없음을 나타냅니다. Camera_User 블록을 클릭하고 변수의 이름에 따라 세부 보기에서 변수를 "MM_Start_Viz" 해당한 입력 포트로 드래그합니다.

    get planning path from viz 7
  5. Branch_Name, Branch_Exit_Port의 값을 1로 설정합니다. Mech-Viz 프로젝트가 메시지 분기 1에 도달했을 때 아웃 포트 1을 따라 계속 실행되도록 제어합니다. Camera_User 블록을 클릭하고 변수의 이름에 따라 세부 보기에서 변수를 "MM_Set_Branch" 해당한 입력 포트로 드래그합니다.

    get planning path from viz 9
  6. Request_Pose_Type의 포트 값을 1로 설정합니다. 이렇게 하면 Mech-Viz가 관절 각도 데이터를 반환함을 나타냅니다. Camera_User 블록을 클릭하고 변수의 이름에 따라 세부 보기에서 변수를 "MM_Get_VizData" 해당한 입력 포트로 드래그합니다.

    이곳의 Request_Pose_Type와 MM_Start_Vis, MM_Start_Viz 기능에 있는 Robot_Pose_Type는 모두 MM Interface 데이터 블록 내 동일한 변수인 Pose Type에 해당하므로, 이들 값이 서로 다르게 설정되면 동시에 적용될 수 없습니다.
    get planning path from viz 11
  7. project tree에서 PLC_1을 우클릭하여 선택하고 순서대로 Download to device  Software (only changes)를 선택합니다. 팝업된 다운로드 인터페이스에서 Load를 클릭하여 PLC에 최신 프로그램을 다운로드합니다.

    get planning path from viz 13
    get planning path from viz 14

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

  1. Main[OB1] 창에서 Enable/Disable Monitoring icon_2 아이콘을 클릭합니다.

    get planning path from viz 15
  2. "MM_Empty_Target"의 EN 포트에 연결된 "Camera_User".Step_Num을 우클릭하여 값을 14로 변경합니다. 입력 변수인 "Camera_User".Start_Empty를 우클릭하여 값을 1로 변경하여 마지막으로 획득된 비전 결과를 지운 다음, 해당 변수를 리셋합니다.

    get planning path from viz 16

    이때 MM Interface 데이터 블록 Target Pose의 변수 값이 지우집니다.

    get planning path from viz 17
  3. "MM_Start_Viz"의 EN 포트에 연결된 "Camera_User".Step_Num을 우클릭하여 값을 18로 변경합니다. 입력 변수인 "Camera_User".Start_Viz를 우클릭하여 값을 1로 변경하여 Mech-Viz 프로젝트를 트리거한 다음, 해당 변수를 리셋합니다. 이때 StatusCode 변수가 반환한 값이 2103으로 변경되면 프로젝트를 성공적으로 시작함을 의미합니다. 반환 값이 20XX인 경우 표준 인터페이스 상태 코드 및 오류 분석 내용을 참조하여 문제를 해결하십시오.

    get planning path from viz 18
    get planning path from viz 19

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

"MM_Set_Branch"의 EN 포트에 연결된 "Camera_User".Step_Num을 우클릭하여 값을 24로 변경합니다. "Camera_User".Set_Branch를 우클릭하여 값을 1로 변경하여 Mech-Viz 프로젝트가 메시지 분기 1에 도달할 때 아웃 포트 1에 따라 계속 실행한 다음, 해당 변수를 리셋합니다. 이때 StatusCode 변수가 반환한 값이 2105로 변경되면 메시지 분기 아웃 포트를 성공적으로 설정함을 의미합니다. 반환 값이 20XX인 경우 표준 인터페이스 상태 코드 및 오류 분석 내용을 참조하여 문제를 해결하십시오.

get planning path from viz 20
get planning path from viz 21

Mech-Viz에서 계획된 경로를 획득하기

"MM_Get_VizData"의 EN 포트에 연결된 "Camera_User".Step_Num을 우클릭하여 값을 26으로 변경합니다. 입력 변수인 "Camera_User".Get_VizData를 우클릭하여 값을 1로 변경하여 Mech-Viz 계획 경로를 획득한 다음, 해당 변수를 리셋합니다. 이때 StatusCode 변수가 반환한 값이 2100로 변경되면 Mech-Viz 계획 경로를 성공적으로 획득함을 의미합니다. 반환 값이 20XX인 경우 표준 인터페이스 상태 코드 및 오류 분석 내용을 참조하여 문제를 해결하십시오.

get planning path from viz 22

MM Interface 데이터 블록의 반환 데이터는 다음과 같습니다. Number of Pose Sent 값이 6이면 6개의 관절 각도 데이터를 획득한 것을 의미하며, 해당 데이터는 TargetPose에 저장됩니다. Index of Vision Picking Point 값이 3이면 비전 이동 웨이포인트가 경로에서 세 번째 위치에 있음을 나타냅니다.

get planning path from viz 23

Mech-Viz 자동 컨트롤 로직 샘플 파일

Mech-Viz 자동 컨트롤 로직 샘플 파일은 MM_S5_Viz_SetBranch 샘플 예시를 참조할 수 있습니다.

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

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

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

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