문서의 이전 판입니다!
목차
MPINO STUDIO 2 Phase 5 · Arduino Code 편집
1. Arduino Code 편집 화면
탐색기에서 코드 그룹의 파일을 선택하면 Arduino Code 편집 화면이 열립니다. 번호는 아래 설명과 같은 위치를 가리킵니다.
- 1 코드 그룹: 프로젝트에 포함된 Arduino Code 파일을 표시합니다.
- 2 줄 번호ㆍ코드 접기: 코드의 위치를 확인하고 함수나 코드 블록을 접거나 펼칩니다.
- 3 코드 입력 영역: Arduino C/C++ 코드를 작성하고 수정합니다.
- 4 미니맵: 파일 전체 구조와 현재 보고 있는 위치를 확인합니다.
파일을 선택하면 해당 내용이 편집 화면에 표시되고 탐색기의 선택 항목도 함께 바뀝니다.
2. 코드 파일 생성ㆍ관리
기본 코드 파일
새 프로젝트의 첫 코드 파일 이름은 main입니다. 프로젝트를 처음 저장하면 이 파일의 이름은 프로젝트 파일명에 맞춰 자동으로 변경됩니다.
첫 코드 파일은 프로젝트의 진입 파일입니다. 항상 코드 목록의 맨 위에 있으며 직접 이름을 바꾸거나 삭제하거나 이동할 수 없습니다.
코드 파일 조작
| 동작 | 마우스 | 키보드 | 결과 |
|---|---|---|---|
| 추가 | 코드 그룹의 + 또는 코드 그룹ㆍ파일의 우클릭 메뉴에서 추가 | - | 새 .ino 파일이 목록 끝에 추가되고 바로 열립니다. |
| 이름 변경 | 파일 더블클릭 또는 우클릭 메뉴의 이름 변경 | F2 또는 Enter | 추가한 코드 파일의 이름을 변경합니다. |
| 삭제 | 파일의 × 또는 우클릭 메뉴의 삭제 | Delete | 확인 창에서 승인한 뒤 파일을 삭제합니다. |
| 목록 순서 변경 | 파일을 위아래로 드래그 | Ctrl + ↑ㆍCtrl + ↓ | 탐색기에서 선택한 추가 파일을 한 칸 이동합니다. |
코드 파일 이름에는 확장자를 입력하지 않습니다. 빈 이름, 점으로 시작하는 이름, /ㆍ\ㆍ..이 포함된 이름과 대소문자만 다른 중복 이름은 사용할 수 없습니다.
추가 파일의 순서 변경은 현재 작업 중인 목록에 반영됩니다. 프로젝트를 다시 열면 추가 파일은 이름순으로 정렬됩니다.
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파일은 한 스케치로 함께 빌드되므로 한 파일에 작성한 함수를 다른 파일에서 호출할 수 있습니다. - 이 예제는
MPINO-8A4R(T)-S프로젝트에서 실제 컴파일하여 확인했습니다.
D0과 D1의 저장 형식과 Arduino Code에서 PLC 메모리를 사용하는 방법은 Phase 2 · 메모리 이해하기에서 확인하십시오. 래더 박스함수에서 Arduino 함수를 호출하는 방법은 Arduino Code의 함수호출 상세 설명에서 확인할 수 있습니다.
주의: loop()에서 ladderLoop()를 삭제하면 작성한 래더 로직이 실행되지 않습니다.
4. 자동완성 사용하기
함수나 변수 이름의 앞부분을 입력하면 사용할 수 있는 항목이 자동완성 목록에 표시됩니다.
- 코드 입력 영역에 함수 또는 변수 이름의 앞부분을 입력합니다.
- 목록이 열리지 않으면
Ctrl + Space를 누릅니다. ↑ㆍ↓로 항목을 선택합니다.Enter또는Tab으로 선택한 항목을 입력합니다.
앞의 예제에서 limitV를 입력하면 다른 코드 파일에 작성한 limitValue()를 선택할 수 있습니다.
| 자동완성 항목 | 표시 예 | 확인할 내용 |
|---|---|---|
| 프로젝트 함수ㆍ변수 | limitValue() | 현재 프로젝트의 코드 파일에 작성한 이름 |
| Arduino 기본 함수ㆍ상수 | constrain()ㆍHIGH | Arduino에서 제공하는 함수와 상수 |
| 보드 코어ㆍ라이브러리 | 분석된 함수ㆍ상수 | 선택한 보드 코어와 프로젝트에 반영된 라이브러리의 항목 |
보드 코어와 라이브러리 항목은 코드 분석이 끝난 뒤 표시될 수 있습니다. 자동완성으로 입력했더라도 인수의 개수와 자료형은 함수 정의에 맞아야 합니다.
5. 정의로 이동하기
함수나 변수 이름에 커서를 놓고 F12를 누르면 정의된 위치를 확인할 수 있습니다.
| 정의 위치 | F12 실행 결과 |
|---|---|
| 현재 코드 파일 | 정의가 있는 줄로 이동합니다. |
| 다른 코드 파일 | 해당 파일을 열고 정의가 있는 줄로 이동합니다. |
| Arduino 코어ㆍ라이브러리 | 읽기 전용 정의 화면으로 이동합니다. |
기본 코드 파일의 limitValue()에서 F12를 누르면 control 파일의 함수 정의로 이동합니다. constrain()과 같은 Arduino 코어 함수는 읽기 전용 정의 화면에서 확인할 수 있습니다. 읽기 전용 화면은 상단 닫기 버튼 또는 Esc로 닫습니다.
- 1 호출 위치: 정의를 확인할 함수 이름입니다.
- 2 함수 정의:
F12로 이동한 선언 또는 구현 위치입니다. - 3 읽기 전용: Arduino 코어와 라이브러리 정의를 수정할 수 없는 상태입니다.
| 포커스 위치 | F12 동작 |
|---|---|
| Arduino Code | 정의로 이동 |
| 래더로직 | 하강 엣지 접점 생성 |
같은 단축키라도 현재 선택한 편집 화면에 따라 동작이 달라집니다.
6. 찾기ㆍ바꾸기
Arduino Code와 래더로직은 현재 편집 화면에 맞는 찾기ㆍ바꾸기 화면을 사용합니다.
Arduino Code에서 찾기ㆍ바꾸기
| 작업 | 조작 | 결과 |
|---|---|---|
| 찾기 열기 | Ctrl + F | 현재 코드 파일에서 문자열을 찾습니다. |
| 바꾸기 열기 | Ctrl + H | 찾을 내용과 바꿀 내용을 입력합니다. |
| 이전ㆍ다음 결과 | Shift + EnterㆍEnter 또는 화면 버튼 | 검색 결과 사이를 이동합니다. |
| 바꾸기 | 바꾸기ㆍ모두 바꾸기 | 선택한 결과 또는 현재 파일의 모든 결과를 변경합니다. |
대소문자 구분, 단어 단위, 정규식 옵션을 사용할 수 있습니다.
래더로직에서 찾기ㆍ바꾸기
래더 그리드에 포커스를 둔 뒤 Ctrl + F를 누릅니다. 현재 래더 또는 모든 래더에서 접점ㆍ코일 주소와 셀의 코드 문자열을 찾고 바꿀 수 있습니다.
| 검색 방식 | 검색 대상 | 바꾸기 |
|---|---|---|
| 일반 검색 | 주소와 셀의 코드 문자열 | 한 항목ㆍ모두 바꾸기 사용 가능 |
| 단어 단위 | M1 검색 시 M10 제외 | 온전한 주소만 검색 |
| 박스함수 검색 | 박스함수의 명령어 이름 | 정확히 일치하는 이름만 검색하며 바꾸기 사용 불가 |
7. 코드 오류 확인하기
새 오류나 경고가 추가되면 하단의 문제 패널에서 메시지와 위치를 확인할 수 있습니다. 패널이 보이지 않으면 Ctrl + J을 누르고 문제 탭을 선택합니다.
- 문제 탭의 배지에서 오류와 경고의 합계를 확인합니다.
- 오류 단계와 메시지를 확인합니다.
- 표시된 파일 이름과 줄ㆍ열 위치를 확인합니다.
- 첫 코드 파일의 문제 항목을 선택하면 해당 코드 위치로 이동합니다.
- 1 문제 탭ㆍ개수: 현재 확인할 오류와 경고의 합계입니다.
- 2 오류 메시지: 원인을 확인할 진단 내용입니다.
- 3 파일ㆍ줄ㆍ열: 문제가 발견된 위치입니다.
- 4 코드 위치: 문제 항목을 선택해 이동한 줄입니다.
추가한 코드 파일에서 발생한 오류는 문제 항목에 표시된 파일명과 줄 번호를 확인한 뒤 탐색기에서 해당 파일을 직접 여십시오.
빌드 출력 전체를 확인하고 프로젝트를 다시 빌드하는 방법은 Phase 1 · 첫 프로젝트 만들기에서 확인하십시오.
8. 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인지 래더로직인지 확인합니다. |
| 첫 번째 코드 파일을 변경할 수 없습니다. | 첫 코드 파일은 프로젝트가 관리하므로 이름 변경ㆍ삭제ㆍ이동할 수 없습니다. |
| 추가 코드 파일의 문제 항목에서 해당 줄로 이동하지 않습니다. | 문제 항목의 파일명과 줄 번호를 확인하고 탐색기에서 해당 파일을 직접 엽니다. |
관련 문서
- Phase 1 · 첫 프로젝트 만들기 — 빌드ㆍ업로드ㆍ빌드 출력
- Phase 2 · 메모리 이해하기 — Arduino Code와 PLC 메모리 공유
- Phase 3 · 래더 편집 기초 — 래더 셀과 접점ㆍ코일 편집
- Phase 4 · 박스함수 — 박스함수와 Arduino 함수호출
