사용자 도구

사이트 도구


guide:hmi_connection:studio2

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
guide:hmi_connection:studio2 [2026/10/05 17:18] – 만듦 - 바깥 편집 127.0.0.1guide:hmi_connection:studio2 [2026/10/25 11:33] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
-====== 02-B · MPINO STUDIO2로 HMI 프로그램 만들기 ======+====== MPINO STUDIO2로 프로그램 작성하기 ======
  
-[[guide:hmi_connection|HMI 연결 전체 순서]] · [[guide:hmi_connection:wiring|이전: 결선]]+[[guide:hmi_connection|HMI 연결]]
  
-MPINO STUDIO2에서는 **실행 → 통신**에서 HMI 통신을 설정하고, Arduino Code와 Ladder Logic에서 같은 메모리를 사용합니다. 이 실습은 Arduino Code로 숫자를 만들고 래더로 내부 비트를 복사합니다. 실제 입출력 단자는 사용하지 않습니다.+~~NOTOC~~
  
-===== 1. 새 프로젝트와 메모리 설정 =====+MPINO STUDIO2 방식은 앱의 통신 설정에 따라 제품의 요청 처리 코드를 생성합니다. HMI에 표시할 내부 ''M''·''D'' 메모리와 주소 형식은 선택한 프로토콜 문서에서 확인해주시기 바랍니다. 제품 채널과 결선은 [[guide:hmi_connection:wiring|HMI 연결방법]]에서, 화면 구성과 결과 확인은 [[guide:hmi_connection:screen|HMI 화면 만들기]]와 [[guide:hmi_connection:check|동작 확인]]에서 설명합니다.
  
-  - **파일 → 새로 만들기**에서 MPINO-8A4R-S에 해당하는 **MPINO-8A4R(T)-S**를 선택합니다. +아래 설치 방법은 처음 사용하는 경우에 확인해주시기 바랍니다. 뒤의 간단한 예제 중 Cnet 전환 예제는 Modbus RTU 프로젝트의 메모리·래더·''main'' 코드 입력과 첫 빌드·제품 업로드가 선행되어야 합니다. Modbus HMI 화면 작성이나 실물 송수신 시험은 선행 조건이 아닙니다.
-  - ''Ctrl+S''로 ''HMI_First_Test.mp2''라는 이름으로 저장합니다. +
-  - **설정 → 메모리 영역 설정**을 엽니다. +
-  - 이번 실습은 **P 64, M 16, D 16, C 16, T 16, R 16**으로 설정합니다. 숫자는 주소가 아니라 메모리 개수입니다. +
-  - 설정을 적용하고 저장합니다. +
-  - **설정 → 래더 핀맵 설정**에서 실제 입출력 핀의 **사용**을 모두 해제한 상태로 둡니다. 이 실습에는 실제 핀을 연결하지 않습니다.+
  
-{{ :products:mpino_studio2:board-select-modal-marked.svg?900 |실제 보드 선택 화면 }}+===== 1. MPINO STUDIO2 설치방법 =====
  
-메모리 설정 상세는 [[products:mpino_studio2:memory|메모리 이해하기]]를 확인합니다. ''M0/M1''은 내부 비트, ''D0 ~ D2''는 내부 숫자 메모리입니다. Arduino 핀 ''D0''와 내부 메모리 ''D0''는 다른 개념입니다.+{{ :guide:hmi_connection:revision5-dark:studio-install-flow.svg?420 |MPINO STUDIO2 설치와 제품 프로젝트 시작 순서 }}
  
