7 명령어 일람 7.2 응용명령(ld블록) 7-4 7.2.2 no.2;+(덧셈) 주의: 이...

62
7명령어 일람 이 장에서는, 소프트웨어PLC에서 사용할 수 있는 기본명령과 응용명령 (LD블록의 상세에 관해서 설명합니다. 7.1 기본명령..................................................................................................... 7-1 7.1.1 접점 .................................................................................................. 7-1 7.1.2 접점 .................................................................................................. 7-1 7.1.3 기동접점............................................................................................... 7-1 7.1.4 기동멈춤접점........................................................................................ 7-1 7.1.5 코일...................................................................................................... 7-1 7.1.6 반전 코일 ............................................................................................. 7-1 7.1.7 세트 코일 ............................................................................................. 7-1 7.1.8 리셋 코일 ............................................................................................. 7-2 7.1.9 기동 edge 검출부 코일......................................................................... 7-2 7.1.10 기동멈춤 edge 검출부코일 ................................................................. 7-2 7.1.11 점프 .................................................................................................... 7-2 7.1.12 리턴 .................................................................................................... 7-2 7.2 응용명령(LD블록............................................................................... 7-3 7.2.1 No.1;*(곱셈.................................................................................. 7-3 7.2.2 No.2;+(덧셈.................................................................................. 7-4 7.2.3 No.3;-(뺄셈.................................................................................. 7-4 7.2.4 No.4;/(나눗셈............................................................................... 7-5 7.2.5 No.5;1 gain(대입......................................................................... 7-5 7.2.6 No.6;Neg(정수의 부호반전........................................................... 7-6 7.2.7 No.7;<(보다 작다......................................................................... 7-7 7.2.8 No.8;<=(보다 작거나 같다........................................................... 7-7 7.2.9 No.9;<>(같지 않다........................................................................ 7-8 7.2.10 No.10;=(같다.............................................................................. 7-8 7.2.11 No.11;>(보다 크다...................................................................... 7-9 7.2.12 No.12;>=(보다 크거나 같다..................................................... 7-10 7.2.13 No.13;ANY_TO_BOOL(BOOL 형으로 변환...................................... 7-10 7.2.14 No.14;ANY_TO_DINT(정수형으로 변환....................................... 7-11 7.2.15 No.15;ANY_TO_REAL(실수형으로 변환....................................... 7-12 7.2.16 No.16;ANY_TO_SINT(단정수형으로 변환................................... 7-13 7.2.17 No.17;ANY_TO_STRING(문자열형으로 변화................................ 7-13 7.2.18 No.18;ANY_TO_TIME(타이머형으로 변환................................... 7-14 7.2.19 No.19;AND(BOOL AND) .............................................................. 7-15 7.2.20 No.20;NOT(BOOL NOT) .............................................................. 7-15 7.2.21 No.21;OR(BOOL OR).................................................................. 7-15 7.2.22 No.22;XOR(BOOL Excusive OR)................................................ 7-16 7.2.23 No.23;TOF(기동멈춤 지연시간.................................................. 7-17

Upload: others

Post on 07-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7章 명령어 일람

이 장에서는, 소프트웨어PLC에서 사용할 수 있는 기본명령과 응용명령

(LD블록)의 상세에 관해서 설명합니다. 7.1 기본명령.....................................................................................................7-1

7.1.1 A접점 ..................................................................................................7-1 7.1.2 B접점 ..................................................................................................7-1 7.1.3 기동접점...............................................................................................7-1 7.1.4 기동멈춤접점........................................................................................7-1 7.1.5 코일 ......................................................................................................7-1 7.1.6 반전 코일 .............................................................................................7-1 7.1.7 세트 코일 .............................................................................................7-1 7.1.8 리셋 코일 .............................................................................................7-2 7.1.9 기동 edge 검출부 코일.........................................................................7-2 7.1.10 기동멈춤 edge 검출부코일 .................................................................7-2 7.1.11 점프 ....................................................................................................7-2 7.1.12 리턴 ....................................................................................................7-2

7.2 응용명령(LD블록) ...............................................................................7-3 7.2.1 No.1;*(곱셈) ..................................................................................7-3 7.2.2 No.2;+(덧셈) ..................................................................................7-4 7.2.3 No.3;-(뺄셈) ..................................................................................7-4 7.2.4 No.4;/(나눗셈)...............................................................................7-5 7.2.5 No.5;1 gain(대입) .........................................................................7-5 7.2.6 No.6;Neg(정수의 부호반전) ...........................................................7-6 7.2.7 No.7;<(보다 작다) .........................................................................7-7 7.2.8 No.8;<=(보다 작거나 같다) ...........................................................7-7 7.2.9 No.9;<>(같지 않다)........................................................................7-8 7.2.10 No.10;=(같다) ..............................................................................7-8 7.2.11 No.11;>(보다 크다)......................................................................7-9 7.2.12 No.12;>=(보다 크거나 같다) .....................................................7-10 7.2.13 No.13;ANY_TO_BOOL(BOOL 형으로 변환) ......................................7-10 7.2.14 No.14;ANY_TO_DINT(정수형으로 변환) ....................................... 7-11 7.2.15 No.15;ANY_TO_REAL(실수형으로 변환) .......................................7-12 7.2.16 No.16;ANY_TO_SINT(단정수형으로 변환) ...................................7-13 7.2.17 No.17;ANY_TO_STRING(문자열형으로 변화) ................................7-13 7.2.18 No.18;ANY_TO_TIME(타이머형으로 변환) ...................................7-14 7.2.19 No.19;AND(BOOL 형 AND) ..............................................................7-15 7.2.20 No.20;NOT(BOOL 형 NOT) ..............................................................7-15 7.2.21 No.21;OR(BOOL 형 OR)..................................................................7-15 7.2.22 No.22;XOR(BOOL 형 Excusive OR) ................................................7-16 7.2.23 No.23;TOF(기동멈춤 지연시간)..................................................7-17

Page 2: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

2

7.2.24 No.24;TON(기동지연시간)...........................................................7-17 7.2.25 No.25;TP(펄스 타이밍) ..............................................................7-17 7.2.26 No.26;F_TRIG(기동멈춤 edge 검출) ............................................7-18 7.2.27 No.27;R_TRIG(기동 edge 검출) ...................................................7-19 7.2.28 No.28;RS(RS flip-flop) ............................................................7-19 7.2.29 No.29;SR(SR flip-flop) ............................................................7-20 7.2.30 No.30;CTD(카운트 다운) ............................................................7-21 7.2.31 No.31;CTU(카운트 업) ................................................................7-21 7.2.32 No.32;CTUD(상하 카운터)...........................................................7-22 7.2.33 No.33;AVERAGE(N 샘플의 평균)..................................................7-23 7.2.34 No.34;DERIVATE(시간축 상의 미분)...........................................7-24 7.2.35 No.35;HYSTER(2 개의 실수치의 hysteresis 의 bool 형 수치) ...7-25 7.2.36 No.36;INTEGRAL(시간축 상의 적분)...........................................7-25 7.2.37 No.37;LIM_ALRM(hysteresis 를 가진 상하한 알람) ..................7-26 7.2.38 No.38;BLINK(Blink Bool 형 신호) .............................................7-26 7.2.39 No.39;SIG_GEN(사인 신호 발생기) ............................................7-27 7.2.40 No.40;CMP(비교 function 블록)..................................................7-27 7.2.41 No.41;STACKINT(정수 Stack) .....................................................7-28 7.2.42 No.42;CONNECT(리소스에의 접속) ..............................................7-29 7.2.43 No.43;URCV_S(리소스 메세지 송신)...........................................7-30 7.2.44 No.44;USEND_S(리소스로부터 메세지 수신) ..............................7-30 7.2.45 No.45;LIMIT(제한치)..................................................................7-31 7.2.46 No.46;MAX(최대치) .....................................................................7-31 7.2.47 No.47;MIN(최소치) .....................................................................7-32 7.2.48 No.48;MOD(잉여산) .....................................................................7-32 7.2.49 No.49;MUX4(Multiplexer4) .........................................................7-33 7.2.50 No.50;MUX8(Multiplexer 8) .......................................................7-34 7.2.51 No.51;ODD(홀수 Parity) ............................................................7-35 7.2.52 No.52;RAND(랜덤 수치) ..............................................................7-35 7.2.53 No.53;SEL(Binary Selector) .....................................................7-36 7.2.54 No.54;ASCII(문자 → ASCII 코드) .............................................7-36 7.2.55 No.55;CHAR(ASCII 코드 → 문자) ...............................................7-37 7.2.56 No.56;ROL(좌순환) .....................................................................7-38 7.2.57 No.57;ROR(우순환) .....................................................................7-38 7.2.58 No.58;SHL(좌 시프트) ................................................................7-39 7.2.59 No.59;SHR(우 시프트) ................................................................7-40 7.2.60 No.60;ACOS(아크 코사인)...........................................................7-40 7.2.61 No.61;ASIN(아크 사인) ..............................................................7-41 7.2.62 No.62;ATAN(아크 탄젠트)...........................................................7-41 7.2.63 No.63;COS(코사인) .....................................................................7-42 7.2.64 No.64;SIN(사인) .........................................................................7-43 7.2.65 No.65;TAN(탄젠트) .....................................................................7-43 7.2.66 No.66;ABS(절대치) .....................................................................7-44 7.2.67 No.67;EXPT(지수) .......................................................................7-44 7.2.68 No.68;LOG(상용대수)..................................................................7-45 7.2.69 No.69;POW(누승계산)..................................................................7-45 7.2.70 No.70;SQRT(평방근)....................................................................7-46 7.2.71 No.71;TRUNC(소수부분 잘라버림) ..............................................7-46 7.2.72 No.72;DELETE(문자열의 삭제) ...................................................7-47 7.2.73 No.73;FIND(문자열 검색)...........................................................7-48 7.2.74 No.74;INSERT(문자열의 삽입) ...................................................7-48 7.2.75 No.75;LEFT(문자열의 왼쪽부분 취득) .......................................7-49 7.2.76 No.76;MID(문자열의 중간부분 취득).........................................7-50 7.2.77 No.77;MLEN(문자열장의 취득) ...................................................7-51 7.2.78 No.78;REPLACE(문자열 치환) .....................................................7-51 7.2.79 No.79;RIGHT(문자열의 오른쪽부분 취득)..................................7-52 7.2.80 No.80;AND_MASK(정수 비트 마다 AND 마스크) ..........................7-53 7.2.81 No.81;NOT_MASK(정수비트마다 부정).........................................7-53 7.2.82 No.82;OR_MASK(정수비트마다 OR 마스크)..................................7-54 7.2.83 No.83;XOR_MASK(정수비트마다 XOR 마스크) ...............................7-55 7.2.84 No.84;MOV8(BOOL 데이타를 전송 8) ...........................................7-55 7.2.85 No.85;MOV16(BOOL 데이타를 전송 16).........................................7-56

Page 3: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

3

7.2.86 No.86;MOV32(BOOL 데이타를 전송 32).........................................7-56 7.2.87 No.87;BTOD8(BOOL 데이타를 정수변수에 전송 8) ......................7-56 7.2.88 No.88;BTOD16(BOOL 데이타를 정수변수에 전송 16) ...................7-56 7.2.89 No.89;BTOD32(BOOL 데이타를 정수변수에 전송 32) ..................7-57 7.2.90 No.90;DTOB8(정수변수를 BOOL 에 8)...........................................7-57 7.2.91 No.91;DTOB16(정수변수를 BOOL 에 16) .......................................7-57 7.2.92 No.92;DTOB32(정수변수를 BOOL 에 32) .......................................7-58

Page 4: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형
Page 5: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.1 기본명령

7-1

7.1 기본명령

7.1.1 A접점

접점의 우측 접속선의 상태는, 좌측 접속선과 접점에 할당되어진 변수와의 논리적이됩니다.

7.1.2 B접점

접점의 우측 접속선의 상태는, 접점의 좌측 접속선과 접점에 할당되어진 변수의 반전과의 논리적이 됩니다.

7.1.3 기동접점

접점의 우측 접속선의 상태는, 좌측 접속선이 TRUE이고, 또 Bool 형변수가 FALSE에서

TRUE로 기동했을 때만 TRUE가 됩니다.。이 이외에는 FALSE가 됩니다.

7.1.4 기동멈춤접점

접점의 오른쪽 접속선의 상태는, 좌측 접속선이 TRUE이고, 또 Bool 형변수가 TRUE에서

FALSE로 기동을 멈추었을 때만 TRUE가 됩니다. 그 이외에는 FALSE가 됩니다.

7.1.5 코일

좌측 접속선의 상태를 코일에 할당된 변수에 대입합니다. 좌측 접속선의 상태는 그대로 우측 접속선에 전달됩니다. 우측 접속선은 통상 우모선에 접속됩니다.

7.1.6 반전 코일

좌측 접속선의 반전상태가 코일에 할당된 변수에 대입됩니다. 좌측 접속선의 상태는 그대로 우측 접속선에 전달됩니다. 우측 접속선은 통상 우모선에 접속됩니다.。

7.1.7 세트 코일

할당된 변수의 수치는 좌측 접속선의 상태가 TRUE가 되었을 때 TRUE로 세트합니다. 출력변수는

이 상태가 리셋 코일로 반전될 때까지 계속됩니다. 좌측 접속선의 상태는 그대로 우측 접속선에 전달됩니다. 우측 접속선은 통상 우모선에 접속됩니다.

Page 6: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.1 기본명령

7-2

7.1.8 리셋 코일

할당된 변수의 수치는 좌측 접속선의 상태가 TRUE가 되었을 때에 FALSE로 리셋됩니다.

출력변수는 이 상태가 세트 코일로 반전될 때까지 계속됩니다. 좌측 접속선의 상태는 그대로 우측 접속선에 전달됩니다. 좌측 접속선은 통상, 우모선에 접속됩니다.

7.1.9 기동 edge 검출부 코일

할당된 변수는 좌측 접속선의 상태가 FALSE에서 TRUE로 기동했을 때에 TRUE로 세트됩니다.

그 이외의 경우에는 모두 FALSE로 리셋됩니다.

좌측 접속선의 상태는 그대로 우측접속선에 전달됩니다. 우측접속선은 통상, 우모선에 접속됩니다.

7.1.10 기동멈춤 edge 검출부코일

할당된 변수는 좌측 접속선의 상태가 TRUE에서 FALSE로 기동을 멈추었을 때에 TRUE로

세트됩니다. 그 이외의 경우에는 모두 FALSE로 리셋됩니다.

우측접속선의 상태는 그대로 좌측 접속선에 전달됩니다. 우측 접속선은 통상, 우모선에 접속됩니다.

7.1.11 점프

점프 심볼 좌측 접속선의 Bool 상태가 TRUE 일 때, 프로그램은 대응하는 라벨 심볼로 점프하여, 그

다음부터 실행됩니다.

7.1.12 리턴

RETURN 라벨의 좌측 접속선의 Bool 상태가 TRUE 일 때, 프로그램은 이후의 프로그램을 실행하지 않고

리턴합니다.

Page 7: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-3

7.2 응용명령(LD블록)

비교명령이나 타이머 명령같이 표준으로 용의되어 있는 응용명령을 AX소프트웨어PLC에서는

“LD블록”라고 하며, 번호 또는 호칭으로 입력합니다. LD블록은 네모난 블록(function 블록)으로

표현되며, 반드시 입력과 출력을 가지고 있습니다. 예를 들면,“타이머 명령”은 LD블록 No.24=TON(기동 지연시간)이 됩니다. function 블록

“TON”은 Altersys 사 ISaGRAF(ISaGRAF-PRO)가 표준으로 서포트하고 있는 것과 같은 것입니다.

“LD블록 No.24”은 교시의 용이함을 고려해서 AX제어장치에서 독자적으로 부여한 번호이며,

Altersys 사 ISaGRAF(ISaGRAF-PRO)에는 없는 것입니다.

이하, 각 명령의 설명을 상세히 기술하겠습니다.

본문은 Altersys 사의 양해를 얻어, ISaGRAF(ISaGRAF-PRO)유저 가이드의 게재 내용을 거의 그대로

게제하고 있습니다. 설명문 중에는 LD언어(래더)이외의 언어(ST,IL등)가 많이 실려있지만,

이것은 각 명령의 행동을 설명하기 위한 것이며, AX제어장치의 티치 펜던트로 표시・편집하는 것은

불가능합니다. LD언어(래더)이외의 언어로 프로그래밍 할 경우에는, ISaGRAF 워크벤치를 사용해

주십시오.

Copyright AlterSys; Reproduced with permission from AlterSys.

7.2.1 No.1;*(곱셈)

주의: 이 명령의 입력수는 3개 이상으로 변경가능합니다.

인수:

입력 i* 정수・실수형 (모든 입력은 같은 타입)

출력 o1 정수・실수형 입력에 부호 붙여 곱셉

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선 직결이라도 상관없습니다.

ENO 출력은, 항상 블록의 최초 입력과 같은 상태입니다. BOOL 형 변수를 접속해 주십시오.

설명:

복수의 정수・실수형변수의 곱셈

(* 곱셈 블록을 채택한 FBD 예*)

ai101ai102

ai51ai52ai53

*

*

ao10

ao5

(* 등가의 ST언어: *)

ao10 := ai101 * ai102;

ao5 := (ai51 * ai52) * ai53;

(* 등가의 IL언어: *)

LD ai101

MUL ai102

ST ao10

LD ai51

MUL ai52

MUL ai53

ST ao5

Page 8: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-4

7.2.2 No.2;+(덧셈)

주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,.

인수:

입력 i* 정수・실수형 (모든 입력은 같은 타입)

출력 o1 정수・실수형 모든 입력에 부호 붙여 덧셈

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록의 최초 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

복수의 정수・실수형 변수에 부호를 붙여서 덧셈

(* 덧셈 블록을 채택한 FBD 예*)

ai101ai102

ai51ai52ai53

+

+

ao10

ao5

(* 등가의 ST언어: *)

ao10 := ai101 + ai102;

ao5 := (ai51 + ai52) + ai53;

(* 등가의IL언어: *)

LD ai101

ADD ai102

ST ao10

LD ai51

ADD ai52

ADD ai53

ST ao5

7.2.3 No.3;-(뺄셈)

인수:

입력 i1,i2 정수・실수형 (IN1 와 IN2 는 같은 타입)

출력 o1 정수・실수형 뺄셈 결과 (IN1 - IN2)

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔 마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록의 최초 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

2개의 정수・실수형변수의 뺄셈(1번째-2번째)。

(* 뺄셈 블록을 채택한 FBD 예 *)

Page 9: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-5

ai101ai102

ai511

ai53

-IN1

IN2 Q

-IN1

IN2 Q

ao10

ao5

-IN1

IN2 Q

(* 등가의 ST언어: *)

ao10 := ai101 - ai102;

ao5 := (ai51 - 1) - ai53;

(* 등가의 IL언어: *)

LD ai101

SUB ai102

ST ao10

LD ai51

SUB 1

SUB ai53

ST ao5

7.2.4 No.4;/(나눗셈)

인수:

입력 i1,i2 정수・실수형 나누는 수는 0이 아닌 것.(IN1 과 IN2 는 같은타입)

출력 o1 정수・실수형 부호 붙여 나눗셈(IN1 / IN2)

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록의 최초 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

2개의 정수・실수형 변수의 나눗셈(1번째/2번째)

(* 나눗셈 블록을 채택한 FBD 예*)

ai101ai102

ai512

ai53

/IN1

IN2 Q

/IN1

IN2 Q

ao10

ao5

/IN1

IN2 Q

(* 등가의 ST언어: *)

ao10 := ai101 / ai102;

ao5 := (ai5 / 2) / ai53;

(* 등가의 IL언어: *)

LD ai101

DIV ai102

ST ao10

LD ai51

DIV 2

DIV ai53

ST ao5

7.2.5 No.5;1 gain(대입)

Page 10: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-6

인수:

입력 i1 모든 타입

출력 o1 모든 타입

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

어느 변수를 다른 변수에 대입합니다.

이 블록은 입력과 출력을 직접 접속하는 블록입니다.

(* 대입 블록을 채택한 FBD 예 *)

ai10

bi1bi2

1IN Q

&1

IN Q bo100

ao23

(* 등가의 ST언어: *)

ao23 := ai10;

bo100 := NOT (bi1 AND bi2);

(*등가의 IL 언어: *)

LD ai10

ST ao23

LD bi1

AND bi2

LDN bo100

7.2.6 No.6;Neg(정수의 부호반전)

인수:

입력 i1 정수・실수형 입력, 출력 패러미터와 같은 타입

출력 o1 정수・실수형 입력, 출력 패러미터와 같은 타입

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

변수의 반전(부호 반전)의 대입

(*Negation 을 블록으로 채택한 FBD 예 *)

ai10

ri1ri2

NegIN Q

+Neg

IN Q ro100

ao23

(* 등가의 ST언어: *)

ao23 := - (ai10);

ro100 := - (ri1 + ri2);

(*등가의 IL 언어: *)

Page 11: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-7

LD ai10

MUL -1

ST ao23

LD ri1

ADD ri2

MUL -1.0

LD ro100

7.2.7 No.7;<(보다 작다)

인수:

입력 i1,i2 정수형, 실수형, 타이머형, 문자열형 2개의 입력은 같은 타입

출력 o1 Bool 형 만약, I1 < I2 라면 TRUE

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

어떤 변수가 다른 변수보다 작은지 비교합니다.

(*"< " 블록을 채택한 FBD 예*)

1025

'z''B'

aresult

mresult

<IN1

IN2 Q

<IN1

IN2 Q

(* 등가의 ST언어: *)

aresult := (10 < 25); (* aresult 는 TRUE *)

mresult := ('z' < 'B'); (* mresult 는 FALSE *)

(* 등가의 IL언어: *)

LD 10

LT 25

ST aresult

LD 'z'

LT 'B'

ST mresult

7.2.8 No.8;<=(보다 작거나 같다)

인수:

입력 i1,i2 정수형, 실수형, 문자열형 2개의 입력은 같은 타입

출력 o1 Bool 형 만약, I1 <= I2 라면 TRUE

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

Page 12: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-8

어떤 변수가 다른 변수와 같거나 작은지를 비교합니다.

(* "<= " 블록을 채택한 FBD 예*)

1025

'ab''ab'

aresult

mresult

<=IN1

IN2 Q

<=IN1

IN2 Q

(* 등가의 ST언어: *)

aresult := (10 <= 25); (* aresult 는 TRUE *)

mresult := ('ab' <= 'ab'); (* mresult 는 TRUE *)

(* 등가의 IL언어: *)

LD 10

LE 25

ST aresult

LD 'ab'

LE 'ab'

ST mresult

7.2.9 No.9;<>(같지 않다)

인수:

입력 i1,i2 정수형, 실수형, 문자열형 2개의 입력은 같은 타입

출력 o1 Bool 형 만약, I1 <> I2 라면 TRUE

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

어떤 변수가 다른 변수와 같은지 비교합니다.

(*"<> " 블록을 채택한 FBD 예*)

1025

'ab''ab'

aresult

mresult

<>IN1

IN2 Q

<>IN1

IN2 Q

(* 등가의 ST언어: *)

aresult := (10 <> 25); (* aresult 는 TRUE *)

mresult := ('ab' <> 'ab'); (* mresult 는 FALSE *)

(* 등가의 IL언어: *)

LD 10

NE 25

ST aresult

LD 'ab'

NE 'ab'

ST mresult

7.2.10 No.10;=(같다)

Page 13: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-9

인수:

입력 i1,i2 정수형, 실수형, 문자열형 2개의 입력과 같은 타입

출력 o1 Bool 형 만약, IN1 = IN2 라면 TRUE

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

어떤 변수가 다른 변수와 같은지 비교합니다.

(*"Is Equal to" 블록을 채택한 FBD 예*)

1025

'ab''ab'

aresult

mresult

=IN1

IN2 Q

=IN1

IN2 Q

(* 등가의 ST언어: *)

aresult := (10 = 25); (* aresult 는 FALSE *)

mresult := ('ab' = 'ab'); (* mresult 는 TRUE *)

(* 등가의 IL언어: *)

LD 10

EQ 25

ST aresult

LD 'ab'

EQ 'ab'

ST mresult

7.2.11 No.11;>(보다 크다)

인수:

입력 i1,i2 정수형, 실수형, 타이머형, 문자열형 2개는 같은 타입

출력 o1 Bool 형 만약, IN1 > IN2 라면 TRUE

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

어떤 변수가 다른 변수보다 큰지 비교합니다.

(*">" 블록을 채택한 FBD 예*)

1025

'ab''a'

aresult

mresult

>IN1

IN2 Q

>IN1

IN2 Q

(* 등가의 ST언어: *)

Page 14: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-10

aresult := (10 > 25); (* aresult 는 FALSE *)

mresult := ('ab' > 'a'); (* mresult 는 TRUE *)

(* 등가의 IL언어: *)

LD 10

GT 25

ST aresult

LD 'ab'

GT 'a'

ST mresult

7.2.12 No.12;>=(보다 크거나 같다)

인수:

입력 i1,i2 정수형, 실수형, 문자열형 2개의 입력은 같은 타입

출력 o1 Bool 형 만약, IN1 >= IN2 라면 TRUE

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

어떤 변수가 다른 변수와 같거나 보다 큰지 비교합니다.

(*">=" 블록을 채택한 FBD 예 *)

1025

'ab''ab'

aresult

mresult

>=IN1

IN2 Q

>=IN1

IN2 Q

(* 등가의 ST언어: *)

aresult := (10 >= 25); (* aresult 는 FALSE *)

mresult := ('ab' >= 'ab'); (* mresult 는 TRUE *)

(* 등가의 IL언어: *)

LD 10

GE 25

ST aresult

LD 'ab'

GE 'ab'

ST mresult

7.2.13 No.13;ANY_TO_BOOL(BOOL 형으로 변환)

인수:

입력 i1 ANY 모든 비정수치

출력 o1 Bool 형 TRUE:0이외의 수치

FALSE:0

TRUE: 'TRUE' 문자열

Page 15: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-11

FALSE: 'FALSE' 문자열

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

변수를 Bool 형으로 변환합니다.

(* Bool 형 변환 블록을 채택한 FBD 예*)

(* 등가의 ST언어: *)

ares := ANY_TO_BOOL (10); (* ares 는 TRUE *)

tres := ANY_TO_BOOL (t#0s); (* tres 는 FALSE *)

mres := ANY_TO_BOOL ('false'); (* mres 는 FALSE *)

(* 등가의 IL언어: *)

LD 10

ANY_TO_BOOL

ST ares

LD t#0s

ANY_TO_BOOL

ST tres

LD 'false'

ANY_TO_BOOL

ST mres

7.2.14 No.14;ANY_TO_DINT(정수형으로 변환)

인수:

입력 i1 ANY 모든 비정수치

출력 o1 정수형 0 :IN 이 FALSE 일 때,

1 :IN 이 TRUE 일 때

타이머의 ms수치

실수변수위 정수부분

문자열의 10진수표현

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

변수를 정수형으로 변환합니다.

(* 정수형 변환블록을 채택한 FBD 예 *)

Page 16: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-12

(* 등가의 ST언어: *)

bres := ANY_TO_DINT (true); (* bres 는 1 *)

tres := ANY_TO_DINT (t#1s46ms); (* tres 는 1046 *)

mres := ANY_TO_DINT ('0198'); (* mres 는 198 *)

(* 등가의IL언어: *)

LD true

ANY_TO_DINT

ST bres

LD t#1s46ms

ANY_TO_DINT

ST tres

LD '0198'

ANY_TO_DINT

ST mres

7.2.15 No.15;ANY_TO_REAL(실수형으로 변환)

인수:

입력 i1 ANY 모든 비정수치

출력 o1 실수형 0.0 :IN 이 FALSE

1.0 : IN 이 TRUE

타이머의 msec 단위에서의 수치

정수형과 같은수치

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

변수를 실수형으로 변환합니다.

(* 실수형 변환블록을 채택한 FBD 예 *)

(* 등가의ST언어: *)

bres := ANY_TO_REAL (true); (* bres 는 1.0 *)

tres := ANY_TO_REAL (t#1s46ms); (* tres 는 1046.0 *)

ares := ANY_TO_REAL (198); (* ares 는 198.0 *)

Page 17: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-13

(* 등가의IL언어: *)

LD true

ANY_TO_REAL

ST bres

LD t#1s46ms

ANY_TO_REAL

ST tres

LD 198

ANY_TO_REAL

ST ares

7.2.16 No.16;ANY_TO_SINT(단정수형으로 변환)

인수:

입력 i1 ANY 모든 비정수치

출력 o1 실수형 IN 이 FALSE 일 때는 0 / IN 이 TRUE 일 때는 1

타이머의 msec 단위에서의 수치

실수형에서는 정수부분

문자열이 나타내는 10 진수

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

변수를 단정수로 변환합니다. ("단정수로의 변환" 연산자를 채택한 FBD 의 예 *)

(* 등가의ST언어: *)

bres := ANY_TO_SINT (true); (* bres 는 1 *)

tres := ANY_TO_SINT (t#0s46ms); (* tres 는 46 *)

mres := ANY_TO_SINT ('0198'); (* mres 는 198 *)

7.2.17 No.17;ANY_TO_STRING(문자열형으로 변화)

인수:

입력 i1 any 모든 비문자열 수치

출력 o1 문자열형 I1 이 Bool 형일 때 'false' 또는 'true’

I1 이 정수, 실수형일 때 10 진수 표현

설명:

Page 18: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-14

변수를 문자열형으로 변환합니다.

(* 길이가변 문자열형 변환블록을 채택한 FBD 예 *)

(* 등가의ST언어: *)

bres := ANY_TO_STRING (true); (* bres は 'TRUE' *)

ares := ANY_TO_STRING (125); (* ares は '125' *)

(* 등가의IL언어: *)

LD true

ANY_TO_STRING

ST bres

LD 125

ANY_TO_STRING

ST ares

7.2.18 No.18;ANY_TO_TIME(타이머형으로 변환)

인수:

입력 i1 any 모든 비타이머・ 수치

msec 단위의 수치

출력 o1 타이머형 I1 로 표현되는 타이머수치

I1 이 실수일 때는 그 정수 부분

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수형, 실수형 변수를 타이머수치로 변환합니다.

(* 타이머형 변환블록을 채택한 FBD 예 *)

(* 등가의 ST언어: *)

ares := ANY_TO_TIME (1256); (* ares := t#1s256ms *)

rres := ANY_TO_TIME (1256.3); (*rres := t#1s256ms *)

(* 등가의 IL언어: *)

LD 1256

ANY_TO_TIME

ST ares

LD 1256.3

ANY_TO_TIME

ST rres

Page 19: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-15

7.2.19 No.19;AND(BOOL 형 AND)

주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다.

인수:

입력 i1,i2 Bool 형

출력 o1 Bool 형 입력 패러미터의 논리적

설명:

2개 이상의 입력 패러미터의 논리적

(*"AND" 를 블록으로 채택한 FBD 예*)

bi101bi102

bi51bi52bi53

&

&

bo10

bo5

(* 등가의 ST언어: *)

bo10 := bi101 AND NOT (bi102);

bo5 := (bi51 AND bi52) AND bi53;

(* 등가의 IL언어: *)

LD bi101 (* 현재 결과 := bi101 *)

ANDN bi102 (* 현재 결과 := bi101 AND not(bi102) *)

ST bo10 (* bo := 현재 결과 *)

LD bi51 (* 현재 결과 := bi51;

& bi52 (* 현재 결과 := bi51 AND bi52 *)

& bi53 (* 현재 결과 := (bi51 AND bi52) AND bi53 *)

ST bo5 (* bo := 현재 결과 *)

7.2.20 No.20;NOT(BOOL 형 NOT)

인수:

입력 i1 Bool 형

출력 o1 Bool 형 I1 이 FALSE 라면 TRUE, I1 이 TRUE 라면 FALSE

설명:

Bool 형식의 부정을 되돌린다

7.2.21 No.21;OR(BOOL 형 OR)

주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다.

인수:

Page 20: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-16

입력 i1,i2 Bool 형

출력 o1 Bool 형 입력 패러미터의 논리화

설명:

2개 이상의 입력 패러미터의 논리화

(*"OR" 을 블록으로 채택한 FBD 예 *)

bi101bi102

bi51bi52bi53

>=1

>=1

bo10

bo5

(* 등가의 ST언어: *)

bo10 := bi101 OR NOT (bi102);

bo5 := (bi51 OR bi52) OR bi53;

(* 등가의 IL언어: *)

LD bi101

ORN bi102

ST bo10

LD bi51

OR bi52

OR bi53

ST bo5

7.2.22 No.22;XOR(BOOL 형 Excusive OR)

인수:

입력 i1,i2 Bool 형

출력 o1 Bool 형 2개의 Bool 입력의 배타적 논리화

설명:

2개의 Bool 수치의 배타적 논리화

(*"XOR" 을 블록으로 채택한 FBD 예 *)

bi101bi102

bi51bi52bi53

=1IN1

IN2 Q

=1IN1

IN2 Q

bo10

bo5

=1IN1

IN2 Q

(* 등가의 ST언어: *)

bo10 := bi101 XOR NOT (bi102);

bo5 := (bi51 XOR bi52) XOR bi53;

(* 등가의 IL언어: *)

LD bi101

XORN bi102

ST bo10

LD bi51

XOR bi52

XOR bi53

ST bo5

Page 21: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-17

7.2.23 No.23;TOF(기동멈춤 지연시간) TOF

IN

PT

Q

ET

인수:

IN Bool 형 기동멈춤 검출에서 타이머수치 increment 를 개시

기동 검출에사 타이머수치 정지, 리셋

PT 타이머형 설정 타이머 수치

Q Bool 형 TRUE 일 때, 설정 타이머수치까지 경과하지 않았음

ET 타이머형 현재 경과 타이머수치

설명:

내부 타이머수치를 지정된 수치(PT)까지 increment

타임 챠트:

IN

Q

ET

PT

0

7.2.24 No.24;TON(기동지연시간) TON

IN

PT

Q

ET

인수:

IN Bool 형 기동 검출에서 타이머수치의 increment 를 개시

기동멈춤 검출에서 타이머수치 정지, 리셋

PT 타이머형 타임 업 설정치

Q Bool 형 TRUE 일 때, 타임 업 설정치 경과

ET 타이머형 현재 경과 타이머수치

설명:

내부 타이머수치를 지정된 수치(PT)까지 increment

타임 챠트:

IN

Q

ET

PT

0

7.2.25 No.25;TP(펄스 타이밍)

Page 22: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-18

TPIN

PT

Q

ET

인수:

IN Bool 형 기동 검출에서 타이머수치의 increment 를 개시(increment 중이 아나라면). 만약,

FALSE 상태에서 타이머수치가 설정 타이머수치를 경과했을 때에는 타이머수치를 리셋. 타이머가 increment

중에는 IN 의 변화는 무효가 됩니다.

PT 타이머형 설정 타이머수치

Q Bool 형 TRUE 일 때, 타이머가 increment 중

ET 타이머형 현재 경과 타이머수치

설명:

내부 타이머수치를 지정된 수치(PT)까지 increment

타임 챠트:

IN

Q

ET

PT

0

7.2.26 No.26;F_TRIG(기동멈춤 edge 검출) f_trig

CLK Q

인수:

CLK Bool 형

Q Bool 형 TRUE:CLK 가 TRUE 에서 FALSE 로 기동을 멈추었을 때

FALSE:그 이외의 경우

설명:

Bool 형변수의 기동멈춤을 검출합니다.(1사이클 전의 수치와의 비교를 시행합니다)

(*"F_TRIG" 블록을 채택한 FBD 프로그램 *)

f_trigCLK Qcmd

AnaIN Q

+

nb_edge

(*등가의 ST언어: F_TRIG1 는 F_TRIG 블록의 Instance *) F_TRIG1(cmd);

nb_edge := ANA(F_TRIG1.Q) + nb_edge;

(* 등가의 IL언어: *)

LD cmd

ST F_TRIG1.clk

CAL F_TRIG1

LD F_TRIG1.Q

Page 23: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-19

ANA

ADD nb_edge

ST nb_edge

7.2.27 No.27;R_TRIG(기동 edge 검출) r_trig

CLK Q

인수:

CLK Bool 형

Q Bool 형 TRUE : CLK 이 FALSE 에서 が TRUE 로 기동했을 때

FALSE:그 이외의 경우

설명:

Bool 형변수의 기동을 검출합니다.(1사이클 전의 수치와의 비교를 시행합니다)

(*"R_TRIG" 블록을 채택한 FBD 프로그램 *) r_trig

CLK QcmdAna

IN Q

+

nb_edge

(*등가의 ST언어: R_TRIG1 は R_TRIG 블록의 Instance *) R_TRIG1(cmd);

nb_edge := ANA(R_TRIG1.Q) + nb_edge;

(* 등가의 IL언어: *)

LD cmd

ST R_TRIG1.clk

CAL R_TRIG1

LD R_TRIG1.Q

ANA

ADD nb_edge

ST nb_edge

7.2.28 No.28;RS(RS flip-flop) RS

SET

RESET1 Q1

인수:

SET Bool 형 TRUE 라면 Q1 을 TRUE 로 리셋합니다.

RESET1 Bool 형 TRUE 에서 Q1 을 FALSE 로 리셋합니다.(우선)

Q1 Bool 형 Bool 형 메모리 상태

설명:

리셋 우선 쌍안정:이하의 표 참조

Set Reset1 Q1 result Q1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0

Page 24: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-20

(*"RS" 블록을 채택한 FBD 프로그램 *) RS

SET

RESET Q1

alarm

start_cmd

stop_cmdcommand>=1

(*등가의 ST언어: RS1 은 RS 블록의 Instance *) RS1(start_cmd, (stop_cmd OR alarm));

command := RS1.Q1;

(* 등가의 IL언어: *)

LD start_cmd

ST RS1.set

LD stop_cmd

OR alarm

ST RS1.reset1

CAL RS1

LD RS1.Q1

ST command

7.2.29 No.29;SR(SR flip-flop) SR

SET1

RESET Q1

인수:

SET1 Bool 형 TRUE 라면 Q1 을 TRUE 로 세트합니다 (우선)

RESET Bool 형 TRUE 라면 Q1 을 FALSE 로 리셋합니다.

Q1 Bool 형 Bool 형의 메모리 상태

설명:

세트 우선 쌍안정:이하의 표 참조

Set1 Reset Q1 result Q1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1

(*"SR" 블록을 채택한 FBD 프로그램 *)

SRSET1

RESET Q1

auto_modestart_cmdstop_cmd command

&

(*등가의 ST언어: SR1 은 SR 블록의 Instance *) SR1((auto_mode & start_cmd), stop_cmd);

command := SR1.Q1;

(* 등가의 IL언어: *)

LD auto_mode

AND start_cmd

ST SR1.set1

LD stop_cmd

ST SR1.reset

CAL SR1

LD SR1.Q1

ST command

Page 25: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-21

7.2.30 No.30;CTD(카운트 다운) CTD

CD

LOAD

PV

Q

CV

인수:

CD Bool 형 카운트 입력

(CD 가 TRUE 일 때 카운트 다운)

LOAD Bool 형 로드 Command (우선)

(LOAD 가 TRUE 일 때 CV = PV 가 됩니다)

PV 정수형 카운터의 초기치

Q Bool 형 Underflow: CV = 0 로 TRUE

CV 정수형 카운터 결과

주의:

CTD는 입력 CD의 기동, 기동멈춤을 검출하지 않습니다. 반드시 "R_TRIG" 혹은 "F_TRIG" 을

사용해서 펄스 카운터를 만들 필요가 있습니다.

설명:

카운트수(정수형)는 PV 수치에서 1 씩 0까지 감소

(*"CTD" 블록을 채택한 FBD 프로그램 *) CTD

CD

LOAD

PV

Q

CV

commandload_cmd

100underflow

result

f_trigCLK Q

(*등가의 ST언어: F_TRIG1 은 F_TRIG 블록의 Instance, CTD1 은 CTD 블록의 Instance *) CTD1(F_TRIG1(command),load_cmd,100);

underflow := CTD1.Q;

result := CTD1.CV;

(* 등가의 IL언어: *)

LD command

ST F_TRIG1.clk

CAL F_TRIG1

LD F_TRIG1.Q

ST CTD1.cd

LD load_cmd

ST CTD1.load

LD 100

ST CTD1.pv

CAL CTD1

LD CTD1.Q

ST underflow

LD CTD1.cv

ST result

7.2.31 No.31;CTU(카운트 업) CTU

CU

RESET

PV

Q

CV

인수:

CU Bool 형 카운트 입력 ( CU 가 TRUE 로 카운트)

RESET Bool 형 리셋 Command(우선)

Page 26: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-22

PV 정수형 최대 카운트 수치

Q Bool 형 Overflow: CV = PV 로 TRUE

CV 정수형 현재의 카운트 결과

주의:

CTU는 입력CU의 기동, 기동멈춤을 검출하지 않습니다. 반드시 "R_TRIG" 또는 "F_TRIG" 을

사용해서 펄스 카운터를 만들 필요가 있습니다.

설명:

카운트 수(정수형)는 0에서 1씩 증가

(*"CTU"블록을 채택한 FBD 프로그램 *) CTU

CU

RESET

PV

Q

CV

commandauto_mode

100overflow

result

r_trigCLK Q

(*등가의 ST언어: R_TRIG1 은 R_TRIG 블록의 Instance, CTU1 은 CTU 블록의 Instance *) CTU1(R_TRIG1(command),NOT(auto_mode),100);

overflow := CTU1.Q;

result := CTU1.CV;

(* 등가의 IL언어: *)

LD command

ST R_TRIG1.clk

CAL R_TRIG1

LD R_TRIG1.Q

ST CTU1.cu

LDN auto_mode

ST CTU1.reset

LD 100

ST CTU1.pv

CAL CTU1

LD CTU1.Q

ST overflow

LD CTU1.cv

ST result

7.2.32 No.32;CTUD(상하 카운터)

인수:

CU Bool 형 업 카운터 입력 (CU 가 TRUE 로 카운트)

CD Bool 형 다운 카운터 입력 (CD 가 TRUE 로 카운트)

RESET Bool 형 리셋 Command (우선)

(RESET 이 TRUE 일 때 CV = 0)

LOAD Bool 형 로드 Command (LOAD 가 TRUE 일 때 CV = PV)

PV 정수형 최대 카운트 수치

QU Bool 형 Overflow : CV = PV 일 때 TRUE

QD Bool 형 Underflow: CV = 0 일 때 TRUE

CV 정수형 카운트 결과

Page 27: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-23

주의:

CTUD는 입력 CU, CD의 기동, 기동멈춤을 검출하지 않습니다. 반드시 "R_TRIG" 혹은 "F_TRIG"

을 사용해서 펄스 카운터를 만들 필요가 있습니다.

설명:

카운트수(정수형)는 0에서 PV 수치까지 1씩 증가, 혹은,

현재수치에서 1씩 0까지 감소.

(*"CTUD" 블록을 채택한 FBD 프로그램 *)

CTUDCU

CD

RESET

LOAD

PV

QU

QD

CV

add_elt

sub_eltreset_cmdload_cmd

100

fullemptynb_elt

r_trigCLK Q

r_trigCLK Q

(*등가의 ST언어: R_TRIG1 과 R_TRIG2 는 R_TRIG 블록의 Instance, CTUD1 은 CTUD 블록의 Instance *) CTUD1(R_TRIG1(add_elt), R_TRIG2(sub_elt), reset_cmd, load_cmd,100);

full := CTUD1.QU;

empty := CTUD1.QD;

nb_elt := CTUD1.CV;

(* 등가의 IL언어: *)

LD add_elt

ST R_TRIG1.clk

CAL R_TRIG1

LD R_TRIG1.Q

ST CTUD1.cu

LD sub_elt

ST R_TRIG2.clk

CAL R_TRIG2

LD R_TRIG2.Q

ST CTUD1.cd

LD load_cmd

ST CTUD1.load

LD 100

ST CTUD1.pv

CAL CTUD1

LD CTUD1.QU

ST full

LD CTUD1.QD

ST empty

LD CTUD1.CV

ST nb_elt

7.2.33 No.33;AVERAGE(N 샘플의 평균) average

RUN

XIN

N XOUT

인수:

RUN Bool 형 TRUE:실행 / FALSE:리셋

XIN 실수형 실수치 입력

N 정수형 평균을 취해야 할 샘플 수(매 사이클 1 입력)

XOUT 실수형 XIN 수치의 샘플 갯수(N 개)의 이동평균치

설명:

Page 28: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-24

매 사이클 XIN 을 읽어들여, 과거의 사이클 수치(샘플 수 N)의 평균값을 구합니다. 최신의 N 개

데이타가 축적되고 있습니다.

샘플 수 N은 최대128까지 입니다. "RUN" Command가 FALSE일 때(리셋모드), 출력치는 입력치와 같은

수치가 됩니다.

축적된 샘플수가 N 이 되면, 최초로 축적된 수치는 삭제됩니다.

(*"AVERAGE" 블록을 채택한 FBD 프로그램*)

auto_modestore_cmd

sensor_value100 ave_value

&average

RUN

XIN

N XOUT

(*등가의 ST언어:AVERAGE1 은 AVERAGE 블록의 Instance *) AVERAGE1((auto_mode & store_cmd), sensor_value, 100) ;

ave_value := AVERAGE1.XOUT;

(* 등가의 IL언어: *)

LD auto_mode

AND store_cmd

ST AVERAGE1.run

LD sensor_value

ST AVERAGE1.xin

LD 100

ST AVERAGE1.N

CAL AVERAGE1

LD AVERAGE1.XOUT

ST ave_value

7.2.34 No.34;DERIVATE(시간축 상의 미분) derivate

RUN

XIN

CYCLE XOUT

인수:

RUN Bool 형 모드,TRUE=미분 실행 / FALSE=리셋

XIN 실수형 입력치

CYCLE 타이머형 샘플링 주기

XOUT 실수형 미분 결과

설명:

실수치의 미분을 시행합니다.

"CYCLE"패러미터 수치가 ISaGRAF의 사이클 타임보다도 짧을 경우에 샘플링 간격은 사이클

타임에 맞추어집니다.

(*"DERIVATE" 블록을 채택한 FBD 프로그램 *)

manual_modesensor_value

t#100ms derivated_value

derivateRUN

XIN

CYCLE XOUT

(*등가의 ST언어: DERIVATE1 은 DERIVATE 블록의 Instance *) DERIVATE1(manual_mode, sensor_value, t#100ms);

derivated_value := DERIVATE1.XOUT;

(* 등가의 IL언어: *)

LD manual_mode

ST DERIVATE1.run

LD sensor_value

Page 29: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-25

ST DERIVATE1.XIN

LD t#100ms

ST DERIVATE1.CYCLE

CAL DERIVATE1

LD DERIVATE1.XOUT

ST derivated_value

7.2.35 No.35;HYSTER(2 개의 실수치의 hysteresis 의 bool 형 수치) hyster

XIN1

XIN2

EPS Q

인수:

XIN1 실수형 실수

XIN2 실수형 실수(XIN1 이 XIN2+EPS 를 넘었는지 테스트한다)

EPS 실수형 Hysteresis 수치(>0)

Q Bool 형 XIN1 이 XIN2+EPS 를 넘고, 아직, XIN2-EPS 을 밑돌고 있지 않을 때, TRUE

설명:

실수치의 상한치를 위한 Hysteresis

타임 차트 예:

Q

XIN1

XIN2XIN2+EPS

XIN2-EPS

7.2.36 No.36;INTEGRAL(시간축 상의 적분) integral

RUN

R1

XIN

X0

CYCLE

Q

XOUT

인수:

RUN Bool 형 모드, TRUE=적분 / FALSE=홀드

R1 Bool 형 덮어쓰기 리셋

XIN 실수형 입력치

X0 실수형 초기치

CYCLE 타이머형 샘플링 주기

Q Bool 형 R1 의 반전

XOUT 실수형 적분 결과

설명:

실수치를 적분합니다.

지정한 샘플링 주기마다 입력(XIN)된 수치에, 저번에 샘플하고나서 경과한 시간(ms 단위)을 곱한

것을 저번의 출력에 더해서, XOUT 에서 출력합니다. "CYCLE" 패러미터 수치가 ISaGRAF의 사이클

타임보다도 짧은 경우에는 샘플링 간격은 사이클 타임에 맞추어집니다.

(*"INTEGRAL" 블록을 채택한 FBD 프로그램 *)

Page 30: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-26

manual_mode

sensor_valueinit_valuet#100ms controlled_value

integralRUN

R1

XIN

X0

CYCLE

Q

XOUT

(*등가의 ST언어: INTEGRAL1 은 INTEGRAL 블록의 Instance *) INTEGRAL1(manual_mode, NOT(manual_mode), sensor_value, init_value, t#100ms);

controlled_value := INTEGRAL1.XOUT;

(* 등가의 IL언어: *)

LD manual_mode

ST INTEGRAL1.run

STN INTEGRAL1.R1

LD sensor_value

ST INTEGRAL1.XIN

LD init_value

ST INTEGRAL1.X0

LD t#100ms

ST INTEGRAL1.CYCLE

CAL INTEGRAL1

LD INTEGRAL1.XOUT

ST controlled_value

7.2.37 No.37;LIM_ALRM(hysteresis 를 가진 상하한 알람) lim_alrm

H

X

L

EPS

QH

Q

QL

인수:

H 실수형 상한 설정치

X 실수형 입력치

L 실수형 하한 설정치

EPS 실수형 Hysteresis 수치 ( >0)

QH Bool 형 상한 알람:X 가 상한치 H 를 넘었을 경우 TRUE

Q Bool 형 알람:상하현을 넘었을 경우, TRUE

QL Bool 형 하한 알람:X 가 하한치 L 을 밑돌고 있을 경우, TRUE

설명:

실수치에서 상하한에 대한 Hysteresis。

Hysteresis 가 상한, 하한 리미트에 주어집니다. 상한, 하한에 사용되는 Hysteresis 델타량은 EPS

패러미터의 반정도가 됩니다.

타임 챠트 :

XH - EPS

H

Q

LL + EPS

QL

QH

7.2.38 No.38;BLINK(Blink Bool 형 신호)

Page 31: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-27

blinkRUN

CYCLE Q

인수:

RUN Bool 형 모드, TRUE= Blink / FALSE=출력을 리셋

CYCLE 타이머형 Blink 주기

Q Bool 형 Blink 의 출력신호

설명:

Blink 신호를 생성합니다.

타임 챠트:

RUN

Q

CYCLE

7.2.39 No.39;SIG_GEN(사인 신호 발생기) sig_gen

RUN

PERIOD

MAXIMUM

PULSE

UP

END

SINE

인수:

RUN Bool 형 모드 TRUE=실행 / FALSE=FALSE 로 리셋

PERIOD 타이머형 1샘플의 시간(펄스의 폭)

MAXIMUM 정수형 최대 카운트 수치

PULSE Bool 형 1샘플 시간마다 반전합니다.

UP 정수형 1샘플 시간 마다의 업 카운터

END Bool 형 업 카운터의 종료시, TRUE

SINE 실수형 정현파형신호(파형 반주기는 업 카운트 시간)

설명:

각종 신호를 동시 발생합니다.(Bool 형 구형, 정수형 업 카운터, 실수형 정현파)。

카운터는 최대치에 달하면, 0에서 리스타트 합니다. END 신호는 1PERIOD 분의 시간만큼 TRUE 가 됩니다.

타임 챠트:

RUN

PULSE

PERIOD

UP

MAXIMUM

END

SINE

7.2.40 No.40;CMP(비교 function 블록) CMP

VAL1

VAL2

LT

EQ

GT

Page 32: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-28

인수:

VAL1 정수형 부호 붙인 정수

VAL2 정수형 부호 붙인 정수

LT Bool 형 VAL1 < VAL2 일 때 TRUE

EQ Bool 형 VAL1 = VAL2 일 때 TRUE

GT Bool 형 VAL1 > VAL2 일 때 TRUE

설명:

2개의 정수형의 수치를 비교합니다. 3개의 결과중 하나를 취합니다.(<、=、>)

(*"CMP" 블록을 채택한 FBD 프로그램 *)

levelmax_level

pump_cmd

alarmmanual_mode

CMP

VAL1

VAL2

LT

EQ

GT

>=1

&

(*등가의 ST언어: CMP1 은 CMP 블록의 Instance 명 *)

CMP1(level, max_level);

pump_cmd := CMP1.LT OR CMP1.EQ;

alarm := CMP1.GT AND NOT(manual_mode);

(* 등가의 IL언어: *)

LD level

ST CMP1.val1

LD max_level

ST CMP1.val2

CAL CMP1

LD CMP1.LT

OR CMP1.EQ

ST pump_cmd

LD CMP1.GT

ANDN manual_mode

ST alarm

7.2.41 No.41;STACKINT(정수 Stack) stackint

PUSH

POP

R1

IN

N

EMPTY

OFLO

OUT

인수:

PUSH Bool 형 Push Command:기동검출에 의해, IN 수치를 Stack 의 Top 으로 추가

POP Bool 형 Pop Command :기동검출에 의해, Stack 의 선두(최후에 Push 된 수치)를 삭제

R1 Bool 형 Stack 을 빈 상태로 리셋한다

IN 정수형 Push 할 수치

N 정수형 Stack Size

EMPTY Bool 형 Stack 이 비었을 때 TRUE

OFLO Bool 형 Overflow:Stack 이 꽉 찼을 때 TRUE

OUT 정수형 Stack 의 선두에 있는 수치

설명:

정수형 수치의 Stack を 관리합니다.

STACKINTfunction 블록은, PUSH, POP 두가지 입력에 대해 기동을 검출합니다.

최대의 Stack Size 는 128입니다. Stack Size N은 1에서 128의 사이여야만 합니다.

Page 33: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-29

OFLO수치는 일단 리셋된 다음에만 유효합니다.(다시 말해, R1은 한번은 TRUE로 세트한 다음에 FALSE로

돌려놓을 필요가 있습니다)

(*"STACKINT" 블록을 채택한 FBD 프로그램 : 에러 관리 *)

err_detectacknoledge

manual_modeerr_codemax_err

stackintPUSH

POP

R1

IN

N

EMPTY

OFLO

OUT

auto_mode

err_alarmappli_alarm

last_error

&

(*등가의 ST언어: STACKINT1 은 STACKINT 블록의 Instance *)

STACKINT1(err_detect, acknoledge, manual_mode, err_code, max_err);

appli_alarm := auto_mode AND NOT(STACKINT1.EMPTY);

err_alarm := STACKINT1.OFLO;

last_error := STACKINT1.OUT;

(* 등가의 IL언어: *)

LD err_detect

ST STACKINT1.push

LD acknoledge

ST STACKINT1.pop

LD manual_mode

ST STACKINT1.r1

LD err_code

ST STACKINT1.IN

LD max_err

ST STACKINT1.N

CAL STACKINT1

LD auto_mode

ANDN STACKINT1.empty

ST appli_alarm

LD STACKINT1.OFLO

ST err_alarm

LD STACKINT1.OUT

ST last_error

7.2.42 No.42;CONNECT(리소스에의 접속) 현재, 이용할 수 없습니다.

인수:

EN_C BOOL 접속을 가능하게 한다

PARTNER STRING 리모트의 통신 파트너의 이름

VALID BOOL TRUE 일 경우, 접속 ID 는 유효

ERROR BOOL TRUE 일 경우, 신규의 제로가 아닌 스테이터스를 수신

STATUS DINT 마지막에 검출한 스테이터스

ID DINT 통신 채널의 식별자(ID)

설명:

(현재의 프로젝트 또는 다른 프로젝트의)리모트 또는 로컬의 리소스와의 접속을 시행, USEND_S 블록과

URCV_S 블록에 의한 교환을 관리합니다.

이에 따라, 통신 채널 식별자(ID)가 작성됩니다.

이 식별자는, 다른 모든 통신 function 블록(URCV_S 또는 USEND_S)에서 필요해집니다.

Page 34: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-30

7.2.43 No.43;URCV_S(리소스 메세지 송신) 현재, 이용할 수 없습니다.

인수:

EN_R BOOL 데이타의 수신을 가능하게 한다 ID DINT 통신 채널의 식별자 R_ID STRING 채널내의 리모트 SFB 의 식별자 NDR BOOL TRUE 인 경우에는, 신규 문자열을 RD 에 수신 ERROR BOOL TRUE 인 경우에는, 신규의 제로가 아닌 STATUS 를 수신 STATUS DINT 마지막으로 검출한 스테이터스 RD STRING 수신한 문자열 설명:

현재의 프로젝트 또는 다른 프로젝트의)리모트 또는 로컬의 리소스로부터 문자열을 수신합니다. 주: 현재의 사이클에서, "URCV_S" 가 콜되기 전에 "Connect" 블록을 콜해 둘 필요가 있습니다. 이 function 블록은, 1 개의 USEND_SInstance 로부터 문자열을 수신합니다. 이 때, 전에 수신한 문자열은

덮어쓰기 됩니다. 문자열을 정상적으로 수신하면, NDR 은 1 사이클 간 TRUE 로 설정됩니다. 에러가 발생하면, 출력 패러미터 ERROR 는 TRUE 가 되고, 스테이터스가 STATUS 패러미터에 설정됩니다.

7.2.44 No.44;USEND_S(리소스로부터 메세지 수신) 현재, 이용할 수 없습니다.

인수:

REQ BOOL 기동 edge 에서 요구를 송신 ID DINT 통신 채널의 식별자 R_ID STRING 채널내의 리모트 CFB 의 식별자 SD STRING 송신할 문자열 DONE BOOL TRUE 일 경우에는, 정상 종료 ERROR BOOL TRUE 일 경우에는, 신규의 제로가 아닌 STATUS 를 수신 STATUS DINT 마지막에 검출한 스테이터스 설명: 현재의 프로젝트 또는 다른 프로젝트의)리모트 또는 로컬의 리소스에 문자열을 송신합니다. 주: 현재의 사이클에서, "USEND_S" 가 콜 되기 전에 "Connect" 블록을 콜해 둘 필요가 있습니다. 이 CFB 는, REQ 의 기동 edge 에서 1 개의 URCV_SInstance 에 문자열을 송신합니다. 문자열이

정상적으로 송신되면, DONE 이 설정됩니다. 에러가 발생하면, 출력패러미터 ERROR 는 TRUE 가 되고,

스테이터스가 STATUS 패러미터에 설정됩니다.

Page 35: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-31

7.2.45 No.45;LIMIT(제한치)

인수:

MIN 정수형 최소치설정치

IN 정수형 정수입력치

MAX 정수형 최대치설정치

Q 정수형 입력치를 최대, 최소치의 범위내로 받아들인 것

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

입력치에 상하한을 만듭니다. 입력치가 최대치와 최소치의 중간일 때는 입력치인 그대로. 최대치를

넘었을 때는 최대치로, 최소치를 밑돌때는 최소치가 됩니다.

(*"LIMIT" 블록을 채택한 FBD 프로그램 *)

min_valuevalue

max_value new_value

limitMIN

IN

MAX Q

(*등가의 ST언어:*)

new_value := LIMIT (min_value, value, max_value);

(* 수치를 min_value~max_value 의 범위로 받아들인다 *)

(* 등가의 IL언어: *)

LD min_value

LIMIT value, max_value

ST new_value

7.2.46 No.46;MAX(최대치)

인수:

IN1 정수형 정수치

IN2 정수형 정수치

Q 정수형 2개의 입력의 최대치

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

2개의 정수치의 최대치

(*"MIN" 과 "MAX" 블록을 채택한 FBD 프로그램 *)

Page 36: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-32

max_valuevalue

min_value

minIN1

IN2 Q

maxIN1

IN2 Q new_value

(*등가의 ST언어:*)

new_value := MAX (MIN (max_value, value), min_value);

(* 수치를 min_value~max_value 의 범위로 받아들인다. *)

(* 등가의 IL언어: *)

LD max_value

MIN value

MAX min_value

ST new_value

7.2.47 No.47;MIN(최소치)

인수:

IN1 정수형 정수치

IN2 정수형 정수치

Q 정수형 2개의 입력의 최소치

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

2개의 정수치의 최소치를 줍니다.

(*"MIN" 과 "MAX" 블록을 채택한 FBD 프로그램 *)

max_valuevalue

min_value

minIN1

IN2 Q

maxIN1

IN2 Q new_value

(*등가의 ST언어:*)

new_value := MAX (MIN (max_value, value), min_value);

(* 수치를 min_value~max_value 의 범위로 받아들인다 *)

(* 등가의 IL언어: *)

LD max_value

MIN value

MAX min_value

ST new_value

7.2.48 No.48;MOD(잉여산)

Page 37: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-33

인수:

IN 정수형 입력치

Base 정수형 입력치(0보다 큰 수치)

Q 정수형 잉여산의 계산결과

Base <= 0 일 때, -1

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수치의 잉여를 계산합니다.

(*"MOD" 블록을 채택한 FBD 프로그램 *)

valuedivider division_result

rest_of_division

/IN1

IN2 Q

modIN

Base Q

(*등가의 ST언어:*)

division_result := (value / divider); (* 정수의 나눗셈*)

rest_of_division := MOD (value, divider); (* 나머지*)

(* 등가의 IL언어: *)

LD value

DIV divider

ST division_result

LD value

MOD divider

ST rest_of_division

7.2.49 No.49;MUX4(Multiplexer4)

인수:

SEL 정수형 Select 입력치 [0~3]

IN1..IN4 정수형 입력치

Q 정수형 = SEL = 0 일 때 IN1

= SEL = 1 일 때 IN2

= SEL = 2 일 때 IN3

= SEL = 3 일 때 IN4

= SEL 이 상기 이외일 경우 0

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

4점 입력용 Multiplexer:4개의 정수입력치 중에서 1개를 선택합니다.

(*"MUX4" 블록을 채택한 FBD 프로그램 *)

Page 38: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-34

choice1

10100

1000

mux4SEL

IN1

IN2

IN3

IN4 Q range

(*등가의 ST언어:*)

range := MUX4 (choice, 1, 10, 100, 1000);

(* 4개의 입력으로부터 1개를 선택한다. Choice 이 1 일 때에는 range 는 10 *)

(* 등가의 IL언어: *)

LD choice

MUX4 1,10,100,1000

ST range

7.2.50 No.50;MUX8(Multiplexer 8)

인수:

SEL 정수형 Select 입력치 [0~7]

IN1..IN8 정수형 입력치

Q 정수형 = SEL = 0 일 때 IN1

= SEL = 1 일 때 IN2

= SEL = 2 일 때 IN3

.....

= SEL = 7 일 때 IN8

= SEL 이 상기 이외일 경우 0

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

8점 입력용 Multiplexer:8개의 정수입력치 중에서 1개를 선택합니다.

(*"MUX8" 블록을 채택한 FBD 프로그램 *)

choice15

1050

100500

10005000

mux8SEL

IN1

IN2

IN3

IN4

IN5

IN6

IN7

IN8 Q range

(*등가의 ST언어:*)

Page 39: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-35

range := MUX8 (choice, 1, 5, 10, 50, 100, 500, 1000, 5000);

(* 8개의 입력에서 1개를 선택한다. Choice 가 3 일 때는 range 는 50 *)

(* 등가의 IL언어: *)

LD choice

MUX8 1,5,10,50,100,500,1000,5000

ST range

7.2.51 No.51;ODD(홀수 Parity)

인수:

IN 정수형 정수입력

Q Bool 형 TRUE:입력치가 홀수일 때

FALSE:입력치가 짝수일 때

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

설명:

정수치의 Parity Check:홀수인지 짝수인지를 판단합니다.

(*"ODD" 블록을 채택한 FBD 프로그램 *)

value

1

oddIN Q RETURN

+

value

(*등가의 ST언어:*)

If Not (ODD (value)) Then Return; End_if;

value := value + 1;

(* value 는 항상 짝수*)

(* 등가의 IL언어: *)

LD value

ODD

RETNC

LD value

ADD 1

ST value

7.2.52 No.52;RAND(랜덤 수치)

인수:

base 정수형 랜덤 수치의 최대치

Q 정수형 [0~base-1] 의 랜덤 수치

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수치로 지정한 범위의 랜덤 수치를 줍니다.

Page 40: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-36

(*"RAND" 블록을 채택한 FBD 프로그램 *)

4148

16

randbase Q

mux4SEL

IN1

IN2

IN3

IN4 Q selected

(*등가의 ST언어:*)

selected := MUX4 ( RAND (4), 1, 4, 8, 16 );

(*

발생하는 랜덤 수치에 따라, 4개의 입력으로부터 1개를 임의로 선택한다.

RAND 으로 발생되는 수치는 [0~3]. 결과로써 MUX4 의 'selected' 로는 이하의 출력이 나옵니다.

1: RAND 출력이 0,

4: RAND 출력이 1

8: RAND 출력이 2

16: RAND 출력이 3

*)

(* 등가의 IL언어: *)

LD 4

RAND

MUX4 1,4,8,16

ST selected

7.2.53 No.53;SEL(Binary Selector)

인수:

SEL Bool 형 선택용

IN1, IN2 정수형 정수치

Q 정수형 = IN1: SEL 이 FALSE 일 때

= IN2: SEL 이 TRUE 일 때

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

Binary 선택:2개의 정수치로부터 1개를 선택합니다.

(*"SEL" 블록을 채택한 FBD 프로그램 *)

AutoModeManuCmdInpCmd

selSEL

IN1

IN2 Q ProCmd

(*등가의 ST언어:*)

ProcCmd := SEL (AutoMode, ManuCmd, InpCmd);

(* 처리한다 Command 를 선택 *)

(* 등가의 IL언어: *)

LD AutoMode

SEL ManuCmd,InpCmd

ST ProCmd

7.2.54 No.54;ASCII(문자 → ASCII 코드)

Page 41: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-37

인수:

IN 문자열형 비어있지 않은 문자열

Pos 정수형 변환할 문자의 문자열 안의 위치

[1~ len] (len 은 문자열 IN 의 길이)

Code 정수형 선택한 문자의 ASCII 코드

[0 ~ 255]

Pos 가 문자열 길이를 넘었을 경우, 0

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

문자열 안에서 지정된 문자에 대해 ASCII 코드를 줍니다.

(*"ASCII" 블록을 채택한 FBD 프로그램 *)

message1

asciiIN

Pos Code FirstChr

(*등가의 ST언어:*)

FirstChr := ASCII (message, 1);

(* FirstChr 은 문자열의 1문자째의 ASCII 코드*)

(* 등가의 IL언어: *)

LD message

ASCII 1

ST FirstChr

7.2.55 No.55;CHAR(ASCII 코드 → 문자)

인수:

Code 정수형 ASCII 코드 [0 ~ 255]

Q 문자열형 1문자의 문자열。

문자는 ASCII 코드(Code)에 대응하는 것이 됩니다. ASCII 코드는 256 으로 나눈

나머지를 사용합니다.

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

주어진 ASCII 코드에 대응하는 문자를 줍니다.

(*"CHAR" 블록을 채택한 FBD 프로그램 *)

value48

charCode Q

+

Display

(*등가의 ST언어:*)

Display := CHAR ( value + 48 );

(* value 는 0~9 *)

(* 48 은 ’0’의 ASCII 코드*)

Page 42: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-38

(* 결과는 '0' ~ '9'의 문자가 됩니다 *)

(* 등가의 IL언어: *)

LD value

ADD 48

CHAR

ST Display

7.2.56 No.56;ROL(좌순환)

인수:

IN 정수형 정수치

NbR 정수형 회전시키는 비트수 [1~31]

Q 정수형 좌회전한 결과

nb_rotation <= 0 일 때, 변화없음

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수치의 비트 좌회전. 회전은 32비트로 시행됩니다.

31 0

(*"ROL" 블록을 채택한 FBD 프로그램 *)

register1 result

rolIN

NbR Q

(*등가의 ST언어:*)

result := ROL (register, 1);

(* register = 2#0100_1101_0011_0101*)

(* result = 2#1001_1010_0110_1010*)

(* 등가의 IL언어: *)

LD register

ROL 1

ST result

7.2.57 No.57;ROR(우순환)

인수:

IN 정수형 정수치

NbR 정수형 회전시키는 비트수 [1~31]

Q 정수형 회전한 결과

Page 43: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-39

nb_rotation <= 0 일 때, 변화 없음

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수치의 비트우회전. 회전은 32비트로 시행됩니다.

31 0

(*"ROR" 블록을 채택한 FBD 프로그램 *)

register1 result

rorIN

NbR Q

(*등가의 ST언어:*)

result := ROR (register, 1);

(* register = 2#0100_1101_0011_0101 *)

(* result = 2#1010_0110_1001_1010 *)

(* 등가의 IL언어: *)

LD register

ROR 1

ST result

7.2.58 No.58;SHL(좌 시프트)

인수:

IN 정수형 정수치

NbS 정수형 비트 시프트수 [1~31]

Q 정수형 좌 시프트한 결과

nb_shift <= 0 일 때, 변화없음.

최하위 비트에는 0 이 삽입됩니다.

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수치의 비트 표현으로 좌 시프트를 시행합니다. 32비트 단위에서 시행합니다.

0

(*"SHL" 블록을 채택한 FBD 프로그램 *)

register1 result

shlIN

NbS Q

(*등가의 ST언어:*)

result := SHL (register,1);

(* register = 2#0100_1101_0011_0101 *)

(* result = 2#1001_1010_0110_1010 *)

(* 등가의 IL언어: *)

Page 44: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-40

LD register

SHL 1

ST result

7.2.59 No.59;SHR(우 시프트)

인수:

IN 정수형 정수치

NbS 정수형 비트 시프트 수치 [1~31]

Q 정수형 좌 시프트한 결과

nb_shift <= 0 일 때, 변화 없음.

최상위 비트는 변화하지 않습니다.

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록의 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수치의 비트 표현으로 좌 시프트를 시행합니다. 32비트단위로 시행합니다.

031

(*"SHR" 블록을 채택한 FBD 프로그램 *)

register1 result

shrIN

NbS Q

(*등가의 ST언어:*)

result := SHR (register,1);

(* register = 2#1100_1101_0011_0101 *)

(* result = 2#1110_0110_1001_1010 *)

(* 등가의 IL언어: *)

LD register

SHR 1

ST result

7.2.60 No.60;ACOS(아크 코사인)

인수:

IN 실수형 -1.0 ~ +1.0 이어야만 합니다.

Q 실수형 입력치의 아크 코사인[0.0~π]

= 0.0 :부정한 입력치일 때

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수치의 아크 코사인을 계산합니다.

Page 45: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-41

(*"COS" 과 "ACOS"블록을 채택한 FBD 프로그램 *)

anglecos

IN Q cosine

acosIN Q result

(*등가의 ST언어:*)

cosine := COS (angle);

result := ACOS (cosine); (* result 는 angle 과 같다 *)

(* 등가의 IL언어: *)

LD angle

COS

ST cosine

ACOS

ST result

7.2.61 No.61;ASIN(아크 사인)

인수:

IN 실수형 -1.0 ~ +1.0 이어야만 합니다

Q 실수형 입력치의 아크 코사인 [-π/2~+π/2]

= 0.0 :부정한 입력치일 때

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수치의 아크 사인을 계산합니다.

(*"SIN" 과 "ASIN" 블록을 채택한 FBD 프로그램 *)

anglesin

IN Q sine

asinIN Q result

(*등가의 ST언어:*)

sine := SIN (angle);

result := ASIN (sine); (* result 는 angle 과 같다 *)

(* 등가의 IL언어: *)

LD angle

SIN

ST sine

ASIN

ST result

7.2.62 No.62;ATAN(아크 탄젠트)

인수:

IN 실수형 실수치

Page 46: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-42

Q 실수형 입력치의 아크 탄젠트[-π/2~+π/2]

= 0.0:부정한 입력치일 때

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수치의 아크 탄젠트를 계산합니다.

(*"TAN" 와 "ATAN" 블록을 채택한 FBD 프로그램 *)

angletan

IN Q tangent

atanIN Q result

(*등가의 ST언어:*)

tangent := TAN (angle);

result := ATAN (tangent); (* result 는 angle 과 같다 *)

(* 등가의 IL언어: *)

LD angle

TAN

ST tangent

ATAN

ST result

7.2.63 No.63;COS(코사인)

인수:

IN 실수형 실수치

Q 실수형 입력치의 코사인[-1.0 ~ +1.0]

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수치의 코사인을 계산합니다.

(*"COS" 과 "ACOS" 블록을 채택한 FBD 프로그램 *)

anglecos

IN Q cosine

acosIN Q result

(*등가의 ST언어:*)

cosine := COS (angle);

result := ACOS (cosine); (* result 는 angle 과 같다 *)

(* 등가의 IL언어: *)

LD angle

COS

ST cosine

ACOS

ST result

Page 47: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-43

7.2.64 No.64;SIN(사인)

인수:

IN 실수형 실수치

Q 실수형 입력치의 사인[-1.0 ~ +1.0]

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.。

설명:

실수치의 사인을 계산힙니다.

(*"SIN" 과 "ASIN" 블록을 채택한 FBD 프로그램 *)

anglesin

IN Q sine

asinIN Q result

(*등가의 ST언어:*)

sine := SIN (angle);

result := ASIN (sine); (* result 는 angle 과 같다 *)

(* 등가의 IL언어: *)

LD angle

SIN

ST sine

ASIN

ST result

7.2.65 No.65;TAN(탄젠트)

인수:

IN 실수형 π로 나눈 나머지가 π/2 이 되에서는 안됩니다.

Q 실수형 입력치의 탄젠트。

부정한 입력에 대해서는, 1E+38。

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수치의 탄젠트를 계산합니다.

(*"TAN" 와 "ATAN" 블록을 채택한 FBD 프로그램 *)

angletan

IN Q tangent

atanIN Q result

(*등가의 ST언어:*)

tangent := TAN (angle);

result := ATAN (tangent); (* result 는 angle 과 같다 *)

Page 48: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-44

(* 등가의 IL언어: *)

LD angle

TAN

ST tangent

ATAN

ST result

7.2.66 No.66;ABS(절대치)

인수:

IN 실수형 실수치입력

Q 실수형 절대치(항상 0 이상이 됩니다)

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수의 절대치를 줍니다.

(*"ABS"블록을 채택한 FBD 프로그램 *)

deltarange over

absIN Q

>IN1

IN2 Q

(* 등가의 ST언어: *)

over := (ABS (delta) > range);

(* 등가의 IL언어: *)

LD delta

ABS

GT range

ST over

7.2.67 No.67;EXPT(지수)

인수:

IN 실수형 부호 있는 실수

EXP 정수형 정수(지수부)

Q 실수형 (IN EXP)

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.。

설명:

(base exponent)의 연산 결과를 실수로 줍니다. 'base' 가 최초의 인수, 'exponent' 가 2번째의 인수로

정수입니다.です。

(*"EXPT" 블록의 예*)

Page 49: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-45

2.0range

exptIN

EXP Q tb_sizeAna

IN Q

(*등가의 ST언어:*)

tb_size := ANA (EXPT (2.0, range) );

(* 등가의 IL언어: *)

LD 2.0

EXPT range

ANA

ST tb_size

7.2.68 No.68;LOG(상용대수)

인수:

IN 실수형 0보다 큰 실수치

Q 실수형 입력치의 상용대수(10 을 한계로 합니다)

EN 입력이 TRUE 일 경우에만 실행됩니다, 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수입력의 상용대수를 줍니다.

(*"LOG" 블록을 채택한 FBD 프로그램 *)

xval xpos

xlog

absIN Q

logIN Q

(*등가의 ST언어:*)

xpos := ABS (xval);

xlog := LOG (xpos);

(* 등가의 IL언어: *)

LD xval

ABS

ST xpos

LOG

ST xlog

7.2.69 No.69;POW(누승계산)

인수:

IN 실수형 실수치(비연산수)

EXP 실수형 실수치(누승수)

Q 실수형 (IN EXP)

1.0 : IN<> 0.0、 EXP= 0.0 인 경우

Page 50: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-46

0.0 : IN= 0.0 、 EXP < 0.0 の경우

0.0 : IN =0.0 、 EXP = 0.0 の경우

0.0 : IN < 0 の경우

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수의 누승(base exponent) 을 줍니다. 'base' 가 최초의 인수, 'exponent' 가 2번째의 인수로

실수입니다.

(*"POW" 블록 채택한 FBD 프로그램 *)

xvalpower result

powIN

EXP Q

(*등가의 ST언어:*)

result := POW (xval, power);

(* 등가의 IL언어: *)

LD xval

POW power

ST result

7.2.70 No.70;SQRT(평방근)

인수:

IN 실수형 실수치(>= 0)

Q 실수형 입력치의 평방근

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

실수치의 평방근을 계산합니다.

(*"SQRT"블록을 채택한 FBD 프로그램*)

xval xpos

xroot

absIN Q

sqrtIN Q

(*등가의 ST언어:*)

xpos := ABS (xval);

xroot := SQRT (xpos);

(* 등가의 IL언어: *)

LD xval

ABS

ST xpos

SQRT

ST xrout

7.2.71 No.71;TRUNC(소수부분 잘라버림)

Page 51: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-47

인수:

IN 실수형 실수치

Q 실수형 IN>0, 입력치 이하의 최대 정수치

IN<0, 입력치 이상의 최소 정수치

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력 같은 상태입니다. BOOL 형변수을 접속해 주십시오.

설명:

실수치의 정수부분을 줍니다.

(*"TRUNC" 블록을 채택한 FBD 프로그램 *)

2.67

-2.0891

truncIN Q

truncIN Q

+

result

(*등가의 ST언어:*)

result := TRUNC (+2.67) + TRUNC (-2.0891);

(* 의미 : result := 2.0 + (-2.0) := 0.0; *)

(* 등가의 IL언어: *)

LD 2.67

TRUNC

ST temporary (* 1개째의 TRUNC 결과 *)

LD -2.0891

TRUNC

ADD temporary

ST result

7.2.72 No.72;DELETE(문자열의 삭제)

인수:

IN 문자열형 비어있지 않은 문자열

NbC 정수형 문자열로부터 삭제한 문자수

Pos 정수형 삭제할 최초의 문자열 위치

(문자열의 선두 위치는 1)

Q 문자열형 지정 문자열이 삭제된 결과인 문자열

Pos < 1 일 때, 빈 문자열

Pos > IN 이 문자열일 때, 최초의 문자

NbC <= 0 일 때, 최초의 문자

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

문자열 일부분을 삭제합니다.

Page 52: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-48

(*"DELETE" 블록을 채택한 FBD 프로그램*)

'ABCD''EFGH'

CAT

deleteIN

NbC

Pos Q

complete_string

sub_string43

(*등가의 ST언어:*)

complete_string := 'ABCD' + 'EFGH'; (* complete_string は 'ABCDEFGH' *)

sub_string := DELETE (complete_string, 4, 3); (* sub_string は 'ABGH' *)

(* 등가의 IL언어: *)

LD 'ABCD'

ADD 'EFGH'

ST complete_string

DELETE 4,3

ST sub_string

7.2.73 No.73;FIND(문자열 검색)

인수:

In 문자열형 입력문자열

Pat 문자열형 검색할 문자열 패턴. 비어있지 않은 것.

Pos 정수형 = 0:문자열 패턴이 발견되지 않을 때

= 검색할 문자열이 최초로 발견된 위치

(1문자째라면 1)

대문자・소문자를 구별합니다.

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

문자열 중에서 지정한 문자열을 검색해서, 발견되었을 경우 그 장소로 되돌립니다.

(*"FIND"블록을 채택한 FBD 프로그램 *)

'ABCD''EFGH'

CAT

findIn

Pat Pos

complete_string

'CDEF' found

(*등가의 ST언어:*)

complete_string := 'ABCD' + 'EFGH'; (* complete_string は 'ABCDEFGH' *)

found := FIND (complete_string, 'CDEF'); (* found は 3 *)

(* 등가의 IL언어: *)

LD 'ABCD'

ADD 'EFGH'

ST complete_string

FIND 'CDEF'

ST found

7.2.74 No.74;INSERT(문자열의 삽입)

Page 53: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-49

인수:

IN 문자열형 원래의 문자열

Str 문자열형 삽입할 문자열

Pos 정수형 삽입 위치. 삽입 문자열은 번호 앞이 됩니다. 문자열의 선두는 1 입니다.

Q 문자열형 삽입한 결과의 문자열

Pos <= 0 일 때, 빈 문자열

Pos 가 문자열 IN 의 길이를 넘었을 때, 2개의 문자열이 연속한 것이 됩니다.

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력は、항상に블록の최초의の입력と같은상태です。BOOL 형변수を접속して下さい。

설명:

문자열을 지정한 위치에 다른 문자열을 삽입합니다.

(*"INSERT" 블록을 채택한 FBD 프로그램 *)

'Mr JONES''Frank'

4

insertIN

Str

Pos Q MyName

(*등가의 ST언어:*)

MyName := INSERT ('Mr JONES', 'Frank ', 4);

(* MyName :'Mr Frank JONES' *)

(* 등가의 IL언어: *)

LD 'Mr JONES'

INSERT 'Frank',4

ST MyName

7.2.75 No.75;LEFT(문자열의 왼쪽부분 취득)

인수:

IN 문자열형 비어있지 않은 문자열

NbC 정수형 빼낼 문자수

( 문자열 IN 의 길이 이하인 것)

Q 문자열형 문자열 IN 의 좌측 문자열(문자열 길이는 NbC)

NbC <= 0 일 때, 빈 문자열。

NbC >= IN 의 길이일 때, 문자열 IN 전체.

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

원래 문자열의 좌측에서 지정된 문자수만큼 빼냅니다.

(*"LEFT" 와 "RIGHT" 블록을 채택한 FBD 프로그램 *)

Page 54: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-50

'12345678'4

rightIN

NbC Q

leftIN

NbC Q

CAT

complete_string

(*등가의 ST언어:*)

complete_string := RIGHT ('12345678', 4) + LEFT ('12345678', 4);

(* complete_string : '56781234'

RIGHT 에서 빼내엊어지는 문자열은 '5678'

LEFT 에서 빼내어지는 문자열은 '1234'

*)

(* 등가의 IL언어: 먼저 LEFT 를 콜 합니다. *)

LD '12345678'

LEFT 4

ST sub_string (* 중간결과 *)

LD '12345678'

RIGHT 4

ADD sub_string

ST complete_string

7.2.76 No.76;MID(문자열의 중간부분 취득)

인수:

IN 문자열형 비어있지 않은 문자열

NbC 정수형 빼낼 문자수

( 문자열 IN 의 길이 이하인 것)

Pos 정수형 빼낼 위치

(선두는 1)

Q 문자열형 빼낸 문자열 (문자열 길이는 NbC)。

지정한 인수가 부정일 때, 빈 문자열。

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

지정한 위치에서 지정한 길이의 문자열을 빼냅니다.

(*"MID" 블록을 채택한 FBD 프로그램 *)

'abcdefgh'24

midIN

NbC

Pos Q sub_string

(*등가의 ST언어:*)

sub_string := MID ('abcdefgh', 2, 4);

(* sub_string : 'de' *)

(*등가의 IL언어: *)

LD 'abcdefgh'

MID 2,4

Page 55: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-51

ST sub_string

7.2.77 No.77;MLEN(문자열장의 취득)

인수:

IN 문자열형 문자열

NbC 정수형 문자열 IN 의 문자열길이

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

문자열의 문자열길이를 계산합니다.

(*"MLEN" 블록을 채택한 FBD 프로그램*)

complete_stringmlen

IN NbC nbchar

<IN1

IN2 Q3

leftIN

NbC Q

RETURN

prefix

(*등가의 ST언어:*)

nbchar := MLEN (complete_string);

If (nbchar < 3) Then Return; End_if;

prefix := LEFT (complete_string, 3);

(* 이 프로그램은 문자열로부터 좌측 3문자를 추출해서, prefix 문자열에 넣습니다. 만약,

문자열길이가 3미만일 때에는 아무 것도 하지 않습니다. *)

(*등가의 IL언어: *)

LD complete_string

MLEN

ST nbchar

LT 3

RETC

LD complete_string

LEFT 3

ST prefix

7.2.78 No.78;REPLACE(문자열 치환)

인수:

IN 문자열형 원래 문자열

Page 56: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-52

Str 문자열형 삽입할 문자열 (NbC 문자 분을 치환한다)

NbC 정수형 삭제될 문자수

Pos 정수형 치환할 최초의 문자 위치

(선두 위치는 1)

Q 문자열형 치환한 결과인 문자열

- 먼저, NbC 문자분이 Pos 의 장소로부터 삭제됩니다.

- 다음으로, 문자열 Str 가 이 장소에 삽입됩니다.

Pos <= 0 일 때, 빈 문자열이 됩니다.

Pos >문자열 IN 의 길이일 때, 2개의 문자열의 결합(IN + Str)한 것이 됩니다.

NbC <= 0 일 때, 원래의 문자열이 됩니다.

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

문자열의 일부분을 다른 문자열로 치환합니다.

(*"REPLACE" 블록을 채택한 FBD 프로그램 *)

'Mr X JONES''Frank'

1

replaceIN

Str

NbC

Pos Q MyName4

(*등가의 ST언어:*)

MyName := REPLACE ('Mr X JONES, 'Frank', 1, 4);

(* MyName 는 'Mr Frank JONES' 이 됩니다 *)

(*등가의 IL언어: *)

LD 'Mr X JONES'

REPLACE 'Frank',1,4

ST MyName

7.2.79 No.79;RIGHT(문자열의 오른쪽부분 취득)

인수:

IN 문자열형 비어있지 않은 문자열

NbC 정수형 빼낼 문자수(문자열 IN 의 길이 이하)

Q 문자열형 문자열 IN 의 우측 문자열(문자열 길이는 NbC)

NbC <= 0 일 때, 빈 문자열。

NbC >=문자열 IN 의 길이일 때, IN 전체.

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

문자열의 우측에서 지정된 문자수 만큼 뽑아 냅니다.

(*"LEFT" 와 "RIGHT" 블록을 채택한 FBD 프로그램 *)

'12345678'4

rightIN

NbC Q

leftIN

NbC Q

CAT

complete_string

Page 57: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-53

(*등가의 ST언어:*)

complete_string := RIGHT ('12345678', 4) + LEFT ('12345678', 4);

(* complete_string は '56781234'

RIGHT 에서 추출된 문자열 '5678'

LEFT 에서 추출된 문자열 '1234'

*)

(*등가의 IL언어: First done is call to LEFT *)

LD '12345678'

LEFT 4

ST sub_string (* 중간결과*)

LD '12345678'

RIGHT 4

ADD sub_string

ST complete_string

7.2.80 No.80;AND_MASK(정수 비트 마다 AND 마스크)

인수:

IN 정수형

MSK 정수형

Q 정수형 IN 과 MSK 의 비트마다의 논리적

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수형 변수의 논리적으로, IN 의 각 비트와 MSK 각 비트와의 논리적

(* AND_MASK 블록을 채택한 FBD 예 *)

xvalue1

and_maskIN

MSK Q parity

and_maskIN

MSK Q

16#abc16#f0f result

(* 등가의 ST언어: *)

parity := AND_MASK (xvalue, 1); (* xvalue 가 홀수라면 1 이 된다 *)

result := AND_MASK (16#abc, 16#f0f); (* 16#a0c 가 된다*)

(* 등가의 IL언어: *)

LD xvalue

AND_MASK 1

ST parity

LD 16#abc

AND_MASK 16#f0f

ST result

7.2.81 No.81;NOT_MASK(정수비트마다 부정)

Page 58: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-54

인수:

IN 정수형

Q 정수형 32비트 표현의 IN 의 각 비트의 반전

EN 입력이 TRUE 인 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수형 변수의 각 비트의 반전

(*NOT_MASK 블록을 채택한 FBD 예 *)

16#1234not_maskIN Q result

(* 등가의 ST언어: *)

result := NOT_MASK (16#1234);

(* result は 16#FFFF_EDCB *)

(* 등가의 IL언어: *)

LD 16#1234

NOT_MASK

ST result

7.2.82 No.82;OR_MASK(정수비트마다 OR 마스크)

인수:

IN 정수형

MSK 정수형

Q 정수형 IN 과 MSK 의 비트마다의 논리화

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수형 변수의 논리화로 IN 의 각 비트와 MSK 의 각 비트와의 논리화

(* OR_MASK 블록을 채택한 FBD 예*)

xvalue1

or_maskIN

MSK Q parity

or_maskIN

MSK Q

16#abc16#f0f result

(* 등가의 ST언어: *)

is_odd := OR_MASK (xvalue, 1); (* 반드시 홀수가 된다*)

result := OR_MASK (16#abc, 16#f0f); (* 16#fbf 이 된다 *)

(* 등가의 IL언어: *)

LD xvalue

OR_MASK 1

Page 59: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-55

ST is_odd

LD 16#abc

OR_MASK 16#f0f

ST result

7.2.83 No.83;XOR_MASK(정수비트마다 XOR 마스크)

인수:

IN 정수형

MSK 정수형

Q 정수형 IN 과 MSK 의 비트마다의 배타적 논리화

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

정수형 변수의 배타적 논리화로, IN 의 각 비트와 MSK 의 각 비트와의 배타적 논리화

(*XOR_MASK 블록을 채택한 FBD 예 *)

prevcrcnextc

xor_maskIN

MSK Q crc32

16#01216#011

xor_maskIN

MSK Q result

(* 등가의 ST언어: *)

crc32 := XOR_MASK (prevcrc, nextc);

result := XOR_MASK (16#012, 16#011); (* 16#003 이 된다 *)

(* 등가의 IL언어: *)

LD prevcrc

XOR_MASK nextc

ST crc32

LD 16#012

XOR_MASK 16#011

ST result

7.2.84 No.84;MOV8(BOOL 데이타를 전송 8) AX제어장치 단독의 명령입니다.

인수:

INB Bool 형

OUTBBool 형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

Page 60: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-56

INB 을 선두로 한 연속한 8 개의 Bool ・ ・ 의 수치를, OUTB 를 선두로 하는 8 개의 Bool ・ ・ 에 대입한다.

7.2.85 No.85;MOV16(BOOL 데이타를 전송 16) AX제어장치 단독의 명령입니다.

인수:

INB Bool 형

OUTBBool 형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

INB 를 선두로 하는 연속한 16 의 Bool ・ ・ 의 수치를, OUTB 를 선두로 하는 16 의 Bool ・ ・ 에 대입한다.

7.2.86 No.86;MOV32(BOOL 데이타를 전송 32) AX제어장치 단독명령입니다.

인수:

INB Bool 형

OUTBBool 형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

INB 을 선두로 하는 연속한 32 의 Bool ・ ・ 의 수치를, OUTB 를 선두로 하는 32 의 Bool ・ ・ 에 대입한다.

7.2.87 No.87;BTOD8(BOOL 데이타를 정수변수에 전송 8) AX제어장치 단독의 명령입니다.

인수:

INB Bool 형

OUTD 정수형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔 마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

INB 를 선두로 하는 연속한 8 개의 Bool ・ ・ 의 수치를, OUTD 에서 나타내어진・ ・ ・ ・ 로, INB 를

LSB 로써 대입한다

7.2.88 No.88;BTOD16(BOOL 데이타를 정수변수에 전송 16) AX제어장치 단독명령입니다.

Page 61: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-57

인수:

INB Bool 형

OUTD 정수형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

INB 를 선두로써 연속한 16 개의 Bool ・ ・ 의 수치를, OUTD 로 나타내어진・ ・ ・ ・ 로, INB 를 LSB 로써

대입한다.

7.2.89 No.89;BTOD32(BOOL 데이타를 정수변수에 전송 32) AX제어장치 단독명령입니다.

인수:

INB Bool 형

OUTD 정수형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

INB 을 선두로 하는 연속한 8 개의 Bool ・ ・ 의 수치를, OUTD 으로 나타내어진・ ・ ・ ・ 로, INB 을

LSB 로써 대입한다.

7.2.90 No.90;DTOB8(정수변수를 BOOL 에 8) AX제어장치 단독명령입니다.

인수:

IND 정수형

OUTB Bool 형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

IND 로 나타내어진 ・ ・ 의 하위 8bit 의 수치를, OUTB 을 선두로 한 8 개의 Bool ・ ・ 로, OUTB 을

LSB 로써 대입한다.

7.2.91 No.91;DTOB16(정수변수를 BOOL 에 16) AX제어장치 단독명령입니다.

인수:

Page 62: 7 명령어 일람 7.2 응용명령(LD블록) 7-4 7.2.2 No.2;+(덧셈) 주의: 이 명령의 입력수는 3개 이상으로 변경 가능합니다,. 인수: 입력i* 정수・실수형

7.2 응용명령(LD블록)

7-58

IND 정수형

OUTBBool 형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형 변수를 접속해 주십시오.

설명:

IND 로 나타내어진 ・ ・ 의 하위 16bit 의 수치를, OUTB 을 선두로 하는 16 의 Bool ・ ・ 로, OUTB 을

LSB 로써 대입한다.

7.2.92 No.92;DTOB32(정수변수를 BOOL 에 32) AX제어장치 단독의 명령입니다.

인수:

IND 정수형

OUTBBool 형

EN 입력이 TRUE 일 경우에만 실행됩니다. 스캔마다 실행할 경우에는 모선직결이라도 상관없습니다.

ENO 출력은, 항상 블록 최초의 입력과 같은 상태입니다. BOOL 형변수를 접속해 주십시오.

설명:

IND 으로 나타내어진 ・ ・ 의 수치를, OUTB 을 선두로 하는 32 의 Bool ・ ・ 로, OUTB 을 LSB 로써

대입한다.