Microsoft Word - ③GLOFA-GM - 목차수정다시

Similar documents
Microsoft Word - PLC제어응용-2차시.doc

歯표지_통합_.PDF

untitled

歯표지.PDF

OCW_C언어 기초

목차 제 1 장개요 제 2 장소프트웨어구조 제 3 장공통요소 I

Microsoft PowerPoint - chap04-연산자.pptx

BY-FDP-4-70.hwp

온습도 판넬미터(JTH-05) 사양서V1.0

KMC.xlsm

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

ADP-2480

<4D F736F F F696E74202D2032C0E55FC6AEB7B9C0CCB4D720C5B0C6AEB1B8BCBAC7B05F446F6E652E707074>

Microsoft Word - [00] 표지 앞_XGF-AC8A,AV8A_.doc

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

PowerPoint 프레젠테이션

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - ch07 - 포인터 pm0415

tiawPlot ac 사용방법

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

Microsoft PowerPoint - chap03-변수와데이터형.pptx

입출력 2,048(GM4A/B), 3,584(GM4C) 점의중 소규모제어 명령어처리시간의고속화 (0.12~0.2μs /step) 중 소규모의제조라인네트워크구성가능 리모트시스템구성시 2,048(GM4), 8,192(GM4B), 32,000(GM4C) 점의대규모제어가능 3

실험 5

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft Word - logic2005.doc

chap 5: Trees

API 매뉴얼

IRISCard Anywhere 5

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

API 매뉴얼

BS-K1217-M□□-3012_ProductGuide_KR_PDF

Install stm32cubemx and st-link utility

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

쓰리 핸드(삼침) 요일 및 2405 요일 시간, 및 요일 설정 1. 용두를 2의 위치로 당기고 반시계방향으로 돌려 전날로 를 설정합니다. 2. 용두를 시계방향으로 돌려 전날로 요일을 설정합니다. 3. 용두를 3의 위치로 당기고 오늘 와 요일이 표시될 때까지 시계방향으로

슬라이드 1

ISP and CodeVisionAVR C Compiler.hwp

슬라이드 제목 없음

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

제 2 장 기본 사용법

Microsoft PowerPoint - chap06-1Array.ppt

ATmega128

untitled

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

슬라이드 1

슬라이드 1

Microsoft PowerPoint - e pptx

실험 5

강의 개요

03_원격제어반_IDAC-2W

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft Word - Armjtag_문서1.doc

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

슬라이드 1

<B9CCC2EABAF1BDC351BDC3B8AEC1EE504C435FC3E6B3B2C0CEB7C2B0B3B9DFBFF82E687770>

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

스마트주택용분전반_160331

1

금오공대 컴퓨터공학전공 강의자료

Visual Basic 반복문

PowerPoint Template

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Contents 01. 안전을 위한 주의 사항 터치형 멀티 조절기 각부 명칭 터치형 각방 조절기 각부 명칭 조절기 난방/정지 하기 조절기 외출 /해제하기 조절기 반복난방 하기 조절기 예약난방 /

Studuino소프트웨어 설치

C# Programming Guide - Types

설계란 무엇인가?

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

Tcl의 문법

Microsoft Word - [00]표지 앞.doc

LM 가이드

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>


Windows 8에서 BioStar 1 설치하기

(b) 연산증폭기슬루율측정회로 (c) 연산증폭기공통모드제거비측정회로 그림 1.1. 연산증폭기성능파라미터측정회로

메뉴얼41페이지-2

11장 포인터

RVC Robot Vaccum Cleaner

SBR-100S User Manual

½½¶óÀ̵å Á¦¸ñ ¾øÀ½

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

설계란 무엇인가?

Microsoft PowerPoint - [2009] 02.pptx

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

디지털TV솔루션 브로셔

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

Microsoft PowerPoint - hw8.ppt [호환 모드]

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

vRealize Automation용 VMware Remote Console - VMware

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

윈도우시스템프로그래밍

Office 365 사용자 가이드

View Licenses and Services (customer)

Transcription:

목 차 모듈 Ⅰ. GLOFA-GM 프로그래밍 제1 장데이터형식및표현 1-1 제2 장표준라이브러리및프로그래밍 2-1 제3 장응용라이브러리의활용 3-1 제4 장사용자정의라이브러리작성 4-1 제5 장 SFC 프로그램작성 5-1 모듈 Ⅱ. 아날로그입력 (AD) 제1장성능규격및변환특성 1-1 제2장 GLOFA-GM 프로그래밍 2-1 제3장프로그램예제 (GLOFA-GM용) 3-1 모듈 Ⅲ. 아날로그출력 (DA) 제1장성능규격및변환특성 1-1 제2장입출력변환특성 2-1 제3장 GLOFA-GM 프로그래밍 3-1 제4장프로그램예제 (GLOFA-GM용) 4-1 부 록 부록A. 플래그일람표 1-1 부록B. GLOFA-GM 명령어집 1-1 부록C. 태스크프로그램 1-1

모듈 Ⅰ. GLOFA-GM 프로그래밍 제1장. 데이터형식및표현제2장. 표준라이브러리및프로그래밍제3장. 응용라이브러리의활용제4장. 사용자정의라이브러리작성제5장. SFC 프로그램작성

제 1 장데이터형식및표현 데이터형식형식표현범위크기 Boolan 0 ~ 1 (On/Off) 1bit Byte BYTE BIN 16#0~16#FF BCD 16#0~16#99 8bit Word WORD BIN 16#0~16#FFFF BCD 16#0~16#9999 16bit Double Word DWORD BIN 16#0~16#FFFFFFFF BCD 16#0~16#99999999 32bit Long Word LWORD BIN 16#0~16#FFFFFFFFFFFFFFFF BCD 16#0~16#999999999999999999 64bit Short Integer SINT -128 ~ 127 8bit Integer INT -32768 ~ 32767 16bit Double Integer DINT -214783648 ~ 214783647 32bit Long Integer LINT -4.611686018427e+18 ~ 4.611686018427e+18 64bit Unsigned Short Integer USINT 0 ~ 255 8bit Unsigned Integer UINT 0 ~ 65535 16bit Unsigned Double Integer UDINT 0 ~ 4294836225 32bit Unsigned Long Integer ULINT 0 ~ 1.844674406512e+19 64bit 각비트위치에있어서비트열의표현은다음과같습니다. 예1) Word 영역의경우 BCD 비트열표현 10 3 10 2 10 1 10 0 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 6 7 8 9 예2) Word 영역의경우 BIN 비트열표현 16 3 16 2 16 1 16 0 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 A B C D 제 1 장데이터형식및표현 1-1 LS 산전연수원

제 2 장표준라이브러리및프로그래밍 2.1 표준펑션및펑션블록 표준펑션에는전송펑션, 변환펑션, 비교펑션, 산술연산펑션, 논리연산펑션, 비트시프트펑션, 선택펑션, 문자열펑션, 날짜시각펑션, 시스템제어펑션등이있고표준펑션블록에는카운터, 타이머, 에지검출, 바이스터블펑션블록등이있습니다. 시퀀스연산자 구분명령어기호기능설명비고 시퀀스연산자 A 접점 B 접점상승검출접점하강검출접점출력코일반전코일출력 Set 출력 Reset 상승검출출력하강검출출력점프 A 접점연산 B접점연산상승에지에서 1Scan On접점하강에지에서 1Scan On접점연산결과출력연산결과반전출력연산결과세트출력연산결과리셋출력상승에지에서 1Scan On출력하강에지에서 1Scan On출력레이블위치로점프 프로그램종료 현재프로그램종료 제 2 장표준라이브러리및프로그래밍 2-1 LS 산전연수원

펑션일람 구분명령어기호기능설명비고 전 송 데이터전송 MOVE IN1 : 전송원 ( 모든형식 ) 펑 OUT : 전송선 ( 모든형식 ) 션 데이터형식변환펑션 IN1 : 전송원 OUT : 전송선변환명령펑션의종류 SINT_TO_INT 외 14종 INT_TO_SINT 외 14종 DINT_TO_SINT 외 14종 LINT_TO_SINT 외 14종 변 환 USINT_TO_SINT 외 14종 UINT_TO_SINT 외 14종 UDINT_TO_SINT 외 14종 ULINT_TO_SINT 외 14종 LINT ULINT LWORD REAL ****_TO_**** BYTE_TO_SINT 외 14 종 LREAL 펑 션 WORD_TO_SINT 외 14종 DWORD_TO_SINT 외 14종 LWORD_TO_SINT 외 14종 BCD_TO_SINT 외 7종 REAL_TO_SINT 외 7종 LREAL_TO_SINT 외 7종 STRING_TO_SINT 외18 종 NUM_TO_STRING TIME_TO_UDINT 외 2종 DATE_TO_UINT 외 2종 TOD_TO_UDINT 외 2종 DT_TO_DATE 외 2종 관련펑션은 GM1 과 GM2 만가능 제 2 장표준라이브러리및프로그래밍 2-2 LS 산전연수원

구분명령어기호기능설명비고 변 실수를정수로변환 환펑 TRUNC IN1 : 전송원 (REAL, LREAL) OUT : 전송선 (DINT, LINT) GM1, GM2 전용 션 덧셈펑션 IN1 ~ IN8 : 더할값 (Any_INT) ADD OUT : 결과값 (Any_INT) 뺄셈펑션 IN1 : 연산원 (Any_INT) SUB IN2 : 뺄값 (Any_INT) OUT : 결과값 (Any_INT) 수 치 MUL 곱셈펑션 IN1 ~ IN8 : 곱할값 (Any_INT) OUT : 결과값 (Any_INT) 연 산 나눗셈 ( 몫 ) IN1 : 연산원 (Any_INT) 펑 DIV IN2 : 나눌값 (Any_INT) 션 OUT : 몫 (Any_INT) 나눗셈 ( 나머지 ) IN1 : 연산원 (Any_INT) MOD IN2 : 나눌값 (Any_INT) OUT : 나머지값 (Any_INT) 지수연산 EXPT IN1 : 정수 (Any_REAL) IN2 : 지수 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 제 2 장표준라이브러리및프로그래밍 2-3 LS 산전연수원

구분명령어기호기능설명비고 절대값 ABS IN1 : 정수 (Any_INT) OUT : 결과값 (Any_INT) 수치 SQRT 제곱근 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 연산 LN 자연대수 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 펑 션 LOG 상용대수 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 EXP 자연지수 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 SIN 싸인연산 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 삼각펑 COS TAN 코싸인연산 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) 탄젠트연산 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 GM1, GM2 전용 션 ASIN 아크싸인연산 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 ACOS 아크코싸인연산 IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 제 2 장표준라이브러리및프로그래밍 2-4 LS 산전연수원

구분명령어기호기능설명비고 삼 아크탄젠트연산 각펑 ATAN IN1 : 연산원 (Any_ REAL) OUT : 결과값 (Any_ REAL) GM1, GM2 전용 션 비트열왼쪽으로이동 IN : 전송원 (Any_BIT) 이 SHL N : 이동할비트수 (INT) 동 OUT : 전송선 (Any_BIT) 펑 션 SHR 비트열오른쪽으로이동 IN : 전송원 (Any_BIT) N : 이동할비트수 (INT) OUT : 전송선 (Any_BIT) 비트열왼쪽으로회전 IN : 전송원 (Any_BIT) 회 ROL N : 회전할비트수 (INT) 전 OUT : 전송선 (Any_BIT) 명 령 ROR 비트열오른쪽으로회전 IN : 전송원 (Any_BIT) N : 회전할비트수 (INT) OUT : 전송선 (Any_BIT) 논리곱 IN1 ~ IN8 : 연산원 (Any_BIT) 논 AND OUT : 결과값 (Any_BIT) 리 연 산 OR 논리합 IN1 ~ IN8 : 연산원 (Any_BIT) OUT : 결과값 (Any_BIT) 제 2 장표준라이브러리및프로그래밍 2-5 LS 산전연수원

구분명령어기호기능설명비고 배타적논리합 논리연산 XOR NOT IN1 ~ IN8 : 연산원 (Any_BIT) OUT : 결과값 (Any_BIT) 논리반전 IN1, IN2 : 연산원 (Any_BIT) OUT : 결과값 (Any_BIT) 선 택 SEL MAX 2 개중선택 G : 출력선택 () IN0 : G 가 Off 일경우선택값 (Any) IN1 : G 가 On일경우선택값 (Any) OUT : 출력값 (Any) 최대값구하기 IN1 ~ IN8 : 선택값 (Any_INT) OUT : 최대출력값 (Any_INT) 펑 션 MIN 최소값구하기 IN1 ~ IN8 : 선택값 (Any_INT) OUT : 최소출력값 (Any_INT) LIMIT 상하한제한값 MN : 하한값 (Any_INT) IN : 전송원 (Any_INT) MX : 상한값 (Any_INT) OUT : 출력값 (Any_INT) 제 2 장표준라이브러리및프로그래밍 2-6 LS 산전연수원

구분명령어기호기능설명비고 최대 7 개중선택 K : 선택입력번호 선택펑션 MUX GT(>) IN0 : 전송원 0번 (Any) IN1 : 전송원 1번 (Any) IN2 : 전송원 2번 (Any) IN3 : 전송원 3번 (Any) IN4 : 전송원 4번 (Any) IN5 : 전송원 5번 (Any) IN6 : 전송원 6번 (Any) OUT : 출력값 (Any) 비교펑션 IN1 ~ IN8 : 비교데이터 (Any) OUT : 출력 () IN1 > IN2 >... > IN7 > IN8 의조건성립시 OUT 출력 On 비 교 GE( ) 비교펑션 IN1 ~ IN8 : 비교데이터 (Any) OUT : 출력 () IN1 IN2... IN7 IN8 의조건성립시 OUT 출력 On 펑 션 EQ(=) 비교펑션 IN1 ~ IN8 : 비교데이터 (Any) OUT : 출력 () IN1 = IN2 =... = IN7 = IN8 의조건성립시 OUT 출력 On LE( ) 비교펑션 IN1 ~ IN8 : 비교데이터 (Any) OUT : 출력 () IN1 IN2... IN7 IN8 의조건성립시 OUT 출력 On 제 2 장표준라이브러리및프로그래밍 2-7 LS 산전연수원

구분명령어기호기능설명비고 비교펑션 IN1 ~ IN8 : 비교데이터 (Any) LT(<) OUT : 출력 () IN1 < IN2 <... < IN7 < IN8 의조건성립시 OUT 출력 On 비교펑션 IN1, IN2 : 비교데이터 (Any) NE( ) OUT : 출력 () IN1 IN2 의조건성립시 OUT 출력 On 문자열길이 LEN IN1 : 문자열입력 (STRING) OUT : 문자열길이 (INT) 문자열왼쪽부분전송 IN : 문자열입력 (STRING) LEFT L : 문자열길이 (INT) 문자열펑션 RIGHT OUT : 문자열출력 (STRING) 문자열오른쪽부분전송 IN : 문자열입력 (STRING) L : 문자열길이 (INT) OUT : 문자열출력 (STRING) MID 문자열중간부분전송 IN : 문자열입력 (STRING) L : 문자열길이 (INT) P : 문자열선두위치 (INT) OUT : 문자열출력 (STRING) 제 2 장표준라이브러리및프로그래밍 2-8 LS 산전연수원

구분명령어기호기능설명비고 문자열연결 입력문자열을순서대로연결 CONCAT IN1 ~ IN8 : 문자열 (STRING) OUT : 문자열출력 (STRING) 문자열삽입 IN1 : 문자열입력 (STRING) INSERT IN2 : 삽입할문자열 (STRING) P : 문자열선두위치 (INT) OUT : 문자열출력 (STRING) 문자열펑션 DELETE REPLACE 문자열삭제 IN1 : 문자열입력 (STRING) L : 삭제할문자열길이 (INT) P : 문자열선두위치 (INT) OUT : 문자열출력 (STRING) 문자열대체 IN1 : 문자열입력 (STRING) IN2 : 대체할문자열 (STRING) P : 문자열선두위치 (INT) OUT : 문자열출력 (STRING) FIND 문자열찾기 IN1 : 문자열입력 (STRING) IN2 : 검색할문자열 (STRING) OUT : 문자열선두위치 (INT) 제 2 장표준라이브러리및프로그래밍 2-9 LS 산전연수원

구분명령어기호기능설명비고시간더하기 IN1 : 시각또는시간 (TIME, TOD, TD) ADD_TIME IN2 : 더할시간 (TIME) OUT : 결과시각또는시간 (TIME, TOD, TD) 시간빼기 IN1 : 시각또는시간 (TIME, TOD, TD) SUB_TIME IN2 : 뺄시간 (TIME) OUT : 결과시각또는시간 날짜시간 SUB_DATE (TIME, TOD, TD) 날짜빼기 IN1 : 날짜 (DATE) IN2 : 뺄날짜 (DATE) OUT : 결과시간 (TIME) 펑 션 SUB_TOD 시각빼기 IN1 : 시각 (TIME OF DAY) IN2 : 뺄시각 (TIME OF DAY) OUT : 결과시간 (TIME) SUB_DT 날짜시각빼기 IN1 : 시각 (DATE&TIME) IN2 : 뺄시각 (DATE&TIME) OUT : 결과시간 (TIME) MUL_TIME 시간곱하기 IN1 : 입력시간 (TIME) IN2 : 곱할값 (INT) OUT : 결과시간 (TIME) 제 2 장표준라이브러리및프로그래밍 2-10 LS 산전연수원

구분명령어기호기능설명비고 날짜시간펑션 DIV_TIME CONCAT_TIME 시간나누기 IN1 : 입력시간 (TIME) IN2 : 나눌값 (INT) OUT : 결과시간 (TIME) 날짜와시각연결 IN1 : 입력날짜 (DATE) IN2 : 입력시각 (TOD) OUT : 결과날짜시각 (DT) DI 인터럽트금지 REQ : 금지요구 () OUT : 금지확인 () EI 인터럽트허가 REQ : 허가요구 () OUT : 허가확인 () 시 스 템 STOP PLC 정지요구 REQ : 정지요구 () OUT : 정지확인 () 제어펑션 ESTOP PLC 비상정지요구 REQ : 정지요구 () OUT : 정지확인 () 입력데이터즉시갱신 BASE : 베이스모듈번호 SLOT : 입력모듈슬롯위치 MASK_L : 하위 32Bit 중갱신 DIREC_IN 하지않을 Bit 지정 (DWORD) MASK_H : 상위 32Bit 중갱신하지않을 Bit 지정 (DWORD) OUT : 실행완료 () GM5 제외 제 2 장표준라이브러리및프로그래밍 2-11 LS 산전연수원

구분명령어기호기능설명비고 입력데이터즉시갱신 MODL : 입력모듈번호 DIREC_IN5 MASK : 하위 32Bit 중갱신 하지않을 Bit 지정 (DWORD) OUT : 실행완료 () GM5 전용 출력데이터즉시갱신 BASE : 베이스모듈번호 시 SLOT : 출력모듈슬롯위치 스 MASK_L : 하위 32Bit 중갱신 템 DIREC_O 하지않을 Bit 지정 (DWORD) GM5 제외 MASK_H : 상위 32Bit 중갱신 제 하지않을 Bit 지정 (DWORD) 어 OUT : 실행완료 () 펑 출력데이터즉시갱신 션 MODL : 출력모듈번호 DIREC_OUT5 MASK : 하위 32Bit 중갱신하지않을 Bit 지정 (DWORD) GM5 전용 OUT : 실행완료 () 워치독타이머리셋 WDT_RST REQ : 리셋요구 () OUT : 실행완료 () 제 2 장표준라이브러리및프로그래밍 2-12 LS 산전연수원

펑션블록구분 명령어 기호 기능설명 비고 On 딜레이타이머 IN : 동작개시신호 () TON PT : 설정시간 (TIME) 타 이 머 Q : 출력 () ET : 현재값 Off 딜레이타이머 펑션블록카운터펑션블록 TOF TP CTU CTD IN : 동작개시신호 () PT : 설정시간 (TIME) Q : 출력 () ET : 현재값펄스타이머 IN : 동작개시신호 () PT : 설정시간 (TIME) Q : 출력 () ET : 현재값 (TIME) 가산카운터 CU : 펄스입력 () R : 현재값리셋 () PV : 설정값 (INT) Q : 출력 () CV : 현재값 (INT) 감산카운터 CD : 펄스입력 () LD : 설정값 Read() PV : 설정값 (INT) Q : 출력 () CV : 현재값 (INT) 제 2 장표준라이브러리및프로그래밍 2-13 LS 산전연수원

구분명령어기호기능설명비고 카 운 터 가감산카운터 CU : 가산펄스입력 () CD : 감산펄스입력 () 펑션블록펑션 CTUD SEMA SR R : 현재값리셋 () LD : 설정값 Read() PV : 설정값 (INT) QU : 가산카운트출력 () QD : 감산카운트출력 () CV : 현재값 (INT) 시스템자원제어 (Semaphore) CLAIM : 자원독점요구 () RELEASE : 자원해방 () BUSY : 자원취득불가 () Set 우선쌍안정 (Bistable) S1 : Set 신호 () R : Reset 신호 () Q1 : 출력 () 블 록 RS Reset 우선쌍안정 (Bistable) S : Set 신호 () R1 : Reset 신호 () Q1 : 출력 () R_TRIG F_TRIG 상승에지검출 CLK : 입력 () Q : 출력 () 하강에지검출 CLK : 입력 () Q : 출력 () 제 2 장표준라이브러리및프로그래밍 2-14 LS 산전연수원

2.2 프로그램작성 2.2.1 산술연산프로그램작성예 1) 펑션명령 : 다중입력펑션 (2 ~ 8 개까지 ) 산술펑션 EN : 실행요구접점 ( 형 ) IN1~IN8 : 셈할정수값또는 Any INT 형변수입력 ENO : 실행후 EN 신호를출력 ( 형 ) OUT : 결과값을저장할변수 ( 입력과동일한형식의변수 ) 2 입력펑션 EN : 실행요구접점 ( 형 ) IN1 : 피감산정수값또는 Any INT 형변수입력 IN2 : 감산정수값또는 Any INT 형변수입력 ENO : 실행후 EN 신호를출력 ( 형 ) OUT : 결과값을저장할변수 ( 입력과동일한형식의변수 ) EN : 실행요구접점 ( 형 ) IN1 : 피제산정수값또는 Any INT 형변수입력 IN2 : 제산정수값또는 Any INT 형변수입력 ENO : 실행후 EN 신호를출력 ( 형 ) OUT : 결과값을저장할변수 ( 입력과동일한형식의변수 ) 주 ) 몫만취하고나머지는버림 제 2 장표준라이브러리및프로그래밍 2-15 LS 산전연수원

EN : 실행요구접점 ( 형 ) IN1 : 피제산정수값또는 Any INT 형변수입력 IN2 : 제산정수값또는 Any INT 형변수입력 ENO : 실행후 EN 신호를출력 ( 형 ) OUT : 결과값을저장할변수 ( 입력과동일한형식의변수 ) 주 ) 나머지만취하고몫은버림 2) 연산에러플레그 _ERR : 연산에러가발생하면 On 되고에러해재시 Off 됩니다. _LER : 연산에러가발생하면 Set 되고사용자프로그램에의해 Reset 할때까지 On 됩니다. 3) 프로그램편집도구상자에서고입력개수 를선택하여원하는위치에클릭하여펀션목록상자가나타나면 ADD 펑션을선택하를설정 (3 개 ) 합니다 제 2 장표준라이브러리및프로그래밍 2-16 LS 산전연수원

EN 입력접점은 %IX0.0.1 으로선언하여실행조건접점으로합니다. IN1 은상수 100 을입력하고 IN2 및 IN3 는각각 VALU_01, VALU_02 의 INT 형변수를선언합니다 OUT 에는상수 100 과변수 VALU_01 과 VALU_02 를모두더한값이저장될변수를선언하며이변수의형태는반드시입력측변수와같은 INT 형으로해야합니다. 완성된덧셈펑션과사용된지역변수 제 2 장표준라이브러리및프로그래밍 2-17 LS 산전연수원

사칙연산 변수 List 사칙연산 프로그램 List 및모니터결과 제 2 장표준라이브러리및프로그래밍 2-18 LS 산전연수원

2.2.2 펑션및펑션블록프로그램 1) 타이머의종류와기능 On 딜레이타이머 입력 출력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) 1 msec ~ 49 day Q : 타이머출력 ET : 경과된시간 (Elapsed Time) On 딜레이타이머의동작 IN Q PT 설정시간 설정시간 ET 설정시간 Off 딜레이타이머 입력 출력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) 1 msec ~ 49 day Q : 타이머출력 ET : 경과된시간 (Elapsed Time) Off 딜레이타이머의동작 IN Q PT 설정시간 설정시간 ET 설정시간 제 2 장표준라이브러리및프로그래밍 2-19 LS 산전연수원

펄스타이머 입력 출력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) 1 msec ~ 49 day Q : 타이머출력 ET : 경과된시간 (Elapsed Time) 펄스타이머의동작 IN Q PT 설정시간 설정시간 ET 설정시간 2) 카운터펑션블록의기능 입력 출력 CU : 업 _ 카운트 (Up_Count) 펄스입력 R : 리셋입력 (Reset) PV : 설정값 (Preset Value) Q : 업 _ 카운트 (Up_ Count) 출력 CV : 현재값 (Current Value) Up 카운터의동작 R( 리셋입력 ) CU( 카운트입력 ) 최대계수값 (32767) PV( 설정값 ) CV( 현재값 ) Q( 카운트출력 ) CV 가 1NT 의최대값인 32767 미만일때만증가하고 32767 이되면더이상증가하지않습니다. 리셋입력 R이 On 이되면현재값 CV 는 0으로클리어 (Clear) 됩니다. 출력 Q는 CV 가 PV 이상이될때만 On 이됩니다. PV 값은 CTU 펑션블록을수행시설정값을새롭게가져와연산합니다. 제 2 장표준라이브러리및프로그래밍 2-20 LS 산전연수원

3) 프로그램작성예 타이머와카운터의테스트프로그램 제 2 장표준라이브러리및프로그래밍 2-21 LS 산전연수원

비교펑션응용프로그램예시스템구성 ( 대차제어시스템 ) 위치검출센서 右行 Limit 左行 Limit 원점 시스템개요본시스템은목표위치를정하고기동지령을하면현위치값과비교하여그대소를판단하여좌또는우방향을결정하여대차가이동되면위치검출센서가레일옆에설치한요철을카운트하여목표위치값과현위치값이일치하면정지하고또다시다음목표위치값을설정한후기동지령을하여다음위치로이동하는프로그램을작성합니다. 프로그램작성 프로그램테스트를위하여실제프로그램에서다음의일부내용을변경하기로합니다다음의프로그램리스트의행번호 10 과 14 행의플래그 _T200MS 는위그림의위치검출센서의외부펄스입력대체하여편집한것으로 200msec 주기의입력펄스로간주하여테스트하기로하였습니다 조작방법원점스위치조작으로카운터를초기화하고목표위치변수를모니터링중더블클릭한후임의의목표위치값을써넣은후기동지령접점신호를 On 합니다. 左行出力및右行出力의상태와현위치값의변화를확인하며운전상태를모니터링합니다 제 2 장표준라이브러리및프로그래밍 2-22 LS 산전연수원

프로그램 List 주 ) 실제의시스템에서는위프로그램의부분을시스템구성도의위치검출센서의입력신호로대치하여실제의레일의요철을검출하여시운전을합니다. 제 2 장표준라이브러리및프로그래밍 2-23 LS 산전연수원

비교펑션과특수플레그의활용프로그램프로그램개요시스템의 RTC 기능을이용하여지정한시각에서가동을시작하여지정한시각에서가동을중지하는프로그램의예제입니다. 주 ) 변수명시작시간, 종료시간은플래그 _RTC_TIME 과같은 Time_Of_Day 로설정합니다. 테스트를위하여변수명시작시간, 종료시간의입력값은 TOD#09:20:00.0 및 TOD#17:30:00.0 으로입력합니다.( 오전 9 시 20 분, 오후 5 시 30 분 ) 실행모니터링화면의해당변수를마우스로더블클릭하면데이터입력대화상자가나오며이곳의입력란에원하는데이터를타입에맞추어입력합니다. 제 2 장표준라이브러리및프로그래밍 2-24 LS 산전연수원

2.3 배열 (Array) 변수에대하여 배열 (Array) 이란동일한이름과동일한데이터타입 (WORD,, INT 등 ) 으로된데이터가순서대로나열된형태의변수를말합니다예를들어, 배열변수의이름을 LED 열 로정의하고배열원소개수를 5 개로지정한경우, 이변수는 LED 열 [0], LED 열 [1], LED 열 [2], LED 열 [3], LED 열 [4] 인 5 개의원소로구성되며, [ ] 안의숫자는배열변수에할당된원소번호로, INT 형변수를사용하면간접어드레스지정을할수있습니다. 2.3.1 배열변수활용프로그램예 (1) 변수선언배열변수명 LED 열변수명 A 원소개수 5 개데이터타입 INT 데이터타입 WORD (2) 프로그램편집배열변수 LED 열 의배열원소에미리입력해둔초기값데이터를 1 초간격으로원소번호순으로변수 LED 출력 으로전송하여 %QW0.1.0 의출력모듈로출력하는프로그램예입니다. < 배열변수선언및초기값입력 > 변수명 LED 열 을 WORD 형배열변수로선언합니다. 제 2 장표준라이브러리및프로그래밍 2-25 LS 산전연수원

프로그램모니터링결과 INT 형변수 A 의현재값이 3 이므로 LED 열 [A] 의원소번호가 3 이되어, 결국 LED 열 [3] 에들어있는데이터값 16#5500 이 LED 출력으로전송됩니다. 제 2 장표준라이브러리및프로그래밍 2-26 LS 산전연수원

제 3 장응용라이브러리의활용 3.1 응용펑션라이브러리 기존의 MASTER-K 사용자편의를위해제공되는라이브러리파일입니다. 응용펑션라이브러리파일 (APP.*fu) 을사용할때는반드시프로젝트에추가로등록해야합니다. 단, 종래의확장라이브러리파일 (mkstdlib.*fu) 내의펑션은응용펑션라이브러리파일 (APP.*fu) 에포함되어있습니다. No. 펑션이름 기능 1 ENCO_BYTE,WORD,DWORD On 된비트위치를숫자로출력 2 DECO_BYTE,WORD,DWORD 숫자에대응되는비트위치를 On 3 BSUM_BYTE,WORD,DWORD On 된비트개수를숫자로출력 4 BMOV_BYTE,WORD,DWORD 비트스트링의일부분을복사이동 3.1.1 응용펑션프로그램예 (1) 프로젝트항목추가 응용펑션을사용하려면프로젝트항목추가를통해 APP.4fu 를프로젝트에추가하여야합니다. 제 3 장응용라이브러리의활용 3-1 LS 산전연수원

(2) 프로그램작성예 10 진숫자입력프로그램예 (ENCO_WORD 펑션활용 ) 개요 10 진 Key(Ten Key) 의조작에의하여지정한변수에원하는숫자를써넣는프로그램입니다. 입출력구성 1 2 3 4 7 0 5 8 정정 6 9 확인 숫자 0 : %IX0.0.0 숫자 1 : %IX0.0.1 숫자 2 : %IX0.0.2 숫자 3 : %IX0.0.3 숫자 4 : %IX0.0.4 숫자 5 : %IX0.0.5 숫자 6 : %IX0.0.6 숫자 7 : %IX0.0.7 숫자 8 : %IX0.0.8 숫자 9 : %IX0.0.9 정정 : %IX0.0.14 확인 : %IX0.0.15 제 3 장응용라이브러리의활용 3-2 LS 산전연수원

프로그램작성 행 1 의 AND 및 NE 펑션 %IW0.0.0 의 16Bit 중하위 10Bit 를마스킹하여변수 키 _ 정보 에쓰고, 키 _ 정보 중 On Bit 가있으면변수누름 _ 검출이 On 됨. 행 5 의 ENCO_W( 또는 ENCO_WORD) 및 INT_TO_BCD 펑션 키 _ 정보 중 On Bit 의수치값를구하여변수 정수값 에저장하고, 이를 BCD 값으로변환해변수 BCD 값 에저장. 행 8 의 SHL 및 OR 펑션 표시기 의 Bit 열을 4 Bit 만큼왼쪽으로이동함. 표시기 + BCD 값 = 표시기 행 15 의 BCD_TO_INT 및 MOVE 표시기 를 INT 형으로변환하여 버퍼 에저장하고, 다음수치입력을위해 표시기 를클리어함. 제 3 장응용라이브러리의활용 3-3 LS 산전연수원

제 4 장사용자정의라이브러리작성 사용자가직접만든펑션블록 ( 또는펑션 ) 을저장하는라이브러리파일을말합니다. 메뉴의 프로젝트 / 라이브러리 / 프로젝트항목추가 / 라이브러리 에서해당파일을추가하여사용합니다. 사용자정의라이브러리파일에는펑션 (**.?fu) 및펑션블록 (**.?fb) 이있습니다. (? 는기종에따라 1, 2, 3, 4, 6,7 로구분됨 ) 자주사용하는프로그램들을표준화하여펑션블록 ( 또는펑션 ) 으로만들어사용자라이브러리파일에등록해두고, 다른프로젝트수행시재활용함으로써프로그램의작성을편리하고신속하게수행할수있는기능입니다. 4.1 사용자정의펑션블록작성예 제 3 장에서작성한 10 진숫자입력프로그램 ( 텐키입력프로그램 ) 을사용자정의펑션블록으로만들어활용하는예입니다. (1) 기작성한 10 진숫자입력프로그램 열기 주 ) 10 진숫자입력프로그램에서응용펑션라이브러리파일 (APP.4fu) 의 ENCO_WORD 펑션이사용되므로, 라이브러리에이응용펑션라이브러리파일이추가되어야합니다. 제 4 장사용자정의라이브러리작성 4-1 LS 산전연수원

(2) 새프로그램을열어프로그램종류를 펑션블록 으로변경하기 10 진숫자입력프로그램 이열린상태에서새프로그램을열어프로그램파일이름을 텐키 FB 로명명하고, 프로그램종류를 프로그램블록 에서 펑션블록 으로변경한다. 또한, 펑션블록이름 텐키 를부여한다. (3) 프로그램블록을복사하여펑션블록에붙여넣기프로그램블록 10 진숫자입력프로그램 을복사하여펑션블록 텐키 FB 에붙여넣고, 텐키 FB 내지역변수의메모리할당을모두 자동 으로수정한다. 제 4 장사용자정의라이브러리작성 4-2 LS 산전연수원

(4) 펑션블록 텐키 FB 의끝행에입력및출력 변수추가편집펑션블록에는 1 개이상의입출력 변수가있어야하므로, 텐키 FB 의끝행에입출력 변수를추가로편집한다. 제 4 장사용자정의라이브러리작성 4-3 LS 산전연수원

(5) 펑션블록 텐키 FB 의지역변수목록에서입출력변수로정의할변수삭제 (6) 입출력변수정의 주 ) 펑션블록은맨위의첫번째입출력변수는 형이어야합니다. 만약, 형입출력이프로그램에필요하지않을경우에도 Dummy 변수로선언해야합니다. 제 4 장사용자정의라이브러리작성 4-4 LS 산전연수원

(7) 컴파일을수행한후확인단추를누르면 펑션블록안내자 가나타납니다. 다음단추를눌러나타난 펑션블록의라이브러리등록안내자 에새라이브러리파일이름을임의로부여합니다. ( 홍길동.4fb) 제 4 장사용자정의라이브러리작성 4-5 LS 산전연수원

(8) 라이브러리파일의프로젝트등록안내자 를통하여라이브러리파일을프로젝트파일에등록하고관련내용을적용합니다. 제 4 장사용자정의라이브러리작성 4-6 LS 산전연수원

(9) 작성한 텐키 사용자정의펑션블록을재사용합니다. 제 4 장사용자정의라이브러리작성 4-7 LS 산전연수원

제 5 장 SFC(Sequencial Function Chart) 프로그램작성 5.1 SFC 개요 SFC 는종래의 PLC 언어를이용하여응용프로그램을실행처리순서에따라플로차트 (Flow Chart) 형식으로전개하는구조화표현방식언어입니다. SFC 는응용프로그램을스텝과트랜지션으로분할하여서로연결하는방법을제공하며각스텝은액션으로, 각트랜지션은트랜지션조건과연관됩니다. SFC 는상태정보를가지고있어야하기때문에프로그램종류중프로그램블록과사용자펑션블록만 SFC 로작성할수있습니다.( 사용자펑션은작성불가 ) 형태초기스텝액션이름 스텝 트랜지션 액션 선택분기 점프 트랜지션이름 병렬분기 레이블 제한자 5.2 SFC 구조 5.2.1 스텝 스텝은액션이연결됨으로써시퀀스제어의단위를나타냅니다. 스텝이활성화상태이면부착되어있는액션의내용이실행됩니다. 초기스텝은최초로활성화되는스텝입니다. 제 5 장 SFC 프로그램작성 5-1 LS 산전연수원

최초의활성화상태인초기스텝 (S1) 의다음이행조건 (Transition Condition) 이성립되면현재활성화상태인스텝 (S1) 은비활성화상태로되고다음에연결된스텝 (S2) 이활성화상태로됩니다. 5.2.2 트랜지션 트랜지션은스텝간의실행처리이행조건을나타냅니다. 이행조건은 PLC 언어인 IL 또는 LD 로표현되어야합니다. 이행조건의결과는항상 로되어야하며그변수의이름은어느트랜지션이나 TRANS 가됩니다. 이행조건의결과가 1 일경우현재스텝은비활성화되고다음스텝이활성화됩니다. 스텝과스텝사이에는반드시트랜지션이있어야합니다. TRAN1 TRAN1 의내용 TRANS 가 On 되면 S1 이비활성화되고 S2 가활성화상태가됩니다. TRANS 변수는내부적으로선언된변수입니다. 모든트랜지션에서이행조건을 TRANS 변수로출력시켜야합니다. 5.2.3 액션 각스텝에는액션을 2 개까지연결할수있습니다. 액션이없는스텝은대기액션으로여겨지며다음의이행조건이 1 이될때까지대기상태가됩니다. 액션은 PLC 언어인 IL 또는 LD 로구성되고스텝이활성화될동안액션의내용이실행됩니다. 액션제한자가액션을제어하는데사용됩니다. 액션이활성화되었다가비활성화상태로될때액션에서실행된접점출력은 0 으로됩니다. 단, Set 출력, 펑션, 펑션블록출력은비활성화되기전의상태가유지됩니다. 제 5 장 SFC 프로그램작성 5-2 LS 산전연수원

STEP 의형태 ACTION1 의내용 ACTION2 의내용 - ACTION1 은 S1 이활성화된경우에만실행됩니다. - ACTION2 은 S1 이활성화된후 R 제한자를만날때까지실행됩니다. S1 이비활성화되어도계속실행합니다. - 액션이비활성화되는순간이액션을포스트스캔 (Post Scan) 한후다음스텝으로넘어갑니다. 포스트스캔활성화된액션이비활성화되는순간해당액션은 ON 된코일출력을모두 OFF 합니다. 단펑션, 펑션블록, Set 출력등은해당되지않습니다. 그림에서 postscan 접점이 0 이므로 C 와 %Q0.0.0 은 0 이됩니다. 제 5 장 SFC 프로그램작성 5-3 LS 산전연수원

5.2.4 액션제한자 (Action Qualifier) 액션이사용될때마다액션제한자가사용됩니다. 스텝에연관된액션은지정된제한자에따라실행시점과시간이정의됩니다. 액션제한자의종류는다음과같습니다. 1) N(Non-Stored) 스텝이활성화된동안만액션이실행됩니다. 2) S(Set) 스텝이활성화되면 R 제한자가실행될때까지액션이실행됩니다. 3) R(Overriding Reset) 이전에 S, SD, DS, SL 제한자로실행된액션의실행을중지시킵니다. 4) L(Time Limited) 스텝이활성화된후지정된시간또는스텝이비활성화될때까지액션이실행됩니다. 제 5 장 SFC 프로그램작성 5-4 LS 산전연수원

5) D(Time Delayed) 스텝이활성화된후지정된시간이경과한후부터비활성화될때까지액션이실행됩니다. 6) P(Pulse) 스텝이활성화된순간에만액션이실행됩니다. 7) SD(Stored & Time Delayed) 스텝이활성화된후지정된시간이경과한후부터 R제한자가실행될때까지액션이실행됩니다. 단, 시간이경과하기전에 R 제한자가실행되면액션은실행되지않습니다. 제 5 장 SFC 프로그램작성 5-5 LS 산전연수원

8) DS(Delayed & Stored) 스텝이활성화된후지정된시간이경과한후부터 R제한자가실행될때까지액션이실행됩니다. 단, 시간이경과하기전에스텝이비활성화되거나 R 제한자가실행되면액션은실행되지않습니다. 9) SL(Stored & Timed Limited) 스텝이활성화된후지정된시간또는 R 제한자가실행될때까지액션이실행됩니다. 제 5 장 SFC 프로그램작성 5-6 LS 산전연수원

5.3 SFC 전개규칙 5.3.1 직렬연결 2 개의스텝은직접연결되지않고항상트랜지션에의해분리됩니다. 2 개의트랜지션은직접연결되지않고항상스텝에의해분리됩니다. 직렬로연결되어있는스텝간의이행은상위스텝이활성화된상태에서다음에연결된트랜지션의이행조건이 1 로되면하위스텝이활성화상태가됩니다. 5.3.2 선택분기 선택분기로연결되어있으면상위스텝이활성화된상태에서다음에연결된 2 개이상의트랜지션중이행조건이 1 로된곳의다음스텝이활성화됩니다. 그다음은직렬연결과동일합니다. 선택분기는여러트랜지션중먼저 1 로된곳의해당액션만실행되고나머지액션은실행되지않습니다. JUMP 의삽입은선택분기의끝에만가능합니다. 예 T1 의이행조건이 1이되었을경우 S1 -> S2 -> S3 순으로활성화상태가됩니다. T4 의이행조건이 1이되었을경우 S1 -> S4 -> S3 순으로활성화상태가됩니다. T5 의이행조건이 1이되었을경우 S1 -> S5 -> S3 순으로활성화상태가됩니다. 이행조건이동시에 1이되었을경우에는가장왼쪽에있는트랜지션쪽으로이행됩니다. T1,T4 의이행조건이동시에 1이되었을경우 S1 -> S2 -> S3 순으로활성화상태가됩니다. T4,T5 의이행조건이동시에 1이되었을경우 S1 -> S4 -> S3 순으로활성화상태가됩니다. 제 5 장 SFC 프로그램작성 5-7 LS 산전연수원

5.3.3 병렬분기 병렬분기로연결되어있으면상위스텝이활성화상태에서다음에연결되어있는트랜지션의이행조건이 1 로되면이트랜지션밑에연결된모든스텝이활성화상태로됩니다. 각분기의전개는직렬연결과동일합니다. 이때활성화상태인스텝은분기의수만큼존재하게됩니다. 병렬분기에서합쳐질경우각분기의마지막스텝이모두활성화상태에서트랜지션의이행조건이 1 로되면다음에연결된스텝이활성화상태로됩니다. 병렬분기는두가지동작을동시에실행합니다. 예 - S1 이활성화된상태에서이행조건 T1 이 1 이면 S2, S6, S8 이활성화상태로되고 S1 이비활성화상태로됩니다. - S4, S7, S8 이활성화된상태에서이행조건 T4 가 1이면 S5 가활성화상태로되고 S4, S7, S8 은비활성화상태로됩니다. Active 순서 S1-+->S2--->S3--->S4--+->S5 +->S6--->S7----------+ +->S8------------------+ 제 5 장 SFC 프로그램작성 5-8 LS 산전연수원

5.3.4 점프 SFC 마지막스텝이활성화상태로된후다음에연결되어있는트랜지션의이행조건이 1 로되면 SFC 초기스텝 (Initial Step) 이활성화상태로됩니다. 예 점프를사용하면원하는곳으로전개를이어나갈수있습니다. 점프는 SFC 프로그램끝또는선택분기끝에만올수있습니다. 병렬분기안으로또는밖으로는점프할수없습니다. 병렬분기안에서의점프는가능합니다. 예 1) 선택분기끝에서의점프 - S5 다음에는 S2 이활성화됩니다. 제 5 장 SFC 프로그램작성 5-9 LS 산전연수원

2) 병렬분기안에서의점프 3) 병렬분기안으로는점프할수없습니다. 제 5 장 SFC 프로그램작성 5-10 LS 산전연수원

5.4 SFC 프로그램예 5.4.1 직렬연결프로그램예 (1) 프로그램편집 S1 의 (N) 깜빡이 _ 출력 0 : 초기에 S1 이활성화되어램프 0 을점멸시킴. S2 의 (N) 깜빡이 _ 출력 1 : S2 가활성화되면램프 1 을점멸시킴. S2 의 (S) 셋 _ 출력 2 : 램프 2 를 S2~S3 에서 ON 으로유지시킴. S3 의 (N) 깜빡이 _ 출력 3 : S3 가활성화되면램프 3 을점멸시킴. S4 의 (R) 셋 _ 출력 2 : 램프 2 를 S4 에서리셋시킴. 제 5 장 SFC 프로그램작성 5-11 LS 산전연수원

(2) 프로그램모니터링 제 5 장 SFC 프로그램작성 5-12 LS 산전연수원

5.4.2 선택분기프로그램예 (1) 프로그램편집 (2) 프로그램모니터링 스텝 S2 가활성화되면램프 %Q0.1.2 가점등됩니다. 분기된 T2 나 T5 중먼저 ON 된해당스텝이활성화됩니다. 제 5 장 SFC 프로그램작성 5-13 LS 산전연수원

5.4.3 병렬분기프로그램예 (1) 프로그램편집 제 5 장 SFC 프로그램작성 5-14 LS 산전연수원

제 5 장 SFC 프로그램작성 5-15 LS 산전연수원

(2) 프로그램모니터링 초기에스텝 1 이활성화되어액션 : 데모 1 프로그램이실행됩니다. 제 5 장 SFC 프로그램작성 5-16 LS 산전연수원

액션제한자 D(Time Delyed) 에의해 S2 가활성화된후 5 초후부터액션데모 2 가실행됩니다. S3 가활성화되면액션데모 3, 액션데모 4 및액션 : 데모 5 가동시에실행됩니다. 제 5 장 SFC 프로그램작성 5-17 LS 산전연수원

S4 가활성화되면액션 데모 6 이실행우측표시기의수치를 1초마다 1만큼증가 S4 가비활성화되면액션 데모 6 은멈추며 S1 이다시활성화되어액션 데모 1 이재실행. S4 가재활성화되면액션 : 데모 6 이재실행되고우측표시기의수치는이전값부터다시증가. 제 5 장 SFC 프로그램작성 5-18 LS 산전연수원

모듈 Ⅱ. 아날로그입력 (AD) - 적용모델 - 제 1 장. GLOFA-GMR/1/2/3 용 제2장. GLOFA-GM4용제3장. GLOFA-GM6용제4장. GLOFA-GM7용 G3F-AD4A G3F-AD4B G3F-AD3A G4F-AD3A G4F-AD2A G6F-AD2A G7F-ADHA G7F-AD2A

제 1 장성능규격및변환특성 본제품은 GLOFA PLC GMR/1/2/3/4/6시리즈및 MASTER-K200S/300S/1000S시리즈의 CPU와조합하여사용하는아날로그 / 디지털변환모듈.( 이하 AD 변환모듈 ) 입니다 A/D 변환모듈은 PLC외부기기로부터의아날로그신호 ( 전압또는전류입력 ) 를부호가있는 14또는12비트바이너리데이터의디지털값으로변환하는모듈입니다. 1.1 성능규격 항목 적용 PLC 입출력점유점수 규격 G3F-AD4A G3F-AD4B G3F-AD3A GM3/MK1000S 16점 전 압 DC -5 5V ( 입력저항 560kΩ ) DC-10 10V( 입력저항 560kΩ ) 전 류 DC 20 20mA ( 입력저항 250Ω) DC 1 5V ( 입력저항 600kΩ ) DC 4 20mA ( 입력저항 250Ω ) DC 1 5V( 입력저항 600kΩ ) DC 0 10V ( 입력저항 600kΩ ) DC 4 20mA ( 입력저항 250Ω ) 아날로그 입 력 전압 / 전류선택 제품옆면의입력전환선택스위치로채널마다선택 ( On : 전류, Off : 전압 ) 하고 전류입력사용시제품전면의입력범위선택스위치를 V1/I 쪽으로선택합니다. 제품옆면의입력전환선택스위치로채널마다선택 (On : 전류, Off : 전압 ) 하고 프로그램초기화펑션블록 ( 입력변수 :IN_SEL) 으로지정 ( 0: 전류,1: 전압 ) 제품옆면의입력전환선택스위치로채널마다선택 ( On : 전류, Off : 전압 ) 전압종류선택은프로그램 으로설정함 디지털출력 16비트바이너리값 ( 데이터 : 14비트 ) 출력데이터 [DATATYPE] 지정에따라채널마다설정가능 0 설정 : -192 16191, 1 설정 : -8192 8191(G3F-AD4A) 0 설정 : 0 16000, 1 설정 : -8000 8000(G3F-AD4B) 16비트바이너리값 ( 데이터 : 12비트 ) 출력데이터 : 0 4000) 최대분해능 DC 1 5V 0.25mV (1/16000) 1mV (1/4000) DC -5 5V 0.625mV (1/16000) DC -10 10V 1.25mV (1/16000) DC 0 10V 2.5mV (1/4000) DC 4 20mA 1.0μA (1/16000) 4μA (1/4000) DC -20 20mA 2.5μA (1/16000) 정밀도 ±0.5% [ 풀스케일 (Full Scale)] ( 주위온도가 25 일때는 ±0.3%) 최대 변환 속도 3.0ms / 채널 3.0ms / 채널 5.0ms / 채널 절대 최대 입력 전압 : ±12V, 전류 : ±25mA 아날로그입력점수 16채널 /1모듈 16채널 /1모듈 8채널 /1모듈 절 연 방 식 입력단자와 PLC전원간포토커플러절연 ( 채널간비절연 ) 접 속 단 자 38점단자대 38점단자대 20점단자대 내부 소비 전류 0.7A 0.54A 0.5A 중 량 630g 560g 310g 주의 A/D 변환모듈은공장출하시아날로그입력이전류로설정되어있으며이에대해오프셋 / 게인값이조정되어져있습니다. 제 1 장성능규격및변환특성 1-1 LS 산전연수원

항 목 규 G4F-AD3A G4F-AD2A G6F-AD2A 격 적용 PLC GM4/MK300S GM6/MK200S 입출력점유점수 16 점 전 압 DC 1 5V( 입력저항 600kΩ ) DC 0 10V ( 입력저항 600kΩ ) DC -5 5V ( 입력저항 560kΩ ) DC-10 10V( 입력저항 560kΩ ) DC 1 5V ( 입력저항 1MΩ 이상 ) DC 0 ~ 10V ( 입력저항 1MΩ 이상 ) DC -10 10V ( 입력저항 1MΩ 이상 ) 전류 DC 4 20 ma ( 입력저항 250Ω ) DC 20 20 ma ( 입력저항 250Ω) DC 20 20 ma ( 입력저항 250Ω) 아날로그 입 력 제품옆면의입력전환선택스위치로채널마다선택 입력단자에의해선택 ( 전류입력사용시단자대 입력단자에의해선택 ( 전류입력사용시단자대 ( On : 전류, Off : 전압 ) V 단자와 I 단자를연결합니다.) V 단자와 I 단자를연결합니다.) 전압 / 전류 선택 전압종류선택은프로그램으로설정함 전압종류선택은제품옆면의스위치로선택 전압종류선택은제품옆면의스위치로선택 디지털출력 16비트바이너리값 ( 데이터 : 12비트 ) 출력데이터 : 0 4000) 16비트바이너리값 16비트바이너리값 ( 데이터 : 14비트 ) ( 데이터 : 12비트 ) 출력데이터 [DATATYPE] 지정 출력데이터 [DATATYPE] 지정에따라채널마다설정가능에따라채널마다설정가능 0 설정 : -192 16191, 0 설정 : -48 4047, 1 설정 :-8192 8191 1 설정 :-2048 2047 최대분해능 DC 1 5V 1mV (1/4000) 1mV (1/4000) DC -5 5V 0.625mV (1/16000) DC -10 10V 1.25mV (1/16000) 5mV (1/4000) DC 0 10V 2.5mV (1/4000) 2.5mV (1/4000) DC 4 20mA 4μA (1/4000) 4μA (1/4000) DC -20 20mA 2.5μA (1/16000) 정밀도 ±0.5% [ 풀스케일 (Full Scale)] ( 주위온도가 25 일때는 ±0.3%) 최대 변환 속도 5.0ms / 채널 3.0ms / 채널 5.0ms / 채널 절대 최대 입력 전압 : ±15V, 전류 : ±25mA 아날로그입력점수 8채널 /1모듈 16채널 /1모듈 4채널 /1모듈 절 연 방 식 입력단자와 PLC전원간포토커플러절연 ( 채널간비절연 ) 접 속 단 자 20점단자대 38점단자대 18점단자대 내부 소비 전류 0.5A 0.54A DC5V:40mA,DC15V:50mA,DC-15V:20mA 중 량 280g 560g 200g 주의 * A/D 변환모듈은공장출하시아날로그입력이전류로설정되어있으며이에대해오프셋 / 게인값이조정되어져있습니다. * G6F-AD2A 를사용하는경우전원모듈은반드시 GM6-PAFB 를사용해야합니다. 제 1 장성능규격및변환특성 1-2 LS 산전연수원

1.2 각부의명칭과역할 각부분의명칭에대해서설명합니다. 1) G3F-AD4A G3F-AD4A RUN LED 점등 : 정상동작중점멸 : 에러발생소등 : DC 5V 단선, G3F-AD4A 모듈이상 OFFSE 오프셋값미세조정용볼륨저항 GAIN 게인값미세조정용볼륨저항 V1 / V2 입력범위선택스위치 1) 전압사용시 : C 0 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C A C B C C C D C E C F SLD AGN FG + + + + + + + + + + + + + + + + 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 V1/I : 전압범위 5V~5V V2 : 전압범위 10V~10V 2) 전류사용시 V1/I : 전류범위 20mA~20mA V2 : 사용불가 각채널입력종류 ( 전압 / 전류 ) 선택스위치 ON 시 : 전류입력 OFF 시 : 전압입력 CH 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ON -10~+10V -20~+20 제 1 장성능규격및변환특성 1-3 LS 산전연수원

2) G3F-AD4B G3F-AD4B 2 1~5V 4~20mA 1 2 RUN LED G3F-AD4B의동작상태를표시전압 / 전류선택스위치 1) 전압선택시스위치의위치 On On 1234567 1234567 2) 전류선택시스위치의위치 On On 1234567 1234567 내용 스위치는 Off 에위치함. 스위치는 On 에위치함 제 1 장성능규격및변환특성 1-4 LS 산전연수원

G3F-AD3A No 1 RUN LED G3F-AD3A 의동작상태를표시 내용 2 전압 / 전류선택스위치 1) 전압선택시스위치의위치 On 1234567 스위치는 Off 에위치함. 2) 전류선택시스위치의위치 On 1234567 스위치는 On 에위치함 제 1 장성능규격및변환특성 1-5 LS 산전연수원

4) G4F-AD3A No 1 RUN LED G4F-AD3A 의동작상태를표시 내용 2 전압 / 전류선택스위치 1) 전압선택시스위치의위치 On 1234567 스위치는 Off 에위치함. 2) 전류선택시스위치의위치 On 1234567 스위치는 On 에위치함 제 1 장성능규격및변환특성 1-6 LS 산전연수원

5) G4F-AD2A 번호내용번호내용 1 RUN LED 4 게인스위치 G4F-AD2A 의동작상태를표시 스위치를위쪽방향으로조정하면해당채널의 노멀 (Normal) 모드 : 채널선택스위치가 4~F 의위치일때 아날로그입력값을게인값으로기억 -점등: 정상동작중 -점멸: 에러발생 입력범위선택스위치 - 소등 : DC 5V 단선, G4F-AD2A 모듈이상 5 공장출하시는전류입력상태로설정되어져있습니다. 2 테스트 (Test) 모드 : 채널선택스위치가 0~3 의위치일때 -점등: 오프셋 / 게인스위치가세트 ( 스위치를위쪽으로조작 ) 일때 -점멸(1.0초): 오프셋 / 게인스위치를조작하지않을때 -점멸(0.2초): 오프셋및게인설정에러일때오프셋스위치 아날로그입력전 DC -10~10V 압 DC -5~5V 전류 DC -20~20 ma 스위치의위치 1 2 OFF 1 2 OFF 3 스위치를위쪽방향으로조정하면해당채널의아날로그입력값을오프셋값으로기억테스트모드용채널선택스위치 스위치의위치를 1 2 OFF 상태로위치하지말아주십시오. 오동작의원인이됩니다. 또는 1 2 OFF 오프셋값및게인값조정시해당채널을선택한다. ( 채널스위치가 0~3 위치일때만유효함 ) 제 1 장성능규격및변환특성 1-7 LS 산전연수원

6) G6F-AD2A RUN 1 G6F-AD2A G6F-AD2 V+ CH I+ CO V+ CH I+ CO 2 J1 J2 V+ CH I+ CO 1 2 V+ CH I+ CO F -10~+10V +4~+20 ma No 1 2 RUN LED G6F-AD2A 의동작상태를표시 입력범위선택스위치 내용 아날로그입력 스위치의위치 DC 1~5V J1 J2 1 2 3 전압 DC 0~10V J1 J2 1 2 3 DC-10~10V J1 J2 1 2 3 전류 DC 4~20mA J1 J2 1 2 3 제 1 장성능규격및변환특성 1-8 LS 산전연수원

1.3 입출력변환특성 입출력변환특성은 PLC 외부기기로부터의아날로그신호 ( 전압또는전류입력 ) 를디지털값으로변환할때의오프셋과게인값을직선으로연결한기울기입니다. A/D 변환모듈의입출력변환특성에대하여설명합니다. G3F-AD4 아날로그입력실용범위 8191 8000 1619 1600 게인값 4000 1200 디지털출력값 0 8000 오프셋값 -400 4000-800 -819 0-192 아날로그입력 DC -10 ~ DC -5 ~ 5V DC -20~ 20-10V 0 10V -5V 0 5-20 ma 0 ma 20 ma G4F-AD2 아날로그입력실용범위 8191 8000 1619 1600 4000 1200 디지털출력값 0 8000 게인값 -400 4000 오프셋값 -800-819 0-192 아날로그입력 DC -10 ~ DC -5 ~ 5V DC -20~ 20-10V 0 10V -5V 0 5-20 ma 0 ma 20 ma 제 1 장성능규격및변환특성 1-9 LS 산전연수원

1.3.1 G3F-AD4A의입출력특성 G3F-AD4A는채널마다아날로그입력전환선택스위치로전압 / 전류선택이가능하고오프셋 / 게인설정은 16채널일괄로실행합니다. 1) 전압입력특성전압입력은입력전환선택스위치의위치를각채널별로 Off에위치하여사용합니다. 입력전환선택스위치의조작 전압선택시 Off 에위치 On 1 2 3 4 5 6 7 8 CH0 1 2 3 4 5 6 7 On 1 2 3 4 5 6 7 8 8 9 10 11 12 13 14 ( 제품의좌측면에위치 ) 채널번호 가 ) DC -10 ~10V 일때 아날로그입력선택스위치를아래쪽 (V2) 으로설정해주십시오. 입력선택스위치의조작 V1/I (DC -5~5V 선택 ) V2 (DC -10~10V 선택 ) < 제품의전면부에위치 > 1619 1600 8191 8000 디지털출력값 1200 4000 8800 800 8000 0 4000-400 0-192 -800-819 -10V 0 1 5 10V 아날로그입력 ( 전압 ) 전압입력특성에대한디지털출력값은다음과같습니다. 디지털 아날로그입력전압 (V) 출력범위 -10.24-10 -5 0 5 10 10.24-192 ~ 16191-192 0 4000 8000 12000 16000 16191-8192 ~ 8191-8192 -8000-4000 0 4000 8000 8191 제 1 장성능규격및변환특성 1-10 LS 산전연수원

나 ) DC -5 ~5V 일때 아날로그입력선택스위치를위쪽 (V1/I) 으로설정해주십시오. 입력선택스위치의조작 V1/I (DC -5~5V 선택 ) V2 (DC -10~10V 선택 ) < 제품의전면부에위치 > 1619 1600 8191 8000 디지털출력값 1280 4800 9600 1600 8000 0 4000-400 0-192 -800-819 -5V 0 1 3 5V 아날로그입력 ( 전압 ) 전압입력특성에대한디지털출력값은다음과같습니다. 디지털 아날로그입력전압 (V) 출력범위 -5.12-5 -2.5 0 2.5 5 5.12-192 ~ 16191-192 0 4000 8000 12000 16000 16191-8192 ~ 8191-8192 -8000-4000 0 4000 8000 8191 제 1 장성능규격및변환특성 1-11 LS 산전연수원

2) 전류입력특성 전류입력은입력전환선택스위치의위치를각채널별로 On 에설정해주십시오 입력전환선택스위치의조작 전압선택시 Off 에위치 On 1 2 3 4 5 6 7 8 CH0 1 2 3 4 5 6 7 On 1 2 3 4 5 6 7 8 8 9 10 11 12 13 14 ( 제품의좌측면에위치 ) 채널번호 아날로그입력선택스위치를위쪽 (V1/I) 으로설정해주십시오. 입력선택스위치의조작 V1/I (DC -20~20 ma선택 ) V2 ( 전류사용불가 ) < 제품의전면부에위치 > 1619 1600 8191 8000 디지털출력값 1280 4800 9600 1600 8000 0 4000-400 0-192 -800-819 -20 ma 0 ma 4 ma 12 ma 아날로그입력 ( 전류 ) 20 ma 전류입력특성에대한디지털출력값은다음과같습니다. 디지털 아날로그입력전류 ( ma ) 출력범위 -20.48-20 0 4 12 20 20.24-192 ~ 16191-192 0 8000 9600 12800 16000 16191-8192 ~ 8191-8192 -8000 0 1600 4800 8000 8191 제 1 장성능규격및변환특성 1-12 LS 산전연수원

3) 전압, 전류를동시에사용할때의입출력특성 전압과전류를동시에사용할때는입력전환선택스위치를해당채널별전압과전류로설정해주십시오예 ) 전압사용채널 : 0 ~ 7 전류사용채널 : 8 ~ 15 입력전환선택스위치의위치 전압선택시 Off 에위치 On 1 2 3 4 5 6 7 8 CH0 1 2 3 4 5 6 7 On 1 2 3 4 5 6 7 8 8 9 10 11 12 13 14 ( 제품의좌측면에위치 ) 채널번호 아날로그입력선택스위치를위쪽 (V1/I) 으로설정해주십시오. 입력선택스위치의조작 V1/I ( 전압선택 : DC -5 ~ 5V) ( 전류선택 : DC 20 ~ 20 ma ) < 제품의전면부에위치 > 디지털출력값 1619 1600 1280 9600 8000 4000 8191 8000 4800 1600 0-400 0-192 -800-819 -5.12-5V 0V 1V 3V 5V 5.12V 전압입력 -20.48mA전류입력 -20 ma 0 ma 4 ma 12 ma 20 ma20.48 아날로그입력 전압과전류를동시에사용할때의입력특성에대한디지털출력값은다음과같습니다. 아날로그입력전류 ( ma ) 디지털출력범위 -5.12V -5V 0V 1V 3V 5V 5.12V -20.48mA -20mA 0mA 4mA 12mA 20mA 20.24mA -192 ~ 16191-192 0 8000 9600 12800 16000 16191-8192 ~ 8191-8192 -8000 0 1600 4800 8000 8191 제 1 장성능규격및변환특성 1-13 LS 산전연수원

1.3.2 G4F-AD2A 의입출력특성 1) 전압입력특성 G4F-AD2A는채널마다전압 / 전류선택이가능하고오프셋 / 게인을조절할수있습니다. 전압입력으로사용할때는입력범위선택스위치의조작에의해 DC -5~5V 또는 DC -10~10V를선택할수있습니다. 가 ) DC -10~10V 일때 입력범위선택스위치 단자대결선 1 2 OFF 1 번 On, 2 번 Off 선택 ( 제품의좌측면에위치 ) V0 아날로그입력 I0 COM SLD 1619 1600 8191 8000 1200 4000 8800 800 8000 0 예 1 오프셋 : -10V 게인 : 0V 4000 0-192 -400-800 -819 예 2 오프셋 : 0V 게인 : 5V -10.24-10V 0 1 5 10V V 아날로그입력 ( 전압 ) 10.24V 오프셋 / 게인값설정을변경한경우전압입력특성에대한디지털출력은다음과같습니다. 구분 디지털아날로그오프셋값게인값출력범위 입력전류 (V) -10-5 0 3 5 10 예 1 예 2 예 1 예 2-192 ~ 16191-8192 ~ 8191-10V 0V 0 4000 8000 10400 12000 16000 0V 5V -192-192 0 4800 8000 16000-10V 0V -8000-4000 0 2400 4000 8000 0V 5V -8192-8192 -8000-3200 0 8000 제 1 장성능규격및변환특성 1-14 LS 산전연수원

나 ) DC -5~5V 일때 입력범위선택스위치 단자대결선 1 2 OFF 1 번 Off, 2 번 On 선택 ( 제품의좌측면에위치 ) V0 아날로그입력 I0 COM SLD 1619 1600 8191 8000 1200 8000 4000 0-192 아날로그입력 ( 전압 ) 4000 8800 800 예 1-5.12V -5V 0 1 2.5 3V 5V 5.12V 0-400 -800-819 예 2 예 3 오프셋 : -5V 오프셋 : 0V 게인 : 2.5V 오프셋 : 1V 게인 : 3V 오프셋 / 게인값설정을변경한경우전압입력특성에대한디지털출력은다음과같습니다. 구분 디지털아날로그오프셋값게인값출력범위 입력전류 (V) -5 0 1 3 5 예 1 예 2 예 3 예 1 예 2 예 3-192 ~ 16191-8192 ~ 8191-5V 0V 0 8000 9600 12800 16000 0V 2.5V -192 0 3200 9600 16000 1V 3V -192-192 0 8000 16000-5V 0V -8000 0 1600 4800 8000 0V 2.5V -8192-8000 -4800 1600 8000 1V 3V -8192-8192 -8000 0 8000 제 1 장성능규격및변환특성 1-15 LS 산전연수원

2) 전류입력특성 (DC 20 ~ 20 ma ) 입력범위선택스위치 단자대결선 1 2 OFF 1 번 Off, 2 번 On 선택 ( 제품의좌측면에위치 ) 아날로그입력 V0 I0 COM SLD 1619 1600 8191 8000 1200 4000 8800 800 8000 4000 0-192 0-400 -800-819 -20.48 ma -20 ma 0 ma 4 ma 10 ma 12 ma 20 ma 아날로그입력 ( 전류 ) 예 1 예 2 예 3 오프셋 : -20 ma게인 : 0mA 오프셋 : 0 ma게인 : 10 ma 오프셋 : 4 ma게인 : 12 ma 오프셋 / 게인값설정을변경한경우전류입력특성에대한디지털출력은다음과같습니다. 구분 디지털아날로그입력전류 ( ma ) 출력범위오프셋값게인값 -20 0 4 10 12 20 예 1 예 2 예 3 예 1 예 2 예 3-192 ~ 16191-8192 ~ 8191-20mA 0mA 0 8000 9600 12000 12800 16000 0mA 10mA -192 0 3200 8000 9600 16000 4mA 12mA -192-192 0 6000 8000 16000-20mA 0mA -8000 0 1600 4000 4800 8000 0mA 10mA -8192-8000 -4800 0 1600 8000 4mA 12mA -8192-8192 -8000-2000 0 8000 제 1 장성능규격및변환특성 1-16 LS 산전연수원

3) 전압, 전류를동시에사용할때의입출력특성 전압과전류를동시에사용할때는입력범위선택스위치를 DC -5~5V 범위로선택 (1번은 Off, 2번은 On) 해주십시오. 예 ) 전압사용채널 : 0 전류사용채널 : 1 1 2 입력범위선택스위치 OFF 1 번 Off, 2 번 On 선택 ( 제품의좌측면에위치 ) 단자대결선전압사용 (0 채널 ) 전류사용 (1 채널 ) 아날로그입력 V0 I0 COM SLD 아날로그입력 V1 I1 COM SLD 전압과전류를동시에사용할때는전압입력범위는 DC -5~5V 만사용할수있습니다. 디지털출력값 1619 1600 1200 8000 4000 0-192 예 1 8191 8000 4000 8800 800 예 2 예 3 0-400 -800-819 전압입력전류입력 -20.48 ma -20 ma 0 ma 4 ma 10 ma 12 ma 20 ma 20.48 ma -5.12V -5V 0 1 2.5 3V 5V 5.12V 아날로그입력 오프셋 / 게인값설정을변경한경우전압 / 전류입력특성에대한디지털출력은다음과같습니다. 구분예 1 예 2 예 3 예 1 예 2 예 3 디지털출력범위 -192 ~ 16191-8192 ~ 8191 오프셋값게인값아날로그입력전압 / 전류 전압 전류 전압 (v) ( ma ) (v) 전류 -5V 0V 1V 2.5V 3V 5V ( ma ) -20mA 0mA 4mA 10mA 12mA 20mA -5-20 0 0 0 8000 9600 12000 12800 16000 0 0 2.5 10-192 0 3200 8000 9600 16000 1 4 3 12-192 -192 0 6000 8000 16000-5 -20 0 0-8000 0 1600 4000 4800 8000 0 0 2.5 10-8192 -8000-4800 0 1600 8000 1 4 3 12-8192 -8192-8000 -2000 0 8000 제 1 장성능규격및변환특성 1-17 LS 산전연수원

주의 1. 디지털출력범위가 192 ~ 16191로지정된경우디지털출력값이 16191또는 192를초과하는아날로그값이입력되어도디지털출력값은 16191 또는 192로고정됩니다. 디지털출력범위가 8192 ~ 8191로지정된경우디지털출력값이 8191또는 8192를초과하는아날로그값이입력되어도디지털출력값은 8191 또는 8192로고정됩니다. 2. 전압은 ±15V, 전류는 ±25mA이상을입력하지말아주십시오. 열상승에의해불량의원인이됩니다. 3. G4F-AD2A에서오프셋 / 게인설정은필히게인값이오프셋값보다크게설정하여주십시오. 그렇지않으면정확한디지털출력을얻을수없게됩니다. 1.3.3 G3F-AD4B의입출력특성 입출력변환특성은 PLC 외부기기로부터의아날로그신호 ( 전압또는전류입력 ) 를디지털값으로변환할때의기울기로아래그림과같습니다. A/D 변환모듈은채널마다아날로그입력범위선택스위치로전압 / 전류선택이가능하고오프셋 / 게인설정은고정되어있으므로변경할수없습니다. 아날로그입력실용범위 1600 1200 디지털출력값 8000 4000 0 아날로그입력 DC 4 ~ 20 ma DC 1 ~ 5V 3.808 ma 0.952 V 4 ma 12 ma 20 ma 1 3 5 20.192 ma 5.048 V 입출력변환특성 주의 1. 디지털출력값이 16000 또는 0을초과하는아날로그값이입력되어도디지털출력값은 16000 또는 0로고정됩니다. 2. 전압은 +15V, 전류는 +25mA이상을입력하지마십시오. 열상승에의해불량의원인이됩니다. 제 1 장성능규격및변환특성 1-18 LS 산전연수원

1) 전압입력 (DC 1 ~5V) 특성 전압선택시초기화펑션블록의입력변수 IN_SEL에서채널마다 1 로설정하여야합니다.. 또한, 입력범위선택스위치의위치를각채널별로 Off에위치하여사용합니다. 전압 / 전류선택스위치 -.Off : 전압 CH0 1 2 3 4 5 6 8 9 10 11 12 13 14 15 채널번호 On On 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 ( 제품의우측면에위치 ) 전압입력특성에대한디지털출력값은다음과같습니다. 구 분 아날로그입력전압 (V) 1 이하 1 2 3 4 5 5 이상 디지털출력값 0 0 4000 8000 12000 16000 16000 2) 전류입력특성 전류선택시초기화펑션블록의입력변수 IN_SEL에서채널마다 0 으로설정하여야합니다.. 전류입력은전압 / 전류선택스위치의위치를각채널별로 On에위치하여사용합니다. 전압 / 전류선택스위치 - On : 전 CH0 1 2 3 4 5 6 8 9 10 11 12 13 14 15 채널번호 On On 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 ( 제품의우측면에위치 ) 전류입력특성에대한디지털출력값은다음과같습니다. 구 분 아날로그입력전류 ( ma ) 4 이하 4 8 12 16 20 20 이상 디지털출력값 0 0 4000 8000 12000 16000 16000 제 1 장성능규격및변환특성 1-19 LS 산전연수원

3) 전압, 전류를동시에사용할때의입력특성 아날로그입력을전압입력으로사용하는채널은해당채널마다초기화펑션블록의입력변수 IN_SEL에서 1 로설정하고, 전압 / 전류선택스위치의위치를 Off로선택해야하며 아날로그입력을전류입력으로사용하는채널은해당채널마다초기화펑션블록의입력변수 IN_SEL에서 0 으로설정하고, 전압 / 전류선택스위치의위치를 On으로선택해야합니다. 예 ) 전압사용채널 : 채널0 ~ 3, 8 ~ 11, 전류사용채널 : 채널4 ~7, 12 ~15 전압 / 전류선택스위치 - On : 전류 CH0 1 2 3 4 5 6 - Off : 전압 On On 8 9 10 11 12 13 14 1 5 채널번호 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 ( 제품의우측면에위치 ) 전압 / 전류입력특성에대한디지털출력값은다음과같습니다. 구분아날로그입력 입력 종류 1~ 5V 1 이하 1 2 3 4 5 5 이상 4~20 ma 4 이하 4 8 12 16 20 20 이상 디지털출력값 0 0 4000 8000 12000 16000 16000 4) 아날로그입력과디지털출력의관계아날로그입력과디지털출력의관계는다음과같습니다. 디지털출력값 8009 8008 8007 8006 8005 8004 8003 8002 8001 8000 1 입력범위 디지털출력값 분해능 아날로그입력값 DC 1~5V DC 4~20 ma 0 ~ 16000 0.25mV 1 μa 3.000 ~ 3.0002 5 12.000 ~ 12.001 3.0002 5 ~ 3.0005 0 12.001 ~ 12.002 3.0005 0 ~ 3.0007 5 12.002 ~ 12.003 3.0007 5 ~ 3.0010 0 12.003 ~ 12.004 3.0010 0 ~ 3.0012 5 12.004 ~ 12.005 3.0012 5 ~ 3.0015 0 12.005 ~ 12.006 3.0015 0 ~ 3.0017 5 12.006 ~ 12.007 3.0017 5 ~ 3.0020 0 12.007 ~ 12.008 3.0020 0~ 3.0025 0 12.008 ~ 12.009 3.0025 0 ~ 3.0027 5 12.009 ~ 12.010 아날로그입력과디지털출력 제 1 장성능규격및변환특성 1-20 LS 산전연수원

1.3.4 오프셋 / 게인설정과디지털출력의관계 (G4F-AD2A 만해당됨 ) 1) 분해능분해능은다음식에의해결정됩니다. (1) 전압입력의경우게인값 오프셋값분해능 = X 1000( mv ) 8000 예 ) 게인값 : 0V 오프셋값 : -10V 0 (-10) 분해능 = X 1000( mv ) = 1.25( mv ) 8000 (2) 전류입력의경우게인값 오프셋값분해능 = X 1000( μa ) 8000 예 ) 게인값 : 0mA오프셋값 : -20mA 0 (-20) 분해능 = X 1000( μa ) = 2.5( μa ) 8000 2) 최대분해능과디지털출력값과의관계 오프셋 / 게인설정에의해다음의계산식과같이된경우에는디지털출력값이 1 씩증감되지않습니다. 게인값 오프셋값 < 분해능 8000 제 1 장성능규격및변환특성 1-21 LS 산전연수원

3) 오프셋 / 게인설정 (1) G3F-AD4A의오프셋 / 게인설정가 ) 오프셋 / 게인설정순서오프셋 / 게인값은 16채널일괄로조정합니다. 오프셋 / 게인조정 조정전준비사항 : 입력범위선택스위치를선택 입력범위선택 A/D 변환용프로그램을 CPU 모듈의메모리에저장 CPU 모듈 : RUN 상태 GMWIN : 변수모니터링 [A/D 변환값 ] 디지털값모니터링 채널 0 에오프셋전압 (DC0V) 또는전류 (0 ma ) 를입력합니다. 오프셋트리머를좌우로조절하면서 GMWIN : 채널 0 의변수모니터링값이오프셋에상당하는값 (8000) 이되도록조절합니다. 오프셋값미세조정 채널 0 에게인전압 (DC10V) 또는전류 (20 ma ) 를입력합니다. 게인트리머를좌우로조절하면서 GMWIN : 채널 0 의변수모니터링값이게인에상당하는값 (16000) 이되도록조절합니다. 게인값미세조정 오프셋 / 게인조정완료 제 1 장성능규격및변환특성 1-22 LS 산전연수원

나 ) 오프셋 / 게인설정에따른입출력특성 디지털출력값 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 2 1 N o 1 입력범위 DC -10~10V -192 ~ 16191 디지털오프셋값게인값분해능출력값 0V 10V 1.25 mv 2 DC -5~5V 0V 5V 0.625 mv 2.500 ~ 2.500625 5.000 ~ 5.00125 2.500625 ~ 2.50125 2.50125 ~ 2.501875 아날로그입력값 5.00125 ~ 5.0025 2.501875 ~ 2.5025 2.5025 ~ 2.503125 5.0025 ~ 5.00375 2.503125 ~ 2.50375 2.50375 ~ 2.504375 5.00375 ~ 5.005 2.504375 ~ 2.505 전압입력과디지털출력 디지털출력값 1200 1200 1200 1200 1200 1200 1200 1 N o 입력범위 디지털출력값 오프셋값게인값분해능 아날로그입력값 1 DC -20~20 ma -192 ~ 16191 0 ma 20 ma 2.5 μa 10.000 ~ 10.0025 10.0025 ~ 10.0050 10.0050 ~ 10.0075 10.0075 ~ 10.0100 10.0100 ~ 10.0125 10.0125 ~ 10.0150 전류입력과디지털출력 제 1 장성능규격및변환특성 1-23 LS 산전연수원

(2) G4F-AD2A의오프셋 / 게인설정가 ) 오프셋 / 게인설정순서오프셋 / 게인값은각각의채널에대해서조정합니다. 오프셋 / 게인조정 테스트모드용채널선택스위치를 0 번채널로설정합니다. : RUN LED 1 초주기로점멸 테스트모드상태 채널 0 에오프셋전압또는전류를입력합니다. 오프셋스위치를위쪽방향으로조작하여해당채널의오프셋에상당하는값이설정되도록조절합니다. : 위쪽방향조작시 RUN LED 점등 오프셋값조정 채널 0 에게인전압또는전류를입력합니다. 게인스위치를위쪽방향으로조작하여해당채널의게인에상당하는값이설정되도록조절합니다. : 위쪽방향조작시 RUN LED 점등 게인값조정 사용하는모든채널 (0~3) 설정완료 오프셋 / 게인조정완료 : 채널선택스위치를 4~F 채널에위치 ( 노멀모드상태 ) 주의 1. 오프셋값및게인값은실사용상태로설정해주십시오. 2. 오프셋값및게인값은 G4F-AD2A 내에기억되어전원이 Off 되어도지워지지않습니다. 3. 테스트 (Test) 모드로하면모든채널의 A/D변환이중지됩니다. 4. 오프셋 / 게인설정은 DC 10 ~ 0 ~ 10V 또는 DC 20 ~ 0 ~ 20mA의범위로해주십시오. 5. 이범위를초과해서설정한경우최대분해능 / 정밀도가성능규격안에들수없습니다. 6. 3.2.2항의 *5에표시된장소의접지를변경 ( 미실시 실시또는실시 떼어냄 ) 할경우에는반드시오프셋 / 게인설정을처음부터다시해주십시오. 제 1 장성능규격및변환특성 1-24 LS 산전연수원

나 ) 오프셋 / 게인설정에따른입출력특성 디지털출력값 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 2 1 N o 1 입력범위 DC -10~10V 디지털오프셋값게인값분해능출력값 -10V 0V 1.25 mv -192 2 DC -5~5V ~ -5V 0V 0.625 mv 16191 3 DC -5~5V 1V 3V 0.25 mv 2.500 ~ 2.500625 5.000 ~ 5.00125 2.500625 ~ 2.50125 4.000 ~ 4.000625 2.50125 ~ 2.501875 아날로그입력값 5.00125 ~ 5.0025 * 3 은최대분해능을넘기때문에디지털값이 1 씩증감되지않습니다. 전압입력과디지털출력 2.501875 ~ 2.5025 3 5.0025 ~ 5.00375 2.5025 2.503125 ~ ~ 2.503125 2.50375 4.000625 ~ 4.00125 2.50375 ~ 2.504375 4.00125 ~ 4.001875 5.00375 ~ 5.005 2.504375 ~ 2.505 디지털출력값 1200 1200 1200 1200 1200 1200 1200 1 2 N o 입력범위 디지털출력값 오프셋값게인값분해능 아날로그입력값 1 2 DC -20~20 ma -192 ~ DC -20~20 16191 ma -20 ma 0 ma 2.5 μa 4 ma 12 ma 1 μa 10.000 ~ 10.0025 10.0025 ~ 10.0050 16.000 ~ 16.0025 10.0050 ~ 10.0075 10.0075 ~ 10.0100 16.0025 ~ 16.0050 10.0100 ~ 10.0125 10.0125 ~ 10.0150 16.0050 ~ 16.0075 * 2 는최대분해능을넘기때문에디지털값이 1 씩증감되지않습니다. 전류입력과디지털출력 제 1 장성능규격및변환특성 1-25 LS 산전연수원

1.4 A/D 변환특성 필터처리 A/D 변환방샘플링 ( 순시값 ) 처리평균처리횟수에의한평균처리시간에의한평균처리 1.4.1 필터처리필터는노이즈또는입력값의급격한변동을필터 ( 지연 ) 처리함으로써아날로그값에대한안정된디지털입력값으로사용할수있습니다. PVfn = (1-α) X PVn + α X PVfn 1 PVfn 여기서 : 현재의필터출력값 PVn PVfn : 현재의 A/D 변환값 1 : 이전의필터출력값 α : 필터상수 (0.01 ~0.99) 사용되는필터상수값은 1 ~99 입니다. 예1) G3F-AD4A/G4F-AD2A의경우 오프셋 : DC-10V, 게인 : DC0V일때 ( 입력전압범위 : DC-10~ 10V, 디지털출력범위 : -192 ~ 16191) 아날로그입력이 10V 5V 0V 5V 순으로변하면, α값에따라필터출력값은다음과같습니다. α값 필터출력값 비 고 0.01 0 3960 7960 11960 이전값에 1% 치우친값 0.5 0 2000 5000 8500 이전값에 50% 치우친값 0.99 0 40 120 239 이전값에 99% 치우친값 예2) G3F-AD4B의경우 입력전압범위 : DC1~ 5V, 디지털출력범위 : 0 ~ 16000 아날로그입력이 1V 2V 3V 4V 순으로변하면, α값에따라필터출력값은다음과같습니다. α값 필터출력값 비 고 0.01 0 3960 7960 11960 이전값에 1% 치우친값 0.5 0 2000 5000 8500 이전값에 50% 치우친값 0.99 0 40 120 239 이전값에 99% 치우친값 즉, 필터를금지하면현재의 A/D 변환값을그대로출력하게되고, 필터를사용하면현재의 A/D 변환값과이전값사이에서필터상수값에의해어느쪽에비중을많이두느냐에따라 A/D 변환값이결정됩니다. 제 1 장성능규격및변환특성 1-26 LS 산전연수원

1.4.2 샘플링 ( 순시값 ) 처리일반적인 A/D변환처리입니다. 즉입력된아날로그값을평균처리없이바로디지털값으로변환됩니다. 샘플링처리된디지털값이메모리에저장되는시간은사용하는채널수에따라달라집니다. ( 처리시간 ) = ( 사용채널수 ) X ( 변환속도 ) 예 ) 사용채널수가 3인경우 G3F-AD4A(G3F-AD4B) : 3( 사용채널수 ) X 3( 변환속도 ) = 9( ms ) G4F-AD2A : 3( 사용채널수 ) X 5( 변환속도 ) = 15( ms ) 샘플링이란평균처리를사용하지않았을때, 아날로그입력이디지털값으로바로변환하는것을의미합니다. 1.4.3 평균처리 1) 평균처리사용이유노이즈나비정상적인아날로그입력을평균처리함으로써시스템의제어를원활하게하기위해서사용합니다 2) 평균처리종류평균처리의종류는시간평균과횟수평균이있습니다. (1) 시간평균처리가 ) 설정범위 G3F-AD4A(G3F-AD4B) : 96 ~ 12,000( ms ) G4F-AD2A : 40 ~ 20,000( ms ) 나 ) 시간평균처리를설정하였을경우사용채널수에따라설정시간내의평균처리횟수가정해집니다. 설정시간설정시간내의평균처리횟수 = 사용채널수 X 변환속도예 ) 사용채널수 4, 설정시간 120ms인경우평균처리횟수 G3F-AD4A(G3F-AD4B) : 120 ( 4 X 3 ) = 10회 G4F-AD2A : 120 ( 4 X 5 ) = 6회 제 1 장성능규격및변환특성 1-27 LS 산전연수원

다 ) 설정시간을 ( 사용채널수 X 변환속도 ) 로나누었을때나머지가발생하였을경우 처리횟수는올림하여평균처리횟수를 ( 사용채널수 X 변환속도로나눈값의몫 + 1 회 ) 로 평균처리합니다. 예 ) 사용채널수 4, 설정시간 150ms인경우 G3F-AD4A(G3F-AD4B) : 150 ( 4 X 3 ) = 12회 + 나머지 6 13회 G4F-AD2A : 150 ( 4 X 5 ) = 7회 + 나머지 10 8회 (2) 횟수평균처리가 ) 설정범위 G3F-AD4A(G3F-AD4B, G4F-AD2A ) : 2 ~ 4,000( 회 ) 나 ) 횟수평균에의한평균값이메모리에저장되는시간은사용채널수에따라달라집니다. 처리시간 = 설정횟수 X 사용채널수 X 변환속도 예 ) 사용채널수 4, 평균처리횟수가 50회인경우 G3F-AD4A(G3F-AD4B) : 50 X 4 X 3 = 600ms G4F-AD2A: 50 X 4 X 5 = 1000ms 제 1 장성능규격및변환특성 1-28 LS 산전연수원

1.5 입력배선예 1.5.1 배선시의주의사항 1) 교류와 A/D변환모듈의외부입력신호를별도의케이블을사용하여교류측에서발생하는서지또는유도노이즈의영향을받지않도록하여주십시오 2) 전선은주위온도, 허용하는전류를고려해서선정되어야하며, 전선의최대사이즈 AWG22(0.3 mm2 ) 이상이좋습니다. 3) 배선할경우에고온이발생하는기기나물질에너무가까이있거나, 기름등에배선이장시간직접접촉하게되면합선의원인이되어파손이나오동작을발생할수있습니다. 4) 단자대에아날로그입력을인가하기전에극성을확인해야합니다. 5) 배선을고압선이나동력선과함께배선하는경우에는유도장애를일으켜오동작이나고장의원인이될수있습니다. 1.5.2 배선예 1) G3F-AD4A (1) 전압입력의경우신호원 DC 10V ~10V *1 CH 0 전압 / 전류선택스위치 R R *4 R 전압범위선택스위치 V1/I V2 CH F *1 R R R *3 *2 *5 SLD AGND FG (2) 전류입력의경우 신호원 DC 20 ma ~20 ma *1 CH 0 전압 / 전류선택스위치 R R *4 R 전압범위선택스위치 V1/I V2 CH F *1 R R R *3 *2 *5 SLD AGND FG 제 1 장성능규격및변환특성 1-29 LS 산전연수원

2) G3F-AD4B (1) 전압입력의경우 CH 0 전압 / 전류선택스위치 *1 R R R CH F *1 *3 *2 FG R R R (2) 전류입력의경우 CH 0 전압 / 전류선택스위치 *1 R R R CH F *1 *3 *2 FG R R R 3) G3F-AD3A, G4F-AD3A (1) 전압입력의경우 *1 CH0 전압 / 전류선택스위치 R R R 전압범위선택스위치 R R CH7 *1 *2 R R R (2) 전류입력의경우 *1 CH0 전압 / 전류선택스위치 R R R 전압범위선택스위치 R R CH7 *1 R R R *1 : 전선은 2심트위스트실드선을사용하여주십시오. *2 : 노이즈가많은경우접지해주십시오 *3 : 노이즈가많은경우 SLD 단자를 FG 와함께접지해주십시오. 제 1 장성능규격및변환특성 1-30 LS 산전연수원

4) G4F-AD2A (1) 전압입력의경우 신호원 DC 10V ~10V CH 0 V0 I0 R R *4 입력범위선택스위치 DC±10V *1 COM0 SLD R DC±10V/20 ma CH 3 V3 R I3 R *4 *1 *2 COM3 SLD R *3 *5 AGND FG (2) 전류입력의경우 신호원 DC 20 ma ~20 ma CH 0 입력범위선택스위치 V0 I0 R *4 R DC±10V *1 COM0 SLD R DC±10V/20 ma CH 3 V3 R I3 R *4 *1 *2 COM3 SLD R AGND *3 *5 FG *1 : 전선은 2심트위스트실드선을사용하여주십시오. *2 : SLD단자와 AGND단자를반드시접속하십시오. *3 : 노이즈가많은경우 SLD단자를 FG와함께접지해주십시오. *4 : 입력저항을나타냅니다. *5 : 노이즈가많은경우접지해주십시오. 전원모듈의 FG와접지하는것이좋은경우가있습니다. 제 1 장성능규격및변환특성 1-31 LS 산전연수원

5) G6F-AD2A (1) 전압입력의경우 신호원 DC 10~10V CH0 +15V 입력범위선택스위치 *1 V+ I+ COM R *2 R *2 R *2-15V J1 J2 1 2 3 CH3 *1 V+ I+ COM R *2 R *2 R *2 FG *3 G6F-AD2A (2) 전류입력의경우 신호원 DC 4~20mA CH0 +15V 입력범위선택스위치 *1 V+ I+ COM R *2 R *2 R *2-15V J1 J2 1 2 3 CH3 *1 V+ I+ COM R *2 R *2 R *2 FG *3 G6F-AD2A *1 : 전선은 2 심트위스트실드선을사용하여주십시오. *2 : 입력저항을나타냅니다. *3 : 노이즈가많은경우접지해주십시오. 전원모듈의 FG 와접지하는것이좋은경우가있습니다. 제 1 장성능규격및변환특성 1-32 LS 산전연수원

제 2 장 GLOFA-GM 프로그래밍 A/D 변환모듈을사용하기위해서는 A/D변환모듈의내부메모리와 PLC CPU간의인터페이스를위한펑션블록을사용해야합니다. 2.1 GMWIN에서 A/D 변환모듈의펑션블록등록절차 D/A 변환모듈용펑션블록을사용하기위해서는먼저라이브러리의등록이필요합니다. - Project창에서 Library창을선택합니다. - 마우스오른쪽버튼을눌러팝업메뉴를부릅니다. - 팝업메뉴에서 [ 프로젝트항목추가 ] [ 라이브러리 ] 선택. - 열기창에서 SPECIAL. fb 또는 REMOTE*. fb 파일을선택하고열기를클릭합니다.. ( : GMR의경우 R,GM1/2의경우 1, GM3의경우 3, GM4의경우 4, GM6의경우 6 에해당됩니다.) (GM3의경우예 ) - Library창에서 SPECIAL 라이브러리가추가된것을확인합니다. 추가된라이브러리 ( 특수모듈에관련된라이브러리는모두펑션블록입니다.) (SPECIAL 라이브러리를추가한경우예 ) 제 2 장 GLOFA-GM 프로그래밍 2-1 LS 산전연수원

2.2 펑션블록의종류 GMWIN에서사용되는 A/D변환모듈용펑션블록에대해서설명합니다. 펑션블록의종류는다음과같습니다. No G3F-AD4A G3F-AD4B G3F-AD3A 로컬리모트로컬리모트로컬리모트 비 고 1 AD4INI ADR4INI AD4BINI ADR4BINI AD3INI ADR3INI 모듈초기화 2 AD4ARD ADR4RD AD4BARD ADR4BRD AD3ARD ADR3RD A/D 변환값읽기 ( 복수형 ) 3 AD4RD - AD4BRD - AD3RD - A/D 변환값읽기 ( 단일형 ) No G4F-AD3A G4F-AD2A G6F-AD2A 로컬리모트로컬리모트로컬리모트 비 고 1 AD3INI ADR3INI AD2INI ADR2INI AD2INI ADR62INI 모듈초기화 2 AD3ARD ADR3RD AD2ARD ADR2RD AD2ARD ADR62RD A/D 변환값읽기 ( 복수형 ) 3 AD3RD - AD2RD - AD2RD - A/D 변환값읽기 ( 단일형 ) G3F AD4A 1.Special.3fb. AD4INI. AD4ARD. AD4RD 2.Remote3.3fb. ADR4INI. ADR4RD 3.Remote4.3fb. ADR4INI. ADR4RD G3F AD4B 1.Special.3fb. AD4BINI. AD4BARD. AD4BRD 2.Remote3.3fb. ADR4BINI. ADR4BRD 3.Remote4.3fb. ADR4BINI. ADR4BRD G3F AD3A 1.Special.3fb. AD3INI. AD3ARD. AD3RD 2.Remote3.3fb. ADR3INI. ADR3RD 3.Remote4.3fb. ADR3INI. ADR3RD 로컬용펑션블록등록 GM3 리모트용펑션블록등록 GM4 리모트용펑션블록등록 G4F AD3A G4F AD2A G6F AD2A 1.Special.4fb. AD3INI. AD3ARD. AD3RD 2.Remote3.4fb. ADR3INI. ADR3RD 3.Remote4.4fb. ADR3INI. ADR3RD 1.Special.4fb. AD2INI. AD2ARD. AD2RD 2.Remote3.4fb. ADR2INI. ADR2RD 3.Remote4.4fb. ADR2INI. ADR2RD 1.Special.6fb. AD2INI. AD2ARD. AD2RD 3.Remote6.6fb. ADR62INI. ADR62RD 로컬용펑션블록등록 GM3 리모트용펑션블록등록 GM4 리모트용펑션블록등록 GM6 리모트용펑션블록등록 제 2 장 GLOFA-GM 프로그래밍 2-2 LS 산전연수원

2.3 펑션블록의공통사항 아래의입출력변수명의기능과사용법은 2.4 항에서설명되는모든펑션블록에공통되는 내용으로동일합니다. 구분변수명 Datatype 내용 REQ 펑션블록실행요구영역 이영역은초기화펑션블록의실행을요구하는영역입니다. 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면모듈초기화펑션블록이실행됩니다. 입력 BASE USINT SLOT USINT 베이스위치번호 A/D 변환모듈이장착된베이스의번호를쓰는영역입니다. 설정범위 : GM1시리즈 (0 31), GM2시리즈 (0 7), GM3/4시리즈 (0 3) GM6시리즈 (0,1) 슬롯의위치번호 위치결정모듈이장착된슬롯의번호를설정하는영역입니다. 설정범위 : 0 7 CH [Array] *1 사용채널지정영역 0 이면사용하지않는채널 1 이면사용하는채널 DONE STAT USINT 펑션블록실행완료상태표시영역 초기화펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며, 에러가발생되면 0 이출력되면서운전정지상태가됩니다. 에러상태표시영역 펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. 출력 ACT [Array] *1 운전채널표시영역 초기화펑션블록이에러없이실행된후지정된채널의설정조건이정상이면 1 이출력되고, 비정상이면 0 이출력됩니다. 운전지정이안된채널은 0 이출력됩니다. DATA INT [Array] *1 A/D 변환값출력영역 G3F-AD4A, G4F-AD2A : -192 ~ 16191 또는 8192 ~ 8191 G4F-AD4B : 0 ~ 16000 또는 8000 ~ 8000 G3F-AD3A, G4F-AD3A : -48 ~ 4047 또는 2048 ~ 2047 G6F-AD2A : -48 ~ 4047 또는 2048 ~ 2047 알아두기 1 : Array 수는 G3F-AD4A :16, G3F-AD4B: 16, G3F-AD3A :8, G4F-AD3A :8, G4F-AD2A : 4, G6F-AD2A :4 이며, 원소번호가채널을의미합니다. 제 2 장 GLOFA-GM 프로그래밍 2-3 LS 산전연수원

2.4 로컬용펑션블록 2.4.1 모듈초기화펑션블록 (1) G3F-AD4A : AD4INI, G4F-AD2A : AD2INI, G3F-AD4B : AD4BINI 모듈초기화펑션블록은 A/D 변환모듈의베이스위치, 슬롯장착위치, 사용채널지정, A/D변환용 Data Type, 필터처리정보및평균처리정보를설정하여프로그램에이용합니다. 펑션블록형태 구분 입력 변수명 REQ BASE SLOT CH IN_ SEL *3 DATA TYPE FILT _EN FILT _VAL AVG_ EN AVG_ SEL NUM/ TIME DONE STAT Datatyp e USINT USINT [Array] [Array] *3 [Array] *1 [Array] *2 USINT [Array] *2 [Array] *2 [Array] *2 USINT [Array] *2 USINT 펑션블록실행요구영역 베이스위치번호 슬롯의위치번호 사용채널지정영역 내용 아날로그입력종류 ( 전류 / 전압 ) 지정 0 이면전류입력선택 1 이면전압입력선택출력데이터타입지정영역 각채널의출력데이터타입의종류를설정하는영역입니다. 0 이면디지털출력범위가 -192 16191 (G3F-AD4B : 0 16000) 1 이면디지털출력범위가 -8192 8191 (G3F-AD4B : -8000 8000) 필터처리의사용허가 / 금지설정영역 0 이면필터처리사용금지 1 이면필터처리사용허가필터상수값설정영역 설정범위 : 1 99 평균처리의사용허가 / 금지설정영역 0 이면평균처리의사용금지 1 이면평균처리의사용허가평균처리방식지정영역 0 이면횟수평균 1 이면시간평균평균횟수또는평균시간지정영역 AVG_SEL에서지정한평균처리방식에따라횟수 ( 회 ) 또는시간 ( ms ) 을지정 평균횟수 : 2 4000 평균시간 : G3F-AD4A/G3F-AD4B [ 96 12,000( ms ) ] G4F-AD2A [ 40 20,000( ms ) ] 펑션블록실행완료상태표시영역 에러상태표시영역 출력 ACT [Array] 운전채널표시영역 알아두기 1 : Array 수는 G3F-AD4A :16, G3F-AD4B: 16, G4F-AD2A : 4 이며, 원소번호가채널을의미합니다. 2 : Array 수는 G3F-AD4A :4, G3F-AD4B: 16, G4F-AD2A : 4 입니다. G3F-AD4A 에서는원소번호 [0] 이채널 0, 1, 2, 3 을일괄로지정하며, 원소번호 [1] 이채널 4, 5, 6, 7 을일괄로지정하며, 원소번호 [2] 이채널 8, 9, 10, 11 을일괄로지정하며, 원소번호 [3] 이채널 12, 13, 14, 15 를일괄로지정합니다. G4F-AD2A 에서는원소번호가채널을의미합니다. 3 : G3F-AD4B 에서만사용하며, :Array 수는 16 이며, 원소번호가채널을의미합니다. 제 2 장 GLOFA-GM 프로그래밍 2-4 LS 산전연수원

(2) G3F-AD3A/G4F-AD3A : AD3INI 모듈초기화펑션블록은 A/D 변환모듈의베이스위치, 슬롯장착위치, 사용채널지정, 사용전압종류 지정, 횟수평균처리정보를설정하여프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 입력 출력 REQ 펑션블록실행요구영역 BASE USINT 베이스위치번호 SLOT USINT 슬롯의위치번호 CH [8] 사용채널지정영역 TYPE [8] 아날로그입력전압종류를지정하는영역 0 이면전압 DC1 5, 전류 DC4 20mA 1 이면전압 DC0 10 1 로선택하면전류를아날로그입력으로사용할수없습니다. AVG_ EN AVG_ NUM [8] USINT[8] 횟수평균처리의사용허가 / 금지설정영역 0 이면샘플링처리 1 이면횟수평균처리횟수평균상수값설정영역 설정범위 : 2 255 DONE 펑션블록실행완료상태표시영역 STAT USINT 에러상태표시영역 ACT [8] 운전채널표시영역. 알아두기 Datatype 중 [8] 과 USINT[8] 은원소의수가 8 임을나타내며이는채널수와번호를의미합니다. (3) G6F-AD2A : AD2INI 모듈초기화펑션블록은 A/D 변환모듈의베이스위치, 슬롯장착위치, 사용채널지정, 사용전압종류 지정, 횟수평균처리정보를설정하여프로그램에이용합니다 펑션블록형태구분변수명 Datatype 내용 입력 출력 REQ 펑션블록실행요구영역 BASE USINT 베이스위치번호 SLOT USINT 슬롯의위치번호 CH [4] 사용채널지정영역 DATA TYPE AVG_ EN AVG_ NUM [4] [4] USINT[4] 디지털출력데이터종류를지정하는영역 0 이면 : -48 ~ 4047 1 이면 : -2048 ~ 2047 횟수평균처리의사용허가 / 금지설정영역 0 이면샘플링처리 1 이면횟수평균처리횟수평균상수값설정영역 설정범위 : 2 255 DONE 펑션블록실행완료상태표시영역 STAT USINT 에러상태표시영역 ACT [4] 운전채널표시영역 알아두기 Datatype 중 [4] 과 USINT[4] 은원소의수가 4 임을나타내며이는채널수와번호를의미합니다. 제 2 장 GLOFA-GM 프로그래밍 2-5 LS 산전연수원

2.4.2 모듈읽기 _Array형펑션블록 (1) G3F-AD4A : AD4ARD, G3F-AD4B : AD4BARD, G3F-AD3A/G4F-AD3A : AD3ARD, G4F-AD2A/G6F-AD2A : AD2ARD 복수형모듈읽기펑션블록은 A/D 변환모듈의채널을일괄로처리하며사용채널로지정되면 A/D 변환한디지털값을읽어서출력변수 DATA에나타내어프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 REQ 펑션블록실행요구영역 입력 BASE USINT 베이스위치번호 SLOT USINT 슬롯의위치번호 CH [Array] *1 사용채널지정영역 DONE 펑션블록실행완료상태표시영역 STAT USINT 에러상태표시영역 출력 ACT [Array] *1 운전채널표시영역 DATA INT [Array] *1 A/D 변환값출력영역 알아두기 1 : Array 수는 G3F-AD4A :16, G3F-AD4B: 16, G4F-AD2A : 4 이며, 원소번호가채널을의미합니다. 2.4.3 모듈읽기 _ 단일형펑션블록 (1) G3F-AD4A : AD4RD, G3F-AD4B : AD4BRD, G3F-AD3A/G4F-AD3A : AD3RD, G4F-AD2A/G6F-AD2A : AD2RD 단일형모듈읽기펑션블록은 A/D 변환모듈의한채널만처리하며 A/D 변환한디지털값을읽어서출력변수 DATA 에나타내어프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 REQ 펑션블록실행요구영역 입력 BASE USINT 베이스위치번호 SLOT USINT 슬롯의위치번호 CH USINT 사용채널지정영역 DONE 펑션블록실행완료상태표시영역 출력 STAT USINT 에러상태표시영역 DATA INT A/D 변환값출력영역 제 2 장 GLOFA-GM 프로그래밍 2-6 LS 산전연수원

2.5 리모트용펑션블록 2.5.1 모듈초기화펑션블록 (1) G3F-AD4A : ADR4INI, G3F-AD4B : ADR4BINI,G3F-AD3A : ADR33INI, G4F-AD3A : ADR3INI G4F-AD2A : ADR2INI, G6F-AD2A : ADR62INI) 모듈초기화펑션블록은 A/D 변환모듈의자국통신모듈의슬롯위치번호, 리모트 I/O국에장착된통신모듈의국번, 베이스위치, 슬롯장착위치, 사용채널지정, A/D변환용 Data Type, 필터처리정보및평균처리정보를설정하여프로그램에이용합니다구펑션블록형태변수명 Datatype 내용분 입력 출력 REQ 상승 Edge에서펑션블록실행요구영역 NET_ 펑션블록이전송될자국의통신모듈이장착된슬롯위치번호 USINT NO 설정범위 : 0 7 ST_NO USINT 리모트 I/O국에장착된통신모듈의국번 설정범위 : 0 63 BASE USINT 베이스위치번호 SLOT USINT 슬롯의위치번호 CH [Array] *1 사용채널지정영역 아날로그입력종류 ( 전류 / 전압 ) 지정 IN_ 0 이면전류입력선택 SEL *3 [Array] 1 이면전압입력선택 DATA TYPE [Array] *1 출력데이터타입지정영역 FILT _EN [Array] *2 필터처리의사용허가 / 금지설정영역 FILT USINT _VAL [Array] *2 필터상수값설정영역 AVG_ EN [Array] *2 평균처리의사용허가 / 금지설정영역 AVG_ SEL NUM/ TIME [Array] *2 USINT [Array] *2 평균처리방식지정영역 평균횟수또는평균시간지정영역 NDR 펑션블록실행이에러없이종료된경우 1 이되며, 실행조건이성립된스켄동안 1 을유지하고다음스켄에서 0 이됩니다. ERR 에러정보표시영역 초기화펑션블록실행중에러가발생되면 1 이출력되어운전정지상태가되고, 실행조건이성립된스켄동안 1 을유지하며, 다음스켄에서 0 이됩니다. STAT USINT 에러상태표시영역 ACT [Array] *1 운전채널표시영역. 알아두기 1 : Array 수는 G3F-AD4A :16, G3F-AD4B: 16, G4F-AD2A : 4 이며, 원소번호가채널을의미합니다. 2 : Array 수는 G3F-AD4A :4, G3F-AD4B: 16, G4F-AD2A : 4 입니다. G3F-AD4A 에서는원소번호 [0] 이채널 0, 1, 2, 3 을일괄로지정하며, 원소번호 [1] 이채널 4, 5, 6, 7 을일괄로지정하며, 원소번호 [2] 이채널 8, 9, 10, 11 을일괄로지정하며, 원소번호 [3] 이채널 12, 13, 14, 15 를일괄로지정합니다. G4F-AD2A 에서는원소번호가채널을의미합니다. 3 : G3F-AD4B 에서만사용하며, :Array 수는 16 이며, 원소번호가채널을의미합니다. 제 2 장 GLOFA-GM 프로그래밍 2-7 LS 산전연수원

2.5.2 모듈읽기펑션블록 (1) G3F-AD4A : ADR4RD, G3F-AD4B : ADR4BRD, G3F-AD3A : ADR33RD, G4F-AD3A : ADR3RD, G4F-AD2A: ADR2RD, G6F-AD2A : ADR62RD 리모트에서의모듈읽기펑션블록은 A/D 변환모듈의전채널을일괄로처리하며사용채널로지정되면 A/D 변환한디지털값을읽어서출력변수 DATA에나타내어프로그램에이용합니다 펑션블록형태구분변수명 Datatype 내용 REQ 상승 Edge 에서펑션블록실행요구영역 NET_ NO USINT 펑션블록이전송될자국의통신모듈이장착된슬롯위치번호 설정범위 : 0 7 입력 ST_N O USINT 리모트 I/O 국에장착된통신모듈의국번 설정범위 : 0 63 BASE USINT 베이스위치번호 SLOT USINT 슬롯의위치번호 CH NDR ERR [Array] 사용채널지정영역 펑션블록실행이에러없이종료된경우 1 이되며, 실행조건이성립된스켄동안 1 을유지하고다음스켄에서 0 이됩니다. 에러정보표시영역 초기화펑션블록실행중에러가발생되면 1 이출력되어운전정지상태가되고, 실행조건이성립된스켄동안 1 을유지하며, 다음스켄에서 0 이됩니다. STAT USINT 에러상태표시영역 ACT [Array] 운전채널표시영역 출력 DATA INT [Array] A/D 변환값출력영역 제 2 장 GLOFA-GM 프로그래밍 2-8 LS 산전연수원

2.6 펑션블록상의에러코드 출력변수 STAT 에나타내는에러종류및조치방법에대해서설명합니다. STAT 번호 구분내용 펑션블록읽기초기화 Array형단일형 조치방법 0 정상동작중 О О О - 1 베이스의위치가설정범위초과 О О О 설정범위내로수정 (4.2항참조 ) 2 해당베이스의 H/W 에러 О О О A/S 의뢰 3 슬롯의위치번호가설정범위초과 О О О A/D 변환모듈이장착된올바른슬롯번호지정 4 지정한슬롯에 A/D 변환모듈이비어있음 О О О 지정된슬롯에 A/D 변환모듈을장착 5 A/D 변환모듈이아닌다른모듈이장착되어있음 О О О 지정된슬롯에 A/D 변환모듈을장착 6 로컬 채널번호가설정범위초과 - - О 사용채널지정을바르게설정 7 A/D 변환모듈의 H/W 에러 О О О A/S 의뢰 8 A/D 변환모듈의공용메모리에러 О О О A/S 의뢰 9 초기화펑션블록에서사용채널미지정 - О О 초기화펑션블록에서사용채널을바르게지정 10 테스트 (Test) 모드 О О 테스트모드에서노멀모드로전환 (G4F-AD2A만해당 ) 11 필터값설정초과 О 설정범위 1 99 내로수정 17 평균횟수 / 시간평균값설정범위초과 - - 설정범위 [ 횟수 :2 4000회, 시간 :G3F-AD4A, G3F-AD4B (96 12,000ms)/G4F-AD2A(40 20,000ms)] 로수정 128 리모트용통신모듈의 H/W 에러 О О 리모트통신모듈참조 129 베이스의위치가설정범위초과 О О 설정범위내로수정 (4.2항참조 ) 131 슬롯의위치번호가설정범위초과 О О A/D 변환모듈이장착된올바른슬롯번호지정 133 A/D 변환모듈이아닌다른모듈이장착되어있음 О О 지정된슬롯에 A/D 변환모듈을장착 135 A/D 변환모듈의 H/W 에러 О О A/S 의뢰 리모트 - 136 A/D 변환모듈의공용메모리에러 О О A/S 의뢰 137 초기화펑션블록에서사용채널미지정 - О 초기화펑션블록에서사용채널을바르게지정 138 테스트 (Test) 모드 О 테스트모드에서노멀모드로전환 (G4F-AD2A만해당 ) 144 필터값설정초과 О 설정범위 1 99 내로수정 145 평균횟수값설정범위초과 - 설정범위 [ 횟수 :2 4000회, 시간 :G3F-AD4A, G3F-AD4B (96 12,000ms)/G4F-AD2A(40 20,000ms)] 로수정 제 2 장 GLOFA-GM 프로그래밍 2-9 LS 산전연수원

제 3 장프로그램예제 (GLOFA-GM 용 ) 3.1 A/D 변환값의대소구분프로그램 1) 시스템구성 GM3- PA1A GM3- CPUA G3F- AD4A G3Q- RY4A 2) 초기설정내용 (1) 사용채널 : 채널 0, 채널 2, 채널 4 (2) 출력 Data Type 지정 : -192 16191( 채널 0, 2, 4) (3) 필터사용채널 : 채널 0 (4) 필터상수설정 : 채널 0 = 50 (5) 평균처리지정 : 채널 2, 4 (6) 횟수평균지정및설정값 : 채널 2 = 100 회 (7) 시간평균지정및설정값 : 채널 4 = 200 ms (8) 아날로그입력 : 전류입력 3) 프로그램설명 (1) 채널 0 의디지털값이 12,000 보다작을때 %Q0.1.0 을 On (2) 채널 2 의디지털값이 13,600 보다클때 %Q0.1.1 을 On (3) 채널 4 의디지털값이 12,000 보다크거나같고 13,600 보다작거나같을때 %Q0.1.2 을 On (4) 채널 4 의디지털값이 12,800 과같을때 %Q0.1.3 을 On 4) 프로그램 (1) G4F-AD4A 의경우가 ) 프로그램상주의사항알아두기 G3F-AD4A 를사용할때프로그램의초기설정내용중 1) (3) 항에서채널 0 을필터사용으로선택하면채널 0 채널 3 모두가필터사용으로선택됨. 2) (4) 항에서채널 0 을필터상수값으로설정하면채널 0 채널 3 모두가필터상수값을 50 으로설정됨. 3) (5) 항에서채널 2 와채널 4 를평균처리지정하면채널 0 채널 3, 채널 4 채널 7 모두가평균처리로지정됨. 4) (6) 항에서채널 2 를횟수평균값 100 회로지정하면채널 0 채널 3 모두가횟수평균값 100 회로설정됨. 5) (7) 항에서채널 4 를시간평균값 200 ms로지정하면채널 4 채널 7 모두가횟수평균값 200 ms로설정됨. 나 ) 프로그램에사용된입출력변수 Variable Name Var_Kind Data Type (AT Address) (Initial Value) 채널지정 : VAR : ARRAY [0..15] OF : = { 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0 } 초기화 I : VAR : FB instance 읽기 : VAR : FB instance 평균허가 : VAR : ARRAY [0..3] OF : = { 1,1,0,0 } 횟수시간 : VAR : ARRAY [0..3] OF : = { 0,1,0,0 } DATA : VAR : ARRAY [0..15] OF INT 입력타입 : VAR : ARRAY [0..15] OF : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 필터허가 : VAR : ARRAY [0..3] OF : = { 1,0,0,0 } 필터값 : VAR : ARRAY [0..3] OF USINT : = { 50,0,0,0 } 운전채널 : VAR : ARRAY [0..15] OF 초기화 _ 에러정보 : VAR : USINT 평균값 : VAR : ARRAY [0..3] OF UNIT : = { 100,200,0,0 } 기동준비 : VAR : 출발 : VAR : 제 3 장프로그램예제 (GLOFA-GM) 3-1 LS 산전연수원

다 ) 프로그램예 정상적으로 A/D 모듈초기화완료 기동조건 정상적으로 A/D 변환읽기완료 읽기펑션블록처리중에러상태표시 장착된베이스번호지정 장착된슬롯번호지정 사용채널지정 초기화펑션블록처리중에러상태표시 초기화펑션블록실행중운전채널표시 읽기펑션블록실행중운전채널표시 사용채널의 A/D 변환값데이터표시 아날로그입력데이터형식지정 필터처리허가 / 금지지령 필터값입력 평균처리허가 / 금지지령 평균처리횟수 / 시간으로지정 평균처리횟수 / 시간값지정 채널 0 의디지털값이 12000 보다작을때 %Q0.1.0 이 On 채널 0 의 A/D 변환값 채널 2 의디지털값이 13600 보다클때 %Q0.1.1 이 On 채널 2 의 A/D 변환값 채널 4 의디지털값이 12000 보다크거가같고 13600 보다작거나같을때 %Q0.1.2 이 On 채널 4 의 A/D 변환값 채널 4 의디지털값이 12800 과같을때 %Q0.1.3 이 On 채널 4 의 A/D 변환값 제 3 장프로그램예제 (GLOFA-GM) 3-2 LS 산전연수원

(2) G4F-AD4B 의경우가 ) 프로그램에서사용된입출력변수 Variable Name Var_Kind Data Type (AT Address) (Initial Value) 기동준비 : VAR : 운전채널 : VAR : ARRAY [0..15] OF 읽기읽기 _ 에러정보 : VAR : VAR : FB instance : USINT 입력종류 : VAR : ARRAY [0..15] OF : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 입력타입채널지정 1 : VAR : VAR : ARRAY [0..15] OF : ARRAY [0..15] OF : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 초기화 : VAR : FB instance 초기화 _ 에러정보출발 : VAR : VAR : USINT : 평균값 2 : VAR : ARRAY [0..15] OF USINT : = { 0,0,100,0,200,0,0,0,0,0,0,0,0,0,0,0 } 평균허가 3 : VAR : ARRAY [0..15] OF : = { 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0 } 필터값필터허가 4 5 : VAR : VAR : ARRAY [0..15] OF USINT : ARRAY [0..15] OF : = { 50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } : = { 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 횟수시간 6 : VAR : ARRAY [0..15] OF : = { 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0 } DATA : VAR : ARRAY [0..15] OF INT 나 ) G3F-AD4A 와 G3F-AD4B 의차이점 초기화펑션블록의입력변수만차이가있습니다. 1 은 G3F-AD4B 에서만사용합니다. 2, 3, 4, 5, 6 은필터와평균처리기능으로 G3F-AD4A 에서는 4 채널을묶어서필터와평균기능을처리하고 G3F-AD4B 에서는채널마다필터와평균기능을처리합니다. 구 F/B 입력 G3F-AD4A G3F-AD4B 분변수명변수명 Data Type 변수명 Data Type 비고 1 IN_SEL - - 입력타입 ARRAY [0..15] OF G3F-AD4B 만 2 FILT_EN 필터허가 ARRAY [0..3] OF 필터허가 ARRAY [0..15] OF 3 FILT_VAL 필터값 ARRAY [0..3] OF USINT 필터값 ARRAY [0..15] OF USINT 4 AVG_EN 평균허가 ARRAY [0..3] OF 평균허가 ARRAY [0..15] OF 5 AVG_SEL 횟수시간 ARRAY [0..3] OF 횟수시간 ARRAY [0..15] OF 6 NUM/TIME 평균값 ARRAY [0..3] OF USINT 평균값 ARRAY [0..15] OF USINT 제 3 장프로그램예제 (GLOFA-GM) 3-3 LS 산전연수원

다 ) 프로그램예 정상적으로 A/D 모듈초기화완료 기동조건 읽기펑션블록처리중에러상태표시 장착된베이스번호지정 장착된슬롯번호지정 사용채널지정 초기화펑션블록처리중에러상태표시 초기화펑션블록실행중운전채널표시 읽기펑션블록실행중운전채널표시 사용채널의 A/D 변환값데이터표시 아날로그입력종류전류 / 전압 아날로그입력데이터형식지정 필터처리허가 / 금지지령 필터값입력 평균처리허가 / 금지지령 평균처리횟수 / 시간으로지정 평균처리횟수 / 시간값지정 채널 0 의디지털값이 12000 보다작을때 %Q0.1.0 이 On 채널 0 의 A/D 변환값 채널 2 의디지털값이 13600 보다클때 %Q0.1.1 이 On 채널 2 의 A/D 변환값 채널 4 의디지털값이 12000 보다크거가같고 13600 보다작거나같을때 %Q0.1.2 이 On 채널 4 의 A/D 변환값 채널 4 의디지털값이 12800 과같을때 %Q0.1.3 이 On 채널 4 의 A/D 변환값 제 3 장프로그램예제 (GLOFA-GM) 3-4 LS 산전연수원

라 ) 입출력변수초기값지정방법 ( 채널지정 ) 선택하면 16 채널을나타냄 이화면이나타남 선택하면 채널번호를나타냄 이화면이나타남 이전채널선택 다음채널선택 1: 사용채널 0: 미사용채널 사용채널 / 미사용채널을설정함 제 3 장프로그램예제 (GLOFA-GM) 3-5 LS 산전연수원

3.2 A/D 변환값및에러코드를 BCD 표시기로출력하는프로그램 1) 시스템구성 GM3- PA2A GM3- CPUA G3I- D24A G3Q- RY4A G3Q- RY4A G3F- AD4B 초기치설정 %I0.0.0 채널 0(DC 4~20mA) 에러코드 BCD 출력 %I0.0.1 %0.2.0~%Q0.2.7 디지털 BCD 표시기 ( 에러표시 ) A/D 변환값 BCD 출력 %I0.0.2 %Q0.1.0~%Q0.1.23 2) 초기설정내용 (1) 사용채널 : 채널 0 (2) 아날로그입력 : 전류입력 (3) 필터처리지정 : 50 디지털 BCD 표시기 (A/D 변환값 ) 3) 프로그램설명 (1) %I0.0.0 이 On 되면 A/D 변환초기설정을한다. (2) %I0.0.1 이 On 되면 A/D 변환값을디지털 BCD 표시기에출력한다.(%Q0.1.0~%Q0.1.23) (3) %I0.0.2 가 On 되면읽기펑션블록의에러코드를디저털 BCD 표시기에출력한다. (%Q0.2.0~%Q0.2.7) 제 3 장프로그램예제 (GLOFA-GM) 3-6 LS 산전연수원

4) 프로그램 기동조건및초기설정 정상적으로 A/D 변환읽기완료 장착된베이스의번호지정 초기화펑션블록처리중에러상태표시 읽기펑션블록처리중에러상태표시 장착된슬롯번호지정 사용채널지정 아날로그입력종류전류 / 전압 아날로그입력데이터형식지정 초기화펑션블록실행중운전채널표시 사용채널지정 사용채널의 A/D 변환값데이터표시 필터처리허가 / 금지지령 필터값입력 평균처리허가 / 금지지령 평균처리횟수 / 시간으로지정 평균처리횟수 / 시간값지정 A/D 변환값인채널 0 의 Data Type 이 INT 이므로이를디지털 BCD 표시기로출력하기위해 BCD 로 Data Type 을변환하기위한프로그램입니다. A/D 변환값디지털 BCD 표시지령 에러코드디지털 BCD 표시지령 초기화펑션블록의에러상태표시인읽기 _ 에러정보의 Data Type 이 USINT 이므로이를디지털 BCD Data Type 을변환하기위한프로그램입니다. 초기화펑션블록의에러값 5) 프로그램에서사용된입출력변수 Variable Name Var_Kind Data Type (AT Address) (Initial Value) 버퍼 : VAR : DINT 운전채널 : VAR : ARRAY [0..15] OF 읽기 : VAR : FB instance 읽기 _ 에러정보 : VAR : USINT 입력종류 : VAR : ARRAY [0..15] OF : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 입력타입 : VAR : ARRAY [0..15] OF : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 채널 0_ 데이터 : VAR : INT 채널지정 : VAR : ARRAY [0..15] OF : = { 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 초기화 : VAR : FB instance 초기화 _ 에러정보 : VAR : USINT 출발 : VAR : 평균값 : VAR : ARRAY [0..15] OF USINT : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 평균허가 : VAR : ARRAY [0..15] OF : = { 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 필터값 : VAR : ARRAY [0..15] OF USINT : = { 50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 필터허가 : VAR : ARRAY [0..15] OF : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 횟수시간 : VAR : ARRAY [0..15] OF : = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } 제 3 장프로그램예제 (GLOFA-GM) 3-7 LS 산전연수원

3.3 리모트 I/O 국에 A/D 변환모듈을장착할때의프로그램 1) 시스템구성 GM4- PA1A GM4- CPUA 슬롯 0 G4L- FUEA G4Q- RY2A 리모트의국번호 1 GM4- PA1A G4L- RBEA G4F- AD2A 슬롯 0 2) 초기설정내용 (1) A/D 변환허가채널 : 채널 0 (2) 변환데이터의범위 : -192 ~16191 (3) 시간에의한평균처리채널 : 채널 0 ( 설정값 : 100 ms ) 3) 프로그램설명 (1) 채널 0 의 A/D 변환된디지털값이 8,000 보다작을때 %Q0.1.0 이 On (2) 채널 0 의 A/D 변환된디지털갓이 8,000 보다크거나같고 10,000 보다작을때 %Q0.1.1 이 On (3) 채널 0 의 A/D 변환된디지털값이 10,000 보다크거나같고 12,000 보다작을때 %Q0.1.2 이 On (4) 채널 0 의 A/D 변환된디지털값이 12,000 보다크거나같을때 %Q0.1.3 이 On 4) 프로그램에사용된입출력변수 Variable Name Var Kind Data Type (AT Address) (Initial Value) AD_CH : VAR : ARRAY [0..3] OF : = {0,0,0,0} AD_DATA : VAR : ARRAY [0..3] OF INT AD_INI : VAR : FB Instance AD_RD : VAR : FB Instance AVG_EN : VAR : ARRAY [0..3] OF : = {1,0,0,0} AVG_SEL : VAR : ARRAY [0..3] OF : = {1,0,0,0} DATATYPE : VAR :ARRAY [0..3] OF : = {0,0,0,0} FILT_EN : VAR : ARRAY [0..3] OF : = {0,0,0,0} FILT_VAL : VAR : ARRAY [0..3] OF USINT : = {0,0,0,0} INI_ACT : VAR : ARRAY [0..3] OF INI_ERR : VAR : INI_STAT : VAR : USINT NUM_TIME : VAR : ARRAY [0..3] OF UINT : = {1000,0,0,0} RD_STAT : VAR : ARRAY [0..3] OF RD_ERR : VAR : RD_STAT : VAR : USINT READY : VAR : 제 3 장프로그램예제 (GLOFA-GM) 3-8 LS 산전연수원

5) 프로그램 기동조건및초기설정 초기화펑션블록이동작되지않았을때실행요구 상대국의 Live 정보로서정상동작중에는 ON 되어있고고장 / 전원다운시 OFF 됨 자국통신모듈의슬롯위치번호 정상적으로 A/D 변환초기화완료초기화펑션블록처리중에러상태표시 리모트국의국번 초기화펑션블록실행중운전채널표시 상대국의정전정보로서고장 / 전원다운에서복구시 ON 되며이를사용자프로그램에서 OFF 할때까지 ON 을유지함 START 장착된베이스의번호지정 장착된슬롯번호지정 정상적으로동작하는채널표시 사용채널지정 데이터형식지정 통신주기간격으로읽기펑션블록실행요구자국통신모듈의슬롯위치번호 리모트국의국번 에러정보표시 에러발생시에러종류표시 필터허가 / 금지지정 필터값지정 평균처리허가 / 금지지정 A/D 변환모듈의베이스위치번호 A/D 변환모듈의슬롯위치번호 정상적으로동작하는채널표시 A/D 변환값 횟수 / 시간평균지정 횟수 / 시간평균값설정 사용채널지정 채널 0 의 A/D 변환값이 8000 보다작을때 %Q0.1.0 이 ON 채널 0 의 A/D 변환값이 8000 보다크거나같고 10000 보다작을때 %Q0.1.1 이 ON 채널 0 의 A/D 변환값이 10000 보다크거나같고 12000 보다작을때 %Q0.1.2 이 ON 채널 0 의 A/D 변환값이 12000 보다크거나같을때 %Q0.1.3 이 ON 제 3 장프로그램예제 (GLOFA-GM) 3-9 LS 산전연수원

3.4 예제프로그램실습 제 3 장프로그램예제 (GLOFA-GM) 3-10 LS 산전연수원

제 3 장프로그램예제 (GLOFA-GM) 3-11 LS 산전연수원

제 3 장프로그램예제 (GLOFA-GM) 3-12 LS 산전연수원

제 3 장프로그램예제 (GLOFA-GM) 3-13 LS 산전연수원

모듈 Ⅲ. 아날로그출력 (DA) - 적용모델 - 제 1 장. GLOFA-GMR/1/2/3 용 G3F-DA4V / G3F- DA4I G3F- DA3V / G3F- DA3I 제 2 장. GLOFA-GM4 용 제 3 장. GLOFA-GM6 용 G4F- DA3V / G4F- DA3I G4F- DA2V / G4F- DA2I G4F- DA1A G6F- DA2V / G6F- DA2I

제 1 장성능규격및변환특성 본제품은 GLOFA PLC GMR/1/23/4/6 시리즈및 MASTER-K200S/300S/1000S 의 CPU 와조합하여사용하는디지털 / 아날로그 변환모듈로전압출력형, 전류출력형, 전압전류공통출력형 ( 이하 D/A 변환모듈 ) 이있습니다. 1.1 성능규격 1) G3F-DA4V/I, G4F-DA1A 항 목 규 G3F DA4I G3F DA4V G4F DA1A 격 적용 PLC GM3/MK1000S GM4/MK300S 입출력점유점수 16 점 부호있는 16 비트바이너리값 ( 데이터 :14 비트 ) 디지털입력 입력데이터지정에따라채널마다설정가능 ( 0 : 192 ~ 16191, 1 : 8192 ~ 8191) DC 5 ~ 5V DC 5 ~ 5V ( 외부부하저항 2KΩ~1MΩ) ( 외부부하저항 2KΩ~1MΩ) DC 4 ~ 20 ma DC 10 ~ 10V DC 4 ~ 20mA 아날로그출력 ( 외부부하저항 510Ω 이하 ) ( 외부부하저항 2KΩ~1MΩ) ( 외부부하저항 550Ω 이하 ) 전압출력종류는제품 전압 / 전류구분은단자대 옆면의스위치로선택 에의해선택됩니다. 최대분해능 1 μa (1/16000) DC 5 ~ 5V : 0.625mV(1/16000) DC 10 ~ 10V : 1.25mV(1/16000) DC 10 ~ 10V : 1.25mV(1/16000) DC 4 ~ 20mA : 1.0μA(1/16000) 정밀도 ±0.3% [ 풀스케일 (Full Scale)] 최대변환속도 15ms / 16 채널 3ms / 2 채널 절대최대출력 DC+24mA DC+15V 전압 : DC+15V 전류 : DC+24mA 아날로그출력점수 16 채널 /1 모듈 2 채널 /1 모듈 절연방식출력단자와 PLC 전원간포토 커플러절연 ( 채널간비절연 ) 접속단자 38 점단자대 20 점단자대 내부소비전류 0.25A 0.45A 외부공급전원 전압 DC+15V / DC 15V 전류 DC+15V:0.5A DC 15V:0.1A DC+15V:0.5A DC 15V:0.3A 중량 610g 630g 370g 제 1 장성능규격및변환특성 1-1 LS 산전연수원

2) G3F-DA3V/I, G4F-DA4V/I, G4F-DA2V/I 규 격 항 목 전압출력형 전류출력형 G3F-DA3V G4F-DA3V G4F-DA2V G3F-DA3I G4F-DA3I G4F-DA2I 적용 PLC GM3/ MK1000S GM4/MK300S GM3/ MK1000S GM4/MK300S 입출력점유점수 16 점 디지털입력 부호있는 16 비트바이너리값 ( 데이터 : 12 비트 ) 아날로그출력 DC0 ~ DC10V ( 외부부하저항 2kΩ ~ 1MΩ ) :DC 10V ~ 10V ( 외부부하저항 2kΩ ~ 1MΩ ) DC 4mA ~ 12mA ( 외부부하저항 510Ω이하 ) 최대분해능 2.5 mv (1/4000) 5 mv (1/4000) 4 μa (1/4000) 정밀도 ±0.5%[ 풀스케일 (Full Scale)] 최대변환속도 15 ms /8 채널 10 ms /4 채널 15 ms /8 채널 10 ms /4 채널 절대최대출력 DC +15V DC +24 ma 아날로그출력점수 8 채널 4 채널 8 채널 4 채널 절연방식입력단자와 PLC 전원간포토커플러절연 ( 채널간비절연 ) 접속단자 20 점단자대 내부소비전류 (DC5V) 550 ma 700 ma 400mA 60mA 680mA 외부공급전원 전압 소비전류 DC21.6~26.4V 230 ma 중량 390g 280g 260g 410g 280g 260g 알아두기 GM3-PA1A와 GM3-PA2A의출력용량은 DC+5V : 7A, DC+24V : 1.5A입니다. GM4-PA1A와 GM4-PA2A의출력용량은 DC5V:4A, DC24V:0.7A입니다. GM4-PA1B와 GM4-PA2B의출력용량은 DC5V:3A, DC24V:0.5A입니다. 제 1 장성능규격및변환특성 1-2 LS 산전연수원

3) G6F-DA2V/I 항 목 G6F-DA2V 규 격 G6F-DA2I 적용 PLC GM6/MK200S 입출력점유점수 16점 디지털입력 부호있는 16비트바이너리값 ( 데이터 : 12비트 ) 아날로그출력 전압출력 : DC 10V ~ 10V 전류출력 : DC 4mA ~ 20mA ( 외부부하저항 2kΩ ~ 1MΩ ) ( 외부부하저항 510Ω이하 ) 최대분해능 5 mv (1/4000) 4 μa (1/4000) 정밀도 ±0.5%[ 풀스케일 (Full Scale)] 최대변환속도 10ms /4채널 10ms /4채널 절대최대출력 DC +15V DC +24mA 아날로그출력점수 4채널 4채널 절연방식 입력단자와 PLC전원간포토커플러절연 ( 채널간비절연 ) 접속단자 18 점단자대 DC+5V 40mA 40mA 내부소비전류 *1 DC+15V 80mA 120mA DC-15V 60mA 25mA 중량 200g 200g 알아두기 *1 GM6 또는 K200S 에서아날로그입출력모듈을사용시전원모듈은 DC±15V 출력이있는 GM6-PAFB 를사용하십시오. GM6-PAFB 는 DC+15V:0.5A, DC-15V:0.2A 입니다. 따라서 D/A 변환모듈을동시에여러대사용할경우각제품의소비전류를고려하여소비전류가규격치를만족하도록설정해주십시오. 제 1 장성능규격및변환특성 1-3 LS 산전연수원

1.2 각부의명칭과역할 1) G3F DA4I / G3F DA4V 각부분의명칭에대해서설명합니다 G3F-DA4V CH RUN OFFSET SET GAIN UP DOWN 1 2 3 4 TEST CH 0 CH 1 CH 2 CH 3 CH 4 CH 5 CH 6 CH 7 CH 8 CH 9 CH A CH B CH C CH D CH E CH F +15V INPUT 0V -15V 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 5 6 J1 J2-10~10V -5~5V 제 1 장성능규격및변환특성 1-4 LS 산전연수원

번호내용 1 RUN LED D/A 변환모듈의동작상태를표시 점등 : 정상동작중 점멸 : 에러발생 ( 자세한사항은 6.1항참조 ) 소등 : DC 5V 단선, D/A 변환모듈이상 2 채널선택스위치 테스트모드에서오프셋 / 게인을조정하고자할때채널을선택하는스위치설정범위 : 0 ~ F ( 0을선택하면 0번채널의오프셋 / 게인이조정됨 ) 3 오프셋 / 게인선택스위치 오프셋 / 세트 / 게인을선택하는스위치 오프셋위치 : 오프셋값조정모드 게인위치 : 게인값조정모드 세트위치 : 오프셋 / 게인값기억모드 ( 오프셋 / 게인의위치에서세트위치로전환할때오프셋 / 게인값이 D/A 변환모듈의내부메모리에기억됩니다. ) 4 5 업 / 다운스위치 채널선택스위치와오프셋 / 게인선택스위치로지정된채널의오프셋 / 게인값을변경하는스위치 업 / 다운위치에따라아날로그출력이다음과같이변경됩니다. 2초미만업 / 다운위치 : G3F DA4I 1회에 1μA 증감 G3F DA4V 1회에 1.25mV 증감 2초이상업 / 다운위치 : G3F DA4I 0.2초마다 10μA 증감 G3F DA4V 0.2초마다 12.5mV 증감테스트단자 단자대 1,2를연결하면테스트모드단자대 1,2를연결하지않으면노멀모드 6 출력범위선택스위치 G3F DA4V 만해당됩니다. 공장출하시는 DC 10 ~ +10V 로선택되어져있습니다. 제 1 장성능규격및변환특성 1-5 LS 산전연수원

2) G4F-DA3V/G4F-DA2V/G4F-DA3I/G4F-DA2I 각부분의명칭에대해서설명합니다. G4F-DA3V G4F-DA2V G4F-DA3I G4F-DA2I G4F-DA3V RUN 1 G4F-DA2V RUN 1 G4F-DA3I RUN 1 G4F-DA2I RUN 1 CH 0 CH 1 CH 2 CH 3 CH 4 CH 5 CH 6 CH 7-10~+10V 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 2 CH 0 CH 1 CH 2 CH 3-10~+10V 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 2 CH 0 CH 1 CH 2 CH 3 CH 4 CH 5 CH 6 CH 7 DC24V 4~20mA 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 2 3 CH 0 CH 1 CH 2 CH 3 4~20mA 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 2 번호내용 1 RUN LED 아날로그출력단자대 D/A 변환모듈의동작상태를표시점등 : 정상동작중소등 : DC5V 단선 2 CH 0 CH 1 CH 2 CH 3 CH 4 CH 5 CH 6 CH 7 2 4 6 8 10 12 14 16 1 3 5 7 9 11 13 15 17 a b 디지털값을아날로그값으로변환하여각채널마다외부와연결할수있도록되어있는단자대 a 부 : G4F-DA2V 와 G4F-DA2I 의 4 채널 ( 번호 1 8 ) b 부 : G4F-DA3V 와 G4F-DA3I 의 8 채널 ( 번호 1 16 ) 3 외부입력단자대 18 DC24V 19 20 c G4F-DA3I 만해당 c 부 : 외부전원 DC24V 공급단자 ( 번호 19 20 ) 제 1 장성능규격및변환특성 1-6 LS 산전연수원

3) G3F-DA3V/G3F-DA3I 각부분의명칭에대해서설명합니다 G3F-DA3V G3F-DA3V G3F-DA3I G3F-DA3I DC24V 2 번호내용 1 2 RUN LED 외부입력단자대 D/A 변환모듈의동작상태를표시점등 : 정상동작중소등 : DC5V 단선 G3F-DA3I만해당외부전원 DC24V 공급단자 ( 번호19 20 ) 제 1 장성능규격및변환특성 1-7 LS 산전연수원

4) G6F-DA2V/G6F-DA2I 각부분의명칭에대해서설명합니다. G6F-DA2V G6F-DA2I RUN 1 RUN 1 G6F-DA2V G6F-DA2I G6F-DA2V G6F-DA2I CH0 V+ V- CH0 I+ I- CH1 V+ V- CH1 I+ I- CH2 V+ V- 2 CH2 I+ I- 2 CH3 V+ V- CH3 I+ I- -10~+10V 4 ~ 20 ma No 내용 1 RUN LED D/A 변환모듈의동작상태를표시 점등 : 정상동작중소등 :DC5V 단선 아날로그출력단자대 CH0 V+ V- 1 2 2 CH1 CH2 V+ V- V+ V- 3 4 5 6 디지털값을아날로그값으로변환하여각채널마다외부와연결하는단자대 CH3 V+ V- 7 8 제 1 장성능규격및변환특성 1-8 LS 산전연수원

5) G4F DA1A 각부분의명칭에대해서설명합니다. 번호내용 1 RUN LED 운전상태를표시합니다. 노멀모드 점등 : 정상동작중 점멸 : 에러발생 소등 : DC 5V 단선또는 G4F DA1A 이상 테스트 (Test) 모드 점멸 : 오프셋 / 게인선택스위치가오프셋또는게인의위치일때 1.0 초간격으로점멸 소등 : 오프셋 / 게인선택스위치가세트의위치일때소등 2 오프셋 / 게인선택스위치 오프셋위치 : 오프셋값조정모드 게인위치 : 게인값조정모드 세트위치 : 오프셋 / 게인값기억모드 ( 오프셋 / 게인의위치에서세트위치로전환할때오프셋 / 게인값이 G4F-DA1A 의내부메모리에기억됩니다. ) 3 채널선택스위치 테스트모드에서오프셋 / 게인값조정채널지정 CHO 위치 : CHO 오프셋 / 게인설정가능 중립 : 오프셋 / 게인설정불가 CH1 위치 : CH1 오프셋 / 게인설정가능 4 업 / 다운스위치 지정채널의오프셋 / 게인값을변경하는스위치 업 / 다운위치에따라아날로그출력이다음과같이변경됩니다. (1) 2 초미만업 / 다운위치 : 1 회에전압 1.25mA 증감전류 1.0μA 증감 (2) 2 초이상업 / 다운위치 : 0.2 초마다전압 12.5mA 증감전류 10μA 증감 5 테스트단자 단자대 1,3 를연결하면테스트모드단자대 1,3 를연결하지않을때는노멀모드 제 1 장성능규격및변환특성 1-9 LS 산전연수원

제 2 장입출력변환특성 2.1 G3F-DA3V/I, G4F-DA3V/I, G4F-DA2V/I, G6F-DA2V/I 입출력변환특성은 PLC에서설정된디지털신호를아날로그신호 ( 전압또는전류 ) 로변환할때의 기울기로그림 2.1 로나타냅니다. 20.192mA 20mA 10.24V 10V 10.12V 10V 아날로그출력값 16mA 12mA 8mA 5V 0V -5V 7.5V 5V 2.5V 아날로그출력실용범위 4mA 3.808mA -10V -10.24V 0V -0.12V 디지털입력값 -48 0 1000 2000 3000 4000 4047 [ 그림 2.1] 입출력변환특성예 D/A 변환모듈의오프셋 / 게인설정은고정되어있으므로변경할수없습니다. G3F-DA3V 전압출력일경우디지털입력 1 에대한아날로그출력은 2.5mV에해당됩니다. G4F-DA3V/DA2V 전압출력일경우디지털입력 1 에대한아날로그출력은 5mV에해당됩니다. 전류출력일경우디지털입력 1 에대한아날로그출력은 4μA입니다. 2.2 G3F-DA4V/I, G4F-DA1A 1) 오프셋값과게인값은다음과같습니다. a) 오프셋값데이터타입이 8192 ~ 8191 일때 : 디지털입력값이 8000 일때의아날로그출력값데이터타입이 192 ~ 16191 일때 : 디지털입력값이 0 일때의아날로그출력값 b) 게인값데이터타입이 8192 ~ 8191 일때 : 디지털입력값이 0 일때의아날로그출력값데이터타입이 192 ~ 16191 일때 : 디지털입력값이 8000 일때의아날로그출력값 2) 공장출하시오프셋값과게인값은아래같이설정되어져있습니다. 모듈명아날로그입력범위오프셋값게인값 G3F-DA4I DC 4 20 ma DC 4 ma DC 12 ma G3F-DA4V DC-10 10 V DC-10 V DC 0 V G3F-DA1A DC-10 10 V DC-10 V DC 0 V 3) 오프셋값과게인값은테스트모드에서각채널마다다르게변경할수있습니다. 제 2 장입출력변환특성 2-1 LS 산전연수원

2.3 입출력변환특성예 입출력변환특성예를그림 2.2 에나타냅니다. 아날로그출력 오프셋값 게인값 디지털입력값 [ 그림 2.2] 입출력변환특성예 2.4 오프셋 / 게인값과아날로그출력의관계 D/A 변환모듈의분해능은오프셋값과게인값설정을변경하여임의로조절할수있습니다. 오프셋값과게인값의설정을변경할경우, 아날로그값의분해능및디지털입력값에의한아날로그출력값을산출하는식은다음과같습니다. 게인값 오프셋값분해능 = 8000 게인값 오프셋값아날로그출력 = X 디지털입력값 + 오프셋값 8000 아날로그출력 = 분해능 X 디지털입력값 X 오프셋값 예 ) 오프셋값 : DC 10V 게인값 : DC 0V 디지털입력값 12000 일때 0 ( 10) 분해능 = = 0.00125 8000 아날로그출력 = 0.00125 X 12000 + (-10) = 5(V) D/A 변환모듈의아날로그값의최대분해능은표 2.1와같으므로디지털입력값을 1 씩증가또는감소시킬때아날로그출력값의변화량은위의계산식과다를수있습니다. 제품명아날로그출력종류최대분해능 G3F-DA4I DC 4 20 ma 1μ A G3F-DA4V DC -10 10 V DC -5 5 V 1.25 mv 0.625 mv G4F-DA1A DC 4 20 ma 1μ A DC -10 10 V 1.25 mv [ 표 2.1] 최대분해능 제 2 장입출력변환특성 2-2 LS 산전연수원

2.5 오프셋 / 게인값을변경할경우입출력변환특성 오프셋 / 게인값을변경할경우입출력변환특성은다음과같습니다. 1) 전압입력특성 오프셋 / 게인값설정의변경에따라전압출력특성이변하는것을그림 2.3, 2.4, 2.5 에표시합니다. (1) DC 10 ~ 10V DC 10 ~ 10V 아날로그출력전압 아날로그출력전압실용범위 예 1 예 2 예 3 오프셋값게인값오프셋값게인값오프셋값게인값 디지털입력값 번호 디지털입력범위 오프셋값 게인값 디지털입력값 8000 4000 0 4000 8000 12000 16000 예 1 192 0V 5V 0V 2.5V 5V 7.5V 10V 예 2 ~ 5V 0V 5V 2.5V 0V 2.5V 5V 예 3 16191 10V 0V 10V 5V 0V 5V 10V 예 1 8192 0V 5V 0V 2.5V 5V 7.5V 10V 예 2 ~ 5V 0V 5V 2.5V 0V 2.5V 5V 예 3 8191 10V 0V 10V 5V 0V 5V 10V [ 그림 2.3] 전압출력특성 (DC 10~10V) 제 2 장입출력변환특성 2-3 LS 산전연수원

(2) DC 5 ~ 5V DC 5 ~ 5V 아날로그출력전압 아날로그출력전압실용범위 예 1 예 2 예 3 오프셋값게인값오프셋값게인값오프셋값게인값 디지털입력값 번호 디지털입력범위 오프셋값 게인값 디지털입력값 8000 4000 0 4000 8000 12000 16000 예1 192 1V 3V 1V 2V 3V 4V 5V 예 2 ~ 0V 2.5V 0V 1.25V 2.5V 3.75V 5V 예 3 16191 5V 0V 5V 2.5V 0V 2.5V 5 예 1 8192 1V 3V 1V 2V 3V 4V 5V 예 2 ~ 0V 2.5V 0V 1.25V 2.5V 3.75V 5V 예 3 8191 5 0V 5V 2.5V 0V 2.5V 5V [ 그림 2.4] 전압출력특성 (DC 5~5V) 제 2 장입출력변환특성 2-4 LS 산전연수원

2) 전류입력특성 오프셋 / 게인값설정의변경에따라전류출력특성이변하는것을그림 1.5 에표시합니다. DC 4 ~ 20mA 아날로그출력전류 아날로그출력전류실용범위 예 1 예 2 오프셋값게인값오프셋값게인값 예 3 오프셋값게인값 디지털입력값 번호 디지털입력범위 오프셋값 게인값 디지털입력값 8000 4000 0 4000 8000 12000 16000 예1 192 10mA 15mA 10mA 12.5mA 15mA 17.5mA 20mA 예 2 ~ 6mA 10mA 6mA 6mA 10mA 12mA 14mA 예 3 16191 4mA 12mA 4mA 4mA 12mA 16mA 20mA 예 1 8192 10mA 15mA 10mA 12.5mA 15mA 17.5mA 20mA 예 2 ~ 6mA 10mA 6mA 6mA 10mA 12mA 14mA 예 3 8191 4mA 12mA 4mA 4mA 12mA 16mA 20mA [ 그림 2.5] 전류출력특성 (DC 4~20mA) 제 2 장입출력변환특성 2-5 LS 산전연수원

2.6 오프셋 / 게인설정순서 오프셋 / 게인설정순서를나타냅니다. 오프셋 / 게인값은각각의채널에대해서조정합니다. 테스트 (Test) 모드설정단자연결 G3F DA4V/G3F DA4I : 단자대 1,2 G4F DA1A : 단자대 1,3 : RUN LED 소등 테스트모드상태 오프셋 / 게인스위치가세트위치에있는가를확인한후 CH 선택스위치로오프셋 / 게인조정용채널을선택 아날로그출력채널의설정 오프셋 / 게인조정용채널에계측기를접속 계측기접속 오프셋 / 게인스위치를오프셋위치로설정 : RUN LED 가 1.0 초간격으로점멸 업 / 다운스위치로출력을오프셋값으로조정 : RUN LED 가 0.1 초간격으로점멸 오프셋값조정 오프셋 / 세트 / 게인스위치를세트위치로설정 : RUN LED 가소등 오프셋 / 세트 / 게인스위치를게인위치로설정 : RUN LED 가 1.0 초간격으로점멸 업 / 다운스위치로출력을게인값으로조정 : RUN LED 가 0.1 초간격으로점멸 게인값조정 오프셋 / 세트 / 게인스위치를세트위치로설정 : RUN LED 가소등 아니오 사용채널에대한설정이완료되었습니다 예 테스트 (Test) 모드설정단자개방 (G3F DA4V/G3F DA4I : 단자대 1,2. G4F DA1A : 단자대 1,3) 완 료 제 2 장입출력변환특성 2-6 LS 산전연수원

2.7 배선예 1) G3F-DA4V 모터구동모듈등 CH 0 D/A 변환회로 3 4 *1 GND 2 kω ~1 MΩ 모터구동모듈등 CH F 33 34 2 kω ~1 MΩ AGND +15V -15V 36 37 38 DC +15V 0V DC -15V *1 GND 2) G3F-DA4I 모터구동모듈등 D/A 변환회로 R 3 4 CH 0 *1 GND 510Ω 이하 모터구동모듈등 AGND R +15V -15V 33 34 36 37 38 CH F DC +15V 0V DC -15V *1 GND 510Ω 이하 3) G4F-DA1A 모터구동모듈등 Vcc +5V GND +15V 0V -15V D/A 변환회로 +15V AGND -15V 5 7 CH 0 전압출력 *1 2 kω ~1 MΩ GND 모터구동모듈등 D/A 변환회로 R CH 1 17 19 전류출력 *1 GND 550Ω 이하 1 : 전선으로는 2 심트위스트실드선을사용하여주십시오. 제 2 장입출력변환특성 2-7 LS 산전연수원

4) G3F-DA3V, G4F-DA3V, G4F-DA2V 모터구동모듈등 CH0 D/A 변환회로 1 2 2 kω ~1 MΩ *1 GND 모터구동모듈등 CH7 D/A 변환회로 15 16 *1 GND 2 kω ~1 MΩ 5) G3F-DA3I, G4F-DA3I, G4F-DA2I 모터구동모듈등 CH0 D/A 변환회로 1 2 510Ω 이하 *1 GND 모터구동모듈등 CH7 D/A 변환회로 1 2 *1 GND 510Ω 이하 *1 : 전선은 2 심트위스트실드선을사용하여주십시오. 제 2 장입출력변환특성 2-8 LS 산전연수원

주의 전류출력모듈에서전류의 COMMON 선이공통으로되어있는기기와는접속할수없습니다. 전류출력모듈의 - 단자는회로내부적으로각채널별별도의회로로구성되어있으므로외부에서공통으로접속시킬경우정상적인출력이되지않습니다. 1) G3F-DA4I 3 4 CH 0 기기 D/A 변환회로 R AGND R +15V -15V 33 34 36 37 38 CH F DC +15V 0V DC -15V 2) G4F-DA1A (2 채널을전류출력형으로사용할때 ) D/A 변환회로 5 7 CH 0 기기 R Vcc +5V GND +15V 0V -15V +15V -15V AGND D/A 변환회로 R 17 19 CH 1 G3F-DA3I, G4F-DA3I, G4F-DA2I, G6F-DA2I 모듈에서도전류출력회로는동일합니다. G4F-DA1A 는한채널에서전압과전류를동시에사용할수없습니다. 한채널에서전압과전류를동시에사용하면내부회로의고장으로인해오출력, 오동작의원인이됩니다. 제 2 장입출력변환특성 2-9 LS 산전연수원

제 3 장 GLOFA-GM 프로그래밍 D/A 변환모듈을사용하기위해서는 D/A변환모듈의내부메모리와 PLC CPU간의인터페이스를위한펑션블록을사용해야합니다. 3.1 GMWIN에서 D/A 변환모듈의펑션블록등록절차 D/A 변환모듈용펑션블록을사용하기위해서는먼저라이브러리의등록이필요합니다. - Project창에서 Library창을선택합니다. - 마우스오른쪽버튼을눌러팝업메뉴를부릅니다. - 팝업메뉴에서 [ 프로젝트항목추가 ] [ 라이브러리 ] 선택. - 열기창에서 SPECIAL. fb 또는 REMOTE*. fb 파일을선택하고열기를클릭합니다.. ( : GMR의경우 R,GM1/2의경우 1, GM3의경우 3, GM4의경우 4, GM6의경우 6 에해당됩니다.) (GM3의경우예 ) - Library창에서 SPECIAL 라이브러리가추가된것을확인합니다. 추가된라이브러리 ( 특수모듈에관련된라이브러 (SPECIAL 라이브러리를추가한경우예 ) 제 3 장 GLOFA-GM 프로그래밍 3-1 LS 산전연수원

3.2 펑션블록의종류 GMWIN에서사용되는 D/A변환모듈용펑션블록에대해서설명합니다. 펑션블록의종류는다음과같습니다. No G3F-DA4V / G3F-DA4I G4F-DA1A G6F-DA2V/ G6F-DA2I 기 능 로컬 리모트 로컬 리모트 로컬 리모트 1 DA4INI DAR4INI DA1INI DAR1INI - - 모듈초기화 2 DA4AWR DAR4WR DA1AWR DAR1WR DA2AWR DAR2WR D/A 변환값쓰기 ( 복수형 ) 3 DA4WR - DA1WR - DA2WR - D/A 변환값쓰기 ( 단독형 ) No G3F-DA3V/G3F-DA3I G4F-DA3V / G4F-DA3I G4F-DA2V / G4F-DA2I 로컬리모트로컬리모트로컬리모트 기 능 1 DA3AWR DAR33WR DA3AWR DAR3WR DA2AWR DAR2WR D/A 변환값쓰기 ( 복수형 ) 2 DA3WR - DA3WR - DA2WR - D/A 변환값쓰기 ( 단일형 ) 알아두기 1.G3F-DA3V,G3F-DA3I,G4F-DA3V,G4F-DA3I 의평션블록의기능과사용방법은동일합니다. 2.G4F-DA2V 와 G4F-DA2I 의평션블록의기능과사용방법은동일합니다. 3.G3F-DA4V 와 G3F-DA4I 의펑션블록의기능과사용방법은동일합니다. 4.G6F-DA2V 와 G6F-DA2I 의평션블록의기능과사용방법은동일합니다 5.G3F-DA3V,G3F-DA3I,G4F-AD3V,G4F-DA3I,G4F-DA2V,G4F-DA2I,.G6F-DA2V / G6F-DA2I 는초기화펑션블록이없습니다. G3F-DA4V/G3F-DA4I 1. Special.3fb. DA4INI. DA4AWR. DA4AWR 2. Remote3.3fb. DAR4INI. DAR4WR 3. Remote4.3fb. DAR1INI. DAR1INI G3F-DA3V/G3F-DA3I 1. Special.3fb. DA3AWR. DA3WR 2. Remote3.3fb. DAR33WR 3. Remote4.3fb. DAR33WR G4F DA1A 1.Special.4fb. DA1INI. DA1AWR. DA1WR 2.Remote4.4fb. DAR1INI. DAR1WR 3.Remote3.4fb. DAR4INI. DAR4WR G4F-DA3V/G4F-DA3I 1. Special.4fb. DA3AWR. DA3WR 2. Remote3.4fb. DAR3WR 3. Remote4.4fb. DAR3WR G4F-DA2V/G4F-DA2I 1. Special.4fb. DA2AWR. DA2WR 2. Remote3.4fb. DAR2WR 3. Remote4.4fb. DAR2WR G6F-DA2V/G6F-DA2I 로컬용펑션블록등록 GM3 리모트용펑션블록등록 GM4 리모트용펑션블록등록 1. Special.6fb. DA2AWR. DA2WR 로컬용펑션블록등록 2. Remote6.6fb. DAR2WR GM6 리모트용펑션블록 제 3 장 GLOFA-GM 프로그래밍 3-2 LS 산전연수원

3.3 펑션블록의공통사항아래의입출력변수명의기능과사용법은 3.4항에서설명되는모든펑션블록에공통되는 내용으로동일합니다. 구분변수명 Datatype 내용 REQ 펑션블록실행요구영역 이영역은초기화펑션블록의실행을요구하는영역입니다. 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면모듈초기화펑션블록이실행됩니다. 입력 BASE USINT SLOT USINT CH DATA TYPE DATA SEL [Array] *1 [Array] 주 1 INT [Array] 주 1 USINT [Array] 주 1 DONE 베이스위치번호 A/D 변환모듈이장착된베이스의번호를쓰는영역입니다. 설정범위 : GM1시리즈 (0 31), GM2시리즈 (0 7), GM3/4시리즈 (0 3) GM6시리즈 (0,1) 슬롯의위치번호 위치결정모듈이장착된슬롯의번호를설정하는영역입니다. 설정범위 : 0 7 사용채널지정영역 0 이면사용하지않는채널 1 이면사용하는채널 입력데이터타입지정영역 (G3F-DA4V/I, G4F-DA1A모듈만해당됨 ) - 채널의입력디지털데이터타입의종류를설정하는영역입니다. - 0 이면데이터가 192~16191-1 이면데이터가 8192~8191 D/A 변환값입력영역 (G3F-DA3V/I, G4F-DA3V/I, G4F-DA2V/I, G6F-DA2V/I모듈만해당됨 ) 채널의입력디지털데이터를설정하는영역입니다. 설정범위 : 0 4000 CPU 모듈이 Stop 상태이거나해당채널을사용하지않을때출력값을선택하는영역 (G3F-DA4V/I, G4F-DA1A 모듈만해당됨 ) - 0 이면출력범위의중간값을출력합니다 - 1 이면이전값을출력합니다 - 2 이면출력범위의최대값을출력합니다 - 3 이면출력범위의최소값을출력합니다 펑션블록실행완료상태표시영역 초기화펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며, 에러가발생되면 0 이출력되면서운전정지상태가됩니다. 출력 STAT USINT ACT [Array] *1 에러상태표시영역 펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. 운전채널표시영역 초기화펑션블록이에러없이실행된후지정된채널의설정조건이정상이면 1 이출력되고, 비정상이면 0 이출력됩니다. 운전지정이안된채널은 0 이출력됩니다. 알아두기 1 : Array 수는 G3F-DA4V/I :16, G3F-DA3V/I : 8, G4F-DA3V/I :8, G4F-DA2V/I :4, G4F-DA1A : 2, G6F-DA2V/I :4 이며, 원소번호가채널을의미합니다. 제 3 장 GLOFA-GM 프로그래밍 3-3 LS 산전연수원

3.4 로컬용펑션블록 3.4.1 모듈초기화펑션블록 1) G3F-DA4V / G3F-DA4I : DA4INI, G4F-DA1A : DA1INI 모듈초기화펑션블록은 D/A 변환모듈의베이스위치, 슬롯장착위치, 사용채널지정, D/A 변환용 DATATYPE, CPU 모듈이 Stop 상태일때의 D/A 변환모듈의출력유지정보를설정하여프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 REQ 펑션블록실행요구영역 - 이영역은초기화펑션블록의실행을요구하는영역입니다. - 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면초기화펑션블록이실행됩니다. BASE USINT 베이스위치번호 - D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. - 설정범위 : GM1 시리즈 (0~31), GM2 시리즈 (0~7), GM3/4 시리즈 (0~3) SLOT USINT 슬롯의위치번호 - D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. - 설정범위 : 0 7 입력 CH [Array] 주 1 사용채널지정영역 - 사용하는채널을지정하는영역입니다. - 사용하는채널 1, 사용하지않는채널은 0 으로지정합니다. DATA TYPE [Array] 주 1 입력데이터타입지정영역 - 채널의입력디지털데이터타입의종류를설정하는영역입니다. - 0 이면데이터가 192~16191-1 이면데이터가 8192~8191 SEL USINT [Array] 주 1 CPU 모듈이 Stop 상태이거나해당채널을사용하지않을때출력값을선택하는영역 - 0 이면출력범위의중간값을출력합니다 - 1 이면이전값을출력합니다 - 2 이면출력범위의최대값을출력합니다 - 3 이면출력범위의최소값을출력합니다 DONE 펑션블록실행완료상태 - 초기화펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며에러가발생되면 0 이출력되면서운전정지상태가됩니다. 출력 STAT USINT 에러상태표시영역 - 초기화펑션블록을실행중에러가발생되면에러번호를출력하는영역입니다. - 에러내용은 4.4 항을참조하여주십시오. ACT USINT [Array] 주 1 운전채널표시영역 - 초기화펑션블록이에러없이실행된후지정된채널이정상이면 1 이출력되고, 운전지정이안된채널은 0 이출력됩니다. 알아두기 주 1 Array 의수는 G3F DA4V 와 G3F DA4I : 16, G4F DA1A : 2 입니다. 제 3 장 GLOFA-GM 프로그래밍 3-4 LS 산전연수원

3.4.2 모듈쓰기 _Array형 1) G3F-DA4V / G3F-DA4I : DA4WR, G4F-DA1A : DA1AWR Array형모듈쓰기펑션블록은 D/A변환모듈의전채널을일괄로처리하여사용채널로지정되면 D/A 변환하고자하는디지털값을설정하여프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 펑션블록실행요구영역 REQ - 이영역은쓰기펑션블록의실행을요구하는영역입니다. - 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면초기화펑션블록이실행됩니다. 베이스위치번호 BASE USINT - D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. - 설정범위 : GM1시리즈 (0~31), GM2시리즈 (0~7), GM3/4시리즈 (0~3) 입력 SLOT USINT 슬롯의위치번호 - D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. - 설정범위 : 0 7 CH [Array] 주1 사용채널지정영역 - 사용하는채널을지정하는영역입니다. - 사용하는채널 1, 사용하지않는채널은 0 으로지정합니다. DATA INT [Array] 주1 D/A 변환값입력영역 - 채널의입력디지털데이터를설정하는영역입니다. 펑션블록실행완료상태 DONE - 쓰기펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며에러가발생되면 0 이출력되면서운전정지상태가됩니다. 에러상태표시영역 출력 STAT USINT - 쓰기펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. - 에러내용은 4.4항을참조하여주십시오. ACT USINT [Array] 주1 운전채널표시영역 - 쓰기펑션블록이에러없이실행된후지정된채널이정상이면 1 이출력되고, 운전지정이안된채널은 0 이출력됩니다. 알아두기 주 1 Array 의수는 G3F DA4V 와 G3F DA4I : 16, G4F DA1A : 2 입니다. 제 3 장 GLOFA-GM 프로그래밍 3-5 LS 산전연수원

2) G3F-DA3V / G3F-DA3I, G4F-DA3V / G4F-DA3I:DA3AWR, G4F-DA2V / G4F-DA2I :DA2AWR Array 형모듈쓰기펑션블록은 D/A 변환모듈의전채널을사용채널로지정되어지고 D/A 변환하고자하는디지털값을설정하여프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 G3F-DA3V/DA3I G4F-DA3V/DA3I REQ BASE SLOT DATA G4F-DA2V G4F-DA2I REQ BASE SLOT DA3AWR DONE DA2AWR DATA STAT DONE STAT 입력 출력 REQ BASE SLOT DATA DONE STAT 3) G6F-DA2V / G6F-DA2I : DA2AWR USINT USINT INT [Array] USINT 펑션블록실행요구영역 이영역은쓰기펑션블록의실행을요구하는영역입니다. 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면쓰기펑션블록이실행됩니다. 베이스위치번호 D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. 설정범위 : 0 3 슬롯의위치번호 D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. 설정범위 : 0 7 D/A 변환값입력영역 채널의입력 : 디저털데이터를설정하는영역입니다. Array의수는 G3F-DA3V,G3F-DA3I,G4F-DA3V,G4F-DA3I : 8, G4F-DA2V, G4F-DA2I : 4 입니다. 펑션블록실행완료상태 쓰기펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며에러가발생되면 0 이출력되면서운전정지상태가됩니다. 에러상태표시영역 쓰기펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. 에러내용은 4.4항을참조하여주십시오. 펑션블록형태구분변수명 Datatype 내용 G6F-DA2V G6F-DA2I REQ DA3AWR DONE 입력 REQ BASE USINT 펑션블록실행요구영역 - 이영역은펑션블록의실행을요구하는영역입니다. - 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면쓰기펑션블록이실행됩니다. 베이스위치번호 - A/D 변환모듈이장착된베이스의번호를쓰는영역입니다. - 설정범위 : 0 1 BASE SLOT DATA STAT SLOT DATA USINT INT [Array] 슬롯의위치번호 - A/D 변환모듈이장착된슬롯의번호를쓰는영역입니다. - 설정범위 : 0 7 D/A 변환값입력영역 - 채널의입력디지털데이터를설정하는영역입니다. - Array 의수는 4 이며채널수를나타냅니다. 출력 DONE 펑션블록실행완료상태 - 쓰기펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며, 에러가발생되면 0 이출력되면서운전정지상태가됩니다. STAT USINT 에러상태표시영역 - 쓰기평션블록실행중에러가발생되면에러번호를출력영역입니다. 제 3 장 GLOFA-GM 프로그래밍 3-6 LS 산전연수원

3.4.3 모듈쓰기 _ 단일형 1) G3F-DA4V / G3F-DA4I : DA4WR, G4F-DA1A : DA1WR 단일형모듈쓰기펑션블록은 D/A 변환모듈의한채널만처리하며 D/A 변화하고자하는디지털값을설정하여프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 REQ 펑션블록실행요구영역 - 이영역은쓰기펑션블록의실행을요구하는영역입니다. - 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면쓰기펑션블록이실행됩니다. BASE USINT 베이스위치번호 - D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. - 설정범위 : GM1 시리즈 (0~31), GM2 시리즈 (0~7), GM3/4 시리즈 (0~3) 입력 SLOT USINT 슬롯의위치번호 - D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. - 설정범위 : 0 7 CH USINT 사용채널지정영역 - 사용하는채널을지정하는영역입니다. - 설정범위 : 0 ~ 15 (G4F-DA1A : 0 ~ 1) DATA INT D/A 변환값입력영역 - 채널의입력디지털데이터를설정하는영역입니다. DONE 펑션블록실행완료상태 - 쓰기펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며에러가발생되면 0 이출력되면서운전정지상태가됩니다. 출력 STAT USINT 에러상태표시영역 - 쓰기펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. - 에러내용은 4.4 항을참조하여주십시오. 제 3 장 GLOFA-GM 프로그래밍 3-7 LS 산전연수원

2) G3F-DA3V / G3F-DA3I, G4F-DA3V / G4F-DA3I : DA3WR, G4F-DA2V / G4F-DA2I : DA2WR 펑션블록형태구분변수명 Datatype 내용 G3F-DA3V/DA3I G4F-DA3V/DA3I DA3WR REQ DONE BASE SLOT CH DATA G4F-DA2V G4F-DA2I DA2WR REQ BASE SLOT CH DATA STAT DONE STAT 입력 출력 REQ BASE SLOT CH DATA DONE STAT USINT USINT USINT INT USINT 펑션블록실행요구영역 이영역은쓰기펑션블록의실행을요구하는영역입니다. 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면모듈쓰기펑션블록이실행됩니다. 베이스위치번호 D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. 설정범위 : 0 3 슬롯의위치번호 D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. 설정범위 : 0 7 사용채널지정영역 사용하는채널을지정하는영역입니다. 설정범위 : G3F-DA3V / G3F-DA3I / G4F-DA3V / G4F-DA3I : 0~7 G4F-DA2V / G4F-DA2I : 0~3 D/A 변환값입력영역 채널의입력디지털데이터를설정하는영역입니다. 설정범위 : 0 4000 펑션블록실행완료상태 쓰기펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며, 에러가발생되면 0 이출력되면서운전정지상태가됩니다. 에러상태표시영역 쓰기펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. 에러내용은 4.4항을참조하여주십시오.. 3) G6F-DA2V / G6F-DA2I : DA2WR 펑션블록형태구분변수명 Datatype 내용 G6F-DA2V G6F-DA2I REQ BASE SLOT CH DA2AWR DATA DONE STAT 입력 출력 REQ BASE SLOT CH DATA DONE STAT USINT USINT USINT INT USINT 펑션블록실행요구영역 - 이영역은읽기펑션블록의실행을요구하는영역입니다. - 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면쓰기펑션블록이실행됩니다. 베이스위치번호 - D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. - 설정범위 : 0 1 슬롯의위치번호 - D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. - 설정범위 : 0 7 사용채널지정영역 - 사용하는채널을지정하는영역입니다 - 설정범위 : 0 ~ 3 D/A 변환값입력영역 - 채널의입력디지털데이터를설정하는영역입니다. 펑션블록실행완료상태표시영역 - 읽기펑션블록이에러없이실행완료되면 1 이출력되고, 다음실행때까지 1 을유지하며, 에러가발생되면 0 이출력되면서운전정지상태가됩니다. 에러상태표시영역 - 쓰기펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. - 에러내용은 4.3 항을참조하여주십시오. 제 3 장 GLOFA-GM 프로그래밍 3-8 LS 산전연수원

3.5 리모용펑션블록 3.5.1 모듈초기화펑션블록 1) G3F-DA4V / G3F-DA4I : DAR4INI, G4F-DA1A : DAR1INI 모듈초기화펑션블록은자국의통신모듈슬롯위치번호, 리모트 I/O 국에장착된통신모듈의국번, D/A 변환모듈이장착된베이스위치번호, 슬롯장착위치번호, 사용채널지정, D/A 변환용디지털 DATATYPE, CPU 모듈이 Stop 상태일때의 D/A 변환모듈출력상태를설정하며이를프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 REQ 펑션블록실행요구영역 - 이영역은쓰기펑션블록의실행을요구하는영역입니다. - 프로그램수행중이영역에접속된조건이성립되어 0 1 이되면초기화펑션블록이실행됩니다. NET_ NO USINT 펑션블록이전송될자국의통신모듈이장착된슬롯위치번호 - 설정범위 : 0 ~ 7 ST_N O USINT 리모트 I/O 국에장착된통신모듈의국번 - 설정범위 : 0 ~ 63 BASE USINT 베이스모듈위치번호 - D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. - 설정범위 : 0 ~ 3 입력 SLOT USINT 슬롯위치번호 - D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. - 설정범위 : 0 ~ 7 CH [Array] 주 1 사용채널지정영역 - 사용하는채널을지정하는영역입니다. - 사용하는채널 1, 사용하지않는채널은 0 으로지정합니다. DATA TYPE [Array] 주 1 입력데이터타입지정영역 - 채널의입력디지털데이터타입의종류를설정하는영역입니다. - 0 이면데이터가 192 ~ 16191-1 이면데이터가 8192 ~ 8191 SEL USINT [Array] 주 1 CPU 모듈이 Stop 상태이거나해당채널을사용하지않을때출력값을선택하는영역 - 0 이면출력범위의중간값을출력합니다. - 1 이면이전값을출력합니다. - 2 이면출력범위의최대값을출력합니다. - 3 이면출력범위의최소값을출력합니다. NDR 펑션블록실행이에러없이종료된경우 1 이되며, 실행조건이성립된스캔동안 1 을유지하고다음스캔에서 0 이됩니다. 출력 ERR STAT USINT 에러정보표시영역 - 초기화펑션블록실행중에러가발생되면 1 이출력되어운전정지상태가되고, 실행조건이성립된스캔동안 1 을유지하며다음스캔에서 0 이됩니다. 에러상태표시영역 - 초기화펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. - 에러내용은 4.4 항을참조하여주십시오. ACT USINT [Array] 주 1 운전채널표시영역 - 초기화펑션블록이에러없이실행된후지정된채널이정상이면 1 이출력되고, 운전지정이안된채널은 0 이출력됩니다. 알아두기 주 1 Array 의수는 G3F DA4V 와 G3F DA4I : 16, G4F DA1A : 2 입니다. 제 3 장 GLOFA-GM 프로그래밍 3-9 LS 산전연수원

3.5.2 모듈쓰기펑션블록 1) G3F-DA4V / G3F-DA4I : DAR4WR, G4F-DA1A : DAR1WR 모듈쓰기펑션블록은 D/A 변환모듈이전채널을일괄로처리하며사용채널로지정되면 D/A 변환하고자하는디지털값을설정하여프로그램에이용합니다. 펑션블록형태구분변수명 Datatype 내용 REQ 상승 Edge 에서펑션블록실행요구영역 - 이영역은쓰기펑션블록의실행을요구하는영역입니다. - 프로그램수행중이영역에접속된조건이성립되어 0 1 로변할때 ( ) 쓰기펑션블록이실행됩니다. NET_ NO USINT 펑션블록이전송될자국의통신모듈이장착된슬롯위치번호 - 설정범위 : 0 ~ 7 ST_N O USINT 리모트 I/O 국에장착된통신모듈의국번 - 설정범위 : 0 ~ 63 입력 BASE USINT 베이스모듈위치번호 - D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. - 설정범위 : 0 ~ 3 SLOT USINT 슬롯위치번호 - D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. - 설정범위 : 0 ~ 7 CH DATA [Array] 주 1 INT [Array] 주 1 사용채널지정영역 - 사용하는채널을지정하는영역입니다. - 사용하는채널 1, 사용하지않는채널은 0 으로지정합니다. D/A 변환값입력영역 - 채널의입력디지털데이터를설정하는영역입니다. NOR 펑션블록실행이에러없이종료된경우 1 이출력되고, 실행조건이성립된스캔동안 1 을유지하고다음스캔에서 0 이됩니다. 출력 ERR STAT USINT 에러정보표시영역 - 쓰기펑션블록실행중에러가발생되면 1 이출력되어운전정지상태가되고, 실행조건이성립된스캔동안 1 을유지하며다음스캔에서 0 이됩니다. 에러상태표시영역 - 쓰기펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. - 에러내용은 4.4 항을참조하여주십시오. ACT [Array] 주 1 운전채널표시영역 - 쓰기펑션블록이에러없이실행된후지정된채널이정상이면 1 이출력되고, 운전지정이안된채널은 0 이출력됩니다. 알아두기 주 1 Array 의수는 G3F DA4V 와 G3F DA4I : 16, G4F DA1A : 2 입니다. 제 3 장 GLOFA-GM 프로그래밍 3-10 LS 산전연수원

2) G3F-DA3V / G3F-DA3I : DAR33WR,G4F-DA3V / G4F-DA3I : DAR3WR, G4F-DA2V / G4F-DA2I : DAR2WR 펑션블록형태구분변수명 Datatype 내용 G3F-DA3V/DA3I G4F-DA3V/DA3I DAR3WR REQ NDR NET_ NO ST_N O BASE SLOT DATA G4F-DA2V G4F-DA2I DAR2WR REQ NDR NET_ NO ST_N O BASE SLOT DATA ERR STAT ERR STAT 입력 출력 REQ NET_ NO ST_NO BASE SLOT DATA NDR ERR STAT USINT USINT USINT USINT INT [Array] USINT 상승 Edge에서펑션블록실행요구영역 이영역은쓰기펑션블록의실행을요구하는영역입니다. 프로그램수행중이영역에접속된조건이성립되어 0 1 로변할때 ( 상승 Edge) 쓰기펑션블록이실행됩니다. 펑션블록이전송될자국의통신모듈이장착된슬롯위치번호 설정범위 : 0 7 리모트 I/O국에장착된통신모듈의국번 설정범위 : 0 63 베이스위치번호 D/A 변환모듈이장착된베이스의번호를쓰는영역입니다. 설정범위 : 0 3 슬롯의위치번호 D/A 변환모듈이장착된슬롯의번호를쓰는영역입니다. 설정범위 : 0 7 D/A 변환값입력영역 채널의입력디지털데이터를설정하는영역입니다. 설정범위 : 0 4000 Array의수는 G3F-DA3V/DA3I,G4F-DA3V/DA3I는 8, G4F-DA2V 와 G4F-DA2I는 4입니다. 펑션블록실행이에러없이종료된경우 1 이출력되고, 실행조건이성립된스켄동안 1 을유지하고다음스켄에서 0 이됩니다. 에러정보표시영역 쓰기펑션블록실행중에러가발생되면 1 이출력되어운전정지상태가되고, 실행조건이성립된스켄동안 1 을유지하며, 다음스켄에서 0 이됩니다. 에러상태표시영역 쓰기펑션블록실행중에러가발생되면에러번호를출력하는영역입니다. 에러내용은 4.4항을참조하여주십시오. 제 3 장 GLOFA-GM 프로그래밍 3-11 LS 산전연수원

3.6 펑션블록상의에러종류 출력변수 STAT 에나타나는에러종류및조치방법에대해서설명합니다. STAT 번호 구분내용 초기화 펑션블록 쓰기조치방법 Array 형단일형 0 정상동작중 - 1 베이스의위치가설정범위초과 2 해당베이스의 H/W 에러 3 슬롯의위치번호가설정범위초과 설정범위내로수정 (4.2 항참조 ) A/S 의뢰 D/A 변환모듈이장착된올바른슬롯번호지정 4 로컬 지정한슬롯에 D/A 변환모듈이비어있음 지정된슬롯에 D/A 변환모듈을장착 5 D/A 변환모듈이아닌다른모듈이장착되어있음 지정된슬롯에 D/A 변환모듈을장착 6 채널번호가설정범위초과 - - 사용채널지정을바르게설정 7 D/A 변환모듈의 H/W 에러 A/S 의뢰 8 D/A 변환모듈의공용메모리에러 A/S 의뢰 9 초기화펑션블록에서사용채널미지정 - 초기화펑션블록에서사용채널바르게지정 10 테스트모드 테스트모드에서노멀모드로전환 128 리모트용통신모듈의 H/W 에러 리모트통신모듈사용설명서참조 129 베이스의위치가설정범위초과 설정범위내로수정 (4.2 항참조 ) 131 슬롯의위치번호가설정범위초과 D/A 변환모듈이장착된올바른슬롯번호지정 D/A 변환모듈이아닌다른모듈이 133 장착되어있음리모트 지정된슬롯에 D/A 변환모듈을장착 135 D/A 변환모듈의 H/W 에러 A/S 의뢰 - 136 D/A 변환모듈의공용메모리에러 A/S 의뢰 137 초기화펑션블록에서사용채널미지정 - 초기화펑션블록에서사용채널바르게지정 138 테스트모드 테스트모드에서노멀모드로전환 제 3 장 GLOFA-GM 프로그래밍 3-12 LS 산전연수원

제 4 장프로그램예제 (GLOFA-GM 용 ) 4.1 5단계의아날로그출력전압으로인버터의속도를제어하는프로그램 1) 시스템구성 슬롯 0 슬롯 1 GM3 PA1A GM3 CPUA G3I D24A G3F DA3V D/A 변환초기설정 о (%I0.0.0) 디지털값 2000 입력о (%I0.0.1) 디지털값 2500 입력о (%I0.0.2) 디지털값 3000 입력о (%I0.0.3) 디지털값 3500 입력о (%I0.0.4) 디지털값 4000 입력о (%I0.0.5) о о о о о о AC220V3φ 인버터 M 유도형모터 2) 초기설정내용 (1) 사용채널 : 채널 0 3) 프로그램설명 (1) %I0.0.0 이 On 되면 D/A 변환초기설정을한다. (2) %I0.0.1 이 On 되면채널 0 에 2000(5V) 을출력한다. (3) %I0.0.2 가 On 되면채널 0 에 2500(6.25V) 을출력한다. (4) %I0.0.3 이 On 되면채널 0 에 3000(7.5V) 을출력한다. (5) %I0.0.4 이 On 되면채널 0 에 3500(8.75V) 을출력한다. (6) %I0.0.5 이 On 되면채널 0 에 4000(10V) 을출력한다. 제 4 장프로그램예제 (GLOFA-GM) 4-1 LS 산전연수원

4) 프로그램 채널 0 의디지털입력값을 2000 으로설정 기동조건 채널 0 의디지털입력값을 2500 으로설정 기동조건 채널 0 의디지털입력값을 3000 으로설정 기동조건 기동조건 채널 0 의디지털입력값을 3500 으로설정 채널 0 의디지털입력값을 4000 으로설정 기동조건및초기설정 장착된베이스의번호 장착된슬롯번호 사용할채널지정 설정된디지털데이터입력 5) 프로그램에사용된입출력변수 제 4 장프로그램예제 (GLOFA-GM) 4-2 LS 산전연수원

4.2 D/A 변환값을디지털스위치로설정해서출력하는프로그램 1) 시스템구성 GM4 PA1A GM4 CPUA G4I D22A G4I D22A G4F DA3I BCD 디지털스위치 (%I0.0.0~%I0.0.15) о о о о о D/A 변환모듈초기설정 (%I0.1.0) о 채널 0 디지털값입력 (%I0.1.1) о 채널 1 디지털값입력 (%I0.1.2) о 채널 0, 채널 1, 디지털값 0 입력 (%I0.1.3) 2) 초기설정내용 (1) 사용채널지정 : 채널 0, 1 3) 프로그램설명 (1) %I0.1.0. 이 On 되면 D/A 변환모듈을초기화합니다. (2) %I0.1.1 이 On 되면 BCD 디지털스위치로입력된수치가 D/A 변환모듈의채널 0 로출력됩니다. (3) %I0.1.2 이 On 되면 BCD 디지털스위치로입력된수치가 D/A 변환모듈의채널 1 로출력됩니다. (4) %I0.1.3 이 On 되면채널 0 과채널 1 의디저털입력값을 0 으로초기화시킵니다. 제 4 장프로그램예제 (GLOFA-GM) 4-3 LS 산전연수원

4) 프로그램 BCD 디지털스위치에서입력되는값이 BCD 이므로 D/A 변환모듈의채널 0 과 1 에서디지털입력값으로사용하기위해 INT 로변환하는프로그램 채널 0 에 BCD 디지털스위치에서입력되는값을 D/A 변환모듈의디지털입력전달 채널 1 에 BCD 디지털스위치에서입력되는값을 D/A 변환모듈의디지털입력전달 채널 0 과채널 1 의디지털입력값을 0 으로 기동조건및초기설정장착된베이스의번호지정 2 장착된슬롯의번호지정 설정된디지털데이터입력 5) 프로그램에사용된입출력변수 제 4 장프로그램예제 (GLOFA-GM) 4-4 LS 산전연수원

4.3 리모트 I/O 국에 D/A 변환모듈을장착할때의프로그램 D/A 변환값을디지털스위치로설정해서출력하는프로그램 1) 시스템구성 GM4 PA1A GM4 CPUA G4L FUEA G4I D22A G4I D22A о о BCD 디지털스위치값을 D/A 변환모듈의디지털값으로설정 (%I0.2.0) BCD 디지털스위치 GM4- PA1A 리모트의국번호 0 슬롯 0 G4L- RBEA G4F- DA2V (%I0.1.0 ~ %I0.1.15) 2) 프로그램설명 (1) %I0.2.0 이 On 되면디지털스위치로설정한값을 D/A 변환모듈의채널 0 에출력합니다. 제 4 장프로그램예제 (GLOFA-GM) 4-5 LS 산전연수원

3) 프로그램설명 BCD 디지털스위치에서입력된 BCD 값을 INT 로데이터변환 데이터변환된값을채널 0 의디지털값으로입력 기동조건 쓰기펑션블록이동작되지않았을때실행요구 자국통신모듈의슬롯위치번호 쓰기펑션블록처리중에러정보표시 리모트국의국번 장착된베이스의번호지정 쓰기펑션블록처리중에러정보발생시에러종류표시 상대국의 Live 정보로서정상동작중에는 On 되어있고, 고장 / 전원다운시 Off 됨 상대국의정전정보로서고장 / 전원다운에서복구시 On 되며이는사용자프로그램에서 Off 할때까지 On 을유지함 4) 프로그램에사용된입출력변수설명 제 4 장프로그램예제 (GLOFA-GM) 4-6 LS 산전연수원

4.4 예제프로그램실습 제 4 장프로그램예제 (GLOFA-GM) 4-7 LS 산전연수원

제 4 장프로그램예제 (GLOFA-GM) 4-8 LS 산전연수원

부 록 부록 A. 플래그일람표 부록 B. GLOFA-GM 명령어집 부록 C. 태스크프로그램

부록 A. 플래그일람표

부록 A. 플래그일람표 ( 예약변수 ) 1. 예약변수 예약변수는시스템에서미리선언한변수들입니다. 이변수들은특수한용도로사용하며, 사용자가이변수이름으로변수선언을할수는없습니다. 이예약변수를사용할때에는변수선언없이사용합니다. 1) 사용자플래그예약변수 데이터타입 내 용 _ERR 연산에러접점 _LER 연산에러래치접점 _T20MS 20 ms 클럭접점 _T100MS 100 ms 클럭접점 _T200MS 200 ms 클럭접점 _T1S 1 초클럭접점 _T2S 2 초클럭접점 _T10S 10 초클럭접점 _T20S 20 초클럭접점 _T60S 60 초클럭접점 _ON 항시 On 접점 _OFF 항시 Off 접점 _1ON 1 스캔 On 접점 _1OFF 1 스캔 Off 접점 _STOG 스캔마다반전 _INIT_DONE 초기화프로그램완료 _RTC_DATE DATE RTC 의현재날짜 _RTC_TOD TOD RTC 의현재시간 _RTC_WEEK UINT RTC 의현재요일 부록 A. 플래그일람표부 1-1 LS 산전연수원

2) 시스템에러대표플래그 예약변수 데이터타입 내 용 _CNF_ER WORD 시스템의에러 ( 중고장 ) _CPU_ER CPU 구성에러 _IO_TYER 모듈타입불일치에러 _IO_DEER 모듈착탈에러 _FUSE_ER Fuse 단선에러 _IO_RWER 입출력모듈읽기 / 쓰기에러 ( 고장 ) _SP_IFER 특수 / 통신모듈인터페이스에러 ( 고장 ) _ANNUN_ER 외부기기의중고장검출에러 _WD_ER Scan Watch-Dog 에러 _CODE_ER 프로그램코드에러 _STACK_ER Stack Overflow 에러 _P_BCK_ER 프로그램에러 3) 시스템에러해제플래그 예약변수 데이터타입 내 용 _CNF_ER_M BYTE 시스템에러 ( 중고장 ) 해제 _IO_DEER_M 모듈착탈에러해제 _FUSE_ER_M 퓨즈단선에러해제 _IO_RWER_M 입출력모듈읽기 / 쓰기에러해제 _SP_IFER_M 특수 / 통신모듈인터페이스에러해제 _ANNUN_ER_M 외부기기의중고장검출에러해제 4) 시스템경고대표플래그 예약변수 데이터타입 내 용 _CNF_WAR WORD 시스템의경고 ( 경고장 ) _RTC_ERR RTC 데이터이상 _D_BCK_ER 데이터백업에러 _H_BCK_ER 핫리스타트수행불가에러 _AB_SD_ER 비정상전원차단 (Abnormal Shutdown) _TASK_ERR 태스크 (Task) 충돌 ( 정주기, 외부태스크 ) _BAT_ERR 배터리이상 _ANNUN_WR 외부기기의경고장검출 부록 A. 플래그일람표부 1-2 LS 산전연수원

예약변수 데이터타입 내 용 _HSPMT1_ER 고속링크파라미터 1 이상 _HSPMT2_ER 고속링크파라미터 2 이상 _HSPMT3_ER 고속링크파라미터 3 이상 _HSPMT4_ER 고속링크파라미터 4 이상 5) 시스템에러상세플래그 예약변수 데이터타입 내 용 _IO_TYER_N UINT 모듈타입불일치슬롯넘버 _IO_TYERR ARRAY OF BYTE 모듈타입불일치위치 _IO_DEER_N UINT 모듈착탈슬롯넘버 _IO_DEERR ARRAY OF BYTE 모듈착탈위치 _FUSE_ER_N UINT Fuse 단선슬롯넘버 _FUSE_ERR ARRAY OF BYTE Fuse 단선슬롯위치 _IO_RWER_N UINT 입출력모듈읽기 / 쓰기에러슬롯넘버 _IO_RWERR ARRAY OF BYTE 입출력모듈읽기 / 쓰기에러슬롯위치 _IP_IFER_N UINT 특수 / 링크모듈인터페이스에러슬롯넘버 _IP_IFERR ARRAY OF BYTE 특수 / 링크모듈인터페이스에러슬롯위치 _ANC_ERR ARRAY OF UINT 외부기기의중고장검출 _ANC_WAR ARRAY OF UINT 외부기기의경고장검출 _ANC_WB ARRAY OF BIT 외부기기의경고장검출비트 Map _TC_BMAP ARRAY OF BYTE 태스크충돌표시 _TC_CNT UINT 태스크충돌카운터 _BAT_ER_TM DT 배터리전압저하시각 _AC_F_CNT UINT 전원차단카운터 _AC_F_TM ARRAY OF DT 순시정전이력 부록 A. 플래그일람표부 1-3 LS 산전연수원

6) 시스템운전상태정보 예약변수 데이터타입 내 용 CPU TYPE UINT 시스템의형태 VER NUM UINT PLC O/S 버전번호 MEM TYPE UINT 메모리모듈의타입 SYS STATE WORD PLC 모드및상태 GMWIN CN BYTE PADT 연결상태 RST TY BYTE 리스타트모드정보 INIT RUN BIT 초기화수행중 SCAN MAX UINT 최장스캔시간 (ms) SCAN MIN UINT 최단스캔시간 (ms) SCAN CUR UINT 현재스캔시간 (ms) STSK NUM UINT 실행시간확인을요하는태스크넘버 STSK MAX UINT 최장태스크실행시간 (ms) STSK MIN UINT 최단태스크실행시간 (ms) STSK CUR UINT 현재태스크실행시간 (ms) RTC TIME ARRAY OF BYTE 현재시각 SYS ERR UINT 이상종류 7) 통신모듈정보플래그 [n 은통신모듈이장착되어있는슬롯번호에해당 (n = 0 ~ 7)] 예약변수 데이터타입 내 용 _CnVERNO UINT 통신모듈의버젼 No. _CnSTNOH _CnSTNOL UINT 통신모듈의국번 _CnTXECNT UINT 통신프레임전송에러 _CnRXECNT UINT 통신프레임수신에러 _CnSVCFCNT UINT 통신서비스처리에러 _CnSCANMX UINT 통신스캔타임최대 (1ms 단위 ) _CnSCANAV UINT 통신스캔타임평균 (1ms 단위 ) _CnSCANMN UINT 통신스캔타임최소 (1ms 단위 ) _CnLINF UINT 통신모듈시스템정보 _CnCRDER 통신모듈의시스템에러 ( 에러 = 1) _CnSVBSY 공용 RAM 자원부족 ( 부족 =1) _CnIFERR 인터페이스에러 ( 에러 = 1) _CnINRING 통신참여 (IN_RING = 1) 부록 A. 플래그일람표부 1-4 LS 산전연수원

8) 리모트 I/O 제어플래그 [m 은통신모듈이장착되어있는슬롯번호에해당 (m = 0 ~ 7)] 예약변수 데이터타입 내 용 _FSMm_reset (Write 가능 ) 리모트 I/O 국리셋제어 ( 리셋 =1) _FSMm_io_reset (Write 가능 ) 리모트 I/O 국의출력접점리셋제어 ( 리셋 =1) _FSMm_st_no USINT(Write 가능 ) 해당리모트 I/O 국의국번호 9) 고속링크정보상세플래그 [m 은고속링크파라미터의번호 (m = 1,2,3,4) 에해당 ] 예약변수데이터타입내용 _HSmRLINK BIT 고속링크의 RUN_LINK 정보 _HSmLTRBL BIT 고속링크의비정상정보 (Link Trouble) _HSmSTATE ARRAY OF BIT 고속링크의파라미터에서 k 데이터블록의종합적통신상태정보 _HSmMOD ARRAY OF BIT 고속링크의파라미터에서 k 데이터블록에설정된국의모드정보 (Run = 1, 이외 = 0) _HSmTRX ARRAY OF BIT 고속링크의파라미터에서 k 데이터블록의통신상태정보 ( 정상 = 1, 비정상 = 0) _HSmERR ARRAY OF BIT 고속링크의파라미터에서 k 데이터블록에설정된국의상태정보 ( 정상 = 0, 에러 = 1) 부록 A. 플래그일람표부 1-5 LS 산전연수원

2. 예약어 예약어는시스템에서사용하기위해미리정의한단어들입니다. 따라서식별자로이예약어를사용할수없습니다. 예약어 ACTION... END_ACTION ARRAY... OF AT CASE... OF... ELSE... END_CASE CONFIGURATION... END_CONFIGURATION 데이터타입이름 DATE#, D# DATE_AND_TIME#, DT# EXIT FOR... TO... BY... DO... END_FOR FUNCTION... END_FUNCTION FUNCTION_BLOCK... END_FUNCTION_BLOCK 펑션블록의이름들 IF... THEN... ELSIF... ELSE... END_IF OK 연산자 (IL 언어 ) 연산자 (ST 언어 ) PROGRAM PROGRAM... END_PROGRAM REPEAT... UNTIL... END_REPEAT RESOURCE... END_RESOURCE RETAIN RETURN STEP... END_STEP STRUCTURE... END_STRUCTURE T# TASK... WITH TIME_OF_DAY#, TOD# TRANSITION... FROM... TO... END_TRANSITION TYPE... END_TYPE VAR... END_VAR VAR_INPUT... END_VAR VAR_OUTPUT... END_VAR VAR_IN_OUT... END_VAR VAR_EXTERNAL... END_VAR VAR_ACCESS... END_VAR VAR_GLOBAL... END_VAR WHILE... DO... END_WHILE WITH 부록 A. 플래그일람표부 1-6 LS 산전연수원

부록 B. GLOFA-GM 명령어집

제 1 장. 펑션및펑션블록일람표 펑션과펑션블록에대한목록요약입니다. 각각의펑션과펑션블록에대해서는 8. 기본펑션, 펑션블록라이브러리를참고하십시오. 1.1. 기본펑션 1.1.1. 타입변환펑션각각의입력데이터타입을출력데이터타입으로변환합니다. 펑션그룹 ARY_ASC_TO_*** 펑션이름 입력데이터타입 출력데이터타입 적용기종 GMR~2 GM3 GM4~7 ARY_ASC_TO_BYTE WORD(ASCII) BYTE ARY_ASC_TO_BCD WORD(ASCII) BYTE(BCD) ARY_BYTE_TO_*** ARY_BYTE_TO_ASC BYTE WORD(ASCII) ARY_BCD_TO_*** ARY_BCD_TO_ ASC BYTE(BCD) WORD(ASCII) ASC_TO_*** BCD_TO_*** TRUNC REAL_TO_*** LREAL_TO_*** ASC_TO_BCD BYTE(BCD) USINT ASC_TO_BYTE WORD(BCD) UINT BCD_TO_SINT BYTE(BCD) SINT BCD_TO_INT WORD(BCD) INT BCD_TO_DINT DWORD(BCD) DINT BCD_TO_LINT LWORD(BCD) LINT BCD_TO_USINT BYTE(BCD) USINT BCD_TO_UINT WORD(BCD) UINT BCD_TO_UDINT DWORD(BCD) UDINT BCD_TO_ULINT LWORD(BCD) ULINT BCD_TO_ASC BYTE(BCD) WORD TRUNC REAL DINT LREAL LINT REAL_TO_SINT REAL SINT REAL_TO_INT REAL INT REAL_TO_DINT REAL DINT REAL_TO_LINT REAL LINT REAL_TO_USINT REAL USINT REAL_TO_UINT REAL UINT REAL_TO_UDINT REAL UDINT REAL_TO_ULINT REAL ULINT REAL_TO_DWORD REAL DWORD REAL_TO_LREAL REAL LREAL LREAL_TO_SINT LREAL SINT LREAL_TO_INT LREAL INT LREAL_TO_DINT LREAL DINT LREAL_TO_LINT LREAL LINT LREAL_TO_USINT LREAL USINT 제 1 장펑션및펑션블록일람표부 1-1 LS 산전연수원

펑션그룹 LREAL_TO_*** SINT_TO_*** INT_TO_*** 펑션이름 입력데이터출력데이터적용기종타입타입 GMR~2 GM3 GM4~7 LREAL_TO_UINT LREAL UINT LREAL_TO_UDINT LREAL UDINT LREAL_TO_ULINT LREAL ULINT LREAL_TO_LWORD LREAL LWORD LREAL_TO_REAL LREAL REAL SINT_TO_INT SINT INT SINT_TO_DINT SINT DINT SINT_TO_LINT SINT LINT SINT_TO_USINT SINT USINT SINT_TO_UINT SINT UINT SINT_TO_UDINT SINT UDINT SINT_TO_ULINT SINT ULINT SINT_TO_ SINT SINT_TO_BYTE SINT BYTE SINT_TO_WORD SINT WORD SINT_TO_DWORD SINT DWORD SINT_TO_LWORD SINT LWORD SINT_TO_BCD SINT BYTE(BCD) SINT_TO_REAL SINT REAL SINT_TO_LREAL SINT LREAL INT_TO_SINT INT SINT INT_TO_DINT INT DINT INT_TO_LINT INT LINT INT_TO_USINT INT USINT INT_TO_UINT INT UINT INT_TO_UDINT INT UDINT INT_TO_ULINT INT ULINT INT_TO_ INT INT_TO_BYTE INT BYTE INT_TO_WORD INT WORD INT_TO_DWORD INT DWORD INT_TO_LWORD INT LWORD INT_TO_BCD INT WORD(BCD) INT_TO_REAL INT REAL INT_TO_LREAL INT LREAL 제 1 장펑션및펑션블록일람표부 1-2 LS 산전연수원

펑션그룹 DINT_TO_*** LINT_TO_*** USINT_TO_*** 펑션이름 입력데이터출력데이터적용기종타입타입 GMR~2 GM3 GM4~7 DINT_TO_SINT DINT SINT DINT_TO_INT DINT INT DINT_TO_LINT DINT LINT DINT_TO_USINT DINT USINT DINT_TO_UINT DINT UINT DINT_TO_UDINT DINT UDINT DINT_TO_ULINT DINT ULINT DINT_TO_ DINT DINT_TO_BYTE DINT BYTE DINT_TO_WORD DINT WORD DINT_TO_DWORD DINT DWORD DINT_TO_LWORD DINT LWORD DINT_TO_BCD DINT DWORD(BCD) DINT_TO_REAL DINT REAL DINT_TO_LREAL DINT LREAL LINT_TO_SINT LINT SINT LINT_TO_INT LINT INT LINT_TO_DINT LINT DINT LINT_TO_USINT LINT USINT LINT_TO_UINT LINT UINT LINT_TO_UDINT LINT UDINT LINT_TO_ULINT LINT ULINT LINT_TO_ LINT LINT_TO_BYTE LINT BYTE LINT_TO_WORD LINT WORD LINT_TO_DWORD LINT DWORD LINT_TO_LWORD LINT LWORD LINT_TO_BCD LINT LWORD(BCD) LINT_TO_REAL LINT REAL LINT_TO_LREAL LINT LREAL USINT_TO_SINT USINT SINT USINT_TO_INT USINT INT USINT_TO_DINT USINT DINT USINT_TO_LINT USINT LINT USINT_TO_UINT USINT UINT USINT_TO_UDINT USINT UDINT USINT_TO_ULINT USINT ULINT USINT_TO_ USINT USINT_TO_BYTE USINT BYTE USINT_TO_WORD USINT WORD USINT_TO_DWORD USINT DWORD USINT_TO_LWORD USINT LWORD 제 1 장펑션및펑션블록일람표부 1-3 LS 산전연수원

펑션그룹 USINT_TO_*** UINT_TO_*** UDINT_TO_*** ULINT_TO_*** 펑션이름 입력데이터출력데이터적용기종타입타입 GMR~2 GM3 GM4~7 USINT_TO_BCD USINT BYTE(BCD) USINT_TO_REAL USINT REAL USINT_TO_LREAL USINT LREAL UINT_TO_SINT UINT SINT UINT_TO_INT UINT INT UINT_TO_DINT UINT DINT UINT_TO_LINT UINT LINT UINT_TO_USINT UINT USINT UINT_TO_UDINT UINT UDINT UINT_TO_ULINT UINT ULINT UINT_TO_ UINT UINT_TO_BYTE UINT BYTE UINT_TO_WORD UINT WORD UINT_TO_DWORD UINT DWORD UINT_TO_LWORD UINT LWORD UINT_TO_BCD UINT WORD(BCD) UINT_TO_REAL UINT REAL UINT_TO_LREAL UINT LREAL UINT_TO_DATE UINT DATE UDINT_TO_SINT UDINT SINT UDINT_TO_INT UDINT INT UDINT_TO_DINT UDINT DINT UDINT_TO_LINT UDINT LINT UDINT_TO_USINT UDINT USINT UDINT_TO_UINT UDINT UINT UDINT_TO_ULINT UDINT ULINT UDINT_TO_ UDINT UDINT_TO_BYTE UDINT BYTE UDINT_TO_WORD UDINT WORD UDINT_TO_DWORD UDINT DWORD UDINT_TO_LWORD UDINT LWORD UDINT_TO_BCD UDINT DWORD(BCD) UDINT_TO_REAL UDINT REAL UDINT_TO_LREAL UDINT LREAL UDINT_TO_TOD UDINT TOD UDINT_TO_TIME UDINT TIME ULINT_TO_SINT ULINT SINT ULINT_TO_INT ULINT INT ULINT_TO_DINT ULINT DINT ULINT_TO_LINT ULINT LINT ULINT_TO_USINT ULINT USINT ULINT_TO_UINT ULINT UINT 제 1 장펑션및펑션블록일람표부 1-4 LS 산전연수원

펑션그룹 ULINT_TO_*** _TO_*** BYTE_TO_*** WORD_TO_*** 펑션이름 입력데이터출력데이터적용기종타입타입 GMR~2 GM3 GM4~7 ULINT_TO_UDINT ULINT UDINT ULINT_TO_ ULINT ULINT_TO_BYTE ULINT BYTE ULINT_TO_WORD ULINT WORD ULINT_TO_DWORD ULINT DWORD ULINT_TO_LWORD ULINT LWORD ULINT_TO_BCD ULINT LWORD(BCD) ULINT_TO_REAL ULINT REAL ULINT_TO_LREAL ULINT LREAL _TO_SINT SINT _TO_INT INT _TO_DINT DINT _TO_LINT LINT _TO_USINT USINT _TO_UINT UINT _TO_UDINT UDINT _TO_ULINT ULINT _TO_BYTE BYTE _TO_WORD WORD _TO_DWORD DWORD _TO_LWORD LWORD _TO_STRING STRING BYTE_TO_SINT BYTE SINT BYTE_TO_INT BYTE INT BYTE_TO_DINT BYTE DINT BYTE_TO_LINT BYTE LINT BYTE_TO_USINT BYTE USINT BYTE_TO_UINT BYTE UINT BYTE_TO_UDINT BYTE UDINT BYTE_TO_ULINT BYTE ULINT BYTE_TO_ BYTE BYTE_TO_WORD BYTE WORD BYTE_TO_DWORD BYTE DWORD BYTE_TO_LWORD BYTE LWORD BYTE_TO_STRING BYTE STRING BYTE_TO_ASC BYTE WORD(ASCII) WORD_TO_SINT WORD SINT WORD_TO_INT WORD INT WORD_TO_DINT WORD DINT WORD_TO_LINT WORD LINT WORD_TO_USINT WORD USINT WORD_TO_UINT WORD UINT 제 1 장펑션및펑션블록일람표부 1-5 LS 산전연수원

펑션그룹 WORD_TO_*** DWORD_TO_*** LWORD_TO_*** LWORD_TO_*** STRING_TO_*** 펑션이름 입력데이터출력데이터적용기종타입타입 GMR~2 GM3 GM4~7 WORD_TO_UDINT WORD UDINT WORD_TO_ULINT WORD ULINT WORD_TO_ WORD WORD_TO_BYTE WORD BYTE WORD_TO_DWORD WORD DWORD WORD_TO_LWORD WORD LWORD WORD_TO_DATE WORD DATE WORD_TO_STRING WORD STRING DWORD_TO_SINT DWORD SINT DWORD_TO_INT DWORD INT DWORD_TO_DINT DWORD DINT DWORD_TO_LINT DWORD LINT DWORD_TO_USINT DWORD USINT DWORD_TO_UINT DWORD UINT DWORD_TO_UDINT DWORD UDINT DWORD_TO_ULINT DWORD ULINT DWORD_TO_ DWORD DWORD_TO_BYTE DWORD BYTE DWORD_TO_WORD DWORD WORD DWORD_TO_LWORD DWORD LWORD DWORD_TO_REAL DWORD REAL DWORD_TO_TIME DWORD TIME DWORD_TO_TOD DWORD TOD DWORD_TO_STRING DWORD STRING LWORD_TO_SINT LWORD SINT LWORD_TO_INT LWORD INT LWORD_TO_DINT LWORD DINT LWORD_TO_LINT LWORD LINT LWORD_TO_USINT LWORD USINT LWORD_TO_UINT LWORD UINT LWORD_TO_UDINT LWORD UDINT LWORD_TO_ULINT LWORD ULINT LWORD_TO_ LWORD LWORD_TO_BYTE LWORD BYTE LWORD_TO_WORD LWORD WORD LWORD_TO_DWORD LWORD DWORD LWORD_TO_LREAL LWORD LREAL LWORD_TO_DT LWORD DT LWORD_TO_STRING LWORD STRING STRING _TO_SINT STRING SINT STRING _TO_INT STRING INT STRING _TO_DINT STRING DINT 제 1 장펑션및펑션블록일람표부 1-6 LS 산전연수원

펑션그룹 펑션이름 입력데이터출력데이터적용기종타입타입 GMR~2 GM3 GM4~7 STRING _TO_LINT STRING LINT STRING _TO_USINT STRING USINT STRING _TO_UINT STRING UINT STRING _TO_UDINT STRING UDINT STRING _TO_ULINT STRING ULINT STRING _TO_ STRING STRING _TO_BYTE STRING BYTE STRING_TO_*** STRING _TO_WORD STRING WORD STRING _TO_DWORD STRING DWORD STRING _TO_LWORD STRING LWORD STRING _TO_REAL STRING REAL STRING _TO_LREAL STRING LREAL STRING _TO_DT STRING DT STRING _TO_DATE STRING DATE STRING _TO_TOD STRING TOD STRING _TO_TIME STRING TIME NUM_TO_STRING NUM_TO_STRING ANY_NUM STRING TIME_TO_UDINT TIME UDINT TIME_TO_*** TIME_TO_DWORD TIME DWORD TIME_TO_STRING TIME STRING DATE_TO_UINT DATE UINT DATE_TO_*** DATE_TO_WORD DATE WORD DATE_TO_STRING DATE STRING TOD_TO_UDINT TOD UDINT TOD_TO_*** TOD_TO_DWORD TOD DWORD TOD_TO_STRING TOD STRING DT_TO_LWORD DT LWORD DT_TO_*** DT_TO_DATE DT DATE DT_TO_TOD DT TOD DT_TO_STRING DT STRING 제 1 장펑션및펑션블록일람표부 1-7 LS 산전연수원

1.1.2. 수치연산펑션 1.1.2.1. 하나의입력을갖는수치연산펑션 GMR, GM1, GM2 에서만지원됩니다.(ABS 는 GM3, GM4, GM6, GM7 에서도지원됩니다.) No. 펑션이름 기 능 일반펑션 1 ABS 절대값연산 (Absolute Value) 2 SQRT 제곱근연산 (Square Root) 로그펑션 3 LN 자연대수연산 (Natural Logarithm) 4 LOG 상용대수연산 (Logarithm Base To 1 ) 5 EXP 자연지수연산 (Natural Exponential) 삼각펑션 6 SIN 사인값연산 (Sine) 7 COS 코사인값연산 (Cosine) 8 TAN 탄젠트값연산 (Tangent) 9 ASIN 아크사인값연산 (Arc Sine) 10 ACOS 아크코사인값연산 (Arc Cosine) 11 ATAN 아크탄젠트값연산 (Arc Tangent) 각도펑션 12 RAD_REAL 각도의단위를 ( ) 에서라디안 (Radian) 으로변환 13 RAD_LREAL 14 DEG_REAL 라디안 (Radian) 값을각도 ( ) 로변환 15 DEG_LREAL 1.1.2.2. 기본수치연산펑션 EXPT 는 GMR,GM1, GM2 에서만지원됩니다..(XCHG_*** 는 GM3,GM4,GM6,GM7 에서도지원됩니다.) No. 펑션이름 기 능 입력개수를확장할수있는연산펑션 ( 단,n은 8까지가능 ) 1 ADD 더하기 (OUT <= IN1 + IN2 +... + INn) 2 MUL 곱하기 OUT <= IN1 * IN2 *... * INn) 입력개수가일정한연산펑션 3 SUB 빼기 (OUT <= IN1 - IN2) 4 DIV 나누기 (OUT <= IN1 / IN2) 5 MOD 나머지구하기 (OUT <= IN1 Modulo IN2) 6 EXPT 지수연산 (OUT <= IN1 IN2 ) 7 MOVE 데이터복사 (OUT <= IN) 입력데이터값교환 8 XCHG_*** 입력데이터값을서로교환 제 1 장펑션및펑션블록일람표부 1-8 LS 산전연수원

1.1.3. 비트열펑션 1.1.3.1. 비트시프트펑션 No. 펑션이름 기 능 1 SHL 입력을 N 비트왼쪽으로이동 ( 오른쪽은 0 으로채움 ) 2 SHR 입력을 N 비트오른쪽으로이동 ( 왼쪽은 0 으로채움 ) 3 SHIFT_C_*** 입력을 N 비트만큼지정된방향으로이동 (Carry 발생 ) 4 ROL 입력을 N 비트왼쪽으로회전 5 ROR 입력을 N 비트오른쪽으로회전 6 ROTATE_C_*** 입력을 N 비트만큼지정된방향으로회전 (Carry 발생 ) 1.1.3.2. 비트연산펑션 No. 펑션이름 기 능 ( 단, n은 8까지가능 ) 1 AND 논리곱 (OUT <= IN1 AND IN2 AND... AND INn) 2 OR 논리합 (OUT <= IN1 OR IN2 OR... OR INn) 3 XOR 배타적논리합 (OUT <= IN1 XOR IN2 XOR... XOR INn) 4 NOT 논리반전 (OUT <= NOT IN1) 1.1.4. 선택펑션 No. 펑션이름 기 능 ( 단, n은 8까지가능 ) 1 SEL 입력 IN0 와 IN1 중에선택하여출력 2 MAX 입력 IN1,...INn 중에최대값출력 3 MIN 입력 IN1,...INn 중에최소값출력 4 LIMIT 상하한제한값출력 5 MUX 입력 IN0,... INn 중 K 번째입력을출력 1.1.5. 데이터교환펑션 No. 펑션이름 기 능 1 SWAP_BYTE BYTE 의상 하위 Nibble 을교환하여줄력 SWAP_WORD WORD 의상 하위 BYTE 를교환하여줄력 SWAP_DWORD DWORD 의상 하위 WORD 를교환하여줄력 SWAP_LWORD LWORD 의상 하위 DWORD 를교환하여줄력 2 ARY_SWAP_BYTE Array 로입력된 BYTE 의상 하위 Nibble 을교환하여줄력 ARY_SWAP_WORD Array 로입력된 WORD 의상 하위 BYTE 를교환하여줄력 ARY_SWAP_DWORD Array 로입력된 DWORD 의상 하위 WORD 를교환하여줄력 ARY_SWAP_LWORD Array 로입력된 LWORD 의상 하위 DWORD 를교환하여줄력 제 1 장펑션및펑션블록일람표부 1-9 LS 산전연수원

1.1.6. 비교펑션 No. 펑션이름 기 능 ( 단, n은 8까지가능 ) 1 GT 크다 비교 OUT <= (IN1>IN2) & (IN2>IN3) &... & (INn-1 > INn) 2 GE 크거나작다 비교 OUT <= (IN1>=IN2) & (IN2>=IN3) &... & (INn-1 >= INn) 3 EQ 같다 비교 OUT <= (IN1=IN2) & (IN2=IN3) &... & (INn-1 = INn) 4 LE 작거나같다 비교 OUT <= (IN1<=IN2) & (IN2<=IN3) &... & (INn-1 <= INn) 5 LT 작다 비교 OUT <= (IN1<IN2) & (IN2<IN3) &... & (INn-1 < INn) 6 NE 같지않다 비교 OUT <= (IN1<>IN2) & (IN2<>IN3) &... & (INn-1 <> INn) 1.1.7. 문자열펑션 No. 펑션이름 기 능 1 LEN 입력문자열의길이구하기 2 LEFT 입력문자열을왼쪽으로부터 L 만큼출력 3 RIGHT 입력문자열을오른쪽으로부터 L 만큼출력 4 MID 입력문자열의 P 번째부터 L 만큼출력 5 CONCAT 입력문자열을붙여출력 6 INSERT 첫번째입력문자열의 P 번째문자뒤에두번째입력문자열을삽입하여출력 7 DELETE 입력문자열의 P 번째문자부터 L 개문자를삭제하여출력 8 REPLACE 첫번째입력문자열의 P 번째문자부터 L 개문자를두번째입력문자열으로대치하여출력 9 FIND 첫번째입력문자열중에두번째입력문자열패턴과동일한부분을찾아시작문자위치를출력 제 1 장펑션및펑션블록일람표부 1-10 LS 산전연수원

1.1.8. 날짜시각펑션 No. 펑션이름 기 능 1 ADD_TIME 시간, 시각및날짜시각에시간더하기 2 SUB_TIME 시간, 시각및날짜시각에시간빼기 SUB_DATE 날짜에서날짜를빼서시간산출하기 SUB_TOD 시각에서시각을빼서시간산출하기 SUB_DT 날짜시각에서날짜시각을빼서시간산출하기 3 MUL_TIME 시간에숫자곱하기 4 DIV_TIME 시간에숫자나누기 5 CONCAT_TIME 날짜와시각을붙여서날짜시각만들기 1.1.9. 시스템제어펑션 No. 펑션이름 기 능 1 DI 태스크프로그램기동불허 2 EI 태스크프로그램기동허가 3 STOP 프로그램에의한운전정지 4 ESTOP 프로그램에의한비상운전정지 5 DIREC_IN 입력데이터즉시갱신 (GM1- GM7에적용 ) 6 DIREC_O 출력모듈데이터즉시갱신 (GM1- GM7에적용 ) 7 WDT_RST Watch_Dog 타이머갱신 8 MCS Master Control 9 MCSCLR Master Control Clear 제 1 장펑션및펑션블록일람표부 1-11 LS 산전연수원

1.1.10. 데이터조작명령펑션 No. 펑션이름 기 능 1 MEQ_*** 입력값을 Masking 한후이값들을비교 2 DIS_*** 입력값들을지정된 Bit 개수단위로출력 3 UNI_*** Array로입력된값을지정된 Bit수만큼결합 4 BIT_BYTE 8개의 Bit들을 BYTE로모음 5 BYTE_BIT BYTE를 8개의 Bit로나눔 6 BYTE_WORD 2개의 BYTE들을 WORD로모음 7 WORD_BYTE WORD를 2개의 BYTE로나눔 8 WORD_DWORD 2개의 WORD들을 DWORD로모음 9 DWORD_WORD DWORD를 2개의 WORD로나눔 10 DWORD_LWORD 2개의 DWORD들을 LWORD로모음 11 LWORD_DWORD LWORD를 2개의 DWORD로나눔 12 GET_CHAR 지정된문자열로부터한문자 (Character) 를추출 13 PUT_CHAR 지정된문자를지정된문자열에쓰기 14 STRING_TO_ARY 지정된문자열을 BYTE Array로변환 15 ARY_TO_STRING BYTE Array를지정된문자열로변환 1.1.11. 스택연산명령펑션 No. 펑션이름 기 능 1 FIFO_*** 선입선출명령 2 LIFO_*** 후입선출명령 제 1 장펑션및펑션블록일람표부 1-12 LS 산전연수원

1.2. MK(MASTER-K) 펑션 No. 펑션이름 기 능 ( 단, n은 8까지가능 ) 1 ENCO_B,W,D,L ON 된비트위치를숫자로출력 2 DECO_B,W,D,L 지정된비트위치를 ON 3 BSUM_B,W,D,L ON 된비트개수를숫자로출력 4 SEG BCD 또는 HEX 값을 7 세그먼트디스플레이코드로변환 5 BMOV_B,W,D,L 비트스트링의일부분을복사, 이동 6 INC_B,W,D,L IN 데이터를하나증가 7 DEC_B,W,D,L IN 데이터를하나감소 1.3. Array 연산명령펑션 No. 펑션이름 기 능 1 ARY_MOVE Array Type 의데이터복사 (OUT <= IN) 2 ARY_CMP_*** 2 개의 Array 로입력된값을동일한값이있는지비교 3 ARY_SCH_*** Array 내에서입력된값과동일한값을찾아출력 4 ARY_FLL_*** 입력데이터값으로 Array 내부의선택영역을채움. 5 ARY_AVE_*** Array 내부의지정된영역에대하여평균값을구함 6 ARY_SFT_C_*** Array 의 Bit 들을정해진개수만큼지정된방향으로이동 7 ARY_ROT_C_*** Array 의 Bit 들을정해진개수만큼지정된방향으로회전 8 SHIFT_A_*** Array 블록중지정된범위의값들을지정된방향으로이동 9 ROTATE_A_*** Array 블록중지정된범위의값들을지정된방향으로회전 1.4. 기본펑션블록 1.4.1. 바이스테이블펑션블록 No. 펑션블록이름 기 능 1 SR 세트우선쌍안정출력 2 RS 리세트우선쌍안정출력 3 SEMA 시스템자원제어용 Semaphore 1.4.2. 에지검출펑션블록 No. 펑션블록이름 기 능 1 R_TRIG 상승에지검출 (Rising Edge Detector) 2 F_TRIG 하강에지검출 (Falling Edge Detector) 제 1 장펑션및펑션블록일람표부 1-13 LS 산전연수원

1.4.3. 카운터 No. 펑션블록이름 기 능 1 CTU 가산카운터 (Up Counter) 2 CTD 감산카운터 (Down Counter) 3 CTUD 가감산카운터 (Up Down Counter) 4 CTR 링카운터 (Ring Counter) 1.4.4. 타이머 No. 펑션블록이름 기 능 1 TP 펄스타이머 (Pulse Timer) 2 TON On 딜레이타이머 (On-Delay Timer) 3 TOF Off 딜레이타이머 (Off-Delay Timer) 4 TMR 적산타이머 (Integrating Timer) 5 TP_RST 펄스타이머의출력 Off가가능한노스테이블타이머 6 TRTG 리트리거블타이머 (Retriggerable Timer) 7 TOF_RST 동작중출력 Off가가능한 Off 딜레이타이머 (Off-Delay Timer) 8 TON_UNIT 정수설정 On 딜레이타이머 (On-Delay Timer) 9 TOF_UNIT 정수설정 Off 딜레이타이머 (Off-Delay Timer) 10 TP_UNIT 정수설정펄스타이머 (Pulse Timer) 11 TMR_UNIT 정수설정적산타이머 (Integrating Timer) 1.4.5. 기타펑션블록 No. 펑션블록이름 기 능 1 SCON 순차스탭및스텝점프 2 DUTY 지정된 Scan마다 On/Off 반복 제 1 장펑션및펑션블록일람표부 1-14 LS 산전연수원

제 2 장. 기본펑션및펑션블록라이브러리 2.1 기본펑션라이브러리 각각의기본펑션라이브러리에대한설명입니다. 포인트 펑션에러발생시다음을참고하시어프로그램을작성하십시오. 펑션에러펑션을실행할때에러가발생하면 ENO 가 0 이되고, 에러플래그 ( _ERR, _LER ) 는 1 이됩니다. 에러가발생되지않는펑션의 ENO 는 EN 을그대로출력합니다.EN,ENO 는 LD 에서만사용합니다. 에러플래그 _ERR (Error) - 에러가명시되어있는펑션의연산후 _ERR 값은아래와같이변합니다. ( 에러가명시되어있지않은펑션은연산전의 _ERR 상태를유지합니다.) - 연산에러인경우, 1 이됩니다. - 연산에러가아닌경우, 0 이됩니다. _LER (Latched Error) - 연산후에러인경우에 1 이되고, 그값은수행중인프로그램의끝까지유지됩니다. - 프로그램에서 0 으로써넣는것이가능합니다. 프로그램예 ADD 펑션에러시 SUB 펑션을수행하지않고, VALUE1 의값을 OUT_VAL 에저장하는프로그램입니다. (1) 펑션 (ADD) 의두입력이아래와같을때, 펑션 (ADD) 는에러가발생합니다. 입력 (IN1) : VALUE1(SINT) = 100(16#64) (IN2) : VALUE2(SINT) = 50(16#32) 출력 (OUT) : OUT_VAL(SINT) = -106(16#96) (2) 출력값이출력데이타타입의범위를벗어나, 비정상적인값이 OUT_VAL(SINT) 에저장됩니다. 이때, 펑션 (ADD) 의 ENO 는 0 이되어펑션 (SUB) 는실행되지않고, 에러플래그 _ERR 과, _LER 은 On 됩니다. (3)_ERR 이 On 되어, 펑션 (MOVE) 이실행됩니다. 입력 (IN1): VALUE1(SINT) = 100(16#64) 출력 (OUT): OUT_VAL(SINT) = 100(16#64) 제 2 장기본펑션및펑션블록라이브러리부 1-1 LS 산전연수원

ABS 절대값연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_WORD EN IN ABS ENO OUT ANY_NUM 입력 EN : 1 일때펑션실행 IN : 절대값연산의입력값 출력 ENO 1 을출력 OUT : 절대값 IN, OUT 은같은데이터타입이어야함. 기능 IN 의값을. X 의절대값 X 는 X 0 이면 X = X 이고, X<0 이면 X = -X 입니다. OUT = IN 에러 IN 의값이 (-) 최소값일때 _ERR, _LER 플래그가셋 (Set) 됩니다. 예 ) 데이터타입이 SINT 일때 IN 의값이 -128 이면에러 프로그램예 LD (1) 실행조건 (% I0.0.0) 이 On 하면펑션 ABS 가실행됩니다. (2)VALUE = -7 이면, ABS_VALUE = -7 = 7 이됩니다. VALUE = 200 이면, ABS_VALUE = 200 = 200 이됩니다. 입력 (IN):VALUE(INT)= -7 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 (ABS) (16#FFF9) 출력 (OUT):ABS_VALUE(INT)= 7 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 (16#0007) INT 형의음수표시는 2 의 Complement 표현 (3.2.4. 데이터타입별구조참조 ) 제 2 장기본펑션및펑션블록라이브러리부 1-2 LS 산전연수원

ACOS Arc Cosine 연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN ACOS ENO OUT ANY_REAL 입력 EN : 1 일때펑션실행 IN : Arc Cosine 연산의입력값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 연산결과각도출력값 (Radian) IN, OUT 은같은데이터타입이어야함. 기능 IN 의 Arc Cosine 값을구해 OUT 으로출력시킵니다. 출력값은 0 에서 π 사이의값이됩니다. OUT = ACOS (IN) 에러 IN1 의범위가 -1.0 부터 1.0 사이에있지않은경우 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0 ) 이 On 하면 Arc Cosine 연산펑션 ACOS 가실행됩니다. (2)INPUT 변수가 0.8660... ( 3 / 2) 일때 RESULT 는 0.5235... (π/6 rad = 30 ) 입니다. ACOS( 3 / 2) = π/6 ( COS π/6 = 3 /2) 입력 (IN1) : INPUT(REAL) = 0.866 출력 (OUT) : RESULT (REAL) = 5.23499966E-01 (ACOS) REAL 형의표시는 IEEE Standard 754-1984 기준 (3.2.4. 데이터타입별구조참조 ) 제 2 장기본펑션및펑션블록라이브러리부 1-3 LS 산전연수원

ADD 더하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_NUM ANY_NUM EN IN1 IN2 ADD ENO OUT ANY_NUM 입력 EN : 1일때펑션실행 IN1 : 더해질값 IN2 : 더할값입력은 8개까지확장가능 출력 ENO : 에러없이실행되면 1 을출력 OUT : 더한결과값 IN1, IN2,..., OUT 에연결되는변수는모두같은데이터타입이어야함. 기능 IN1, IN2,..., INn (n 은입력개수 ) 를더해서 OUT 으로출력시킵니다. OUT = IN1 + IN2 +... + INn 에러 출력값이해당데이터타입의범위를벗어날경우 _ERR, _LER 플래그가셋 (Set)(Set) 됩니다. 프로그램예 LD (1) 실행조건 ( %M0 ) 이 On 하면더하기펑션 ADD 가실행됩니다. (2) 입력변수값이 VALUE1 = 300, VALUE2 = 200, VALUE3 = 100 이면, 출력변수로설정한 OUT_VAL = 300 + 200 + 100 = 600 이됩니다. 입력 (IN1): VALUE1(INT) = 300(16#012C) (IN2): VALUE2(INT) = 200(16#00C8) (IN2): VALUE3(INT) = 100(16#0064) (OUT): OUT_VAL(INT) = 600(16#0258) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 + (ADD) 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 + (ADD) 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-4 LS 산전연수원

ADD_TIME 시간더하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 TIME,TOD,DT TIME EN IN1 IN2 ADD_TIME ENO OUT TIME,TOD,DT 입력 EN : 1일때펑션실행 IN1 : 기준시각또는시간 IN2 : 더할시간출력 ENO : 에러없이실행되면 1을출력 OUT : 더한결과시각또는시간 OUT의타입은입력 IN1의타입을따름. 즉 IN1의타입이 TIME_OF_DAY이면, 출력 OUT의타입도 TIME_OF_DAY임. 기능 IN1 이 TIME 일경우에는시간과시간을더해서합한시간을출력시킵니다. IN1 이 TIME_OF_DAY 일경우에는기준시각에시간을더해서하루중의시각을출력시킵니다. IN1 이 DATE_AND_TIME 일경우에는기준이되는날짜와시각에시간을더해서날짜와시각을출력시킵니다. 에러 출력값이해당데이터타입의범위를벗어날경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 시간과시간을더한결과가 TIME 데이터타입의범위 T#49D17H2M47S295MS 를넘거나시각 (TOD) 과시간을더한결과가 24 시를넘을경우, 또는날짜와시각 (DT) 과시간을더한결과가 2083 년을넘을경우에러가됩니다. 프로그램예 LD (1) 실행조건 (%I0.1.0 ) 이 On 하면시간더하기펑션 ADD_TIME 이실행됩니다. (2) 작업을시작한 START_TIME 이 TOD#08:30:00 이고작업한시간 WORK_TIME 이 T#2H10M20S500MS 이면작업이종료된시각 END_TIME 에는 TOD#10:40:20.5 가출력됩니다. 입력 (IN1) : START_TIME(TOD) = TOD#08:30:00 + ( ADD_TIME ) (IN2) : WORK_TIME(TIME) = T#2H10M20S500MS 출력 (OUT) : END_TIME(TOD) = TOD#10:40:20.5 제 2 장기본펑션및펑션블록라이브러리부 1-5 LS 산전연수원

AND 논리곱 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT ANY_BIT EN IN1 IN2 AND ENO OUT ANY_BIT 입력 EN : 1 일때펑션실행 IN1 : AND 될값 IN2 : AND 될값입력이 8 개까지확장가능 출력 ENO : EN 값이그대로출력 OUT : AND 된값 IN1, IN2, OUT 은모두같은타입이어야함. 기능 IN1 을 IN2 와비트별로 AND 해서 OUT 으로출력시킵니다. IN1 1111... 0000 & IN2 1010... 1010 OUT 1010... 0000 프로그램예 LD (1) 실행조건 ( % I0.1.1 ) 이 On하면펑션 AND가실행됩니다. (2)INI= %MBRQ과 IN2 = ABC값을 AND시킨결과가 OUT = %QB0.0.0에출력됩니다. 입력 (IN1) : %MB10 (BYTE) = 16#CC (IN2) : ABC(BYTE) = 16#F0 1 1 0 0 1 1 0 0 & (AND) 1 1 1 1 0 0 0 0 출력 (OUT) : %QB0.0.0(BYTE) = 16#C0 1 1 1 1 0 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-6 LS 산전연수원

ARY_TO_STRING Byte Array 를문자열로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE_ARY ARY_TO_STRING EN ENO IN1 OUT STRING 입력 EN : 1 일때펑션실행 IN : Byte Array 입력 출력 ENO : EN 값을그대로출력 OUT : 변환된 String 출력 기능 Byte Array 를하나의 String 으로변환합니다. 프로그램예 LD (1) 실행조건 (%M2) 이 On 하면 BYTE_STRING 펑션이실행됩니다. (2) 입력변수인 Input 이하위바이트부터순서대로 16#{22( ),47(G),4D(M),34(4),2D(-),43(C),50(P),55(U),41(A),22( )} 일때출력변수인 RESULT 로 GM4-CPUA 가출력됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-7 LS 산전연수원

ASIN Arc Sine 연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 ANY_REAL EN IN 펑션설명입력 EN : 1일때펑션실행 IN : Arc Sine 연산의입력값 ASIN ENO 출력 ENO : 에러없이실행되면 1을출력 OUT ANY_REAL OUT : 연산결과각도출력값 (Radian) IN, OUT은같은데이터타입이어야함. 기능 IN의 Arc Sine값을구해 OUT으로출력시킵니다. 출력값은 -π/2에서 π/2 사이의값이됩니다. OUT = ASIN (IN) 에러입력값의범위가 -1.0 과 1.0 사이에있지않을경우 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 ( %M0) 이 On하면 Arc Sine 연산펑션 ASIN가실행됩니다. (2)INPUT 변수가 0.8660... ( 3 /2) 일때펑션의출력변수로선언된RESULT는 1.0471... (π/3 rad = 60 ) 입니다. ASIN ( 3 / 2) = π/3 (SIN(π/3) = 3 /2) 입력 (IN1) : INPUT(REAL) = 0.866 출력 (OUT) : RESULT(REAL) =1.04714680E+00 (ASIN) 제 2 장기본펑션및펑션블록라이브러리부 1-8 LS 산전연수원

ATAN Arc Tangent 연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN ATAN ENO OUT ANY_REAL 입력 EN : 1 일때펑션실행 IN : Arc Tangent 연산의입력값 출력 ENO : EN 값이그대로출력 OUT : 연산결과각도출력값 (Radian) IN, OUT 은같은데이터타입이어야함. 기능 IN의 Arc Tangent 값을구해 OUT으로출력시킵니다. 출력값은 -π/2에서 π/2 사이의값이됩니다. OUT = ATAN (IN) 프로그램예 LD (1) 실행조건 ( %M0) 이 On하면 Arc Trangent 연산펑션 ATAN이실행됩니다. (2) 펑션의입력변수로선언된 INPUT = 1.0일경우, 펑션의출력변수로선언된 RESULT = π/4 = 0.7853... 입니다. ATAN (1) = π/4 ( TAN(π/4) = 1 ) 입력 (IN1) : INPUT(REAL) = 1.0 (ATAN) 출력 (OUT) : RESULT(REAL) = 7.85398185E 제 2 장기본펑션및펑션블록라이브러리부 1-9 LS 산전연수원

BCD_TO_*** BCD 타입을정수로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT EN IN BCD_TO_*** ENO OUT *** 입력 EN : 1 일때펑션실행 IN : BCD 형태의데이터를갖고있는 ANY_BIT 입력 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 입력타입 출력타입 동작설명 BCD_TO_SINT BYTE SINT BCD_TO_INT WORD INT BCD_TO_DINT DWORD DINT BCD를출력데이터타입타입으로변환합니다. BCD_TO_LINT LWORD LINT 입력이 BCD값일경우에만정상변환됩니다. BCD_TO_USINT BYTE USINT ( 입력데이터타입이 WORD일경우 0 16#9999값만정상 BCD_TO_UINT WORD UINT 변환됩니다.) BCD_TO_UDINT DWORD UDINT BCD_TO_ULINT LWORD ULINT 에러 IN 이 BCD 형태의데이터가아닌경우, 출력은 0 이되고 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 ( %M0) 이 On 하면펑션 BCD_TO_*** 이실행됩니다. (2)BCD_VAL(BYTE 타입 ) = 16#22(2#0010_ 0010) 이면, 펑션의출력변수로선언된 OUT_VAL(SINT 타입 ) = 22(2#0001_ 0110) 가출력됩니다. 입력 (IN1) :BCD_VAL(BYTE) = 16#22 0 0 1 0 0 0 1 0 (BCD_TO_SINT) 출력 (OUT): OUT_VAL(SINT) = 22 0 0 0 1 0 1 1 0 제 2 장기본펑션및펑션블록라이브러리부 1-10 LS 산전연수원

_TO_*** 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 _TO_*** EN ENO IN1 OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할비트 (1 비트 ) 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑 션 출력타입 동작 설명 _TO_SINT SINT _TO_INT INT _TO_DINT DINT 입력의값이 2#0면정수값 0 을, 2#1이면정수값 1 을 _TO_LINT LINT 출력데이터타입에맞추어출력합니다. _TO_USINT USINT _TO_UINT UINT _TO_UDINT UDINT _TO_ULINT ULINT _TO_BYTE BYTE _TO_WORD WORD 을상위비트들을 0으로채운출력데이터타입타입으로 _TO_DWORD DWORD 변환합니다. _TO_LWORD LWORD _TO_STRING STRING 을 STRING 타입으로변환합니다. 0 또는 1 로변환합니다. 0 또는 1 로변환됩니다. 프로그램예 LD (1) 실행조건 ( %M0) 이 On하면펑션 _TO_*** 이실행됩니다. (2) 입력변수로선언된 _VAL( 타입 ) = 2#1이면, 출력변수로선언된 OUT_VAL(BYTE 타입 ) = 2#0000_ 0001) 이출력됩니다. 입력 (IN1) : _VAL() = 2#1 1 출력 (OUT): OUT_VAL(BYTE) = 16#1 0 0 0 0 0 0 0 1 (_TO_SINT) 제 2 장기본펑션및펑션블록라이브러리부 1-11 LS 산전연수원

BYTE_TO_*** BYTE 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE BYTE_TO_*** EN ENO IN1 OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할비트열 (8 비트 ) 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 BYTE _TO_SINT SINT 내부비트배열의변환없이 SINT 타입으로변환합니다. BYTE _TO_INT INT 상위비트를 0으로채워 INT 타입으로변환합니다. BYTE _TO_DINT DINT 상위비트를 0으로채워 DINT 타입으로변환합니다. BYTE _TO_LINT LINT 상위비트를 0으로채워 LINT 타입으로변환합니다. BYTE _TO_USINT USINT 내부비트배열의변환없이 SINT 타입으로변환합니다. BYTE _TO_UINT UINT 상위비트를 0으로채워 UINT 타입으로변환합니다. BYTE _TO_UDNT UDINT 상위비트를 0으로채워 UDINT 타입으로변환합니다. BYTE _TO_ULINT ULINT 상위비트를 0으로채워 ULINT 타입으로변환합니다. BYTE _TO_ 하위 1비트를취해 타입으로변환합니다. BYTE _TO_WORD WORD 상위비트를 0으로채워 WORD 타입으로변환합니다. BYTE _TO_DWORD DWORD 상위비트를 0으로채워 DWORD 타입으로변환합니다. BYTE _TO_LWORD LWORD 상위비트를 0으로채워 LWORD 타입으로변환합니다. BYTE _TO_STRING STRING 입력값을 STRING 타입으로변환합니다. 프로그램예 LD (1) 실행조건 ( %M10) 이 On 하면펑션 BYTE_TO_SINT 이실행됩니다. (2)IN_VAL(BYTE 타입 ) = 2#0001_1000 이면, OUT_VAL(SINT 타입 ) = 24(2#0001_1000) 가됩니다. 입력 (IN1) : IN_VAL(BYTE) = 16#18 0 0 0 1 1 0 0 0 출력 (OUT) : OUT_VAL(SINT) = 24 0 0 0 1 1 0 0 0 (BYTE_TO_SINT) 제 2 장기본펑션및펑션블록라이브러리부 1-12 LS 산전연수원

CONCAT 문자열연결하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING STRING EN IN1 IN2 CONCAT ENO OUT STRINGL 입력 EN : 1 일때펑션실행 IN1 : 입력문자열 IN2 : 입력문자열입력 8 개까지확장가능 출력 ENO : 에러없이실행되면 1 을출력 OUT : 출력문자열 기능입력문자열 IN1, IN2, IN3,..., INn(n 은입력개수 ) 을순서대로붙여서출력문자열 OUT 에출력시킵니다. 에러 ( 각입력문자열의문자수의합 ) > 30 인경우, OUT 값은각입력문자열을 30 자까지 CONCAT 한값이출력되고, _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 ( %I0.2.1) 이 On 하면펑션 CONCAT 이실행됩니다. (2) 펑션의입력변수로선언된 IN_TEXT1=`ABCD`, IN_TEXT2=`DEF` 이면, 출력변수로선언된 OUT_TEXT=`ABCDDEF` 가됩니다. 입력 (IN1) : IN_TEXT1(STRING) = `ABCD` (CONCAT) (IN2) : IN_TEXT2(STRING) = `DEF` 출력 (OUT) : OUT_TEXT(STRING) = ABCDDEF 제 2 장기본펑션및펑션블록라이브러리부 1-13 LS 산전연수원

CONCAT_TIME 날짜와시각연결하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DATA TOD EN IN1 IN2 CONCAT_TIME ENO OUT DT 입력 EN : 1 일때펑션실행 IN1 : 날짜데이터입력 IN2 : 시각데이터입력 출력 ENO : EN 값이그대로출력 OUT : 날짜와시각출력 기능 IN1( 날짜 ) 과 IN2( 시각 ) 를붙여서날짜와시각 (DATE_AND_TIME) OUT 으로출력합니다. 프로그램예 LD (1) 실행조건 ( %M1) 이 On 하면펑션 CONCAT_TIME 이실행됩니다. (2) 운전시작날짜데이터변수 START_DATE = D#1995-12-06 이고운전시작시각 START_TIME = T OD#08:30:00 이면날짜와시각이합쳐진 START_DT 에는 DT#1995-12-06-08:30:00 이출력됩니다. 입력 (IN1) : START_DATE1(DATE) = D#1995-12-06 (CONCAT_TIME) (IN2) : START_TIME(TOD) = TOD#08:30:00 출력 (OUT) : START_DT(DT) = DT#1995-12-06-08:30:00 제 2 장기본펑션및펑션블록라이브러리부 1-14 LS 산전연수원

COS Cosine 연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN COS ENO OUT ANY_REAL 입력 EN : 1 일때펑션실행 IN : Cosine 연산의각도입력값 (Radian) 출력 ENO: EN 값이그대로출력 OUT: Cosine 연산결과값 IN, OUT 은같은데이터타입이어야함. 기능 IN 의 Cosine 값을구해 OUT 으로출력시킵니다. OUT = COS (IN) 프로그램예 LD (1) 실행조건 ( %I0.1.3) 이 On 하면펑션 COS 이실행됩니다. (2)INPUT 으로선언된입력변수의값이 0.5235 (π/6 rad = 30 ) 일때출력변수로선언된 RESULT 은 0.8660... ( 3 /2) 입니다. COS ( π/6) = 3/2 = 0.866 입력 (IN1) : INPUT(REAL) = 0.5235 (COS) 출력 (OUT) : RESULT(REAL) = 8.66074800E-01 제 2 장기본펑션및펑션블록라이브러리부 1-15 LS 산전연수원

DATE_TO_*** DATE 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DATE DATE_TO_*** EN ENO IN OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할날짜데이터 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 DATE_TO_UINT UINT DATE를 UINT타입으로변환합니다. DATE_TO_WORD WORD DATE 를 WORD 타입으로변환합니다. DATE_TO_STRING STRING DATE 를 STRING 타입으로변환합니다. 프로그램예 LD (1) 실행조건 ( %M0) 이 On 하면데이터타입변환펑션 DATE_TO_STRING 이실행됩니다. (2) 입력변수로선언된 IN_VAL(DATE 타입 ) 의값이 D#1995-12-01 이면, 출력변수로선언된 OUT_VAL (STRING 타입 ) 는 D#1995-12-01 이됩니다. 입력 (IN1) : IN_VAL(DATE) = D#1995-12-01 출력 (OUT) : OUT_VAL(STRING) = D#1995-12-01 (DATE_TO_STRING) 제 2 장기본펑션및펑션블록라이브러리부 1-16 LS 산전연수원

DELETE 문자열을삭제하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING INT INT EN IN L P DELETE ENO OUT STRING 입력 EN : 1일때펑션실행 IN : 입력문자열 L : 삭제할문자열길이 P : 문자열의삭제위치 출력 ENO : 에러없이실행되면 1 을출력 OUT : 출력문자열 기능문자열 IN 의 P 번째문자부터길이 L 숫자만큼삭제한후, 문자열 OUT 에출력시킵니다. 에러 P 0 또는 L< 0 인경우또는 P > (IN1 의입력문자열의문자수 ) 인경우, _ERR,_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 ( %I0.0.0) 이 On 하면문자열삭제 DELETE 가실행됩니다. (2) 입력변수의값이 IN_TEXT( 입력한문자 )=`ABCDEF`,LENGTH( 삭제할문자열길이 )=3,POSITION( 문자열의삭제위치 )=3 이면, 출력변수로선언된 OUT_TEXT(STRING 타입 ) 는 `ABF` 가됩니다. 입력 (IN) : IN_TEXT(STRING) = `ABCDEF` (L) : LENGTH(INT) = 3 (P) : POSITION(INT) = 3 출력 (OUT): OUT_VAL(STRING) = `ABF` (DELETE) 제 2 장기본펑션및펑션블록라이브러리부 1-17 LS 산전연수원

DI 태스크프로그램기동불허 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 EN REQ DI ENO OUT 입력 EN : 1 일때펑션실행 REQ : 태스크프로그램기동불허요구 출력 ENO : EN 값이그대로출력 OUT : DI 동작이실행되면 1 출력 기능 EN이 1이고 REQ에 1의값이들어오면사용자에의해서작성된태스크프로그램 ( 싱글, 인터벌, 인터럽트 ) 의기동을막습니다. 한번 'DI' 명령이수행되면 REQ입력이 0이되어도태스크프로그램은기동되지않습니다. 태스크프로그램이정상적으로기동하도록할때는 'EI' 펑션을사용하여주십시오. 프로그램의수행도중에타태스크프로그램의수행으로연산처리의연속성을잃을경우문제가되는부분에대하여부분적으로태스크프로그램의수행을막고자할때사용할수있습니다. 태스크프로그램의기동불허상태에서발생한태스크들은태스크종류에따라다음과같이수행됩니다. - 싱글태스크 : 'EI' 펑션수행후또는현재수행중인태스크프로그램의종료후에수행됩니다. 이때싱글변수의상태변화횟수만큼태스크프로그램을반복하여수행합니다. - 인터벌태스크, 인터럽트 : 태스크프로그램의기동불허상태에서발생한태스크는 'EI' 펑션수행후또는현재수행중인태스크프로그램의종료후에수행됩니다. 그러나, 태스크가 2번이상발생한경우에는태스크충돌경고 (TASK_ERR) 가발생하고, 충돌횟수 (TC_CNT) 를 Count 합니다. 제 2 장기본펑션및펑션블록라이브러리부 1-18 LS 산전연수원

프로그램예 1 초마다값을증가하는태스크프로그램을태스크프로그램기동불허펑션 DI 와태스크프로그램기동허가펑션 EI 를이용하여제어하는프로그램 LD (1)Scan 프로그램 (TASK 프로그램제어 ) (2)1 초마다실행하여증가하는태스크프로그램 (1)DI( 태스크프로그램기동불허펑션 ) 의기동불허요구인 REQ ( 직접변수 %I0.1.14로지정) 가 On하면펑션 DI가실행되어출력변수로설정된 DI_OK의값이 1이됩니다. (2) 펑션 DI가실행되면 1초마다실행되던태스크프로그램의실행이정지됩니다. (3)EI ( 태스크프로그램기동허가펑션 ) 의기동허가요구인 REQ ( 직접변수 %I0.1.15로지정) 가 On하면펑션 EI가실행되어출력변수로설정한 EI_OK의값이 1이됩니다. (4) 펑션 EI가실행하면펑션 DI로정지되었던태스크프로그램이재실행됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-19 LS 산전연수원

DINT_TO_*** DINT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DINT EN IN DINT_TO_*** ENO OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할 Double Integer값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 DINT_TO_SINT SINT 입력이 -128 127일경우정상변화되나, 그외값은에러가발생합니다. DINT_TO_INT INT 입력이 -32768 32767일경우정상변화되나, 그외값은에러가발생합니다. DINT_TO_LINT LINT LINT 타입으로정상변환합니다. DINT_TO_USINT USINT 입력이 0 255일경우정상변화되나, 그외값은에러가발생합니다. DINT_TO_UINT UINT 입력이 0 65535일경우정상변화되나, 그외값은에러가발생합니다. DINT_TO_UDINT UDINT 입력이 0 2147483647일경우정상변화되나, 그외값은에러가발생합니다. DINT_TO_ULINT ULINT 입력이 0 2147483647일경우정상변화되나, 그외값은에러가발생합니다. DINT_TO_ 하위 1 비트를취해 타입으로변환합니다. DINT_TO_BYTE BYTE 하위 8 비트를취해 BYTE 타입으로변환합니다. DINT_TO_WORD WORD 하위 16 비트를취해 WORD 타입으로변환합니다. DINT_TO_DWORD DWORD 내부비트배열의변화없이 DWORD 타입으로변환합니다. DINT_TO_LWORD LWORD 상위비트를 0으로채운 LWORD타입으로변환합니다. DINT_TO_BCD DWORD 입력이 0 99,999,999일경우정상변화되나, 그외값은에러가발생합니다. DINT_TO_REAL REAL DINT를 REAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. DINT_TO_LREAL LREAL DINT를 LREAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. 에러변환에러발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 프로그램예 LD (1) 실행조건 (%M1 ) 이 On하면데이터타입변환펑션 DINT_TO_SINT가실행됩니다. (2)INI = DINT_VAL(DINT 타입 ) = -77이면, SINT_VAL(SINT 타입 ) = -77이됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-20 LS 산전연수원

입력 (IN1) : DINT_VAL(DINT) = -77 상위 하위 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 출력 (OUT) : OUT_VAL(SINT) = -77 (DINT_TO_SINT) 1 0 1 1 0 0 1 1 제 2 장기본펑션및펑션블록라이브러리부 1-21 LS 산전연수원

DIREC_IN 입력데이터즉시갱신 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 USINT USINT DWORD DWORD DIREC_INH EN ENO BASE OUT SLOT MASK_L MASK_H 입력 EN : 1일때펑션실행 BASE : 입력모듈이장착된베이스의위치번호 SLOT : 입력모듈이장착된슬롯의위치번호 MASK_L : 입력하위 32비트데이터중갱신하지않을비트지정 MASK_H : 입력상위 32비트데이터중갱신하지않을비트지정 출력 ENO : 에러없이실행되면 1 을출력 OUT : 입력데이터갱신이완료되면 1 출력 기능 펑션 DIREC_IN( 입력데이터즉시갱신 ) 은스캔도중에 EN이 1이되면 BASE, SLOT에지정된위치의입력모듈의 64비트데이터를읽어서입력이미지영역에갱신하여넣습니다. 이때이미지영역에는해당슬롯에꽂혀있는입력모듈의점수만큼만갱신됩니다. 펑션 DIREC_IN은스캔중에입력 (%I) 의 On/Off 상태를변화시키고싶을때사용이가능합니다. 통상스캔동기일괄처리방식은입력데이터읽기와출력데이터의출력을스캔프로그램의종료후에일괄처리하기때문에, 1Scan 도중에외부로부터의입력된데이터의갱신이불가능합니다. 펑션 DIREC_IN을사용하면프로그램실행도중에해당하는입력을갱신할수있습니다. 제 2 장기본펑션및펑션블록라이브러리부 1-22 LS 산전연수원

프로그램예 1.3번째증설 Base,3번째 Slot에꽂힌모듈이 16점모듈이고, 입력데이터가 2# 1010_1010_1110_1011 로즉시갱신하는프로그램 LD (1) 입력조건 (%M0) 가 On 하면 DIREC_IN( 입력데이터즉시갱신 ) 펑션이실행합니다. (2) 장착된모듈이 16 점모듈이므로갱신대상이미지영역은 %IW3.3.0 이되고갱신하지않을비트의지정변수 MASK_L( 입력하위 32 비트 ) 의값에서하위 16Bit 가갱신허용으로설정되어있으므로 %IW3.3.0 은스캔도중 #1010_1010_1110_1011 로갱신됩니다. (3) 비트의지정변수는 MASK_H( 입력상위 32 비트 ) 의설정값은현재설정된베이스, 슬롯에 16 점모듈이꽂혀있으므로무시됩니다. 2. 3번째증설 Base, 3번째 Slot에꽂힌모듈이 32점모듈이고, 입력데이터가 2#0000_0000_1111_1111_1100_1100_0011_0011일때하위 16Bit만즉시갱신하는프로그램 LD (1) 입력조건 (%M0) 가 On 하면 DIREC_IN( 입력데이터즉시갱신 ) 펑션이실행합니다. (2) 장착된모듈이 32 점모듈이므로갱신대상이미지영역은 %ID3.3.0 가되나, 갱신하지않을때비트지정 MASK_L( 입력하위 32 비트 ) 의값에서하위 16 비트가갱신허용으로설정되어있으므로 %IW3.3.0 만 2#1100_1100_0011_0011 로갱신됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-23 LS 산전연수원

3. 3 번째증설 Base, 3 번째 Slot 에꽂힌모듈이 64 점모듈이고입력데이터가 16#0000_FFFF_AAAA_7777(2#0000_0000_0000_1111_1111_1111_1111_1010_1010_1010_1010_0111_0111_ 0111_0111) 일때 64 비트중하위 48 비트만즉시갱신할프로그램. LD (1) 입력조건 (#M0) 가 On하면 DIREC_IN( 입력데이터즉시갱신 ) 펑션이실행합니다. (2) 장착된모듈이 64점이므로갱신이미지영역은 %IL3.3.0 즉 %ID3.3.0과 %ID3.3.1이됩니다. 하위 32비트 (MASK_L) 모두는갱신허용으로되어있으므로 %ID3.3.0은모두갱신됩니다. 상위 32비트 (MASK_H) 는이중하위 32Bit만갱신허용으로되어있으므로 %ID3.3.1은 %IW.3.3.2는 갱신되고, %IW3.3.3은갱신되지않습니다. 따라서이미지영역의데이터의갱신은아래와같습니다. %IL3.3.0 %ID3.3.0 %IW.3.3.0:2#0111_0111_0111_0111 %IW.3.3.1:2#1010_1010_1010_1010 %ID3.3.1 %IW3.3.2:2#1111_1111_1111_1111 %IW3.3.3: 이전값유지 (3) 입력갱신이완료되면 REF_OK( 입력데이터갱신완료 ) 에는 1이출력됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-24 LS 산전연수원

DIREC_O 출력모듈데이터즉시갱신 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 USINT USINT DWORD DWORD DIREC_O EN BASE SLOT MASK_L MASK_H ENO OUT 입력 EN : 1일때펑션실행 BASE : 출력모듈이장착된베이스의위치번호 SLOT : 출력모듈이장착된슬롯의위치번호 MASK_L : 출력하위 32비트데이터중갱신하지않을비트지정 MASK_H : 출력상위 32비트데이터중갱신하지않을비트지정 출력 ENO OUT : 에러없이실행되면 1을출력 : 출력데이터갱신이완료되면 1출력 기능 펑션 DIREC_O( 출력데이터즉시갱신 ) 은스캔도중에 EN(DIREC_O 실행조건 ) 이 1 이되면 BASE 와 SLOT 이지정된위치의출력모듈의 64 비트데이터를읽어서 MASK(1) 되지않은비트만을출렬모듈에즉시출합니다. 펑션 DIREC_O 은 1 스캔중에출력 (%Q) 의 On/Off 상태를변화시키고싶을때사용이가능합니다. 통상스캔중에일괄처리방식은입력데이터읽기와출력데이터의출력을스캔프로그램의종료후에일괄처리하기때문에 1 스캔도중에외부로신호를출력하는것이불가능합니다. 펑션 DIREC_O 을사용하면프로그램실행도중에해당하는비트의데이터를외부로출력하는것이가능합니다. 해당위치에다른타입의모듈이꽂혀있거나, 출력모듈에데이터가정상적으로써지지않으면 EN0 와 OUT 을 0 으로출력합니다.( 정상동작시 1 출력 ) 프로그램예 1. 기본베이스 3 번째 Slot 에장착된 16 점 Relay 출력모듈에스캔도중출력데이터값이 2#0111_0111_0111_0111 을출력하는프로그램 LD 제 2 장기본펑션및펑션블록라이브러리부 1-25 LS 산전연수원

(1) 출력모듈이장착된 Base 의위치번호 2 와 SLOT 번호 4 를입력합니다. (2) 스캔도중출력하고져하는데이터가 16 비트이므로 MASK_L 의값중하위 16 비트만출력허용값으로설정합니다.(16#FFFF0000) (3) 실행조건 (%I0.0.0) 가 On 하면 DIREC_O( 출력모듈데이터즉시갱신 ) 펑션이실행되어스캔도중에출력모듈의데이터가 2#0111_0111_0111_0111 로출력됩니다. 2.2 번째증설베이스 4 번째 Slot 에장착된 32 점 TR. 출력모듈중하위 24 비트만스캔도중출력데이터값이 2#1111_0000_1111_0000_1111_0000 로변경출력하는프로그램 LD (1) 출력모듈이장착된 Base 의위치번호 2 와 SLOT 번호 4 를입력합니다. (2) 스캔도중출력하고져하는데이터가 24 비트이므로 MASK_L 의값중하위 24 비트만출력허용값으로설정합니다.(16#FF000000) (3) 실행조건 (%I0.0.0) 가 Off 하면 DIREC_O( 출력모듈데이터즉시갱신 ) 펑션이실행되어, 스캔도중에출력모듈의데이터가 2# _ _1111_0000_1111_0000_1111_0000 로출력됩니다. 이전값유지 제 2 장기본펑션및펑션블록라이브러리부 1-26 LS 산전연수원

DIV 나누기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_NUM ANY_NUM EN IN1 IN2 DIV ENO OUT ANY_NUM 입력 EN : 1일때펑션실행 IN1 : 나누어질값 ( 피제수 ) IN2 : 나눌값 ( 제수 ) 출력 ENO : 에러없이실행되면 1 을출력 OUT : 나눈결과값 ( 몫 ) IN1, IN2, OUT 에연결되는변수는모두같은데이터타입이어야함. 기능 IN1 을 IN2 로나눠서그몫중에서소수점이하를버린값을 OUT 으로출력시킵니다. OUT = IN1/IN2 IN1 IN2 OUT 비 고 7 2 3 7-2 -3-7 2-3 소수점이하버림 -7-2 3 7 0 에러 에러나눌값 ( 제수 ) 이 0 인경우 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 ( %I0.0.0 ) 이 On 하면나누기펑션 DIV 가실행됩니다. (2) 입력변수 VALUE1 = 300, VALUE2 = 100 이면, 출력변수로선언된 OUT_VAL = 300/100 = 3 이출력됩니다. 입력 (IN1) : VALUE1(INT) = 300(16#012C) (IN2 ): VALUE2(INT) = 100(16#0064) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 / (DIV) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 출력 (OUT) : OUT_VAL(INT) = 3(16#3) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 제 2 장기본펑션및펑션블록라이브러리부 1-27 LS 산전연수원

DIV_TIME 시간나누기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 TIME ANY_NUM EN IN1 IN2 DIV_TIME ENO OUT TIME 입력 EN : 1일때펑션실행 IN1 : 나눌시간 IN2 : 나눌값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 나눈결과시간 기능 IN1( 시간 ) 을 IN2( 숫자 ) 로나누어서나누어진시간을 OUT 으로출력시킵니다. 에러제수 (IN2) 가 0 인경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예어느생산 Line 의하루작업시간이 12 시간 24 분 24 초이고, 하루생산량이 12 개일때제품한개를생산하는데걸리는시간을계산하는프로그램입니다. LD (1) 실행조건 ( %I0.1.0 ) 이 On 하면시간나누기펑션 DIV_TIME 이실행됩니다. (2) 하루작업시간 TOTAL_TIME( T#12H24M24S) 을하루제품생산량 PRODUCT_COUNT(12) 로나누면, 제품한개당걸리는시간 TIME_PER_PRO(T#1H2M2S) 이출력됩니다. 즉, 1 시간 2 분 2 초에한개씩생산됩니다. 입력 (IN1) : TOTAL_TIME(TIME) = T#12H24M24S (IN2) : PRODUCT_COUNT(INT) = 12 / (DIV_TIME) 출력 (OUT) : TIME_PER_PRO(TIME) = T#1H2M2S 제 2 장기본펑션및펑션블록라이브러리부 1-28 LS 산전연수원

DT_TO_*** DT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DT EN IN DT_TO_*** ENO OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할날짜와시각데이터 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 DT_TO_LWORD LWORD DT를 LWORD타입으로변환합니다. ( 내부데이터의변환가없어역변환이가능합니다.) DT_TO_DATE DATE DT를 DATE타입으로변환합니다. DT_TO_TOD TOD DT를 TOD 타입으로변환합니다. DT_TO_STRING STRING DT를 STRING 타입으로변환합니다. 프로그램예 LD (1) 실행조건 ( %M20 ) 이 On 하면 DT 타입변환펑션 DT_TO_DATE 가실행됩니다. (2) 입력변수로선언된 IN_VAL(DT 타입 ) = DT#1995-12-01-12:00:00 이면, 출력변수로선언된 OUT_VAL (DATE 타입 ) = D#1995-12-01 이됩니다. 입력 (IN1) : IN_VAL(DT) = DT#1995-12-01-12:00:00 (DT_TO_DATE) 출력 (OUT) : OUT_VA(DATE) = D#1995-12-01 제 2 장기본펑션및펑션블록라이브러리부 1-29 LS 산전연수원

DWORD_TO_*** DWORD 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DWORD DWORD_TO_*** EN IN ENO OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할비트열 (32비트) 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 DWORD _TO_SINT SINT 하위 8비트를취해 SINT 타입으로변환합니다. DWORD _TO_INT INT 하위 16비트를취해 INT 타입으로변환합니다. DWORD _TO_DINT DINT 내부비트배열의변환없이 DINT 타입으로변환합니다. DWORD _TO_LINT LINT 상위비트를 0으로채운 LINT 타입으로변환합니다. DWORD _TO_USINT USINT 하위 8비트를취해 USINT 타입으로변환합니다. DWORD _TO_UINT UINT 하위 16비트를취해 UINT 타입으로변환합니다. DWORD _TO_UDINT UDINT 내부비트배열의변환없이 UDINT 타입으로변환합니다. DWORD _TO_ULINT ULINT 상위비트를 0으로채운 ULINT 타입으로변환합니다. DWORD _TO_ 하위 1비트를취해 타입으로변환합니다. DWORD _TO_BYTE BYTE 하위 8비트를취해 BYTE 타입으로변환합니다. DWORD _TO_WORD WORD 하위 16비트를취해 WORD 타입으로변환합니다. DWORD _TO_LWORD LWORD 상위비트를 0으로채운 LWORD 타입으로변환합니다. DWORD _TO_REAL REAL 내부비트배열의변화없이 REAL 타입으로변환합니다. DWORD _TO_TIME TIME 내부비트배열의변화없이 TIME 타입으로변환합니다. DWORD _TO_TOD TOD 내부비트배열의변화없이 TOD 타입으로변환합니다. DWORD _TO_STRING STRING 입력값을 Decimal로바꾸어 STRING 타입으로변환합니다. 제 2 장기본펑션및펑션블록라이브러리부 1-30 LS 산전연수원

프로그램예 LD (1) 실행조건 ( %M0 ) 이 On 하면타입변환펑션 DWIRD_TO_TOD 가실행됩니다. (2)IN_VAL(DWORD 타입 ) = 16#3E8(1000) 이면, OUT_VAL(TOD 타입 ) = TOD#1S 가됩니다. 입력 (IN1):IN_VAL(DWORD)= 16#3E8(1000) 상위 하위 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 데이터 ( 내부비트배열상태 ) 의변화없이데이터타입만변환 출력 (OUT) : OUT_VAL(TOD) = TOD#1S 상위 하위 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 TIME, TOD 는 10 진값을 MS 단위로환산해계산합니다. 즉 1000 은 1000MS = 1S 로계산합니다. (3.2.4. 데이터타입별구조참조 ) 제 2 장기본펑션및펑션블록라이브러리부 1-31 LS 산전연수원

EI 태스크프로그램기동허가 (DI 의해제 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 EN REQ EI ENO OUT 입력 EN : 1 일때펑션실행 REQ : 태스크프로그램기동허가요구 출력 ENO : EN 값이그대로출력 OUT : EI 동작이실행되면 1 출력 기능 EN 이 1 이고 REQ 에 1 의값이들어오면 'DI' 펑션에의해막혀있던태스크프로그램이정상적으로기동합니다. 한번 'EI' 명령이수행되면 REQ 입력이 0 이되어도태스크프로그램은정상기동합니다. 태스크프로그램의기동불허상태에서발생한태스크들은 'EI' 펑션수행후또는현재수행중인태스크프로그램의종료후에수행됩니다. 프로그램예 (DI 참조 ) LD EN_TASK 가 1 이되면태스크프로그램이정상기동됩니다. 'EI' 펑션에의해서태스크실행허가상태가되면 EN_OK 에는 1 이출력됩니다.. 제 2 장기본펑션및펑션블록라이브러리부 1-32 LS 산전연수원

EQ 같다 비교 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 EQ ENO OUT 입력 EN : 1 일때펑션실행 IN1 : 비교될값 IN2 : 비교할값입력은 8 개까지확장가능 IN1, IN2,... 는모두같은타입이어야함. 출력 ENO : EN 값이그대로출력 OUT : 비교결과값 기능 IN1=IN2=IN3...=INn(n 은입력개수 ) 이면 OUT 으로 1 이출력됩니다. 다른경우에는 OUT 으로 0 이출력됩니다. 프로그램예 LD (1) 실행조건 ( %I0.1.0) 이 On 하면비교펑션 EQ 가실행됩니다. (2)VALUE1 = 300, VALUE2 = 300, VALUE3 = 300 이면, 비교결과 VALUE1 = VALUE2 = VALUE3 이므로출력값 %Q0.0.1 = 1 이됩니다. 입력 (IN1) : VALUE1(INT) = 300(16#012C) (IN2) : VALUE2(INT) = 300(16#012C) (IN3) : VALUE1(INT) = 300(16#012C) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 = (EQ) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 = (EQ) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 출력 (OUT) : %Q0.0.1() = 1(16#1) 1 제 2 장기본펑션및펑션블록라이브러리부 1-33 LS 산전연수원

ESTOP 프로그램에의한비상운전정지 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 EN REQ ESTOP ENO OUT 입력 EN : 1 일때펑션실행 REQ: 프로그램에의한비상운전정지요구 출력 ENO : EN 값이그대로출력 OUT : ESTOP 동작이실행되면 1 출력 기능 펑션실행조건 EN이 1이고, 프로그램에의한비상운전정지요구신호 REQ가 1이되면현재수행중인프로그램의운전을즉시강제정지하고 STOP모드로갑니다. 'ESTOP' 펑션에의해정지된경우는전원을재투입하여도기동되지않습니다. 운전모드를 STOP으로하였다가 RUN으로하면재기동이됩니다. 'ESTOP' 펑션이수행되면수행중인프로그램을중도에중지하기때문에재기동시콜드리스타트모드가아닐경우데이터의연속성에오류가있을수있습니다. 프로그램예 LD (1) 실행조건 ( %I0.2.0) 이 On 하면프로그램에의한비상운전정지펑션 ESTOP 이실행됩니다. (2) 펑션 ESTOP 의 ACCIDENT 가 1 이되면실행중인프로그램을즉시중지하고 STOP 모드로됩니다. 비상사태발생시기계적인터럽트와함께이중안전장치로사용할수있습니다. 제 2 장기본펑션및펑션블록라이브러리부 1-34 LS 산전연수원

EXP 자연지수연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 EXP 입력 EN : 1 일때펑션실행 IN : 지수연산의입력값 ANY_REAL EN IN ENO OUT ANY_REAL 출력 ENO : EN 값이그대로출력 OUT : 지수연산결과값 IN, OUT 은같은데이터타입이어야함. 기능 IN 의지수연산값을구해 OUT 으로출력시킵니다. OUT = e IN 프로그램예 LD (1) 실행조건 ( %M5) 이 On 하면자연지수펑션 EXP 가실행됩니다. (2) 입력변수로선언된 INPUT 의값이 2.0 일경우, 출력변수로선언된 RESULT 는 7.3890... 입니다. e 2.0 = 7.3890... 입력 (IN1) : INPUT(REAL) = 2.0 상위 하위 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 (EXP) (16#40000000) 출력 (OUT) : RESULT(REAL) = 7.38905621E+00 상위 하위 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 (16#40EC7326) 제 2 장기본펑션및펑션블록라이브러리부 1-35 LS 산전연수원

EXPT 지수연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL ANY_NUM EN IN1 IN2 EXPT ENO OUT ANY_REAL 입력 EN : 1일때펑션실행 IN1 : 진수 IN2 : 지수 출력 ENO : 에러없이실행되면 1 을출력 OUT : 결과값 IN1 과 OUT 에연결되는변수는같은데이터타입이어야함. 기능 IN1 에 IN2 를지수승하여 OUT 으로출력시킵니다. OUT = IN1 IN2 에러출력값이해당데이터타입의범위를벗어날경우 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 ( %I0.1.0) 이 On 하면자연지수펑션 EXPT 가실행됩니다. (2) 입력된변수로선언된 IN_VAL = 1.5, VALUE = 3 이면, 출력변수로선언된 OUT_VAL = 1.5 3 = 1.5 1.5 1.5 = 3.375 가됩니다. 입력 (IN1) : IN_VAL(REAL) = 1.5 (IN2) : VALUE(INT) = 3 (EXPT) 출력 (OUT) : OUT_VAL(REAL) = 3.37500000E+00 제 2 장기본펑션및펑션블록라이브러리부 1-36 LS 산전연수원

FIND 문자열찾기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING STRING EN IN1 IN2 FIND ENO OUT INT 입력 EN : 실행허용 IN1 : 입력문자열 IN2 : 찾을문자열 출력 ENO : EN 값이그대로출력 OUT : 찾는문자열의위치 기능입력문자열 IN1 에서문자열 IN2 의위치를찾습니다. 찾으면문자열 IN1 에서문자열 IN2 가있는첫번째문자위치를 OUT 에출력시키고, 없으면 0 을 OUT 에출력시킵니다. 프로그램예 LD (1) 실행조건 ( %I0.1.1) 이 On 하면 FIND( 문자열찾기 ) 펑션이실행됩니다. (2) 입력변수로선언된입력문자열이 IN_TEXT1=`ABCEF, 찾을문자열이 IN_TEXT2=`BC` 이면, 출력변수로선언된 POSITION=2 가선언됩니다. (3) 입력문자열 IN_TEXT1=`ABCEF` 에서찾을문자열 IN_TEXT2=`BC` 의위치는 2 번째입니다. 입력 (IN1) : IN_TEXT1(STRING) = ABCEF (IN2) : IN_TEXT2(STRING) = BC (FIND) 출력 (OUT) : POSITION(INT) = 2 제 2 장기본펑션및펑션블록라이브러리부 1-37 LS 산전연수원

GE 크거나같다 비교 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 GE ENO OUT 입력 EN : 1 일때펑션실행 IN1 : 비교될값 IN2 : 비교할값입력은 8 개까지확장가능 IN1, IN2,... 는모두같은타입이어야함. 출력 ENO : EN 값이그대로출력 OUT : 비교결과값 기능 IN1 IN2 IN3... INn(n 은입력개수 ) 이면 OUT 으로 1 이출력됩니다. 다른경우에는 OUT 으로 0 이출력됩니다. 프로그램예 LD (1) 실행조건 ( %M77) 이 On 하면 GE( 비교 : 크거나같다 ) 펑션이실행됩니다. (2) 입력변수로선언된 VALUE1=300, VALUE3=200 이면, 비교결과 VALUE1 VALUE2 VALUE 3 이므로, 출력결과값 %Q0.01=1 이됩니다. 입력 (IN1) : VALUE1(INT) = 300(16#012C) (IN2) : VALUE2(INT) = 200(16#00C8) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 (GE) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 (GE) (IN3) : VALUE3(INT) = 100(16#0064) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 출력 (OUT) : %Q0.0.1() = 1(16#1) 1 제 2 장기본펑션및펑션블록라이브러리부 1-38 LS 산전연수원

GT 크다 비교 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 GT ENO OUT 입력 EN : 1일때펑션실행 IN1 : 비교될값 IN2 : 비교할값입력은 8개까지확장가능 IN1, IN2,... 는모두같은타입이어야함. 출력 ENO : EN 값이그대로출력 OUT : 비교결과값 기능 IN1>IN2>IN3...>INn(n 은입력개수 ) 이면 OUT 으로 1 이출력됩니다. 다른경우에는 OUT 으로 0 이출력됩니다. 프로그램예 LD (1) 실행조건 ( %M0) 이 On 하면 GT( 비교 : 크다 ) 펑션이실행됩니다. (2) 입력변수로선언된 VALUE1 = 300, VALUE2 = 200, VALUE3 = 100 이면, 비교결과 VALUE1 > VALUE2 > VALUE3 이므로출력결과값 %Q0.0.1=1 이됩니다. 입력 (IN1) : VALUE1(INT) = 300(16#012C) (IN2) : VALUE2(INT) = 200(16#00C8) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 > (GT) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 > (GT) (IN3) : VALUE3(INT) = 100(16#0064) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 출력 (OUT) : %Q0.0.1() = 1(16#1) 1 제 2 장기본펑션및펑션블록라이브러리부 1-39 LS 산전연수원

INSERT 문자열삽입하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING STRING INT EN IN1 IN2 P INSERT ENO OUT STRING 입력 EN : 1일때펑션실행 IN1 : 삽입될문자열 IN2 : 삽입할문자열 P : 문자열을삽입할위치 출력 ENO : 에러없이실행되면 1 을출력 OUT : 출력문자열 기능문자열 IN1 의 P 번째문자뒤에문자열 IN2 를삽입한후문자열 OUT 에출력시킵니다. 에러 P 0 이거나 ( 변수 IN1 의문자수 ) < P 인경우, 또는연산결과문자수가 30 자를넘어서 OUT 으로 30 자까지출력된경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 가 On 하면, INSERT( 문자열삽입하기 ) 펑션이실행됩니다. (2) 입력변수로선언된변수 IN_TEXT1= `ABCD`, IN_TEXT2=`XY`, POSITON=2 이면, 출력변수 OUT_TEXT=`ABXYCD` 가됩니다. 입력 (IN1) : IN_TEXT1(STRING) = ABCD (IN2) : IN_TEXT2(STRING) = XY (P) : POSITION(INT) = 2 (FIND) 출력 (OUT): OUT_TEXT = `ABXYCD` 제 2 장기본펑션및펑션블록라이브러리부 1-40 LS 산전연수원

INT_TO_*** INT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 INT EN IN INT_TO_*** ENO OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할 Integer값출력 ENO : 에러없이실행되면 1을출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션출력타입동작설명 INT_TO_SINT SINT 입력이 -128 127일경우정상변화되나, 그외값은에러가발생합니다. INT_TO_DINT DINT DINT 타입으로정상변환합니다. INT_TO_LINT LINT LINT 타입으로정상변환합니다. INT_TO_USINT USINT 입력이 0 255 일경우정상변화되나, 그외값은에러가발생합니다. INT_TO_UINT UINT 입력이 0 32767 일경우정상변화되나, 그외값은에러가발생합니다. INT_TO_UDINT UDINT 입력이 0 32767 일경우정상변화되나, 그외값은에러가발생합니다. INT_TO_ULINT ULINT 입력이 0 32767 일경우정상변화되나, 그외값은에러가발생합니다. INT_TO_ 하위 1 비트를취해 타입으로변환합니다. INT_TO_BYTE BYTE 하위 8 비트를취해 BYTE 타입으로변환합니다. INT_TO_WORD WORD 내부비트배열의변화없이 WORD 타입으로변환합니다. INT_TO_DWORD DWORD 상위비트들을 0 으로채운 DWORD 타입으로변환합니다. INT_TO_LWORD LWORD 상위비트들을 0 으로채운 LWORD 타입으로변환합니다. INT_TO_BCD WORD 입력이 0~9,999 일경우정상변환되나, 그외값은에러가발생합니다. INT_TO_REAL REAL INT 를 REAL 타입으로정상변환합니다. INT_TO_LREAL LREAL INT 를 LREAL 타입으로정상변환합니다. 에러변환에러발생시 _ERR _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 제 2 장기본펑션및펑션블록라이브러리부 1-41 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 INT_TO_WORD 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(INT 타입 ) = 512(16#200) 이면, 출력변수로선언된 OUT_WORD(WORD 타입 ) =16#200 이됩니다. 입력 (IN1) : IN_VAL(INT) = 512(16#200) 출력 (OUT) : OUT_WORD(WORD) = 16#200 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 (INT_TO_WORD) 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-42 LS 산전연수원

LE 작거나같다 비교 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 LE ENO OUT 입력 EN : 1일때펑션실행 IN1 : 비교될값 IN2 : 비교할값입력은 8개까지확장가능 IN1, IN2,... 는모두같은타입이어야함. 출력 ENO : EN 값이그대로출력 OUT : 비교결과값 기능 IN1 IN2 IN3... INn (n 은입력개수 ) 이면 OUT 으로 1 이출력됩니다. 다른경우에는 OUT 으로 0 이출력됩니다. 프로그램예 LD (1) 실행조건 (%M0) 가 On 하면 LE( 비교 : 작거나같다 ) 펑션이실행됩니다. (2) 입력변수로선언된 VALUE1=150, VALUE2=200, VALUE3 = 250 이면, 비교결과 VALUE1 VALUE2 VALUE 3 이므로, 출력결과값 %Q0.0.1=1 이됩니다. 입력 (IN1) : VALUE1(INT) = 150(16#0096) 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 (LE) (IN2) : VALUE2(INT) = 200(16#00C8) (IN3) : VALUE1(INT) = 250(16#0064) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 (LE) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 출력 (OUT) : %Q0.0.1() = 1(16#1) 1 제 2 장기본펑션및펑션블록라이브러리부 1-43 LS 산전연수원

LEFT 문자열의왼쪽을취하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING INT EN IN1 IN2 LE ENO OUT STRING 입력 EN : 1 일때펑션실행 IN : 입력문자열 L : 출력할문자열길이 출력 ENO : 에러없이실행되면 1 을출력 OUT : 출력문자열 기능입력문자열 IN 에대하여왼쪽부터문자열길이 L 만큼출력문자열 OUT 에출력시킵니다. 에러 L < 0 인경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 가 On 하면 LEFT( 문자열의왼쪽취하기 ) 펑션이실행됩니다. (2) 입력변수로선언된문자열이 IN_TEXT=`ABCDEFG` 이고, 출력할문자열의길이 LENGTH=3 이면, 출력문자열변수로지정된 OUT_TEXT=`ABC` 가됩니다. 입력 (IN1) : IN_TEXT(STRING) = ABCDEFG (IN2) : LENGTH(INT) = 3 출력 (OUT) : OUT_TEXT(STRING) = `ABC` (LEFT) 제 2 장기본펑션및펑션블록라이브러리부 1-44 LS 산전연수원

LEN 문자열길이구하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING EN IN LEN ENO OUT INT 입력 EN : 1일때펑션실행 IN : 입력문자열 출력 ENO : EN 값이그대로출력 OUT : 문자열길이 기능입력문자열 (IN) 의길이 ( 문자수 ) 가 OUT 으로출력됩니다. 프로그램예 LD (1) 실행조건 (%M0) 가 On 하면 LEN( 문자열길이구하기 ) 펑션이실행됩니다. (2) 입력변수로선언된 IN_TEXT=`ABCD` 이면, 출력변수로선언된 LENGTH=4 가됩니다. 입력 (IN1) : IN_TEXT(STRING) = ABCD 출력 (OUT) : LENGTH(INT) = 4 (LEN) 제 2 장기본펑션및펑션블록라이브러리부 1-45 LS 산전연수원

LIMIT 상하한제한 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY ANY EN MN IN MX LIMIT ENO OUT ANY 입력 EN : 1일때펑션실행 MN : 최소값 IN : 제한될값 MX : 최대값 출력 ENO : EN 값이그대로출력 OUT : 범위안에든값 MN, IN, MX, OUT 은데이터타입이모두같아야함. 기능 입력 IN값이 MN과 MX 사이에있으면, OUT으로 IN이출력됩니다. 즉, MN IN MX이면 OUT = IN 입력 IN값이 MN보다작으면, OUT으로 MN이출력됩니다. 즉, IN < MN이면 OUT = MN 입력 IN값이 MX보다크면, OUT으로 MX가출력됩니다. 즉, IN > MX이면 OUT = MX 프로그램예 LD (1) 실행조건 (%M0) 가 On하면 LIMIT( 상하한제한 ) 펑션이실행합니다. (2) 하한값의입력변수 (LIMIT_LOW), 상한값의입력변수 (LIMIT_HIGH), 제한된값의입력변수 (IN_VALUE) 에대한출력변수 (OUT_VAL) 의값은아래와같습니다. LIMIT_LOW IN_VALUE LIMIT_HIGH OUT_VAL 1000 2000 3000 2000 1000 500 3000 1000 1000 4000 3000 3000 입력 (MN): LIMIT_LOW (INT) = 1000 (IN) : IN_VALUE (INT) = 4000 (MX) : IN_VALUE (INT) = 3000 출력 (OUT) : OUT_VAL (INT) = 3000 (LIMIT) 제 2 장기본펑션및펑션블록라이브러리부 1-46 LS 산전연수원

LINT_TO_*** LINT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 LINT EN IN LINT_TO_*** ENO OUT *** 입력 EN IN : 1일때펑션실행 : 타입변환할 Long Integer값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 LINT_TO_SINT SINT 입력이-128 127일경우정상변환되나, 그외값은에러가발생합니다. LINT_TO_INT INT 입력이-32,768 32,767일경우정상변환되나, 그외값은에러가발생합니다. LINT_TO_DINT DINT 입력이-2 31 2 31-1일경우정상변환되나, 그외값은에러가발생합니다. LINT_TO_USINT USINT 입력이 0 255일경우정상변환되나, 그외값은에러가발생합니다. LINT_TO_UINT UINT 입력이 0 65,535일경우정상변환되나, 그외값은에러가발생합니다. LINT_TO_UDINT UDINT 입력이 0 2 32-1일경우정상변환되나, 그외값은에러가발생합니다. LINT_TO_ULINT ULINT 입력이 0 2 63-1일경우정상변환되나, 그외값은에러가발생합니다. LINT_TO_ 하위 1비트를취해 타입으로변환합니다. LINT_TO_BYTE BYTE 하위 8비트를취해 타입으로변환합니다. LINT_TO_WORD WORD 하위 16비트를취해 타입으로변환합니다. LINT_TO_DWORD DWORD 하위 32비트를취해 타입으로변환합니다. LINT_TO_LWORD LWORD 내부비트배열의변화없이 LWORD 타입으로변환합니다. LINT_TO_BCD LWORD 입력이 0~9,999,999,999,999,999일경우정상변환되나그외의값은에러가발생합니다. LINT_TO_REAL REAL LINT를 REAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. LINT_TO_LREAL LREAL LINT를 LREAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. 에러변환에러발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 제 2 장기본펑션및펑션블록라이브러리부 1-47 LS 산전연수원

프로그램예 LD (1) 입력조건 (%I0.0.0) 이 On 하면 LINT_TO_DINT 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(LINT 타입 ) = 123_456_789 이면, OUT_VAL(DINT 타입 ) = 123_456_789 가됩니다. 입력 (IN1) : IN_VAL(LINT) = 123,456,789 (16#75BCD15) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 (LINT_TO_DINT) 출력 (OUT) : OUT_VAL(DINT) = 123,456,789 (16#75BCD15) 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 제 2 장기본펑션및펑션블록라이브러리부 1-48 LS 산전연수원

LN 자연대수연산 ANY_REAL CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명입력 EN : 1일때펑션실행 LN IN : 자연대수연산의입력값 EN ENO 출력 ENO : 에러없이실행되면 1을출력 REQ OUT ANY_REAL OUT : 자연대수값 IN, OUT은같은데이터타입이어야함. 기능 IN 의자연대수값을구해 OUT 으로출력시킵니다. OUT = ln IN 에러입력값이 0 또는음수일때 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 되면 LN( 자연대수연수 ) 펑션이실행됩니다. (2) 입력변수로선언된 INPUT 값이 2.0 일때출력변수로선언된 RESULT 는 0.6931... 입니다. ln (2.0) = 0.6931... 입력 (IN1) : INPUT(REAL) = 2.0 (LN) 출력 (OUT): RESULT(REAL) =6.93147182E-01 제 2 장기본펑션및펑션블록라이브러리부 1-49 LS 산전연수원

LOG 상용대수연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 LOG 입력 EN : 1 일때펑션실행 IN : 상용대수연산의입력값 ANY_REAL EN REQ ENO OUT ANY_REAL 출력 END : 에러없이실행되면 1 을출력 OUT: 상용대수연산값 IN, OUT 은같은데이터타입이어야함. 기능 IN의상용대수값을구해 OUT으로출력시킵니다. OUT = log10 IN = log IN 에러 IN 의값이 0 또는음수일때 _ ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On되면, LOG( 상용대수연산 ) 펑션이실행됩니다. (2) 입력변수로선언된 INPUT 값이 2.0일때출력변수로선언된RESULT는 0.3010... 입니다. log10 (2.0) = 0.3010... 입력 (IN1) : INPUT(REAL) = 2.0 (LOG) 출력 (OUT) : RESULT(REAL) =3.01030010E-01 제 2 장기본펑션및펑션블록라이브러리부 1-50 LS 산전연수원

LREAL_TO_*** LREAL 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 LREAL EN IN LREAL_TO_*** ENO OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할 LREAL 값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 LREAL_TO_SINT SINT 입력의정수부분이 -128 127일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_INT INT 입력의정수부분이 -32768 32767일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_DINT DINT 입력의정수부분이 -2 31 2 31-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_LINT LINT 입력의정수부분이 -2 63 2 63-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_USINT USINT 입력의정수부분이 0 255일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_UINT UINT 입력의정수부분이 0 65,535일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_UDINT UDINT 입력의정수부분이 0 2 32-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_ULINT ULINT 입력의정수부분이 0 2 64-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) LREAL_TO_LWORD LWORD 내부비트배열의변화없이 LWORD 타입으로변환합니다. LREAL_TO_REAL REAL LREAL을 REAL 타입으로정상변환합니다. 변환중정밀도에따른오차가발생할수있습니다. 에러입력값이출력타입에저장할수있는값보다커서오버플로 (Overflow) 발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시 0 을출력합니다. 제 2 장기본펑션및펑션블록라이브러리부 1-51 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면, LREAL_TO_REAL 펑션이실행됩니다. (2) 입력변수로선언된 LREAL_VAL(LREAL 타입 ) = -1.34E-12 이면, 출력변수로선언된 REAL_VAL (REAL 타입 )=-1.34E-12 가됩니다. 입력 (IN1) : LREAL_VAL (LREAL) = -1.34E-12 (LREAL_TO_REAL) 출력 (OUT) : REAL_VAL (REAL) = -1.34E-12 제 2 장기본펑션및펑션블록라이브러리부 1-52 LS 산전연수원

LT 작다 비교 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 LT ENO OUT 입력 EN : 1일때펑션실행 IN1 : 비교될값 IN2 : 비교할값입력은 8개까지확장가능 IN1, IN2,... 는모두같은타입이어야함. 출력 ENO : EN 값이그대로출력 OUT : 비교결과값 기능 IN1<IN2<IN3...<INn(n 은입력개수 ) 이면 OUT 으로 1 이출력됩니다. 다른경우에는 OUT 으로 0 이출력됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 LT( 비교 : 작다 ) 펑션이실행됩니다. (2) 입력변수로선언된 VALUE1 = 100, VALUE2 = 200, VALUE3 = 300 이면, 비교결과 VALUE1 < VALUE2 < VALUIE 3 이므로출력결과값 %Q0.0.1=1 이됩니다. 입력 (IN1) : VALUE1(INT) = 100(16#0064) (IN2) : VALUE2(INT) = 200(16#00C8) (IN3) : VALUE3(INT) = 300(16#012C) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 < (LT) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 < (LT) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 출력 (OUT) : %Q0.0.1() = 1(16#1) 1 제 2 장기본펑션및펑션블록라이브러리부 1-53 LS 산전연수원

LWORD_TO_*** LWORD 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 LWORD EN IN LWORD_TO_*** ENO OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할비트열 (64 비트 ) 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 LWORD _TO_SINT SINT 하위 8비트를취하여 SINT 타입으로변환합니다. LWORD _TO_INT INT 하위 16비트를취하여 INT 타입으로변환합니다. LWORD _TO_DINT DINT 하위 32비트를취하여 DINT 타입으로변환합니다. LWORD _TO_LINT LINT 내부비트배열의변화없이 LINT 타입으로변환합니다. LWORD _TO_USINT USINT 하위 8비트를취하여 USINT 타입으로변환합니다. LWORD _TO_UINT UINT 하위 16비트를취하여 UINT 타입으로변환합니다. LWORD _TO_UDINT UDINT 하위 32비트를취하여 UDINT 타입으로변환합니다. LWORD _TO_ULINT ULINT 내부비트배열의변화없이 ULINT 타입으로변환합니다. LWORD _TO_ 하위 1비트를취하여 타입으로변환합니다. LWORD _TO_BYTE BYTE 하위 8비트를취하여 BYTE 타입으로변환합니다. LWORD _TO_WORD WORD 하위 16비트를취하여 WORD 타입으로변환합니다. LWORD _TO_DWORD DWORD 하위 32비트를취하여 DWORD 타입으로변환합니다. LWORD _TO_LREAL LREAL LWORD를 LREAL 타입으로변환합니다. LWORD _TO_DT DT 내부비트배열의변화없이 DT 타입으로변환합니다. LWORD _TO_STRING STRING 입력값을 STRING 타입으로변환합니다. 제 2 장기본펑션및펑션블록라이브러리부 1-54 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 LWORD_TO_LINT 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(LWORD 타입 ) = 16#FFFFFFFFFFFFFFFF 면, 출력변수로선언된 OUT_VAL(LINT 타입 ) = -1(16#FFFFFFFFFFFFFFFF) 이됩니다. 입력 (IN1) : IN_VAL(LWORD) = 16#FFFFFFFFFFFFFFFF 출력 (OUT) : OUT_VAL(LINT) = -1 (LWORD_TO_LINT) 제 2 장기본펑션및펑션블록라이브러리부 1-55 LS 산전연수원

MAX 최대값 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 LT ENO OUT ANY 입력 EN : 1일때펑션실행 IN1 : 비교될값 IN2 : 비교될값입력 8개까지확장가능출력 ENO : EN값이그대로출력 OUT : 입력값중최대값 IN1, IN2,..., OUT은모두같은타입이어야함. 기능입력 IN1, IN2,..., INn(n은입력개수 ) 중에서최대값을 OUT으로출력시킵니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On하면 MAX( 최대값 ) 펑션이실행됩니다. (2) 입력변수로선언된 VALUE1 = 100, VALUE2 = 200을비교결과최대값이 200이므로출력변수로선언된OUT_VALUE = 200으로출력됩니다. 입력 (IN1) : VALUE1(INT) = 100(16#0064) (IN2) : VALUE2(INT) = 200(16#00C8) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 (MAX) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 출력 (OUT): OUT_VAL(INT) = 200(16#00C8) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-56 LS 산전연수원

MID 문자열의중간을취하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING INT INT EN IN L P MID ENO OUT STRING 입력 EN : 1 일때펑션실행 IN : 입력문자열 L : 출력할문자열길이 P : 출력할문자열의시작위치 출력 ENO : 에러없이실행되면 1 을출력 OUT : 출력문자열 기능입력문자열 IN 에대하여입력문자열의 P 번째문자부터길이 L 만큼을출력문자열 OUT 에출력시킵니다. 에러 ( 변수 IN 의문자수 ) < P 인경우, 또는 P <= 0 및 L < 0 인경우 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On 하면 MID( 문자열의중간을취하기 ) 펑션이실행됩니다. (2) 입력된문자열 IN_TEXT=`ABCDEFG`, 이고, 출력할문자열의길이 LENGTH=3, 출력할문자열의시작위치 POSITION=2 이면, 출력문자열변수로선언된 OUT_TEXT=`BCD` 가됩니다. 입력 (IN) : IN_TEXT1(STRING) = ABCDEFG (L) : LENGTH(INT) = 3 (P) : POSITION(INT) = 2 (MID) 출력 (OUT) : OUT_TEXT = `BCD` 제 2 장기본펑션및펑션블록라이브러리부 1-57 LS 산전연수원

MIN 최소값 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 MIN ENO OUT ANY 입력 EN : 1일때펑션실행 IN1 : 비교될값 IN2 : 비교될값입력 8개까지확장가능 출력 ENO : EN 값이그대로출력 OUT : 입력값중최소값 IN1, IN2,..., OUT 은모두같은타입이어야함. 기능입력 IN1, IN2,..., INn(n 은입력개수 ) 중에서최소값을 OUT 으로출력시킵니다. 프로그램예 LD (1) 실행조건 (%M100) 이 On 하면 MIN( 최소값 ) 펑션이실행됩니다. (2) 입력변수로선언된 VALUE1 = 100, VALUE2 = 200 을비교결과최소값이 100 이므로출력변수로선언된 OUT_VALUE = 100 이출력됩니다. 입력 (IN1) : VALUE1(INT) = 100(16#0064) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 (MIN) (IN2) : VALUE2(INT) = 200(16#00C8) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 출력 (OUT): OUT_VAL(INT) = 100(16#0064) 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-58 LS 산전연수원

MOD 나머지구하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_INT ANY_INT EN IN1 IN2 MOD ENO OUT ANY_INT 입력 EN : 1 일때펑션실행 IN1 : 나누어질값 ( 피제수 ) IN2 : 나눌값 ( 제수 ) 출력 ENO : EN 값이그대로출력 OUT : 나눈결과값 ( 나머지 ) IN1, IN2, OUT 에연결되는변수는모두같은데이터타입이어야함. 기능 IN1 을 IN2 로나눠서그나머지를 OUT 으로출력시킵니다. OUT = IN1 - (IN1/IN2) IN2 ( 단 IN2 = 0 이면 OUT = 0 ) IN1 IN2 OUT 7 7-7 -7 7 2-2 2-2 0 1 1-1 -1 0 프로그램예 LD (1) 실행조건 (%M100) 이 On하면 MON( 나머지구하기 ) 펑션이실행합니다. (2) 입력변수중나누어질값 VALUE1=37이고, 나눌값 VALUE2=10이면, 출력변수로선언된OUT_VAL의값은 37을 10으로나눈나머지 7이됩니다. 입력 (IN1) : VALUE1(INT) = 37(16#0025) 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 (MOD) (IN2) : VALUE2(INT) = 10(16#000A) 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 출력 (OUT): OUT_VAL(INT) = 7(16#0007) 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 제 2 장기본펑션및펑션블록라이브러리부 1-59 LS 산전연수원

MOVE 데이터복사 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY EN IN MOVE ENO OUT ANY 입력 EN : 1일때펑션실행 IN : MOVE할값 출력 ENO : EN 값이그대로출력 OUT : MOVE 된값 IN, OUT 에연결되는변수는같은데이터타입이어야함. 기능 IN의값을 OUT으로옮긴다. 프로그램예입력 %I0.0.0 %I0.0.7의 8점의입력상태를변수 D로전송한후, 전송된데이터를출력 %Q0.4.7의 8점으로출력시키는프로그램 LD %Q0.4.0 (1) 실행조건 (%M100) 가 On 되면 MOVE( 데이터복사 ) 펑션이실행됩니다. (2) 첫번째 MOVE 펑션에의해입력모듈의 8 점입력데이터가변수 D 영역으로옮겨지고두번째 MOVE 펑션에의해변수 D 에저장된입력모듈의상태가출력모듈로출력됩니다. 입력 (IN1) : %IB0.0.0(BYTE) = 16#18 D(BYTE) = 16#18 출력 (OUT) : %QB0.4.0(BYTE) = 16#18 0 0 0 1 1 0 0 0 (MOVE) 0 0 0 1 1 0 0 0 (MOVE) 0 0 0 1 1 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-60 LS 산전연수원

MUL 곱하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_NUM ANY_NUM EN IN1 IN2 MUL ENO OUT ANY_NUM 입력 EN : 1 일때펑션실행 IN : 곱해질값 ( 피승수 ) IN2 : 곱할값 ( 승수 ) 입력은 8 개까지확장가능 출력 ENO : 에러없이실행되면 1 을출력 OUT : 곱한결과값 IN1, IN2,..., OUT 에연결되는변수는모두같은 데이터타입이어야함 기능 IN1, IN2,..., INn (n 은입력개수 ) 를곱해서 OUT 으로출력시킵니다. OUT = IN1 IN2... INn 에러출력값이해당데이터타입의범위를벗어날경우 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 MUL( 곱하기 ) 펑션이 On 합니다. (2)MUL 펑션의입력변수로선언된 VALUE1 = 30, VALUE2 = 20, VALUE3 = 10 이면, 출력변수로선언된 OUT_VAL = 30 20 10 = 6000 이됩니다. 입력 (IN1) : VALUE1(INT) = 30(16#001E) (IN2) : VALUE2(INT) = 20(16#0014) 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 + (MUL) 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 + (MUL) (IN3) : VALUE3(INT) = 10(16#000A) 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 출력 (OUT) : OUT_VAL(INT) = 6000(16#1770) 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-61 LS 산전연수원

MUL_TIME 시간곱하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 TIME ANY_NUM MUL_TIME EN ENO IN1 OUT IN2 TIME 입력 EN : 일때펑션실행 IN1 : 곱할시간 IN2 : 곱할값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 곱한결과시간 기능 IN1( 시간 ) 을 IN2( 숫자 ) 로곱해서결과시간을 OUT 으로출력시킵니다. 에러출력값이 TIME 데이터타입의범위를벗어날경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예어떤제품생산 LINE 에서생산되는제품의단위제품당평균계획시간이 20 분 2 초이고, 하루생산할제품의수가 20 개일때작업소요시간을설정하는프로그램 LD (1) 입력변수 (1N1: 단위제품당제작시간 ) UNIT_TIME:T#20M2S 을입력한다. (2) 입력변수 (1N2: 생산수량 ) PRODUCT_COUNT:20 을입력한다. (3) 출력변수 (OUT: 총작업소요시간 ) 에 TOTAL_TIME 을입력한다. (4) 실행조건 (% M0) 이 On 되면출력변수로설정한 TOTAL_TIME 에 T#6H40M40S 가출력된다. 입력 (IN1) : UNIT_TIME(TIME) = T#20MS2S (MUL_TIME) (IN2) : PRODUCT_COUNT(INT) = 16#18 출력 (OUT): TOTAL_TIME(TIME) = T#6H40M40S 제 2 장기본펑션및펑션블록라이브러리부 1-62 LS 산전연수원

MUX 여러개중선택 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 INT ANY ANY EN K IN0 IN1 MUX ENO OUT ANY 입력 EN : 1 일때펑션실행 K : 선택 IN0 : 선택될값 IN1 : 선택될값입력은 7 개까지확장가능 (IN0, IN1,..., IN6) 출력 ENO : 에러없이실행되면 1 을출력 OUT : 선택된값 IN0, IN1,..., OUT 은모두같은타입이어야함. 기능 K값으로여러입력 (IN0, IN1,..., INn) 중하나를선택하여출력시킵니다. K = 0이면 IN0이, K = 1이면 IN1이, K = n이면 INn이 OUT으로출력됩니다. 에러 K의값이입력변수 INn의개수보다크거나같은경우에 OUT으로는 IN0값이출력되고, _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 MUX( 여러개를선택 ) 펑션이실행됩니다. (2) 입력변수로설정된 VALUE0, 1, 2 중선택변수 S 의값에따라선택되어출력변수로선언된 OUT 으로출력시킵니다. 입력 (K) : S(INT) = 2 (IN0) : VALUE0(WORD) = 16#11 (IN1) : VALUE1(WORD) = 16#22 (IN2) : VALUE2(WORD) = 16#33 출력 (OUT) : OUT_VAL(WORD) = 16#33 (MUX) 제 2 장기본펑션및펑션블록라이브러리부 1-63 LS 산전연수원

NE 같지않다 비교 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 NE ENO OUT 입력 EN : 실행허용 IN1 : 비교될값 IN2 : 비교될값 IN1, IN2 는같은타입이어야함. 출력 ENO : EN 값이그대로출력 OUT : 비교결과값 기능 IN1 이 IN2 와같지않으면 OUT 으로 1 이출력됩니다. 같으면 OUT 으로 0 이출력됩니다. 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On 하면 NE( 비교 : 같지않다 ) 펑션이실행됩니다. (2) 입력변수로선언된 VALUE1 = 300, VALUE2 = 200 이면, 비교결과 VALUE1 과 VALUE2 가다르므로출력결과값 %Q0.0.1= 1 이됩니다. 입력 (IN1) : VALUE1(INT) = 300(16#012C) (IN2) : VALUE2(INT) = 200(16#0C8) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 (NE) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 출력 (OUT) : %Q0.0.1() = 1(16#1) 1 제 2 장기본펑션및펑션블록라이브러리부 1-64 LS 산전연수원

NOT 논리반전 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT EN IN NOT ENO OUT ANY_BIT 입력 EN : 1 일때펑션실행 IN : NOT 될값 출력 ENO : EN 값이그대로출력 OUT : NOT 된값 IN, OUT 은모두같은타입이어야함. 기능 IN 을비트별로 NOT( 반전 ) 해서 OUT 으로출력시킵니다. IN 1100... 1010 OUT 0011... 0101 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 NOT( 논리반전 ) 펑션이실행됩니다. (2)NOT 펑션이실행되면입력변수로선언된 %MB10 의데이터값이반전되어출력변수로선언된 %0B0.0.0.0 에출력됩니다. 입력 (IN1) : %MB10(BYTE ) = 16#CC 1 1 0 0 1 1 0 0 (NOT) 출력 (OUT) : %QB0.0.0(BYTE) = 16#33 0 0 1 1 0 0 1 1 제 2 장기본펑션및펑션블록라이브러리부 1-65 LS 산전연수원

NUM_TO_STRING 숫자를문자열로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_NUM NUM_TO_STRING EN ENO IN OUT STRING 입력 EN : 1일때펑션실행 IN : STRING으로변환할숫자입력 출력 ENO : EN 값이그대로출력 OUT : 문자로변환된데이터 기능 IN 의숫자데이터를문자데이터로변환해서 OUT 으로출력시킵니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 NUM_TO_STRING( 숫자를문자열로변환 ) 펑션이실행됩니다. (2)NUM_TO_STRING 펑션의입력변수로선언된 IN_VALUE(INT 타입 ) = 123 이면출력변수로선언된 OUT_STRING = 123 이되고, IN_VALUE(REAL 타입 ) = 123.0 이면 OUT_STRING = 1.23E2 가됩니다. 입력 (IN1) : IN_VALUE(INT) = 123 출력 (OUT) : OUT_STRING(STRING) = 123 (NUM_TO_STRING) 제 2 장기본펑션및펑션블록라이브러리부 1-66 LS 산전연수원

OR 논리합 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT ANY_BIT EN IN1 IN2 OR ENO OUT ANY_BIT 입력 EN : 1 일때펑션실행 IN1 : OR 될값 IN2 : OR 될값입력 8 개까지확장가능 출력 ENO : EN 값이그대로출력 OUT : OR 된값 IN1, IN2, OUT 은모두같은타입이어야함. 기능 IN1 을 IN2 와비트별로 OR 해서 OUT 으로출력시킵니다. IN1 1111... 0000 OR IN2 1010... 1010 OUT 1111... 1010 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 OR 펑션이실행됩니다. (2)%MB10 = 11001100 을 ABC = 11110000 와 OR 시킨결과가 %QB0.0.0 = 11111100 로출력됩니다. 입력 (IN1) : %MB10 (BYTE) = 16#CC (IN2) : ABC(BYTE) = 16#F0 1 1 0 0 1 1 0 0 & (OR) 1 1 1 1 0 0 0 0 출력 (OUT) : %QB0.0.0(BYTE) = 16#FC 1 1 1 1 1 1 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-67 LS 산전연수원

REAL_TO_*** REAL 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 REAL EN IN REAL_TO_*** ENO OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할 REAL값출력 ENO : 에러없이실행되면 1을출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 REAL_TO_SINT SINT 입력의정수부분이 -128 127일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_INT INT 입력의정수부분이 -32768 32767일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_DINT DINT 입력의정수부분이 -2 31 2 31-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_LINT LINT 입력의정수부분이 -2 63 2 63-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_USINT USINT 입력의정수부분이 0 255일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_UINT UINT 입력의정수부분이 0 65,535일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_UDINT UDINT 입력의정수부분이 0 2 32-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_ULINT ULINT 입력의정수부분이 0 2 64-1일경우정상변환되나, 그외값은에러가발생합니다. ( 소숫점이하는반올림 ) REAL_TO_DWORD DWORD 내부비트배열의변화없이 DWORD 타입으로변환합니다. REAL_TO_LREAL LREAL REAL을 LREAL 타입으로정상변환합니다. 에러입력값이출력타입에저장할수있는값보다커서오버플로 (Overflow) 가발생하면 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시 0 을출력합니다. 제 2 장기본펑션및펑션블록라이브러리부 1-68 LS 산전연수원

프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 REAL_TO_DINT 펑션이실행됩니다. (2)REAL_VAL(REAL 타입 ) = 1.234E4 이면, DINT_VAL(DINT 타입 ) = 12340 이됩니다. 입력 (IN1) : REAL_VAL(REAL) = 1.234E4 출력 (OUT) : DINT_VAL(DINT) = 12340 (REAL_TO_DINT) 제 2 장기본펑션및펑션블록라이브러리부 1-69 LS 산전연수원

REPLACE 문자열대체하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING STRING INT INT REPLACE EN IN1 IN2 L P ENO OUT STRING 입력 EN : 1일때펑션실행 IN1 : 대체될문자열 IN2 : 대체할문자열 L : 대체될문자열의길이 P : 대체될문자열의위치 출력 ENO : 에러없이실행되면 1 을출력 OUT : 출력문자열 기능문자열 IN1 의 P 번째문자부터길이 L 만큼의문자를문자열 IN2 로대체한후문자열 OUT 에출력시킵니다. 에러아래와같은경우 ERR, _LER 플래그가셋 (Set) 됩니다. P 0 또는 L < 0 P > (IN1 의입력문자열의문자수 ) 연산결과문자수 > 30 프로그램예 LD 제 2 장기본펑션및펑션블록라이브러리부 1-70 LS 산전연수원

(1) 실행조건 (%M0) 이 On하면 REPLACE( 문자열대체하기 ) 펑션이실행됩니다. (2) 대체될문자열입력변수가 IN_TEXT1=`ABCDEF`이고, 대체할문자열입력변수 IN_TEXT2=`X` 이며, 대체될문자열의길이입력변수 LENGTH=3, 대체될문자열위치지정입력변수 POSITION=2 이면 IN_TEXT의 `BCD`가 IN_TEXT2의 `X`로대체되어출력변수 OUT_TEXT에 `AXET`가출력됩니다. 입력 (IN1) : IN_TEXT1(STRING) = `ABCDEF` (IN2) : IN_TEXT2(STRING) = ` X` (L) : LENGTH(INT) = 3 (P) : POSITION(INT) = 2 출력 (OUT) : OUT_TEXT(STRING) = `AXET` 제 2 장기본펑션및펑션블록라이브러리부 1-71 LS 산전연수원

RIGHT 문자열의오른쪽을취하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING INT EN IN1 L RIGHT ENO OUT STRING 입력 EN : 1 일때펑션실행 IN : 입력문자열 L : 출력할문자열길이 출력 ENO : 에러없이실행되면 1 을출력 OUT : 출력문자열 기능입력문자열 IN 에대하여오른쪽부터문자열길이 L 만큼을출력문자열 OUT 에출력시킵니다. 에러 L < 0 인경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On 하면 RIGHT( 문자열의오른쪽취하기 ) 펑션이실행됩니다. (2) 입력변수로선언된문자열이 IN_TEXT=`ABCDEFG` 이고, 출력할문자열의길이 LENGTH=3 이면, 출력문자열변수로지정된 OUT_TEXT=`EFG` 가됩니다. 입력 (IN1) : IN_TEXT(STRRING) = `ABCDEFG` (L) : LENGTH(INT) = 3 출력 (OUT) : OUT_TEXT(STRRING) = `EFG` (RIGHT) 제 2 장기본펑션및펑션블록라이브러리부 1-72 LS 산전연수원

ROL 왼쪽으로회전 (Rotate Left) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT INT EN IN N ROL ENO OUT ANY_BIT 입력 EN : 1일때펑션실행 IN : 회전될값 N : 회전할비트수 출력 ENO : EN 값이그대로출력 OUT : 회전된값 기능입력 IN 을 N 비트수만큼왼쪽으로회전시킵니다. 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 N 개 프로그램예입력 %I.0.0.0 이 On 하면입력데이터 (1100_1100_1100_1100:16#CCCC) 의값을좌로 3 비트만큼회전시키는프로그램 LD (1) 회전할데이터값을입력한변수 IN_VALUE 로설정한다. (2) 좌회전할비트수 3 을 : 회전할비트수지정입력 (N) 에살다 (3) 회전된데이터값을출력할출력변수를 OUT_VALUE 로설정한다. (4) 실행조건 %I0.0.0 이 On 하면 ROL( 왼쪽으로회전 ) 펑션이실행되어입력변수로설정된데이터비트를좌로 3 비트회전하여출력변수로선언된 OUT_VALVE 값에출력된다. 입력 (IN1) : IN_VALUE(WORD) = 16#CCCC (N) : 3 출력 (OUT) :OUT_VALUE(WORD)-16#6666 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (ROL) 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 제 2 장기본펑션및펑션블록라이브러리부 1-73 LS 산전연수원

ROR 오른쪽으로회전 (Rotate Right) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT INT EN IN N ROR ENO OUT ANY_BIT 입력 EN : 1일때펑션실행 IN : 회전될값 N : 회전할비트수 출력 ENO : EN 값이그대로출력 OUT : 회전된값 기능입력 IN 을 N 비트수만큼오른쪽으로회전시킵니다. 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 N 개 프로그램예입력 %I.0.0.0 이 On 하면입력데이터값 (1110001100110001:16#E331) 을우로 3 비트만큼회전시키는프로그램 LD (1) 회전할데이터값을입력한변수를 IN_VALUE1 로설정한다. (2) 우회전할비트수 3 을 : 회전할비트수지정입력 (N) 에살다 (3) 실행조건 %I0.0.0 이 On 하면 ROR( 오른쪽으로회전 ) 펑션이실행되어입력변수로설정된데이터비트가우로 3 비트만큼회전되어출력변수로선언된 OUT_VALUE 값에출력된다. 입력 (IN1) :IN_VALUE1(WORD)=16#E331 (N) : 3 출력 (OUT) :OUT_VALUE(WORD)=16#3C 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 (ROR) 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 제 2 장기본펑션및펑션블록라이브러리부 1-74 LS 산전연수원

SEL 둘중선택 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN G IN0 IN1 SEL ENO OUT ANY 입력 EN : 1일때펑션실행 G : 선택 IN0 : 선택될값 IN1 : 선택될값 출력 ENO : EN 값이그대로출력 OUT : 선택된값 IN1, IN2, OUT 은모두같은타입이어야함. 기능 G 가 0 이면 IN0 이 OUT 으로, G 가 1 이면 IN1 이 OUT 으로출력됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 SEL( 둘중선택 ) 펑션이실행됩니다. (2)SEL 펑션이실행되면 S = 1 일때, VALUE1 = 16#1110, VALUE2 = 16#FF00 이면 %QW0.0.0 = 16#FF0 이됩니다. 입력 (G) : S = 1 (IN0) : VALUE1(WORD) = 16#1110 (IN1) : VALUE2(WORD) = 16#FF00 (SEL) 출력 (OUT) : %QW0.0.0(WORD) = 16#FF00 제 2 장기본펑션및펑션블록라이브러리부 1-75 LS 산전연수원

SHL 왼쪽으로이동 (Shift Left) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT INT EN IN N SHL ENO OUT ANY_BIT 입력 EN : 1 일때펑션실행 IN : 이동될비트열 N : 이동할비트수 출력 ENO : EN 값이그대로출력 OUT : 이동된값 기능입력 IN 을 N 비트수만큼왼쪽으로이동합니다. 입력 IN 의맨오른쪽에있는 N 개비트는 0 으로채워집니다. 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 N 개, 0 으로채워진다. 프로그램예입력 %I.0.0.0 이 On 하면입력데이터값 (1100_1100_1100_1100:16#CCCC) 을좌로 3 비트만큼이동시키는프로그램 LD (1) 이동할데이터값을입력할변수를 IN_VALUE(11001110:16#CE) 로설정한다. (2) 좌로이동한비트수 3 을지정입력 (N) 에살다. ( 변수지정후쓰기로가능 ) (3) 실행조건 (%Z0.0.0) 이 On 하면 SHL( 왼쪽으로이동 ) 펑션이실행되어입력변수로설정된데이터비트가좌로 3 비트이동하여, 출력변수로선언된 OUT_VALUE 에출력됩니다. 입력 (IN1) :IN_VALUE(WORD)=16#CCCC (N) : 3 (ROL) 출력 (OUT) :OUT_VALUE(WORD)=16#6660 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-76 LS 산전연수원

SHR 오른쪽으로이동 (Shift Right) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT INT EN IN N SHR ENO OUT ANY_BIT 입력 EN : 1일때펑션실행 IN : 이동될비트열 N : 이동할비트수 출력 ENO : EN 값이그대로출력 OUT: 이동된값 기능입력 IN 을 N 비트수만큼오른쪽으로이동합니다. 입력 IN 의맨왼쪽에있는 N 개비트는 0 으로채워집니다. 1 0 1 1 1 0 1 1 N 개, 0 으로채워진다. 0 0 1 0 1 1 1 0 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 SHL( 왼쪽으로이동 ) 펑션이실행됩니다. (2) 입력변수로설정된데이터비트가우로 3 비트이동하여, 출력변수로선언된 OUT_VALUE 에출력됩니다. 입력 (IN1): IN_VALUE(WORD) = 16#E331 (N) : 3 출력 (OUT) : OU2T_VALUE(WORD)-16#1C66 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 (ROR) 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 제 2 장기본펑션및펑션블록라이브러리부 1-77 LS 산전연수원

SIN Sine 연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN SIN ENO OUT ANY_REAL 입력 EN : 1 일때펑션실행 IN : Sine 연산의각도입력값 (Radian) 출력 ENO : EN 값이그대로출력 OUT : Sine 연산결과값 IN, OUT 은같은데이터타입이어야함. 기능 IN 의 Sine 값을구해 OUT 으로출력시킵니다. OUT = SIN (IN) 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On하면 SIN(Sin연산 ) 펑션이실행됩니다. (2)INPUT으로선언된입력변수의값이 1.0471... (π/3 rad = 60 ) 일때출력변수로선언된 RESULT는 0.8660... ( 3 /2 ) 이출력됩니다.. SIN (π/3) = 3 /2 = 0.8660 입력 (IN1) : INPUT(REAL) = 1.0471 (SIN) 출력 (OUT) : RESULT(REAL) = 8.65976572E-01 제 2 장기본펑션및펑션블록라이브러리부 1-78 LS 산전연수원

SINT_TO_*** SINT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 SINT EN IN SIN_TO_*** ENO OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할 Short Integer값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션출력타입동작설명 SINT_TO_INT INT INT 타입으로정상변환합니다. SINT_TO_DINT DINT DINT 타입으로정상변환합니다. SINT_TO_LINT LINT LINT 타입으로정상변환합니다. SINT_TO_USINT USINT 입력이 0 127 일경우정상변화되나, 그외값은에러가발생합니다. SINT_TO_UINT UINT 입력이 0 127 일경우정상변화되나, 그외값은에러가발생합니다. SINT_TO_UDINT UDINT 입력이 0 127 일경우정상변화되나, 그외값은에러가발생합니다. SINT_TO_ULINT ULINT 입력이 0 127 일경우정상변화되나, 그외값은에러가발생합니다. SINT_TO_ 하위 1 비트를취해 타입으로변환합니다. SINT_TO_BYTE BYTE 내부비트배열의변화없이 BYTE 타입으로변환합니다. SINT_TO_WORD WORD 상위비트들을 0 으로채운 WORD 타입으로변환합니다. SINT_TO_DWORD DWORD 상위비트들을 0 으로채운 DWORD 타입으로변환합니다. SINT_TO_LWORD LWORD 상위비트들을 0 으로채운 LWORD 타입으로변환합니다. SINT_TO_BCD BYTE 입력이 0~99 일경우정상변환되나, 그외값은에러가발생합니다. SINT_TO_REAL REAL SINT 를 REAL 타입으로정상변환합니다. SINT_TO_LREAL LREAL SINT 를 LREAL 타입으로정상변환합니다. 에러변환에러발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 제 2 장기본펑션및펑션블록라이브러리부 1-79 LS 산전연수원

프로그램예 LD (1) 입력조건 (% M0) 이 On 하면 SINT_TO_BCD 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(SINT 타입 )=64(2#0100_0000) 이면,OUT_VAL(BCD 타입 )=16#64(2#0110_0100) 가됩니다. 입력 (IN1) : IN_VAL(SINT) = 64(16#40) 출력 (OUT) : OUT_VAL(BCD) = 16#64(16#64) 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 (SINT_TO_BCD) 제 2 장기본펑션및펑션블록라이브러리부 1-80 LS 산전연수원

SQRT 제곱근연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN SQRT ENO OUT ANY_REAL 입력 EN : 1 일때펑션실행 IN : 제곱근연산의입력값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 제곱근값 IN, OUT 은같은데이터타입이어야함. 기능 IN 의제곱근값을구해 OUT 으로출력시킵니다. OUT = IN 에러 IN 의값이음수일때 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 SQRT( 제곱근연산 ) 펑션이실행됩니다. (2)INPUT 으로선언된입력변수의값이 9.0 일때출력변수로선언된 RESULT 는 3.0 이출력됩니다. 9.0 = 3.0 입력 (IN1) : INPUT(REAL) = 9.0 출력 (OUT) : RESULT(REAL) = 3.0 (SQRT) 제 2 장기본펑션및펑션블록라이브러리부 1-81 LS 산전연수원

STOP 프로그램에의한운전정지 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 EN REQ STOP ENO OUT 입력 EN : 1일때펑션실행 RE : 프로그램에의한운전정지요구 출력 ENO : EN 값이그대로출력 OUT : STOP 동작이실행되면 1 출력 기능 EN이 1이고 REQ에 1의값이들어오면운전을정지하고 STOP모드로됩니다. 'STOP' 펑션이수행되면수행중인스캔프로그램의수행을완료한후정지합니다. 전원을재투입하거나운전모드를 STOP으로하였다가 RUN으로하면재기동이됩니다. 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On 하고 LOG_OUT 가 1 이되면실행중인스캔프로그램을완료한후 STOP 모드로됩니다. (2) 입력변수로선언한 'STOP' 펑션수행후안정된상태에서 PLC 의전원을끄는것이좋습니다. 제 2 장기본펑션및펑션블록라이브러리부 1-82 LS 산전연수원

STRING_TO_*** STRING 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING STRING_TO_*** EN IN ENO OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할문자열 출력 ENO : 에러없이실행되면 1 을출력 OUT : 타입변환된데이터 기능 IN을타입변환해서 OUT으로출력시킵니다. 펑션 출력타입 동작설명 STRING _TO_SINT SINT STRING을 SINT 타입으로변환합니다. STRING _TO_INT INT STRING 을 INT 타입으로변환합니다. STRING _TO_DINT DINT STRING 을 DINT 타입으로변환합니다. STRING _TO_LINT LINT STRING 을 LINT 타입으로변환합니다. STRING _TO_USINT USINT STRING 을 USINT 타입으로변환합니다. STRING _TO_UINT UINT STRING 을 UINT 타입으로변환합니다. STRING _TO_UDINT UDINT STRING 을 UDINT 타입으로변환합니다. STRING _TO_ULINT ULINT STRING 을 ULINT 타입으로변환합니다. STRING _TO_ STRING 을 타입으로변환합니다. STRING _TO_BYTE BYTE STRING 을 BYTE 타입으로변환합니다. STRING _TO_WORD WORD STRING 을 WORD 타입으로변환합니다. STRING _TO_DWORD DWORD STRING 을 DWORD 타입으로변환합니다. STRING _TO_LWORD LWORD STRING 을 LWORD 타입으로변환합니다. STRING _TO_REAL REAL STRING 을 REAL 타입으로변환합니다. STRING _TO_LREAL LREAL STRING 을 LREAL 타입으로변환합니다. STRING _TO_DT DT STRING 을 DT 타입으로변환합니다. STRING _TO_DATE DATE STRING 을 DATE 타입으로변환합니다. STRING _TO_TOD TOD STRING 을 TOD 타입으로변환합니다. STRING _TO_TIME TIME STRING 을 TIME 타입으로변환합니다. 에러입력문자패턴이출력데이터타입과맞지않을때 _ERR, _LER 플래그가셋 (Set) 됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-83 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 STRING_TO_REAL 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(STRING 타입 ) = -1.34E12 면, 출력변수로선언된 OUT_VAL(REAL= -1.34E12 가됩니다. 입력 (IN1) : IN_VAL(STRING) = -1.34E12 (STRING_TO_REAL) 출력 (OUT) : OUT_VAL(REAL) = -1.34E12 제 2 장기본펑션및펑션블록라이브러리부 1-84 LS 산전연수원

STRING_TO_ARY 문자열을 Byte Array 로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING BYTE_ARY STRING_TO_ARY EN ENO IN1 OUT IN2 입력 EN : 1 일때펑션실행 IN1 : String 입력 출력 ENO : EN 값을그대로출력 OUT : dummy 출력 입출력 IN2 : 변환된 Byte Array 출력 기능하나의 String 을 30 개의 Byte Array 로변환합니다. 프로그램예 LD (1) 실행조건 (%M2) 이 On 하면 STRING_BYTE 펑션이실행됩니다. (2) 입력변수인 INPUT 이 GM4-CPUA 일경우입출력변수인 BYTE_ARY 에하위바이트부터순서대로 16#{22( ),47(G),4D(M),34(4),2D(-),43(C),50(P),55(U),41(A),22( )} 가출력됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-85 LS 산전연수원

SUB 빼기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_NUM ANY_NUM EN IN1 IN2 SUB ENO OUT ANY_NUM 입력 EN : 1일때펑션실행 IN1 : 빼어질값 IN2 : 뺄값 출력 ENO : 에러없이실행되면 1 을출력 OUT : 뺀결과값 IN1,IN2,OUT 에연결되는변수는모두같은데이터타입이어야함 기능 IN1 에서 IN2 를빼서 OUT 으로출력시킵니다. OUT = IN1 IN2 에러출력값이해당데이터타입의범위를벗어날경우 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 SUB( 빼기 ) 펑션이실행됩니다. (2) 입력변수값이 VALUE1 = 300,VALUE2 = 200 이면, 출력변수로설정한 OUT_VAL 는연산을실시한결과 (300-200=100) 가출력됩니다. 입력 (IN1) : VALUE1(INT) = 300(16#012C) (IN2) : VALUE2(INT) = 200(16#00C8) 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 - (SUB) 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 출력 (OUT) : OUT_VAL(INT) = 100(16#0064) 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-86 LS 산전연수원

SUB_DATE 날짜빼기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DATE DATE SUB_DATE EN ENO IN1 OUT IN2 TIME 입력 EN : 1일때펑션실행 IN1 : 기준날짜 IN2 : 뺄날짜 출력 ENO : 에러없이실행되면 1 을출력 OUT : 두날짜간의차이를시간으로출력 기능 IN1( 기준날짜 ) 에서 IN2( 특정날짜 ) 를빼서날짜차이를 OUT 으로출력시킵니다. 에러출력값이 TIME 데이터타입의범위를벗어날경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 날짜차이가 TIME 데이터타입의범위 T#49D17H2M47S295MS 를넘거나날짜연산의결과가음수가되면에러가됩니다. 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On 하면 SUB_DATE( 날짜빼기 ) 펑션이실행됩니다. (2) 입력변수로선언한현재의날짜 CURRENT_DATE 가 D#1995-12-15 이고시스템이가동을시작한날짜 START_DATE 가 D#1995-11-1 이면, 출력변수로선언한조업한날짜 WORK_DAY 에는 T#44D 가출력됩니다. 입력 (IN1) : CURRENT_DATE(DATE) = D#1995-12-15 (SUB_DATE) (IN2) : START_DATE(DATE) = D#1995-11-1 출력 (OUT) : WORK_DAY(TIME) = T#44D 제 2 장기본펑션및펑션블록라이브러리부 1-87 LS 산전연수원

SUB_DT 시간과날짜빼기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DATE_AND_TIME DATE_AND_TIME EN IN1 IN2 SUB_DT ENO OUT TIME 입력 EN : 1일때펑션실행 IN : 기준날짜와시각 IN2 : 뺄날짜와시각 출력 ENO : 에러없이실행되면 1 을출력 OUT : 뺀결과시간 기능 IN1( 기준날짜와시각 ) 에서 IN2( 특정날짜와시각 ) 를빼서시간차이를 OUT 으로출력시킵니다. 에러출력값이 TIME 데이터타입의범위를벗어날경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 날짜와시각빼기연산의결과가음수가되면에러가됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 SUB_DT( 시간과날짜빼기 ) 펑션이실행됩니다. (2) 입력변수로선언한현재의날짜와시각 CURRENT_DT 가 DT#1995-12-15-14:30:00 이고조업이재개된날짜와시각 START_DT 가 DT#1995-12-13-12:00:00 이면, 출력변수로선언된연속조업한시간 WORK_TIME 에는 T#2D2H30M 가출력됩니다. 입력 (IN1) : CURRENT_DT(DT) = DT#1995-12-15-14:30:00 (SUB_DATE) (IN2) : START_DT(DT) = DT#1995-12-13-12:00:00 출력 (OUT) : WORK_TIME(TIME) = T#2D2H30M 제 2 장기본펑션및펑션블록라이브러리부 1-88 LS 산전연수원

SUB_TIME 시간빼기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 TIME,TOD,DT TIME SUB_TIME EN ENO IN1 OUT IN2 TIME,TOD,DT 입력 EN : 1일때펑션실행 IN1 : 기준시각또는시간 IN2 : 뺄시간 출력 ENO : 에러없이실행되면 1 을출력 OUT : 뺀결과시각또는시간 OUT 의타입은입력 IN1 의타입을따름. 즉 IN1 의타입이 TIME 이면, 출력 OUT 의타입도 TIME 임. 기능 IN1 이 TIME 일경우에는시간에서시간을빼서차이시간을출력시킵니다. IN1 이 TIME_OF_DAY 일경우에는기준시각에서시간을빼서하루중의시각을출력시킵니다. IN1 이 DATE_AND_TIME 일경우에는기준이되는날짜와시각에서시간을빼서날짜와시각을출력시킵니다. 에러출력값이해당데이터타입의범위를벗어날경우, _ERR, _LER 플래그가셋 (Set) 됩니다. 시간에서시간을뺀결과가음수가되거나시각 (TOD) 에서시간을뺀결과가음수가되면에러가됩니다. 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On 하면 SUB_TIME( 시간빼기 ) 펑션이실행됩니다. (2) 입력변수로선언된전체작업시간 TARGET_TIME 이 T#2H30M 이고, 경과된시간 ELAPSED_TIME 이 T#1H10M30S300MS 면출력변수로선언된남아있는작업시간 TIME_TO_GO 에는 T#1H19M29S700MS 가출력됩니다. 입력 (IN1) : TARGET_TIME(TIME) = T#2H30M (SUB_TIME) (IN2) : ELAPSED_TIME(TIME) = T#1H10M30S300MS 출력 (OUT) : TIME_TO_GO(TIME) = T#1H19M29S700MS 제 2 장기본펑션및펑션블록라이브러리부 1-89 LS 산전연수원

SUB_TOD 시각에서시각빼기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 TIME_OF_DAY TIME_OF_DAY EN IN1 IN2 SUB_TOD ENO OUT TIME 입력 EN : 1일때펑션실행 IN1 : 기준시각 IN2 : 뺄시각 출력 ENO : 에러없이실행되면 1 출력 OUT : 뺀결과시간 기능 IN1( 기준시각 ) 에서 IN2( 특정시각 ) 를빼서시간차이를 OUT 으로출력시킵니다. 에러시각에서시각을뺀결과가음수가되면에러가됩니다. 프로그램예 LD (1) 실행조건 (%I0.0.0) 이 On 하면 SUB_TOD( 시각에서시각빼기 ) 펑션이실행됩니다. (2) 입력변수로선언된 END_TIME 이 TOD#14:20:30.5 이고작업을시작한 START_TIME 이 TOD#12:00:00 이면, 출력변수로선언된작업에소요된시간 WORK_TIME 에는 T#2H20M30S500MS 가출력됩니다. 입력 (IN1) : END_TIME(TOD) = TOD#14:20:30.5 (SUB_TOD) (IN2) : START_TIME(TOD) = TOD#12:00:00 출력 (OUT) : WORK_TIME(TIME) = T#2H20M30S500MS 제 2 장기본펑션및펑션블록라이브러리부 1-90 LS 산전연수원

TAN Tangent 연산 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN TAN ENO OUT ANY_REAL 입력 EN : 1일때펑션실행 IN : Tangent 각도입력값 (Radian) 출력 ENO : EN 값이그대로출력 OUT : Tangent 연산결과값 IN, OUT 은같은데이터타입이어야함. 기능 IN 의 Tangent 값을구해 OUT 으로출력시킵니다. OUT = TAN(IN) 프로그램예 LD (1) 실행조건 (%M0) 이 On하면 TAN(Tangent연산 ) 펑션이실행합니다. (2)INPUT으로선언된입력변수의값이 0.7853... (π/4 rad = 45 ) 일때출력변수로선언된 RESULT는 1.0000 입니다. TAN(π/4) = 1 입력 (IN1) : INPUT(REAL) = 0.7853 (TAN) 출력 (IN2) : RESULT(REAL) = 9.99803722E-01 제 2 장기본펑션및펑션블록라이브러리부 1-91 LS 산전연수원

TIME_TO_*** TIME 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 TIME TIME_TO_*** EN ENO IN OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할시간데이터 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 TIME_TO_UDINT UDINT TIME를 UDINT 타입으로변환합니다. 데이터 ( 내부비트배열상태 ) 의변화없이데이터타입만변환합니다. TIME_TO_DWORD DWORD TIME를 DWORD 타입으로변환합니다. 데이터 ( 내부비트배열상태 ) 의변화없이데이터타입만변환합니다. TIME_TO_STRING STRING TIME를 STRING 타입으로변환합니다. 프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 TIME_TO_UDINT 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(TIME 타입 ) = T#120MS 이면, 출력변수로선언된 OUT_VAL(UDINT 타입 ) = 120 이됩니다. 입력 (IN1) : IN_VAL(TIME) = T#120MS(16#78) 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 (TIME_TO_UDINT) 출력 (OUT) : OUT_VAL(UDINT) = 120(16#78) 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-92 LS 산전연수원

TOD_TO_*** TOD 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 TOD TOD_TO_*** EN ENO IN OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할하루중시각데이터 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 TOD_TO_UDINT UDINT TOD를 UDINT 타입으로변환합니다. 데이터 ( 내부비트배열상태 ) 의변화없이데이터타입만변환합니다. TOD_TO_DWORD DWORD TOD를 DWORD 타입으로변환합니다. 데이터 ( 내부비트배열상태 ) 의변화없이데이터타입만변환합니다. TOD_TO_STRING STRING TOD를 STRING 타입으로변환합니다. 프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 TOD_TO_STRING 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(TOD 타입 ) = TOD#12:00:00 이면, 출력변수로선언된 OUT_VAL(STRING 타입 ) = TOD#12:00:00 이됩니다. 입력 (IN1) : IN_VAL(TOD) = TOD#12:00:00 출력 (IN2) : OUT_VAL(STRING) = TOD#12:00:00 (TOD_TO_STRING) 제 2 장기본펑션및펑션블록라이브러리부 1-93 LS 산전연수원

TRUNC 소수점이하값을버리고정수로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN TRUNC ENO OUT ANY_INT 입력 EN : 1 일때펑션실행 IN : 변환될 Real 값 출력 ENO : 에러없이실행되면 1 을출력 OUT: 정수로변환된값 기능펑션 입력타입 출력타입 동 작 설 명 TRUNC REAL LREAL DINT LINT 입력 IN으로들어온부동소수의소수점이하값은버리고 OUT으로정수값을출력합니다. 에러변환된값이 OUT 에연결된데이터타입의최대값보다큰경우또는 OUT 에연결된변수가 Unsigned Integer 이고변환된출력값이음수일때 OUT 으로 0 을출력한경우에는 _ERR, _LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 TRUNC ( 소수점이하값을버리고정수변환 ) 펑션이실행합니다. (2) 입력변수로선언된 REAL_VALUE(REAL 타입 )= 1.6 이면 INT_VALUE(INT 타입 ) = 1 이됩니다. REAL_VALUE(REAL 타입 )= -1.6 이면 INT_VALUE(INT 타입 ) = -1 이됩니다. 입력 (IN1) : REAL_VALUE(REAL) = 1.6 출력 (OUT) : INT_VALUE(INT) = 1 (TRUNC) 제 2 장기본펑션및펑션블록라이브러리부 1-94 LS 산전연수원

UDINT_TO_*** UDINT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 UDINT UDINT_TO_*** EN ENO IN OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할 Unsigned Double Integer값출력 ENO : EN값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 UDINT_TO_SINT SINT 입력이 0~127일경우정상변환되나그외값은에러가발생합니다. UDINT_TO_INT INT 입력이 0~32767일경우정상변환되나그외값은에러가발생합니다. UDINT_TO_DINT DINT 입력이 0~2,147,483,64일경우정상변환되나그외값은에러가발생합니다. UDINT_TO_LINT LINT UDINT를 LINT 타입으로정상변환합니다. UDINT_TO_USINT USINT 입력이 0~255일경우정상변환되나그외값은에러가발생합니다. UDINT_TO_UINT UINT 입력이 0~65535일경우정상변환되나그외값은에러가발생합니다. UDINT_TO_ULINT ULINT UDINT를 ULINT 타입으로정상변환합니다. UDINT_TO_ 하위 1비트를취해 타입으로변환합니다. UDINT_TO_BYTE BYTE 하위 8비트를취해 BYTE 타입으로변환합니다. UDINT_TO_WORD WORD 하위 16비트를취해 WORD 타입으로변환됩니다. UDINT_TO_DWORD DWORD 내부비트배열의변환없이 DWORD 타입으로변환합니다. UDINT_TO_LWORD LWORD 상위비트를 0으로채운 LWORD 타입으로변환합니다. UDINT_TO_BCD DWORD 0~99,999,999의값은정상변환되나, 그외의값은에러가발생합니다. UDINT_TO_REAL REAL UDINT를 REAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. UDINT_TO_LREAL LREAL UDINT를 LREAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. UDINT_TO_TOD TOD 내부비트배열의변환없이 TOD 타입으로변환합니다. UDINT_TO_TIME TIME 내부비트배열의변환없이 TIME 타입으로변환합니다. 에러변환에러발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 제 2 장기본펑션및펑션블록라이브러리부 1-95 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 UDINT_TO_TIME 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(UDINT 타입 ) = 123 이면, 출력변수로선언된 OUT_VAL(TIME 타입 ) = T#123MS 가됩니다. 입력 (IN1) : IN_VAL(UDINT) = 123 출력 (OUT) : OUT_VAL(TIME) = T#123MS 제 2 장기본펑션및펑션블록라이브러리부 1-96 LS 산전연수원

UINT_TO_*** UINT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 UINT UINT_TO_*** EN ENO IN OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할 Unsigned Integer 값 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN을타입변환해서 OUT으로출력시킵니다. 펑션출력타입동작설명 UINT_TO_SINT SINT 입력이 0~127일경우정상변환되나그외값은에러가발생합니다. UINT_TO_INT INT 입력이 0~32,767 일경우정상변환되나그외값은에러가발생합니다. UINT_TO_DINT DINT UINT 를 UDINT 타입으로정상변환합니다. UINT_TO_LINT LINT UINT를 ULINT 타입으로정상변환합니다. UINT_TO_USINT USINT 입력이 0~255일경우정상변환되나그외값은에러가발생합니다. UINT_TO_UDINT UDINT UINT 를 UDINT 타입으로정상변환합니다. UINT_TO_ULINT ULINT UINT 를 ULINT 타입으로정상변환합니다. UINT_TO_ 하위 1 비트를취해 타입으로변환합니다. UINT_TO_BYTE BYTE 하위 8 비트를취해 BYTE 타입으로변환합니다. UINT_TO_WORD WORD 내부비트배열의변환없이 WORD 타입으로변환합니다. UINT_TO_DWORD DWORD 상위비트를 0 으로채운 DWORD 타입으로변환합니다. UINT_TO_LWORD LWORD 상위비트를 0 으로채운 LWORD 타입으로변환합니다. UINT_TO_BCD BCD 0~99,999,999 의값은정상변환되나, 그외의값은에러가발생합니다. UINT_TO_REAL REAL UINT 를 REAL 타입으로변환합니다. UINT_TO_LREAL LREAL UINT 를 LREAL 타입으로변환합니다. UNIT_TO_DATE DATE 내부비트배열의변환없이 DATE 타입으로변환합니다. 에러 변환에러발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 제 2 장기본펑션및펑션블록라이브러리부 1-97 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 UINT_TO_WORD 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(UINT 타입 ) = 255(2#0000_0000_1111_1111) 이면, 출력변수로선언된 OUT_VAL(WORD 타입 ) = 2#0000_0000_1111_1111 이됩니다. 입력 (IN1) : IN_VAL(UINT) = 255 출력 (OUT) : OUT_VAL(WORD) = 16#FF 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 (UINT_TO_WORD) 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 제 2 장기본펑션및펑션블록라이브러리부 1-98 LS 산전연수원

ULINT_TO_*** ULINT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ULINT_TO_*** EN ENO IN OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할 Unsigned Long Integer 값 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 ULINT_TO_SINT SINT 입력이 0~127일경우정상변환되나그외값은에러가발생합니다. ULINT_TO_INT INT 입력이 0~32,767일경우정상변환되나그외값은에러가발생합니다. ULINT_TO_DINT DINT 입력이 0~2 31-1일경우정상변환되나그외값은에러가발생합니다. ULINT_TO_LINT LINT 입력이 0~2 63-1일경우정상변환되나그외값은에러가발생합니다. ULINT_TO_USINT USINT 입력이 0~255일경우정상변환되나그외값은에러가발생합니다. ULINT_TO_UINT UINT 입력이 0~65,535일경우정상변환되나그외값은에러가발생합니다. ULINT_TO_UDINT UDINT 입력이 0~2 32-1 일경우정상변환되나그외값은에러가발생합니다. ULINT_TO_ 하위 1 비트를취해 타입으로변환합니다. ULINT_TO_BYTE BYTE 하위 8 비트를취해 BYTE 타입으로변환합니다. ULINT_TO_WORD WORD 하위 16 비트를취해 WORD 타입으로변환합니다. ULINT_TO_DWORD DWORD 하위 32 비트를취해 DWORD 타입으로변환합니다. ULINT_TO_LWORD LWORD 내부비트배열의변환없이 LWORD 타입으로변환합니다. ULINT_TO_BCD ULINT_TO_REAL ULINT_TO_LREAL BCD REAL LREAL 0~9,999,999,999,999,999의값은정상변환되나, 그외값은에러가발생합니다. ULINT를 REAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. ULINT를 LREAL 타입으로변환합니다. 변환중정밀도에따른오차가발생할수있습니다. 에러변환에러발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 제 2 장기본펑션및펑션블록라이브러리부 1-99 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 ULINT_TO_LINT 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(ULINT 타입 ) = 123,567,899 이면, 출력변수로선언된 OUT_VAL(LINT 타입 ) = 123,567,899 가됩니다. 입력 (IN1) : IN_VAL(ULINT) = 123,567,899 출력 (OUT) : OUT_VAL(LINT) = 123,567,899 (ULINT_TO_LINT) 제 2 장기본펑션및펑션블록라이브러리부 1-100 LS 산전연수원

USINT_TO_*** USINT 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 USINT USINT_TO_*** EN ENO IN OUT *** 입력 EN : 1일때펑션실행 IN : 타입변환할 Unsigned Short Integer값 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN 을타입변환해서 OUT 으로출력시킵니다. 펑션 출력타입 동작설명 USINT_TO_SINT SINT 입력이 0~127일경우정상변환되나그외값은에러가발생합니다. USINT_TO_INT INT 입력을 INT 타입으로정상변환합니다. USINT_TO_DINT DINT 입력을 DINT 타입으로정상변환합니다. USINT_TO_LINT LINT 입력을 LINT 타입으로정상변환합니다. USINT_TO_UINT UINT 입력을 UINT 타입으로정상변환합니다. USINT_TO_UDINT UDINT 입력을 UDINT 타입으로정상변환합니다. USINT_TO_ULINT ULINT 입력을 ULINT 타입으로정상변환합니다. USINT_TO_ 하위 1비트를취해 타입으로변환합니다. USINT_TO_BYTE BYTE 내부비트배열의변환없이 BYTE 타입으로변환합니다. USINT_TO_WORD WORD 상위비트를 0 으로채운 WORD 타입으로변환합니다. USINT_TO_DWORD DWORD 상위비트를 0 으로채운 DWORD 타입으로변환합니다. USINT_TO_LWORD LWORD 상위비트를 0 으로채운 LWORD 타입으로변환합니다. USINT_TO_BCD BCD 0~99의값은정상변환되나, 그외의값은에러가발생합니다. USINT_TO_REAL REAL USINT를 REAL 타입으로변환합니다. USINT_TO_LREAL LREAL USINT를 LREAL 타입으로변환합니다. 에러변환에러발생시 _ERR, _LER 플래그가셋 (Set) 됩니다. 에러발생시출력타입의비트수만큼하위비트를취해내부비트배열의변환없이출력시킵니다. 제 2 장기본펑션및펑션블록라이브러리부 1-101 LS 산전연수원

프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 ULINT_TO_SINT 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(USINT 타입 ) = 123 이면, 출력변수로선언된 OUT_VAL(SINT 타입 ) = 123 이됩니다. 입력 (IN1) : IN_VAL(USINT) = 123(16#7B) 출력 (OUT) : OUT_VAL(SINT) = 123(16#7B) 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 (ULINT_TO_SINT) 제 2 장기본펑션및펑션블록라이브러리부 1-102 LS 산전연수원

WDT_RST Watch_Dog 타이머초기화 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 EN REQ WDT_RST ENO OUT 입력 EN : 1 일때펑션실행 REQ : Watch_Dog 타이머초기화요구 출력 ENO : EN 값이그대로출력 OUT : Watch_Dog 타이머를초기화후 1 출력 기능 프로그램중에서 Watch-Dog Timer를 Reset 시킵니다. 프로그램에서스캔타임이조건에의해설정된 Watch-Dog Time 시간을넘는경우사용합니다. 스캔타임이매번설정된스캔 Watch Dog Time을넘는경우는 GMWIN의기본파라미터에서스캔워치독타임의설정값으로변경해주십시오. 프로그램의 0 Line부터 WDT-RST 펑션까지의시간 T1과 WDT-RST 펑션부터프로그램끝까지의시간T2 어느쪽도스캔워치독타임설정값을넘지않도록해주십시오. 프로그램시작 WDT-RST 프로그램끝 T1 T2 WDT-RST 펑션은 1 스캔중에여러번사용가능합니다. 제 2 장기본펑션및펑션블록라이브러리부 1-103 LS 산전연수원

프로그램예스캔워치독타임이 200ms 로설정된프로그램에서실행조건에따라프로그램의두행시간이 300ms 가될때의프로그램 LD 300ms 의스캔타임을가진프로그램 150ms 의스캔타임을가진프로그램 150ms 의스캔타임을가진프로그램 (1) 실행조건 (%M0) 가 On 하면 WDT-RST(Watch Dog 타이머초기화 ) 펑션이실행합니다. (2)WDT-RST 펑션이실행되면, 프로그램의실행조건에따라스캔타임이 300ms 까지늘어나는프로그램을스캔워치독타임이내 (200ms) 으로맞출수있습니다. 제 2 장기본펑션및펑션블록라이브러리부 1-104 LS 산전연수원

WORD_TO_*** WORD 타입변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 WORD EN IN WORD_TO_*** ENO OUT *** 입력 EN : 1 일때펑션실행 IN : 타입변환할비트열 (16 비트 ) 출력 ENO : EN 값이그대로출력 OUT : 타입변환된데이터 기능 IN을타입변환해서 OUT으로출력시킵니다. 펑션 출력타입 동작설명 WORD _TO_SINT SINT 하위 8비트를취해 SINT 타입으로변환합니다. WORD _TO_INT INT 내부비트배열의변환없이 INT 타입으로변환합니다. WORD _TO_DINT DINT 상위비트를 0 으로채운 DINT 타입으로변환합니다. WORD _TO_LINT LINT 상위비트를 0으로채운 LINT 타입으로변환합니다. WORD _TO_USINT USINT 하위 8비트를취해 SINT 타입으로변환합니다. WORD _TO_UINT UINT 내부비트배열의변환없이 INT 타입으로변환합니다. WORD _TO_UDINT UDINT 상위비트를 0으로채운 DINT 타입으로변환합니다. WORD _TO_ULINT ULINT 상위비트를 0으로채운 LINT 타입으로변환합니다. WORD _TO_ 하위 1비트를취해 타입으로변환합니다. WORD _TO_BYTE BYTE 하위 8비트를취해 SINT 타입으로변환합니다. WORD _TO_DWORD DWORD 상위비트를 0으로채운 DWORD 타입으로변환합니다. WORD _TO_LWORD LWORD 상위비트를 0으로채운 LWORD 타입으로변환합니다. WORD _TO_DATE DATE 내부비트배열의변환없이 DATE 타입으로변환합니다. WORD _TO_STRING STRING WORD를 STRING 타입으로변환합니다. 프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 WORD-TO-INT 펑션이실행됩니다. (2) 입력변수로선언된 IN_VAL(WORD 타입 ) = 2#0001_0001_0001_0001 이면, 출력변수로선언된 OUT_VAL(INT 타입 ) = 4096 + 256 + 16 + 1 = 4,369 가됩니다. 입력 (IN1) : IN_VAL(WORD) = 16#1111 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 (WORD-TO-INT) 출력 (OUT) : OUT_VAL(INT) = 4,369(16#1111) 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 제 2 장기본펑션및펑션블록라이브러리부 1-105 LS 산전연수원

XOR 배타적논리합 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 입력 EN : 1 일때펑션실행 ANY_BIT ANY_BIT EN IN1 IN2 XOR ENO OUT ANY_BIT IN1 : XOR될값 IN2 : XOR될값입력 8개까지확장가능 출력 ENO : EN값이그대로출력 OUT : XOR 된값 IN1, IN2, OUT 은모두같은타입이어야함. 기능 IN1을 IN2와비트별로 XOR해서 OUT으로출력시킵니다. IN1 1111... 0000 XOR IN2 1010... 1010 OUT 0101... 1010 프로그램예 LD (1) 실행조건 (%M0) 이 On하면 XOR( 배타적논리합 ) 펑션이실행됩니다. (2) 입력변수 %MB10=11001100, ABC=11110000이면, 두값을 XOR시킨결과가출력변수 %QB0.0.0 = 00111100 로출력됩니다. 제 2 장기본펑션및펑션블록라이브러리부 1-106 LS 산전연수원

입력 (IN1) : %MB10(BYTE) = 16#CC (IN2) : ABC(BYTE) = 16#F0 1 1 0 0 1 1 0 0 (XOR) 1 1 1 1 0 0 0 0 출력 (OUT) : %QB0.0.0(BYTE) = 16#3C 0 0 1 1 1 1 0 0 제 2 장기본펑션및펑션블록라이브러리부 1-107 LS 산전연수원

2.2 응용펑션라이브러리 ARY_ASC_TO_BCD 입력 ASCII Array 출력 BCD Array CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ARY_ASC_T O_BCD 입력 EN : 1일때펑션실행 IN1 : ASCII Array 입력 WORD_ARY BYTE_ARY EN IN1 IN2 ENO OUT 출력 ENO : 에러없이실행되면 1 을출력 OUT : Dummy 출력 입출력 IN2 : BCD Array 출력 기능 ASCII 데이터를지니고있는 WORD Array 를입력받아서, BCD(Binary Coded Decimal) 값인 BYTE Array 로변환합니다 IN1[1] B15 B12 B11 3 0 3 8 B8 B7 IN1[0] B4 B3 3 1 3 9 B0 1 B7 IN2[0] IN2[1] B4 B3 0 1 8 9 B0 IN1[n] 3 3 3 4 3 4 에러 입력단의 2 개 Array 의개수가서로다를경우, IN2 값에는변화가없으며 _ERR/_LER 플래그가셋 (Set) 됩니다. IN1 Array 원소의값이 16진값으로 0 ~ 9 이외의값이입력되면, IN1에해당하는 IN2 Array 원소의값은 16#00 이되고나머지원소들의값은정상적으로변환이이루어지지만 _ERR/_LER 플래그가셋 (Set) 됩니다. IN2[n] 프로그램예 LD (1) 실행조건 (%M0) 이 On하면, ARY_ASC_TO_BCD 펑션이실행됩니다. (2) 펑션의입력변수로선언된 ASC_ARY값이다음과같이선언되어있다면 ASC_ARY[0] 3031H ASC_ARY[1] 3839H ASC_ARY[2] 3334H 제 2 장응용펑션라이브러리부 2-1 LS 산전연수원

펑션이실행된후에입출력변수로선언된 BCD_ARY의값은 BYTE_ARY[0] 01H BYTE_ARY[1] 89H BYTE_ARY[2] 34H 과같이출력됩니다. 제 2 장응용펑션라이브러리부 2-2 LS 산전연수원

ARY_ASC_TO_BYTE 입력 ASCII Array 출력 BYTE Array CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ARY_ASC_T O_BYTE 입력 EN IN1 : 1일때펑션실행 : ASCII Array 입력 WORD_ARY BYTE_ARY EN IN1 IN2 ENO OUT 출력 ENO : 에러없이실행되면 1 을출력 OUT : Dummy 출력 입출력 IN2 : BYTE Array 출력 기능 ASCII 데이터를지니고있는 WORD Array 를입력받아서, 16 진 (HEX) 값인 BYTE Array 로변환합니다. B15 B12 B11 B8 B7 B4 B3 B0 B7 B4 B3 B0 IN1[0] 3 4 4 1 A IN2[0] 4 A IN1[1] 3 3 4 6 IN2[1] 3 F IN1[n] 3 2 3 9 IN2[n] 2 9 에러 입력단의 2 개 Array 의개수가서로다를경우, IN2 값에는변화가없으며 _ERR/_LER 플래그가셋 (Set) 됩니다. IN1 Array 원소의값이 16 진값으로 0 ~ F 이외의값이입력되면, IN1 에해당하는 IN2 Array 원소의값은 0 이되고나머지원소들의값은정상적으로변환이이루어지지만 _ERR/_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On하면, ARY_ASC_TO_BYTE 펑션이실행됩니다. (2) 펑션의입력변수로선언된 ASC_ARY값이다음과같이선언되어있다면 ASC_ARY[0] 3441H ASC_ARY[1] 3346H ASC_ARY[2] 3239H 제 2 장응용펑션라이브러리부 2-3 LS 산전연수원

펑션이실행된후에입출력변수로선언된 BYTE_ARY의값은 BYTE_ARY[0] 4AH BYTE_ARY[1] 3FH BYTE_ARY[2] 29H 과같이출력됩니다. 제 2 장응용펑션라이브러리부 2-4 LS 산전연수원

ARY_AVE_*** Array 의평균값구하기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_NUM_ARY INT INT ARY_AVE EN IN INDX LEN ENO OUT ANY_NUM 입력 EN : 1일때펑션실행 IN : 평균을위한데이터 Array INDX : Array 내에서연산을시작할위치 LEN : 평균값을구할 Array 원소의개수 출력 ENO : 에러없이실행되면 1 을출력 OUT : 연산후의평균값을출력 기능 ARY_AVE_*** 펑션은 Array 내부의지정된영역에대하여평균값을구합니다. 출력타입은입력 Array 타입과동일하게설정되어있습니다. LEN이마이너스일경우에는 Array 인덱스부터 (Array 인덱스 LEN ) 사이의원소들에대한평균값을구합니다. 평균값은반올림하여출력합니다. 펑션 출력타입 동작설명 ARY_AVE_SINT SINT SINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_INT INT SINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_DINT DINT DINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_LINT LINT LINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_USINT USINT USINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_UINT UINT UINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_UDINT UDINT UDINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_ULINT ULINT ULINT값들의평균값을구합니다.( 소수점이하는반올림 ) ARY_AVE_REAL REAL REAL값들의평균값을구합니다. ARY_AVE_LREAL LREAL LREAL값들의평균값을구합니다. 에러 Array의범위를초과하여지정한경우 _ERR/ _LER 플래그가셋 (Set) 됩니다. 에러발생시 OUT에는 0이출력됩니다. 에러가발생하는범위지정 INDX < 0 또는 INDX > IN 의최대원소번호 INDX + LEN > IN 의최대원소번호 제 2 장응용펑션라이브러리부 2-5 LS 산전연수원

프로그램예 LD 0 11245 1 23454 2 8764 IN_ARY 10 개3 4 5 9563 18764 7765 9563 + 18764 + 7765 + 29215 + 21004 + 10048 = 16044.83 = 16045 6 의INT 로구성된어레이6 7 8 29215 21004 10048 9 18081 (1) 입력조건 (%I1.1.6) 이 On 하면, ARY_AVE_INT 펑션이실행됩니다. (2)Array 내의값이위의그림과같을경우 Array 인덱스 3 번째로부터 6 개의원소에대한평균값을구합니다. (3) 평균값이 16044.8 이지만출력타입이 INT 이므로반올림을수행하여 16045 를출력합니다. 제 2 장응용펑션라이브러리부 2-6 LS 산전연수원

ARY_BCD_TO_ASC 입력 BCD Array 출력 ASCII Array CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ARY_BCD_T O_ASC 입력 EN IN1 : 1일때펑션실행 : BCD Array 입력 BYTE_ARY WORD_ARY EN IN1 IN2 ENO OUT 출력 ENO : 에러없이실행되면 1 을출력 OUT : Dummy 출력 입출력 IN2 : ASCII Array 출력 기능 BCD 값을지닌 BYTE Array 를입력받아서, ASCII 데이터를지니고있는 WORD Array 로변환합니다. B7 B4 B3 B0 B15 B12 B11 B8 B7 B4 B3 B0 IN1[0] 0 1 IN2[0] 3 0 3 1 1 IN1[1] 8 9 IN2[1] 3 8 3 9 IN1[n] 4 5 IN2[n] 3 4 3 5 에러 입력단의 2 개 Array 의개수가서로다를경우, IN2 값에는변화가없으며 _ERR/_LER 플래그가셋 (Set) 됩니다. IN1Array 원소의값이 16 진값으로 0~9 이외의값이입력되면, IN1 에해당하는 IN2 Array 원소의값은 16#3030( 00 ) 이되고나머지원소들의값은정상적으로변환이되지만 _ERR/_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On하면, ARY_BCD_TO_ASC 펑션이실행됩니다. (2) 펑션의입력변수로선언된 BCD_ARY의값이다음과같이선언되어있다면 BYTE_ARY[0] 01H BYTE_ARY[1] 89H BYTE_ARY[2] 45H 제 2 장응용펑션라이브러리 부 2-7 LS 산전연수원

펑션이실행된후에입출력변수로선언된 ASC_ARY의값은 ASC_ARY[0] 3031H ASC_ARY[1] 3839H ASC_ARY[2] 3435H 과같이출력됩니다. 제 2 장응용펑션라이브러리부 2-8 LS 산전연수원

ARY_BYTE_TO_ASC 입력 BYTE Array 출력 ASCII Array CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE_ARY WORD_ARY EN IN1 IN2 ARY_BYTE_ TO_ASC ENO OUT 입력 EN IN1 : 1일때펑션실행 : BYTE Array 입력 출력 ENO : 에러없이실행되면 1 을출력 OUT : Dummy 출력 입출력 IN2 : ASCII Array 출력 기능 16 진 (HEX) 값을가지고있는 BYTE Array 를입력받아서, ASCII 데이터를지니고있는 WORD Array 로변환합니다. B7 B4 B3 B0 B15 B12 B11 B8 B7 B4 B3 B0 IN1[0] 4 A IN2[0] 3 4 4 1 A IN1[1] 3 F IN2[1] 3 3 4 6 IN1[n] 2 9 IN2[n] 3 2 3 9 에러입력단의 2 개 Array 의개수가서로다를경우, IN2 값에는변화가없으며 _ERR/_LER 플래그가 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면, ARY_BYTE_TO_ASC 펑션이실행됩니다. (2) 펑션의입력변수로선언된 BYTE_ARY 의값이다음과같이선언되어있다면 BYTE_ARY[0] BYTE_ARY[1] BYTE_ARY[2] 4AH 3FH 29H 제 2 장응용펑션라이브러리부 2-9 LS 산전연수원

펑션이실행된후에입출력변수로선언된 ASC_ARY의값은 ASC_ARY[0] 3441H ASC_ARY[1] 3346H ASC_ARY[2] 3239H 과같이출력됩니다. 제 2 장응용펑션라이브러리부 2-10 LS 산전연수원

ARY_CMP_*** Array 비교 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_ARY INT ANY_ARY INT INT ARY_CMP EN IN1 IN1_INDX IN2 IN2_INDX LEN ENO OUT 입력 EN : 1일때펑션실행 IN1 : 비교할첫번째 Array IN1_INDX : 첫번째 Array에서비교할시작위치 IN2 : 비교할두번째 Array IN2_INDX : 두번째 Array에서비교할시작위치 LEN : 비교할원소의개수 출력 ENO : 에러없이실행되면 1 을출력 OUT : Array 비교값이동일하면 1 을출력 기능 ARY_CMP_*** 펑션은 2 개의 Array 를입력받아서로동일한값을가지고있는지를비교합니다. LEN 이마이너스일경우에는 Array 인덱스부터 (Array 인덱스 LEN ) 사이의원소들을비교합니다. 펑션 입력 Array 타입 동작설명 ARY_CMP_ 2개의 Array를서로비교합니다. ARY_CMP_BYTE BYTE 2개의 BYTE Array를서로비교합니다. ARY_CMP_WORD WORD 2개의 WORD Array를서로비교합니다. ARY_CMP_DWORD DWORD 2개의 DWORD Array를서로비교합니다. ARY_CMP_LWORD LWORD 2개의 LWORD Array를서로비교합니다. ARY_CMP_SINT SINT 2개의 SINT Array를서로비교합니다. ARY_CMP_INT INT 2개의 INT Array를서로비교합니다. ARY_CMP_DINT DINT 2개의 DINT Array를서로비교합니다. ARY_CMP_LINT LINT 2개의 LINT Array를서로비교합니다. ARY_CMP_USINT USINT 2개의 USINT Array를서로비교합니다. ARY_CMP_UINT UINT 2개의 UINT Array를서로비교합니다. ARY_CMP_UDINT UDINT 2개의 UDINT Array를서로비교합니다. ARY_CMP_ULINT ULINT 2개의 ULINT Array를서로비교합니다. ARY_CMP_REAL REAL 2개의 REAL Array를서로비교합니다. ARY_CMP_LREAL LREAL 2개의 LREAL Array를서로비교합니다. ARY_CMP_TIME TIME 2개의 TIME Array를서로비교합니다. ARY_CMP_DATE DATE 2개의 DATE Array를서로비교합니다. ARY_CMP_TOD TOD 2개의 TOD Array를서로비교합니다. ARY_CMP_DT DT 2개의 DT Array를서로비교합니다. 제 2 장응용펑션라이브러리부 2-11 LS 산전연수원

에러 Array의범위를초과하여지정한경우 _ERR/_LER 플래그가셋 (Set) 됩니다. 에러가발생하는범위지정 IN1_INDX < 0 또는 IN1_INDX > IN1 최대원소번호 IN2_INDX < 0 또는 IN2_INDX > IN2 최대원소번호 IN1_INDX + LEN IN1 최대원소번호 IN2_INDX + LEN IN2 최대원소번호 프로그램예 LD (1) 입력조건 (%M0) 이 On 하면 ARY_CMP_TIME 펑션이실행됩니다. (2)IN_ARY1 이 100 개의원소를지닌 TIME Array 이고, IN_ARY2 가 10 개의원소를지닌 TIME Array 일경우 IN_ARY1 의 11 번째원소로부터 20 번째까지 10 개의원소를 IN_ARY 2 의첫번째원소로부터 10 번째까지 10 개의원소와각각비교하여모두동일하면접점출력 %Q1.3.2 가 On 됩니다. 제 2 장응용펑션라이브러리부 2-12 LS 산전연수원

ARY_FLL_*** Array 내부영역채우기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY ARY INT INT ARY_FLL_*** EN ENO DATA OUT IN INDX LEN 입력 EN : 1일때펑션실행 DATA : Array 내를채울값 INDX : 값을채울 Array 내의처음위치 LEN : 값을채울 Array 원소의개수 출력 ENO : 에러없이실행되면 1 을출력 OUT : 동작이성공적으로끝나면 1 을출력 입출력 IN : 값이채워질 Array 기능 ARY_FLL_*** 펑션은입력 DATA 값으로 Array 내부의선택영역을채웁니다. LEN 이마이너스일경우에는 Array 인덱스부터 (Array 인덱스 LEN ) 사이의원소들을비교합니다. 펑션 입출력 Array 타입 동작설명 ARY_FLL_ Array 내부를지정된값으로채웁니다. ARY_FLL_BYTE BYTE BYTE Array 내부를지정된값으로채웁니다. ARY_FLL_WORD WORD WORD Array 내부를지정된값으로채웁니다. ARY_FLL_DWORD DWORD DWORD Array 내부를지정된값으로채웁니다. ARY_FLL_LWORD LWORD LWORD Array 내부를지정된값으로채웁니다. ARY_FLL_SINT SINT SINT Array 내부를지정된값으로채웁니다. ARY_FLL_INT INT INT Array 내부를지정된값으로채웁니다. ARY_FLL_DINT DINT DINT Array 내부를지정된값으로채웁니다., ARY_FLL_LINT LINT LINT Array 내부를지정된값으로채웁니다. ARY_FLL_USINT USINT USINT Array 내부를지정된값으로채웁니다. ARY_FLL_UINT UINT UINT Array 내부를지정된값으로채웁니다. ARY_FLL_UDINT UDINT UDINT Array 내부를지정된값으로채웁니다. ARY_FLL_ULINT ULINT ULINT Array 내부를지정된값으로채웁니다. ARY_FLL_REAL REAL REAL Array 내부를지정된값으로채웁니다. ARY_FLL_LREAL LREAL LREAL Array 내부를지정된값으로채웁니다. ARY_FLL_TIME TIME TIME Array 내부를지정된값으로채웁니다. ARY_FLL_DATE DATE DATE Array 내부를지정된값으로채웁니다. ARY_FLL_TOD TOD TOD Array 내부를지정된값으로채웁니다. ARY_FLL_DT DT DT Array 내부를지정된값으로채웁니다. 제 2 장응용펑션라이브러리부 2-13 LS 산전연수원

에러 Array의범위를초과하여지정한경우 _ERR/_LER 플래그가셋 (Set) 됩니다. 에러발생시 OUT은 OFF되고, IN의 Array 값은변하지않습니다. 에러가발생하는범위지정 INDX < 0 또는 INDX > IN의최대원소번호 INDX + LEN IN 의최대원소번호 프로그램예 LD IN_ARY (10 개의 INT 로구성된어레이 ) 0 1 2 3 4 5 6 7 8 9 23 31 34 34 34 34 45 98 85 32 어레이인덱스 2 번째부터 4 개의원소를채운다. (1) 입력조건 (%M0) 이 On 하면, ARY_FLL_INT 펑션이실행됩니다. (2)Array 인덱스 2 번째부터 4 개의원소를지정된값 34 로채웁니다. (3) 만약 LEN 을 9 로대체하면 Array 의전체개수를초과하므로에러가발생하여 _ERR 과 _LER 플래그가 On 되므로출력접점 %Q1.13.15 가 On 됩니다. 제 2 장응용펑션라이브러리부 2-14 LS 산전연수원

ARY_MOVE Array 복사 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 입력 INT ANY_ARRAY ANY_ARRAY INT INT ARY_MOVE EN MOVE_NUM IN1 IN2 IN1_INDX IN2_INDX ENO OUT EN : 1 일때펑션실행 MOVE_NUM : Move 할어레이개수 IN1 : Move 할어레이변수 (STRING Type 은사용불가 ) IN2 : Move 될어레이변수 (STRING Type 은사용불가 ) IN1_INDX : 어레이변수의 Move 할시작 Pointer 위치 IN2_INDX : 어레이변수의 Move 될시작 Pointer 위치 출력 ENO : 에러없이실행되면 1 을출력 OUT : 에러없이실행되면 1 을출력 기능 EN이 1이면, IN1 어레이변수의데이터를 IN2 어레이변수에복사합니다. IN1의 IN1_INDX번째값부터 MOVE_NUM 개수만큼데이터를복사하여, IN2의 IN2_INDX번째값부터붙여넣기를실행합니다. MOVE가가능하기위해서는 IN1과 IN2의데이터타입과 Size가동일해야합니다. 단, IN1과 IN2의어레이개수는다를수있습니다. 데이터타입의 Size는아래표와같습니다. 데이터 Size 변수타입 1 Bit 8 Bit BYTE, SINT, USINT 16 Bit WORD / INT / UINT / DATE 32 Bit DWORD / DINT / UDINT / TIME / TOD 64 Bit DT 에러 IN1과 IN2데이터타입의 Size가서로다른경우에러가발생합니다. IN1의 Array 개수가 (IN1_INDX + MOVE_NUM) 보다작은경우나, IN2의 Array 개수가 (IN2_INDX + MOVE_NUM) 보다작은경우에러가발생합니다. 이때, 데이터복사는수행하지않고 OUT은 0이됩니다. 또한, ENO가 OFF되고 _ERR,_LER 플래그가셋 (Set) 됩니다. 제 2 장응용펑션라이브러리부 2-15 LS 산전연수원

프로그램예 LD 변수명 변수타입 어레이개수 ARY_SRC INT 10 ARY_DES WORD 15 (1) 실행조건 (A) 이 On하면 ARY_MOVE 펑션이실행됩니다. (2) 아래표와같이 ARY_SRC[5] 부터 5개의데이터를 ARY_DES[10] 에복수합니다. 이때, ARY_DES의데이터타입이 WORD이므로 16진수로저장됩니다. 실행전 실행후 ARY_SRC[0] 0 ARY_DES[0] 16#0 ARY_SRC[0] 0 ARY_DES[0] 16#0 ARY_SRC[1] 11 ARY_DES[1] 16#1 ARY_SRC[1] 11 ARY_DES[1] 16#1 ARY_SRC[2] 22 ARY_DES[2] 16#2 ARY_SRC[2] 22 ARY_DES[2] 16#2 ARY_SRC[3] 33 ARY_DES[3] 16#3 ARY_SRC[3] 33 ARY_DES[3] 16#3 ARY_SRC[4] 44 ARY_DES[4] 16#4 ARY_SRC[4] 44 ARY_DES[4] 16#4 ARY_SRC[5] 55 ARY_DES[5] 16#5 ARY_SRC[5] 55 ARY_DES[5] 16#5 ARY_SRC[6] 66 ARY_DES[6] 16#6 ARY_SRC[6] 66 ARY_DES[6] 16#6 ARY_SRC[7] 77 ARY_DES[7] 16#7 ARY_SRC[7] 77 ARY_DES[7] 16#7 ARY_SRC[8] 88 ARY_DES[8] 16#8 ARY_SRC[8] 88 ARY_DES[8] 16#8 ARY_SRC[9] 99 ARY_DES[9] 16#9 ARY_SRC[9] 99 ARY_DES[9] 16#9 ARY_DES[10] 16#A ARY_DES[10] 16#37 ARY_DES[11] 16#B ARY_DES[11] 16#42 ARY_DES[12] 16#C ARY_DES[12] 16#4D ARY_DES[13] 16#D ARY_DES[13] 16#58 ARY_DES[14] 16#E ARY_DES[14] 16#63 제 2 장응용펑션라이브러리부 2-16 LS 산전연수원

ARY_ROT_C_*** Array 의 Bit Rotate with Carry CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT_ARY UINT UINT UINT _ARY ARY_ROT_C_*** EN SRC STRT END N CYO ENO OUT 입력 EN : 1일때펑션실행 STRT : Rotate할 bit의시작위치 END : Rotate할 bit의종료위치 N : Rotate 시킬개수 출력 ENO : 에러없이실행되면 1 을출력 OUT : 연산에러가없으면 1 을출력 입출력 SRC : Rotate 시킬 Source Array CYO : Rotate 후에출력되는 Carry bit Array 기능 ARY_ROT_C_*** 펑션은지정된범위의 Array 원소들의 bit들을정해진개수만큼 Rotate 시킵니다. 동작의지정 - 범위지정 : STRT와 END로이동할비트의범위를지정합니다. - 이동방향및횟수 : STRT에서 END방향으로지정된횟수 (N) 만큼 Rotate 합니다 - 출력 : 데이터조작의결과는 SRC에지정된 ANY_BIT_ARY에저장되며, 회전동작으로 END 위치에서 STRT로돌아들어가는비트열데이터는 CYO 비트 Array로출력됩니다. SRC[0] SRC[1] SRC[2] SRC[3] MSB 1 Bit Rotate 실행 SRC[0] SRC[1] SRC[2] SRC[3] END: 13 (4 개의 WORD 어레이 ) CYO 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 CYO 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 STRT: 4 LSB CYO[0] CYO[1] CYO[2] CYO[3] CYO[0] CYO[1] CYO[2] CYO[3] : 변환전 : 변환후 펑션 입출력 Array 타입 동작설명 ARY_ROT_C_BYTE BYTE ARY_ROT_C_WORD WORD 각타입 Array 원소들의비트들을지정된범위내에서 ARY_ROT_C_DWORD DWORD 지정된비트수만큼 Rotate시킵니다. ARY_ROT_C_LWORD LWORD 제 2 장응용펑션라이브러리부 2-17 LS 산전연수원

에러 SRC과 CYO Array 의개수가서로동일하지않을경우 _ERR/_LER 플래그가셋 (Set) 됩니다. STRT와 END가 SRC 원소의비트범위를벗어나면에러가발생합니다. 에러발생시 SRC와 CYO는변하지않습니다. 프로그램예 LD (1) 입력조건 (%M2) 이 On 되면, ARY_ROT_C_WORD 펑션이실행됩니다. (2)STRT 인 13 번째 bit 열과 END 인 4 번째비트열로지정된범위에서 STRT 로부터 END 방향으로 2 번회전합니다. (3) 회전된결과는 SRC_ARY 에저장되며이때출력되는캐리비트열은 CYO Array 로출력됩니다. ( 연산전 ) SRC_ARY : 16#F7F7 16#E3E3 16#C1C1 16#8080 (N) : 2 ( 연산후 ) SRC_ARY : 16#FDF7 16#E8F3 16#C071 16#8020 CYO : 2#1100 0: 1: 2: 3: MSB 2 Bit Rotate 실행 0: 1: 2: 3: STRT: 13 (4 개의 WORD 어레이 ) CYO 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0: 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1: 2: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 3: 0 CYO 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0: 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1: 2: 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 3: 0 END: 4 LSB : 변환전 : 변환후 제 2 장응용펑션라이브러리부 2-18 LS 산전연수원

ARY_SCH_*** Array 탐색 (search) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY_ARY INT INT ARY_SCH EN DATA IN P N ENO OUT 입력 EN : 1일때펑션실행 DATA : 탐색할 DATA IN : 탐색할 Array 출력 ENO : EN 값을그대로출력 OUT : 원하는값을찾으면 1 을출력 입출력 P N : 목표값에해당하는 Array의첫번째위치 : 목표값과동일한 Array 원소들의개수 기능 ARY_SCH_*** 펑션은 Array 내에서입력된값과동일한값을찾아 Array 내에서의처음위치와전체개수를출력합니다. Array 내에서목표값과동일한값이하나이상일경우 OUT 에 1 을출력합니다. 펑션 입력 Array 타입 동작설명 ARY_SCH_ Array 내에서탐색합니다. ARY_SCH_BYTE BYTE BYTE Array 내에서탐색합니다. ARY_SCH_WORD WORD WORD Array 내에서탐색합니다. ARY_SCH_DWORD DWORD DWORD Array 내에서탐색합니다. ARY_SCH_LWORD LWORD LWORD Array 내에서탐색합니다. ARY_SCH_SINT SINT SINT Array 내에서탐색합니다. ARY_SCH_INT INT INT Array 내에서탐색합니다. ARY_SCH_DINT DINT DINT Array 내에서탐색합니다. ARY_SCH_LINT LINT LINT Array 내에서탐색합니다. ARY_SCH_USINT USINT USINT Array 내에서탐색합니다. ARY_SCH_UINT UINT UINT Array 내에서탐색합니다. ARY_SCH_UDINT UDINT UDINT Array 내에서탐색합니다. ARY_SCH_ULINT ULINT ULINT Array 내에서탐색합니다. ARY_SCH_REAL REAL REAL Array 내에서탐색합니다. ARY_SCH_LREAL LREAL LREAL Array 내에서탐색합니다. ARY_SCH_TIME TIME TIME Array 내에서탐색합니다. ARY_SCH_DATE DATE DATE Array 내에서탐색합니다. ARY_SCH_TOD TOD TOD Array 내에서탐색합니다. ARY_SCH_DT DT DT Array 내에서탐색합니다. 제 2 장응용펑션라이브러리부 2-19 LS 산전연수원

프로그램예 LD IN_ARY (10 개의바이트로구성된어레이 ) 0 1 2 3 4 5 6 7 8 9 11h 22h 33h 44h 22h 66h 77h 22h 88h 99h (1) 입력조건 (%M1) 이 On 하면 ARY_SCH_BYTE 펑션이실행됩니다. (2) 위의그림에서처럼 IN_ARY 가 10 개의바이트 Array 로구성되어있고이 Array 내부에서 22h 이라는값을탐색하면화살표로표시된바와같이 3 개가탐색됩니다. (3)POS 에는 Array 내부의첫번째위치인 1 이출력되고, NUM 에는전체개수인 3 이출력됩니다. 펑션출력으로는하나이상의값이탐색되었으므로 1 이출력되어출력접점 %Q1.3.0 은 On 이됩니다. 제 2 장응용펑션라이브러리부 2-20 LS 산전연수원

ARY_SFT_C_*** Array 의 Bit Shift Left with Carry CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 _ARY ANY_BIT_ARY UINT UINT UINT UINT ARY_SFT_C_*** EN ENO CY1 OUT SRC STRT END N CYO 입력 EN : 1일때펑션실행 CYI : Array에입력되는 Carry bit Array STRT : Shift할 bit의시작 END : Shift할 bit의종료위치 N : Shift 시킬개수 출력 ENO : 에러없이실행되면 1 을출력 OUT : 연산에러가없으면 1 을출력 입출력 SRC : Shift 시킬 Source Array CYO : Shift 후에출력되는 Carry bit Array 기능 ARY_SFT_C_*** 펑션은 Array 원소들의 bit들을정해진개수만큼지정된방향으로이동시킵니다. 동작의지정 - 범위지정 : STRT와 END로이동할비트의범위를지정됩니다. - 이동방향및횟수 : STRT에서 END방향으로지정된횟수 (N) 만큼이동합니다 - 입력데이터지정 : Shift한후에비워지는위치를입력데이터 (CYI) 로채웁니다. - 출력 : 데이터조작의결과는 SRC에지정된 ANY_BIT_ARY에저장되며, END 위치에서 Shift 동작으로밀려나온비트열데이터는 CYO로출력됩니다. CYI[0] CYI[1] CYI[2] CYI[3] CYI[0] CYI[1] CYI[2] CYI[3] CYI 1 0 0 1 CYI 1 0 0 1 SRC[0] SRC[1] SRC[2] SRC[3] (4개의 WORD 어레이 ) MSB 13 2 LSB CYO 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 Bit Shift 실행 SRC[0] SRC[1] SRC[2] SRC[3] STRT: CYO 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 END: CYO[0] CYO[1] CYO[2] CYO[3] CYO[0] CYO[1] CYO[2] CYO[3] : 변환전 : 변환후 펑션 입출력 Array 타입 동작설명 ARY_SFT_C_BYTE BYTE ARY_SFT_C_WORD WORD 각타입 Array 원소들의비트들을지정된범위내에서 ARY_SFT_C_DWORD DWORD 지정된비트수만큼 Shift시킵니다. ARY_SFT_C_LWORD LWORD 제 2 장응용펑션라이브러리부 2-21 LS 산전연수원

에러 CYI, SRC, CYO Array 의개수가모두동일하지않을경우 _ERR/_LER 플래그가셋 (Set) 됩니다. STRT와 END가 SRC 원소의비트범위를벗어나면에러가발생합니다. 에러발생시 SRC와 CYO는변하지않습니다. 프로그램예 LD (1) 입력조건 (%M2) 이 On 되면, ARY_SFT_C_WORD 펑션이실행됩니다. (2)STRT 인 13 번째 bit 열과 END 인 4 번째비트열로지정된범위에서 STRT 로부터 END 방향으로 3 번 shift 합니다. (3)Shift 후에비워지는비트열은 CYI(2#0011) 로채워집니다. (4)Shift 후의결과는 SRC_ARY 로다시출력되고캐리비트열은 CYO 로출력됩니다. ( 연산전 ) CYI : 2#0011 SRC_ARY : 16#F7F7 16#E3E3 16#C1C1 16#8080 (N) : 3 ( 연산후 ) SRC_ARY : 16#C6F7 16#C473 16#F831 16#B810 CYO : 2#1110 0: 1: 2: 3: 0: 1: 2: 3: CYI 0 0 1 1 CYI 0 0 1 1 0: 1: 2: 3: MSB (4 개의 WORD 어레이 ) CYO 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0: 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1: 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 2: 0 : 변환전 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 3: 0 3 Bit Shift 실행 0: 1: 2: 3: STRT: 13 CYO 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0: 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1: 2: 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 3: 0 END: 4 LSB : 변환후 제 2 장응용펑션라이브러리부 2-22 LS 산전연수원

ARY_SWAP_*** Array 원소데이터의상위하위바꾸기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ARY_SWAP_*** 입력 EN IN1 : 1일때펑션실행 : Array 입력 ANY_BIT_ARY ANY_BIT_ARY EN IN1 IN2 ENO OUT 출력 ENO : 에러없이실행되면 1 을출력 OUT : Dummy 출력 입출력 IN2 : Swap 된 Array 출력 기능입력된 Array 원소를 2 개의크기로구분하여상위와하위를서로교환합니다. 펑션 입력타입 동작설명 ARY_SWAP_BYTE BYTE BYTE 원소의상 하위니블 (Nibble) 을서로교환하여출력합니다. ARY_SWAP_WORD WORD WORD 원소의상 하위 BYTE 를서로교환하여출력합니다. ARY_SWAP_DWORD DWORD DWORD 원소의상 하위 WORD 를서로교환하여출력합니다. ARY_SWAP_LWORD LWORD LWORD 원소의상 하위 DWORD 를서로교환하여출력합니다. 에러입력단의 2 개 Array 의개수가서로다를경우, IN2 Array 의원소값에는변화가없으며 _ERR/_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On하면, ARY_SWAP_WORD 펑션이실행됩니다. (2) 펑션의입력변수로선언된 IN_ARY의값이다음과같을경우 IN_ARY[0] 12ABH IN_ARY[1] 23BCH IN_ARY[2] 34CDH 제 2 장응용펑션라이브러리부 2-23 LS 산전연수원

펑션이실행된후에입출력변수로선언된 OUT_ARY의값은 OUT_ARY[0] AB12H OUT_ARY[1] BC23H OUT_ARY[2] CD34H 과같이출력됩니다. 제 2 장응용펑션라이브러리부 2-24 LS 산전연수원

ASC_TO_BCD ASCII 를 BCD 로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 WORD EN IN1 ASC_TO_BCD ENO OUT BYTE 입력 EN IN : 1일때펑션실행 : ASCII입력 출력 ENO : 에러없이실행되면 1 을출력 OUT : BCD 출력 기능 2 개의 ASCII 값을받아서 2 자리의 BCD(Binary Coded Decimal) 로출력합니다. 에러 IN 값을통해 16 진값으로 0 ~ 9 이외의값이입력되면, 출력은 16#00 이되고 _ERR/_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 되면, ASC_TO_BCD 펑션이실행됩니다. (2) 펑션의입력변수로선언된 ASCII_VAL(WORD 타입 )=16#3732= 72 일경우, 펑션의출력변수로선언된 BCD_VAL(BYTE 타입 )=16#72 가출력됩니다. 제 2 장응용펑션라이브러리부 2-25 LS 산전연수원

ASC_TO_BYTE ASCII 를 BYTE 로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 WORD EN IN1 ASC_TO_BYTE ENO OUT BYTE 입력 EN IN : 1일때펑션실행 : ASCII입력 출력 ENO : 에러없이실행되면 1 을출력 OUT : BYTE 출력 기능 2 개의 ASCII 데이터를입력을받아서 2 자리의 16 진 (HEX) 값으로출력합니다. 에러 IN 값을통해 16 진값으로 0 ~ F 이외의값이입력되면, 출력은 0 이되고 _ERR/_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면, ASC_TO_BYTE 펑션이실행됩니다. (2) 펑션의입력변수로선언된 ASCII_VAL(WORD 타입 )=16#4339 일경우, 펑션의출력변수로선언된 BYTE_VAL(BYTE 타입 ) = 16#C9 가출력됩니다. 제 2 장응용펑션라이브러리부 2-26 LS 산전연수원

BCD_TO_ASC BCD 를 ASCII 로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE EN IN1 BCD_TO_ASC ENO OUT WORD 입력 EN IN : 1일때펑션실행 : BCD 입력 출력 ENO : 에러없이실행되면 1 을출력 OUT : ASCII 출력 기능 2 자리의 BCD(Binary Coded Decimal) 값을받아서 2 개의아스키값으로출력합니다. 에러 IN 값을통해 16 진값으로 0~9 이외의값이입력되면, 출력은 16#3030( 00 ) 이되고 _ERR/_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면, BCD_TO_ASC 펑션이실행됩니다. (2) 펑션의입력변수로선언된 BCD_VAL(BYTE 타입 )=16#85 일경우, 펑션의출력변수로선언된 ASCII_VAL(WORD 타입 )=16#3835= 85 가출력됩니다. 제 2 장응용펑션라이브러리부 2-27 LS 산전연수원

BIT_BYTE 8 개 BIT 들을 BYTE 로묶음 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BIT_BYTE EN ENO IN1 OUT IN1 IN1 IN1 IN1 IN1 IN1 IN1 BYTE 입력 EN : 1일때펑션실행 IN1 ~ IN8 : Bit입력 출력 ENO : EN 값을그대로출력 OUT : Byte 출력 기능 8 개의비트를하나의바이트로조합합니다. IN8: MSB( 최상위비트 ), IN1: LSB( 최하위비트 ) 프로그램예 LD (1) 실행조건 (%M3) 이 On 되면, BIT_BYTE 펑션이실행됩니다. (2)8 개의입력이각각 INPUT1 부터 8 까지순서대로 {0,1,1,0,1,1,0,0} 이면, 출력변수로선언된 OUTPUT(BYTE 타입 )= 2#00110110 입니다. 제 2 장응용펑션라이브러리부 2-28 LS 산전연수원

BMOV_*** 비트스트링의일부분을복사, 이동 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 B,W,D,L B,W,D,L INT INT INT BMOV_*** EN ENO IN1 OUT IN2 IN1_P IN2_P N B,W,D,L 입력 EN : 1 일때펑션실행 IN1: 조합할비트데이터를가진스트링데이터 IN2: 조합할비트데이터를가진스트링데이터 IN1_P : IN1 지정데이터상의시작비트위치 IN2_P : IN2 지정데이터상의시작비트위치 N: 조합할비트의수출력 ENO : 에러없이실행되면 1 을출력 OUT : 조합된비트스트링데이터출력 기능 EN이 1이되면 IN1의비트스트링중 IN1_P로지정된비트위치부터큰방향으로 N개의비트를취하여, IN2의비트스트링에서 IN2_P로지정된비트위치부터큰방향으로대치한후 OUT으로출력합니다. IN1 = 1111 0000 1111 0000, IN2 = 0000 1010 1010 1111이고 IN1_P = 4, IN2_P = 8, N = 4면, 출력되는데이터는 OUT = 0000 1111 1010 1111이됩니다. 입력에는 B(BYTE), W(WORD), D(DWORD), L(LWORD) 타입의데이터가접속가능하며, L(LWORD) 는GM1,2에만적용됩니다. 입출력데이터에맞추어 ENCO_B, ENCO_W, ENCO_D, ENCO_L 중하나의펑션을골라서사용할수있습니다. 에러 IN1_P, IN2_P의값이데이터범위를벗어나거나, N의값이음수또는 IN1_P, IN2_P부터 N개를취한것이데이터의범위를벗어나면데이터를출력하지않고, _ERR,_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD 제 2 장응용펑션라이브러리부 2-29 LS 산전연수원

(1) 실행조건 (%M0) 이 On 하면 BMOV_W 펑션이실행됩니다. (2) 입력변수로선언된 SOURCE = 2#0101 1111 0000 1010, DESTINE = 2#0000 0000 0000 0000 이고, IN1_ P = 0, IN2_P = 8, N = 4 이므로연산결과는 2#0000 1010 0000 0000 이되고, 출력을 DESTINE 으로지정하였으므로 DESTINE = 2#0000 1010 0000 0000 으로바뀌게됩니다. 입력 (IN1) : SOURCE(WORD) = 16#5F0A (IN2) : DESTINE(WORD) = 16#0000 (IN1_ P) = 0 (IN2_P) = 8 (N) = 4 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (BMOV_W) 출력 (OUT) : DESTINE(WORD) = 16#0A00 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 제 2 장응용펑션라이브러리부 2-30 LS 산전연수원

BSUM_*** ON 된비트개수를숫자로출력 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 B,W,D,L EN IN BSUM_* ENO OUT INT 입력 EN : 1 일때펑션실행 IN : ON 비트를검색할입력데이터 출력 ENO : EN 값이그대로출력 OUT : ON 된비트개수를합한결과데이터 기능 EN 이 1 이면, IN 의비트스트링데이터중, 1 로되어있는비트의숫자를세어서 OUT 으로출력합니다. 입력에는 BYTE, WORD, DWORD, LWORD 타입의데이터가접속가능하며, LWORD 는 GM1,2 에만적용됩니다. FUNCTION IN변수타입 동작설명 BSUM_BYTE BYTE BSUM _WORD WORD BSUM _DWORD DWORD 입력테이터에맞추어 4가지펑션중하나를골라서사용합니다. BSUM _LWORD LWORD 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 BSUM_WORD 펑션이실행됩니다. (2) 입력변수로선언된 SWITCHS(WORD 타입 ) = 2#0000 0100 0010 1000 이라면, ON 되어있는비트의개수, 즉 3 을출력하여 ON_COUNT(INT 타입 ) 에정수값 3 이저장됩니다. 제 2 장응용펑션라이브러리부 2-31 LS 산전연수원

BYTE_BIT BYTE 를 8 개 BIT 들로나눔 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE BYTE_BIT EN ENO IN OUT Q01 Q02 Q03 Q04 Q05 Q06 Q07 Q08 입력 EN IN : 1일때펑션실행 : Byte 입력 출력 ENO : EN 값을그대로출력 OUT : Dummy 출력 입출력 QO1~8 : Bit 출력 기능 1 개의바이트를입출력변수로선언된 8 개의비트 (QO1~QO2) 로분산합니다. QO8: MSB( 최상위비트 ), QO1: LSB( 최하위비트 ) 프로그램예 LD (1) 실행조건 (%M0) 이 On 되면, BYTE_BIT 펑션이실행됩니다. (2) 입력변수로선언된 INPUT=16#AC=2#10101100 이면, 입출력변수로선언된 QO1~8 에 QO1 부터순서대로 2#{0, 0, 1, 1, 0, 1, 0, 1} 이저장됩니다. 제 2 장응용펑션라이브러리부 2-32 LS 산전연수원

BYTE_TO_ASC BYTE 를 ASCII 로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE EN IN1 BYTE_TO_ASC ENO OUT WORD 입력 EN : 1 일때펑션실행 IN : BYTE 입력 출력 ENO : EN 값을그대로출력 OUT : ASCII 출력 기능 2 자리의 16 진 (HEX) 데이터를입력받아서 2 개의아스키값으로출력합니다. 예 ) 16#12 -> 3132 16#A~F 는대문자의아스키값으로출력합니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 BYTE_TO_ASC 펑션이실행됩니다. (2) 펑션의입력변수로선언된 BYTE_VAL(BYTE 타입 ) =16#3A 일경우, 펑션의출력변수로선언된 ASCII_VAL(WORD 타입 ) = 16#3341 = 3, A 가출력됩니다. 제 2 장응용펑션라이브러리부 2-33 LS 산전연수원

BYTE_WORD 2 개의 BYTE 를 WORD 로모음 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE BYTE EN LOW HIGH BYTE_WORD ENO OUT WORD 입력 EN : 1일때펑션블록실행 LOW : 하위 BYTE 입력 HIGH : 상위 BYTE 입력 출력 ENO : EN 값을그대로출력 OUT : WORD 출력 기능 2 개의바이트를하나의워드로조합합니다. LOW: 하위바이트입력, HIGH: 상위바이트입력 프로그램예 LD (1) 실행조건 (%M3) 이 On 되면, BYTE_WORD 펑션이실행됩니다. (2) 입력변수로선언된 BYTE_IN1=16#56 이고 BYTE_IN2=16#AD 이면, 출력변수로선언된 OUTPUT=16#AD56 입니다. 제 2 장응용펑션라이브러리부 2-34 LS 산전연수원

DEC_*** IN 데이터를하나감소 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT EN IN DEC_*** ENO OUT ANY_BIT 입력 EN : 1 일때펑션실행 IN : 감소시킬입력데이터 출력 ENO : EN 값이그대로출력 OUT : 감소시킨결과데이터 기능 EN 이 1 이면, IN 의비트스트링데이터를 1 만큼감소시켜서 OUT 으로출력합니다. 언더플로우가발생해도에러는발생하지않으며, 결과는 16#0000 인경우에 16#FFFF 가됩니다. 입력에는 BYTE, WORD, DWORD, LWORD 타입의데이터가접속가능하며, LWORD 는 GM1,2 에만적용됩니다. FUNCTION IN/OUT변수타입 동작설명 DEC_BYTE BYTE DEC_WORD WORD 입출력테이터에맞추어 4가지펑션중하나를골라서사용합니 DEC_DWORD DWORD 다. DEC_LWORD LWORD 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 DEC_WORD 펑션이실행됩니다. (2) 입력변수로선언된 %MW100 = 16#0007(2#0000 0000 0000 0111) 이라면, 연산이실행된후에는 %MW20 = 16#0006(2#0000 0000 0000 0110) 이됩니다. 제 2 장응용펑션라이브러리부 2-35 LS 산전연수원

DECO_*** 지정된비트위치를 ON CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 INT EN IN DECO_*** ENO OUT ANY_BIT 입력 EN : 1 일때펑션실행 IN : Decoding 할입력데이터 출력 ENO : 에러없이실행되면 1 을출력 OUT : Decoding 한결과데이터 기능 EN 이 1 이면, IN 의값즉비트위치지정데이터에따라서출력의비트스트링데이터중지정된위치의비트만 1 로하여출력합니다. 출력에는 BYTE, WORD, DWORD, LWORD 타입의데이터가접속가능하며, LWORD 는 GM1,2 에만적용됩니다. FUNCTION OUT변수타입 동작설명 DECO_BYTE BYTE DECO_WORD WORD DECO_DWORD DWORD 출력테이터에맞추어 4가지펑션중하나를골라서사용합니다. DECO_LWORD LWORD 에러입력데이터가음수이거나, 비트위치지정데이터가출력타입의비트한계를넘으면 (DECO_WORD 의경우 16 이상 ), OUT 은 0 이되고 _ERR,_LER 플래그가셋됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 DECO_WORD 펑션이실행됩니다. (2) 입력변수로선언된 ON_POSITON(INT 타입 ) = 5 라면, 출력의 5 번비트만 ON 되므로, RELAYS(WORD 타입 ) = 2#0000 0000 0010 0000 이됩니다. 제 2 장응용펑션라이브러리부 2-36 LS 산전연수원

DEG_*** Radian 값을각도로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN DEG ENO OUT ANY_REAL 입력 EN IN : 1 일때펑션실행 : 라디안 (Radian) 값입력 출력 ENO : EN 값을그대로출력 OUT : 각도출력 기능라디안 (Radian) 값을입력받아서각도 (Degree) 로출력합니다. 펑션 입력타입 출력타입 동작설명 DEG_REAL REAL REAL 라디안 (Radian) 값을출력데이터타입에해당하는각도 DEG_LREAL LREAL LREAL 값으로변환합니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 되면, DEG_LREAL 펑션이실행됩니다. (2) 펑션의입력변수로선언된 RAD_VAL=1.0 일경우, 펑션의출력변수 DEG_VAL=5.7295779513078550e+001 가됩니다. 제 2 장응용펑션라이브러리부 2-37 LS 산전연수원

DIS_*** 데이터분산 (Distribution) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT INT_ARY ANY_BIT_ARY DIS_*** EN IN1 SEG IN2 ENO OUT 입력 EN : 1일때펑션실행 IN1 : 입력데이터 SEG : 데이터분산비트수지정어레이 출력 ENO : 에러없이실행되면 1 을출력 OUT : Dummy 출력 입출력 IN2 : 분산된 WORD 어레이출력 기능입력데이터를 SEG 에서지정된비트개수단위로구분하여 IN2 로출력합니다. 펑션 입력타입 동작설명 DIS_BYTE BYTE DIS_WORD WORD 각타입에해당하는 IN1 입력을 SEG 입력어레이값으로비트열을 DIS_DWORD DWORD 구분하여 IN1 과동일한데이터타입의 IN2 어레이로출력합니다. DIS_LWORD LWORD SEG[3] 4 SEG[2] 5 SEG[1] 4 SEG[0] 3 IN1 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 분산후 IN2[0] IN2[1] IN2[2] IN2[3] b15 b15 b15 b15 b0 B2 B1 B0 b0 B6 B5 B4 B3 b0 B11 B10 B9 B8 B7 b0 B15 B14 B13 B12 에러 SEG 로지정된값들의합이입력변수타입의비트수를초과할경우 _ERR/_LER 플래그가셋 (Set) 됩니다. 제 2 장응용펑션라이브러리부 2-38 LS 산전연수원

프로그램예 LD (1) 실행조건 (%M0) 이 On 하면, DIS_WORD 펑션이실행됩니다. (2) 입력변수로선언된 WORD_IN 의값이 16#3456 이고,SEG_ARY={3,4,5,4} 이면, 펑션이실행된후에 DIS_DATA 로출력되는값은 DIS_DATA[0]=16#0003 DIS_DATA[1]=16#000A DIS_DATA[2]=16#0008 DIS_DATA[3]=16#0003 가출력됩니다. 제 2 장응용펑션라이브러리부 2-39 LS 산전연수원

DWORD_LWORD 2 개의 DWORD 를 LWORD 로모음 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DWORD DWORD DWORD_LWORD EN LOW HIGH ENO OUT LWORD 입력 EN : 1일때펑션실행 LOW : 하위 DWORD 입력 HIGH : 상위 DWORD 입력 출력 ENO : EN 값을그대로출력 OUT : LWORD 출력 기능 2 개의 DWORD 를하나의 LWORD 로조합합니다. LOW: 하위더블워드입력, HIGH: 상위더블워드입력 프로그램예 LD (1) 실행조건 (%M11) 이 On 되면, DWORD_LWORD 펑션이실행됩니다. (2) 입력변수로선언된 INPUT1=16#1A2A3A4A5A6A7A8A 이고 INPUT2=16#8C7C7C6C5C4C3C2C1C 일때출력변수로선언된 RESULT=16#8C7C6C5C4C3C2C1C1A2A3A4A5A6A7A8A 가출력됩니다. 제 2 장응용펑션라이브러리부 2-40 LS 산전연수원

DWORD_WORD DWORD 를 2 개의 WORD 로나눔 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 DWORD WORD WORD EN IN LOW HIGH DWORD_WORD ENO OUT 입력 EN : 1 일때펑션실행 IN : DWORD 입력 출력 ENO : EN 값을그대로출력 OUT : Dummy 출력 입출력 LOW : 하위 WORD 출력 HIGH : 상위 WORD 출력 기능하나의 DWORD 를 2 개의 WORD 로분산합니다. LOW: 하위워드출력, HIGH: 상위워드출력 프로그램예 LD (1) 실행조건 (%M5) 이 On 되면, DWORD_WORD 펑션이실행됩니다. (2) 입력변수로선언된 INPUT=16#11223344AABBCCDD 일때, 입출력변수로선언된 WORD_OUT1=16#AABBCCDD WORD_OUT2=16#11223344 이저장됩니다. 제 2 장응용펑션라이브러리부 2-41 LS 산전연수원

ENCO_*** ON 된비트위치를숫자로출력 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT EN IN ENCO_*** ENO OUT INT 입력 EN : 1 일때펑션실행 IN : Encoding 할입력데이터 출력 ENO : 에러없이실행되면 1 을출력 OUT : Encoding 한결과데이터 기능 EN 이 1 이면, IN 의비트스트링데이터중, 1 로되어있는비트중최상위비트의위치를 OUT 으로출력합니다. 입력에는 B(BYTE), W(WORD), D(DWORD), L(LWORD) 타입의데이터가접속가능하며, L(LWORD) 는 GM1,2 에만적용됩니다. FUNCTION IN변수타입 동작설명 ENCO_BYTE BYTE ENCO_WORD WORD ENCO_DWORD DWORD 각입력변수타입에따라원하는 ENCO 펑션을골라서사용합니다. ENCO_LWORD LWORD 에러입력데이터중하나의비트도 1 이되어있지않은경우는 OUT 은 -1 이되고, _ERR,_LER 플래그가셋 (Set) 됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 ENCO_WORD 펑션이실행됩니다. (2)SWITCHS(WORD 타입 ) = 2#0000 1000 0000 0010 이라면, ON 되어있는 2 비트의위치, 즉 11 과 1 중상위위치인 11 을출력하여 ON_POSITON(INT 타입 ) 에정수값 11 이저장됩니다. 제 2 장응용펑션라이브러리부 2-42 LS 산전연수원

GET_CHAR 문자열로부터한문자 (CHAR) 추출 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 STRING INT EN IN N GET_CHAR ENO OUT BYTE 입력 EN : 1 일때펑션실행 IN : STRING 입력 N : STRING 내의위치지정 출력 ENO : EN 값을그대로출력 OUT : Byte 출력 기능 STRING 의지정된위치로부터하나의바이트를추출합니다. 에러 N 값이스트링의바이트개수를넘는경우 _ERR/_LER 플래그가셋 (set) 됩니다. 에러가발생했을경우 16#00이출력됩니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 되면, GET_CHAT 펑션이실행됩니다. (2) 입력변수로선언된 INPUT(STRING 타입 )= LG GLOFA PLC 일때이 String 의 4 번째문자를추출하게되면출력변수로선언된 OUTPUT 으로 16#47( G ) 가출력됩니다. 제 2 장응용펑션라이브러리부 2-43 LS 산전연수원

INC_*** IN 데이터를하나증가 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT EN IN INC_*** ENO OUT ANY_BIT 입력 EN : 1 일때펑션실행 IN : 증가시킬입력데이터 출력 ENO : EN 값이그대로출력 OUT : 증가시킨결과데이터 기능 EN 이 1 이면, IN 의비트스트링데이터를 1 만큼증가시켜서 OUT 으로출력합니다. 오버플로우가발생해도에러는발생하지않으며, 결과는 16#FFFF 인경우에 16#0000 가됩니다. 입력에는 BYTE, WORD, DWORD, LWORD 타입의데이터가접속가능하며, LWORD 는 GM1,2 에만적용됩니다. FUNCTION IN/OUT변수타입 동작설명 INC_BYTE BYTE INC_WORD WORD 입출력데이터에맞추어 4가지펑션중하나를골라서사용합니 INC_DWORD DWORD 다. INC_LWORD LWORD 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면 INC_WORD 펑션이실행됩니다. (2) 입력변수 %MW100 = 16#0007(2#0000 0000 0000 0111) 이라면, 연산이실행된후에는 %MW100 = 16#0008(2#0000 0000 0000 1000) 이됩니다. 제 2 장응용펑션라이브러리부 2-44 LS 산전연수원

LWORD_DWORD LWORD 를 2 개의 DWORD 로나눔 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 LWORD DWORD DWORD LWORD_DWORD EN ENO IN OUT LOW HIGH 입력 EN : 1 일때펑션실행 IN : LWORD 입력 출력 ENO : EN 값을그대로출력 OUT : Dummy 출력 입출력 LOW : 하위 DWORD 출력 HIGH : 상위 DWORD 출력 기능 하나의 LWORD 를 2개의 DWORD 로분산합니다. LOW: 하위더블워드출력, HIGH: 상위더블워드출력 프로그램예 LD (1) 실행조건 (%M10) 이 On 되면, LWORD_DWORD 펑션이실행됩니다. (2) 입력변수로선언된 INPUT=16#AAAABBBBCCCCDDDDABCDABCDABCDABCD 일때, 입출력변수로선언된 DWO_OUT1=16#ABCDABCDABCDABCD DWO_OUT2=16#AAAABBBBCCCCDDDD 가출력됩니다. 제 2 장응용펑션라이브러리부 2-45 LS 산전연수원

MCS Master Control CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 INT EN NUM MCS ENO OUT 입력 EN : 1 일때펑션실행 NUM : Nesting (0~15) 출력 ENO : MCS 명령이실행되면 1 을출력 OUT : Dummy( 항상 0 을출력합니다.) 기능 EN 이 On 이면, Master Control 이수행됩니다. 이경우, MCS 펑션에서 MCSCLR 펑션사이의프로그램은정상적으로수행됩니다. EN 이 Off 인경우, MCS 펑션에서 MCSCLR 펑션사이의프로그램은아래와같이수행됩니다. 명령어 명령어상태 Timer 현재값은 0이되고, 출력 (Q) 은 Off됩니다. Counter 출력 (Q) 은 Off되고, 현재값은현재상태를유지합니다. 코일 모두 Off됩니다. 역코일 모두 Off됩니다. 셋코일, 리셋코일 현재값을유지합니다. 펑션, 펑션블록 현재값을유지합니다. EN 이 Off 인경우에도 MCS 펑션에서 MCSCLR 펑션사이의명령들이위와같이수행되기때문에스캔타임이감소되지않습니다. Master Control 명령은 Nesting 해서사용될수있습니다. 즉, Master Control 영역이 Nesting(NUM) 에의해구분될수있습니다. Nesting(NUM) 은 0 에서 15 까지설정이가능하고, 만약 16 이상으로설정한경우 Master Control 이정상적으로동작하지않습니다. * MCSCLR 없이 MCS 명령을사용한경우,MCS 펑션에서프로그램의마지막행까지 Master Control 이수행되니주의바랍니다. 제 2 장응용펑션라이브러리부 2-46 LS 산전연수원

프로그램예 A 가 On 일때실행합니다. A 와 B 가 On 일때실행합니다. A 와 B 와 C 가 On 일때실행합니다. A 와 B 가 On 일때실행합니다. A 가 On 일때실행합니다. A,B,C 와상관없이실행합니다. 제 2 장응용펑션라이브러리부 2-47 LS 산전연수원

MCSCLR Master Control 해제명령 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 INT EN NUM MCSCLR ENO OUT 입력 EN : 1 일때펑션실행 NUM : Nesting (0~15) 출력 ENO : MCSCLR 명령이실행되면 1 을출력 OUT : MCSCLR 명령이실행되면 1 을출력 기능 Master Control 명령을해제합니다. 그리고, Master Control 영역의마지막을가리킵니다. MCSCLR 펑션동작시 Nesting(NUM) 의값보다같거나작은모든 MCS 명령을해제합니다. * MCSCLR 펑션앞에는접점을사용하지않습니다. 프로그램예 MCS 펑션의프로그램예를참조바랍니다. 제 2 장응용펑션라이브러리부 2-48 LS 산전연수원

MEQ_*** Masked Equal CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT ANY_BIT ANY_BIT EN IN1 LOW HIGH MEQ ENO OUT 입력 EN : 1일때펑션실행 IN1 : 입력1 IN2 : 입력2 MASK : masking할입력값 출력 ENO : EN 값을그대로출력 OUT : 동일하면 1 을출력 기능 입력된변수값들을 Masking한후두개의변수값이서로동일한지를비교합니다. 만약 8비트변수값을 2#11111100 으로 Masking 하면하위 2비트는입력값비교에서제외됩니다. 하나의변수값에서특정비트들이 ON되어있는지검사하는용도로도사용이가능합니다. 즉, 8비트변수비교시 IN1에비교하고자하는변수를입력하고 IN2에는 16#FF로설정한후 MASK에검색하고자하는비트조합을입력하면 (i.e. 2#00101100) 입력되는변수와비교하여동일한경우 ON이출력됩니다. 펑션입력변수타입동작설명 MEQ_BYTE MEQ_WORD MEQ_DWORD MEQ_LWORD BYTE WORD DWORD LWORD 입력값들을 Masking 한후이값들이서로동일한지를비교합니다. 제 2 장응용펑션라이브러리부 2-49 LS 산전연수원

프로그램예 LD (1) 실행조건 (%M0) 이 On 되면, MEQ_BYTE 펑션이실행됩니다. (2) 입력변수 INPUT1(BYTE 타입 )= 2#01011100 INPUT2(BYTE 타입 )= 2#01110101 MASK(BYTE 타입 ) = 2#11010110 일경우 Making 된후의입력변수들의비교할비트는 INPUT1 (BYTE 타입 ) = 2#01010100 INPUT2 (BYTE 타입 )= 2#01010100 과같이되어서로동일한값을가지므로출력접점 %Q1.3.20 이 On 됩니다 제 2 장응용펑션라이브러리부 2-50 LS 산전연수원

PUT_CHAR 문자열에한문자써넣기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 BYTE STRING INT PUT_CHAR EN ENO DATA OUT IN N BYTE 입력 EN : 1일때펑션실행 DATA : String에삽입할 Byte입력 IN : String 입력 N : String내의위치지정 출력 ENO : EN 값을그대로출력 OUT : String 출력 기능하나의바이트입력값을 STRING상의지정된위치 (N 숫자 ) 에덮어쓰기 (Overwrite) 합니다. 에러 N 값이스트링의바이트개수를넘는경우 _ERR/_LER 플래그가셋 (Set) 됩니다. 에러가발생했을경우 16#00 이출력됩니다. 프로그램예 LD (1) 실행조건 (%M1) 이 On하면 PUT_CHAR 펑션이실행됩니다. (2) 입력변수인 INPUT=16#41( A ) 이고 STRING_IN= TOKEN 일때입력변수 STRING_IN의 2번째위치에입력변수 INPUT이지닌값을덮어쓰기하게되면출력변수인 RESULT는 TAKEN 이됩니다. 제 2 장응용펑션라이브러리부 2-51 LS 산전연수원

RAD_*** 각도 (DEG) 를 Radian 값으로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_REAL EN IN RAD ENO OUT ANY_REAL 입력 EN IN : 1일때펑션실행 : 각도입력 출력 ENO : EN 값을그대로출력 OUT : 라디안값출력 기능 각도의단위를도 ( ) 에서라디안 (Radian) 값으로출력합니다. 각도가 360 를넘어서더라도정상적으로변환시켜줍니다.( 예를들어, 입력이 370 이면출력은 360 를뺀 10 에해당하는라디안값을출력합니다.) 펑션 입력타입 출력타입 동작설명 RAD_REAL REAL REAL 각도의단위를도 ( ) 에서출력데이터타입에해당하는 RAD_LREAL LREAL LREAL 라디안값으로변환합니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 하면, RAD_REAL 펑션이실행됩니다. (2) 펑션의입력변수로선언된 DEG_VAL=127( ) 일경우, 펑션의출력변수값은 RAD_VAL=2.21656823 이됩니다. 제 2 장응용펑션라이브러리부 2-52 LS 산전연수원

ROTATE_A_*** 지정된어레이원소의 ROTATE CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_ARY UINT UINT INT ROTATE_A_*** EN ENO SRC OUT STRT END N STRING 입력 EN : 1일때펑션실행 N : Rotate 시킬개수 STRT : 어레이블록중 Rotate할원소의시작위치 END : 어레이블록중 Rotate 할원소의종료위치 출력 ENO : 에러없이실행되면 1 을출력 OUT : Rotate 하여밀려나온데이터를출력 입출력 SRC : Rotate 조작이가해질어레이블록 기능 ROTATE_A_*** 펑션은어레이블록중지정된범위의원소들을지정된방향으로이동시킵니다. 동작의지정 : - 범위지정 : STRT와 END로이동할데이터원소의범위를지정합니다. - 이동방향및횟수 : STRT에서 END방향으로지정된횟수 (N) 만큼 Rotate됩니다. - 입력데이터지정 : Rotate하여비워지는위치를입력데이터 (IN) 로채웁니다. - 출력 : 데이터조작의결과는 SRC에지정된 ANY_ARY 에저장되며, END 위치에서 Rotate 동작으로 STRT로돌아들어가는데이터는 OUT으로출력됩니다. SRC SRC ARRAY(0) ARRAY(0) STRT : 1 ARRAY(1) ARRAY(1) ARRAY(2) ARRAY(2) ARRAY(3) ARRAY(3) ARRAY(4) ARRAY(4) ARRAY(5) ARRAY(5) ARRAY(6) ARRAY(6) END : 7 ARRAY(7) ARRAY(7) ARRAY(8) OUT ARRAY(8) ARRAY(9) N = 2 ARRAY(9) 변환전 변환후 제 2 장응용펑션라이브러리부 2-53 LS 산전연수원

펑션 입출력어레이타입 동작설명 ROTATE_A_ ROTATE_A_BYTE BYTE ROTATE_A_WORD WORD ROTATE_A_DWORD DWORD ROTATE_A_LWORD LWORD ROTATE_A_SINT SINT ROTATE_A_INT INT ROTATE_A_DINT DINT ROTATE_A_LINT LINT 각타입어레이의지정된범위의원소들을지정된방향 ROTATE_A_USINT USINT 으로 ROTATE 시킵니다. ROTATE_A_UINT UINT ROTATE_A_UDINT UDINT ROTATE_A_ULINT ULINT ROTATE_A_REAL REAL ROTATE_A_LREAL LREAL ROTATE_A_TIME TIME ROTATE_A_DATE DATE ROTATE_A_TOD TOD ROTATE_A_DT DT 에러 STRT 또는 END값이 SRC 어레이의원소개수범위를벗어나면 _ERR/_LER 플래그가셋 (Set) 됩니다. 에러발생시 SRC는변하지않고출력은각변수타입의초기화값 (i.e. INT=0, TIME=T#0S) 이출력됩니다. 프로그램예 LD (1) 입력조건 (%M2) 이 On 되면, ROTATE_A_BYTE 펑션이실행됩니다. (2) 입출력변수로선언된 SRC_ARY 의인덱스 8 의원소부터인덱스 2 의원소의방향으로 ROTATE 동작이 2 번일어납니다. (3) 출력값에는캐리출력에해당하는원소의값 16#44 가출력됩니다. 제 2 장응용펑션라이브러리부 2-54 LS 산전연수원

SRC_ARY SRC_ARY 16#11 16#11 16#22 16#22 END : 2 16#33 16#55 16#44 16#66 16#55 16#77 16#66 16#88 16#77 16#99 16#88 16#33 STRT : 8 16#99 16#44 16#AA 16#AA 변환전 OUT 44 N = 3 변환후 제 2 장응용펑션라이브러리부 2-55 LS 산전연수원

ROTATE_C_*** 지정된어레이원소의 ROTATE CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT UINT UINT UINT ROTATE_C_*** EN ENO SRC OUT STRT END N 입력 EN : 1일때펑션실행 STRT : SRC의비트열중회전할범위의시작 bit 위치 END : SRC의비트열중회전할범위의끝 bit 위치 N : Shift할비트수 출력 ENO : 에러없이수행되면 1 을출력 OUT : Carry 출력 입출력 SRC : 회전할변수 기능 SRC의비트열중지정된범위의원소들을지정된방향으로회전합니다. 동작의지정 : - 범위지정 : STRT와 END로이동할비트의범위를지정합니다. - 이동방향및횟수 : START 에서 END방향으로지정된횟수 (N) 만큼회전됩니다. - 출력 : 데이터조작의결과는 SRC 에지정된 ANY_BIT 에바뀌어저장되며, 회전동작으로 END위치에서 STRT로돌아들어가는비트데이터는 OUT으로도출력됩니다. END:12 STRT:0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 : 실행전 N=1 OUT B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 : 실행후 펑션 SRC변수타입 동작설명 ROTATE_C_BYTE BYTE ROTATE_C_WORD WORD 입력값의지정된범위에해당하는비트들을지정된횟수만큼 ROTATE_C_DWORD DWORD Rotate시킵니다. ROTATE_C_LWORD LWORD 에러 START 와 END 값이 SRC 변수타입의비트개수를넘는경우 _ERR/_LER 플래그가셋 (Set) 됩니다. SRC의값은변화가없습니다. 제 2 장응용펑션라이브러리부 2-56 LS 산전연수원

프로그램예 LD (1) 실행조건 (%M2) 이 On 되면, ROTATE_C_WORD 펑션이실행됩니다. (2)16#A5A5 값이 STRT(13) 와 END(3) 로지정된범위에서 STRT 부터 END 방향으로 2 번을회전합니다. (3)Rotate 된후의값이 SRC(16#896D) 로다시출력되고회전되면서 END 위치에서 STRT 로되돌아가는비트인 0 이 OUT 으로출력됩니다. STRT:13 END:3 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 : 실행전 N=2 OUT 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 : 실행후 제 2 장응용펑션라이브러리부 2-57 LS 산전연수원

RTC_SET 시간데이터쓰기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY REQ DATA RTC_SET DONE STAT USINT 입력 REQ : Rising Edge 시펑션블록실행 DATA : 입력할시간데이터 출력 DONE : RTC_SET 을정상적으로수행되면 1 을출력 STAT : 에러발생시에러코드출력 기능 REQ 변수의 Rising Edge 에서아래와같이 Setting한 RTC시간 (DATA) 을 PLC의 Clock Device에저장합 니다. 변수 내용 예 변수 내용 예 DATA[0] 년도 16#01 DATA[4] 분 16#30 DATA[1] 월 16#03 DATA[5] 초 16#45 DATA[2] 일 16#15 DATA[6] 요일 16#03 DATA[3] 시 16#18 DATA[7] 년대 16#20 * 위예는 2001년 3월 15일 ( 목 ) 18시 30분 45초인경우입니다. * 요일표시는월 : 0, 화 : 1, 수 : 2, 목 : 3, 금 : 4, 토 : 5, 일 : 6 으로합니다. 위 DATA 변수는반드시어레이 BYTE 변수로선언하고, 각각의데이터는 BCD값으로 Setting 합니다. 에러 CPU 가 RTC 를지원하지않는경우나, RTC 데이터가범위를벗어난경우출력 (DONE) 은 0 이 STAT 에아래표와같이에러코드를출력합니다. 에러코드내용 00 No error 01 RTC 모듈이없습니다. * GM6인경우 GM6-CPUB, GM6-CPUC 만 RTC를지원합니다. * GM7 인경우G7E-RTCA를장착하십시오. 02 부적절한 RTC 데이터입니다. 예 ) 14( 월 ) 32( 일 ) 25( 시간 ) * RTC 데이터를옳바르게설정하여주십시오. 프로그램예 RTC 데이터가 1999. 1. 17. 11:53:24, 일요일인경우의예입니다. (1) 설정스위치가 온 될때설정값으로 PLC 의 RTC 값이입력또는변경됩니다. 제 2 장응용펑션라이브러리부 2-58 LS 산전연수원

(2) 아래는변수 ( 설정값 ) 설정방법입니다. (3) 위와같이초기값으로주는방법외에설정값은펑션 MOVE 를사용하여각각의설정치를변수 ( 설정값 ) 로저장할수있습니다. 제 2 장응용펑션라이브러리부 2-59 LS 산전연수원

(4) RTC 값을읽을경우아래의플래그를사용합니다. 예 : 1998. 12. 22. 19:37:46, 화 키워드 Type 내용 설명 Data _RTC_TOD TOD 현재시각현재시각데이터 TOD#19:37:46 UINT 현재요일요일데이터 _RTC_WEEK *(0: 월, 1: 화, 2: 수, 3: 목, 4: 금, 1 5: 토, 6: 일 ) _INT_DATE DATE 현재날짜현재날짜데이터 (1984년1월1일 ~2083년 D#1998-12-22 12월31일 ) _RTC_ERR RTC 에러 RTC 데이터에러시 1 출력 0 _RTC_TIME[n] * n : 0 to 7 BCD 현재시각 RTC 현재시각의 BCD 데이터 _RTC _TIME[0]: 년, _RTC _TIME[1]: 월, _RTC _TIME[2]: 일, _RTC _TIME[3]: 시, _RTC _TIME[4]: 분, _RTC _TIME[5]: 초, _RTC _TIME[6]: 요일,_RTC _TIME[7]: 세기요일 ( 0: 월, 1: 화, 2: 수, 3: 목, 4: 금, 5: 토, 6: 일 ) _RTC _TIME[0]: 16#98 _RTC _TIME[1]: 16#12 _RTC _TIME[2]: 16#22 _RTC _TIME[3]: 16#19 _RTC _TIME[4]: 16#37 _RTC _TIME[5]: 16#46 _RTC _TIME[6]: 16#1 _RTC _TIME[7]: 16#19 제 2 장응용펑션라이브러리부 2-60 LS 산전연수원

SEG BCD 또는 HEX 값을 7 세그먼트디스플레이코드로변환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 WORD EN IN SEG ENO OUT DWORD 입력 EN : 1 일때펑션실행 IN : 7 세그먼트코드로변환할입력데이터 출력 ENO : EN 값이그대로출력 OUT : 7 세그먼트코드로변환된결과데이터 기능 EN이 1이면, IN의 BCD 또는 HEX(16진 ) 숫자를아래표와같이 7세그먼트디스플레이를위한코드로변환하여OUT으로출력합니다. BCD입력의경우 0000 ~ 9999까지의값이 4개의 7세그먼트에표시가능하며, HEX입력의경우 0000 ~ FFFF의값이 4개의 7세그먼트에표시가능합니다. 표시예 1) 4자리 BCD -> 4자리 7세그먼트코드 : SEG 펑션사용 2) 4자리 HEX -> 4자리 7세그먼트코드 : SEG 펑션사용 3) 정수 -> 4자리 BCD형의 7세그먼트코드 : INT_TO_BCD 펑션을거쳐서 SEG 펑션사용 4) 정수 -> 4자리 HEX형의 7세그먼트코드 : INT_TO_WORD 펑션을거쳐서 SEG 펑션사용 5) 7세그먼트의자릿수가 4자리를넘을때가 ) BCD, HEX는 4자리씩나누어 SEG 펑션을사용나 ) 정수 -> 8자리 BCD형 7세그먼트코드 : 정수를 10,000으로나누어몫과나머지를각각 INT_TO_BCD 펑션을거쳐서 SEG 로변환하여상위 4자리와하위 4자리의 7세그먼트코드를생성 프로그램예 LD 제 2 장응용펑션라이브러리부 2-61 LS 산전연수원

(1) 실행조건 (%M0) 이 On 하면 SEG 펑션이실행됩니다. (2) 입력변수로선언된 BCD_DATA(WORD 타입 ) = 16#1234 라면, 7 세그먼트디스플레이에 1234 가표시되는코드 2#00000110_01011011_01001111_01100110 이출력되어 SEG_PATTERN(DWORD 타입 ) 에저장됩니다. 입력 (IN1) : BCD_DATA(WORD) = 16#1234 출력 (OUT) : SEG_PATTERN(DWORD) = 16#065B4F66 7 세그먼트의구성 B0 상위하위 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 (SEG) 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 B5 B6 B1 B4 B3 B2 7 세그먼트코드변환표 입력 (BCD) 입력 (16진수) 정수값 출력 B7 B6 B5 B4 B3 B2 B1 B0 표시데이터 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 2 2 2 0 1 0 1 1 0 1 1 2 3 3 3 0 1 0 0 1 1 1 1 3 4 4 4 0 1 1 0 0 1 1 0 4 5 5 5 0 1 1 0 1 1 0 1 5 6 6 6 0 1 1 1 1 1 0 1 6 7 7 7 0 0 1 0 0 1 1 1 7 8 8 8 0 1 1 1 1 1 1 1 8 9 9 9 0 1 1 0 1 1 1 1 9 A 10 0 1 1 1 0 1 1 1 A B 11 0 1 1 1 1 1 0 0 B C 12 0 0 1 1 1 0 0 1 C D 13 0 1 0 1 1 1 1 0 D E 14 0 1 1 1 1 0 0 1 E F 15 0 1 1 1 0 0 0 1 F 제 2 장응용펑션라이브러리부 2-62 LS 산전연수원

SHIFT_A_*** 지정된어레이원소의 SHIFT CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY_ARY UINT UINT UINT SHIFT_A_*** EN ENO IN OUT SRC STRT END N ANY 입력 EN : 1일때펑션실행 IN : Shift된후비워진원소들의자리에입력될값 N : Shift 시킬개수 STRT: 어레이블록중 Shift할원소의시작위치 END : 어레이블록중 Shift할원소의종료위치 출력 ENO : 에러없이실행되면 1 을출력 OUT : Shift 하여밀려나온데이터를출력 입출력 SRC : Shift 조작이가해질어레이블록 기능 SHIFT_A_*** 펑션은어레이블록중지정된범위의원소들을지정된방향으로이동시킵니다. 동작의지정 : - 범위지정 : STRT와 END로이동할데이터원소의범위를지정합니다. - 이동방향및횟수 : STRT에서 END방향으로지정된횟수 (N) 만큼 Shift 됩니다. - 입력데이터지정 : Shift 하여비워지는위치를입력데이터 (IN) 로채웁니다. - 출력 : 데이터조작의결과는 SRC에지정된 ANY_ARY 에저장되며, END 위치에서 Shift 동작으로밀려나온데이터는 OUT으로출력됩니다. SRC SRC ARRAY(0) IN ARRAY(0) STRT : 1 ARRAY(1) ARRAY(1) ARRAY(2) ARRAY(2) ARRAY(3) ARRAY(3) ARRAY(4) ARRAY(4) ARRAY(5) ARRAY(5) ARRAY(6) ARRAY(6) END : 7 ARRAY(7) ARRAY(7) ARRAY(8) OUT ARRAY(8) ARRAY(9) 변환전 N = 2 ARRAY(9) 변환후 제 2 장응용펑션라이브러리부 2-63 LS 산전연수원

펑션 입출력어레이타입 동작설명 SHIFT_A_ SHIFT_A_BYTE BYTE SHIFT_A_WORD WORD SHIFT_A_DWORD DWORD SHIFT_A_LWORD LWORD SHIFT_A_SINT SINT SHIFT_A_INT INT SHIFT_A_DINT DINT SHIFT_A_LINT LINT 각타입어레이의지정된범위의원소들을지정된방향으 SHIFT_A_USINT USINT 로이동시킵니다. SHIFT_A_UINT UINT SHIFT_A_UDINT UDINT SHIFT_A_ULINT ULINT SHIFT_A_REAL REAL SHIFT_A_LREAL LREAL SHIFT_A_TIME TIME SHIFT_A_DATE DATE SHIFT_A_TOD TOD SHIFT_A_DT DT 에러 STRT 또는END값이 SRC 어레이의원소개수범위를벗어나면 _ERR/_LER 플래그가셋 (Set) 됩니다. 에러발생시 SRC는변하지않고출력은각변수타입의초기화값 (i.e. INT=0, TIME=T#0S) 이출력됩니다. 프로그램예 LD (1) 입력조건 (%M2) 이 On 되면, SHIFT_A_INT 펑션이실행됩니다. (2) 입출력변수로선언된 SRC_ARY 의인덱스 2 의원소부터인덱스 8 의원소까지 SHIFT 동작이일어납니다. (3) 지정된영역의원소들이 3 번 SHIFT 됩니다. (4)SHIFT 된후에비워지는원소들즉, 어레이인덱스 2 의원소부터 3 개의원소가입력값 555 로채워집니다. (5) 출력값에는캐리 (Carry) 출력에해당하는원소의값 1234 가출력됩니다. 제 2 장응용펑션라이브러리부 2-64 LS 산전연수원

SRC_ARY SRC_ARY 000 111 IN 555 000 111 STRT : 2 222 555 333 555 444 555 555 222 1234 333 777 444 END : 8 888 555 999 999 변환전 OUT 1234 N = 3 변환후 제 2 장응용펑션라이브러리부 2-65 LS 산전연수원

SHIFT_C_*** Shift with Carry CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT UINT UINT UINT SHIFT_C_*** EN ENO CY1 OUT SRC STRT END N ANY 입력 EN : 1일때펑션실행 CYI : Carry 입력 STRT : SRC의비트열중 Shift할시작 bit 위치 END : SRC의비트열중 Shift할끝 bit 위치 N : Shift할비트수 출력 ENO : 에러없이수행되면 1 을출력 OUT : Carry 출력 입출력 SRC : Shift 할변수 기능 SRC의비트열중지정된범위의원소들을지정된방향으로이동합니다. 동작의지정 : - 범위지정 : STRT와 END로이동할비트의범위를지정합니다. - 이동방향및횟수 : STRT에서 END방향으로지정된횟수 (N) 만큼 Shift됩니다. - 입력데이터지정 : Shift 하여비워지는위치를입력데이터 (CYI) 로채웁니다. - 출력 : 데이터조작의결과는 SRC 에지정된 ANY_BIT 에바뀌어저장되며, END위치에서 Shift 동작으로밀려나온비트데이터는 OUT으로출력됩니다. END:12 STRT:0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 : 실행전 N=1 CYI OUT B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 : 실행후 펑션 SRC 변수타입 동작설명 SHIFT_C_BYTE BYTE SHIFT_C_WORD WORD 입력값의지정된범위에해당하는비트들을지정된횟수만큼 SHIFT_C_DWORD DWORD Shift시킵니다. SHIFT_C_LWORD LWORD 제 2 장응용펑션라이브러리부 2-66 LS 산전연수원

에러 STRT 와 END 값이 SRC 변수타입의비트개수를넘는경우 _ERR/_LER 플래그가셋 (Set) 됩니다. SRC의값은변화가없습니다. 프로그램예 LD (1) 실행조건 (%M2) 이 On 되면, SHIFT_C_WORD 펑션이실행됩니다. (2)16#A5A5 값이 STRT 에서 END 방향으로 2 비트 shift 하고 shift 후에비워지는비트는 CYI 값인 1 로채워집니다. (3)Shift 된후의값은다시 SRC(16#969D) 로출력되고 2 비트 shift 되면서밀려나온값 0 이 OUT 으로출력됩니다. END:13 STRT:3 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 : 실행전 N=2 CYI 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 : 실행후 제 2 장응용펑션라이브러리부 2-67 LS 산전연수원

SWAP_*** 데이터의상위하위바꾸기 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT EN IN SWAP ENO OUT ANY_BIT 입력 EN IN : 1일때펑션실행 : 입력 출력 ENO : EN 값을그대로출력 OUT : Swap 된값 기능입력된변수를 2 개의크기로구분하여상위와하위를서로교환합니다. 펑션 입력타입 동작설명 SWAP_BYTE BYTE BYTE 의상하위니블 (Nibble) 을서로교환하여출력합니다. SWAP_WORD WORD WORD 의상하위 BYTE 를서로교환하여출력합니다. SWAP_DWORD DWORD DWORD 의상하위 WORD 를서로교환하여출력합니다. SWAP_LWORD LWORD LWORD 의상하위 DWORD 를서로교환하여출력합니다. 프로그램예 LD (1) 실행조건 (%M0) 이 On 되면, SWAP_BYTE 펑션이실행됩니다. (2) 펑션의입력변수 INPUT(BYTE 타입 )=16#5F 일경우, 펑션의출력변수 RESULT(BYTE 타입 )=16#F5 가됩니다. 제 2 장응용펑션라이브러리부 2-68 LS 산전연수원

UNI_*** 데이터결합 (Union) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY_BIT_ARY INT_ARY EN IN SEG UNI_*** ENO OUT ANY_BIT 입력 EN : 1일때펑션실행 IN : 입력데이터어레이 SEG : 데이터결합비트수지정어레이 출력 ENO : 에러없이실행되면 1 을출력 OUT : 결합된데이터출력 기능입력데이터어레이를 SEG 어레이에서지정한비트수별로하위비트부터지정된비트수만큼결합하여출력합니다. 펑션입력타입출력타입동작설명 UNI_BYTE BYTE BYTE 입력어레이를 SEG 가지정하는비트의개수만큼씩자른 UNI_WORD WORD WORD 후, 입력어레이타입과동일한하나의값으로묶어출력 UNI_DWORD DWORD DWORD 합니다. UNI_LWORD LWORD LWORD IN[0] b15 SEG[0]:3 b0 A2 A1 A0 IN[1] b15 SEG[1]:4 B3 B2 B1 b0 B0 IN[2] IN[3] b15 b15 SEG[2]:5 b0 C4 C3 C2 C1 C0 SEG[3]:4 b0 D3 D2 D1 D0 결합후 OUT b15 D3 D2 D1 D0 C4 C3 C2 C1 C0 B3 B2 B1 B0 A2 A1 A0 b0 SEG 로지정된값들의합이입력변수타입의비트수를초과할경우 _ERR/_LER 플래그가셋 (Set) 됩니다. IN 과 SEG 어레이의개수가서로다를경우, 0 이출력되고 _ERR/_LER 플래그가셋 (Set) 됩니다. 제 2 장응용펑션라이브러리부 2-69 LS 산전연수원

프로그램예 LD (1) 실행조건 (%M0) 이 On 하면, UNI_WORD 펑션이실행됩니다. (2) 입력변수로선언된 IN_ARY 와 SEG_ARY 의값이다음과같을경우 IN_ARY[0] IN_ARY[1] IN_ARY[2] IN_ARY[3] A 3 B 5 B 4 C 6 C 5 D 7 D 6 E 8 SEG_ARY[0] SEG_ARY[1] SEG_ARY[2] SEG_ARY[3] 3 4 7 2 펑션이실행된후에출력변수의 RESULT 의값은 2#00 1010111 0110 101 = 16#2BB5 로출력됩니다. 제 2 장응용펑션라이브러리부 2-70 LS 산전연수원

WORD_BYTE WORD 를 2 개의 BYTE 로나눔 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 WORD BYTE BYTE WORD_BYTE EN ENO IN OUT L0W HIGH 입력 EN : 1 일때펑션실행 IN : WORD 입력 출력 ENO : EN 값을그대로출력 OUT : Dummy 출력 입출력 LOW : 하위 BYTE 출력 HIGH : 상위 BYTE 출력 기능 하나의워드를 2개의바이트로분산합니다. LOW: 하위바이트출력, HIGH: 상위바이트출력 프로그램예 LD (1) 실행조건 ( %M3) 이 On 이면, WORD_BYTE 펑션이실행됩니다. (2) 입력변수로선언된 INPUT 값이 16#ABCD 일때, 입출력변수로선언된변수 BYTE_OUT1=16#CD BYTE_OUT2=16#AB 값이저장됩니다. 제 2 장응용펑션라이브러리부 2-71 LS 산전연수원

WORD_DWORD 2 개의 WORD 를 DWORD 로모음 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 WORD WORD WORD_DWORD EN ENO LOW OUT HIGH DWORD 입력 EN : 1 일때펑션실행 LOW : 하위 WORD 입력 HIGH : 상위 WORD 입력 출력 ENO : EN 값을그대로출력 OUT : DWORD 출력 기능 2 개의 WORD 를하나의 DWORD 로조합합니다. LOW: 하위워드입력, HIGH: 상위워드입력 프로그램예 LD (1) 실행조건 (%IX1.1.5) 이 On 되면, WORD_DWORD 펑션이실행됩니다. (2) 입력변수로선언된 INPUT1=16#10203040 이고 INPUT2=16#A0B0C0D0 일때, 출력변수로선언된 RESULT=16#A0B0C0D010203040 가됩니다. 제 2 장응용펑션라이브러리부 2-72 LS 산전연수원

XCHG_ *** 2 개의입력변수값을서로교환 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션설명 ANY ANY EN IN1 IN2 XCHG ENO OUT 입력 EN : 1일때펑션실행출력 ENO : EN값을그대로출력 OUT : Dummy 출력입출력 IN1 : 입출력 1 IN2 : 입출력 2 기능 입력1과입력2의데이터를교환합니다. 펑 션 입출력타입 동작설명 XCHG_ 두개의 입력값을서로교환합니다. XCHG_BYTE BYTE 두개의 BYTE입력값을서로교환합니다. XCHG_WORD WORD 두개의 WORD입력값을서로교환합니다. XCHG_DWORD DWORD 두개의 DWORD 입력값을서로교환합니다. XCHG_LWORD LWORD 두개의 LWORD 입력값을서로교환합니다. XCHG_SINT SINT 두개의 SINT입력값을서로교환합니다. XCHG_INT INT 두개의 INT입력값을서로교환합니다. XCHG_DINT DINT 두개의 DINT입력값을서로교환합니다. XCHG_LINT LINT 두개의 LINT입력값을서로교환합니다. XCHG_USINT USINT 두개의 USINT 입력값을서로교환합니다. XCHG_UINT UINT 두개의 UINT입력값을서로교환합니다. XCHG_UDINT UDINT 두개의 UDINT 입력값을서로교환합니다. XCHG_ULINT ULINT 두개의 ULINT 입력값을서로교환합니다. XCHG_REAL REAL 두개의 REAL입력값을서로교환합니다. XCHG_LREAL LREAL 두개의 LREAL 입력값을서로교환합니다. XCHG_TIME TIME 두개의 TIME입력값을서로교환합니다. XCHG_DATE DATE 두개의 DATE입력값을서로교환합니다. XCHG_TOD TOD 두개의 TOD입력값을서로교환합니다. XCHG_DT DT 두개의 DT입력값을서로교환합니다. XCHG_STRING STRING 두개의 STRING 입력값을서로교환합니다. 제 2 장응용펑션라이브러리부 2-73 LS 산전연수원

프로그램예 LD (1) 실행조건 (%M0) 이 On 되면, XCHG_ 펑션이실행됩니다. (2) 펑션의입력변수 INPUT1=0 이고 INPUT2=1 이면펑션이실행된후 2 개의입력값은서로바뀌어출력됩니다. 따라서, 펑션이실행된후 INPUT1=1 이고, INPUT2=0 이됩니다. 제 2 장응용펑션라이브러리부 2-74 LS 산전연수원

2.3 기본펑션블록라이브러리 CTD 감산카운터 ( 펑션블록 ) 제품명 GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 INT CD D PV CTD Q CV INT 입력 CD : 다운 _ 카운트 (Down_Count) 펄스입력 LD : 설정값입력 (Load) PV : 설정값 (Preset Value) 출력 Q : 카운트 _ 다운 (Count_Down) 출력 CV : 현재값 (Current Value) 기능 감산카운터펑션블록 CTD는다운카운터펄스입력 CD가 0에서 1이되면, 현재값 CV가이전값보다 1만큼감소하는카운터입니다. 단, CV는 INT의최소값인 -32768보다클때만감소하고, -32768이되면더이상감소하지않습니다. 설정값입력 LD가 1이되면현재값 CV에는설정값 PV값이로드됩니다.(CV=PV) 출력 Q는 CV가 0이하일때만 1이됩니다. 타임차트 LD( 설정값입력 ) CD( 다운 _ 카운터입력 ) PV 설정값 CV( 현재값 ) 0 최대계수값 (-32768) Q( 카운터 _ 다운출력 ) 프로그램예입력접점 %I0.1.14에 5번의펄스가들어오면, 출력접점 %00.3.0을 Set시키는프로그램 LD 제 2 장기본펑션블록라이브러리부 3-1 LS 산전연수원

(1)CTD 펑션블록의이름을등록합니다.(COUNT_D) (2)CD 에펄스입력이들어올접점 %I0.1.14 를입력합니다. (3)PV 를 CV 로로드시킬사용자플래그 _10N ( 첫스캔 On) 을입력합니다. (4)PV 값은 INT 범위 (-32768~32767) 내에서 5 를입력합니다. (5)CV 에는임의의출력변수 (COUNT_CV) 를설정하여입력합니다. (6)Q 에는임의의출력변수 (COUNT_Q) 를설정입력합니다. (7) 프로그램의작성이완료되면, 컴파일을실행하고, PLC 로쓰기를합니다. (8) 쓰기를완료하면모드전환 (Stop Run) 시킵니다. (9) 프로그램이 Run 되면 PV 값 5 가 CV (Count_CV) 로로드됩니다. (10) 입력펄스가입력접점 %I.0.1.14 에들어오면현재값 CV (COUNT_CV) 는 1 만큼줄어듭니다. (11) 입력접점에 5 번의펄스가들어오면현재값 CV 는 0 가되고, Q (COUNT_Q) 는 1 이됩니다. (12)Q (COUNT_Q) 가 1 이되면출력접점 %Q0.3.0 이 Set 됩니다. 제 2 장기본펑션블록라이브러리부 3-2 LS 산전연수원

CTU 가산카운터 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 INT CU R PV CTU Q CV INT 입력 출력 CU : 업 _ 카운트 (Up_Count) 펄스입력 R : 리셋입력 (Reset) PV : 설정값 (Preset Value) Q : 업 _ 카운트 (Up_ Count) 출력 CV : 현재값 (Current Value) 기능 가산카운터펑션블록 CTU 는업카운터펄스입력 CU 가 0 에서 1 이되면현재값 CV 가이전값보다 1 만큼증가하는카운터입니다. 단, CV 가 1NT 의최대값인 32767 미만일때만증가하고, 32767 이되면더이상증가하지않습니다. 리셋입력 R 이 1 이되면현재값 CV 는 0 으로클리어 ( Clear) 됩니다. 출력 Q 는 CV 가 PV 이상이될때만 1 이됩니다. PV 값은 CTU 펑션블록을수행시설정값을새롭게가져와연산합니다. 타임차트 R( 리셋입력 ) CU( 업 _ 카운터입력 ) CV( 현재값 ) 최대계수값 (32767) PV 설정값 Q( 업 _ 카운터출력 ) 프로그램예입력접점 %I0.1.15에 10번의펄스가들어오면, 출력접점 %00.3.1을 Set시키는프로그램 LD 제 2 장기본펑션블록라이브러리부 3-3 LS 산전연수원

(1)CTU 펑션블록의이름을등록합니다.(COUNT_D) (2)CU 에펄스입력이들어올입력접점 %I0.1.15 를입력합니다. (3)PV 에 10 을입력합니다. (4)CV 를초기화시키는 R 에는임의의입력접점을설정합니다.(%I0.1.5) (5)CV 에는임의의변수 (COUNT_CV) 를설정하여입력합니다. (6)Q 에는임의의출력변수 (COUNT_Q) 를설정입력합니다. (7) 프로그램의작성이완료되면, 컴파일을실행하고, PLC 로쓰기를합니다. (8) 쓰기를완료하면모드전환 (Stop Run) 시킵니다. (9) 입력펄스가입력접점 %I0.1.15 에들어오면현재값 CV (COUNT_CV) 는 1 만큼증가합니다. (10) 입력접점에 10 번의펄스가들어오면현재값 CV 는 10 이되고, 설정값과같게되므로출력 Q(COUNT_Q) 가 1 이됩니다. (11)Q(COUNT_Q) 가 1 이되면출력접점 %Q0.3.0 이 Set 됩니다. 제 2 장기본펑션블록라이브러리부 3-4 LS 산전연수원

CTUD 가감산카운터 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 INT CU CD R LD PV CTUD QU QD CV INT 입력 CU : 업 _ 카운트 (Up_Count) 펄스입력 CD : 다운 _ 카운트 (Down_Count) 펄스입력 R : 리셋입력 (Reset) LD : 설정값입력 (Load) PV : 설정값 (Preset Value) 출력 QU : 카운트 _ 업 (Count_UP) 출력 QD : 카운트 _ 다운 (Count_Down) 출력 CV : 현재값 (Current Value) 기능 가감산카운터펑션블록 CTUD는업카운터펄스입력 CU가 0에서 1이되면현재값 CV가이전값보다 1만큼증가하고, 다운카운터펄스입력 CD가 0에서 1이되면현재값 CV가이전값보다 1만큼감소하는카운터입니다. 단, CV가 1NT의최소값인 -32768과최대값인 32767 사이의값을가지며최대, 최소값에이르면각각더이상증가, 감소하지않습니다. 설정값입력 LD가 1이되면현재값 CV에는설정값 PV값이로드됩니다. ( CV=PV) 설정값입력 R이 1이되면현재값 CV는 0으로클리어 (Clear) 됩니다. ( CV=0) 출력 QV는 CV가 PV보다크면 1이되고, QD는 CV가 0이하일때 1이됩니다. 각입력신호에대해서 R > LD > CU > CD순으로동작을수행하며, 신호의중복발생시우선순위가높은동작하나만수행합니다. 타임차트 LD( 설정값입력 ) R( 리셋입력 ) CU ( 업 _ 카운트입력 ) CD ( 다운 _ 카운트입력 ) CV( 현재값 ) 0 PV 설정값 Q( 업 _ 카운터출력 ) QD( 카운트 _ 다운출력 ) 제 2 장기본펑션블록라이브러리부 3-5 LS 산전연수원

프로그램예 LD 공정라인에서중간적재완충부에임시저장될수있는용량 STACK_MAX 의값이 100 이고적재부에자재가투입될때마다 IN 신호가 1 이되고, 적재부에서자재가빠져나갈때마다 OUT 신호가 1 이되도록되어있다면, 운전을시작하여선공정에서완충부에투입되는속도가다음공정을위해빠져나가는속도보다빠를때, 중간적재부에 100 개가쌓이면카운터의상한출력 QU 가 1 이되어 STACK_FULL 에 1 이출력됩니다. 반대로중간적재부에남아있는것이없으면하한출력 QD 가 1 이되어 STACK_EMPTY 에 1 이출력됩니다. STORED_NUMBER 에는현재적재부에남아있는자재의숫자가표시됩니다. %M1 %M0 %I0.1.0 %I1.1.0 STACK_MAX(100 개 ) STORED_NUMBER 0 STACK_FULL STACK_EMPTY 제 2 장기본펑션블록라이브러리부 3-6 LS 산전연수원

F_TRIG 하강에지검출 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 F_TRIG 입력 CLK : 입력신호 CLK Q 출력 Q : 하강에지검출결과 기능 F_TRIG 는 CLK 에연결된입력의상태가 1 에서 0 으로변할때출력 Q 를 1 로만들고다음번수행에서 0 으로만듭니다. 그이외의경우, 출력 Q 는항상 0 이됩니다. 타임차트 CLK Q 프로그램예 (1 스캔또는 F_TRIG 수행간격 ) LD 입력변수 %I0.0.0 의상태를감시하여 1 에서 0 으로변할때에출력변수 FALL_DETECT 에 1 을출력하고, 다음에 INS_FT 수행시 FALL_DETECT 에 0 을출력합니다. 제 2 장기본펑션블록라이브러리부 3-7 LS 산전연수원

RS Reset 우선 Bistable( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 S R1 RS Q1 입력 출력 R1 : Reset 조건 S : Set 조건 Q1 : 연산결과 기능 R1 & Q1 S Q1 1 R1이 1이면, S와관계없이출력 Q1은항상 0이됩니다. 출력 Q1은이전상태를유지하며, R1이 0이고 S가 1일때 1 이됩니다. Q1의초기상태는 0입니다. 타임차트 R1 S Q1 프로그램예 LD RESET1 을 Reset 조건으로, SET1 을 Set 조건으로하여연산결과를 RESULT 에출력합니다. 동작조건은위의타임차트에서 R1 을 RESET1, S 를 SET1 으로, Q1 을 RESULT 로대치하여보십시오. (1) 입력변수로선언된 SET1 과 RESET1 이동시에 On 되면출력변수 RESULT 는 1 이됩니다. (2) 입력변수로선언된 RESET1 이 On 되면 RESULT 로선언된출력변수값은 0 이됩니다. (3) 입력변수로선언된 SET1 과 RESET1 이동시에 On 되면출력변수 RESULT 는 0 가됩니다. 제 2 장기본펑션블록라이브러리부 3-8 LS 산전연수원

R_TRIG 상승에지검출 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 CLK R_TRIG Q 입력 출력 CLK : 입력신호 Q : 상승에지검출결과 기능 R_TRIG 는 CLK 에연결된입력의상태가 0 에서 1 로변할때출력 Q 를 1 로만들고다음번수행에서 0 으로만듭니다. 그이외의경우, 출력 Q 는항상 0 이됩니다. 타임차트 CLK Q (1 스캔또는 F_TRIG 수행간격 ) 프로그램예 LD (1) 입력변수로선언된 IN_SIGNAL 의상태를감시하여 0 에서 1 로변할때, RISE_DETECT 에 1 을출력하고다음에 INS_RT 수행시 RISE_DETECT 에 0 을출력합니다. 제 2 장기본펑션블록라이브러리부 3-9 LS 산전연수원

SEMA 시스템자원배분 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 SEMA CLAIM RELEASE BUSY 입력 CLAIM : 자원독점요구신호 RELEASE : 해제신호출력 BUSY : 요구자원의취득불가신호 ( 대기 ) 기능이펑션블록은시스템자원에대한독점적제어권을취득하는데사용합니다. SEMA 펑션을수행했을때 (CLAIM = 1 또는 0, RELEASE = 0 값으로 ) 타프로그램에서자원을사용중이면 BUSY 가 1 이됩니다. 자원의제어권을획득하고자할때에는 CLAIM = 1, RELEASE = 0 의값으로 SEMA 를계속기동하여 BUSY 가 0 이될때를기다립니다. BUSY 가 0 이되면해당자원에대하여제어를하고제어동작이끝난후에는 CLAIM = 0, RELEASE = 1 의값으로 SEMA 를한번수행하여제어권을양도합니다. ( 이때 CLAIM = 0, RELEASE = 1 의값으로 SEMA 를수행하는제어양도동작은반드시현재제어권을가지고있는프로그램에서만수행해야합니다.) SEMA 의인스턴스는자원을요구하는프로그램에서공통으로액세스할수있도록글로벌영역에설정하여야합니다. 동일한자원을요구하는각각의프로그램은우선순위상동일한우선순위로지정되어있어야합니다. GM1 멀티 CPU 모듈간에는사용할수없습니다. SEMA 펑션블록의내부수행구조 VAR X : : = 0 ; END_VAR BUSY : = X ; IF CLAIM THEN X : = 1 ; ELSIF RELEASE THEN BUSY : = 0; X : = 0 ; END_IF 타임차트프로그램블록 A 와프로그램블록 B 에서동일한자원에대한액세스권을주고받는경우, CLAIM A B A B RELEASE A B A BUSY 제어권 A 사용 B 사용 A 사용 B 사용 제 2 장기본펑션블록라이브러리부 3-10 LS 산전연수원

프로그램예 LD PLC시스템에부착되어있는프린터로서로다른프로그램블록에서출력을내고자할때인스턴스 PRINTER 를글로벌로선언하고각각의프로그램에서 PRINTER 로명명된 SEMA펑션블록을이용하여프린터의제어권을쉽게제어할수있습니다. 프린터에출력이필요한시점에서 START는 1, END는 0인상태에서 PRINTER SEMA를수행하여프린터의제어권을요구했을때다른프로그램블록에서이미프린터를사용하고있다면 BUSY신호가 1이되어 NOT_AVAIL에 1이출력됩니다. 만약다른블록에서프린터를사용하고있지않다면 BUSY는 0인상태가되어그것을신호로프린터에출력을내는프로그램을기동시키면됩니다. 프린트동작이모두끝난후에는 START는 0, END는 1인상태로 PRINTER SEMA를실행하여타부분에서프린터의제어권을가져갈수있도록해제하여주어야합니다. VAR_EXTERNAL PRINTER:SEMA END_VAR S1 N CLAIM_PT S1 T1 CLAIM_PT; 프린터제어권요구 CAL SEMA PRINTER CLAIM:= 1 RELEASE:= 0 PT_AVAIL; 프린터제어권획득체크 T1 PT_AVAIL LDN ST PRINTER.BUSY TRANS S2 PRINTING; 프린터출력 S2 N PRINTING T2 PRT_END S3 P REL_PRT T3 RE_PRT T2 S3 T3 프린터제어프로그램프린터완료시 PRINT_DONE:=1 PRT_END; 프린터완료체크 LD ST PRINTER_DONE TRANS REL_PRT; 프린터제어권양도 CAL SEMA PRINTER CLAIM:= 0 RELEASE:= 1 RE_PRT; 프린터재요구 LD ST PRT_REQ TRANS 제 2 장기본펑션블록라이브러리부 3-11 LS 산전연수원

제 2 장기본펑션블록라이브러리부 3-12 LS 산전연수원

SR Set 우선 Bistable ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 S1 R SR Q1 입력 S1 : Set 조건 R : Reset 조건 출력 Q1 : 연산결과 기능 S1 1 Q1 R Q1 & S1이 1이되면, R과관계없이출력 Q1은항상 1이됩니다. 출력 Q1은이전상태를유지하며, S1이 0이고 R이 1 일때 0이됩니다. Q1의초기상태는 0입니다. 타임차트 S1 R Q1 프로그램예 LD (1) 입력변수로선언된 SET1 이 On 되면, 출력변수로선언된 RESULT 같이 1 이됩니다. (2) 출력변수로선언된 RESULT 값이 0 이되도록하려면, 입력변수로선언된 SET1 이 Off 되고, RESELT1 이 On 되어야합니다. 제 2 장기본펑션블록라이브러리부 3-13 LS 산전연수원

TOF OFF 딜레이타이머 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TOF IN Q TIME PT ET TIME 입력 출력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) Q : 타이머출력 ET : 경과시간 (Elapsed Time) 기능 IN 이 1 이되면, Q 가 1 이되고, IN 이 0 이된후부터 PT 에의해서지정된설정시간이경과한후 Q 가 0 이됩니다. IN 이 0 이된후경과시간이 ET 로출력됩니다. 만일경과시간 ET 가설정시간에도달하기전에 IN 이 1 이되면, 경과시간은다시 0 으로됩니다. 타임차트 IN Q PT 설정시간 PT ET 프로그램예 LD INS_TOF TOF T_OFF IN Q TIMER_OK T#10S PT ET ET_TIME 제 2 장기본펑션블록라이브러리부 3-14 LS 산전연수원

T_OFF TIMER_OK 10s 설정시간 10s ET_TIME 입력변수로설정된 T_OFF 가 1 이되면, 출력변수 TIMER_OK 에 1 이출력되고 T_OFF 가 0 이된후 10 초후에 TIMER_OK 가 0 이됩니다. T_OFF 가 0 이된후 10 초이내에다시 1 이되면타이머는다시초기상태가됩니다. 타이머의시간측정값은 ET_TIME 로출력됩니다. 제 2 장기본펑션블록라이브러리부 3-15 LS 산전연수원

TON ON 딜레이타이머 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TON IN Q TIME PT ET TIME 입력 출력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) Q : 타이머출력 ET : 경과시간 (Elapsed Time) 기능 IN이 1이된후경과시간이 ET로출력됩니다. 만일경과시간 ET가설정시간에도달하기전에 IN이 0이되면, 경과시간은 0으로됩니다. Q가 1이된후 IN이 0이되면, Q는 0이됩니다. 타임차트 IN PT Q 설정시간 PT ET 프로그램예 LD INS_TON TON T_ON IN Q TIMER_OK T#10S PT ET ET_TIME 제 2 장기본펑션블록라이브러리부 3-16 LS 산전연수원

TON 10s TIMER_OK 설정시간 10s ET_TIME (1) 입력변수 T_ON 이 1 이된후 10 초가경과한후출력변수 TIMER_OK 가 1 이됩니다. (2) 입력변수 T_ON 이 1 이된후경과시간이출력변수 ET_TIME 로출력됩니다. (3) 만일경과시간 ET_TIME 이설정시간 10 초에도달하기전에 T_ON 이 0 이되면, 경과시간 ET_TIME 은 0 으로됩니다. (4)TIMER_OK 가 1 이된후 T_ON 이 0 이되면, TIMER_OK 는 0 이되고경과시간 ET_TIME 도 0 으로됩니다. 제 2 장기본펑션블록라이브러리부 3-17 LS 산전연수원

TP 펄스타이머 ( 펑션블록 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TP IN Q TIME PT ET TIME 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) 출력 Q : 타이머출력 ET : 경과시간 (Elapsed Time) 기능 IN이 1이되면 PT에의해서지정된설정시간동안만 Q가 1이되고, ET가 PT에도달하면자동으로 0이됩니다. 경과시간 ET는 IN이 1이되었을때부터증가하며 PT에이르면값을유지하다가 IN이 0이될때 0의값이됩니다. ET가증가할동안은 IN이 0이되거나재차 1이되어도영향이없습니다. 타임차트 IN Q 설정시간 PT PT ET 프로그램예 LD INS_TP TP T_TP IN Q TIMER_OK T#10S PT ET ET_TIME 제 2 장기본펑션블록라이브러리부 3-18 LS 산전연수원

T_TP TIMER_OK 설정시간 10s 10s ET_TIME (1) 입력변수 T_TP 가 0 에서 1 이된후 10 초동안 TIMER_OK 는 1 이됩니다. 일단타이머가가동된후에는 10 초동안 T_TP 신호의변화는무시됩니다. (2) ET_TIME 값은증가후 T#10S 에서멈춥니다. 그리고 T_TP 가 0 이될때 0 으로됩니다. 제 2 장기본펑션블록라이브러리부 3-19 LS 산전연수원

2.4 응용펑션블록라이브러리 CTR Ring 카운터 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 INT CD PV RST CTR Q CV INT 입력 CD : 링카운트 (Ring Count) 펄스입력 PV : 설정값 (Preset Value) RST : 리셋입력 (Reset) 출력 Q : 링카운트 (Ring Count) 출력 CV : 현재값 (Current Value) 기능 링카운터 CTR 펑션블록은펄스입력 CD 가 0 에서 1 이될때마다현재값 CV 를 +1 하고현재값 CV 가설정값 PV 에도달한후 CD 가다시 0 에서 1 로되면현재값은 1 로됩니다. 현재값이설정값에도달하면출력은 1 이됩니다. 현재치가설정치미만이거나 Reset 조건이 1 이되면출력은 0 이됩니다. 타임차트 R( 리셋입력 ) CD( 펄스입력 ) PV( 설정값 ) CV( 현재값 ) 0 Q( 카운터 _ 다운출력 ) 제 2 장응용펑션블록라이브러리부 4-1 LS 산전연수원

프로그램예입력접점 %I1.1.0 에 10 번의펄스가들어올때마다, 출력접점 %Q1.3.1 을 ON 시키는프로그램 LD (1)CTR 펑션블록의이름을등록합니다 (INS_CTR) (2)CD 에펄스입력이들어올입력접점 %I1.1.0 을입력합니다. (3)PV 에 10 을입력합니다. (4)CV 를초기화시키는 RST 에는임의의입력접점을설정합니다.(%I1.1.10) (5)CV 에는임의의변수 (COUNT_NUM) 를설정하여입력합니다. (6)Q 에는임의의출력변수 (COUNT_Q) 를설정입력합니다. (7) 프로그램의작성이완료되면, 컴파일을실행하고, PLC 로쓰기를합니다. (8) 쓰기를완료하면모드전환 (Stop Run) 시킵니다. (9) 입력펄스가입력접점 %I1.1.0 에들어오면현재값 CV(COUNT_NUM) 은 1 만큼증가합니다. (10) 입력접점에 10 번의펄스가들어오면현재값 CV 는 10 이되고, 설정값과같게되므로출력 Q(COUNT_Q) 가 1 이됩니다. (11)Q(COUNT_Q) 가 1 이되면출력접점 %Q1.3.0 은 ON 됩니다. (12) 다시한번의입력펄스가입력접점 %1.1.0 에들어오면 Q(COUNT_Q) 는 0 이되고출력접점인 %Q1.3.0 은 OFF 됩니다. 제 2 장응용펑션블록라이브러리부 4-2 LS 산전연수원

DUTY 스캔지정 On/Off CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 INT INT REQ SON SOFF DUTY ENO OUT 입력 REQ : 펑션블록실행요구 SON : On될 Scan 수 SOFF : Off될 Scan 수 출력 DONE : REQ 가 On 이고 SON,SOFF 두입력변수가 0 보다작지않으면 1 을출력 OUT : On Scan Time 동안 1 을출력 기능 DUTY FB 는 REQ 가 ON 된시점부터 SON Scan 동안 On, SOFF Scan 동안 Off 하는펄스를발생시킵니다. SON = 0 이면출력은항상 OFF 가됩니다. SON > 0, SOFF = 0 이면출력은항상 ON 이됩니다. REQ 가 OFF 면출력은 OFF 됩니다. SON < 0 이거나 SOFF < 0 이면, DONE 은 OFF 되고 OUT = 0 이됩니다. 타임차트 REQ Timing Pulse SON Scan SOFF Scan OUT 제 2 장응용펑션블록라이브러리부 4-3 LS 산전연수원

프로그램예입력접점 %I1.1.0 이 SET 되어있으면, 3 번의스캔타임동안출력접점 %Q1.3.0 을 ON 시키고, 4 번의스캔타임동안출력접점 %Q1.3.0 을 OFF 시키는프로그램 LD (1)DUTY 펑션블록의이름을등록합니다 (DUTY_C) (2)REQ 에펑션블록을실행시킬입력접점 %I1.1.0 을입력합니다. (3)SON 에 3 을입력합니다. (4)SOFF 에 4 를입력합니다. (5)OUT 에출력접점 %Q1.3.0 을입력합니다. (6) 프로그램의작성이완료되면, 컴파일을실행하고 PLC 로쓰기를수행합니다. (7) 쓰기를완료하면모드전환 (Stop Run) 시킵니다. (8) 프로그램이실행되면 3 번의스캔타임동안출력접점 %Q1.3.0 이 ON 되고, 4 번의스캔타임동안에는출력접점 %Q1.3.0 이 OFF 되는동작을반복합니다. 제 2 장응용펑션블록라이브러리부 4-4 LS 산전연수원

FIFO_*** FIFO 스택에값을 Load/Unload ( 선입선출 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 ANY ANY_ARY REQ IN FIFO LOAD UNLD RST FIFO DONE OUT PNT FULL EMTY ANY INT 입력 REQ : 펑션블록실행요구 IN : FIFO 스택에저장할변수또는상수값 LOAD : ON이면입력모드 UNLD : ON이면출력모드 RST : POINTER VALUE 리셋 출력 DONE : 최초동작후 1 을유지 OUT : 출력모드일경우 FIFO 스택으로부터나온값을출력 PNT : FIFO 스택에입력된값에대한 Pointer FULL : FIFO 스택이가득차면 1 을출력 EMTY : FIFO 스택에아무런값도저장되어있지않으면 1 을출력 입출력 FIFO : FIFO 스택으로사용되는어레이 기능 FIFO 펑션블록은 IN값을 FIFO에 Load 또는 FIFO로부터값을 Unload합니다. 입력모드지정과출력모드지정이동시에 ON되면입출력을동시에수행합니다. FIFO로부터값을 Unload 하면스택의최하위원소가출력되고, 나머지값들은 Shift되며, PNT값이하나줄고, PNT가위치한곳은 0으로클리어 (clear) 됩니다. RST가입력되면 PNT는 0으로초기화되고, EMTY 플래그가 ON되며, FIFO 스택의모든값은 0으로클리어 (clear) 됩니다. 스택의개수는입출력변수 FIFO에지령되는입력시어레이의개수가됩니다. 정전시또는전원 Off시에도입력된값들을유지하기위해서는 FIFO 어레이변수와 FIFO 펑션블록인스턴스를모두 RETAIN 으로설정하여야합니다. 리셋동작은 REQ 요구가없어도동작이가능합니다. PNT는다음번 Load 동작시 IN값이입력될위치를나타냅니다. 또는 Load되어있는전체개수를나타낸다고볼수있습니다. 입력모드일경우 OUT 출력은 0이됩니다. 제 2 장응용펑션블록라이브러리부 4-5 LS 산전연수원

펑션 FIFO 변수타입 동작설명 FIFO_Q 타입 DATA에대한 FIFO동작을수행합니다. FIFO_B BYTE BYTE 타입 DATA에대한 FIFO동작을수행합니다. FIFO_W WORD WORD 타입 DATA에대한 FIFO동작을수행합니다. FIFO_DW DWORD DWORD 타입 DATA에대한 FIFO동작을수행합니다. FIFO_LW LWORD LWORD 타입 DATA에대한 FIFO동작을수행합니다. FIFO_SI SINT SINT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_I INT INT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_DI DINT DINT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_LI LINT LINT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_USI USINT USINT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_UI UINT UINT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_UDI UDINT UDINT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_ULI ULINT ULINT 타입 DATA에대한 FIFO동작을수행합니다. FIFO_R REAL REAL 타입 DATA에대한 FIFO동작을수행합니다. FIFO_LR LREAL LREAL 타입 DATA에대한 FIFO동작을수행합니다. FIFO_TM TIME TIME 타입 DATA에대한 FIFO동작을수행합니다. FIFO_DAT DATE DATE 타입 DATA에대한 FIFO동작을수행합니다. FIFO_TOD TOD TOD 타입 DATA에대한 FIFO동작을수행합니다. FIFO_DT DT DT 타입 DATA에대한 FIFO동작을수행합니다. FIFO LOAD 동작시 FIFO [4] PNT:4 [4] PNT:3 [3] [3] FIFO[3] IN FIFO[3] [2] [1] FIFO[2] FIFO[1] [2] [1] FIFO[2] FIFO[1] [0] FIFO[0] [0] FIFO[0] 동작전 동작후 FIFO UNLOAD 동작시 FIFO PNT:4 [4] [4] [3] [2] FIFO[3] FIFO[2] PNT:3 [3] [2] FIFO[3] OUT FIFO[0] [1] FIFO[1] [1] FIFO[2] [0] FIFO[0] [0] FIFO[1] 동작전 동작후 제 2 장응용펑션블록라이브러리부 4-6 LS 산전연수원

프로그램예 LD FIFO_*** 펑션블록은위의그림과같이 2 가지방법으로사용이가능합니다. 위에서예를든 2 가지방법은동일한동작을수행합니다. 왼쪽의예제는하나의펑션블록만을사용하여입력과출력을동시에수행할수있도록한프로그램이고, 오른쪽의예제는입력동작을위한펑션블록과출력동작을위한펑션블록을따로작성하여입출력동작을다른위치에서동작하도록작성한프로그램입니다. 단이때주의할점은인스턴스이름이같도록설정해야하는점입니다. (1) 입력조건 (%I1.1.0, %I1.1.1, %1.1.1.15) 이성립되면 FIFO_INT 가실행됩니다. (2) 입력접점 %I1.1.0 이 On 되면 Load 동작을수행합니다. 5555 가 FIFO 스택에입력되고 PNT_INDEX 가 1 증가합니다. (3) 입력접점 %I1.1.1 이 On 되면 Unload 동작을수행합니다. FIFO 스택으로부터 1111 이출력되고 PNT_INDEX 가 1 감소합니다. (4) 입력접점 %I1.1.15 가 On 되면 Reset 동작을수행합니다. FIFO 스택의모든값이 0 으로클리어 (Clear) 되고, PNT_INDEX 가 0 으로초기화되며, EMTY_FLAG 가 On 됩니다. 제 2 장응용펑션블록라이브러리부 4-7 LS 산전연수원

LOAD 동작시 (%I1.1.0 이 On 되면 ) FIFO FIFO IN= 5555 [4] [3] [2] 0 4444 3333 [4] [3] [2] 5555 4444 3333 [1] 2222 [1] 2222 [0] 1111 [0] 1111 PNT=4 PNT=5 UNLOAD 동작시 (%I1.1.1 이 On 되면 ) FIFO FIFO [4] [3] [2] [1] [0] 5555 [4] 0 4444 3333 2222 1111 PNT=5 [3] [2] [1] [0] 5555 4444 3333 2222 PNT=4 OUT= 1111 RESET 동작시 (%I1.1.15 가 On 되면 ) FIFO FIFO [4] 0 [4] 0 [3] 5555 [3] 0 [2] 4444 [2] 0 [1] 3333 [1] 0 [0] 2222 [0] 0 PNT=4 PNT=0 제 2 장응용펑션블록라이브러리부 4-8 LS 산전연수원

LIFO_*** LIFO 스택에값을 Load/Unload ( 후입선출 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 ANY ANY_ARY REQ IN LIFO LOAD UNLD RST LIFO DONE OUT PNT FULL EMTY ANY INT 입력 REQ : 펑션블록실행요구 IN : LIFO 스택에저장할변수또는상수값 LOAD : ON이면입력모드 UNLD : ON이면출력모드 RST : POINTER VALUE 리셋 출력 DONE : 최초동작후 1 을유지 OUT : 출력모드일경우 LIFO 스택으로부터나온값을출력 PNT : LIFO 스택에입력된값에대한 Pointer FULL : LIFO 스택이가득차면 1 을출력 EMTY : LIFO 스택에아무런값도저장되어있지않으면 1 을출력 입출력 LIFO : LIFO 스택으로사용되는어레이 기능 LIFO 펑션블록은 IN 값을 LIFO 에 Load 또는 LIFO 로부터값을 Unload 합니다. 입력모드지정과출력모드지정이동시에 ON 되면입력된값이바로출력됩니다. LIFO 로부터 Unload 동작이수행되면 Unload 된값은출력된후스택으로부터삭제되고 0 으로초기화됩니다. RST 가입력되면 PNT 는 0 으로초기화되고, EMTY 플래그가 On 되며, LIFO 스택의모근값은 0 으로클리어 (clear) 됩니다. 스택의개수는 LIFO 에지정되는어레이의개수가됩니다. 정전시또는전원 Off 시에도입력된값들을유지하기위해서는 LIFO 어레이변수와 LIFO 펑션블록 Instance 를모두 RETAIN 으로설정하여야합니다. 리셋동작은 REQ 요구가없어도동작이가능합니다. PNT 는다음번 Load 동작시 IN 값이입력될위치를나타냅니다. 또는 Load 되어있는전체개수를나타낸다고볼수있습니다. 입력모드일경우 OUT 출력은 0 이됩니다. Load 및 Unload 신호가동시에입력되면 IN 값이그대로 OUT 으로출력됩니다. 제 2 장응용펑션블록라이브러리부 4-9 LS 산전연수원

펑션 FIFO 변수타입 동작설명 LIFO_Q 타입 DATA에대한 LIFO동작을수행합니다. LIFO_B BYTE BYTE 타입 DATA에대한 LIFO동작을수행합니다. LIFO_W WORD WORD 타입 DATA에대한 LIFO동작을수행합니다. LIFO_DW DWORD DWORD 타입 DATA에대한 LIFO동작을수행합니다. LIFO_LW LWORD LWORD 타입 DATA에대한 LIFO동작을수행합니다. LIFO_SI SINT SINT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_I INT INT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_DI DINT DINT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_LI LINT LINT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_USI USINT USINT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_UI UINT UINT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_UDI UDINT UDINT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_ULI ULINT ULINT 타입 DATA에대한 LIFO동작을수행합니다. LIFO_R REAL REAL 타입 DATA에대한 LIFO동작을수행합니다. LIFO_LR LREAL LREAL 타입 DATA에대한 LIFO동작을수행합니다. LIFO_TM TIME TIME 타입 DATA에대한 LIFO동작을수행합니다. LIFO_DAT DATE DATE 타입 DATA에대한 LIFO동작을수행합니다. LIFO_TOD TOD TOD 타입 DATA에대한 LIFO동작을수행합니다. LIFO_DT DT DT 타입 DATA에대한 LIFO동작을수행합니다. LIFO LOAD 동작시 LIFO [4] PNT:4 [4] PNT:3 [3] [3] LIFO[3] IN LIFO[3] [2] [1] LIFO[2] LIFO[1] [2] [1] LIFO[2] LIFO[1] [0] LIFO[0] [0] LIFO[0] 동작전 동작후 LIFO UNLOAD 동작시 LIFO PNT:4 [4] [4] [3] [2] LIFO[3] LIFO[2] PNT:3 [3] [2] LIFO[2] OUT LIFO[3] [1] LIFO[1] [1] LIFO[1] [0] LIFO[0] [0] LIFO[0] 동작전 동작후 제 2 장응용펑션블록라이브러리부 4-10 LS 산전연수원

프로그램예 LD LIFO_*** 펑션블록은위의그림과같이 2 가지방법으로사용이가능합니다. 위에서예를든 2 가지방법은동일한동작을수행합니다. 왼쪽의예제는하나의펑션블록을사용하여입력과출력을동시에수행할수있도록한프로그램이고, 오른쪽의예제는입력을위한펑션블록과출력을위한펑션블록을따로작성하여입출력동작을다른위치에서동작하도록작성한프로그램입니다. 단이때주의할점은인스턴스이름이같도록설정해야하는점입니다. (1) 입력조건 (%I1.1.0, %I1.1.1, %1.1.1.15) 이성립되면 LIFO_TM 이실행됩니다. (2) 입력접점 %I1.1.0 이 On 되면 Load 동작을수행합니다. T#55S 가 FIFO 스택에입력되고 PNT_INDEX 가 1 증가합니다. (3) 입력접점 %I1.1.1 이 On 되면 Unload 동작을수행합니다. FIFO 스택으로부터 T#11S 가출력되고 PNT_INDEX 가 1 감소합니다. (4) 입력접점 %I1.1.15 가 On 되면 Reset 동작을수행합니다. FIFO 스택의모든값이 T#0S 으로클리어 (Clear) 되고, PNT_INDEX 가 0 으로초기화되며, EMTY_FLAG 가 On 됩니다. 제 2 장응용펑션블록라이브러리부 4-11 LS 산전연수원

LOAD 동작시 (%I1.1.0 이 On 되면 ) LIFO LIFO IN= T#55S [4] [3] [2] T#0S T#44S T#33S [4] [3] [2] T#55S T#44S T#33S [1] T#22S [1] T#22S [0] T#11S [0] T#11S PNT=4 PNT=5 UNLOAD 동작시 (%I1.1.1 이 On 되면 ) LIFO LIFO [4] T#55S [4] T#0S [3] [2] T#44S T#33S [3] [2] T#44S T#33S OUT= T#55S [1] T#22S [1] T#22S [0] T#11S [0] T#11S PNT=5 PNT=4 RESET 동작시 (%I1.1.15 가 On 되면 ) LIFO LIFO [4] T#0S [4] T#0S [3] T#44S [3] T#0S [2] T#33S [2] T#0S [1] T#22S [1] T#0S [0] T#11S [0] T#0S PNT=4 PNT=0 제 2 장응용펑션블록라이브러리부 4-12 LS 산전연수원

SCON 스텝컨트롤러 ( 순차스텝및스텝점프 ) CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 INT SCON REQ DONE ST_0/JP_1 S SET CUR_S ARY INT 입력 REQ : 1 일때펑션블록실행 S/O : 0 이면 SET 동작을지정하고, 1 이면 OUT 동작을지정 SET : 스텝의번호 (0~99) 출력 DONE : 펑션블록실행이에러없이종료된경우 ON되며, 에러가발생하거나펑션블록실행요구가없으면 OFF된다. S : Set된 bit array CUR_S : 현재스텝번호를출력 기능 순차작업조의설정 - 펑션블록의인스턴스이름이하나의순차작업조의이름이됩니다. ( 펑션블록선언예 : S00, G01, 제조1 스텝접점예 : S00.S[1], G01.S[1], 제조1.S[1]) SET 동작일경우 (ST_0/JP_1 = 0) - 동일조내에서바로이전의스텝번호가 On 되었을때현재스텝번호가 On 됩니다. - 현재스텝번호가 On 되면자기유지되어입력접점이 Off 되어도 On 되어진상태를유지합니다. - 입력조건접점이동시에 On 되어도한조내에서는한스텝번호만이 On 됩니다. - Sxx.S[0] 가 On 되면모든 SET 출력이 Clear 됩니다. JUMP 동작일경우 (ST_0/JP_1 = 1) - 동일조내에서입력조건접점이다수가 On 하여도한개의스텝번호만 On 합니다. - 입력조건이동시에 On 하면나중에프로그램된것이우선으로출력됩니다. - 현재스텝번호가 On 되면자기유지되어입력조건이 Off 되어도 On 되어진상태를유지합니다. - Sxx.S[0] 이 On 되면초기스텝으로복귀합니다. 에러 스텝지정 (SET) 이범위 (0~99) 를벗어나면에러가발생합니다. 에러발생시에는 DONE이 OFF되고, 스텝출력은이전스텝을유지합니다. 제 2 장응용펑션블록라이브러리부 4-13 LS 산전연수원

SET 동작일경우 (ST_0/JP_1 = 0) 의프로그램설명프로그램 SC1 조를이용한순차제어프로그램 행 0 행 1 행 2 행 3 행 4 행 5 행 6 행 7 행 8 행 9 행 10 행 11 행 12 행 13 행 14 행 15 행 16 행 17 행 18 행 19 %M1 %M2 %M3 %M0 S_BIT[0] S_BIT[1] S_BIT[2] S_BIT[3] 0 1 0 2 0 3 0 0 SC1 SCON REQ DONE ST_0 S JP_1 SET CUR_ S SC1 SCON REQ DONE ST_0 S JP_1 SET CUR_ S SC1 SCON REQ DONE ST_0 S JP_1 SET CUR_ S SC1 SCON REQ DONE ST_0 S JP_1 SET CUR_ S S_BIT S_BIT S_BIT S_BIT %Q0.0.0 %Q0.0.1 %Q0.0.2 %Q0.0.3 %M1 %M2 %M3 %M0 S_BIT[1] S_BIT[2] S_BIT[2] SC1 를 Clear 하는입력조건 순차제어는바로이전의 Step 이 On 되고자신의조건이 On 되면출력합니다. JUMP 동작일경우 (ST_0/JP_1 = 1) 의프로그램설명프로그램 SC2 조를이용한후입우선제어프로그램 행 0 행 1 행 2 행 3 행 4 행 5 행 6 행 7 행 8 행 9 행 10 행 11 행 12 행 13 행 14 %M0 %M1 %M2 %M3 1 1 1 23 1 98 1 0 SC2 SCON REQ ST_0 JP_1 DONE S S_O SET CUR_ S SC2 SCON REQ ST_0 JP_1 DONE S S_O SET CUR_ S SC2 SCON REQ ST_0 JP_1 DONE S S_O SET CUR_ S SC2 SCON REQ ST_0 JP_1 DONE S S_0 SET CUR_ S NO %M1 %M2 %M3 %M4 S_O S_O S_O S_O [1] [23] [98] [0] 1 On Off Off Off 2 On On Off Off 3 On On On Off 4 On On On On 제 2 장응용펑션블록라이브러리부 4-14 LS 산전연수원

TMR 적산타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TIME IN PT RST TMR Q ET TIME 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) RST : 리셋입력 (Reset) 출력 Q : 타이머출력 ET : 경과시간 (Elapsed Time) 기능 TMR 펑션블록은 IN 이 1 이된후경과시간이 ET 로출력됩니다. 경과시간 ET 가설정시간에도달하기전에 IN 이 0 이되어도현재의경과시간을유지하다가 IN 이다시 1 이되면경과시간을다시증가시킵니다. 설정시간이경과시간에도달하면 Q 가 1 이됩니다.. Reset 입력조건이성립되면 Q 는 0 이되고경과시간도 0 이됩니다. 타임차트 IN RST PT ET PT Q 제 2 장응용펑션블록라이브러리부 4-15 LS 산전연수원

프로그램예 LD T_TMR %I1.1.12 10s ET_TIME 10s TIMER_OK (1) 입력변수 T_TMR 이 1 이된후 10 초가경과하면출력변수 TIMER_OK 가 1 이됩니다. (2) 입력변수 T_TMR 이 1 이된후경과시간이출력변수 ET_TIME 으로출력됩니다. (3) 경과시간 ET_TIME 이설정시간 10 초에도달하기전에 T_TMR 이 0 이되더라도현재의경과시간을유지합니다. (4) 입력변수 T_TMR 이다시 1 이되면멈추어졌던이전의경과시간부터다시시작합니다. (5) 입력접점 %I1.1.12 가 1 이되면경과시간 ET_TIME 및출력변수 TIMER_OK 모두 0 으로클리어 (Clear) 됩니다. 제 2 장응용펑션블록라이브러리부 4-16 LS 산전연수원

TMR_FRK 점멸기능타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TIME TIME IN ON OFF TMR_FRK Q ET TIME 입력 IN : 타이머기동조건 ON : ON 타이머설정시간 OFF : OFF 타이머설정시간출력 Q : 타이머출력 ET : 경과시간 (Elapsed Time) 기능 TMR_FLK 펑션블록은 IN 이 1 이되는순간 Q 는 1 이되고, ON 에서지정된시간만큼 Q 는 1 을유지합니다. ON 에서지정된시간이경과하면 OFF 에서지정된시간만큼 Q 는 0 이됩니다. IN 이 0 이되면 ON 또는 OFF 동작을수행을중지하고, IN 이 0 인동안중지된시간을유지하다가 IN 이다시 1 이되면정지된시간부터다시타이머가동작합니다. IN 이 0 인동안출력 Q 는 0 이됩니다. ON 이 0 이면출력 Q 는항상 0 이됩니다. 타임차트 IN ON ON Time ON Time OFF Time OFF OFF Time Q 제 2 장응용펑션블록라이브러리부 4-17 LS 산전연수원

프로그램예 LD (1) 입력변수 T_TMR_FRK 가 0 에서 1 이되면, TMR_FRK 펑션블록이동작을시작합니다. (2) 입력변수 T_TMR_FRK 가 1 이된후 ON 에서지정된 5 초만큼출력접점 %QX1.1.5 는 1 이됩니다. (3) 입력변수 T_TMK_FRK 가 1 이된후 ON 에서지정된시간이경과하면 OFF 에서지정된 2 초만큼출력접점 %QX1.1.5 는 0 이됩니다. (3) 입력변수 T_TMR_FRK 가 1 인동안출력 Q 가 1 인동안의경과시간과 Q 가 0 인동안의경과시간이번갈아 ET_TIME 으로출력됩니다. (4) 입력변수 T_TMR_FRK 가 0 이되면동작중인시간을유지하고출력접점 %QX1.1.5 는 0 이되며, T_TMR_FRK 가다시 1 이되면정지되었던시간부터다시동작합니다. 제 2 장응용펑션블록라이브러리부 4-18 LS 산전연수원

TMR_UNIT 정수설정적산타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 UINT UINT IN PT UINT RST TMR_FRK Q ET UDINT 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) UNIT : 설정시간의시간단위 (Unit) RST : 리셋입력 출력 Q ET : 타이머출력 : 경과시간 (Elapsed Time) 기능 TMR_UINT 펑션블록은 IN 이 1 이된후경과시간이 ET 로출력됩니다. 경과시간 ET 가설정시간에도달하기전에 IN 이 0 이되어도현재의경과시간을유지하다가 IN 이다시 1 이되면경과시간이다시증가됩니다. 설정시간이경과시간에도달하면 Q 가 1 이됩니다.. Reset 입력조건이성립되면 Q 는 0 이되고경과시간도 0 이됩니다. 설정시간은 PT*UNIT[mSec] 입니다. 타임차트 IN RST 설정시간 (PT UNIT) ET PT UNIT Q 제 2 장응용펑션블록라이브러리부 4-19 LS 산전연수원

프로그램예 LD (1) 설정시간은 PT*UNIT[ms] = 10*1000[ms] = 10[s] 가됩니다. (2) 입력변수 T_TMR 이 1 이된후 10 초가경과하면출력변수 TIMER_OK 가 1 이됩니다. (3) 입력변수 T_TMR 이 1 이된후경과시간이출력변수 ET_TIME 으로출력됩니다. (4) 경과시간 ET_TIME 이설정시간 10 초에도달하기전에 T_TMR 이 0 이되더라도현재의경과시간을유지합니다. (5) 입력변수 T_TMR 이다시 1 이되면멈추어졌던이전의경과시간부터다시시작합니다. (6) 입력접점 %IX1.1.5 가 1 이되면경과시간 ET_TIME 및출력변수 TIMER_OK 모두 0 으로클리어 (Clear) 됩니다. T_TMR %IX1.1.5 설정시간 (10000ms) ET_TIME 10 1000 TIMER_OK 제 2 장응용펑션블록라이브러리부 4-20 LS 산전연수원

TOF_RST 동작중출력 OFF 가가능한딜레이타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TIME IN PT RST TOF_RST Q ET TIME 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) RST : 리셋입력 (Reset) 출력 Q ET : 타이머출력 : 경과시간 (Elapsed Time) 기능 TOF_RST 펑션블록은기동조건 IN 이 1 이되는순간 Q 는 1 이되고, IN 이 0 이된후부터 PT 에의하여지정된설정시간이경과한후 Q 가 0 이됩니다. IN 이 0 이된후경과시간이 ET 로출력됩니다. 만일경과시간 ET 가설정시간에도달하기전에 IN 이 1 이되면, 경과시간은다시 0 으로됩니다. Reset 입력조건이성립하면타이머출력 Q 는 0 이되고경과시간도 0 이됩니다. 타임차트 IN RST 설정시간 (PT) PT ET Q 제 2 장응용펑션블록라이브러리부 4-21 LS 산전연수원

프로그램예 LD T_TOF_RST %IX1.1.15 설정시간 (10s) 10s ET_TIME TIMER_OK (1) 입력변수로설정된 T_TOF_RST 가 1 이되면, 출력변수 TIMER_OK 에 1 이출력되고 T_TOF_RST 가 0 이된후 10s 후에 TIMER_OK 가 0 이됩니다. (2)T_OF_RST 가 0 이된후 10 초이내에다시 1 이되면타이머는다시초기상태가됩니다. (3) 타이머의시간측정값은 ET_TIME 로출력됩니다. (4) 입력접점 %IX1.1.15 가 1 이되면 TIMER_OK 와 ET_TIME 모두 0 으로클리어 (Clear) 됩니다. 제 2 장응용펑션블록라이브러리부 4-22 LS 산전연수원

TOF_UINT 정수설정 OFF 타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 UINT UINT IN PT UINT RST TOF_UINT Q ET UDINT 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) UNIT : 설정시간의시간단위 (Unit) RST : 리셋입력 출력 Q ET : 타이머출력 : 경과시간 (Elapsed Time) 기능 TOF_UINT 펑션블록은기동조건 IN 이 1 이되는순간 Q 는 1 이되고, IN 이 0 이된후부터 PT 에의하여지정된설정시간이경과한후 Q 가 0 이됩니다. IN 이 0 이된후경과시간이 ET 로출력됩니다. 만일경과시간 ET 가설정시간에도달하기전에 IN 이 1 이되면, 경과시간은다시 0 으로됩니다. Reset 입력조건이성립하면타이머출력 Q 는 0 이되고경과시간도 0 이됩니다. 설정시간은 PT*UNIT[ms] 입니다. 타임차트 IN RST 설정시간 (PT UNIT) PT UNIT ET Q 제 2 장응용펑션블록라이브러리부 4-23 LS 산전연수원

프로그램예 LD (1) 설정시간은 PT*UNIT[ms] = 10*1000[ms] = 10[s] 가됩니다. (2) 입력변수로설정된 T_TOF 가 1 이되면, 출력변수 TIMER_OK 에 1 이출력되고 T_TOF 가 0 이된후 10 초후에 TIMER_OK 가 0 이됩니다. (3)T_TOF 가 0 이된후 10 초이내에다시 1 이되면타이머는다시초기상태가됩니다. (4) 타이머의시간측정값은 ET_TIME 로출력됩니다. (5) 입력접점 %IX1.1.5 가 1 이되면 TIMER_OK 와 ET_TIME 모두 0 으로클리어 (Clear) 됩니다. T_TOF %IX1.1.5 설정시간 (10 1000) 10 1000 ET_TIME TIMER_OK 제 2 장응용펑션블록라이브러리부 4-24 LS 산전연수원

TON_UINT 정수설정 ON 타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TIME UNIT IN PT UNIT TON_UNIT Q ET TIME 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) UNIT : 설정시간의시간단위 (Unit) 출력 Q : 타이머출력 ET : 경과시간 (Elapsed Time) 기능 TON_UINT 펑션블록은 IN이 1이된후경과시간이 ET로출력됩니다. 만일경과시간 ET가설정시간에도달하기전에 IN이 0이되면, 경과시간 ET는 0으로됩니다. Q가 1이된후 IN이 0이되면, Q는 0이됩니다. 설정시간은 PT UNIT[ms] 입니다. 타임차트 IN 설정시간 (PT UNIT) ET PT UNIT Q 제 2 장응용펑션블록라이브러리부 4-25 LS 산전연수원

프로그램예 LD (1) 설정시간은 PT*UNIT[s] = 10*1000[s] = 10[s] 가됩니다. (2) 입력변수 T_TON 이 On 이된후, 10 초가경과한후에출력변수 TIMER_OK 가 1 이됩니다. (3) 입력변수 T_TON 이 On 된후경과시간이출력변수 ET_TIME 로출력됩니다. (4) 만일경과시간 ET_TIME 이설정시간 10 초에도달하기전에 T_TON 이 0 이되면, 경과시간 ET_TIME 은 0 으로됩니다. (5)TIMER_OK 가 1 이된후 T_TON 이 0 이되면, TIMER_OK 는 0 이되고경과시간 ET_TIME 도 0 이됩니다. T_TON 설정시간 (10,000ms) ET_TIME 10 1000 TIMER)OK 제 2 장응용펑션블록라이브러리부 4-26 LS 산전연수원

TP_RST 펄스타이머출력 OFF 가가능한모노스테이블타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TIME IN PT RST TP_RST Q ET TIME 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) RST : 리셋입력 (Reset) 출력 Q ET : 타이머출력 : 경과시간 (Elapsed Time) 기능 TP_RST 펑션블록은 IN 이 1 이되는순간 Q 는 1 이되고, 경과시간이설정시간에도달하면타이머출력 Q 는 0 이됩니다. 경과시간 ET 는 IN 이 1 이되었을때부터증가하며 PT 에이르면값을유지하다가 IN 이 0 이될때 0 으로클리어 (clear) 됩니다. 타이머출력 Q 가 1 인동안 ( 펄스출력중 ) 에는타이머기동조건 IN 이 1,0 변화를하여도무시합니다. Reset 입력조건이성립하면펄스출력중에도타이머출력 Q 는 0 이되고경과시간도 0 이됩니다. 타임차트 IN RST 설정시간 (PT) ET PT Q 제 2 장응용펑션블록라이브러리부 4-27 LS 산전연수원

프로그램예 LD T_TP_RST %I1.1.12 설정시간 (10s) ET_TIME 10s TIMER_OK (1) 입력변수 T_TP_RST 가 1 이되면출력변수 TIMER_OK 가 1 이되고 10 초가경과하면출력변수 TIMER_OK 는 0 이됩니다. 일단타이머가가동된후에는 10 초동안 T_TP_RST 신호는무시됩니다. (2)ET_TIME 값은증가후 10S 에서멈춥니다. 그리고 T_TP_RST 가 0 이될때 0 으로됩니다. (3) 입력접점 %I1.1.12 가 1 이되면 TIIMER_OK 와 ET_TIME 모두 0 으로클리어 (Clear) 됩니다. 제 2 장응용펑션블록라이브러리부 4-28 LS 산전연수원

TP_UINT 정수설정펄스타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 UINT UINT IN PT UINT RST TP_UINT Q ET UDINT 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) UNIT : 설정시간의시간단위 (Unit) RST : 리셋입력 출력 Q ET : 타이머출력 : 경과시간 (Elapsed Time) 기능 TP_UINT 펑션블록은 IN 이 1 이되는순간 Q 는 1 이되고, 경과시간이설정시간에도달하면타이머출력 Q 는 0 이됩니다. 경과시간 ET 는 IN 이 1 이되었을때부터증가하며 PT 에이르면값을유지하다가 IN 이 0 이될때 0 으로클리어 (Clear) 됩니다. 타이머출력 Q 가 1 인동안 ( 펄스출력중 ) 에는타이머기동조건 IN 이 1,0 변화를하여도무시합니다. Reset 입력조건이성립하면펄스출력중에도타이머출력 Q 는 0 이되고경과시간도 0 이됩니다. 설정시간은 PT*UNIT[ms] 입니다. 타임차트 IN RST 설정시간 (PT UNIT) ET PT UNIT Q 제 2 장응용펑션블록라이브러리부 4-29 LS 산전연수원

프로그램예 LD (1) 설정시간은 PT*UNIT[ms] = 10*1000[ms] = 10[s] 가됩니다. (2) 입력변수 T_TP 가 1 이되면출력변수 TIMER_OK 가 1 이되고 10 초가경과하면출력변수 TIMER_OK 는 0 이됩니다. 일단타이머가가동된후에는 10 초동안 T_TP 신호는무시됩니다. (3)ET_TIME 값은증가후 10,000 에서멈춥니다. 그리고 T_TP 가 0 이될때 0 으로됩니다. (4) 입력접점 %IX1.1.5 가 1 이되면 TIIMER_OK 와 ET_TIME 모두 0 으로클리어 (Clear) 됩니다. T_TP %IX1.1.5 설정시간 (10,000ms) ET_TIME 10 1000 TIMER_OK 제 2 장응용펑션블록라이브러리부 4-30 LS 산전연수원

TRTG 리트리거블타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 TIME IN PT RST TRTG Q ET TIME 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) RST : 리셋입력 (Reset) 출력 Q : 타이머출력 ET : 경과시간 (Elapsed Time) 기능 TRTG 펑션블록은기동조건 IN 이 1 이되는순간 Q 는 1 이되고, 경과시간이설정시간에도달하면타이머출력 Q 는 0 이된다. 타이머경과시간이 0 이되기전에 IN 이또다시 0 에서 1 로되면경과시간은 0 으로재설정되고다시증가하여설정시간 PT 에도달하면 Q 는 0 이된다. Reset 입력조건이성립하면타이머출력 Q 는 0 이되고경과시간도 0 이된다. 타임차트 IN RST 설정시간 (PT) ET PT Q 제 2 장응용펑션블록라이브러리부 4-31 LS 산전연수원

프로그램예 LD T_TRTG %I1.1.15 설정시간 (10s) ET_TIME 10s TIMER_OK (1) 입력변수 T_TRTG 가 0 에서 1 이된후 10 초동안 TIMER_OK 는 1 이됩니다. 타이머가가동된후 T_TRTG 가다시 0 에서 1 이되면 ET_TIME 은 0 부터다시시작됩니다. (2)T_TRTG 가 1 에서 0 이되어도 10 초동안 TIMER_OK 는 1 이됩니다. (3)ET_TIME 은증가후 T#10S 에서멈춥니다. 그리고 T_TRTG 가 0 이될때 0 으로됩니다. (4) 입력접점 %I1.1.15 가 1 이되면 TIMER_OK 와 ET_TIME 모두 0 으로클리어 (Clear) 됩니다. 제 2 장응용펑션블록라이브러리부 4-32 LS 산전연수원

TRTG_UINT 정수설정리트리거블타이머 CPU 명 GMR GM1 GM2 GM3 GM4 GM6 GM7 적용가능 펑션블록설명 UINT UINT IN PT UINT RST TRTG_UINT Q ET UDINT 입력 IN : 타이머기동조건 PT : 설정시간 (Preset Time) UNIT : 설정시간의시간단위 (Unit) RST : 리셋입력 출력 Q ET : 타이머출력 : 경과시간 (Elapsed Time) 기능 TRTG_UINT 펑션블록은기동조건 IN 이 1 이되는순간 Q 는 1 이되고, 경과시간이설정시간에도달하면타이머출력 Q 는 0 이됩니다. 타이머경과시간이 0 이되기전에 IN 이또다시 0 에서 1 로되면경과시간은 0 으로재설정되고다시증가하여설정시간 PT 에도달하면 Q 는 0 이됩니다. Reset 입력조건이성립하면타이머출력 Q 는 0 이되고경과시간도 0 이됩니다. 설정시간은 PT*UNIT[ms] 입니다. 타임차트 IN RST 설정시간 (PT) ET UNIT PT UNIT Q 제 2 장응용펑션블록라이브러리부 4-33 LS 산전연수원

프로그램예 LD (1) 설정시간은 PT*UNIT[ms] = 10*1000[ms] = 10[s] 가됩니다. (2) 입력변수 T_TRTG 가 0 에서 1 이된후 10 초동안 TIMER_OK 는 1 이됩니다. 타이머가가동된후 T_TRTG 가다시 0 에서 1 이되면 ET_TIME 은 0 부터다시시작됩니다. (3)T_TRTG 가 1 에서 0 이되어도 10 초동안 TIMER_OK 는 1 이됩니다. (4)ET_TIME 은증가후 10,000 에서멈춥니다. 그리고 T_TRTG 가 0 이될때 0 으로됩니다. (5) 입력접점 %IX1.1.5 가 1 이되면 TIMER_OK 와 ET_TIME 모두 0 으로클리어 (Clear) 됩니다. T_TRTG %IX1.1.5 설정시간 (10,000ms) ET TIME 10 1000 TIMER_OK 제 2 장응용펑션블록라이브러리부 4-34 LS 산전연수원

부록 C. 태스크프로그램

부록 C. 태스크프로그램 1.1 태스크프로그램의종류및실행방식 1.1.1 태스크프로그램의종류 연산자, 펑션, 펑션블록등을사용하여작성된각각의프로그램은그실행을제어하기위한프로그램의기동조건인태스크에따라다음과같이분류됩니다. 구분태스그종류기동조건동작 시스템태스크 Event 태스크스캔태스크 초기화 _INIT 태스크로기동 기본파라미터로콜드 / 웜리스타트설정시실행 프로그램 _H_INIT 태스크로기동 기본파라미터로핫리스타트설정시실행 에러처리프로그램 _ERR_SYS 태스크로기동 시스템에러발생시실행 정주기태스크 시간간격설정 설정시간마다주기적으로프 프로그램 태스크로기동 로그램실행 외부접점태스크 인터럽트모듈 인터럽트모듈접점의상승에 프로그램 태스크로기동 지검출시프로그램실행 내부접점내부접점의상승에지검출시내부접점태스크태스크로기동스캔프로그램실행완료후프프로그램로그램실행 스캔프로그램 기동조건없음 매스캔마다프로그램실행 태스크우선순위 : 시스템 > 정주기, 외부접점 > 내부접점 > 스캔 시스템태스크란시스템에서제공되는태스크를말합니다. ( 기본적으로등록되어있음 ) Event 태스크는사용자에의해등록이필요합니다. 스캔태스크란특별한기동조건이없는태스크를말합니다. ( 등록이필요없음 ) 정주기 ( 인터벌 ) 태스크란시간간격설정에의한태스크를말합니다. 외부접점 ( 인터럽트 ) 태스크란인터럽트모듈에의한태스크를말합니다. 내부접점 ( 싱글 ) 태스크란내부접점에의한태스크를말합니다. 시스템태스크의기동조건해제 ( 종료 ) _ 초기화태스크 : _INIT_DONE 플래그 On시해제 _ 시스템에러해제플래그 On시해제 부록 C. 태스크프로그램부 1-1 LS 산전연수원

태스크의속성 종류 정주기태스크 외부접점태스크 내부접점태스크 규격 ( 인터벌태스크 ) ( 인터럽트태스크 ) ( 싱글태스크 ) 개수 32 개 16 개 16 개 기동조건검출실행검출지연시간실행우선순위 정주기인터럽트모듈의입력접점 (10ms ~ 4294967.29sec) 의상승또는하강에지설정시간마다주기적으인터럽트모듈의접점의 로실행 에지발생시즉시실행 최대 5ms 지연 최대 5ms 지연 + 인터럽트모듈지연 ( 0.5ms 이내 ) 0 ~ 7 레벨설정 (0 레벨이가장높음 ) 좌동 내부메모리데이터중지정한불 (Bool) 변수데이터의상승에지 (0->1) 스캔프로그램실행완료후에지를검색하여실행최대스캔타임만큼지연좌동 1.1.2 태스크프로그램의실행방식 ( 가 ) 초기화프로그램 콜드나웜리스타트모드로운전을시작할때초기화프로그램은스캔및태스크프로그램실행전에시스템초기화를할때사용됩니다. 초기화프로그램은종료조건이성립될때까지반복연산을실행합니다. ( 초기화프로그램에서 _INIT_DONE 플래그가 ON 될때까지반복연산을실행 ) 초기화프로그램실행중에도입출력리프레시를실행합니다 핫리스타트모드로운전을시작할때초기화프로그램은정전발생시정지된스텝부터실행을다시시작하거나특수모듈을정전이전의상태로복원할필요가있을때사용됩니다초기화프로그램은설정한조건이성립될때까지반복연산을실행합니다. ( 초기화프로그램에서 _INIT_DONE 플래그가 ON 될때까지반복연산을실행 ) 핫리스타트초기화프로그램실행중입출력리프레시를실행하지않습니다. ( 정전시입출력이미지데이터를그대로유지 ) 입출력리프레시가필요하면입출력펑션을사용하십시오. 핫리스타트초기화프로그램실행완료후정지스텝부터프로그램을실행하여 1스캔이완료되어도출력리프레시는하지않고그다음스캔부터정상적인입출력리프레시를합니다. 초기화프로그램실행중에는 _INIT_RUN 플래그가 ON 됩니다. 부록 C. 태스크프로그램부 1-2 LS 산전연수원

( 나 ) 태스크프로그램 정주기태스크에의해지정된프로그램은태스크에설정된시간간격으로프로그램을실행합니다. 외부인터럽트태스크에의해지정된프로그램은인터럽트모듈에서발생한외부인터럽트접점신호에의해프로그램을실행합니다. 내부접점태스크에의해지정된프로그램은내부접점의상승에지발생시스캔프로그램의처리한다음태스크프로그램실행합니다. ( 다 ) 스캔프로그램사용자가작성한프로그램중초기화프로그램이나태스크프로그램으로지정하지않은프로그램들은자동으로스캔프로그램이됩니다. 스캔프로그램은태스크와무관한프로그램으로실행의우선순위가가장낮으며, 주기적인반복연산을수행하는프로그램으로서등록순서에따라처리순서가결정되어순차적인반복연산을실행합니다. ( 라 ) 에러처리프로그램에러태스크프로그램은사용자프로그램의실행중시스템의에러가발생할경우실행됩니다. 사용자는시스템의에러에대응하는프로그램을작성한후 _ERR_SYS 태스크를조건으로하여프로그램을기동합니다. 에러태스크프로그램에서시스템에러해제플래그를제어하면시스템의운전정지를막을수있습니다. * 에러종류 : - 모듈착탈에러 - FUSE 단선에러 - 입출력모듈읽기 / 쓰기에러 ( 고장 ) - 특수, 통신모듈인터페이스에러 ( 고장 ) - 외부기기의중고장검출에러 부록 C. 태스크프로그램부 1-3 LS 산전연수원

1.1.3 태스크프로그램의실행도스캔프로그램은작성된순서대로처음부터마지막까지실행됩니다. 이와같이스캔프로그램은반복연산방식으로수행되고이한차례의과정을 1 스캔 이라고합니다. 스캔프로그램실행중에정주기또는외부접점태스크프로그램의실행조건이발생하면현재실행중인프로그램의실행을일시중지하고해당하는태스크프로그램을실행합니다. 스캔프로그램의실행이완료되면, 내부접점태스크프로그램의실행조건을체크하여실행조건이발생한태스크프로그램을실행합니다. 운전시작 초기화처리 *1 _INIT,_H_INIT: 초기화태스크 초기화프로그램을사용자가작성한경우수행 입력리프레시처리 스캔프로그램처리 1 스캔 내부접점태스크프로그램처리 ' 정주기태스크프로그램 ' ' 외부접점태스크프로그램 ' 조건발생시즉시처리 출력리프레시처리 자기진단 *2 _ERR_SYS: 에러태스크 에러가발생하고사용자에의해프로그램이작성되어있을때수행 부록 C. 태스크프로그램부 1-4 LS 산전연수원

1.2 태스크추가하기 태스크는프로그램의실행조건을정의하는것입니다. 그종류로는싱글, 인터벌, 인터럽트등이있습니다. 1) 태스크추가하기 프로젝트창내의목록중편집하려는태스크를선택합니다. 메뉴 [ 프로젝트 ]-[ 프로젝트항목추가 ]-[ 태스크 ] 를선택하거나팝업메뉴에서 [ 프로젝트 ]-[ 프로젝트 항목추가 ]-[ 테스크 ] 를선택합니다. 태스크이름입력란에태스크이름을입력합니다. 태스크번호입력란에수행조건에따라아래번호를입력합니다. 수행조건태스크번호정주기 0 31 외부접점 32 47 (GM4:32 39) 내부접점 48 63 단인터럽트의경우는인터럽트번호와해당태스크번호가지정되어있으므로자동으로설정됩니다. GM6,7 의태스크번호는우선순위에따라자동으로설정됩니다. GM6,7 의태스크는정주기, 외부접점, 내부접점을모두합하여 8 개입니다. 내부접점인경우에는변수이름을, 정주기인경우에는경과시간을, 외부접점인경우에는인터럽트카드의입력위치를번호로표현합니다. 다음은각경우에가능한입력의예를듭니다. (1) 내부접점인경우리소스글로벌변수중 인것 A, VALVE1 등직접변수중 인것 %IX0.0.0, %QX0.1.1, %MX10 등 부록 C. 태스크프로그램부 1-5 LS 산전연수원

(2) 정주기인경우 경과시간을나타내는상수값 T#10S, T#1H10M10S10MS 등 (3) 외부접점인경우 Interrupt 번호 (GM1~3:0~15, GM4: 0~7 까지가능 ) 0, 1, 2.. 15 (GM6~7 : 직접변수 %I) %IX0.0.0 우선순위목록상자에서우선순위를선택합니다. 우선순위는 0~7 까지가능하며, 작은숫자가높은우선순위를갖습니다. [ 확인 ] 을클릭합니다. 2) 태스크삭제하기 태스크정의목록상자에서삭제할항목을선택합니다. 팝업메뉴의 [ 삭제 ] 또는 Del 키를누릅니다. 3) 태스크수정하기 태스크정의목록상자에서수정할항목을선택합니다. 수정하려는태스크를마우스로더블클릭하거나, 팝업메뉴에서 [ 등록정보 ] 를선택합니다. 태스크추가시와같은방법으로입력한후 [ 확인 ] 을클릭합니다. 하나씩이동시킵니다. 부록 C. 태스크프로그램부 1-6 LS 산전연수원

1.3 태스크프로그램 1.3.1 초기화태스크프로그램 (1) 초기화태스크프로그램작성초기화태스크프로그램 ( 초기화태스크.src) 을작성합니다. _INIT_DONE 은 초기화프로그램완료 플래그입니다. (2) 초기화태스크설정예약된 ( 이미정의되어있는 ) 초기화태스크 (_INIT) 를 프로젝트항목추가 를통해설정합니다. 부록 C. 태스크프로그램부 1-7 LS 산전연수원

(3) 초기화태스크프로그램모니터초기화태스크프로그램을실행시켜동작을확인합니다. 부록 C. 태스크프로그램부 1-8 LS 산전연수원

1.3.2 정주기태스크프로그램 (1) 정주기태스크프로그램작성정주기태스크프로그램을작성합니다. (2) 정주기태스크설정정주기태스크를정의하고 ( 선언하고 ), 기동조건을부여합니다. 부록 C. 태스크프로그램부 1-9 LS 산전연수원

부록 C. 태스크프로그램부 1-10 LS 산전연수원

부록 C. 태스크프로그램부 1-11 LS 산전연수원

(3) 정주기태스크프로그램모니터정주기태스크프로그램을실행시켜동작을확인합니다. 1.3.3 내부접점태스크프로그램 (1) 내부접점태스크프로그램작성내부접점태스크프로그램을작성합니다. 부록 C. 태스크프로그램부 1-12 LS 산전연수원

(2) 정주기태스크설정정주기태스크를정의하고 ( 선언하고 ), 기동조건을부여합니다. 부록 C. 태스크프로그램부 1-13 LS 산전연수원

부록 C. 태스크프로그램부 1-14 LS 산전연수원

(3) 내부접점태스크프로그램모니터스캔프로그램에서수행조건접점 %IX0.0.15 가 ON 되면 ( 상승에지검출 ), 내부접점태스크프로그램이 1 스캔동작되어 적산값 이 +1 되는지확인합니다. 내부접점태스크에서수행조건은직접변수또는 GLOBAL 변수 ( 변수종류 VAR_EXTERNAL) 로지정해야합니다. 또한, 데이터타입은모두 이어야합니다. 부록 C. 태스크프로그램부 1-15 LS 산전연수원