문서의 이전 판입니다!
MP STUDIO 2 Phase 4 · 펑션
펑션은 비교ㆍ연산ㆍ타이머ㆍ카운터처럼 여러 칸을 차지하는 래더 명령입니다. 펑션 판에서 골라 넣거나, 펑션 삽입 창에 명령을 입력해 넣을 수 있습니다.
펑션 블록 왼쪽의 조건이 ON인 동안 펑션이 실행되고, 블록 오른쪽으로 결과에 따른 전력이 이어집니다. 비교 펑션은 접점처럼 행 안에 배치되어, 비교 결과가 참일 때 전력을 통과시킵니다.
펑션 판
기호 레일의 펑션 단추를 누르거나 Alt+2를 누르면 펑션 판이 열립니다.
- ① 펑션 검색: 이름 일부를 입력하면 일치하는 펑션만 표시됩니다.
- ② 분류 머리: 누르면 분류를 펼치거나 접습니다. 분류마다 색이 다르고, 오른쪽 숫자는 분류 안의 펑션 수입니다.
- ③ 펑션 줄: 더블클릭하면 커서 칸에 펑션이 삽입됩니다.
- ④ Mark 목록: 프로그램의 북마크 목록입니다.
펑션 삽입 창
Ctrl+E, Ctrl+Enter, [ 중 하나를 누르거나 편집 → 펑션 삽입을 선택하면 펑션 삽입 창이 열립니다.
- ① 명령에 펑션 이름과 인자를 띄어 써서 입력해주시기 바랍니다. 예:
MOVE D0 D1,ADD D0 20 D1,TON T0 1s - 이름을 입력하면 ② 인자 순서와 설명(예:
[TON] [IN] [SV],TON: On Delay Timer, 동작 조건, 입력 예)이 표시됩니다. 맞는 펑션이 없으면 맞는 명령이 없습니다가 표시됩니다. - 확인을 누르거나
Enter를 누르면 커서 칸에 펑션이 삽입됩니다.
인자 고치기
- 펑션의 인자 칸을 선택하고
Enter를 누르거나 값을 바로 입력하면 그 인자만 고칠 수 있습니다. - 펑션의 이름 칸(머리)을 선택하고
Enter를 누르면 펑션 고치기 창이 열리고, 명령 전체를 한 줄로 고칠 수 있습니다.
인자에 넣은 주소가 그 펑션이 받는 자료형(비트ㆍ바이트ㆍ워드ㆍ더블워드ㆍ실수)과 맞지 않으면 칸이 붉게 표시됩니다. 칸에 마우스를 올리면 이유가 표시됩니다.
타이머
타이머의 설정값(SET VALUE)은 10ms 단위입니다. TON T0 100과 TON T0 1s는 같은 1초 설정이며, 블록에는 1S로 표시됩니다.
- ①
P0: 타이머 시작 조건 - ②
TON T0 1s: 조건이 ON인 동안T0의 현재값이 늘어나고, 설정값(1초)에 도달하면T0이 ON됩니다. 조건이 OFF되면 현재값은 0으로 돌아갑니다. - ③
T0접점: 타이머가 ON이면 다음 렁으로 전력을 통과시킵니다. - ④
P33: 타이머 출력
| 펑션 | 동작 |
|---|---|
| TON | On Delay Timer — 조건이 설정 시간 이상 ON으로 유지되면 ON됩니다. 조건이 OFF되면 현재값이 0이 됩니다. |
| TOFF | Off Delay Timer — 조건이 OFF된 뒤에도 설정 시간 동안 ON을 유지합니다. |
| TPL | Pulse Timer — 조건이 ON되면 설정 시간까지 ON됩니다. 조건이 먼저 OFF되면 함께 OFF됩니다. |
| TMON | Pulse Extended Timer — 조건이 ON되면 설정 시간 동안 ON됩니다. 도중에 조건이 OFF되어도 설정 시간까지 ON을 유지합니다. |
| TMR | Accumulative Timer — 조건이 ON인 시간을 누적합니다. 조건이 OFF되어도 현재값이 남으므로, 되돌리려면 다른 렁에서 지워야 합니다. |
카운터
CTU의 인자는 COUNT(카운터 주소), SET VALUE(설정값), RESET(리셋 비트) 순서입니다. 예: CTU C0 5 P2
- 왼쪽 조건이 OFF에서 ON으로 바뀔 때마다
C0의 현재값이 1씩 늘어납니다. - 현재값이 설정값 이상이면
C0이 ON됩니다. - RESET에 넣은 비트(
P2)가 ON이면 현재값이 0이 됩니다.
CTD(DOWN Counter)는 인자가 COUNT, SET VALUE, SET 순서이며, 현재값이 0이 되면 ON됩니다.
비교와 전송
비교 펑션(==ㆍ>ㆍU< 등)은 두 값을 비교해 참이면 전력을 통과시킵니다. 예를 들어 >= D0 100은 D0이 100 이상일 때 참입니다(부호 있는 비교). MOVE(블록 이름 MOV)는 IN의 값을 OUT으로 복사합니다.
펑션 목록
펑션 판의 16개 분류와 펑션은 아래와 같습니다. 괄호 안은 인자 순서입니다.
| 분류 | 펑션 |
|---|---|
| Comparison | ==(같음) · !=(다름) · > · < · >= · ⇐ — 부호 있는 비교, U> · U< · U>= · U⇐ — 부호 없는 비교 (IN1, IN2) |
| Conversion | H2D(16진→10진) · D2H(10진→16진) · INV(1의 보수) · NEG(2의 보수) (IN, OUT) |
| Math | ADD · SUB · MUL (IN1, IN2, OUT) · DIV (IN1, IN2, OUT, REM) · INC · DEC (IN) · SCALE (IN, IN_MAX, IN_MIN, OUT, OUT_MAX, OUT_MIN) · FLOOR · SQRT (IN, OUT) |
| Counter | CTU (COUNT, SET VALUE, RESET) · CTD (COUNT, SET VALUE, SET) · CTUD (COUNT, CU, CD, SET VALUE, RESET) · HCNT (CHANNEL, OUT) · HRST (CH) · ENCODER (CHANNEL, OUT) · ENMOV (CHANNEL, IN) |
| Timer | TON · TOFF · TPL · TMON · TMR (TIMER, SET VALUE) |
| Logic Control | JMP · JMPN · LABEL (LABEL) · END |
| Word Logic | WAND · WOR · WXOR (IN1, IN2, OUT) · SHL · SHR (IN, N, OUT) · SWAP (IN, OUT) |
| Analog | ADC · ADC2(4~20mA) · DAC (CHANNEL, MAX VALUE, MIN VALUE, OUT) · AFILTER (IN, WEIGHT, OUT) · NTEMP · PTEMP (CHANNEL, OUT) · PWM (PORT, DUTY, WIDTH) · FPWM (PORT, FREQ) · FDPWM (PORT, FREQ, DUTY) · NPWM (PORT, FREQ, N) · POFF (PORT) · PSR (OUT) · PID (PV, SV, KP, KI, KD, OUT MAX, OUT MIN, MV) · PID_PWM (PORT, PV, SV, KP, KI, KD, MV) |
| MOVE | MOVE (IN, OUT) · GMOVE · FMOVE (IN, OUT, N) |
| Data Processing | MAX · MIN · SUM · AVE · MUX · ENCO · DECO (IN, OUT, N) |
| Program Control | MCS · MCSCLR (NUM) |
| Serialport | PUT (CHANNEL, DATA, LENGTH) · GET (CHANNEL, LENGTH, OUT) · PUT_LEN · GET_LEN (CHANNEL, OUT) · SERID (CHANNEL, ID) · SERRATE (CHANNEL, RATE) · MNET (CH) · MNET_READ (RATE, ADD) |
| I2C | ISTA (ADDRESS, READ) · ISTP · IWR (DATA) · IRD (OUT, ACK) · ISR (OUT) · IBR (IN) |
| CLCD (Character LCD) | CINI (ADR, TYPE) · CLOC (ADR, X, Y) · CSTR (ADR, STRING) · CINT · CREAL (ADR, IN, DIGIT, ZERO, SIGN) · CHEX (ADR, IN, DIGIT, ZERO) · CCLS · CCON · CCOF (ADR) · CLON · CLOF · CPUT (ADR, ID, DEFINE) · CGET (ADR, ID) |
| 7Segment | FINI (CLK, DIO) · FINT (IN, POSITION, LENGTH, DOT, ZERO, SIGN) · FDATA (DATA, POSITION) |
| DS3231 (RTC) | DS3231_WR · DS3231_RD (YEAR, MONTH, DATE, DAY, HOUR, MINUTE, SECOND) |
아날로그ㆍ펄스ㆍ온도 펑션은 그 기능이 있는 기종이나 확장 모듈에서만 사용할 수 있습니다. 채널 번호의 범위는 선택한 기종을 따릅니다.