-===== 2. 실행 → 통신 설정 =====+  - [[https://www.ilogics.net/ko-kr/resources/downloads/software/4|MPINO STUDIO2 자료실]]에서 최신 한국어판 설치파일을 내려받습니다. 
 +  - 설치파일을 실행하고 설치를 완료해주시기 바랍니다. 
 +  - MPINO STUDIO2를 실행해주시기 바랍니다. 
 +  - **파일 → 새로 만들기**에서 사용할 제품을 선택해주시기 바랍니다. MPINO-8A4R-S는 **MPINO-8A4R(T)-S**를 선택해주시기 바랍니다. 
 +  - ''Ctrl+S''로 프로젝트를 저장해주시기 바랍니다.
  
-{{ :products:mpino_studio2:communication-settings-marked.svg?1000 |실제 통신 설정 화면. 그림의 기본 속도 대신 이번 실습에서는 9600을 선택합니다. }}+{{ :products:mpino_studio2:board-select-modal-marked.svg?900 |MPINO STUDIO2 실제 보드 선택 화면 }}
  
-^ 그림 번호 ^ 항목 ^ MPINO-8A4R-S 실습값 ^ +MPINO STUDIO2에는 제품용 SDK가 함께 설치됩니다. Arduino IDE용 SDK를 별도로 설치할 필요가 없습니다.
-| ① | 채널 | ''Serial1'' — RS-232 | +
-| ② | 프로토콜 | ''Modbus RTU Slave'' | +
-| ③ | Slave ID | ''1'' | +
-| ④ | 통신속도 | ''9600'' | +
-| ⑤ | 데이터 비트 | ''8'' | +
-| ⑥ | 정지 비트 | ''1'' | +
-| ⑦ | 패리티 | ''없음'' |+
  
-  - **실행 → 통신**을 엽니다. +**[[guide:hmi_connection:studio2:modbus|2. Modbus RTU 통신 프로토콜로 연결하기]]**
-  - 실제 배선한 채널을 고릅니다. 다른 제품은 [[guide:hmi_connection:wiring#제품의_통신_채널_선택|제품별 채널 표]]를 확인합니다. +
-  - 위 표대로 설정하고 창을 닫은 뒤 ''Ctrl+S''로 저장합니다.+
  
-기본 속도 ''115200''을 그대로 두지 않고 **9600**으로 바꿉니다. 설정을 변경해도 이미 업로드된 제품 프로그램은 즉시 바뀌지 않습니다. 마지막 단계에서 다시 빌드·업로드합니다. +**[[guide:hmi_connection:studio2:cnet|3. LS산전 Cnet 프로토콜로 연결하기]]**
- +
-===== 3. 내부 비트 래더 한 줄 만들기 ===== +
- +
-왼쪽 탐색기에서 **래더 → ladderLoop**를 엽니다. **M0 접점 → M1 코일** 한 줄을 만듭니다. HMI가 변경한 내부 비트를 다른 내부 비트에 복사하는 회로입니다. +
- +
-  - 1행 1열을 선택하고 **NO 접점** 또는 ''F2''를 누릅니다. +
-  - 접점을 더블클릭하거나 ''Enter''를 누르고 주소에 ''M0''를 입력합니다. +
-  - 1행 2열을 선택하고 **출력 코일** 또는 ''F9''를 누릅니다. +
-  - 코일의 주소에 ''M1''을 입력합니다. +
-  - 회로의 주소가 아래 그림처럼 ''M0 → M1''인지 확인합니다. +
- +
-{{ :guide:hmi_connection:internal-ladder.svg?420 |내부 메모리 M0 접점을 M1 코일에 연결하는 래더 구성. 실제 핀 출력은 사용하지 않습니다. }} +
- +
-이름이 출력 코일이어도 주소가 **내부 비트 M1**이면 물리 릴레이 출력이 아닙니다. 이 실습에 ''P32'' 같은 실제 출력 주소를 넣지 않습니다. 기존 첫 프로젝트의 ''P0 → P32'' 회로를 복사하지 않습니다. +
- +
-===== 4. main의 Arduino Code 입력 ===== +
- +
-왼쪽 탐색기의 **Arduino Code → main**을 열고 아래 전체 코드로 바꿉니다. +
- +
-<code cpp> +
-#include "mpino_runtime.h" +
-#include "ladder_generated.h" +
- +
-unsigned long lastTick = 0; +
- +
-void setup() { +
-  M[0] = false; +
-  M[1] = false; +
-  D[0] = 0; +
-  D[1] = 0; +
-  D[2] = 0; +
-  lastTick = millis(); +
-} +
- +
-void loop() { +
-  ladderLoop(); +
-  unsigned long now = millis(); +
-  if (now - lastTick >= 1000UL) { +
-    lastTick = now; +
-    D[0] = (D[0] + 1) % 100; +
-  } +
-  D[2] = D[1]; +
-} +
-</code> +
- +
-''ladderLoop()''는 위에서 만든 내부 비트 회로를 매번 실행합니다. ''D0''는 1초마다 증가하고, ''D2''는 HMI가 쓴 ''D1''을 복사합니다. 긴 ''delay()''를 사용하지 않습니다. +
- +
-통신 초기화와 요청 처리는 **실행 → 통신** 설정으로 생성됩니다. 이 프로젝트에 SDK용 ''ImodbusRTUMem()''·''ImodbusRTUInit()''·''ImodbusRTU()''를 추가하지 않습니다. STUDIO2가 준비한 메모리를 재할당하거나 같은 포트를 다른 코드가 초기화하면 충돌할 수 있습니다. +
- +
-===== 5. 빌드와 업로드 ===== +
- +
-  - ''Ctrl+S''로 프로젝트를 저장합니다. +
-  - **실행 → 빌드**를 실행하고 오류가 없는지 확인합니다. +
-  - 상태바에서 제품에 연결한 MP 다운로드 케이블의 PC 포트를 선택합니다. +
-  - **실행 → 업로드**를 실행하고 완료 메시지를 확인합니다. +
-  - 업로드가 끝나면 HMI의 실제 RS-232 통신 케이블과 제품 전원을 확인합니다. +
- +
-HMI용 ''Serial1''은 제품의 통신 채널이고, 업로드 포트는 PC의 ''COM'' 포트입니다. 같은 Serial1을 다른 Arduino Code나 래더 모니터링 통신에 동시에 지정하지 않습니다. [[products:mpino_studio2:monitoring#포트_사용_관계|포트 사용 관계]]와 [[products:mpino_studio2:first_project|첫 프로젝트의 빌드·업로드]]에서 자세히 확인할 수 있습니다. +
- +
-===== 6. 이 프로젝트의 HMI 주소 ===== +
- +
-**STUDIO2 내장 Modbus 통신 프레임의 0 기반 주소**입니다. Arduino IDE SDK 예제의 0/1/2와 다릅니다. +
- +
-^ 화면 요소 ^ 메모리 ^ 영역·주소 ^ +
-| 통신 확인 숫자 | ''D0'' | Holding Register ''2000'' | +
-| 입력값 | ''D1'' | Holding Register ''2001'' | +
-| 제품에서 돌려준 값 | ''D2'' | Holding Register ''2002'' | +
-| 시험 스위치 / 시험 램프 | ''M0'' | Coil ''1000'' | +
-| 선택: 래더 결과를 보는 추가 램프 | ''M1'' | Coil ''1001'' | +
- +
-''M1'' 램프를 추가하면 접점과 코일로 만든 래더 결과도 확인할 수 있습니다. 첫 화면의 필수 요소는 ''D0/D1/D2/M0''입니다. +
- +
-HMI가 실제로 사용할 수 있는 메모리 개수는 프로젝트 설정을 따릅니다. 주소 구간 ''M 1000 ~ 1999''와 ''D 2000 ~ 2999''가 모든 프로젝트에 해당 메모리를 1000개씩 할당한다는 뜻은 아닙니다. 이번 실습에서 M·D는 각각 16개입니다. +
- +
-D는 부호 있는 16비트 정수로 다루며, 이번 숫자 입력은 ''0 ~ 9999''로 제한합니다. HMI에서 16비트 1워드·소수점 0·배율 1로 맞춥니다. 주소를 1 기반이나 ''4xxxx''로 입력하는 드라이버는 [[guide:hmi_connection:screen#주소_입력_방식_확인|주소 표기 안내]]를 확인합니다. +
- +
-===== 7. 확인한 범위 ===== +
- +
-이 실습 프로젝트는 STUDIO2 설치본의 ILOGICS 보드 패키지로 MPINO-8A4R-S 대상 코드 생성·컴파일을 확인했습니다. **실물 HMI 연결은 별도의 확인 단계**입니다. 사용하는 HMI의 드라이버·단자·주소 입력 규칙을 확인한 뒤 아래 단계로 진행합니다. +
- +
-[[guide:hmi_connection:screen|다음: 03 · HMI 화면 만들기 →]]+
  
guide/hmi_connection/studio2.1791188300.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki