products:mpino_studio2:box_functions
문서의 이전 판입니다!
목차
MPINO STUDIO 2 Phase 4 · 박스함수
1. 박스함수 편집 화면
박스함수 편집 창은 명령을 찾고 입력값을 완성하는 화면입니다. 번호는 아래 설명과 같은 위치를 가리킵니다.
- ① 카테고리: 타이머, 카운터, 연산처럼 명령의 종류를 선택합니다.
- ② 명령 목록: 선택한 카테고리에서 사용할 명령을 고릅니다.
- ③ 명령 입력: 명령과 인수를 한 줄로 입력합니다.
- ④ 설명: 선택한 명령의 동작, 인수, 예제를 확인합니다.
- ⑤ 확인ㆍ취소: 입력값을 셀에 저장하거나 변경을 취소합니다.
2. 명령 선택ㆍ입력
카테고리를 선택한 뒤 명령을 누르면 입력칸에 기본 형식이 채워지고 첫 번째 인수가 선택됩니다. 값을 입력하고 Tab을 누르면 다음 인수로 이동합니다. 명령과 인수는 공백으로 구분합니다.
- 래더 셀을 선택하고
Ctrl + Enter를 눌러 박스함수를 생성합니다. - 편집 창에서 카테고리와 명령을 선택합니다.
- 선택된 인수를 입력하고
Tab으로 다음 인수로 이동합니다. - 입력을 마치면
Enter또는 확인을 누릅니다.
3. 입력한 명령 수정하기
입력한 박스함수를 수정하려면 셀을 선택한 뒤 Enter를 누르거나 더블클릭합니다. 다른 명령을 선택하면 입력칸 전체가 새 명령의 기본 형식으로 바뀝니다. 확인은 변경값을 저장하고 취소는 편집 전 값으로 돌아갑니다.
4. 접점 조건과 실행 시점
왼쪽 접점에서 전달된 ONㆍOFF 상태가 박스함수의 입력입니다. 연산ㆍ전송ㆍ비트ㆍ변환ㆍSETㆍRSTㆍ자유입력형은 ON일 때 실행됩니다. 타이머와 카운터는 OFF 상태도 받아 현재값과 완료 상태를 명령별 규칙에 따라 처리합니다. 왼쪽에 접점이 없으면 입력은 항상 ON입니다. INC D0처럼 값을 누적하는 명령을 한 번만 실행하려면 상승 엣지 접점을 사용합니다.
5. 정형 명령어와 자유입력형
정형 명령어는 팔레트에 등록된 44종이며 명령별 입력 형식과 인수 수가 정해져 있습니다. 자유입력형은 대입식, 계산식, Arduino 함수 호출을 직접 입력합니다.
| 구분 | 입력 예 | 사용 기준 |
|---|---|---|
| 정형 명령어 | MOV D0 D1 | 팔레트에서 명령을 선택하고 표시된 인수에 값을 입력 |
| 자유입력형 | D0 = readSensor() | Arduino 코드에 작성한 함수 호출 또는 지원되는 식을 직접 입력 |
6. 박스함수 목록
| 카테고리 | 명령 | 기능 |
|---|---|---|
| 타이머 박스함수 | TON | 입력이 ON인 동안 시간을 누적하고 설정값에 도달하면 완료 상태를 ON으로 바꿉니다. |
| TOFF | 입력이 ON이면 완료 상태가 즉시 ON이 됩니다. | |
| TPL | 입력이 ON으로 바뀌는 순간 완료 상태가 ON이 됩니다. | |
| TMON | 입력이 한 번 ON이 되면 입력 변화와 재입력을 무시하고 설정 시간 동안 완료 상태를 ON으로 유지합니다. | |
| TMR | 입력이 ON인 동안 시간을 누적합니다. | |
| TAON | TON과 같은 ON 지연 동작을 100 ms 틱으로 처리합니다. | |
| TAOFF | TOFF와 같은 OFF 지연 동작을 100 ms 틱으로 처리합니다. | |
| TAPL | TPL과 같은 조건 유지 펄스 동작을 100 ms 틱으로 처리합니다. | |
| TAMON | TMON과 같은 단발 펄스 동작을 100 ms 틱으로 처리합니다. | |
| TAMR | TMR과 같은 누적 동작을 100 ms 틱으로 처리합니다. | |
| 카운터 박스함수 | CTU | 왼쪽 조건이 OFF에서 ON으로 바뀔 때마다 현재값을 1 증가시킵니다. |
| CTD | 현재값을 설정값으로 준비한 뒤 왼쪽 조건의 상승 엣지마다 1 감소시킵니다. | |
| CTUD | 왼쪽 조건이 ON인 동안 증가 입력의 상승 엣지에는 1을 더하고 감소 입력의 상승 엣지에는 1을 뺍니다. | |
| 비트ㆍ래치 박스함수 | SET | 왼쪽 조건이 ON이면 M 비트 또는 출력으로 설정된 P 비트를 ON으로 저장합니다. |
| RST | 왼쪽 조건이 ON이면 M 비트 또는 출력으로 설정된 P 비트를 OFF로 저장합니다. | |
| 산술 박스함수 | ADD | 두 값을 더한 결과를 대상에 저장합니다. |
| SUB | 첫 번째 값에서 두 번째 값을 뺀 결과를 대상에 저장합니다. | |
| MUL | 두 값을 곱한 결과를 대상에 저장합니다. | |
| DIV | 첫 번째 값을 두 번째 값으로 나눈 몫을 대상에 저장합니다. | |
| MOD | 첫 번째 값을 두 번째 값으로 나눈 나머지를 대상에 저장합니다. | |
| INC | 대상 값을 1 증가시켜 같은 주소에 저장합니다. | |
| DEC | 대상 값을 1 감소시켜 같은 주소에 저장합니다. | |
| SCALE | 입력 범위의 정숫값을 출력 범위의 정숫값으로 선형 변환하여 대상에 저장합니다. | |
| FLOOR | 소스 값보다 크지 않은 정수 중 가장 큰 값을 대상에 저장합니다. | |
| SQRT | 소스 값의 제곱근을 대상에 저장합니다. | |
| 전송 박스함수 | MOV | 소스 값 하나를 대상에 복사합니다. |
| GMOV | DㆍCㆍT WORD의 연속된 소스 영역을 대상 영역에 같은 순서로 복사합니다. | |
| FMOV | DㆍCㆍT WORD 주소 하나의 값을 읽어 대상의 연속 WORD 영역을 같은 값으로 채웁니다. | |
| 비트연산 박스함수 | WAND | 두 WORD의 각 비트를 AND 연산하여 대상에 저장합니다. |
| WOR | 두 WORD의 각 비트를 OR 연산하여 대상에 저장합니다. | |
| WXOR | 두 WORD의 각 비트를 XOR 연산하여 대상에 저장합니다. | |
| WNOT | 소스 WORD의 각 비트를 반전하여 대상에 저장합니다. | |
| SHL | WORD를 왼쪽으로 시프트하여 대상에 저장합니다. | |
| SHR | D WORD를 오른쪽으로 논리 시프트하여 대상에 저장합니다. | |
| ROL | DㆍCㆍT WORD를 왼쪽으로 회전하여 대상에 저장합니다. | |
| ROR | DㆍCㆍT WORD를 오른쪽으로 회전하여 대상에 저장합니다. | |
| 변환 박스함수 | INV | 소스 WORD의 각 비트를 반전하여 대상에 저장합니다. |
| NEG | 소스 값의 부호를 반대로 바꾸어 대상에 저장합니다. | |
| H2D | 4자리 BCD로 저장된 소스 WORD를 10진 정숫값으로 해석하여 대상에 저장합니다. | |
| D2H | 0 ~ 9999의 10진 정숫값을 4자리 BCD로 바꾸어 대상 WORD에 저장합니다. | |
| 로직 제어 박스함수 | JMP | 왼쪽 조건이 ON이면 같은 래더 안의 뒤쪽 라벨로 이동하여 그 사이의 래더 줄을 건너뜁니다. |
| JMPN | 왼쪽 조건이 OFF이면 같은 래더 안의 뒤쪽 라벨로 이동합니다. | |
| MCS | 0 ~ 15의 레벨로 마스터 컨트롤 구간을 시작합니다. | |
| MCSCLR | 지정한 레벨의 마스터 컨트롤 구간과 그 안쪽 구간을 종료합니다. | |
| 자유입력형 박스함수 | 자유입력형 박스함수 | D0 = D0 + 1 · R0 += 1.5 · D0 = readSensor() |
7. 빌드 오류 확인
잘못된 명령이나 인수는 빌드할 때 오류로 표시됩니다. 오류 메시지의 래더 이름과 줄 번호를 확인하고 해당 박스함수를 다시 여십시오.
| 증상 | 확인할 항목 |
|---|---|
| 명령을 찾을 수 없음 | 명령 이름의 철자와 정형 명령어 목록 확인 |
| 인수 개수 오류 | 명령 상세 페이지의 입력 형식과 공백 확인 |
| 주소 또는 자료형 오류 | 대상 메모리의 종류와 데이터 형식을 Phase 2에서 확인 |
| 0으로 나누기 가능 | DIV, MOD, SCALE의 분모 또는 입력 범위 확인 |
관련 문서
products/mpino_studio2/box_functions.1788944070.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1
