====== MPINO STUDIO 2 Phase 5 · Arduino Code 편집 ======
Arduino Code 파일을 생성하고 관리하는 방법과 코드 작성, 자동완성, 정의 이동, 찾기ㆍ바꾸기, 코드 오류 확인 방법을 설명합니다.
{{ :products:mpino_studio2:code-editor-learning-path.svg?1000 |코드 파일 선택부터 문제 확인까지 이어지는 Arduino Code 편집 순서 }}
===== 1. Arduino Code 편집 화면 =====
탐색기에서 **코드** 그룹의 파일을 선택하면 Arduino Code 편집 화면이 열립니다. 번호는 아래 설명과 같은 위치를 가리킵니다.
{{ :products:mpino_studio2:code-editor-marked.svg?1000 |탐색기의 코드 그룹, 줄 번호와 코드 접기, 코드 입력 영역, 미니맵을 표시한 Arduino Code 편집 화면 }}
* **1** 코드 그룹: 프로젝트에 포함된 Arduino Code 파일을 표시합니다.
* **2** 줄 번호ㆍ코드 접기: 코드의 위치를 확인하고 함수나 코드 블록을 접거나 펼칩니다.
* **3** 코드 입력 영역: Arduino C/C++ 코드를 작성하고 수정합니다.
* **4** 미니맵: 파일 전체 구조와 현재 보고 있는 위치를 확인합니다.
파일을 선택하면 해당 내용이 편집 화면에 표시되고 탐색기의 선택 항목도 함께 바뀝니다.
===== 2. 코드 파일 생성ㆍ관리 =====
==== 기본 코드 파일 ====
새 프로젝트의 첫 코드 파일 이름은 ''main''입니다. 프로젝트를 처음 저장하면 이 파일의 이름은 프로젝트 파일명에 맞춰 자동으로 변경됩니다.
기본 코드 파일은 항상 코드 목록의 맨 위에 있으며, 이름을 직접 바꾸거나 삭제하거나 이동할 수 없습니다.
==== 코드 파일 조작 ====
^ 동작 ^ 마우스 ^ 키보드 ^ 결과 ^
| 추가 | **코드** 그룹의 ''+'' 또는 코드 그룹ㆍ파일의 우클릭 메뉴에서 **추가** | - | 새 ''.ino'' 파일이 목록 끝에 추가되고 바로 열립니다. |
| 이름 변경 | 파일 더블클릭 또는 우클릭 메뉴의 **이름 변경** | ''F2'' 또는 ''Enter'' | 추가한 코드 파일의 이름을 변경합니다. |
| 삭제 | 파일의 ''×'' 또는 우클릭 메뉴의 **삭제** | ''Delete'' | 확인 창에서 승인한 뒤 파일을 삭제합니다. |
| 목록 순서 변경 | 파일을 위아래로 드래그 | ''Ctrl + ↑''ㆍ''Ctrl + ↓'' | 탐색기에서 선택한 추가 파일을 한 칸 이동합니다. |
{{ :products:mpino_studio2:code-files-marked.svg?1000 |코드 파일 추가 버튼, 기본 파일, 추가 파일, 이름 변경과 삭제 메뉴를 표시한 코드 파일 관리 화면 }}
코드 파일 이름에는 확장자를 입력하지 않습니다. 빈 이름, 점으로 시작하는 이름, ''/''ㆍ''\''ㆍ''..''이 포함된 이름과 대소문자만 다른 중복 이름은 사용할 수 없습니다.
추가 파일의 순서 변경은 현재 작업 중인 목록에 반영됩니다. 프로젝트를 다시 열면 추가 파일은 이름순으로 정렬됩니다.
===== 3. 코드 작성ㆍ파일 간 함수 사용 =====
코드 파일을 기능별로 나누면 프로젝트 코드를 찾고 관리하기 쉽습니다. 다음 예제는 ''control'' 파일에 값의 범위를 제한하는 함수를 작성하고 기본 코드 파일에서 호출합니다.
==== ''control'' 파일 ====
int limitValue(int value) {
return constrain(value, 0, 100); // 값을 0~100 범위로 제한합니다.
}
==== 기본 코드 파일 ====
void setup() {
}
void loop() {
D0 = limitValue(D1); // D1을 0~100으로 제한하여 D0에 저장합니다.
ladderLoop(); // 작성한 래더 로직을 실행합니다.
}
* ''limitValue()''는 전달받은 값을 Arduino 기본 함수 ''constrain()''으로 처리하여 0부터 100 사이의 값으로 반환합니다.
* 같은 프로젝트의 여러 ''.ino'' 파일은 한 스케치로 함께 빌드되므로 한 파일에 작성한 함수를 다른 파일에서 호출할 수 있습니다.
{{ :products:mpino_studio2:code-files-share.svg?1000 |control 파일의 limitValue 함수 정의와 기본 코드 파일의 호출 관계 }}
''D0''과 ''D1''의 저장 형식과 Arduino Code에서 PLC 메모리를 사용하는 방법은 [[products:mpino_studio2:memory|Phase 2 · 메모리 이해하기]]에서 확인하십시오. 래더 박스함수에서 Arduino 함수를 호출하는 방법은 [[products:mpino_studio2:box_functions:free_input|Arduino Code의 함수호출 상세 설명]]에서 확인할 수 있습니다.
**주의:** ''loop()''에서 ''ladderLoop()''를 삭제하면 작성한 래더 로직이 실행되지 않습니다.
===== 4. 자동완성 사용하기 =====
함수나 변수 이름의 앞부분을 입력하면 사용할 수 있는 항목이 자동완성 목록에 표시됩니다.
- 코드 입력 영역에 함수 또는 변수 이름의 앞부분을 입력합니다.
- 목록이 열리지 않으면 ''Ctrl + Space''를 누릅니다.
- ''↑''ㆍ''↓''로 항목을 선택합니다.
- ''Enter'' 또는 ''Tab''으로 선택한 항목을 입력합니다.
앞의 예제에서 ''limitV''를 입력하면 다른 코드 파일에 작성한 ''limitValue()''를 선택할 수 있습니다.
{{ :products:mpino_studio2:code-autocomplete.svg?1000 |limitV를 입력한 코드 줄과 limitValue 자동완성 후보 }}
^ 자동완성 항목 ^ 표시 예 ^ 확인할 내용 ^
| 프로젝트 함수ㆍ변수 | ''limitValue()'' | 현재 프로젝트의 코드 파일에 작성한 이름 |
| Arduino 기본 함수ㆍ상수 | ''constrain()''ㆍ''HIGH'' | Arduino에서 제공하는 함수와 상수 |
| 보드 코어ㆍ라이브러리 | 분석된 함수ㆍ상수 | 선택한 보드 코어와 프로젝트에 반영된 라이브러리의 항목 |
보드 코어와 라이브러리 항목은 코드 분석이 끝난 뒤 표시될 수 있습니다. 자동완성으로 입력했더라도 인수의 개수와 자료형은 함수 정의에 맞아야 합니다.
===== 5. 정의로 이동하기 =====
함수나 변수 이름에 커서를 놓고 ''F12''를 누르면 정의된 위치를 확인할 수 있습니다.
^ 정의 위치 ^ ''F12'' 실행 결과 ^
| 현재 코드 파일 | 정의가 있는 줄로 이동합니다. |
| 다른 코드 파일 | 해당 파일을 열고 정의가 있는 줄로 이동합니다. |
| Arduino 코어ㆍ라이브러리 | 읽기 전용 정의 화면으로 이동합니다. |
기본 코드 파일의 ''limitValue()''에서 ''F12''를 누르면 ''control'' 파일의 함수 정의로 이동합니다. ''constrain()''과 같은 Arduino 코어 함수는 읽기 전용 정의 화면에서 확인할 수 있습니다. 읽기 전용 화면은 상단 닫기 버튼 또는 ''Esc''로 닫습니다.
{{ :products:mpino_studio2:code-definition-marked.svg?1000 |함수 호출 위치와 F12로 연 정의 위치 및 읽기 전용 상태 }}
* **1** 호출 위치: 정의를 확인할 함수 이름입니다.
* **2** 함수 정의: ''F12''로 이동한 선언 또는 구현 위치입니다.
* **3** 읽기 전용: Arduino 코어와 라이브러리 정의를 수정할 수 없는 상태입니다.
^ 포커스 위치 ^ ''F12'' 동작 ^
| Arduino Code | 정의로 이동 |
| 래더로직 | 하강 엣지 접점 생성 |
같은 단축키라도 현재 선택한 편집 화면에 따라 동작이 달라집니다.
===== 6. 찾기ㆍ바꾸기 =====
Arduino Code와 래더로직은 현재 편집 화면에 맞는 찾기ㆍ바꾸기 화면을 사용합니다.
==== Arduino Code에서 찾기ㆍ바꾸기 ====
^ 작업 ^ 조작 ^ 결과 ^
| 찾기 열기 | ''Ctrl + F'' | 현재 코드 파일에서 문자열을 찾습니다. |
| 바꾸기 열기 | ''Ctrl + H'' | 찾을 내용과 바꿀 내용을 입력합니다. |
| 이전ㆍ다음 결과 | ''Shift + Enter''ㆍ''Enter'' 또는 화면 버튼 | 검색 결과 사이를 이동합니다. |
| 바꾸기 | **바꾸기**ㆍ**모두 바꾸기** | 선택한 결과 또는 현재 파일의 모든 결과를 변경합니다. |
대소문자 구분, 단어 단위, 정규식 옵션을 사용할 수 있습니다.
==== 래더로직에서 찾기ㆍ바꾸기 ====
래더 그리드에 포커스를 둔 뒤 ''Ctrl + F''를 누릅니다. 현재 래더 또는 모든 래더에서 접점ㆍ코일 주소와 셀의 코드 문자열을 찾고 바꿀 수 있습니다.
^ 검색 방식 ^ 검색 대상 ^ 바꾸기 ^
| 일반 검색 | 주소와 셀의 코드 문자열 | 한 항목ㆍ모두 바꾸기 사용 가능 |
| 단어 단위 | ''M1'' 검색 시 ''M10'' 제외 | 온전한 주소만 검색 |
| 박스함수 검색 | 박스함수의 명령어 이름 | 정확히 일치하는 이름만 검색하며 바꾸기 사용 불가 |
{{ :products:mpino_studio2:find-replace-comparison.svg?1000 |Arduino Code와 래더로직의 찾기ㆍ바꾸기 화면 비교 }}
===== 7. 코드 오류 확인하기 =====
새 오류나 경고가 추가되면 하단의 **문제** 패널에서 메시지와 위치를 확인할 수 있습니다. 패널이 보이지 않으면 ''Ctrl + J''을 누르고 **문제** 탭을 선택합니다.
- 문제 탭의 배지에서 오류와 경고의 합계를 확인합니다.
- 오류 단계와 메시지를 확인합니다.
- 표시된 파일 이름과 줄ㆍ열 위치를 확인합니다.
- 첫 코드 파일의 문제 항목을 선택하면 해당 코드 위치로 이동합니다.
{{ :products:mpino_studio2:code-problems-marked.svg?1000 |문제 탭, 오류 메시지, 파일과 줄 위치, 오류가 있는 코드 줄 }}
* **1** 문제 탭ㆍ개수: 현재 확인할 오류와 경고의 합계입니다.
* **2** 오류 메시지: 원인을 확인할 진단 내용입니다.
* **3** 파일ㆍ줄ㆍ열: 문제가 발견된 위치입니다.
* **4** 코드 위치: 문제 항목을 선택해 이동한 줄입니다.
추가한 코드 파일에서 발생한 오류는 문제 항목에 표시된 파일명과 줄 번호를 확인한 뒤 탐색기에서 해당 파일을 직접 여십시오.
빌드 출력 전체를 확인하고 프로젝트를 다시 빌드하는 방법은 [[products:mpino_studio2:first_project|Phase 1 · 첫 프로젝트 만들기]]에서 확인하십시오.
===== 8. Arduino Code 편집 단축키 =====
단축키는 **파일 → 환경설정 → 단축키**에서 변경할 수 있습니다.
{{ :products:mpino_studio2:code-editor-shortcuts.svg?1000 |Arduino Code 편집에 사용하는 주요 단축키 }}
^ 작업 ^ 기본 단축키 ^ 적용 위치 ^
| 자동완성 열기 | ''Ctrl + Space'' | 코드 입력 영역 |
| 정의로 이동 | ''F12'' | 코드의 함수ㆍ변수 이름 |
| 찾기 | ''Ctrl + F'' | 코드 또는 래더 편집 영역 |
| 바꾸기 | ''Ctrl + H'' | Arduino Code 편집 영역 |
| 하단 패널 열기ㆍ닫기 | ''Ctrl + J'' | 전체 작업 화면 |
| 코드 파일 이름 변경 | ''F2'' 또는 ''Enter'' | 탐색기의 추가 코드 파일 |
| 코드 파일 삭제 | ''Delete'' | 탐색기의 추가 코드 파일 |
| 코드 파일 순서 변경 | ''Ctrl + ↑''ㆍ''Ctrl + ↓'' | 탐색기의 추가 코드 파일 |
''F2'', ''F12'', ''Delete'', ''Ctrl + ↑''ㆍ''Ctrl + ↓''는 포커스가 있는 화면에 따라 다른 기능을 실행할 수 있습니다. 단축키를 사용하기 전에 작업할 코드 영역이나 탐색기 파일을 선택하십시오.
===== 9. 문제해결방법 =====
^ 증상 ^ 확인할 항목 ^
| 자동완성 목록이 열리지 않습니다. | 코드 입력 영역을 선택하고 ''Ctrl + Space''를 누른 뒤 함수 이름의 철자를 확인합니다. |
| 다른 코드 파일의 함수가 자동완성에 없습니다. | 함수의 이름과 괄호가 올바른지, 두 파일이 같은 프로젝트에 있는지 확인하고 코드 분석이 끝날 때까지 기다립니다. |
| ''F12''를 눌러도 정의가 열리지 않습니다. | 함수 이름 위에 커서가 있는지, Arduino Code에 포커스가 있는지, 코드에 문법 오류가 없는지 확인합니다. |
| 정의 화면에서 내용을 수정할 수 없습니다. | Arduino 코어와 라이브러리 정의는 읽기 전용으로 열립니다. |
| 찾기 화면이 예상과 다릅니다. | 현재 선택한 편집 대상이 Arduino Code인지 래더로직인지 확인합니다. |
| 첫 번째 코드 파일을 변경할 수 없습니다. | 첫 코드 파일은 프로젝트가 관리하므로 이름 변경ㆍ삭제ㆍ이동할 수 없습니다. |
| 추가 코드 파일의 문제 항목에서 해당 줄로 이동하지 않습니다. | 문제 항목의 파일명과 줄 번호를 확인하고 탐색기에서 해당 파일을 직접 엽니다. |
===== 관련 문서 =====
* [[products:mpino_studio2:activity_bar|Phase 8 · 활동바와 사이드 패널]]
* [[products:mpino_studio2:menus_settings|Phase 7 · 메뉴와 환경설정]]
* [[products:mpino_studio2:monitoring|Phase 6 · 시리얼ㆍ래더 모니터링]]
* [[products:mpino_studio2:first_project|Phase 1 · 첫 프로젝트 만들기]] — 빌드ㆍ업로드ㆍ빌드 출력
* [[products:mpino_studio2:memory|Phase 2 · 메모리 이해하기]] — Arduino Code와 PLC 메모리 공유
* [[products:mpino_studio2:ladder_editing|Phase 3 · 래더 편집 기초]] — 래더 셀과 접점ㆍ코일 편집
* [[products:mpino_studio2:box_functions|Phase 4 · 박스함수]] — 박스함수와 Arduino 함수호출
* [[products:mpino_studio2|MPINO STUDIO 2 사용설명서]]