====== 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 사용설명서]]