====== MPINO STUDIO 2 Phase 3 · 래더 편집 기초 ====== 래더 셀 편집과 메모리 값 쓰기, 접점과 코일, 박스함수, 직렬·병렬 연결, 엣지, 자기유지 회로를 설명합니다. {{ :products:mpino_studio2:ladder-learning-path.svg?1000 |래더 편집 순서 }} ===== 1. 래더 편집 화면 ===== 래더 로직은 왼쪽에서 오른쪽으로 읽습니다. 접점에서 만든 조건이 연결선을 따라 코일까지 이어지면 코일이 동작합니다. 한 줄로 이어진 회로를 **rung**이라고 합니다. {{ :products:mpino_studio2:ladder-editor-toolbar-marked.svg?1000 |그림 1. ① 도구 모음, ② 래더 그리드, ③ 그리드 상태표시줄의 위치 }} * **① 도구 모음:** 접점, 연결선, 코일, 엣지를 선택합니다. * **② 래더 그리드:** 선택한 셀에 요소를 배치하고 회로를 연결합니다. * **③ 그리드 상태표시줄:** 선택한 셀의 좌표와 종류를 표시합니다. ''R1 C0''은 첫 번째 줄의 첫 번째 셀입니다. {{ :products:mpino_studio2:ladder-tool-map.svg?1000 |래더 도구 10종과 기본 단축키 }} 도구는 다음 방법으로 배치할 수 있습니다. - 셀을 선택하고 해당 단축키를 누릅니다. - 셀을 선택하고 왼쪽 도구 모음의 버튼을 누릅니다. - 도구 모음의 버튼을 원하는 셀로 드래그합니다. ===== 2. 래더 셀 선택과 이동 ===== 편집할 셀을 마우스로 누르거나 방향키로 이동합니다. 여러 셀을 함께 선택하려면 ''Shift''를 누른 상태에서 방향키를 사용합니다. ^ 조작 ^ 결과 ^ | 마우스 클릭 | 클릭한 셀 선택 | | ''↑'' ''↓'' ''←'' ''→'' | 선택 셀을 한 칸 이동 | | ''Shift + 방향키'' | 현재 셀부터 직사각형 범위 선택 | | ''Enter'' 또는 더블클릭 | 선택한 접점·엣지·코일의 편집 창 열기 | | ''Delete'' | 선택한 셀의 요소와 입력값을 지우고 빈 셀로 변경 | 접점이나 코일을 편집할 때는 주소 또는 등록한 심볼을 입력합니다. 입력하는 동안 사용할 수 있는 항목이 자동완성 목록에 표시됩니다. {{ :products:mpino_studio2:ladder-cell-edit-modal.png?1000 |그림 2. 접점 또는 코일의 주소를 입력하는 래더 셀 편집 창 }} > **단축키 사용 위치:** 방향키와 ''F2''~''F12'' 같은 래더 단축키는 래더 그리드에 포커스가 있을 때 사용합니다. 코드 편집기에 포커스가 있으면 방향키와 복사 단축키는 코드 편집에 사용됩니다. ===== 3. 메모리에 값 쓰기 ===== 래더에서 선택한 셀의 메모리 값을 실행 중인 보드에 바로 쓸 수 있습니다. **래더 셀을 우클릭 → 메모리에 값 쓰기**를 선택하거나, 래더 그리드에 포커스가 있을 때 ''Ctrl + Shift + W''를 누릅니다. {{ :products:mpino_studio2:memory-force-popup-marked.svg?1000 |선택한 셀 옆에 열린 메모리에 값 쓰기 팝업 }} ^ 마킹 ^ 화면 항목 ^ 사용 방법 ^ | **①** | 모니터링 | 꺼져 있으면 이 버튼으로 켭니다. 보드와 모니터링 통신이 연결되어야 **쓰기** 버튼이 활성화됩니다. | | **②** | 주소와 현재값 | 선택한 셀의 주소가 자동으로 입력됩니다. 주소가 여러 개인 박스함수는 목록에서 고르고, 빈 셀에서는 직접 입력합니다. 현재값은 모니터링 중인 보드의 값을 표시합니다. | | **③** | 값과 쓰기 | 쓸 값을 입력하고 **쓰기**를 누르거나 ''Enter''를 누릅니다. 성공하면 값 입력칸만 비워져 다음 값을 계속 쓸 수 있습니다. | 쓸 수 있는 주소는 **MㆍDㆍCㆍTㆍR** 영역입니다. **P 주소는 이 창에서 쓸 수 없습니다.** 주소와 값은 보드에서 실제로 바뀌므로, 동작 중인 출력이나 제어 조건에 영향을 줄 수 있습니다. 쓰기 전에 대상 주소와 값을 확인하십시오. 한 주소를 즉시 쓰는 이 팝업과 여러 주소를 등록해 두는 [[products:mpino_studio2:menus_settings#실행_메뉴|실행 → 메모리 쓰기 목록]]은 용도가 다릅니다. 팝업은 ''Esc'', 바깥쪽 클릭 또는 **✕**로 닫습니다. ===== 4. 셀 삽입·삭제·복사 ===== 셀을 비우는 ''Delete''와 뒤쪽 셀을 당기는 ''Ctrl + Delete''는 결과가 다릅니다. ^ 명령 ^ 단축키 ^ 결과 ^ | 셀 비우기 | ''Delete'' | 선택한 셀만 빈 셀로 변경 | | 셀 삽입 | ''Insert'' | 선택한 위치에 빈 셀을 만들고 오른쪽 셀을 한 칸 이동 | | 셀 삭제 | ''Ctrl + Delete'' | 선택한 셀을 없애고 오른쪽 셀을 한 칸 당김 | | 줄 추가 | ''Alt + Insert'' | 선택한 줄 위에 빈 줄 추가 | | 줄 삭제 | ''Alt + Delete'' | 선택한 줄을 삭제하고 아래 줄을 위로 당김 | 래더 셀을 우클릭하면 **셀 삽입, 셀 삭제, 줄 추가, 줄 삭제**를 선택할 수 있습니다. 같은 명령을 위 표의 단축키로 실행할 수도 있습니다. {{ :products:mpino_studio2:chgrid-context-menu.png?240 |그림 3. 래더 셀 우클릭 메뉴 }} ==== 셀 삽입과 삭제 ==== 셀 삽입은 선택한 셀부터 가장 가까운 빈자리까지 오른쪽으로 이동합니다. 오른쪽에 이동할 공간이 없으면 회로를 변경하지 않고 안내 메시지를 표시합니다. 행 끝의 코일은 이동하지 않습니다. {{ :products:mpino_studio2:chgrid-cell-insert-before.png?420 |그림 4. 셀 삽입 전 }} {{ :products:mpino_studio2:chgrid-cell-insert-after.png?420 |그림 5. 셀 삽입 후 }} 셀 삭제는 선택한 셀을 없애고 오른쪽 셀을 왼쪽으로 당깁니다. 코일은 행 끝에 유지되며 코일 앞의 빈 공간은 연결선으로 채워집니다. {{ :products:mpino_studio2:chgrid-cell-delete-before.png?420 |그림 6. 셀 삭제 전 }} {{ :products:mpino_studio2:chgrid-cell-delete-after.png?420 |그림 7. 셀 삭제 후 }} ==== 줄 추가와 삭제 ==== 줄 추가는 선택한 줄 위에 빈 줄을 만듭니다. 추가 위치를 통과하던 세로선은 새 줄까지 이어집니다. {{ :products:mpino_studio2:chgrid-row-add-before.png?300 |그림 8. 줄 추가 전 }} {{ :products:mpino_studio2:chgrid-row-add-after.png?300 |그림 9. 줄 추가 후 }} 줄 삭제는 선택한 줄 전체를 지우고 아래 줄을 위로 당깁니다. 삭제한 줄을 지나던 세로선은 남은 회로에 맞게 다시 연결됩니다. {{ :products:mpino_studio2:chgrid-row-delete-before.png?300 |그림 10. 줄 삭제 전 }} {{ :products:mpino_studio2:chgrid-row-delete-after.png?300 |그림 11. 줄 삭제 후 }} ==== 복사와 실행취소 ==== * ''Ctrl + C'': 선택한 셀 복사 * ''Ctrl + X'': 선택한 셀 잘라내기 * ''Ctrl + V'': 선택한 위치에 붙여넣기 * ''Ctrl + Z'': 마지막 래더 편집 실행취소 복사한 셀은 다른 래더 탭이나 별도로 실행한 MPINO Studio 2 창에도 붙여넣을 수 있습니다. ===== 5. 가로선과 세로선 연결하기 ===== 가로선은 같은 줄의 셀을 좌우로 연결하고, 세로선은 위아래 갈래를 연결합니다. ^ 도구 ^ 단축키 ^ 사용 방법 ^ | 가로선 | ''F5'' | 선택한 빈 셀을 좌우 연결선으로 변경 | | 세로선 | ''F6'' | 선택한 셀 오른쪽의 아래 방향 연결선을 켜거나 끔 | 세로선은 독립된 셀을 만드는 도구가 아닙니다. 선택한 셀의 오른쪽 경계에 아래 줄로 이어지는 연결을 추가합니다. 같은 위치에서 ''F6''을 다시 누르면 세로선이 제거됩니다. 직렬 회로는 가로선으로 같은 줄을 이어 만들고, 병렬 회로는 두 줄 사이를 세로선으로 연결해 만듭니다. ===== 6. NOㆍNCㆍNOT 접점 정의와 생성하기 ===== NO·NC 접점은 메모리의 ON/OFF 상태 또는 비교식의 결과를 읽습니다. NOT 접점은 앞에서 계산된 조건을 반대로 바꿉니다. {{ :products:mpino_studio2:ladder-contact-logic.svg?1000 |NO, NC, NOT 접점의 동작 비교 }} ^ 접점 ^ 단축키 ^ 조건이 OFF일 때 ^ 조건이 ON일 때 ^ | NO 접점(A접점) | ''F2'' | 통전되지 않음 | 통전 | | NC 접점(B접점) | ''F3'' | 통전 | 통전되지 않음 | | NOT 접점(신호 반전) | ''F10'' | 앞 조건이 OFF이면 뒤 조건은 ON | 앞 조건이 ON이면 뒤 조건은 OFF | 셀을 선택하고 ''F2'' 또는 ''F3''을 누른 뒤 ''Enter''를 누릅니다. 편집 창에 ''P0'', ''M0'', ''D0.1''과 같은 비트 주소 또는 등록한 심볼을 입력합니다. 주소 형식은 [[products:mpino_studio2:memory#메모리_주소_읽는_방법|Phase 2의 메모리 주소 읽는 방법]]을 참고하십시오. ==== 비교식 입력 ==== NO·NC 접점의 편집 창에는 주소 대신 비교식을 입력할 수 있습니다. 예를 들어 ''D0 > 10''은 D0의 값이 10보다 클 때 참입니다. NC 접점에 비교식을 입력하면 식이 거짓일 때 통전됩니다. ^ 연산자 ^ 조건 ^ | ''>'' | 왼쪽 값이 오른쪽 값보다 큼 | | ''<'' | 왼쪽 값이 오른쪽 값보다 작음 | | ''>='' | 왼쪽 값이 오른쪽 값 이상 | | ''<='' | 왼쪽 값이 오른쪽 값 이하 | | ''=='' | 두 값이 같음 | | ''!='' | 두 값이 다름 | 한 접점에는 비교식 하나를 입력합니다. 여러 비교 조건은 ''&&''나 ''||''를 입력하지 않고 접점을 직렬 또는 병렬로 연결합니다. {{ :products:mpino_studio2:ch4-cmp-monitor.png?420 |그림 12. D0가 10보다 큰 조건을 입력한 비교 접점 }} ==== NOT 접점 ==== NOT 접점은 현재 위치까지 계산된 조건을 반대로 바꿉니다. 주소를 입력하지 않으며 ''F10''으로 배치합니다. 앞의 조건이 OFF이면 반전 뒤는 ON이고, 앞의 조건이 ON이면 반전 뒤는 OFF입니다. 한 갈래에는 NOT 접점을 한 개만 사용할 수 있습니다. ===== 7. 상승·하강 엣지 사용하기 ===== 일반 접점은 조건이 유지되는 동안 계속 통전됩니다. 엣지 접점은 입력 상태가 바뀌는 순간 한 스캔만 통전됩니다. {{ :products:mpino_studio2:ladder-edge-timing.svg?1000 |상승·하강 엣지의 래더 회로와 한 스캔 동작 }} ^ 접점 ^ 단축키 ^ 통전 시점 ^ | Positive Edge | ''F11'' | 입력이 OFF에서 ON으로 바뀐 한 스캔 | | Negative Edge | ''F12'' | 입력이 ON에서 OFF로 바뀐 한 스캔 | 엣지 셀을 배치한 뒤 편집 창에 변화를 감지할 비트 주소 또는 심볼을 입력합니다. 이전 상태는 각 엣지 셀에서 자동으로 관리하므로 별도의 상태 저장 메모리를 만들 필요가 없습니다. 버튼을 누르는 순간 한 번만 동작시키려면 Positive Edge를 사용하고, 버튼을 놓는 순간 한 번만 동작시키려면 Negative Edge를 사용합니다. ===== 8. 출력 코일 생성하기 ===== 일반 출력 코일은 접점에서 계산된 결과를 비트 주소에 매 스캔 저장합니다. 조건이 ON이면 코일 주소가 ON이고, 조건이 OFF이면 코일 주소도 OFF입니다. - 코일을 놓을 줄의 셀을 선택합니다. - ''F9''를 누르거나 도구 모음에서 **출력 코일**을 선택합니다. - ''Enter'' 또는 더블클릭으로 편집 창을 엽니다. - 결과를 저장할 비트 주소 또는 심볼을 입력합니다. 출력 코일은 자동으로 해당 줄의 오른쪽 끝에 배치되고, 앞쪽의 빈 셀은 연결선으로 이어집니다. {{ :products:mpino_studio2:ch4-coil-off.png?300 |그림 13. M0가 OFF일 때 P32 출력 코일 OFF }} {{ :products:mpino_studio2:ch4-coil-on.png?300 |그림 14. M0가 ON일 때 P32 출력 코일 ON }} > **출력 주소 확인:** P 주소를 출력 코일에 사용할 때는 선택한 보드의 출력 주소인지 **설정 → 래더 핀맵 설정**에서 확인하십시오. ===== 9. SETㆍRESET 코일 생성하기 ===== 일반 출력 코일은 조건의 ON/OFF에 따라 상태가 바뀝니다. SETㆍRESET 코일은 조건이 ON될 때 값을 저장합니다. {{ :products:mpino_studio2:ladder-coil-behavior.svg?1000 |일반 출력 코일, SET 코일, RESET 코일의 값 저장 방식 }} ^ 코일 ^ 단축키 ^ 조건이 ON될 때 ^ 조건이 OFF로 돌아간 뒤 ^ | SET 코일 | ''F7'' | 대상 비트를 ON으로 저장 | ON 유지 | | RESET 코일 | ''F8'' | 대상 비트를 OFF로 저장 | OFF 유지 | ''M0 NO → P32 SET''은 M0가 ON되는 순간 P32를 ON으로 저장합니다. M0가 다시 OFF가 되어도 P32는 ON 상태를 유지합니다. {{ :products:mpino_studio2:ch4-set-on.png?300 |그림 15. SET 조건이 ON되어 P32를 ON으로 저장 }} {{ :products:mpino_studio2:ch4-set-hold.png?300 |그림 16. SET 조건이 OFF가 된 뒤에도 P32 ON 유지 }} 저장한 값을 끄려면 같은 주소를 RESET 코일에 입력합니다. ''M1 NO → P32 RESET''에서 M1이 ON되면 P32가 OFF로 저장됩니다. {{ :products:mpino_studio2:ch4-reset-pair.png?360 |그림 17. P32를 켜는 SET 회로와 끄는 RESET 회로 }} SET 코일을 사용한 주소에는 값을 해제할 RESET 조건을 함께 구성하십시오. ===== 10. 박스함수 생성하기 ===== 박스함수는 왼쪽에서 계산된 조건이 ON일 때 타이머ㆍ카운터ㆍ연산ㆍ전송 등의 명령을 실행합니다. - 박스함수를 놓을 줄의 빈 셀을 선택합니다. - ''Ctrl + Enter''를 누르거나 왼쪽 도구 모음에서 **박스함수**를 선택하면 편집 창이 열립니다. - 카테고리에서 명령어를 선택하면 입력칸에 명령어 형식이 표시됩니다. - 주소와 값을 입력한 뒤 **확인**을 누릅니다. {{ :products:mpino_studio2:ch5-palette.png?760 |그림 18. 카테고리와 명령어를 선택하는 박스함수 편집 창 }} 박스함수는 출력 코일과 같이 줄의 맨 오른쪽에 배치됩니다. 왼쪽에 접점이 있으면 해당 조건이 ON일 때 실행되고, 접점이 없으면 매 스캔 실행됩니다. **[[products:mpino_studio2:box_functions#박스함수_목록|박스함수 목록 보기 →]]** ===== 11. 직렬 회로와 병렬 회로 ===== {{ :products:mpino_studio2:ladder-wiring-logic.svg?1000 |직렬 AND 회로와 병렬 OR 회로 비교 }} * **직렬 연결:** 모든 접점이 통전되어야 다음 셀로 신호가 전달됩니다. ''M0 NO → M1 NO → P32 코일''은 M0와 M1이 모두 ON일 때 P32가 ON됩니다. * **병렬 연결:** 연결된 갈래 중 하나라도 통전되면 합류 지점 뒤로 신호가 전달됩니다. M0와 M1을 병렬로 연결하면 둘 중 하나가 ON일 때 P32가 ON됩니다. {{ :products:mpino_studio2:ch4-no-parallel-on.png?420 |그림 19. M0와 M1을 병렬로 연결한 OR 회로 }} 직렬과 병렬을 함께 사용하면 ''(M0 또는 M1) 그리고 M2''와 같은 조건을 만들 수 있습니다. 회로는 왼쪽부터 읽고, 병렬 갈래가 다시 합쳐지는 위치를 기준으로 조건을 나누어 확인합니다. ===== 12. 자기유지 회로 만들기 ===== 자기유지 회로는 출력 코일의 보조접점을 시작 접점과 병렬로 연결하여 시작 신호가 사라진 뒤에도 출력을 유지합니다. {{ :products:mpino_studio2:ladder-self-hold.svg?1000 |자기유지 회로의 대기, 시작, 유지, 정지 순서 }} 회로는 **[M0 NO ∥ P32 NO] → M1 NC → P32 출력 코일** 순서로 구성합니다. - M0 NO 접점과 P32 NO 접점을 병렬로 연결합니다. - 병렬 회로 뒤에 M1 NC 접점을 직렬로 연결합니다. - 줄 오른쪽 끝에 P32 출력 코일을 배치합니다. - M0가 ON되면 P32가 ON되고 P32 보조접점도 통전됩니다. - M0가 OFF로 돌아가도 P32 보조접점이 통전 경로를 유지합니다. - M1이 ON되면 NC 접점이 열리고 P32가 OFF됩니다. {{ :products:mpino_studio2:ch4-selfhold-on.png?420 |그림 20. M0 시작 접점으로 P32가 ON된 상태 }} {{ :products:mpino_studio2:ch4-selfhold-hold.png?420 |그림 21. M0가 OFF인 뒤 P32 보조접점으로 유지되는 상태 }} M0와 M1은 동작을 설명하기 위한 내부 메모리입니다. 실제 입력 단자를 사용할 때는 선택한 보드의 입력 P 주소로 바꾸십시오. ===== 13. 래더 편집 단축키 ===== 단축키는 **파일 → 환경설정 → 단축키**에서 사용자가 변경할 수 있습니다. ^ 구분 ^ 단축키 ^ 동작 ^ | 이동 | ''↑'' ''↓'' ''←'' ''→'' | 선택 셀 이동 | | 범위 선택 | ''Shift + 방향키'' | 직사각형 선택 범위 확장 | | 셀 편집 | ''Enter'' 또는 더블클릭 | 주소·심볼 입력 창 열기 | | 셀 비우기 | ''Delete'' | 선택 셀의 요소와 입력값 삭제 | | 셀 삽입·삭제 | ''Insert'' / ''Ctrl + Delete'' | 빈 셀 삽입 / 셀 삭제 후 당기기 | | 줄 추가·삭제 | ''Alt + Insert'' / ''Alt + Delete'' | 위에 줄 추가 / 현재 줄 삭제 | | 복사·잘라내기·붙여넣기 | ''Ctrl + C'' / ''Ctrl + X'' / ''Ctrl + V'' | 선택한 셀 편집 | | 실행취소 | ''Ctrl + Z'' | 마지막 래더 편집 되돌리기 | | 메모리에 값 쓰기 | ''Ctrl + Shift + W'' | 선택한 셀의 메모리 값을 보드에 바로 쓰는 팝업 열기 | | 접점 | ''F2'' / ''F3'' | NO 접점 / NC 접점 | | 연결선 | ''F5'' / ''F6'' | 가로선 / 세로선 | | 코일 | ''F7'' / ''F8'' / ''F9'' | SET / RESET / 일반 출력 코일 | | NOT 접점 | ''F10'' | 앞에서 계산된 조건을 반전 | | 엣지 | ''F11'' / ''F12'' | 상승 검출 / 하강 검출 | ===== 14. 문제해결방법 ===== ^ 증상 ^ 확인할 항목 ^ | 단축키를 눌러도 셀이 바뀌지 않습니다. | 래더 그리드의 셀을 먼저 선택하고 그리드에 포커스가 있는지 확인합니다. | | 접점이나 코일에 주소를 입력할 수 없습니다. | 비트 주소인지 확인하고 주소 형식과 사용 범위는 Phase 2의 메모리 주소 설명에서 확인합니다. | | 셀 삽입이 되지 않습니다. | 선택한 셀 오른쪽에 이동할 빈 셀 또는 가로선이 있는지 확인합니다. | | ''Delete''를 눌렀는데 뒤쪽 셀이 당겨지지 않습니다. | ''Delete''는 셀을 비우는 명령입니다. 뒤쪽 셀을 당기려면 ''Ctrl + Delete''를 사용합니다. | | SET 코일로 켠 값이 계속 ON입니다. | 같은 주소를 사용하는 RESET 코일과 RESET 조건이 있는지 확인합니다. | | 자기유지 회로가 시작 신호를 끄면 바로 정지합니다. | 출력 주소의 NO 보조접점이 시작 접점과 병렬로 연결되어 있는지 확인합니다. | | 빌드할 때 NOT 접점 오류가 표시됩니다. | 같은 갈래에 NOT 접점이 두 개 이상 있는지 확인합니다. | ===== 관련 문서 ===== * [[products:mpino_studio2:menus_settings|Phase 7 · 메뉴와 환경설정]] * [[products:mpino_studio2:monitoring|Phase 6 · 시리얼ㆍ래더 모니터링]] * [[products:mpino_studio2:code_editor|Phase 5 · Arduino Code 편집]] * [[products:mpino_studio2:first_project|Phase 1 · 첫 프로젝트 만들기]] * [[products:mpino_studio2:memory|Phase 2 · 메모리 이해하기]] * [[products:mpino_studio2|MPINO STUDIO 2 사용설명서]] [[products:mpino_studio2:memory|← Phase 2 · 메모리 이해하기]] | [[products:mpino_studio2|MPINO STUDIO 2 사용설명서로 돌아가기]]