1. 전기공압의 기초 1. 전기공압의 기초 학습목표 1. 시퀀스 제어의 개념을 설명할 수 있다. 2. 전기 접점의 종류와 특징을 설명할 수 있다. 3. PLC실습을 위한 전기공압의 기초사항을 복습한다. 1. 시퀀스 제어란? 1.1 시퀸스 제어의 개념 시퀸스 제어란? 미



Similar documents
untitled

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

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

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

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

歯표지.PDF

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

Microsoft PowerPoint - chap01-C언어개요.pptx

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

IRISCard Anywhere 5

Microsoft PowerPoint - chap04-연산자.pptx

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

View Licenses and Services (customer)

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

Windows 8에서 BioStar 1 설치하기

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

회원번호 대표자 공동자 KR000****1 권 * 영 KR000****1 박 * 순 KR000****1 박 * 애 이 * 홍 KR000****2 김 * 근 하 * 희 KR000****2 박 * 순 KR000****3 최 * 정 KR000****4 박 * 희 조 * 제

ADP-2480

MF Driver Installation Guide

ISP and CodeVisionAVR C Compiler.hwp

1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

PowerPoint 프레젠테이션

ThinkVantage Fingerprint Software

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


Microsoft Power Point 2002

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

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

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

Oracle VM VirtualBox 설치 VirtualBox에서 가상머신 설치 가상머신에 Ubuntu 설치

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

No Slide Title

KMC.xlsm

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

메뉴얼41페이지-2

SBR-100S User Manual

SIGIL 완벽입문

User Guide

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

ActFax 4.31 Local Privilege Escalation Exploit

OCW_C언어 기초

스마트주택용분전반_160331

H3250_Wi-Fi_E.book

untitled

AVSHH100B10 IM.~20.

Microsoft PowerPoint - chap05-제어문.pptx

tiawPlot ac 사용방법

Chapter ...

歯Enet_목차_.PDF

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

1. 무선 이미지 유틸리티 설명 1-1. 기능 이 Wireless Image Utility 는 안드로이드용 응용 프로그램입니다. 안드로이드 태블릿 또는 안드로이드 스마트폰에서 사용할 수 있습니다. 안드로이드 기기에 저장된 파일을 프로젝터로 무선 전송 컴퓨터에서 USB

Microsoft Word - Korean_뷰어 메뉴얼_공용_ADVR&SWi_.doc

네트워크 설정

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

API 매뉴얼

SMT Kor.indd

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

BY-FDP-4-70.hwp

Xcovery 사용설명서

MF5900 Series MF Driver Installation Guide


슬라이드 1

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

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

슬라이드 1

Frequently Asked Question 버전 변경 날짜 변경 내용 v /07/22 최초 작성

Install stm32cubemx and st-link utility

게임 기획서 표준양식 연구보고서

RHEV 2.2 인증서 만료 확인 및 갱신

<B3EDB9AEC0DBBCBAB9FD2E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

System Recovery 사용자 매뉴얼

RVC Robot Vaccum Cleaner

C# Programming Guide - Types

Index 1. Intro Install Connect Scratch 1.4 (Offline Editor) Scratch 2.0 (Online Editor) Connect f

LM 가이드

2 전원 코드를 연결합니다. 출력 용지함을 기기 밖으로 꺼내고 문서 스토퍼 를 펼칩니다. 중요 아직 USB 케이블을 연결하지 마십시오. 전원 코드를 연결합니다. 경고 접지된 플러그가 기기에 장착되어 있어야 합니다. 2 1 Windows 사용자: 다음으로 3페이지 상단

슬라이드 1

제 2 장 기본 사용법

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

4-Ç×°ø¿ìÁÖÀ̾߱â¨ç(30-39)

Microsoft PowerPoint - chap10-함수의활용.pptx

MF3010 MF Driver Installation Guide

타이로드철튜브실린더,,, 사양 튜브내경단위 사 용 유 체 사용압력범위 pa(bar) 보 증 내 압 력 pa(bar) 주 위 온 도 사용피스톤속도 mm/s 쿠 션 행정허용오차 마 운 팅 형 식 압축공기 0.1~ ~60 50~500 에어쿠션기본 ~ : +1.

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

슬라이드 1

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

Microsoft PowerPoint - e pptx

Tcl의 문법

B _00_Ko_p1-p51.indd

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

Microsoft PowerPoint - XUSB_제품메뉴얼_140206

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

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

Transcription:

이 론 1

1. 전기공압의 기초 1. 전기공압의 기초 학습목표 1. 시퀀스 제어의 개념을 설명할 수 있다. 2. 전기 접점의 종류와 특징을 설명할 수 있다. 3. PLC실습을 위한 전기공압의 기초사항을 복습한다. 1. 시퀀스 제어란? 1.1 시퀸스 제어의 개념 시퀸스 제어란? 미리 정해놓은 순서에 따라 제어의 각 단계를 순차적으로 진행시켜 나가는 제어이다. 서보제어? 출력(위치,회전수,각도 등)을 Feedback 시켜 기준입력과 비교하여 오차값을 다시 제어 값으로 장치에 가하므로써 결국에는 기준입력과 동일한 출력이 나오게끔 하는 제어이다 1.2 시퀸스 회로 구성방법 직관적인 회로구성법 개인의 능력이 큰 요인으로 작용한다. 많은 경험, 풍부한 직관 그리고 충분한 시간 필요하다. 방법론적인 회로구성법 정확하게 규정된 방법으로 회로도를 구성하기 때문에, 개인의 능력이 끼치는 영향이 비교적 적다. 회로설계에 대한 기초이론과 논리 정연한 작업 필요하다. (예 : 주회로차단법, 최대신호차단법, 최소신호차단법 등) 신뢰성이 있으며, 시스템의 유지 보수 용이하다. 체계적이기 때문에 정확하고 깔끔한 배치 가능하다. 직관적 회로구성법에 비해 부품이 더 많이 소요한다. 2

1. 전기공압의 기초 1.3 시퀸스 회로 구성방법의 선택 과 거 현 재 가장 비용이 적게드는 해결안 신뢰성 시스템유지의 용이성 정확하고 깔끔한배치 2. 전기접점의 종류와 특징 2.1 접점(Contact)의 개요 접점이란? 전류를 통전 혹은 단전 시키는 부분 이고, 전류를 통전 혹은 단전시키는 역할을 하 는 기계적 장치는 스위치라 한다. 스위치는 조 작부와 접점부로 구성되어 있다. 옆그림은 가장 널리 사용되는 누름 버튼스위치를 나타낸다 2.2 접점의 종류 1) a 접점 (Arbeit Contact) a접점이란? 정상 상태에서 열려 있으며(Normally Open: NO) 외부로부터의 힘에 의해 닫히는(동작하는: arbeit) 접점이다. 3

1. 전기공압의 기초 2) b 접점 (Break Contact) b접점이란? 정상 상태에서 닫혀 있으며(Normal Closed : NC) 외부로부터의 힘에 의해 열리는 (끊어지는: break) 접점이다. 전기배선도 전기기기의 그림기호를 이용하여 나타낸 것이다. 4

2. 전기공압의 기본회로 2. 전기공압의 기본회로 학습목표 1. 전자밸브의 구조와 특징에 대하여 설명할 수 있다. 2. 실린더의 단속제어회로를 구성할 수 있다. 3. 실린더의 연속작동회로를 구성할 수 있다. 1. 전자밸브와 실린더 2.1 전자밸브 1) 전자밸브의 작동원리 방향변환 밸브와 솔레노이드를 일체화시켜 솔레노이드에 전류를 통전시키거나 또는 단전시키는 동작에 의해 공기 흐름을 변환시키는 밸브의 총칭한다. 일반적으로 솔레노이드 밸브라 부른다. 솔레노이드 솔레노이드의 뜻은 원통형( 管 狀 )으로 감은 전기 코일(Electrical coil)을 의미한다. 코일을 원형으로 감고 전류를 흘리면 원의 내측에 자기장( 磁 氣 場 -Magnetic field)이 생기는데 여 기에 자성 물질(철 등)을 접근시키면 원의 중심부로 순간 이동하게 된다. 즉 코일에 전기 에너지 를 인가 함으로서 기계 에너지 즉 왕복 운동에너지로 변환시키는 장치 즉, 코일과 자성물질(쇠 막 대)를 합쳐서 솔레노이드 라고 한다. 2) 전자밸브의 그림기호 전자밸브는 직동형과 파일럿작동형이 있다.전자밸브의 그림기호는 조작기를 나타내는 직사각형 내에 슬러쉬(/)로 솔레노이드를 나타낸다. 반대편에는 스프링이 장착되어 있 어서 밸브스풀의 초기 연결위치는 b 이다. 솔레노이드를 여자시키면 밸브스풀은 a 위치로 변환된다. 파일럿작동형 전자밸브의 그림기호 역시, 조작기를 나타내는 직사각형 내에 슬러쉬(/) 로 솔레노이드를 나타내지만, 직렬로 속이 채워지지 않은 옆으로 세워진 삼각형으로 파일럿공압을 나타낸다. 파일럿작동형 전자밸브의 작동원리는 그림기호에서 나타내듯 이 1 차적으로 솔레노이드에 의해 파일럿압이 유도되고, 이 유도된 파일럿공압에 의 하여 밸브스풀의 위치가 변환된다. 참고로 유공압에 관한 그림기호는 KSB0054 에 규정되어 있다. 5

2. 전기공압의 기본회로 파일럿공압 파일럿(pilot)은 안내하다는 뜻을 갖고 있다. 따라서 스풀밸브의 위치를 안내하는 공압이다. 3) 전자밸브의 분류방법 포트의 수 포트(port) : 공기가 출입하는 구멍 밸브의 포트 수를 말할 때에는 조작 신호용 파일럿 포트는 제외하고 주관로 포트 (공기압축기와 연결된 포트, 액추에이터에 연결된 포트, 배기 포트)만 을 셈한다. 파일럿 포트 파일럿관로는 주관로와는 달리 단지 파일럿압을 전달하여 밸브스풀의 위치를 변환시키는 용도로 사용되는 관로이고, 이런 파일럿관로와 연결되는 포트이다 주관로 포트 주관로는 공기압축기로부터 액추에이터로 연결되는 관로인데, 이 주관로와 연결되는 포트이다. 6

2. 전기공압의 기본회로 액추에이터 에너지를 사용하여 기계적인 일을 하는 기구를 말하는 것으로, 공압 액추에이터는 압축공기의 압 력 에너지를 기계적인 에너지로 변환하여 직선운동, 회전운동 등의 기계적인 일을 하는 기기로서 구동 기기라고도 한다. 제어위치의 수 전자방향제어밸브를 나타낼 때에 2 번째로 언급하는 것이 제어위치 수이다. 제어 위치의 수란 공기흐름의 상태를 결정하는 것으로 밸브 내의 스풀이 놓여질 수 있 는 위치의 수를 말한다. 이런 맥락에서 볼 때 방향변환 밸브는 최소한 2 가지 이상의 제어위치를 가지고 있다. 제어위치가 2 개인 것을 2위치, 3 개인 것을 3 위치라고 하며, 제어위치의 수만큼 정사각형을 연결하여 제어위치의 수를 표시한 다. 이 제어위치에서 각 포트의 연결상태는 정사각형 안에 화살표로 표시하는데 공기압에서 사용되는 밸브의 제어위치는 2 위치와 3 위치가 대부분이며, 특수한 것은 4 위치 밸브도 있다. 중립위치 위치 밸브는 종종 공기압 실린더의 중간정지나, 기계의 조정작업 등을 위해 사용 하는 경우가 있다. 그런데 이러한 밸브의 제어위치 중, 중앙의 것이 중립 위치이 다. 중립위치는 초기 위치이기도 하고 갑자기 전원이 오프 되는 비상시에 자동으 로 갖게 되는 위치이다. 중립위치에서의 각 포트의 연결상태는 사용하고자 하는 용도에 따라 다양하다. 전자방향제어밸브를 나타낼 때에는 포트 수, 제어위치 수, 다음으로 중립위치가 있는 경우에 중립위치를 나타낸다. 7

2. 전기공압의 기본회로 정상상태에서의 흐름의 형식 전자밸브에 신호를 주지 않았을 때를 정상상태 또는 초기상태라 말한다. 2 위치 밸브에서 정상상태에서 밸브가 열려 있는 상태를 정상상태 열림형 (Normally open) 이라고 하고, 정상상태에서 닫혀있는 밸브는 정상상태 닫힘형 (Normally Closed)이라 한다.. 예를 들어, 다음의 3 포트 2 위치 방향제어 밸브에 서 스프링에 연결되어 있는 위치가 정상상태인데, P 포트는 막혀있기 때문에 정 상상태닫힘형이고, 이것과 같이 P 포트가 A 포트와 연결되어 있으면 정상상태열 림형이라고 한다. 4) 전자밸브의 표기법 전자밸브의 표기법은 밸브에서 특정 연결구를 명확하게 지적하기 위해 각 연결구를 다음과 같은 ISO-1219(문자로 표기)나 ISO-5599(숫자로 표기)로 약속하여 표시한다. 밸브에 대한 ISO 표기법은 아래 그림과 같다. 작업라인 연결구란 액추에이터와 연결 되는 포트를 말한다. 이 포트들을 문자로 표시하면 A, B 로 나타내고, 숫자로 표시하 면 2, 4 로 짝수로 표시한다. 압축공기 공급라인은 공기압축기나 펌프 측에 연결되는 포트로서 문자표시로는 P, 숫자표시로는 1 로 나타낸다. 배기구는 문자표시로는 R, S, T,...와 같이 나타내고 숫자표시로는 3, 5, 7,...과 같이 나타내고, 제어라인은 파일럿 관로가 연결되는 관로인데 문자표시로는 Z, Y, X,...와 같이 나타내고, 숫자표시로는 10, 12, 14,...로 나타낸다. 8

2. 전기공압의 기본회로 심화학습 밸브에 대한 ISO 표기법의 예 5) 3포트 2위치 전자밸브 3 포트 2 위치 전자밸브는 주로 단동실린더의 제어에 사용된다. 다음은 정상상태 닫힘 형 파일럿 작동형 3 포트 2 위치 전자밸브의 내부구조인데 파일럿 작동식의 구조로서 작동원리는 솔레노이드에 전류를 인가하지 않은 상태에서는 지금과 같이 밸브는 내장 된 스프링에 의해 스풀이 밀려 원위치 되어 있으며 유체통로는 A 포트와 R 포트가 연 결되어 있고, P 포트는 차단되어 있다. 이 상태에서 솔레노이드를 여자시키면 다음과 같이, 솔레노이드가 가동철심을 흡인하 여 내부 공기통로를 열어주기 때문에 압축공기의 힘으로 주 밸브인 스풀이 밀려 이동 하고 공기통로는 P 포트와 A 포트가 접속하고 R 포트는 차단되게 된다. 여기 붉게 표 시한 부분은 압축공기로 차 있는 부분을 나타내고, 흰색부분은 대기압이 작용하고 있 는 부분을 나타낸다. 그리고 정전 등과 같은 비상시에도 밸브를 조작할 수 있도록 하 기 위하여 수동제어핀이 설치되어 있는데 수동제어핀을 누르면 압축공기의 출구를 막 고 있는 플러그를 밀어 열어서 솔레노이드가 여자되었을 때와 같은 효과가 나타난 9

2. 전기공압의 기본회로 다.. 6) 5포트 2위치 전자밸브(메모리 밸브) 전자밸브는 복동실린더의 제어나 공압모터 또는 공압 요동형 작동기의 방향제어에 많 이 사용되고 있는데 이 밸브는 스풀의 양쪽에 스프링이 없고 스풀의 랜드에 설치되어 있는 오링에 의하여 스풀의 현재위치를 유지하므로 플립플롭밸브 또는 메모리밸브라 고도 불리워진다. 좌측 솔레노이드에 전류를 인가하였을 때로 가동철힘이 솔레노이드 에 의해 흡인되어 내부 공기통로를 열어주기 때문에 밸브의 스풀은 공압에 의해 우측 으로 밀려 있고, 공기의 통로는 P 포트는 A 포트에 이어져 있고 B 포트의 공기는 R2 포트로 배기되고 있는 상태이다. 물론 이 상태에서 솔레노이드에 인가했던 전류를 차 단하여도 밸브는 이 상태를 유지한다. 이것은 이 밸브가 플립플롭형의 전자밸브이기 때문이다. 좌측 솔레노이드 전류를 차단하고 반대로 우측의 솔레노이드에 전류를 인가하면 다음 과 같이 압축공기는 P 에서 B 포트로 통하게 되고 A 포트는 R1 포트를 통해 배기된다. 그리고 밸브스풀의 초기위치를 정정할 때나 정전 등과 같은 비상시에도 밸브를 조작 할 수 있도록 하기 위하여 수동제어핀이 설치되어 있다. 수동제어핀을 누르면 압축공 기의 출구를 막고 있는 플러그를 밀어 열어서 솔레노이드가 여자되었을 때와 같은 효 과가 나타난다. 10

2. 전기공압의 기본회로 심화학습 스풀 랜드에 설치되어 있는 오링 스풀 랜드에 설치되어 있는 오링(O-ring)의 본래의 목적은 고압의 공기가 새어나가 지 못하도록 하는 실링이다. 오링은 고무재질로 되어 있기 때문에 탄성력이 있고, 새로운 스풀위치의 변경신호가 들어오기 전까지는 이 탄성력으로 인하여 꽉 조여져 있기 때문에 현재 위치가 유지될 수 있다. 2. 전기공압의 기본회로 2.1 자기유지를 사용한 복동실린더의 단속제어 아래 그림은 자기유지를 사용한 복동실린더의 단속제어로서, 누름버튼스위치 PB1 을 누르면 릴레이 R1 의 전자코일이 여자되고, 연동되어 있는 릴레이 R1 의 a 접점 에 의해 자기유지된다. 또한 릴레이 R1 의 a 접점에 의해 솔레노이드 Sol1 을 여자 시켜 밸브스풀의 위치가 변환되고 실린더를 전진시키는데, 이 때 누름버튼 PB1 에 서 손을 떼도 실린더는 자기유지회로에 의해 전진을 계속하고 누름버튼 PB2 를 눌 러야만 자기유지가 해제되어 실린더가 복귀한다. 자기유지회로를 사용하면 피스톤의 전진된 상태를 유지할 수 있다. 2.2 자동복귀회로 실린더가 전진 끝단에 도달했을 때 자동적으로 복귀하도록 하려면, 이과 같이 실린더 11

2. 전기공압의 기본회로 전진행정 끝단에 리밋스위치를 설치하여 그 신호로서 자기유지를 해제케 하면 가능하다. 리밋스위치 피스톤 로드 끝에 장착된 도그가 동작 중에 리밋스위치의 롤러를 누르면 마이크로 스위치가 눌려지게 되고 내부 전기적 접점의 절환이 일어난다. 리밋스위치는 a 접점 및 b 접점으로 사용될 수 있는데 a 접점으로 사용하려면 COM 단자와 N.O 단자를 사용하면 되고, b 접점으로 사용하려면 COM 단자와 N.C 단자를 사용하면 된다. 3.실린더의 연속왕복제어 3.1 편측 전자밸브를 사용한 연속왕복작동회로 누름버튼 스위치 PB1 을 누르면 R1 이 여자 2 행의 R1 접점에 의해 자기유지 됨 3 행의 R1 접점이 ON 되어 R2 가 여자되고 자기유지 됨 7 행의 sol1 이 ON 되어 실 린더전진 전진 끝단에서 LS2 에 접촉되면 5 행의 R3 가 여자되고 자기유지 됨 3 행의 R3 접점은 OFF 되어 R2 의 자기유지 해제 7 행의 R2 접점도 떨어져 실린더는 후진 실린더가 후진 끝까지 도달되어 LS1 리밋스위치를 ON 시킴 R3 의 자기유지가 해제 되고 그로 인해 3 행의 R3 접점은 다시 b 접점으로 원위치 됨 R2 의 코일이 자기 유지되고 7 행의 R2 접점도 ON 되어 실린더는 다시 전진 실린더는 계속적으로 전 12

2. 전기공압의 기본회로 진과 후진을 반복하며, 이것을 정지시키려면 1 행의 정지버튼 PB2 를 눌러 R1 의 자기 유지를 해제시켜야 한다. 3.2 양측 전자밸브를 사용한 연속왕복작동회로 시동신호인 누름버튼 스위치 PB1 을 누르면 R1 이 여자됨 2 행의 R1 접점에 의해 자 기유지 되며 동시에 3 행의 R1 접점이 ON 되어 R2 가 여자됨 5 행의 sol1 이 ON 되 어 실린더가 전진 전진 끝단에서 LS2 에 접촉되면 4 행의 R3 가 여자됨 6 행의 sol2 가 여자되어 실린더는 후진 실린더가 후진 끝까지 도달되어 LS1 리밋스위치를 누름 3 행에서 R1-a 접점은 ON 되어 있으므로 R2 가 여자되어 실린더는 전진 실린더는 계속적으로 전진과 후진을 반복하며, 이것을 정지시키려면 1 행의 정지버튼 PB2 를 눌 러 R1 의 자기유지를 해제시켜야 함 13

3. 시퀸스회로 설계법 3. 시퀸스회로 설계법 학습목표 1. 주회로차단법의 개념을 설명할 수 있다. 2. 주회로차단법을 사용하여 신호중복 방지 회로를 작성할 수 있다. 3. 최대신호차단법을 사용하여 신호중복 방지 회로를 작성할 수 있다. 3.1 신호중복 방지법의 종류 신호의 중복을 방지하는 방법에는 주회로차단법, 최대신호차단법, 최소신호차단법이 있 다. 주회로차단법은 실린더를 제어하는 밸브로 한쪽 솔레이드밸브를 사용할 때 사용하 는 방법이며, 최대신호차단법과 최소신호차단법은 양쪽솔레노이드밸브를 사용하여 실린 더를 제어할 때 적용할 수 있는 방법이다. 하드웨어적으로 배선한다면 사용되는 릴레이 개수가 작아 고장율로 작고 전력소모도 작은 최소신호차단법을 적용하는 것이 좋다. 그 러나 PLC 를 사용하여 소프트웨어적으로 배선한다면 굳이 최소신호차단법을 사용할 필 요가 없기 때문에 여기서는 최소신호차단법에 대한 상세한 설명은 생략하고 주회로차단 법과 최대신호차단법에 대해서만 설명하겠다. 3.2 주회로차단법 1) 기본개념 편솔레노이드밸브를 사용하여 실린더의 전 후진을 시키는 경우에 적용할 수 있는 방법이다. 실린더 전진을 위한 솔레노이드를 구동하는 주 회로 구간에서 복귀신호 를 주어 솔레노이드에 통전하던 신호를 차단하므로써 실린더를 후진시키는 방법이 다. 14

3. 시퀸스회로 설계법 2) 주회로차단법의 조건식과 조건식의 구성, 장단점 조건식 편솔레노이드밸브를 사용할 경우 릴레이가 ON 되는 조건식 - 첫 릴레이가 ON 되는 조건식: R 1 =(St LS + R 1 ) (R last ) b - 일반 릴레이가 ON 되는 조건식: R n =(LS + R n ) R n-1 - 최종 릴레이가 ON 되는 조건식: R last =(LS + R last ) Rlast-1 등호 왼편 R 1, R n, R last : 릴레이의 전자코일 등호 오른편 R 1, (R last ) b, R n, R n-1, R last, R last-1 : 릴레이의 b 접점 : 직렬연산 + : 병렬연산 LS : 바로 앞 단계의 도달조건 조건식의 구성 액추에이터의 동작순서에 따라 리밋스위치 신호와 전단계 신호로서 릴레이를 여자 시키고 자기유지시키며, 전진 신호는 릴레이의 a 접점으로 주 회로 구간에서 솔레 노이드와 접속하고, 복귀신호는 해당 릴레이의 b 접점으로 주회로 구간에서 솔레노 이드 위에 접속하여 구성하고 마지막 스텝의 릴레이가 동작하면 모든 릴레이가 순 차적으로 자기유지가 해제되도록 구성하는 것이다. 장점과 단점 장점 : 회로설계가 규칙적이고 신호의 처리가 간단하여 설계는 용이하다 단점 : 시스템의 동작시간이 길어지면 그에 따라 릴레이의 동작시간도 길어진다. 3) 적용 예 앞에서 신호중복의 예로 들었던 두 개의 클립을 반자동프레스로 리벳팅하는 작업에 대하여 지금까지 설명한 주회로차단법을 적용하여 시퀀스회로를 설계해 보겠다. 실 린더 동작순서는 신호중복이 발생하였던 A 전진, B 전진, B 후진, A 후진 이다. 15

3. 시퀸스회로 설계법 4) 설계순서 I 실린더의 동작순서를 간략적 표시법으로 나타낸다. 이 때 실린더 전진은 +로 후진은 로 표시하여 나타낸다. Ex) A+ B+ B- A- II 공압회로를 그리고 리밋스위치들을 배치한다. 실린더와 실린더를 제어하는 밸브를 그린다. - 실린더를 제어하는 밸브는 5 포트 2 위치 편측솔레노이드밸브를 사용하는 것 으로 그려야 한다. 리밋스위치들을 배치하고, 그려진 각각의 부품에 명칭을 부여한다. - 실린더는 A 실린더, B 실린더, 솔레노이드는 sol1, sol2, 리밋스위치는 LS1,LS2, LS3, LS4 로 명칭을 부여했다. III 실린더 작동순서와 함께 체크백 신호, 작동 릴레이, 작동 솔레노이드를 표시하 는 표를 작성한다. 16

3. 시퀸스회로 설계법 IV 조건식 만드는 방법 첫 번째 스텝의 LS 는 시퀀스 동작이 A+, B+, B-, A- 4 단계의 한 사이클로 되어 있어서, 한 사이클을 마치고 나면 다시 처음 스텝부터 다시 반복하게 되 므로 1 단계의 바로 전 단계는 마지막 단계인 4 번째 단계가 된다. 따라서 4 번 째 단계가 이루어졌을 때 눌려지는 리밋스위치 LS1 을 가리킨다. R last 는 여기 에서는 4 번째가 마지막 단계이므로 R4 가 된다. 다른 단계들도 같은 방식으로 기술하면 된다. 공식에 따라 사용할 릴레이가 ON 되는 조건식을 기술한다. V R1= (St LS1 + R1) (R4)b R2= (LS2 + R2) R1 R3= (LS4 + R3) R2 R4= (LS3 + R4) R3 앞 단계에서 작성된 조건식에 따라 제어회로를 작성한다. 제어회로의 작성법은 (1) 먼저 제어모선을 수직 평행 또는 수평평행 하게 두 줄 긋고 그 사이에 운 동 스텝 수만큼 제어요소인 릴레이를 배치한다. (2) 식(1)을 시퀀스회로로 표현한다. 즉 시동신호인 St 와 LS1 을 직렬로 연결 하고 R1 을 병렬로 연결하므로써 자기유지시킨다. 이것을 R4 의 b 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자코일 R1 에 연결한다. (3) 식(2)을 시퀀스회로로 표현한다. 즉 LS2 와 R2 를 병렬로 연결하므로써 자 기유지시키고, 이것을 R1 의 a 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자 코일 R2 에 연결한다. (4) 식(3)을 시퀀스회로로 표현한다. 즉 LS4 와 R3 를 병렬로 연결하므로써 자 기유지시키고, 이것을 R2 의 a 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자 코일 R3 에 연결한다. (5) 식(4)을 시퀀스회로로 표현한다. 즉 LS3 과 R4 를 병렬로 연결하므로써 자 기유지시키고, 이것을 R3 의 a 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자 코일 R4 에 연결한다. 17

3. 시퀸스회로 설계법 이상으로 조건식으로 표시한 것은 모두 시퀀스회로로 변환되었다. 다음에는 작 동순서대로 솔레노이드를 구동하는 회로를 추가한다. (6) R1 의 신호로 첫 스텝인 A+를 시키기 위해 주 회로 구간에서 R1 의 a 접점 을 통해 sol1 에 접속한다. (7) R2 의 신호로써 두 번째 스텝인 B+를 진행시켜야 되므로 주 회로 구간에서 R2 의 a 접점을 통해 sol2 에 접속한다. (8) R3 의 신호로써 세 번째 스텝인 B-를 시켜야 하므로 주회로 구간에서 B 실 린더 제어용 솔레노이드 sol2 앞에 R3 의 b 접점을 삽입한다. (9) R4 의 신호로써 네 번째 스텝인 A-를 시켜야 하므로 (8)항과 같이 주 회로 구간에서 sol1 앞에 R4 의 b 접점을 접속한다. 18

3. 시퀸스회로 설계법 3.3 최대신호차단법 1) 기본 개념과 설계법 양측 솔레노이드밸브를 사용하여 실린더의 전후진을 시키는 경우에 적용할 수 있는 방법으로 각각의 운동 스텝에 하나의 릴레이를 각각 할당한 회로설계법이 다. 2) 최대신호차단법의 조건식과 장단점 양측 솔레노이드 밸브를 사용할 경우 릴레이가 ON되는 조건식 - 첫 릴레이가 ON 되는 조건식: R 1 =(St LS R last + R 1 ) (R 2 ) b - 일반 릴레이가(처음과 최종사이의 릴레이)( ON 되는 조건식: R n =(LS R n-1 + R n ) (R n+1 ) b - 최종 릴레이가 ON 되는 조건식: R last =(LS R last-1 + R last + Reset) (R 1 ) b R: 릴레이의 전자코일 또는 a 접점 등호 왼편 R 1, R n, R last :릴레이의 전자코일 등호 오른편 R 1, (R last ) b, R n, R n-1, R last, R last-1 : 릴레이의 접점 (R) b : 릴레이의 b 접점 : 직렬연산 + : 병렬연산 LS : 바로 앞 단계의 도달조건 장점과 단점 - 장점 : 회로설계가 규칙적이고 신호의 처리가 간단하여 설계는 용이하다. - 단점 : 각각의 스텝에 릴레이를 하나씩 할당하기 때문에 릴레이의 사용 개수가 많아진다. (PLC로 제어할 때에는 문제가 되지 않음) 19

3. 시퀸스회로 설계법 2) 적용 예 앞에서 신호중복의 예로 들었던 두 개의 클립을 반자동프레스로 리벳팅하는 작업에 대하여 지금까지 설명한 최대신호차단법을 적용하여 시퀀스회로를 설계합니다. 실 린더 동작순서는 앞에서 예로 들어 신호중복이 발생하였던 A 전진, B 전진, B 후진, A 후진 이다. 3) 설계순서 1단계 제 1 단계로 실린더의 동작순서를 간략적 표시법으로 나타낸다. 이 때 실린더 전진은 +로 후진은 로 표시하여 나타낸다. 그러면 A+ B+ B- A- 와 같이 된 다. 2단계 공압회로를 그리고 리밋스위치들을 배치한다. 먼저 실린더와 실린더를 제어하는 밸브를 그려준다. 실린더를 제어하는 밸브는 5 포트 2 위치 양측솔레노이드밸브를 사용하는 것으 로 그려야 한다. 그리고 리밋스위치들을 배치하고, 그려진 각각의 부품에 명칭을 부여한다. 3단계 실린더 작동순서와 함께 체크백 신호, 작동릴레이, 작동솔레노이드를 표시하는 표를 작성한다. 20

3. 시퀸스회로 설계법 4단계 첫 번째 스텝의 LS 는 시퀀스 동작이 A+, B+, B-, A- 4 단계의 한 사이클로 되어 있어서, 한 사이클을 마치고 나면 다시 처음 스텝부터 다시 반복하게 되 므로 1 단계의 바로 전 단계는 마지막 단계인 4 번째 단계가 된다. 따라서 4 번 째 단계가 이루어졌을 때 눌려지는 리밋스위치 LS1 을 가리킨다. Rlast 는 여 기에서는 4 번째가 마지막 단계이므 로 R4 가 된다. 다른 단계들도 같은 방식으로 기술하면 된다. 공식에 따라 사용할 릴레이가 ON 되는 조건식을 기술한다. R1 = (St LS1 R4 + R1) (R2)b R2 = (LS2 R1 + R2) (R3)b R3 = (LS4 R2 + R3) (R4)b R4 = (LS3 R3 + R4+Reset) (R1)b 5단계 제어회로의 작성법은 (1) 먼저 제어모선을 수직 평행 또 는 수평평행 하게 두 줄 긋고 그 사 이에 운동 스텝 수만큼 제어요소인 릴레이를 배치한다. (2) 식(1)을 시퀀스회로로 표현한다. 21

3. 시퀸스회로 설계법 즉 시동신호인 St 와 LS1, R4 의 a 접점을 직렬로 연결하고 R1 을 병렬로 연결 하므로써 자기유지시킨다. 이것을 R2 의 b 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자코일 R1 에 연결한다. (3) 식(2)을 시퀀스회로로 표현한다. 즉 LS2 와 R1 의 a 접점을 직렬로 연결하 고 R2 를 병렬로 연결하므로써 자기유지시키고, 이것을 R3 의 b 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자코일 R2 에 연결한다. (4) 식(3)을 시퀀스회로로 표현한다. 즉 LS4 와 R2 의 a 접점을 직렬로 연결하 고 R3 를 병렬로 연결하므로써 자기유지시키고, 이것을 R4 의 b 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자코일 R3 에 연결한다. (5) 식(4)을 시퀀스회로로 표현한다. 즉 LS3 과 R3 의 a 접점을 직렬로 연결하 고 R4 를 병렬로 연결하므로써 자기유지시키고, 또 Reset 스위치를 병렬로 연 결하고 이것을 R1 의 b 접점과 직렬 연결시킨다. 그 결과를 릴레이 전자코일 R4 에 연결한다. 이상으로 조건식으로 표시한 것은 모두 시퀀스회로로 변환되었다. 다음에는 작 동순서대로 솔레노이드를 구동하는 회로를 추가한다. (6) R1 의 신호로 첫 스텝인 A+를 시키기 위해 R1 의 a 접점을 통해 sol1 에 접속한다. (7) R2 의 신호로써 두 번째 스텝인 B+를 진행시켜야 되므로 R2 의 a 접점을 통해 sol3 에 접속한다. (8) R3 의 신호로써 세 번째 스텝인 B-를 시켜야 하므로 R3 의 a 접점을 통해 sol4 에 접속한다. (9) R4 의 신호로써 네 번째 스텝인 A-를 시켜야 하므로 (8)항과 같이 R4 의 a 접점을 통해 sol2 에 접속한다. 22

PLC 의 기초 제 1 장 PLC 의 기초 4.1 PLC 의 정의및 적용분야 4.1.1 PLC 의 정의 PLC(Programmable Logic Controller)란, 종래에 사용하던 제어반 내의 릴레이 타이 머, 카운터 등의 기능을 LSI, 트랜스터 등의 반도체 소자로 대체시켜, 기본적인 시퀀 스 제어 기능에 수치 연산 기능을 추가하여 프로그램 제어가 가능하도록한 자율성 이 높은 제어 장치이다. 미국 전기 공업회 규격(NEMA: National Electrical Manufactrurers Association)에서는 디지털 또는 아날로그 입출력 모듈을 통하여 로직, 시퀀싱, 타이밍, 카운팅, 연산과 같은 특수한 기능을 수행하기 위하여 프로그램 가능한 메모리를 사용하고 여러 종 류의 기계나 프로세서를 제어하는 디지털 동작의 전자 장치 로 정의하고 있다. 1.1.1 PLC 의 적용 분야 설비의 자동화와 고 능률화의 요구에 따라 PLC 의 적용 범위는 확대 되고 있다. 특히 공장 자동화와 FMS(Flexible Manufacturing System)에 따른 PLC 의 요구는 과 거 중규모 이상의 릴레이 제어반 대체 효과에서 현재 고기능화, 고속화의 추세로 소규모 공작 기계에서 대규모 시스템 설비에 이르기 까지 적용되고 있다. 표 1-1 은 PLC 제어 대상에 따른 적용 분야를 나타낸 것이다. 표 1-1 PLC 적용 분야 분 야 제 어 대 상 식료 산업 제철, 제강 산업 섬유, 화학공업 자동차 산업 기계 산업 상하수도 물류 산업 공장 설비 공해 방지사업 컨베이어 총괄 제어, 생산라인 자동 제어 작업장 하역 제어, 원료 수송 제어, 압연 라인 제어, 하역 운반 제 원료 수입 출하 제어, 직조 염색 라인 제어 전송 라인 제어, 자동 조립 라인 제어, 도장 라인 제어, 용접기 제 산업용 로봇 제어, 공작 기계 제어, 송 배수 펌프 제어 정수장 제어, 하수 처리 제어, 송 배수 펌프 제어 자동 창고 제어, 하역 설비 제어, 반송 라인 제어 압축기 제어 쓰레기 소각로 자동 제어, 공해 방지기 제어 23

PLC 의 기초 1.2 PLC 의 구조 1.2.1 하드웨어 구조 (1) 전체구성 PLC 는 마이크로프로세서(microprocessor) 및 메모리를 중심으로 구성되어 인 간의 두뇌 역할을 하는 중앙처리장치(CPU), 외부 기기와의 신호를 연결시켜 주는 입 출력부, 각 부에 전원을 공급하는 전원부, PLC 내의 메모리에 프로그 램을 기록하는 주변 장치로 구성되어 있다. 그림 1-1 은 PLC 의 전체 구성도를 나타낸 것이다. (2) PLC 의 CPU 연산부 PLC 의 두뇌에 해당하는 부분으로서 메모리에 저장되어 있는 프로그램을 해독 하여 처리 내용을 실행한다. 이 절차는 매우 빠른 속도로 반복되며 모든 정보 는 2 진수로 처리된다. (3) PLC 의 CPU 메모리 메모리 소자의 종류 IC 메모리 종류에는 ROM(Read Only Memory)과 RAM(Random Access Memory) 이 있으며 ROM 은 읽기 전용으로, 메모리 내용을 변경할 수 없다. 따라서, 고정된 정보를 써 넣는다. 이 영역의 정보는 전원이 끊어져도 기억 내용 이 보존되는 불휘발성 메모리이다. RAM 은 메모리에 정보를 수시로 읽고 쓰기가 가능하여 정보를 일시 저장하 는 용도로 사용되나, 전원이 끊어지면 기억시킨 정보 내용을 상실하는 휘 발성 메모리이다. 그러나 필요에 따라 RAM 영역 일부를 배터리 백업 (battery back-up)에 의하여 불휘발성 영역으로 사용할 수 있다. 24

PLC 의 기초 메모리 내용 PLC 의 메모리는 사용자 프로그램 메모리, 데이터 메모리, 시스템 메모리 등의 3 가지로 구분된다. 사용자 프로그램 메모리는 제어하고자 하는 시스 템 규격에 따라 사용자가 작성한 프로그램이 저장되는 영역으로 제어 내용 이 프로그램 완성 전이나 완성 후에도 바뀔 수 있으므로 RAM 이 사용된다. 프로그램이 완성되어 고정이 되면 ROM 에 써 넣어 ROM 운전을 할 수 있다. 데이터 메모리는 입 출력 릴레이, 보조 릴레이, 타이머와 카운터의 접점 상 태 및 설정값, 현재값 등의 정보가 저장되는 영역으로 정보가 수시로 바뀌 므로 RAM 영역이 사용된다. 시스템 메모리는 PLC 제작 회사에서 작성한 시스템 프로그램이 저장되는 영역이다. 이 시스템 프로그램은 PLC 의 기능이나 성능을 결정하는 중요한 프로그램으로, PLC 제작 회사에서 직접 ROM 에 써 넣는다. (4) PLC 의 입 출력부 PLC 의 입 출력부는 현장의 외부 기기에 직접 접속하여 사용한다. PLC 내부 는 DC+5(V)의 전원(TTL 레벨)을 사용하지만 입 출력부는 다른 전압 레벨 을 사용하므로 PLC 내부와 입 출력의 접속(interface)은 시스템 안정에 결정적인 요소가 된다. PLC 의 입 출력부는 다음의 사항이 요구된다. 외부 기기와 전기적 규격이 일치해야 한다. 외부 기기로 부터의 노이즈가 CPU 쪽에 전달되지 않도록 해야한다. [포토 커플러(photocoupler) 사용] 외부 기기와의 접속이 용이해야 한다. 입출력의 각 접점 상태를 감시할 수 있어야 한다.(LED 부착) 입력부는 외부 기기의 상태를 검출하거나 조작 판넬을 통해 외부 장치의 움직임을 지시하고 출력부는 외부 기기를 움직이거나 상태를 표시한다. 25

PLC 의 기초 입 출력부에 접속되는 외부 기기 예는 표 1-2 와 같다. 표 1-2 입출력 기기 I/O 구 분 부 착 장 소 외부 기기의 명치 조작 입력 제어반과 조작반 푸시 버튼 스위치 선택 스위치 토글 스위치 입력부 리밋 스위치 검출 입력 광전 스위치 기계 장치 (센서) 근접 스위치 레벨 스위치 표시 경보 출력 제어반 및 조작반 파일럿 램프 부저 전자 밸브 출력부 구동 출력 전자 클러치 기계장치 (액추에이터) 전자 브레이크 전자 개폐기 가)입력부 외부 기기로부터의 신호를 CPU 의 연산부로 전달해 주는 역할을 한다. 입력의 종 류로는 DC24[V], AC110[V] 등이 있고, 그 밖의 특수 입력 모듈로는 아날로그 입력(A/D) 모듈, 고속 카운터( high speed counter) 모듈 등이 있다. 입력부 회로의 예는 그림 1-2 와 같다. 26

PLC 의 기초 나)출력부 내부 연산의 결과를 외부에 접속된 전자 접촉기나 솔레노이드에 전달하여 구동시 키는 부분이다. 출력의 종류에는 릴레이 출력, 트랜지스터 출력, SSR(Solid State Relay)출력 등이 있고 그 밖의 출력 모듈로는 아날로그 출력(D/A) 모 듈, 위치 결정 모듈등이 있다. 트랜지스터 출력부 회로의 예는 그림 1-3 과 같다. 출력 모듈을 출력 신호와 개폐 소자에 따라 분류하면 표 1-3 과 같다. 표 1-3 출력 모듈의 종류 개 폐 소 자 출력 신호 종류 유 접 점 무접점(반도체) 직류(DC) 릴레이 출력 트랜지스터 출력 교류(AC) 릴레이 출력 SSR 출력 표 1-3 에서와 같이 릴레이 출력은 직류나 교류를 모두 사용할 수 있으나 기계적 수명의 한계 때문에 접점의 개폐가 빈번할 경우는 교류 전원 전용인 무접점 SSR 출력이나 직류 전원 전용인 트랜지스터 출력을 사용하여야 한다. 27

PLC 의 기초 1.2.2 소프트웨어 구조 (1) 하드 와이어드와 소프트 와이어드 종래의 릴레이 제어 방식은 일의 순서를 회로도에 전개하여 그곳에 필요한 제 어 기기를 결합하여 리드선으로 배선 작업을 해서 요구하는 동작을 실현한다. 이같은 방식을 하드와어어드 로직(hardwired logic)이라고 한다. 하드와이어드 로직 방식에서는 하드(기기)와 소프트가 한쌍이 되어 있어 사양 이 변경되면 하드와 소프트를 모두 변경해야 하므로, 이것이 갖가지 문제를 발생시키는 원인이 된다. 따라서, 하드와 소프트를 분리하는 연구 끝에 컴퓨 터 방식이 개발되었다. 컴퓨터는 하드웨어(hardware)만으로는 동작할 수 없다. 하드웨어 속에 있는 기억 장치에 일의 순서를 넣어야만 비로소 기대되는 일을 할 수가 있다. 이 일의 순서를 프로그램이라 하며 기억 장치인 이 메모리에 일의 순서를 넣는 작업을 프로그래밍이라 한다. 이는 마치 배선작업과 같다고 생각하면 된다. 이 방식을 소프트와이어드로직(softwired logic)이라 하며 PLC 는 이 방식을 취하고 있다. (2) 릴레이 시퀀스와 PLC 프로그램 차이점 PLC 는 LSI 등의 전자 부품의 집합으로 릴레이 시퀀스와 같은 접점이나 코일 은 존재하지 않으며 접점이나 코일을 연결하는 동작은 소프트웨어로 처리되 므로 실제로 눈에 보이는 것이 아니다. 또, 동작도 코일이 여자되면 접점이 닫혀 회로가 활성화되는 릴레이 시퀀스 와는 달리 메모리에 프로그램을 기억시켜 놓고 순차적으로 내용을 읽어서 그 내용에 따라 동작하는 방식이다. PLC 제어는 프로그램의 내용에 의하여 좌우된다. 따라서 사용자는 자유 자재로 원하는 제어를 할 수 있도록 프로그램의 작성 능력이 요구된다. (가) 직렬 처리와 병렬 처리 PLC 시퀀스와 릴레이 시퀀스의 가장 근본적인 차이점은 그림 1-5 에 나타낸 것과 같이 직렬 처리와 병렬 처리 라는 동작상의 차이에 있다. 28

PLC 의 기초 PLC 는 메모리에 있는 프로그램을 순차적으로 연산하는 직렬 처리 방식이고 릴레이 시퀀스는 여러 회로가 전기적인 신호에 의해 동시에 동작하는 병렬 처리 방식이다. 따라서 PLC 는 어느 한 순간을 포착해 보면 한 가지 일 밖 에 하지 않는다. 먼저 그림 1-6(a)의 시퀀스도로 PLC 와 릴레이의 동작상의 차이점을 설명한다. 릴레이 시퀀스에서는 전원이 투입되어 접점 A 와 B, 그리고 접점 D 와 E 가 동시 에 닫히면, 출력 C 와 F 는 동작하고 어느 한쪽이 빠를수록 먼저 동작한다. 이에 비하면 PLC 는 연산 순서에 따라 C 가 먼저 출력되고 다음에 F 가 출력된다. PLC 와 릴레이의 동작상의 차이점을 그림 1-6(b)의 경우에서 살펴 보면 먼저 릴 레이 시퀀스에서는 전원이 투입되면 점점 J 가 닫힘과 동시에 H 가 동작되어 출력 I 는 동작될 수 없다. PLC 는 직렬 연산 처리되므로 최초의 연산 때 G 가 닫히면 I 가 출력되고 J 가 닫 히면 H 가 출력된다. 두 번째 연산 때 비로소 최초의 연산 때 출력된 H 에 의해서 I 의 출력이 해제 된다. (나) 사용 접점 수의 제한 릴레이는 일반적으로 개당 가질 수 있는 접점 수에 한계가 있다. 따라서 릴레이 시퀸스를 작성할 때에는 가능한 한 접점 수를 절약해야 한다. 이에 비하여 PLC 는 동일 접점에 대하여 사용 횟수에 제한을 받지 않는다. 29

PLC 의 기초 이는 동일 접점에 대한 정보(ON/OFF)를 정해진 메모리에 저장해 놓고 연산할 때 메모리에 있는 정보를 읽어서 처리하기 때문이다. (다) 접점이나 코일 위치의 제한 PLC 시퀀스에는 릴레이 시퀀스에는 없는 약속 사항이 있다. 그 하나는 코일 이후 접점을 금지하는 사항이다. PLC 시퀀스에서는 코일을 반드시 오른쪽 모선에 붙여서 작성해야 한다. 그 밖에 PLC 시퀀스에서는 항상 신호가 왼쪽에서 오른쪽으로 전달되도록 구성 되어 있다. 따라서 PLC 시퀀스는 릴레이 시퀀스와는 다르게 오른쪽에서 왼쪽으로 흐르는 회로나, 상하로 흐르는 회로 구성을 금지하고 있다. PLC 시퀀스의 약속 사항을 그림 1-7 에 나타낸다. 그림 1-7 PLC 시퀀스의 약속 사항 30

GLOFA-GM 개요 제 2 장 GLOFA-GM 개요 2 GLOFA-GM 개요 그동안 PLC 고객은 메이커(maker)마다 사용 언어와 통신 네트워크가 서로 달라 많은 불편함을 겪어 왔습니다. 이러한 불편함을 해소하고, PLC 고객에게 편리성을 도모하고자 IEC(International Electrotechnical Commission ; 국제 전기 표준 회의)에서 PLC 국제 표준화 규격이 제정 되었습니다. 국제 표준화 규격(IEC1131)은 크게 5 Part 로 구성되어 있는데 Part 1 은 PLC 의 기본 기능 및 용어 정의 Part 2 는 설비의 요구 기능 및 시험 조건 Part 3 은 프로그램 언어 Part 4 는 사용자 지침 Part 5 는 통신 네트워크로 구성되어 있습니다. GLOFA PLC 는 이 IEC 규격에의해 개발되었으며 주요 특징은 다음과 같습니다. 2.1 국제 표준화 규격 채택 2.1.1 IEC 표준 언어 IEC 언어에서 새로 도입한 가장 중요한 특징들은 다음과 같습니다. 다양한 데이터 타입(type)을 지원합니다. 펑션, 펑션 블록, 프로그램과 같은 프로그램 구성 요소가 도입되어 상향식, 또는 하향식 설계가 가능하며 프로그램을 구조적으로 작성할 수 있습니다. 사용자가 작성한 프로그램을 라이브러리 화하여 다른 프로젝트에서 소프트 웨어를 재 사용할 수 있습니다. 다양한 언어를 지원하므로 사용자는 최적의 언어를 선택하여 사용할 수 있 습니다. IEC 에서 표준화한 PLC 용 언어는 두 개의 도형 기반 언어와 두 개의 문자 기반 언어, 그리고 SFC 로 이루어져 있습니다. (1) 도형식(graphic) 언어 1 LD(Ladder Diagram) : 릴레이 로직 표현 방식의 언어 2 FBD(Function Block Diagram) : 블록화한 기능을 서로 연결하여 프로그램 을표현하는 언어 (2) 문자식(text) 언어 1 IL(Instruction List) : 어셈블리 언어 형태의 언어 2 ST(Structured Text) : 파스칼 형식의 고 수준 언어 (3) SFC(Sequential Function Chart) 현재, GLOFA PLC는 IL, LD 및 SFC 언어가 지원됩니다. 31

GLOFA-GM 개요 2.1.2 국제 규격의 통신 프로토콜 Open 네트워크를 지향하여 이기종, 멀티 벤더 간의 통신이 가능합니다. 상위 네트워크로 Mini-MAP(5Mbps), Ethernet 채용 하위 네트워크로 Fieldbus(1Mbps), Device net 채용 2.2 윈도우 환경의 프로그래밍 Tool(GMWIN) 지원 GMWIN(Programming & Debugging Tool)의 윈도우 환경 채용으로 프로그램 작성, 수정 시 윈도우 장점을 모두 이용할 수 있습니다. MDI(Multiple Document Interface) 지원: 하나의 화면에 각기 다른 언어를 사용하여 동시에 프로그램 작성, 수정 및 모니터링이 가능 2.3 프로그램 작성 용이 프로그램의 구조화, 모듈화에 의해 프로그램 작성이 매우 편리합니다. 입출력 식별자명을 실제 접속되는 기기명(한글/한자 또는 영문)으로 프로 그래밍이 가능합니다. MASTER-K GLOFA-GM P000 리밋 1 32

GLOFA-GM 제품규격 제3 GLOFA-GM 3 장 GLOFA-GM 제품 규격 제품 규격 3.1 성능 규격 언어 구성체 종류 연산 처리 속도 항 목 GMR GM1 GM2 GM3 GM4 GM5 제어 방식 입출력 제어 방식 프로그램 언어 오퍼레이터 저장된 프로그램 반복 연산, 정주기 연산, 인터럽트 연산 스캔 동기 일괄처리 방식 LD (Ladder Diagram) IL (Instruction List) SFC (Sequential Function Chart) LD : 13 개, IL : 21 개 기본 펑션 156 개 324 개 324 개 324 개 194 개 194 개 기본 펑션 블록 11 개 11 개 11 개 11 개 11 개 12 개 전용 펑션 블록 이중화 전용 펑 션 블 록 특수 기능 전용 펑션 블록 오퍼레이터 0.12 μs / 명령 0.2 μs/ 명령 기본 펑션 기본 펑션 블록 프로그램 메모리용량 입출력 점수 데이터 메모리 타이머 512 kbyte (128 k step) 0.12 μs / step 0.2 μs / 명령 256 kbyte (64 kstep) 128 kbyte (32 kstep) 32 점모듈사용시 3,840 점 8,000 점 2,048 점 1,024 점 512 점 64 점모듈사용시 7,680 점 32,000 *1 16,000 점 4,096 점 2,048 점 1,024 점 직접 변수 영역 0 ~ 64 kbyte 8 ~ 64 kbyte 8 ~ 64 kbyte 2 ~ 16 kbyte 네임드 변수영역 최대 116 최대 52 최대 446 kbyte *2 kbyte kbyte 점수 제한 없음, 시간범위 : 0.001 초 ~ 4294967.295 초(1,193 시간) 카운터 점수 제한 없음, 계수범위 : - 32,768 ~ + 32,767 운전모드 Pause 모드 없음 Run, Stop, Debug, Pause 정전시 데이터 보존 프로그램 블록수 프로 그램 종류 스캔 변수 정의시 보존(Retain)으로 설정된 데이터 180 개 태스크 프로그램으로 등록하지 않은 프로그램 정주기 태스크 32 개 8 개 외부접점태스크 없음 16 개 8 개 8 개 내부접점태스크 16 개 8 개 초기화 태스크 2 개(_INT, _ H_INT) 에러 테스크 1 개(_ERR_SYS) 없음 자기 진단 기능 리스타트 기능 64 kbyte (16 kstep) 192 점 2 ~ 16 kbyte 최대 32 kbyte 운전상태 감시, 연산지연 감시, 메모리 이상, 입출력 이상, 배터리 이상, 전원 이상 등 콜드, 웜, 핫 리스타트 증설 베이스 수 총 16 개 31 개 7 개 3 개 3 개 멀티 CPU 운전 불가 최대 4개 불가 이중화운전 중복, 전환, 단독 입출력 *1 : 네트워크 구성 시 최대 입출력 점수 *2 : 네임드 변수 = 최대 네임드 범위 - 직접 변수 지정 범위 불가능 33

GLOFA-GM 제품규격 3.2 제품 MAP 34

GLOFA-GM 제품규격 3.3 제품 구성 3.3.1 모듈형 3.3.2 블록형 35

데이터 메모리 구성 제4 데이터 4 장 데이터 메모리 메모리 구성 구성 4.1 변수의 표현 방식 프로그램 안에서 사용되는 데이터는 값을 가지고 있는데, 프로그램이 실행되는 동안에 값이 바뀌지 않는 상수와 그 값이 변하는 변수가 있습니다. 프로그램 블록, 펑션, 펑션블록 등의 프로그램 구성 요소에서 변수를 사용하기 위해서 우선 변수 의 표현 방식을 설명 합니다. 변수 표현 방식 직접 변수 : 변수 선언 불필요(종래의 PLC 방식) 네임드(Named) 변수 : 변수 선언 필요 첫 번째 변수 표현 방식은 사용자가 이름을 부여하지 않고 이미 Maker 에 의해 지정된 메모리 영역의 식별자를 사용하는 직접 변수 방식이고, 두 번째 변수 표현 방식은 사용자가 이름을 부여하고 사용하는 네임드(Named; Symbolic) 변수 방식 입니다. 4.1.1 직접 변수 직접 변수는 사용자가 변수 이름과 형 등의 선언이 없이 이미 Maker 에 의해 정 해진 메모리 영역의 식별자와 주소를 사용합니다. 직접 변수에는 %I, %Q 의 입출력 변수와 %M 의 내부 메모리 변수가 있습니다. 입출력 변수와 내부 메모리 변수 크기는 PLC 종류에 따라 차이가 있습니다. 직접 변수는 별도의 변수 선언 없이 식별자의 위치를 표현하는 방식이므로 프로 그램의 가독성( 可 讀 性 )이 떨어지며 사용자의 잘못으로 어드레스 등이 중복될 우려 가 있습니다. 따라서 되도록 다른 변수 표현 방식인 네임드(Named) 변수의 사용을 권장 합니다. 직접 변수는 반드시 퍼센트 문자(%)로 시작하고 다음에 위치 접두어와 크기 접 두어를 붙이며 그리고 마침표로 분리되는 하나 이상의 부호 없는 정수의 순으로 나 타냅니다. 36

데이터 메모리 구성 위치 접두어 접두어 의 미 I Q M 입력 위치(Input Location) 출력 위치(Output Location) 내부 메모리 위치(Memory Location) 크기 접두어 접두어 X B W D L 의 미 1 비트의 크기 ( X 문자에 한하여 생략 가능) 1 바이트(8 비트)의 크기 1 워드(16 비트)의 크기 1 더블 워드(32 비트)의 크기 1 롱 워드(64 비트)의 크기 표현 형식 : % [위치 접두어] [크기 접두어] 베이스 번호. 슬롯 번호. N 여기서 N은 [크기 접두어]에 따른 N번째 데이터 (0 부터 시작) 입출력 접점 및 내부 메모리의 표현 예는 다음과 같습니다. 입력 : %IX0.0.0 출력 : %QX0.3.15 입출력 모듈의 접점 번호를 나타내며, 범위는 0 ~ 63 입니다 입출력 모듈이 장착된 슬롯 번호를 나타내며, 범위는 0 ~ 7 입니다. 베이스 번호를 나타내며, 범위는 0 ~ 31 입니다. X 는 1 비트의 크기를 나타낸다. 내부 메모리 : %MX0 0 의 위치에 있는 비트 단위의 접점 번호를 나타낸다. %MB1 1 의 위치에 있는 바이트 단위의 메모리를 나타낸다. %MD48 48 의 위치에 있는 더블 워드 단위의 메모리를 나타낸다. %MW20.3 20 의 위치에 있는 워드 단위의 메모리중 3 번 비트를 나타낸다. (내부 메모리는 베이스, 슬롯 번호가 없습니다) 37

데이터 메모리 구성, 내부 메모리(%M) MAP %MX15 %MX8%MX7 %MX0 WORD (16bit) 단위의 %MW0 b 15 b 14 b 13 b 12 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 어드레스 %MW99 할당 예 %MW100 %MW101 %MB201 %MB200 Byte(8bit) 단위의 어드레스 할당 예 %MB200 7 6 5 4 3 2 1 0 Bit 단위의 어드레스 할당 예 %MX1603 %MB200.3 %MW100.3 38

데이터 메모리 구성 4.1.2 네임드(Named) 변수 네임드 변수는 사용자가 변수 이름과 형 등을 선언하고 사용합니다. 네임드 변수의 이름은 한글/한자는 8 자, 영문은 16 자 까지 선언 가능하며 한글, 영문, 숫자및 밑줄 문자(_)를 조합하여 사용할 수 있습니다. 또한 영문자의 경우 대 소 문자를 구별하지 않고 모두 대문자로 인식하며 빈 칸을 포함하지 않아야 합니다. 네임드 변수 예 종 류 사 용 예 한글, 숫자 및 밑줄 문자 한글, 영문, 숫자 및 밑줄 문자 모터 10, 디지털_스위치 1, 누름_검출, 수동_배출_스위치 밸브 1, 설비_자동_운전중, 사이클_정지_완료 AGV_주행_완료, 모터 2_ON, BCD 값,, VAL2, 자동_SOL_배출 네임드 변수의 변수 선언 절차는 다음과 같습니다. (변수 종류 설정 데이터 형(type) 지정 메모리 할당) 4.2 네임드(Named) 변수의 종류(속성) 변수를 어떻게 선언할 것인지를 설정합니다. 변수 종류 VAR VAR_RETAIN VAR_CONSTANT VAR_EXTERNAL 내 용 읽고 쓸 수 있는 일반적인 변수 정전후 복전시 값이 유지되는 변수 읽기만 할 수 있는 변수 외부 변수(VAR_GLOBAL) 임을 지정하는 변수 39

데이터 메모리 구성 4.3 Named(네임드) 변수의 데이터 형(Type) 데이터의 고유 성질을 나타냅니다. 데이터형은 크게 수치(ANY_NUM)와 비트 상태(ANY_BIT)로 구분할 수 있습니다. 수치의 대표적인 경우는 정수(INT; Interger)인데 셀 수 있고 산술 연산을 할 수 있습니다. 정수의 예는 카운터의 현재값, A/D(아날로그 입력) 변환값 등이 있습니다. 비트 상태는 BOOL(Boolean; 1 비트), BYTE(8 개의 비트 열), WOTD(16 개의 비트 열)등이 있는데 비트 열의 On/Off 상태를 나타내며 논리 연산을 할 수 있습니다. 비트 상태의 예는 입력 스위치의 On/Off 상태, 출력 램프의 소등/점등 상태 등이 있습니다. BCD 는 10 진수를 4 비트의 2 진 코드로 나타낸 것이므로 비트 열(ANY_BIT)입 니다. 비트 상태는 산술연산이 불가능하지만 형(Type) 변환 펑션을 사용하여 수치로 변환하면 산술 연산이 가능합니다. 40

데이터 메모리 구성 4.3.1 기본 데이터 형 구 분 예 약 어 데이터 형 크기 (비트) 범 위 SINT Short Integer 8-128 ~ 127 INT Integer 16-32768 ~ 32767 DINT Double Integer 32-2147483648 ~ 2147483647 LINT Long Integer 64-2 63 ~ 2 63-1 수치 USINT Unsigned Short Integer 8 0 ~ 255 UINT Unsigned Integer 16 0 ~ 65535 (ANY_NUM UDINT Unsigned Double Integer 32 0 ~ 4294967295 ) ULINT Unsigned Long Integer 64 0 ~ 2 64-1 REAL Real Numbers 32-3.402823E38 ~ -1.401298E-45 1.401298E-45 ~ 3.402823E38 LREAL Long Reals 64-1.7976931E308 ~-4.9406564E-324 4.9406564E-324 ~ 1.7976931E308 시간 TIME Duration 32 T#0S ~ T#49D17H2M47S295MS DATE Date 16 D#1984-01-01 ~ D#2163-6-6 TIME_OF Time Of Day 32 TOD#00:00:00 ~ TOD#23:59:59.999 날짜 _DAY DATE_A ND_TIME Date And Time Of Day 64 DT#1984-01-01-00:00:00 ~ DT#2163-12-31-23:59:59.999 문자열 STRING Character String 30*8 30 문자 BOOL Boolean 1 0, 1 비트 상태 (ANY_BIT) BYTE Bit String Of Length 8 8 16#0 ~ 16#FF WORD Bit String Of Length 16 16 16#0 ~ 16#FFFF DWORD Bit String Of Length 32 32 16#0 ~ 16#FFFFFFFF LWORD Bit String Of Length 64 64 16#0 ~ 16#FFFFFFFFFFFFFFFF 4.3.2 데이터 형(Type) 계층도 GLOFA PLC 에서 사용되는 데이터 타입은 다음과 같이 분류하여 표현합니다. 41

데이터 메모리 구성 ANY ANY_NUM ANY_BIT STRING ANY_DATE TIME LWORD(GM1,2) DATE_AND_TIME ANY_REAL ANY_INT DWORD DATE (GM1,2) LINT(GM1,2) WORD TIME_OF_DAY LREAL DINT BYTE REAL INT BOOL SINT ULINT(GM1,2) UDINT UINT USINT ANY_REAL(LREAL, REAL) 및 LINT, ULINT, LWORD 는 GM1, GM2 만 적용됩니다. 앞으로 데이터 타입을 표현할 때 ANY_NUM 으로 나타내면 위의 계층도와 같이 LREAL, REAL, LINT, DINT, INT, SINT, ULINT, UDINT, UINT, USINT 를 모두 포함합 니다. 예를 들어 GM3 에서 타입이 ANY_BIT 로 표현되면, DWORD, WORD, BYTE, BOOL 중 하 나를 사용할 수 있습니다. 4.3.3초기값 데이터의 초기값을 지정하지 않으면 자동적으로 아래와 같이 지정됩니다. 데이터 타입 초기값 SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT 0 BOOL, BYTE, WORD, DWORD, LWORD 0 REAL, LREAL 0.0 TIME T#0s DATE D#1984-01-01 TIME_OF_DAY TOD#00:00:00 DATE_AND_TIME DT#1984-01-01-00:00:00 STRING '' (empty string) VAR_EXTERNAL 의 선언은 외부에서 선언한 변수를 간접 지정한 것이므로 초기 값을 줄 수 없습니다. 42

데이터 메모리 구성 변수 선언시 %I 와 %Q 로 할당한 변수는 입출력에 해당하므로 초기값을 줄 수 없습니다. 4.4 Named(네임드) 변수의 메모리 할당 네임드 변수의 메모리 할당에는 자동 할당과 사용자 정의가 있습니다. 4.4.1 자동 할당 컴파일러가 내부 메모리 영역에 변수 위치를 자동으로 지정 합니다. 예를 들어 밸브 란 변수를 자동 메모리 할당으로 지정할 경우 변수의 내부 위치 는 프로그램이 작성된 후 컴파일(Compile) 과정에서 정해지므로 사용자는 변수 위 치에 신경을 쓸 필요가 없습니다. 선언된 변수는 외부 입출력과 관계 없이 내부 연산 도중 신호의 중계, 신호 상태 (내부 정보)의 일시 저장, 타이머나 카운터의 접점 이름(펑션 블록의 인스턴스) 지 정 등에 사용됩니다. 4.4.2 사용자 정의 사용자가 직접 변수(%I, %Q, %M)를 사용하여 강제로 위치를 지정합니다. 선언된 변수는 입출력용(%I, %Q) 변수와 통신 파라미터에서 사용할 통신용(%M)변수에 사용합니다. 사용자 정의 메모리 할당의 표현 형식은 직접변수 지정 방식과 같습니다. 43

연산처리 제5 연산 5 장 처리 연산 처리 5.1 스캔 타임(Scan time) PLC 의 연산 처리 방법은 입력 리프레시(refresh)된 상태에서 이를 조건으로 프 로그램 처음부터 마지막 까지 순차적으로 연산을 실행하고 출력 리프레시(refresh) 를 합니다. 이러한 동작은 고속으로 반복되는데 이러한 방식을 반복 연산 방식 이라 하고 한 바퀴 도는데 걸리는 시간을 1 스캔 타임 (1 연산 주기)라고 합니다. 5.1.1 입출력 리프레시 프로그램의 연산을 시작하기 전에 입력 모듈로 부터 접점의 상태를 읽어 들여 입력 이미지(input image) 영역에 저장하고 프로그램의 연산이 끝나면 프로그램 실행에 의해 변화된 출력 이미지(output image) 결과값을 출력 모듈에 쓰는데 이 를 입출력 리프레시 (I/O refresh)라고 합니다. 5.1.2 입출력 이미지 영역 GLOFA PLC 는 반복 연산 방식이므로 프로그램 연산 도중에는 입출력의 상태를 직접 바꾸지 않고 스캔 단위로 입출력 리프레시를 수행합니다. 따라서 프로그램 연산 도중 변화된 각 입출력 접점의 상태를 PLC 내의 메모리 영 역에 저장해 놓는데 이 영역을 입출력 이미지 영역이라고 합니다. 운전 시작 입력 이미지영역 리프레시 입력 모듈 접점 1 스캔 스캔 프로그램 시작... 스캔 프로그램 마지막 태스크 프 수행 출력 이미지영역 리프레시 출력 모듈 접점 END 처리 44

연산처리 5.2 운전 모드 5.2.1 RUN 모드 프로그램 연산을 정상적으로 수행하는 모드입니다. (1) 모드 변경 시 처리 처음 스캔 시작시에 데이터 영역의 초기화가 수행됩니다. (2) 연산 처리 내용 입출력 리프레시와 프로그램의 연산을 수행합니다. 5.2.2 PAUSE 모드 프로그램의 연산이 일시 정지된 모드입니다. 다시 RUN 모드로 돌아갈 경우에는 정지 되기 이전의 상태부터 연속하여 운전 됩니다. (1) 모드 변경 시 처리 데이터 영역의 초기화, 입출력 이미지 영역 클리어(clear)를 수행하지 않고 모드 변경 직전의 운전 상태를 유지합니다. (2) 연산 처리 내용 입출력 리프레시를 수행합니다. 5.2.3 운전 모드 변경 (1) 모드 변경의 변경 방법 1 CPU 모듈의 모드 키에 의한 변경 2 CPU 모듈의 통신 포트에 GMWIN 을 접속하여 변경 3 GMWIN 을 F-net 상에 연결된 다른 CPU 모듈에 접속하여 변경 4 FAM, 컴퓨터 링크 모듈 등을 이용하여 사용자 명령으로 변경 5 프로그램 수행 중 STOP 펑션 에 의한 변경 (2) 모드 키에 의한 운전 모드 변경 모드 키 위치 운전 모드 RUN 로컬 RUN STOP 로컬 STOP STOP PAU/ REM 리모트 STOP PAU/REM RUN * 로컬 RUN RUN PAU/ REM 로컬 PAUSE PAU/REM STOP 로컬 STOP * 리모트 RUN 모드에서 모드 키에 의해 로컬 RUN 모드로 변경되는 경 우 PLC 는 중단 없이 연속 운전합니다. 45

연산처리 (3) 리모트 운전 모드 변경 리모트 모드 변경은 모드 키의 위치가 리모트 STOP 으로 설정된 경우만 가능합니다. (모드 키가 STOP PAU/ REM 의 위치로 전환한 경우) 모드 키 위치 모드 변경 GMWIN 에 의한 모드 변경 FAM, 컴퓨터 통신 등을 이용한 변경 리모트 STOP 리모트 RUN O O 리모트 STOP 리모트 PAUSE X 리모트 STOP DEBUG O X 리모트 RUN 리모트 PAUSE O 리모트 RUN 리모트 STOP O O PAU/ REM 리모트 RUN DEBUG X X 리모트 PAUSE 리모트 RUN O O 리모트 PAUSE 리모트 STOP O O 리모트 PAUSE 리모트 DEBUG X X DEBUG 리모트 STOP O O DEBUG 리모트 RUN X X DEBUG 리모트 PAUSE X X (4) 리모트 운전 모드 변경 허가 시스템의 보호를 위하여 운전 모드 변경 소스(Source) 중 일부가 모드 변경을 할 수 없도록 할 수 있으며, 리모트 운전 모드 변경 금지시에는 모드 키와 GMWIN에 의해서만 운전 모드 변경이 가능합니다. 설정은 기본 파라미터의 '통신에 의한 PLC 제어 허용' 항에서 합니다. 5.3리스타트 모드 리스타트 모드는 전원을 재투입 하거나 또는 모드 전환에 의해서 RUN 모드로 운 전을 시작할 때 변수 및 시스템을 어떻게 초기화한 후 RUN 모드 운전을 할 것인가 를 설정하는 것으로 콜드, 웜, 핫의 3종류가 있으며 각 리스타트 모드의 수행 조건 은 다음과 같습니다. 5.3.1콜드 리스타트 (Cold Restart) (1) 파라미터의 리스타트 모드를 콜드 리스타트로 설정 하는 경우 수행됩니다. (2) 초기값이 설정된 변수를 제외한 모든 데이터를 0 으로 소거하고 수행합니다. (3) 파라미터를 웜 리스타트 모드로 설정해도 수행할 프로그램이 변경된 후 최초 수행 시는 콜드 리스타트 모드로 수행됩니다. 46

연산처리 (4) 운전중 수동 리셋 스윗치를 누르면(GMWIN에서 리셋 명령을 한 경우와 동일) 파 라미터에 설정된 리스타트 모드에 관계없이 콜드 리스타트 모드로 수행됩니다. 5.3.2 웜 리스타트 (Warm Restart) (1) 파라미터의 리스타트 모드를 웜 리스타트로 설정 하는 경우 수행됩니다. (2) 이전값 유지를 설정한 데이터는 이전값을 그대로 유지하고 초기값만 설정된 데 이터는 초기값으로 설정합니다. 이외의 데이터는 0 으로 소거합니다. (3) 파라미터를 웜 리스타트 모드로 설정해도, 데이터 내용이 비정상일 경우(데이 터의 정전 유지가 되지 못함)에는 콜드 리스타트 모드로 수행됩니다. 변수의 종류를 정전 시 값이 유지되는 VAR_RETAIN 으로 설정하였을 경우 다음의 규칙에 따릅니다. 1 파라미터를 웜 리스타트 모드로 설정해야 정전 시 그 값이 유지됩니다. 2 파라미터를 콜드 리스타트 모드로 설정하면 사용자가 정의한 초기값이나 기본 초기값으로 초기화됩니다. VAR_RETAIN 으로 선언하지 않은 변수는 콜드 리스타트나 웜 리스타트 어느 경우에 도 사용자가 정의한 초기값이나 기본 초기값으로 초기화됩니다. 5.3.3 핫 리스타트 (Hot Restart) (1) 정상 운전 중 전원이 꺼진 후 전원이 재 투입될 때 RUN 모드이고 전원이 꺼진 후 재투입 되기 까지의 시간이 핫 리스타트 허용 시간 이내면 핫 리스타트 모 드를 수행합니다. (2) 모든 데이터와 프로그램 수행 요소들을 전원이 꺼지기 이전의 상태로 복원하여 수행합니다. (3) 전원이 꺼지기 직전의 상태에서 다시 프로그램을 수행하므로 순간적인 정전 등 에도 프로그램의 연속성을 유지할 수 있습니다. (4) 핫 리스타트 허용 시간 초과 시는 파라미터에 설정된 리스타트 모드(콜드/ 웜) 로 수행됩니다. (5) 데이터 내용이 비정상일 경우(데이터의 정전 유지가 되지 못함)에는 콜드 리스 타트 모드로 수행됩니다. 47

연산처리 5.3.4 리스타트 모드에 따른 데이터의 초기화 리스타트 모드 수행 시 각 변수에 대한 초기화 방법은 다음과 같습니다. 모드 변수지정 콜드(COLD) 웜(WARM) 핫(HOT) 디폴트 "0" 으로 초기화 "0"으로 초기화 이전값 유지 리테인 "0" 으로 초기화 이전값 유지 이전값 유지 초기화 사용자 지정값으로 초기화 사용자 지정값으로 초기화 이전값 유지 리테인 & 초기화 사용자 지정값으로 초기화 이전값 유지 이전값 유지 전원 투입 운전모드 STOP STOP 모드 운전 RUN 정전유지 데이터 비정상 정상 핫리스타트 시간 초과 시간이내 리스타트 모드 콜드 리스타트 웜 리스타트 핫 리스타트 수행 웜 리스타트 수행 콜드 리스타트 수행 RUN 모드 운전 ( 운전 중 전원 재 투입 시 리스타트 모드 수행도 ) 48

연산처리 5.3.5 모드 변경 시 처리 (1) 처음 시작 시 데이터 영역의 초기화를 수행합니다. 1 전원 투입시 RUN 모드일 때 설정된 리스타트 모드에 따름 (콜드, 웜, 핫) 2 STOP RUN 으로 모드가 바뀔때 설정된 리스타트 모드에 따름 (콜드, 웜) (2) 프로그램의 유효성을 검사하여 수행 가능 여부를 판단합니다. 49

프로그램 편집 TOOL 제6 프로그램 6 장 프로그램 편집 TOOL(GMWIN) 편집 TOOL(GMWIN) 6.1 GMWIN 의 특징 GMWIN 은 GLOFA PLC 전 시리즈의 프로그램을 작성하고 디버깅하는 소프트웨어 툴입 니다. GMWIN 은 다음과 같은 특징과 장점이 있습니다. 1) 편리한 인터페이스 동시에 여러 개의 프로그램을 편집 디버깅할 수 있으며 그 밖에 사용자 편의성 을 극대화 하였습니다. 2) 다양한 언어 제공 LD, SFC,IL 등 다양한 언어를 제공하여 시스템에 적용하기 쉬운 언어를 선택하 여 사용할 수 있습니다. 50

프로그램 편집 TOOL 3) 네임드 변수 사용 프로그램 이해가 쉽도록 네임드 변수를 사용하여 프로그램을 작성할 수 있으며 메모리 어드레스는 자동으로 할당됩니다. 다양한 테이터 타입이 제공되어 프로그램을 고급화 할 수 있습니다. 4) 프로젝트 단위로 PLC 시스템 구성 하나의 PLC 시스템에 여러 개의 프로그램을 포함시킬 수 있으므로 프로그램을 작성하고 시험 하는 것이 훨씬 쉬워졌습니다. 5) 네트워크를 통한 PLC 접속 직접 연결된 PLC 뿐만 아니라, 네트워크로 연결된 다른 국번 PLC 에 접속하여 프 로그램을 작성하여 다운 로드하거나 모니터및 디버깅 할 수 있습니다. 6) 풍부한 PLC 정보 읽기 다양한 PLC 상태를 모니터할 수 있습니다. 7) 사용자 정의 라이브러리 파일 작성 기본 펑션, 펑션 블록 외에 자주 사용하는 프로그램을 사용자 정의 펑션 또는 펑션 블록으로 작성하여 재 사용할 수 있습니다. 51

프로그램 편집 TOOL 6.2 프로젝트의 구조 프로젝트는 GLOFA PLC 의 프로그램을 구성하는 가장 기본적인 요소로서 한 PLC 시스템 당 하나의 프로젝트를 작성함을 기본으로 합니다. 프로젝트는 크게 컨피그 레이션 부, 파라미터 부, 삽입된 라이브러리 파일들로 나눌 수 있습니다. 컨피그레 이션 부는 글로벌 변수, 리소스 내용 등 소프트웨어적인 것들을 작성하는 부분이 고 파라미터 부는 기본 파라미터, I/O 파라미터, 링크 파라미터 등 하드웨어적인 것들을 작성하는 부분입니다. 그리고, 삽입된 라이브러리 파일들에서 라이브러리 파일을 추가, 삭제할 수 있습니 다. 프로젝트는 다음과 같은 계층 구조를 가지고 있습니다. 계 층 항 목 설 명 프로젝트 PLC 시스템 전체를 정의 컨피그레이션 PLC 프로그램에 관한 여러 정의 사항들을 설정 컨피그레이션 글로벌 변수 컨피그레이션 전체에서 사용되는 변수 리스트 액세스 변수 다른 컨피그레이션이 접근 가능한 변수 리스트 리소스 CPU 모듈에 해당 리소스 글로벌 변수 한 리소스 전체에서 사용되는 변수 리스트 태스크 정의 프로그램의 실행 조건 정의 프로그램 정의 각 프로그램과 그 실행 조건 기술 직접 변수 설명문 직접 변수에 사용한 설명문 리스트 파라미터 PLC 시스템의 하드웨어에 관한 내용 정의 기본 파라미터 기본적인 하드웨어 파라미터 정의 I/O 파라미터 입출력 모듈에 관한 내용 기술 고속 링크 파라미터 고속 링크 파라미터에 관한 내용 기술 삽입된 라이브러리 파일들 현재 삽입되어 있는 라이브러리 파일들의 리스트 52

프로그램 편집 TOOL 6.3 기본 사용법 GMWIN 은 PLC 의 프로그램을 편집하고 실행 파일을 만들어 PLC 에 전송하며 PLC 데이터를 모 니터링, 디버깅하는 장치입니다. GMWIN 은 다중 문서 인터페이스(MDI:Multiple Document Interface)방식으로 동시에 여러 개 의 프로그램을 편집, 모니터링할 수 있습니다. 6.3.1 프로그램의 작성 윈도우의 시작 메뉴을 누르고 프로그램-GMWIN3.0 을 선택합니다. 아래와 같은 GMWIN 초기화면이 나옵니다. 53

프로그램 편집 TOOL 단계 1: 접속방식 1) RS-232C 을 이용한 접속 RS-232C 을 이용한 접속 방식으로 GMWIN 에서 지정한 PC 의 시리얼 포트와 PLC 를 시리얼 케이블로 연결합니다. 메뉴 프로젝트-옵션...을 선택하고 접속 옵션 탭을 선택합니다. 접속 방식의 RS-232C 을 설정합니다. COM1~COM4 의 통신 포트를 설정합니다. 접속 단계를 선택합니다. 로컬 접속의 경우 접속단계의 로컬을 선택합니다. 메뉴 온라인-접속을 선택합니다. 리모트 접속의 경우(자세한 내용은 GLOFA Fnet/Mnet 사용 설명서를 참조해 주십시 오.) 네트워크 타입,국번,슬롯을 설정합니다. 메뉴 온라인-접속을 선택합니다. 54

프로그램 편집 TOOL 55

프로그램 편집 TOOL 단계 2: 프로젝트의 생성 프로젝트(P) -새 프로젝트(N)을 눌러 새 프로젝트 대화상자를 부릅니다. 생성된 새 프로젝트 화면 입력란에 아래와 같이 입력합니다. 프로젝트 파일 이름 PLC 의 종류 저자 설명문 자동차엔진라인 GM3 홍길동 자동차 엔진 라인중 용접 공정 56

프로그램 편집 TOOL 단계 3: 프로그램의 정의 Enter 키 또는 확인단추를 눌러 프로그램 정의 대화상자를 부릅니다. 생성된 화면에서 인스턴스(프로그램) 이름을 입력합니다. 프로그램 파일 이름 C: GMWIN2.0 robot.src 를 입력한 후 Enter 키 또는 확인 단추를 눌러 새 프로그램 대화상자를 부릅니다. 니다. 새 프로그램 대화상자에서 프로그램을 위한 사용 언어의 종류를 선택(LD) 합 설명문 작성란에 프로그램에 대한 설명 내용을 입력한 후 Enter 키 또는 확 인 단추를 누릅니다. 57

프로그램 편집 TOOL 단계 4: 프로그램의 편집 1)입력 접점 / 출력 코일 삽입 도구 상자에서 를 선택하여 LD 창의 행 0 위치에서 마우스의 왼쪽 단추를 누릅니다. 도구 상자에서 를 선택한 후 접접 옆 위치에서 마우스의 단추를 누 릅니다. 도구 상자에서 를 선택하여 LD 창의 행 1 위치에서 마우스의 왼쪽 단추를 누릅니다. 2) 펑션 사용 마우스를 이용하여 도구창의 를 선택합니다. LD 창의 행 1, 열 2 위치에서 마우스의 왼쪽 단추를 누릅니다. 58

프로그램 편집 TOOL 다. 펑션 목록 대화 상자의 수치연산 펑션인 ADD 를 선택하고 확인 단추를 누릅니 도구 상자에서 를 선택하여 LD 창의 행 1 위치에서 마우스의 왼쪽 단추를 누릅니다. 입력 갯수 대화 상자에서 원하는 갯수 입력란에 2 를 입력합니다. 확인 단추를 누릅니다. 펑션이 생성 됩니다. 59

프로그램 편집 TOOL 3)변수입력 왼쪽 도구 상자에서 를 선택하여 LD 창의 행 0,열 1 의 위치에서 마우스의 단추를 두 번 누릅니다. 납니다. 변수 대화 상자의 변수 입력란에 변수이름 스위치 1 를 입력합니다. 확인 단추를 누릅니다.확인 단추를 누르면 변수 추가/수정 대화 상자가 나타 확인 단추를 누릅니다. 60

프로그램 편집 TOOL LD 창의 행 0 위치 위에 입력한 변수 이름을 확인 할 수 있습니다. 출력 코일의 변수 입력도 출력 접점의 변수입력과 같은 방법으로 실행합니다. 펑션 ADD 변수 입력은 아래와 같은 방법으로 실행합니다. 펑션 ADD 의 IN1 위치(행 2,열 1)에서 마우스의 왼쪽 단추를 두 번 누릅니다. 변수 대화 상자의 변수 입력란에 변수명 ABC 를 입력합니다. 61

프로그램 편집 TOOL 확인 단추를 누르면 변수 추가/수정 대화 상자가 나타납니다. 확인 단추를 누릅니다. 펑션 ADD 의 IN1 에 변수 ABC 가 입력되었습니다 62

프로그램 편집 TOOL 펑션 ADD 의 IN2 위치(행 3,열 1)에서 마우스의 왼쪽 단추를 두 번 누릅니다. 변수 대화 상자의 변수 입력란에 상수 1 를 입력합니다. 확인 단추를 누릅니다. 펑션 ADD 의 IN2 에 상수 1이 입력되었습니다. 63

프로그램 편집 TOOL 펑션 ADD 의 OUT 위치(행 3,열 3)에서 마우스의 왼쪽 단추를 두 번 누릅니다. 변수 대화 상자의 변수 입력란에 변수명 ABC_ADD 를 입력합니다. 확인 단추를 누릅니다. 확인 단추를 누릅니다. 펑션 ADD 의 OUT 에 변수 ABC_ADD 가 입력되었습니다. 64

프로그램 편집 TOOL 단계 5: 프로그램의 컴파일 메뉴 컴파일-메이크를 선택합니다. 컴파일을 실행하여 실행 파일을 만듭니다. 65

프로그램 편집 TOOL 단계 6: 프로그램 전송 프로그램 전송전에 GMWIN 과 PLC 의 연결 상태를 확인합니다. 메뉴 온라인- 접속+쓰기+모드 전환(런)+모니터 시작(G)을 선택합니다. 이때 실행 파일이 PLC 에 전송됩니다. 전송이 완료되면 PLC 의 모드가 런으로 바뀌고 모니터가 실행됩니다. 스위치 1 접점 위치에서 마우스를 두번 누르면 변수 강제 입력 대화상자가 나 타납니다. 값 입력란에 1 을 쓰고 확인 단추를 누릅니다. 리미트 스위치 1 도 위와 같은 방법으로 강제 입력을 실행 합니다. 스위치 1 이 On 되면, 모터 1 이 On 되는 것을 모니터 할 수 있습니다. LD 프로그램 창에서 변수 ABC 의 입력에 따라 변수 ABC_ADD 의 값이 1 증가하는 것을 모니터 할 수 있습니다 66

프로그램 편집 TOOL 6.4 화면 구성 GMWIN 화면은 아래와 같은 구성으로 이루어져 있습니다. 6.4.1 메뉴 메뉴를 선택하면 명령들이 나타나고, 원하는 명령을 마우스 또는 키로 선택하면 명령을 실행할 수 있습니다. 생략기호(...)가 붙은 명령을 선택하면 하위의 대화상자가 나타납니다. 단축키(Ctrl+X, Ctrl+C...)가 있는 메뉴인 경우에는 단축키를 눌러서 직접 명령을 선택할 수 있습니다. 67

프로그램 편집 TOOL 1) 프로젝트 명 령 설 명 새 프로젝트 프로젝트를 처음 생성합니다. 열기 기존의 프로젝트를 엽니다. PLC 로 부터 열기 PLC 에 있는 프로젝트 및 프로그램을 업-로드합니다. 저장 프로젝트를 저장합니다. 프로그램은 저장되지 않습니다. 다른 이름으로 저장 프로젝트를 다른 이름으로 저장합니다. 닫기 프로젝트를 닫습니다. 프로젝트 항목 추가 프로젝트에 새로운 항목(프로그램 정의, 리소스. 리소스는 GM1 만 해당)을 추가합니다. 프로젝트 항목 수정 프로젝트에 속해 있는 항목을 편집합니다. 프로젝트 항목 삭제 프로젝트에 속해 있는 항목(프로그램 정의, 리소스)을 삭제합니다. 위로(프로그램) Ctrl+U 프로젝트 창에서 위에 있는 프로그램 항목과 순서를 바꿉니다. 아래로(프로그램) 프로젝트 창에서 아래에 있는 프로그램 항목과 순서를 바꿉니다. Ctrl+W 인쇄 프린터 설정 옵션 라이브러리 관리자 라이브러리 삽입 종료 활성화되어 있는 창의 내용을 인쇄합니다. 프린터 옵션을 설정합니다. GMWIN 에 해당되는 옵션을 설정합니다. 라이브러리를 편집합니다. 새로운 라이브러리를 삽입합니다. GMWIN 을 끝마칩니다. 2) 프로그램 명 령 설 명 새 프로그램 Ctrl+N 프로그램을 처음 생성 합니다. 열기 Ctrl+O 기존의 프로그램을 엽니다. 저장 Ctrl+S 프로그램을 저장 합니다. 다른 이름으로 저장 프로그램을 다른 이름으로 저장 합니다. 닫기 프로그램을 닫습니다. 프로그램 속성 프로그램의 속성을 바꿉니다. 지역 변수 변수를 편집 합니다. 입출력 변수 펑션, 펑션 블록인 경우 입출력 변수를 편집 합니다. SFC 인 경우 추가 명 령 설 명 액션 SFC 인 경우 액션 목록을 봅니다. 트랜지션 SFC 인 경우 트랜지션 목록을 봅니다. 68

프로그램 편집 TOOL 3) 편집 명 령 설 명 편집 취소 Ctrl+Z 프로그램 편집창에서 편집을 취소하고 바로 이전상태로 되돌립 니다. 잘라 내기 Ctrl+X 블록을 잡아 삭제하면서 클립보드에 복사합니다. 복사 Ctrl+C 블록을 잡아 클립보드에 복사합니다. 붙여 넣기 Ctrl+V 클립보드로부터 편집창에 복사합니다. 삭제 Del 블록을 잡아 삭제합니다. 찾기 Ctrl+F 원하는 문자를 찾습니다. 바꾸기 Ctrl+H 원하는 문자를 찾아 새로운 문자로 바꿉니다. 다시 찾기 Ctrl+F3 이전에 실행한 찾기(Find) 또는 바꾸기(Replace)를 반복 실행 합니다. 찾아 가기 원하는 위치로 커서를 이동합니다. SFC 인 경우 추가 명 령 설 명 화면확대/축소 Ctrl+P 화면 크기를 조절합니다. 설명문 보이기 액션, 트랜지션의 설명문을 볼 수 있습니다. 번호 정리 스텝, 트랜지션 번호를 재조정합니다. LD 인 경우 추가 명 령 설 명 화면확대/축소 Ctrl+E 화면 크기를 조절합니다. 변수 설명문 Ctrl+M LD 창에서 변수 설명문을 봅니다. 라인 삭제 Ctrl+D 한 줄을 지웁니다. 셀 삭제 DEL 한 셀을 지웁니다. 라인 삽입 Ctrl+L 한 줄을 삽입합니다. 셀 삽입 Ctrl+I 한 셀을 삽입합니다. 69

프로그램 편집 TOOL 4) 도구상자 명 령 설 명 도구상자 형태 선택 도구상자를 없애거나 없어진 도구상자를 다시 나오게 합니 다. 또는 도구 상자 위치를 정해줍니다. IL 편집 시 명 령 설 명 펑션 F2 펑션 삽입 펑션 블록 F3 펑션 블록 삽입 레이블 F4 레이블 삽입 오퍼레이터 F5 연산자 삽입 삭제 F6 프로그램 한 줄 삭제 설명문 입력 F7 설명문 입력 삽입/수정 F8 삽입, 수정 모드 변환 LD 편집 시 메뉴에 해당되는 접점, 코일, 펑션, 펑션 블록, 점프, 리턴 등을 삽입 합니다. SFC 편집 명 령 설 명 스텝 F2 스텝/트랜지션 삽입 분기 F3 병렬 또는 선택 분기 삽입 이름 F4 액션 또는 트랜지션명 삽입 레이블 F5 레이블 삽입 점프 F6 점프 삽입 줌 F7 액션 또는 트랜지션에 들어가서 프로그램을 편집합니다. LD,IL 모니터 시 명 령 설 명 배열번호 선택 모니터링 시작 또는 정지를 지정합니다. 변수 모니터링 시 명 령 설 명 시작/정지 F2 모니터링 시작 또는 정지를 지정합니다. 자세히 F3 모니터링할 변수에 대한 정보를 선택해서 봅니다. 쓰기 F4 변수에 강제로 임의의 값을 씁니다. 선택 F5 모니터링할 변수를 선택합니다. 표시형식 F6 모니터링할 값을 16 진수/10 진수로 선택해서 볼 수 있습니 다. 배열 번호 선택 F7 Array 타입 변수의 배열 범위를 설정합니다. 70

프로그램 편집 TOOL 타임 차트 모니터링 시 명 령 설 명 시작/정지 F2 모니터링 시작 또는 정지를 지정합니다. 자세히 F3 모니터링할 변수에 대한 정보를 선택해서 봅니다. 쓰기 F4 변수에 강제로 임의의 값을 씁니다. 선택 F5 모니터링할 변수를 선택합니다. 주기 F6 모니터링할 시간 간격을 선택합니다. I/O 모니터링 시 명 령 설 명 베이스 선택 F2 모니터링할 베이스를 선택합니다. 시작/정지 F3 모니터 시작 또는 정지를 지정합니다. 5) 컴파일 명 령 설 명 컴파일 프로그램을 컴파일합니다. 메이크 프로젝트에 속해 있는 프로그램 중 컴파일이 안된 프로그램 들을 컴파일한 후 PLC 실행 파일을 만듭니다. 모두 컴파일 프로젝트에 속해 있는 모든 프로그램을 컴파일한 후 PLC 실 행 파일을 만듭니다. 메시지 보기 컴파일 후 에러 메시지를 봅니다. 메모리 참조 사용된 글로벌 변수및 직접 변수를 볼 수 있습니다. 71

프로그램 편집 TOOL 6) 온라인 명 령 설 명 접속+쓰기+모드전환(런)+ 모니터시작(G) Ctrl+R 접속 접속 끊기 읽기 쓰기 모니터 모드 변환 데이터 클리어 CPU 전환 리셋 플래시 메모리 모니터 시작/끝 변수 모니터 I/O 모니터 링크 허용설정 PLC 정보 I/O 정보 강제 I/O 설정 링크 정보 Mnet 파라미터 Mnet 정보 I/O Skip 타임차트 모니터 GMWIN 과 옵션에서 지정한 PLC 를 접속시켜 사용자가 작성 한 프로그램을 PLC 에 쓴 후 모드를 절환하여 모니터링 합니 다. GMWIN 과 옵션에서 지정한 PLC 를 접속시킵니다. GMWIN 과 PLC 접속을 해제합니다. PLC 의 데이터를 읽어 옵니다. GMWIN 의 프로그램을 PLC 에 씁니다. 프로그램을 모니터링 합니다./모니터링을 끝냅니다. 변수만 모니터링 합니다. I/O 를 모니터링 합니다. BOOL 변수에 대하여 타임차트 형식으로 모니터링 합니다. 링크 파라미터 모니터 고속 링크 파라미터를 모니터링 합니다. PLC 모드를 전환합니다. PLC 데이터를 0 으로 지웁니다. GM1 에서 통신할 CPU 를 전환합니다. PLC 의 CPU 를 리셋합니다. CPU 에 장착된 플래시 메모리의 타입 정보을 읽거나 플래시 메모리에 데이터 쓰기를 합니다. 고속 링크 허용을 설정합니다. PLC 정보를 보여줍니다. PLC I/O 구성 상태를 보여 줍니다. I/O 강제 입출력 값/실행 허용을 설정 합니다. 링크 모듈의 타입,장착 슬롯,국번등을 보여 줍니다. Mnet 파라미터를 입력합니다. Mnet 정보를 봅니다. 스킵할 I/O 를 지정합니다. 72

프로그램 편집 TOOL 7) 디버그 명 령 설 명 디버그 시작/끝 디버그 모드로 전환하여 디버그를 시작합니다/디버 그를 끝냅니다. 런 Ctrl+F9 브레이크 포인트까지 런시킵니다. 스텝 오버 Ctrl+F8 한 스텝씩 런시킵니다. 스텝 인 펑션, 펑션 블록을 디버깅합니다. 스테 아웃 펑션, 펑션 블록 디버그 시 현재 블록을 빠져 나갑 니다. 일시 정지 런을 중지시킵니다. 커서 위치까지 런 Ctrl+F2 커서 위치까지 런시킵니다. 브레이크 포인트 설정/해제 브레이크 포인트를 설정 또는 해제합니다. Ctrl+F5 브레이크 포인트 목록 / 조건 태스크 수행 설정 설정된 브레이크 포인트의 목록을 보여주고 브레이 크 조건을 설정합니다. 디버깅 중 태스크 전환을 허용합니다. 9) 창 명 령 설 명 계단식 배열 GMWIN 에 속해 있는 여러 창들을 계단식으로 배열합니다. 수평 배열 GMWIN 에 속해 있는 여러 창들을 수평 배열합니다. 수직 배열 GMWIN 에 속해 있는 여러 창들을 수직 배열합니다. 아이콘 정렬 GMWIN 에 속해 있는 아이콘들을 정열합니다. 모두 닫기 GMWIN 에 속해 있는 여러 창들을 모두 닫습니다. 73

프로그램 편집 TOOL 6.4.2도구모음 GMWIN 에서 사용하는 도구 들입니다. GMWIN 에서는 현재 자주 사용되는 메뉴들을 단축 형태인 도구로 제공하고 있습니다. 원하는 도구를 마우스로 누르면 실행 됩니다. 아래 표에서는 도구의 모양과 그에 대 한 설명을 나나냅니다. 도구 명 령 도구 명 령 새 프로젝트 프로젝트 열기 프로젝트 저장 새 프로그램 프로그램 열기 프로그램 저장 변수 목록 편집 취소 잘라내기 복사 붙여넣기 삭제 찾기 바꾸기 다시찾기 컴파일 접속+쓰기+모드전환(런)+모니터시작 접속 접속 끊기 쓰기 모니터 시작/끝 런 스톱 일시 정지 디버 시작 디버그 런 스텝오버 스텝인 스텝아웃 일시정지 커서 위치까지 런 브레이크 포인트 설정/해제 실행파일 만들기 74

프로그램 편집 TOOL 6.4.3 도구상자 SFC 도구상자 IL 도구상자 LD 도구상자 프로그램 편집, 변수 모니터, 타임 차트, IO 모니터 등을 할 때 자주 사용하는 명 령을 도구상자를 통해서 실행할 수 있습니다. 도구를 마우스로 누르면 도구가 실행합니다. 설정되어 있는 도구들은 메뉴 도구상자를 통해서도 실행될 수 있습니다. 메뉴 도구상자-도구상자 형태선택를 선택하면 도구상자의 위치와 화면상에 출현을 조정할 수 있습니다. 6.4.4 상태 표시 줄 가) 명령 설명 반전 표시된 메뉴나 명령, 마우스가 위치해 있는 도구모음에 대한 설명을 나타냅니다. 75

프로그램 편집 TOOL 나) PLC 모드 표시 PLC 의 모드를 나타냅니다. PLC 와 연결되지 않았을 때에는 오프라인으로 표시됩니다. 오프라인-런-스톱-일시 정지-디버그 다) 커서 위치 표시 프로그램을 편집할 때 커서의 위치를 나타냅니다. 라) GMWIN 상태 표시 GMWIN 의 상태를 표시합니다. 편집 : GMWIN 에서 프로그램을 편집중임을 나타냅니다. 모니터 : PLC 의 데이터를 모니터링 중임을 나타냅니다. 디버그 : PLC 의 프로그램을 디버깅 중임을 나타냅니다. 6.5 대화상자 사용법 대화상자에는 입력란, 확인란, 옵션 선택, 목록상자 등이 나타나며 사용자가 원하 는 값을 입력 또는 설정할 수 있습니다. 입력란 : 키를 이용하여 원하는 문자를 입력합니다. 옵션 : 같은 그룹 안에서 하나만 선택할 때 사용합니다. 마우스로 원하는 항목을 누릅니다. 목록상자 : 여러 목록 중 하나를 선택합니다. 목록상자의 화살표를 누르면 목록이 나타나고 원하는 항목을 마우스로 누르면 선택됩니다. 76

프로그램 편집 TOOL 확인 단추 : 설정한 값이 입력되고 대화 상자를 닫으려면 확인 단추를 누릅니다. 취소 단추 : 설정한 값을 취소하고 대화 상자를 닫으려면 취소 단추를 누르거나 조절 메뉴 상자를 누릅니다. 6.6 GMWIN 에서 생성되는 파일들 사용자가 프로젝트를 생성하고 프로그램을 편집하여 PLC 실행 파일을 만들면 다음 과 같은 파일이 만들어 집니다. <프로젝트 명>.PRJ : 사용자가 작성한 프로젝트 파일 <프로젝트 명>.BN0 : PLC 실행 파일 GM1 인 경우 리소스 개수 만큼 생깁니다. <프로젝트 명>.BN0 ~ <프로젝트 명>.BNn, (n 는 리소스 번호) <프로젝트 명>.MON : 모니터링을 위한 정보 파일 <프로젝트 명>.CR0 : PLC 실행 파일을 만들 때 생성. 프로그램에서 사용한 글로벌 변수및 직접 변수를 나타낸 텍스트 파일 (Cross Reference) <프로그램 명>.SRC : 사용자가 작성한 프로그램 파일 <프로그램 명>.ASV : 사용자가 작성한 프로그램을 이 이름으로 주기적으로 저장합 니다. 메뉴 Option-Auto 저장에서 타임 값을 설정 하였을 경우에만 생성 되고 정상적으로 프로그램 창을 닫은 경우 자동으로 삭제됩니 다. <프로그램 명>.OP? : 프로그램을 컴파일하면 생성됩니다.(프로그램 블록인 경우) <프로그램 명>.OB? : 프로그램을 컴파일하면 생성됩니다.(펑션 블록인 경우) <프로그램 명>.OF? : 프로그램을 컴파일하면 생성됩니다.(펑션인 경우) ( OP3 : GM3 인경우, OP4 : GM4 인경우) *주) 밑줄친 파일들은 반드시 보관하여야 할 파일들이며 나머지 파일들은 메이크 실행으로 다시 생성 할 수 있습니다. 6.7 파일 열기 사용자가 기존의 프로젝트를 열고 프로그램을 작성하려면 파일을 열어야 합니다. 새로운 파일은 프로젝트 생성 및 프로그램 생성 항목에 설명되어 있습니다. 프로젝트를 열 경우 메뉴 프로젝트-열기을 선택합니다. 프로그램을 열 경우 메뉴 프로그램-열기을 선택합니다. 77

프로그램 편집 TOOL 파일이 있는 위치를 지정하기 위하여 위치 목록상자에서 드라이브 및 디렉토 리를 선택합니다. 파일 이름 입력란에 파일 이름을 직접 입력하거나 목록상자에서 선택합니다. 목록상자에는 파일형식 목록상자에서 선택된 확장자를 가진 파일만 나타납니다. 프로젝트 파일: *.PRJ, 프로그램 파일: *.SRC 열기 단추를 누릅니다. 6.8 파일 저장 6.8.1 새로운 파일 저장 한 번도 저장하지 않은 새 파일을 저장합니다. 프로젝트를 저장할 경우 메뉴 프로젝트-저장을 선택합니다. 프로그램을 저장할 경우 메뉴 프로그램-저장을 선택합니다. 파일이 저장될 위치를 지정하기 위하여 위치 목록상자에서 드라이브 및 디렉 토리를 선택합니다. 파일이름 입력란에 파일 이름을 입력합니다. 프로젝트 파일에는 PRJ, 프로그램 파일에는 SRC 확장자를 입력합니다. 저장 단추를 누릅니다. 78

프로그램 편집 TOOL 6.8.2 작업 중 파일 저장 프로젝트를 저장할 경우 메뉴 프로젝트-저장을 선택합니다. 프로그램을 저장할 경우 메뉴 프로그램-저장을 선택합니다. 6.8.3 다른 이름으로 저장 프로젝트 이름 또는 프로그램 이름을 변경합니다. 프로젝트를 저장할 경우 메뉴 프로젝트-다른 이름으로 저장을 선택합니다. 프로그램을 저장할 경우 메뉴 프로그램-다른 이름으로 저장을 선택합니다. 파일이 저장될 위치를 찾기 위하여 위치 목록상자에서 드라이브 및 디렉토리 를 선택합니다. 파일이름 입력란에 파일 이름을 입력합니다. 프로젝트 파일에는 PRJ, 프로그램 파일에는 SRC 확장자를 입력합니다. 저장 단추를 누릅니다. 79

프로그램 편집 TOOL 6.9 파일 닫기 방법 1 해당 창의 왼쪽 위 모서리의 조절메뉴 상자를 누릅니다. 방법 2 프로젝트를 닫을 경우 메뉴 프로젝트-닫기를 선택합니다. 프로그램을 닫을 경우 메뉴 프로그램-닫기를 선택합니다. 이때 해당 파일이 저장되어 있지 않으면 다음 대화상자가 나타납니다. 파일을 저장하려면 예 단추를 누릅니다. 파일을 저장하지 않으려면 아니오 단추를 누릅니다. 파일 닫기를 취소하려면 취소 단추를 누릅니다. 80

명령어의 종류 제7 명령어의 7 장 명령어의 종류 종류 7.1 시퀀스 연산자 시퀀스 연산자에는 접점(Contact), 코일(Coil), 점프(Jump)등이 있습니다. 7.2 펑션 펑션은 입력에 대한 연산 결과를 1 스캔에 즉시 출력합니다. 펑션은 출력이 하나입니다. 전송 펑션(MOVE)의 IN, OUT 변수는 모든 데이터 형이 지정될 수 있으나 반 드시 같은 데이터 형이어야 합니다. 산술 연산 펑션(ADD, MUL 등)의 IN1, (IN2), OUT 변수는 수치(ANY_NUM) 데 이터 형 만이 지정될 수 있으며 또한 모두 같은 데이터 형이어야 합니다. 논리 연산 펑션(AND, OR 등)의 IN1, (IN2), OUT 변수는 비트 상태(ANY_BIT) 데이터 형 만이 지정될 수 있으며, 또한 모두 같은 데이터 형이어야 합니 다. 형 변환 펑션(INT_TO_BCD, BCD_TO_INT 등)의 IN, OUT 변수는 지정된 데이터 형에 의해 고정되어 있습니다. 펑션은 라이브러리에 넣어서 사용합니다. 81

명령어의 종류 7.3 펑션 블록 펑션 블록은 여러 스캔에 걸쳐 누계된 연산 결과를 출력합니다. 펑션 블록은 출력이 여러 개가 될 수 있습니다. 펑션 블록은 여러 스캔에 걸쳐 누계된 연산 결과를 출력하므로, 연산 중 누계되는 데이터를 보관하기 위한 내부 메모리가 필요합니다. 따라서 펑션 블록은 사용하기 전에 인스턴스 변수를 선언 합니다. 인스턴스 변수는 펑션 블록내에서 사용하는 변수들의 집합입니다. 주) 인스턴스 변수의 문자 길이는 일반 지역변수와는 달리 영문 8자 또는 한글/한자 4자 까지로 제한됩니다. 82

LD 프로그램 작성 제8 LD 8 장 프로그램 LD 프로그램 작성 작성 8.1 개요 LD 프로그램은 릴레이 논리 회로에서 많이 사용하는 접점이나 코일 등의 그래픽 기호로 프로그램을 표현하는 PLC 의 가장 일반적인 언어입니다. 형태 레이블 렁 설명문 펑션 블록 코일 줄번호 펑션 렁 점프 레이블 접점 왼쪽 모선 오른쪽 모선 8.2 모선 LD 그래픽 구성도의 왼쪽 끝과 오른쪽 끝에는 전원선 개념의 모선이 세로 로 양쪽에 놓여 있습니다. No. 기호 설명 1 왼쪽 모선 : 항상 1의 Boolean 값을 가지고 있습니다. 2 오른쪽 모선 : 값은 정해지지 않았습니다. 83

LD 프로그램 작성 8.2.1 연결선 왼쪽 모선의 BOOL 1 값은 작성한 도면을 따라 오른쪽으로 전달됩니다. 그 전달되는 값을 가진 선을 신호 흐름선 또는 연결선이라고 하며, 접점이나 코일에 연결되어 있습니다. 신호 흐름선은 언제나 BOOL 값을 가지고 있으 며 한 렁(Rung)에서 하나만 존재합니다. 여기서 렁이란 LD 의 처음부터 밑으로 내려가는 선이 없는 줄까지를 말합니다. LD 의 각 요소를 연결하는 연결선에는 가로 연결선과 세로 연결선이 있습 니다. No. 기호 설명 1 가로 연결선 : 왼쪽의 값을 오른쪽으로 전달 2 세로 연결선 : 왼쪽에 있는 가로 연결선들의 논리합 8.2.2 펑션 및 펑션 블록의 호출 펑션 및 펑션 블록에 대한 실제적인 입출력 연결은 입출력 표시가 있는 블 록 외부에 적절한 데이터 또는 변수를 기입함으로써 이루어집니다. 예 펑션 펑션 블록 84

LD 프로그램 작성 펑션 및 펑션 블록은 신호 흐름선을 연결해야만 실행됩니다. 펑션은 BOOL 타입 입출력인 EN 과 ENO 에 신호 흐름선을 연결합니다. 펑션 블록은 입출력에 적어도 1 개 이상의 BOOL 변수가 존재하는데, 펑션 블 록에 신호 흐름선을 연결할 때는 데이터 타입이 BOOL 인 첫번째 입출력에 연결 합니다. 예 펑션의 Bool Type 입출력 펑션 블록의 Bool Type 입출력 펑션에서 EN 입력값이 BOOL 1 이면 그 펑션을 수행하고, BOOL 0 이면 그 펑 션을 수행하지 않습니다. ENO 출력은 보통 EN 값이 그대로 나오지만 그 펑션의 수행시 에러가 발생 하면 EN 값이 BOOL 1 이라도 ENO 값은 BOOL 0 이 나옵니다. 펑션의 EN 은 언제나 신호 흐름선을 연결하여야 하지만 ENO 는 생략 될수 있습니다. ENO 가 아닌 펑션 출력에 신호 흐름선을 연결할 때에는 그 출력의 데이터 타입이 반드시 BOOL 이어야 합니다. 또한 ENO 가 아닌 펑션 출력에 신호 흐 름선을 연결할 때에는 ENO 출력에는 아무것도 연결하지 않습니다. 펑션의 모든 입력은 펑션의 왼쪽에 그 값을 기입함으로써 지정되는데 빠짐 없이 지정하여야 합니다. 펑션의 출력값은 펑션의 오른쪽에 지정한 변수에 보관됩니다. 85

LD 프로그램 작성 펑션 블록의 입력도 펑션과 같은 방법으로 지정하며 펑션 블록의 출력은 그 인스턴스 변수안에 저장되어 있으므로 변수를 지정하지 않아도 상관이 없습니다. 펑션 블록에는 EN, ENO 입출력이 없으므로 펑션 블록을 만나면 항시 수행 합니다. LD 에서 펑션과 펑션 블록은 어느 곳에라도 올 수 있습니다. 펑션과 펑션 블록의 출력에 신호 흐름선을 연결하고 거기에 접점 등을 연결하여 로직 연산을 계속할 수도 있습니다. 예 86

LD 프로그램 작성 펑션이나 펑션 블록에 연결할 수 있는 신호 흐름선은 단 하나입니다. 예 옳바른 사용 신호 흐름선이 2 개 이므로 잘못 작성됨 옳바른 사용 8.3 모터 제어 프로그램 예 1(직접 변수 사용) 8.3.1 프로그램 편집 직접 변수를 사용하여 현재의 MASTER-K 나 GOLDSEC-M 등과 같은 방식으로 모터 제어 프로그램을 편집한 예입니다. (1) 직접 변수를 사용한 경우 직접 변수를 사용하면 변수 선언이 불필요 하므로 지역 변수 목록에 포함되지 않습니다. 87

LD 프로그램 작성 (2) 직접 변수를 사용하고 설명문을 단 경우 GLOFA-GM 은 직접 변수를 사용했을 경우 설명문(코멘트)을 달 수 있습니다. 8.3.2 컴파일 & 링크 편집한 소스 프로그램을 메이크(Compile &Link)하여 실행 파일 만들기를 합니다. 컴파일 중 오류가 발생하면 프로그램을 재 편집하여 다시 메이크 합니다. 8.3.3 모니터링 실행 파일을 PLC 로 전송(Down Load)한 후 운전 중 프로그램을 모니터링합니다. (1) LD 모니터링 88

LD 프로그램 작성 (2) 변수 모니터링 8.3.4 연습 1 프로젝트 89

LD 프로그램 작성 8.4 모터 제어 프로그램 예 2(네임드 변수 사용) 8.4.1 프로그램 편집 네임드 변수를 사용하여 모터 제어 프로그램을 편집한 예입니다. (1) 네임드 변수로 변수 선언을 한 경우 90

LD 프로그램 작성 (2) 네임드 변수로 변수 선언을 하고 설명문을 단 경우 네임드 변수로 변수 선언을 하고 추가로 설명문(코멘트)을 달 수 있습니다. 8.4.2 메이크(컴파일 & 링크) 편집한 프로그램을 메이크(Compile & Link)하여 실행 파일 만들기를 합니다. 컴파일 결과 오류가 발생하면 프로그램을 재 편집하여 다시 메이크 합니다. 91

LD 프로그램 작성 8.4.3 모니터링 실행 파일을 PLC 로 전송(Down Load)한 후 운전 중 프로그램을 모니터링합니다. (1) LD 모니터링 (2) 변수 모니터링 92

LD 프로그램 작성 8.4.4 연습 2 프로젝트 8.5 복수의 프로그램 블록 작성 예(글로벌 변수 사용) GLOFA-GM 은 하나의 리소스(CPU)에 대하여 복수개(최대 180 개)의 프로그램 블록을 등록 하여 사용할 수 있습니다. 8.5.1 지역 변수와 글로벌 변수 오직 하나의 프로그램 블록(등록된 임의의 프로그램 이름)에서만 사용할 수 있는 변수를 지역 변수(Local Variable)라고 하고 하나의 리소스(CPU)에 등록된 여러 프로그램 블록에서 사용할 수 있는 변수를 리소스 글로벌 변수(Resource Global Variable)라고 합니다. 프로그램에서 글로벌 변수를 사용하려면 변수의 종류를 VAR_EXTERNAL 로 선언 하여야 합니다. 93

LD 프로그램 작성 8.5.2 프로젝트 생성 1) 첫번째 프록그램 생성 새 프로젝트(글로벌_태스트.prj)를 생성하면 첫번째 프로그램은 자동으로 생성됩니다 인스턴스 명은 모터제어 1 로 하고 파일명은 글로벌_테스트 1.src 로 합니다. 94

LD 프로그램 작성 2) 두번째 프로그램 블록의 추가 메뉴 프로그램 새 프로그램을 선택합니다 프로그램을 프로젝트에 삽입 여부를 묻는 대화상자가 나오면 예 를 선택하고 인스턴스 명은 모터제어 2 로 하고 파일명은 글로벌_테스트 2.src 로 합니다. 95

LD 프로그램 작성 3) 각각의 프로그램을 작성하여 메이크 한후 전송하여 프로그램을 실행합니다. 96

LD 프로그램 작성 8.5.3 프로그램 편집 (1) 프로그램 블록 1 편집 (2) 프로그램 블록 2 편집 97

LD 프로그램 작성 (3) 글로벌 변수 편집 이 곳을 클릭하여 대화상자를 연후 추가 버튼을 눌러 글로벌 변수를 선언 합니다 주) 프로그램 작성중 변수 선언에서 변수의 종류를 VAL_EXTERNAL 로 하면 자동으로 글로 벌 변수가 추가 됩니다. 8.5.4 컴파일 & 링크 편집한 프로그램을 메이크 Compile & Link)하여 실행 파일 만들기를 합니다. 98

LD 프로그램 작성 8.5.5 LD 및 변수 모니터링 실행 파일을 PLC 로 전송(Down Load)한 후, 운전 중 프로그램을 모니터링합니다. (1) 프로그램 블록 <모터제어 1>에서 지역 변수 기동 강제 ON 프로그램 블록 <모터제어 1> 및 <모터제어 2>에서 같은 이름의 지역 변수(기동)를 선언하였을 경우, 프로그램 블록 <모터제어 1>의 변수 기동 을 강제 ON 하면 기동 이 지역 변수이므로 프로그램 블록 <모터제어 1> 만이 동작합니다. 99

LD 프로그램 작성 (2) 프로그램 블록 <모터제어 1>에서 글로벌 변수 일괄기동 강제 ON 프로그램 블록 <모터제어 1>에서 글로벌 변수 일괄기동 을 강제 ON 하면 일괄기 동 이 글로벌 변수이므로 프로그램 블록 <모터제어 1>과 프로그램 블록 <모터 제어 2>가 동시에 동작합니다. 100

기본 명령어 및 프로그래밍 제9 기본 9 장 명령어 기본 명령어및 및 프로그래밍 프로그래밍 9.1 시퀀스 연산자 9.1.1 시퀀스 연산자 일람표 (1) 접점 정적 접점 No. 기호 설 명 평상시 열린 접점(Normally Open Contact) 1 *** BOOL 변수("***" 로 표시된 것)의 상태가 On 일 때에는 왼쪽의 연결 선 상태는 오른쪽의 연결선으로 복사됩니다. 그렇지 않을 경우에는 오른쪽의 연결선 상태가 Off 입니다. 2 *** 평상시 닫힌 접점(Normally Closed Contact) BOOL 변수("***" 로 표시된 것)의 상태가 Off 일 때에는 왼쪽의 연결 선 상태는 오른쪽의 연결선으로 복사됩니다. 그렇지 않을 경우에는 오른쪽의 연결선 상태가 Off 입니다. 3 *** P 상태 변환 검출 접점 양 변환 검출 접점(Positive Transition-Sensing Contact) BOOL 변수("***" 로 표시된 것)의 값이 전 스캔에서 Off 였던 것이 현재 스캔에서 On 으로 되고, 왼쪽 연결선 상태가 On 되어 있는 경우 에 한해서 오른쪽의 연결선 상태는 현재 스캔 동안에 On 이 됩니다. 4 *** N 음 변환 검출 접점(Negative Transition-Sensing Contact) BOOL 변수("***" 로 표시된 것)의 값이 전 스캔에서 On 이었던 것이 현재 스캔에서 Off 되고 왼쪽 연결선 상태가 On 되어 있는 경우에 한 해서 오른쪽의 연결선 상태는 현재 스캔 동안에 On 이 됩니다. 101

기본 명령어 및 프로그래밍 (2) 코일 임시 코일(Momentary Coils) No. 기호 설 명 1 2 3 4 5 6 *** ( ) *** ( ) *** ( S ) *** ( R ) *** ( P ) *** ( N ) 코일(Coil) 왼쪽에 있는 연결선의 상태를 관련된 BOOL 변수("***" 로 표시된 것) 에 넣습니다. 역 코일(Negated Coil) 왼쪽에 있는 연결선 상태의 역(Negated)값을 관련된 BOOL 변수("***" 로 표시된 것)에 넣습니다. 즉, 왼쪽 연결선 상태 Off 이면 관련된 변수 를 On 시키고, 왼쪽 연결선 상태가 On 이면 관련된 변수를 Off 시킵니 다. 래치 코일(Latched Coils) Set(Latch) Coil 왼쪽의 연결선 상태가 On 이 되었을 때에는 관련된 BOOL 변수("***" 로 표시된 것)는 On 이 되고 Reset 코일에 의해 Off 되기 전까지는 On 되어 있는 상태로 유지됩니다. Reset(Unlatch) Coil 왼쪽의 연결선 상태가 On 이 되었을 때에는 관련된 BOOL 변수("***" 로 표시된 것)는 Off 되고 Set 코일에 의해 On 되기 전까지는 Off 되어 있는 상태로 유지됩니다. 상태 변환 검출 코일(Transition-Sensing Coils) 양 변환 검출 코일(Positive Transition-Sensing Coil) 왼쪽 연결선 상태가 바로 전 스캔에서 Off 였던 것이 현재 스캔에서 On 이 되어 있는 경우에 관련된 BOOL 변수("***" 로 표시된 것)의 값은 현재 스캔 동안만 On 이 됩니다. 음 변환 검출 코일(Negative Transition-Sensing Coil) 왼쪽 연결선 상태가 바로 전 스캔에서 On 이었던 것이 현재 스캔에 서 Off 되어 있는 경우에 관련된 BOOL 변수("***" 로 표시된 것)의 값은 현재 스캔 동안만 On 이 됩니다. 코일은 화면의 가장 오른쪽에 표현됩니다. 102

기본 명령어 및 프로그래밍 9.1.2 시퀀스 연산자 프로그램 예 9.1.2.1 양 변환 검출 접점 및 음 변환 검출 접점 103

기본 명령어 및 프로그래밍 9.1.2.2 양 변환 검출 코일 및 음 변환 검출 코일 (1) 프로그램 예 1 104

기본 명령어 및 프로그래밍 (2) 프로그램 예 2 105

기본 명령어 및 프로그래밍 9.1.2.3 셋(Set) 코일 및 리셋(Reset) 코일 (1) 프로그램 편집 106

기본 명령어 및 프로그래밍 (2) LD 및 변수 모니터링 PLC 전원 인가 상태에서 투입 스위치를 ON OFF 하면 램프 및 래치는 셋되어 ON 상태를 유지합니다. 램프 및 래치가 셋되어 있는 상태에서 PLC 전원을 정전 시켰다 복전시키면 VAR 변수 램프 는 소거(Clear)되지만 VAR_RETAIN 변수 래치 는 ON 상태를 유지합니다. 107

기본 명령어 및 프로그래밍 PLC 전원 인가 상태에서 차단 스위치를 ON OFF 하면 램프 및 래치는 리셋되어 모두 OFF 됩니다. 9.2 기본 펑션 기본 펑션에는 전송 펑션, 형 변환 펑션, 비교 펑션, 산술 연산 펑션, 논리 연산 펑션, 비트 시프트 펑션 등이 있습니다. 108

기본 명령어 및 프로그래밍 9.2.1 기본 펑션 일람표 (1) 전송 펑션 No. 펑션 이름 기 능 1 MOVE 데이터 전송 ( IN OUT ) 2 ARY_MOVE 배열 변수 부분 전송 (2) 형(Type) 변환 펑션 펑션 그룹 펑션 이름 입력 데이터 타입 출력 데이터 타입 적용 기종 GM1~2 GM3 GM4~5 BCD_TO_SINT BYTE(BCD) SINT BCD_TO_INT WORD(BCD) INT BCD_TO_*** BCD_TO_DINT DWORD(BCD) DINT BCD_TO_USINT BYTE(BCD) USINT BCD_TO_UINT WORD(BCD) UINT BCD_TO_UDINT DWORD(BCD) UDINT INT_TO_SINT INT SINT INT_TO_DINT INT DINT INT_TO_USINT INT USINT INT_TO_UINT INT UINT INT_TO_*** INT_TO_UDINT INT UDINT INT_TO_BOOL INT BOOL INT_TO_BYTE INT BYTE INT_TO_WORD INT WORD INT_TO_DWORD INT DWORD INT_TO_BCD INT WORD(BCD) 109

기본 명령어 및 프로그래밍 (3) 비교 펑션 연산 결과가 참(True)이면 OUT 으로 1 이 출력됩니다. No. 펑션 이름 기 능(단, n은 8까지 가능) 1 GT > 2 GE 3 EQ = 4 LE 5 LT < 6 NE 크다 비교 (IN1 > IN2) And (IN2 > IN3) And... And (INn-1 > INn) OUT ) 크거나 같다 비교 (IN1 IN2) And (IN2 IN3) And... And (INn-1 INn) OUT ) 같다 비교 (IN1 = IN2) And (IN2 = IN3) And... And (INn-1 = INn) OUT ) 작거나 같다 비교 (IN1 IN2) And (IN2 IN3) And... And (INn-1 INn) OUT ) 작다 비교 (IN1 < IN2) And (IN2 < IN3) And... And (INn-1 < INn) OUT ) 같지 않다 비교 (IN1 IN2) And (IN2 IN3) And... And (INn-1 INn) OUT ) (4) 산술 연산 펑션 산술 연산 펑션 중 일반적인 것은 사칙 연산(덧셈, 뺄셈, 곱셈, 나눗셈, 나머지) 펑션입니다. No. 펑션 이름 기 능 입력 개수를 확장할 수 있는 연산 펑션 (단, n은 8 까지 가능) 1 ADD 더하기 ( IN1 + IN2 +... + INn OUT ) 2 MUL 곱하기 ( IN1 IN2... INn OUT ) 입력 갯수가 2개인 연산 펑션 3 SUB 빼기 ( IN1 IN2 OUT ) 4 DIV 나누기 ( IN1 IN2 OUT ) 5 MOD 나눗셈 나머지 구하기 110

기본 명령어 및 프로그래밍 (5) 논리 연산 펑션 No. 펑션 이름 기 능(단, n은 8까지 가능) 1 AND 논리곱 ( IN1 AND IN2 AND... AND INn OUT ) 2 OR 논리합 ( IN1 OR IN2 OR... OR INn OUT ) 3 XOR 배타적 논리합 ( IN1 XOR IN2 XOR... XOR INn OUT ) 4 NOT 논리 반전 ( NOT IN1 OUT ) (6) 비트 시프트 펑션 No. 펑션 이름 기 능 1 SHL 입력을 N 비트 왼쪽으로 이동(오른쪽은 0으로 채움) 2 SHR 입력을 N 비트 오른쪽으로 이동(왼쪽은 0으로 채움) 3 ROL 입력을 N 비트 왼쪽으로 회전 4 ROR 입력을 N 비트 오른쪽으로 회전 111

기본 명령어 및 프로그래밍 9.2.2 기본 펑션 설명 및 프로그램 예 9.2.2.1전송 펑션 기능 IN 의 값을 복사하여 OUT 으로 전송합니다. 프로그램 예 1 실행 조건이 ON 되면 MOVE 펑션이 실행 스위치_상태 %IX0.0.0 ~ %IX0.0.7 의 ON/OFF 정보가 복사되어 LED_상태 %QX0.3.8 ~ %QX0.3.15 로 전송됩니다. (1) 프로그램 편집 112

기본 명령어 및 프로그래밍 (2) LD 모니터링 프로그램 예 2 스위치 0, 1, 2 중 하나를 ON 하면 MOVE 펑션이 실행되어 해당 코드값을 LED(%QW0.3.0)로 전송합니다. (1) 프로그램 편집 113

기본 명령어 및 프로그래밍 (2) LD 모니터링 114

기본 명령어 및 프로그래밍 9.2.2.2 형 변환 펑션 기능 IN 을 타입 변환해서 OUT 으로 출력합니다. FUNCTION 입력 타입 출력 타입 동작 설명 BCD_TO_SINT BYTE SINT BCD_TO_INT WORD INT BCD_TO_DINT DWORD DINT BCD_TO_USINT BYTE USINT BCD_TO_UINT WORD UINT BCD_TO_UDINT DWORD UDINT 입력이 BCD 값일 경우에만 정상 변환됩니다. (입력 데이터 타입이 WORD 일경우 0 16#9999 값만 정상 변환됩니다.) 에러 IN 이 BCD 형태의 데이터가 아닌 경우, 출력은 0이 되고 _ERR(연산 에러 플래그), _LER(연산 에러 래치 플래그) 이 ON 됩니다. 115

기본 명령어 및 프로그래밍 프로그램 예 (1) 프로그램 편집 116

기본 명령어 및 프로그래밍 (2) LD 및 변수 모니터링 117

기본 명령어 및 프로그래밍 기능 IN 을 타입 변환해서 OUT 으로 출력합니다. FUNCTION 출력 타입 동작 설명 INT_TO_SINT SINT 입력이 -128 127 일 경우 정상 변화되나, 그 외 값은 에 러가 발생합니다. INT_TO_DINT DINT DINT 타입으로 정상 변환합니다. INT_TO_USINT USINT 입력이 0 255 일 경우 정상 변화되나, 그 외 값은 에러 가 발생합니다. INT_TO_UINT UINT 입력이 0 32767 일 경우 정상 변화되나, 그 외 값은 에 러가 발생합니다. INT_TO_UDINT UDINT 입력이 0 32767 일 경우 정상 변화되나, 그 외 값은 에 러가 발생합니다. INT_TO_BOOL BOOL 하위 1비트를 취해 BOOL 타입으로 변환합니다. 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 일 경우 정상 변환되나, 그 외 값은 에러가 발생합니다. 에러 변환 에러 발생시 _ERR(연산 에러 플래그), _LER(연산 에러 래치 플래그) 이 ON 됩니다. 118

기본 명령어 및 프로그래밍 프로그램 예 (1) 프로그램 편집 (2) LD 및 변수 모니터링 119

기본 명령어 및 프로그래밍 9.2.2.3 비교 펑션 기능 입력값의 비교 결과 IN1 IN2 IN3... INn (n 은 입력 개수)이 참이면 OUT 으로 1 을 출력합니다. 거짓의 경우에는 OUT 으로 0을 출력합니다. 프로그램 예 실행 조건( %IX0.0.0)을 ON 하면 GT 펑션이 실행됩니다. 입력 변수로 선언된 값 1=300, 값 2=200, 값 3=100 이면, 비교 결과 값 1 값 2 값 3 이므로, 출력 결과 값 %QX0.3.0=1 이 됩니다. 입력 (IN1) : 값 1 (INT) = 300(16#012C) (IN2) : 값 2 (INT) = 200(16#00C8) (IN3) : 값 3 (INT) = 100(16#0064) 출력(OUT) : %QX0.3.0 (BOOL) = 1(16#1) 120

기본 명령어 및 프로그래밍 기능 입력값의 비교 결과 IN1 IN2 IN3... INn (n 은 입력 개수)이 참이면 OUT 으로 1 을 출력합니다. 거짓의 경우에는 OUT 으로 0을 출력합니다. 프로그램 예 실행 조건( %IX0.0.0)을 ON 하면 GE 펑션이 실행됩니다. 입력 변수로 선언된 값 4=300, 값 5=200, 값 6=200 이면, 비교 결과 값 4 값 5 값 6 이므로, 출력 결과 값 %QX0.3.1=1 이 됩니다. 입력 (IN1) : 값 4 (INT) = 300(16#012C) (IN2) : 값 5 (INT) = 200(16#00C8) (IN3) : 값 6 (INT) = 200(16#00C8) 출력 (OUT) : %QX0.3.1 (BOOL) = 1(16#1) 121

기본 명령어 및 프로그래밍 기능 입력값의 비교 결과 IN1=IN2=IN3...= INn (n 은 입력 개수)이 참이면 OUT 으로 1 을 출력합니다. 거짓의 경우에는 OUT 으로 0을 출력합니다. 프로그램 예 실행 조건( %IX0.0.0)을 ON 하면 EQ 펑션이 실행됩니다. 입력 변수로 선언된 값 7=300, 값 8=300, 값 9=300 이면, 비교 결과 값 7=값 8=값 9 이므로, 출력 결과 값 %QX0.3.2=1 이 됩니다. 입력 (IN1) : 값 7 (INT) = 300(16#012C) (IN2) : 값 8 (INT) = 300(16#012C) (IN3) : 값 9 (INT) = 300(16#012C) 출력 (OUT) : %QX0.3.2 (BOOL) = 1(16#1) 122

기본 명령어 및 프로그래밍 기능 입력값의 비교 결과 IN1 IN2 IN3... INn (n 은 입력 개수)이 참이면 OUT 으로 1 을 출력합니다. 거짓의 경우에는 OUT 으로 0을 출력합니다. 프로그램 예 실행 조건( %IX0.0.1)을 ON 하면 LE 펑션이 실행됩니다. 입력 변수로 선언된 값 10=150, 값 11=200, 값 12=250 이면, 비교 결과 값 10 값 11 값 12 이므로, 출력 결과 값 %QX0.3.3=1 이 됩니다. 입력 (IN1) : 값 10 (INT) =150(16#0096) (IN2) : 값 11 (INT) = 200(16#00C8) (IN3) : 값 12 (INT) = 250(16#00FA) 출력 (OUT) : %QX0.3.3 (BOOL) = 1(16#1) 123

기본 명령어 및 프로그래밍 기능 입력값의 비교 결과 IN1 IN2 IN3... INn (n 은 입력 개수)이 참이면 OUT 으로 1 을 출력합니다. 거짓의 경우에는 OUT 으로 0을 출력합니다. 프로그램 예 실행 조건( %IX0.0.1)을 ON 하면 LT 펑션이 실행됩니다. 입력 변수로 선언된 값 15=100, 값 16=200, 값 17=300 이면, 비교 결과 값 15 값 16 값 17 이므로, 출력 결과 값 %QX0.3.4=1 이 됩니다. 입력 (IN1) : 값 15 (INT) =100(16#0064) (IN2) : 값 16 (INT) = 200(16#00C8) (IN3) : 값 17 (INT) = 300(16#012C) 출력 (OUT) : %QX0.3.4 (BOOL) = 1(16#1) 124

기본 명령어 및 프로그래밍 기능 비교 결과 IN1 과 IN2 가 같지 않으면 OUT 으로 1 을 출력합니다. 같으면 OUT 으로 0을 출력합니다. 프로그램 예 실행 조건( %IX0.0.1)을 ON 하면 NE 펑션이 실행됩니다. 입력 변수로 선언된 값 18=300, 값 19=200 이면, 비교 결과 값 18 과 값 19 가 같지 않으므로, 출력 결과 값 %QX0.3.5=1 이 됩니다. 입력 (IN1) : 값 18 (INT) =300(16#012C) (IN2) : 값 19 (INT) = 200(16#00C8) 출력 (OUT) : %QX0.3.5 (BOOL) = 1(16#1) 125

기본 명령어 및 프로그래밍 GT, GE, EQ, LE, LT, NE 펑션의 프로그램 예 편집 126

기본 명령어 및 프로그래밍 (2) GT, GE, EQ, LE, LT, NE 펑션의 프로그램 예 LD 모니터링 127

기본 명령어 및 프로그래밍 9.3 기본 펑션 블록 기본 펑션 블록 중 가장 일반적인 것은 카운터와 타이머입니다. 9.3.1 기본 펑션 블록 일람표 (1) 카운터 No. 펑션 블록 이름 기 능 1 CTU 가산 카운터(Up Counter) 2 CTD 감산 카운터(Down Counter) 3 CTUD 가감산 카운터(Up Down Counter) (2) 타이머 No. 펑션 블록 이름 기 능 1 TON On 딜레이 타이머(On Delay Timer) 2 TOF Off 딜레이 타이머(Off Delay Timer) 3 TP 펄스 타이머(Pulse Timer) 128

기본 명령어 및 프로그래밍 9.3.2 기본 펑션 블록 설명 및 프로그램 예 9.3.2.1 카운터 기능 펄스입력 CU 가 0에서 1(Rising Edge)이 되면 현재값 CV 가 이전값 보다 1만큼 증가합니다. 단, CV 는 정수(INT)의 최대값 32767 을 넘지 않습니다. 리셋 입력 R이 1이 되면 현재값 CV 는 0으로 소거( Clear)됩니다. 출력 Q는 현재값(CV)이 설정값(PV) 이상이면 1이 됩니다. 타임 차트 프로그램 예 CTU 는 펑션 블록이므로 연산 중 누계되는 데이터를 잠시 보관하기 위한 인스 턴스 변수를 반드시 선언해야 합니다. GMWIN 에서프로그램 편집 시 CTU 의 인스턴스 변수를 선언하면 카운터 출력은 인스턴스 이름.Q, 현재값은 인스턴스 이름.CV 로 변수가 자동 생성됩니다. 129

기본 명령어 및 프로그래밍 CTU 의 인스턴스 변수 C1 을 선언합니다. 우측 디지털 스위치(%IW0.1.0)로 설정값 10 을 입력합니다. 토글 스위치 0 (%IX0.0.0)로 CU 에 입상(Rising Edge) 펄스를 입력하면 현재값이 증가 합니다. 현재값을 우측 디지털 표시기(%QW0.2.0)에 출력합니다. 현재값이 설정값 이상이면 카운터 출력(C1.Q)이 1이 되어 램프(%QX0.3.0)가 점 등됩니다. 토글 스위치 1 (%IX0.0.1)을 ON 하면 현재값 및 카운터 출력이 리셋되어 0이 됩니다. 현재값(C1.CV)이 0 ~ 9999 사이를 벗어나면 펑션 INT_TO_BCD 에 의해 _ERR, _LER 플래그가 ON 됩니다. (1) 프로그램 편집 130

기본 명령어 및 프로그래밍 (2) LD 및 변수 모니터링 131

기본 명령어 및 프로그래밍 기능 펄스 입력 CD 가 0에서 1(Rising Edge)이 되면 현재값 CV 가 이전값 보다 1만큼 감소합니다. 단, CV 는 정수(INT)의 최소값 -32768 이 되면 더 이상 감소하지 않습니다. 설정값 입력 접점 LD 가 1이 되면, 설정값 PV 값이 현재값 CV 에 로드 됩니다.(PV=CV) 출력 Q는 현재값(CV)이 0이하 이면 1이 됩니다. 타임 차트 프로그램 예 CTD 는 펑션 블록이므로 연산 중 누계되는 데이터를 잠시 보관하기 위한 인스 턴스 변수를 반드시 선언해야 합니다. GMWIN 에서프로그램 편집 시 CTD 의 인스턴스 변수를 선언하면 카운터 출력은 인스턴스 이름.Q, 현재값은 인스턴스 이름.CV 로 변수가 자동 생성됩니다. CTD 의 인스턴스 변수 C2 를 선언합니다. 설정값을 10 으로 셋팅합니다. 초기에 _1ON(첫 스캔 ON)에 의해 LD 가 1이 되어 설정값이 현재값에 로드 됩니다. 토글 스위치 1 (%IX0.0.1)로 CD 에 입상(Rising Edge) 펄스를 입력하면 현재값이 132

기본 명령어 및 프로그래밍 감소 합니다. 현재값을 좌측 디지털 표시기(%QW0.2.1)에 출력합니다. 현재값이 0 이하이면 카운터 출력(C2.Q)이 1이 되어 램프 1(%QX0.3.1)이 점등 됩니다. 토글 스위치 2 (%IX0.0.2)를 ON 하면 LD 가 1 이 되어 설정값이 현재값에 로드 됩니다. 현재값이 0 ~ 9999 사이를 벗어나면 펑션 INT_TO_BCD 에 의해 _ERR, _LER 플래그가 ON 됩니다. (1) 프로그램 편집 133

기본 명령어 및 프로그래밍 (2) LD 모니터링 현재값이 0 ~ 9999 사이의 값을 갖을 경우 현재값이 0 ~ 9999 사이의 값을 벗어날 경우 134

기본 명령어 및 프로그래밍 기능 CTUD 는 CU 가 0 에서 1 이 되면 현재값 CV 가 이전값 보다 1 만큼 증가하고, CD 가 0에서 1이 되면 현재값 CV 가 이전값 보다 1만큼 감소하는 카운터 입니다. 단, 현재값 CV 는 정수(INT)의 최소값 -32768 ~ 최대값 32767 사이의 값을 갖습니다. 설정값 입력 접점 LD 가 1이 되면 현재값 CV 에 설정값 PV 값이 로드 됩니다. ( CV=PV) 설정값 입력 R이 1이 되면 현재값 CV 는 0으로 클리어(Clear) 됩니다. ( CV=0) 출력 QU 는 CV 가 PV 이상 이면 1이 되고, QD 는 CV 가 0이하 일 때 1이 됩니다. 각 입력 신호에 대해서 R > LD > CU > CD 순으로 동작을 수행하며, 신호의 중복 발생시 우선 순위가 높은 동작 하나만 수행합니다. 135

기본 명령어 및 프로그래밍 타임 차트 프로그램 예 CTUD 는 펑션 블록이므로 연산 중 누계되는 데이터를 잠시 보관하기 위한 인스 턴스 변수를 반드시 선언해야 합니다. GMWIN 에서 프로그램 편집 시 CTUD 의 인스턴스 변수를 선언하면 업 카운트 출력은 인스턴스 이름.QU, 다운 카운트 출력은 인스턴스 이름.QD 그리고 현재값은 인스턴스 이름.CV 로 변수가 자동 생성됩니다. CTUD 의 인스턴스 변수 C3 를 선언합니다. 설정값을 10 으로 셋팅합니다. 초기에 _1ON(첫 스캔 ON)에 의해 5가 C3.CV 에 전송되어 현재값은 5가 됩니다. 토글 스위치 0(%IX0.0.0)로 CU 에 입상(Rising Edge) 펄스를 입력하면 현재값이 증가 합니다. 토글 스위치 1(%IX0.0.1)로 CD 에 입상(Rising Edge) 펄스를 입력하면 현재값이 감소 합니다. 현재값이 0 ~ 9999 이면 우측 디지털 표시기(%QW0.2.0)로 출력 됩니다. 현재값이 설정값 이상이면 C3.QU 가 1이 되어 램프 0(%QX0.3.0)이 점등 됩니다. 현재값이 0 이하이면 C3.QD 가 1이 되어 램프 1(%QX0.3.1)이 점등 됩니다. 토글 스위치 2(%IX0.0.2)를 ON 하면 리셋되어 현재값은 0 으로 클리어(Clear) 됩니다. 토글 스위치 3(%IX0.0.3)를 ON 하면 LD 가 1 이 되어 설정값이 현재값에 로드 됩니다. 현재값이 0 ~ 9999 사이를 벗어나면 펑션 INT_TO_BCD 에 의해 _ERR, _LER 플래그가 ON 됩니다. 136

기본 명령어 및 프로그래밍 (1) 편집 프로그램 137

기본 명령어 및 프로그래밍 (2) LD 모니터링 138

기본 명령어 및 프로그래밍 9.3.2.2 타이머 기능 IN 이 1이 된 후 경과 시간이 ET 로 출력됩니다. 만일, 경과 시간 ET 가 설정 시간에 도달하기 전에 IN 이 0이면, 경과 시간은 0으로 됩니다. Q 가 1이 된 후 IN 이 0이 되면, Q 는 0이 됩니다. 타임 차트 프로그램 예 TON 은 펑션 블록이므로 연산 중 누계되는 데이터를 잠시 보관하기 위한 인스 턴스 변수를 반드시 선언해야 합니다. GMWIN 에서프로그램 편집 시 TON 의 인스턴스 변수를 선언하면 타이머 출력 은 인스턴스 이름.Q, 경과 시간은 인스턴스 이름.ET 로 변수가 자동 생성됩니다. TON 의 인스턴스 변수 T1 을 선언합니다. 타이머 T1 의 설정 시간을 7초(T#7S)로 설정합니다. 139

기본 명령어 및 프로그래밍 기동 스위치 0 (%IX0.0.0)를 ON 하면 경과 시간(T1.ET)이 디지털 표시기에 출력됩니다. 경과 시간 T1.ET 가 설정 시간 7초에 도달하면 타이머 출력 T1.Q 가 ON 됩니다. T1.Q 가 ON 된 후 기동 스위치 0 (%IX0.0.0)를 OFF 하면 T1.Q 는 OFF 됩니다. (1) 편집 프로그램 140

기본 명령어 및 프로그래밍 (2) LD 및 변수 모니터링 141

기본 명령어 및 프로그래밍 기능 IN 이 1이 되면, Q 가 1이 되고, IN 이 0 이 된 후부터 PT 에 의해서 지정된 설정 시간이 경과한 후 Q가 0이 됩니다. IN 이 0이 된 후 경과 시간이 ET 로 출력됩니다. 만일 경과 시간 ET 가 설정 시간에 도달하기 전에 IN 이 1이 되면, 경과 시간은 다시 0으로 됩니다. 타임 차트 142

기본 명령어 및 프로그래밍 프로그램 예 TOF 는 펑션 블록이므로 연산 중 누계되는 데이터를 잠시 보관하기 위한 인스턴 스 변수를 반드시 선언해야 합니다. GMWIN 에서프로그램 편집 시 TOF 의 인스턴스 변수를 선언하면 타이머 출력은 인스턴스 이름.Q, 경과 시간은 인스턴스 이름.ET 로 변수가 자동 생성됩니다. TOF 의 인스턴스 변수 T2 를 선언합니다. 타이머 T2 의 설정 시간을 5초(T#5S)로 설정합니다. 기동 스위치 1 (%IX0.0.1)을 ON 하면 타이머 출력 T2.Q 가 ON 됩니다. 기동 스위치 1 (%IX0.0.1)을 OFF 하면 경과 시간(T2.ET)이 디지털 표시기에 출력 됩니다. 경과 시간 T2.ET 가 설정시간 5초에 도달하면 타이머 출력 T2.Q 가 OFF 됩니다. (1) 편집 프로그램 143

기본 명령어 및 프로그래밍 (2) LD 모니터링 144

기본 명령어 및 프로그래밍 기능 IN 이 1이 되면 PT 에 의해서 지정된 설정 시간 동안만 Q가 1이 되고, ET가 PT 에 도달하면 자동으로 0이 됩니다. 경과 시간 ET 는 IN 이 1이 되었을 때부터 증가하며 PT 에 이르면 값을 유지하다가 IN 이 0이 될 때 0의 값이 됩니다. ET 가 증가할 동안은 IN 이 0이 되거나 재차 1이 되어도 영향이 없습니다. 타임 차트 145

기본 명령어 및 프로그래밍 프로그램 예 TP 는 펑션 블록이므로 연산 중 누계되는 데이터를 잠시 보관하기 위한 인스턴스 변수를 반드시 선언해야 합니다. GMWIN 에서프로그램 편집 시 TP 의 인스턴스 변수를 선언하면 타이머 출력은 인스턴스 이름.Q, 경과 시간은 인스턴스 이름.ET 로 변수가 자동 생성됩니다. TP 의 인스턴스 변수 T3 를 선언합니다. 타이머 T3 의 설정 시간을 5초(T#5S)로 설정합니다. 기동 스위치 0 (%IX0.0.0)를 OFF ON 하면 타이머 출력 T3.Q 가 5초 동안 ON 했다 OFF 합니다. T3.ET 가 증가할 동안 기동 스위치 0 가 OFF 되거나 다시 ON 되어도 영향이 없습니다. T3.ET 가 증가할 동안 경과 시간(T3.ET)이 디지털 표시기에 출력됩니다. (1) 편집 프로그램 146

기본 명령어 및 프로그래밍 (2) LD 모니터링 147

기본 명령어 및 프로그래밍 2.3 배열(Array)변수에 대하여 배열(Array)이란 동일한 이름과 동일한 데이터 타입(WORD, BYTE, 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.3.0 의 출력모둘로 출력하는 프로그램 예입니다. <배열변수 선언및 초기값 입력> 변수명 LED 열 을 WORD 형 배열 변수로 선언하고 초기값을 입력 합니다. 148

기본 명령어 및 프로그래밍 프로그램 모니터링 결과 INT 형 변수 A 의 현재값이 4 이므로 LED 열[A] 의 원소번호가 4 가되어 결국 LED 열[4] 의 값 16#7777 이 LED_출 력 149

사용자 정의 라이브러리 작성 제 3 장 확장 라이브러리의 활용 3.1 확장 펑션 라이브러리(Master-K 펑션 라이브러리) 기존의 Master-K 사용자 편의를 위해 제공되는 라이브러리 파일입니다. 이 라이브러리 파일을 사용할 때는 반드시 프로젝트의 삽입된 라이브러리 파일들 에 등록되어야합니다. 라이브러리 파일 이름은 mkstdlib.*fu 입니다. 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 비트 스트링의 일부분을 복사 이동 3.1.1 확장 펑션 프로그램 예 (1) 프로젝트 생성및 라이브러리 파일 추가 확장 펑션 명령을 사용하려면 먼저 해당 라이브러리 파일을 프로젝트에 추가하여야 합니다. 150

사용자 정의 라이브러리 작성 추가된 라이브러리 파일 151

사용자 정의 라이브러리 작성 (2) 프로그램 작성 예 숫자 입력 프로그램 예(ENCO_W 펑션 활용) 개요 10 진 Key 의 조작에 의하여 지정한 변수에 원하는 숫자를 써넣는 프로그램입니다. 입출력 구성 1 2 3 4 7 0 5 8 Clr 6 9 Ent 152

사용자 정의 라이브러리 작성 프로그램 작성 행 0 의 AND 및 NE 펑션 %IW0.0.1 의 16 Bit 중 하위 10 Bit 를 마스킹하여 변수 KEY_10 에 씀 KEY_10 중 On Bit 가 있으면 변수 누름_검출이 On 됨. 행 4 의 ENCO_W 및 INT_TO_WORD 펑 션 KEY_10 중 On Bit 의 번호를 구하 여 변수 입력키값 에 저장하고 이를 WORD 형으로 변환해 WORD 값 에 저 장. 행 7 의 SHL 및 OR 펑션 DISPLAY 의 Bit 열을 4 Bit 만큼 왼쪽 으로 이동함. DISPLAY + WORD 값 = DISPLAY 행 11 의 WORD_TO_INT 및 MOVE DISPLAY 를 INT 형으로 변환하여 입력숫자값 에 저장하고 DISPLAY 는 삭제 사용된 변수 List 153

사용자 정의 라이브러리 작성 제 4 장 사용자 정의 라이브러리 작성 사용자가 직접 만든 펑션 및 펑션블록을 저장하는 라이브러리 파일을 말합니다. 메뉴의 프로젝트 / 라이브러리 삽입 에서 추가하여 사용합니다. 사용자 정의 라이브러리 파일에는 펑션(확장자:.?fu) 및 펑션 블록(확장자:.?fb) 이 있습니다. (주 :?는 기종에 따라 1, 2, 3, 4, 5 로 되어 있음) 자주 사용하는 프로그램들을 표준화하여 펑션 또는 펑션블록으로 만들어 사용자 라이브 러리 파일에 등록해두고 이 검증된 명령어들을 다른 프로젝트 수행시 재 활용함으로서 프로그램의 작성 및 디버그시 편리하고 신속하게 수행할 수 있는 기능입니다. 9.44.1 사용자 정의 펑션블록 작성 예 여기서는 제 3 장에서 설명한 숫자 입력 프로그램을 사용자 펑션블록으로 등록하여 활용 하는 예를 설명하겠습니다. (1) 새 프로젝트 작성 주) 이 장에서는 확장 라이브러리 mkstdlib.3fu 의 ENCO_W 펑션이 사용되므로 미리 이 라 이브러리 파일을 추가하여야 합니다. 154

사용자 정의 라이브러리 작성 (2) 새 프로그램 열기 펑션블록을 작성하기 위하여 새 프로그램을 열고 파일 이름(텐키_FB)을 쓰고 프로그램 종류를 펑션블록으로 선택하고 만들고자하는 펑션블록의 이름을 정하여 입력합니다(예에서는 텐키 로 합니다.) (3) 입출력 변수 선언 펑션블록의 입출력 이름으로 사용될 변수를 정의합니다. 주) 펑션블록의 경우 가장 위의 첫번째 입력및 출력변수는 반드시 BOOL 타입이어야 합 니다. 155

사용자 정의 라이브러리 작성 만일 BOOL 타입 입출력이 프로그램에 필요하지 않을 경우에도 Dummy 변수를 선언해 야 합니다. 프로그램 작성 미리 정의한 입출력 변수와 지역 변수를 선언 해가며 프로그램을 작성합니다. 156

사용자 정의 라이브러리 작성 (4) 컴파일 (5) 컴파일을 수행한 후 확인 단추를 눌러 펑션 블록 안내자가 나타나면, 계속 단추를 눌러 라이브러리 등록 안내자를 통하여 새 라이브러리 파일(홍길동.3fb)을 만듭니다. 157

사용자 정의 라이브러리 작성 (6) 라이브러리 파일의 프로젝트 등록 안내자를 통하여 라이브러리 파일을 프로젝트 파일에 등록하고 관련 내용을 적용합니다. 158

사용자 정의 라이브러리 작성 (8) 다음의 프로그램은 만든 펑션 블록 텐키를 사용한 예 입니다. 도구상자에서 펑션블록을 선택하여 편집창에 올리면 텐키 라는 펑션블록이 나타납니다 이 것을 선택하여 다음과 같은 프로그램을 작성하여 실행을 확인해 보십시오. 159

사용자 정의 라이브러리 작성 160

사용자 정의 펑션 작성 예 9.54.2 사용자 정의 펑션 작성 예 본 절에서는 표준 펑션을 이용하여 사용자 정의 펑션을 만들어 활용하는 과정을 설명 하겠습니다. 9.5.14.2.1 거듭제곱 펑션 만들기 지수연산 프로그램 작성을 위하여 새 프로그램 창을 프로그램 종류를 펑션을 선택, 펑 션 이름 은 거듭제곱 으로하고 실행후 리턴되는 출력 데이터 타입을 INT 형으로 선택합니 다. 이 펑션은 INT 형태의 연산 펑션이 되며 또한 지수가 음수(-)일 경우는 정상 연산이 되 지 않습니다.(GM1, 2 의 기종은 표준 펑션 EXPT 에 의하여 가능함) (1) 프로그램 창 열기(펑션) 주) 펑션은 펑션블록과 달리 실행후 리턴값을 받을 출력 데이터 타입을 반드시 설정해야 합 니다. 161

사용자 정의 펑션 작성 예 (2) 사용자 펑션에서 사용할 입력 변수와 데이터 타입을 선언합니다. 사용될 입력변수를 정의 합니다. Return 값을 INT 형으로 하였으므로 연산원 역시 INT 형으로 선언합니다. (3) 사용자 펑션을 만들기 위한 프로그램 편집 이미 정의된 입력변수와 지역변수를 선언해가며 프로그램을 작성합니다. 주) 최종 연산 결과는 Return 값인 거듭제곱 (펑션이름과 동일)으로 저장해야 합니다. 162

사용자 정의 펑션 작성 예 (4) 컴파일, 사용자 라이브러리 파일 만들기, 라이브러리 프로젝트에 추가 등은 사용자 펑션블록 만들기의 경우와 같습니다. 다음은 라이브러리 파일이 추가된 프로젝트 창 입니다 추가된 펑션블록 라이브러리 파일 추가된 펑션 라이브러리 파일 (5) 도구 상자에 서 를 선택하여 원하는 위치에 클릭하면 펑션목록 대화상자가 나타납니다 여기서 새로 추가된 펑션 거듭제곱 을 선택하여 프로그램을 작성합니다. 163

사용자 정의 펑션 작성 예 (6) 사용자 펑션에의해 작성된 프로그램 실행 예 입니다. 작성후 PLC 에 전송 후 실행합니다. 입력된 변수 부분을 더블 클릭 하면 아래와 같은 대화상자에서 변수값을 강제 입력하 여 실행 테스트가 가능합니다. 164

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

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

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

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

태스크 프로그램 5.2 태스크 프로그램 5.2.1 초기화 태스크 프로그램 (1) 초기화 태스크 설정 및 새 프로그램 추가 인스턴스 이름 지 수행조건을 태스크로 선택하고 초기화 태스 크 이름을 쓰거나 찾아보기 버튼을 눌러 태스 저장할 프로그램 파일 이름을 입력한다. 정의된 태스크 프로그램 설정 이 곳을 더블클릭하여 편집창을 엽니 169

태스크 프로그램 프로그램 작성 각종 표시 램프를 점검하는 프로그램으로 %QX0.3.0 부터 %QW0.3.15 까지 1 초 간격 으로 차례로 점등시키고 마지막 %QX0.3.15 가 On 되면 5 초 후에 모두 Off 시키고 초기화 종료 플래그 _INIT_DONE 를 On 하여 프로그램 수행을 마칩니다. 5.2.2 정주기 태스크 프로그램 (1) 태스크 정의(정주기 태스크 정의) 여기를 눌 러 이 곳을 더블클릭하여 태스크를 정의 태스크 이름 (인터벌) 수행 조건 설정 (정주기 : 5 초) 170

태스크 프로그램 (2) 정주기 태스크 프로그램 추가 새로 추가한 프로그램에 위에서 정의한 정주기 태스크로 기동 조건을 부여합니다. 정의한 태스크 프로그램 설정 (3) 정주기 태스크 프로그램 작성 현재값은 스켄 프로그램 또는 다른 태스크 프로그램으로부터 입력 받아야 하므로 171

태스크 프로그램 변수의 종류는 VAL_EXTERNAL 로 지정하여 하여 GLOBAL 변수를 사용해야 합니다. 5.2.3 내부 접점 태스크 (1) 태스크 정의(내부 접점 태스크) 태스크 목록에 다음과 같이 내부접점 태스크를 추가합니다. 수행조건의 변수 RUN_TASK 는 BOOL 변수 또는 %MXn, %IXn.n.n, %QXn.n.n 등의 메모리 어드레스로 할당된 변수로 지정해야 합니다 또 여러 프로그램 블록에서 사용하려면 해당변수는 글로벌 변수나 직접변수를 지정 해야 합니다. 172

태스크 프로그램 (2) 프로그램 작성 내부접점 태스크에서 정의한 변수 RUN_TASK 가 스켄 프로그램에서 On 되면 현재 Scan 을 마치고 본 태스크 프로그램을 1 Scan 실행합니다. 수행 조건 접 173

태스크 프로그램 (3) 전체 프로그램 보기 174

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

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

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

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

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

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

SFC 프로그램 작성 6.3 SFC 전개 규칙 6.3.1 직렬 연결 2 개의 스텝은 직접 연결되지 않고 항상 트랜지션에 의해 분리됩니다. 2 개의 트랜지션은 직접 연결되지 않고 항상 스텝에 의해 분리됩니다. 직렬로 연결되어 있는 스텝간의 이행은 상위 스텝이 활성화된 상태에서 다음에 연결된 트랜지션의 이행조건이 1 로 되면 하위스텝이 활성화 상태가 됩니다. 6.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 순으로 활성화 상태가 됩니다. 181

SFC 프로그램 작성 6.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------------------+ 182

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

SFC 프로그램 작성 2) 병렬 분기 안에서의 점프 3) 병렬 분기 안으로는 점프할 수 없습니다. 184

SFC 프로그램 작성 6.4 SFC 프로그램 예 6.4.1 직렬 연결 프로그램 예 (1) 프로그램 편집 185

SFC 프로그램 작성 (2) 프로그램 모니터링 186

SFC 프로그램 작성 6.4.2 선택 분기 프로그램 예 (1) 프로그램 편집 (2) 프로그램 모니터링 스텝 S2 가 활성화되면 램프 %Q0.3.2 가 점등 됩니다. 분기된 T2 나 T5 중 먼저 ON 된 해당 스텝이 활성화 됩니다. 187

SFC 프로그램 작성 6.4.3 병렬 분기 프로그램 예 (1) 프로그램 편집 188

SFC 프로그램 작성 (2) 프로그램 모니터링 초기에 스텝 1 이 활성화되어 액션: 데모 1 프로그램이 실행 됩니다. 189

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

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

SFC 프로그램 작성 192

실 습 193

실습 #1 직접변수 표현방식 활용 실습 #1 직접변수 표현방식 활용 1. 실습목표 : 직접변수를 사용해서 기본적인 입출력 회로도를 작성하여 시뮬레이션으로 확인한다. 2. 동작개요 : %IX0.0.0이 입력되면 %QX0.2.0이 출력된다. %IX0.0.5 이 입력되면 %QX0.2.5 이 출력된다. %IX0.1.0 이 입력되면 %QX0.3.0 이 출력된다. %IX0.1.5 이 입력되면 %QX0.3.5 이 출력된다. 3. 예비지식 ⑴ GWWIN 프로그래밍툴 : GLOFA PLC 시리즈의 프로그램을 작성하고 편집하여 실행 파일을 만든다. 만들어진 실행파일을 PLC 에 전송한다. PLC 데이터를 모니터링, 디버깅한다. ⑵ 직접변수 : (교재 앞부분에 자세히 설명.) 메모리 영역을 표기방법에 따라 주소를 지정하여 변수로 직접 사용하는 방식이다. 직접변수 표시문자 % 는 직접변수임을 표시하기 위해 약속된 기호로서, 변수 앞에 붙여서 직접변수임을 알 수 있도록 한다. 4. 입출력 테이블 입력접점 출력접점 %IX0.0.0 %QX0.2.0 %IX0.0.1 %QX0.2.1 %IX0.0.2 %QX0.2.2 %IX0.0.3 %QX0.2.3 %IX0.0.4 %QX0.2.4 %IX0.0.5 %QX0.2.5 %IX0.1.0 %QX0.3.0 %IX0.1.1 %QX0.3.1 %IX0.1.2 %QX0.3.2 %IX0.1.3 %QX0.3.3 %IX0.1.4 %QX0.3.4 %IX0.1.5 %QX0.3.5 194

실습 #1 직접변수 표현방식 활용 5. Ladder Diagram 6. 동작확인 195

실습 #2 직접변수를 사용한 자기 유지 회로 실습 #2 직접변수를 사용한 자기 유지 회로 1. 실습 목표 : 직접변수를 사용하여 자기 유지 회로를 작성하고 시뮬레이션을 통하여 동작을 확인한다. 2. 동작 개요 : %IX0.0.0 을 ON 시키면 %QV0.2.0 이 켜지고, %IX0.0.0 을 OFF 하여도 ON 상태를 유지한다. %IX0.0.1 를 누르면 %QV0.2.0 이 꺼진다. 1) 자기유지를 사용한 복동실린더의 단속제어 아래 그림은 자기유지를 사용한 복동실린더의 단속제어로서, 누름버튼스위치 PB1 을 누르면 릴레이 R1 의 전자코일이 여자되고, 연동되어 있는 릴레이 R1 의 a 접점 에 의해 자기유지된다. 또한 릴레이 R1 의 a 접점에 의해 솔레노이드 Sol1 을 여자 시켜 밸브스풀의 위치가 변환되고 실린더를 전진시키는데, 이 때 누름버튼 PB1 에 서 손을 떼도 실린더는 자기유지회로에 의해 전진을 계속하고 누름버튼 PB2 를 눌 러야만 자기유지가 해제되어 실린더가 복귀한다. 자기유지회로를 사용하면 피스톤의 전진된 상태를 유지할 수 있다. 1) 전기공압에서 직접변수의 사용 예 그림 a 는, 복동실린더를 5 포트 2 위치 한쪽 솔레노이드밸브를 사용하여 단속제어 하는 전기공압회로도이고, 그림 b 는, 복동실린더의 단속제어를 위한 전기시퀀스회 로도이다. 그림 c 는, PLC 로 짠 소프트와이어드 프로그램이고, 각 소자가 그림 b 의 각 소자 와 1 대 1 로 대응되며 각각은 PLC 에서 직접변수로 나타내어져 있다. %IX0.0.0 에 대해서는 앞에서 설명한 바와 같이 I 는 입력모듈을 나타내고 다음의 0 은 증설되지 않은 기본베이스, 다음의 0 은 0 번째 슬롯, 다음의 0 은 첫번째 비트 라는 의미이다. %QX0.2.0 의 Q 는 출력모듈을 나타내고 2 는 2 번째 슬롯이라는 의미이다. 그림 b 의 릴레이는 PLC 에서는 내부메모리 %MX1 로 나타내어졌다. 196

실습 #2 직접변수를 사용한 자기 유지 회로 4. 입출력 테이블 입력접점 %IX0.0.0 %IX0.0.1 출력접점 %QX0.2.0 5. Ladder Diagram 197

실습 #2 직접변수를 사용한 자기 유지 회로 6. 동작 확인 %IX0.0.0 을 ON 시키자 %QX0.2.0 이 ON 됨. %IX0.0.0 을 OFF 시켜도 %QX0.2.0 이 OFF 되지 않음. %IX0.0.1 을 ON 시키자 %IX0.2.0 이 OFF 됨. 198

실습 #3 간접변수를 사용한 자기 유지 회로 실습 #3 간접변수를 사용한 자기 유지 회로 1. 실습 목표 : 간접변수를 사용하여 자기 유지 회로를 작성하고 시뮬레이션을 통하여 동작을 확인한다. 2. 동작 개요 : PB1(%IX0.0.0)을 ON 시키면 SOL1(%QX0.2.0)가 켜지고, PB1(%IX0.0.0) 을 OFF 하여도 SOL1(%QX0.2.0)은 ON 상태를 유지한다. PB2(%IX0.0.1)를 누르면 SOL1(%QX0.2.0)은 OFF 된다 1) 전기공압에서 네임드 변수 사용 예 그림 a 는, 복동실린더를 5 포트 2 위치 한쪽 솔레노이드밸브를 사용하여 단속제어 하는 전기공압회로도이고, 그림 b 는, 복동실린더의 단속제어를 위한 전기시퀀스회 로도 이다. 그림 c 는, PLC 로 짠 소프트와이어드 프로그램이다. 각 소자가 그림 b 의 각 소자와 1 대 1 로 대응되며 각각은 PLC 에서 네임드변수로 나타내어져 있다. 네임드변수를 사용하면 일반적으로 기억하기 쉬운 변수명으로 나타내 줄 수 있기 때문에 편리하다. 4. 입출력 테이블 입력 변수명 메모리 할당 출력 변수명 메모리 할당 PB1 %IX0.0.0 SOL1 %QX0.2.0 PB2 %IX0.0.1 199

실습 #3 간접변수를 사용한 자기 유지 회로 5. Ladder Diagram 1) 네임드 변수(Named Variable)의 메모리 할당 네임드 변수 선언 절차 마지막 단계는 네임드 변수(Named Variable)의 메모리 할당 이다. 네임드 변수의 메모리 할당에는 자동할당과 사용자 정의의 두 가지가 있다. 200

실습 #3 간접변수를 사용한 자기 유지 회로 6. 동작 확인 PB1 을 ON 시키자 SOL1 이 ON 됨. PB1 을 OFF 시켜도 SOL1 이 OFF 되지 않음. PB2 를 ON 시키자 SOL1 이 OFF 됨. 201

실습 #4 PLC 장치를 사용한 점등하기 실습 #4 PLC 장치를 사용한 점등하기 <그림 1.1>은 버튼스위치를 이용하여 전구에 붉을 밝히는 기본적인 회로이다. <그림 1.2>는 PLC 로 짠 소프트와이어드프로그램이다. <그림 1.3>은 전구를 켜기위한 전기시퀀스회로도이다. <그림 1.4>는 입력과 출력 과정을 나타낸 회로도이다. 그림 1.1 그림 1.2 PBS 그림 1.3 그림 1.4 <작동순서> ㆍ 시동신호인 스위치 PBS(%IX0.1.0)를 누른다. ㆍ 입력신호가 전달되고 입력신호가 PLC 를 지나 출력신호(%QX0.2.0)로 바뀌어 출력신호가 전달. ㆍ 출력신호가 전구에 전달되면 전구에 불이 들어옴. 202

실습 #5 복동실린더 전후진 동작 실습 #5 복동실린더 전후진 동작 1. 실습 목표 : 간접변수를 사용하여 자기 유지 회로를 작성하고 하드웨어와 연결하여 동작을 확인한다. 2. 동작 개요 : PB1(%IX0.0.0)을 ON 시키면 SOL1(%QX0.2.0)가 켜지고, PB1(%IX0.0.0) 을 OFF 하여도 SOL1(%QX0.2.0)은 ON 상태를 유지한다. PB2(%IX0.0.1)를 누르면 SOL1(%QX0.2.0)은 OFF 된다. 3. 입출력 테이블 입력 변수명 메모리 할당 출력 변수명 메모리 할당 PB1 %IX0.0.0 SOL1 %QX0.2.0 PB2 4. Ladder Diagram %IX0.0.1 6. 동작 확인 203

실습 #6 리밋스위치를 사용한 자동후진 실습 #6 리밋스위치를 사용한 자동후진 1. 실습 목표 : S/W 를 PLC 의 접점과 연결하여 자기 유지 회로도를 구성하고 동작을 확인한다. 2. 동작 개요 : S/W 를 누르면 램프가 켜지고 PB2 를 ON 시키면 램프가 꺼진다. 1) 2.3 자동복귀회로 실린더가 전진 끝단에 도달했을 때 자동적으로 복귀하도록 하려면, 이과 같이 실린더 전진행정 끝단에 리밋스위치를 설치하여 그 신호로서 자기유지를 해제케 하면 가능하다. 리밋스위치 피스톤 로드 끝에 장착된 도그가 동작 중에 리밋스위치의 롤러를 누르면 마이크로 스위치가 눌려지게 되고 내부 전기적 접점의 절환이 일어난다. 리밋스위치는 a 접점 및 b 접점으로 사용될 수 있는데 a 접점으로 사용하려면 COM 단자와 N.O 단자를 사용하면 되고, b 접점으로 사용하려면 COM 단자와 N.C 단자를 사용하면 된다. 204

실습 #6 리밋스위치를 사용한 자동후진 4. 입출력 테이블 입력 입력 접점 출력 출력 접점 LS1 %IX0.1.0 SOL1 %QX0.2.0 PB1 %IX0.0.1 R1 (자동) 5. Ladder Diagram 6. 동작 확인 7. 입출력 테이블 입력 입력 접점 출력 출력 접점 PB1 %IX0.0.0 실린더 전진 %QX0.2.0 LS1 %IX0.1.0 8. Ladder Diagram 205

실습 #6 리밋스위치를 사용한 자동후진 9. 동작 확인 실습 #7 양측 Sol 을 사용한 복동 실린더 연속 왕복작동 206

실습 #7 양측 Sol 을 사용한 복동 실린더 연속 왕복작동 1. 실습 목표 : 리밋 S/W 와 양측 Sol 을 사용해서 복동 실린더를 연속 왕복작동 시키는 회로도를 구성하고 동작을 확인한다. 2. 동작 개요 : PB1 을 ON 시키면 R1 이 ON 되고, SOL1 이 ON 되 실린더가 목표지점까지 전진한다. 실린더가 목표지점까지 전진하면 LS2 리밋 S/W를 건드려 SOL2 를 ON 시 킨다. SOL2가 ON 되면 실린더가 복귀하고 LS1 리밋 S/W 를 건드려 SOL1 이 ON 된다. PB2가 ON 되기 전까지 R1 의 자기유지로 실린더는 연속으로 왕복 작동된 다. 3.2 양측 전자밸브를 사용한 연속왕복작동회로 시동신호인 누름버튼 스위치 PB1 을 누르면 R1 이 여자됨 2 행의 R1 접점에 의해 자 기유지 되며 동시에 3 행의 R1 접점이 ON 되어 R2 가 여자됨 5 행의 sol1 이 ON 되 어 실린더가 전진 전진 끝단에서 LS2 에 접촉되면 4 행의 R3 가 여자됨 6 행의 sol2 가 여자되어 실린더는 후진 실린더가 후진 끝까지 도달되어 LS1 리밋스위치를 누름 3 행에서 R1-a 접점은 ON 되어 있으므로 R2 가 여자되어 실린더는 전진 실린더는 계속적으로 전진과 후진을 반복하며, 이것을 정지시키려면 1 행의 정지버튼 PB2 를 눌 러 R1 의 자기유지를 해제시켜야 함 3. PH-LAB 을 사용한 회로도 표현 207

실습 #7 양측 Sol 을 사용한 복동 실린더 연속 왕복작동 4. 입출력 테이블 208

실습 #7 양측 Sol 을 사용한 복동 실린더 연속 왕복작동 5. Ladder Diagram 6. 동작 확인 209

실습 #8 편측 Sol 을 사용한 복동 실린더 연속 왕복작동 실습 #8 편측 Sol 을 사용한 복동 실린더 연속 왕복작동 1. 실습 목표 : 리밋 S/W 와 편측 Sol 을 사용해서 복동 실린더를 연속 왕복작동 시키는 회로도를 구성하고 동작을 확인한다. 2. 동작 개요 : PB1 을 ON 시키면 R1 이 ON 되고, SOL1 이 ON 되 실린더가 목표지점까지 전진한다. 실린더가 목표지점까지 전진하면 LS2 리밋 S/W 를 건드려 R3 를 ON 시킨 다. R3가 ON 되면 R2 의 자기유지를 끊어 SOL1 을 OFF 시킨다. 실린더가 복귀하여 LS1 리밋 S/W 을 건드리면 R3 의 자기 유지를 끊는다 R3가 OFF 되면 R1 의 자기유지로 다시 R2 가 작동되고 연속으로 왕복 작 동된다. PB2가 ON 되면 R1 의 자기유지가 끊어져 회로가 멈춘다. 3.1 편측 전자밸브를 사용한 연속왕복작동회로 누름버튼 스위치 PB1 을 누르면 R1 이 여자 2 행의 R1 접점에 의해 자기유지 됨 3 행의 R1 접점이 ON 되어 R2 가 여자되고 자기유지 됨 7 행의 sol1 이 ON 되어 실 린더전진 전진 끝단에서 LS2 에 접촉되면 5 행의 R3 가 여자되고 자기유지 됨 3 행의 R3 접점은 OFF 되어 R2 의 자기유지 해제 7 행의 R2 접점도 떨어져 실린더는 후진 실린더가 후진 끝까지 도달되어 LS1 리밋스위치를 ON 시킴 R3 의 자기유지가 해제 되고 그로 인해 3 행의 R3 접점은 다시 b 접점으로 원위치 됨 R2 의 코일이 자기 유지되고 7 행의 R2 접점도 ON 되어 실린더는 다시 전진 실린더는 계속적으로 전 진과 후진을 반복하며, 이것을 정지시키려면 1 행의 정지버튼 PB2 를 눌러 R1 의 자기 유지를 해제시켜야 한다. 210

실습 #8 편측 Sol 을 사용한 복동 실린더 연속 왕복작동 3. PH-LAB 을 사용한 회로도 표현 4. 입출력 테이블 211

실습 #8 편측 Sol 을 사용한 복동 실린더 연속 왕복작동 5. Ladder Diagram 6. 동작 확인 212

실습 #9 최대신호차단법 실습 #9 최대신호차단법 (A+B+B-A-C+C-) 1. 실습 목표 : 최대신호차단법으로 리밋 S/W 와 양측 Sol 을 사용해서 복동 실린더 3개 를 (A+B+B-A-C+C-) 시키는 회로도를 구성하고 동작을 확인한다. 2. 동작 개요 : RESET 을 누르면 R6 가 작동하면서 자기유지가 시작된다. PB1을 누르면 SOL1 이 작동해 A실린더가 전진한다. 전진한 A실린더가 LS2 리밋 S/W 를 건드리면 R2 가 작동해 SOL3 가 작 동한다. SOL3가 작동하면 B실린더가 전진한다. 전진한 B실린더가 LS4 리밋 S/W 를 건드리면 R3 가 작동해 SOL4 가 작 동한다. SOL4가 작동하면 B실린더가 복귀한다. 복귀한 B실린더가 LS3 리밋 S/W 를 건드리면 R4 가 작동해 SOL2 가 작 동한다. SOL2가 작동하면 A실린더가 복귀한다. 복귀한 A실린더가 LS1 리밋 S/W 를 건드리면 R5 가 작동해 SOL5 가 작 동한다. SOL5가 작동하면 C실린더가 전진한다. 전진한 C실린더가 LS6 리밋 S/W 를 건드리면 R6 가 작동해 SOL6 가 작 동한다. SOL6가 작동하면 C실린더가 복귀한다. 3. PH-LAB 을 사용한 회로도 표현 213

실습 #9 최대신호차단법 4. 입출력테이블 214

실습 #9 최대신호차단법 5. Ladder Diagram 215

실습 #10 최대신호차단법 실습 #10 최대신호차단법 (A+,B+,B-,C-,B+,B-,(A-C+)) 실습순서 1) 주어진 문제를 해석하여, 실린더의 전후 동작을 표시한다. (EX. A+,B+,B-,A-,C+,C-) 2) 공압회로를 그리고, 실린더와 리밋스위치등을 배치하고 PLC 에 배선한다. 3) 체크백 신호표를 작성한다. 4) 공식에 따라 코일 조건식을 쓴다. 5) 주소할당표를 작성한다. 6) 작성한 코일 조건식을 보면서 GMWIN 으로 시퀀스 프로그램을 작성한다. 샌드블러스터 장비 전체 구성도 가. 실린더 A: 작업물을 좌우로 이동시키는 실린더 실린더가 A 가 전진하면 작업면-1 의 위치로 이동함 나. 실린더 B: 샌드 블러스터 노즐을 열고 닫는 실린더 실린더 B 가 전진하면 샌드블라스터를 분사함 다. 실린더 C: 실린더 B 와 샌드 블라스터 노즐을 좌우로 이동시키는 실린더 216

실습 #10 최대신호차단법 실린더 C를 후진하면 작업면-2의 위치로 이동한다 실린더는 모두 복동 실린더를 사용하며 공압을 사용함. 솔레노이드 밸브는 5/2WAY 양측 솔레노이드 밸브를 모두 사용한다. 샌드블라스터 : 모래압으로 작업을 하는 공법 - 초기에 리셋버튼을 ON-OFF 하여, 눌러 공정을 초기화 시킨다. - 모든 실린더가 공압회로도와 같이 초기화 되어 있는 상태에서 작업시작버튼 PB1 을 1 회 ON-OFF 하면 아래와 같은 순서로 1 회만 작업한다. - 실린더 A 가 전진하여 작업면-1 이 노즐 아래로 온다. - 실린더 B 가 전진하여 노즐을 열고, 샌드블라스팅 작업을 한다. - 실린더 B 가 후진하여 샌드 블라스팅 노즐을 닫는다. - 실린더 C 가 후진하여 노즐이 작업면-2 에 오도록 한다. - 다시 실린더 B 가 전진하여 노즐을 열고, 샌드블라스팅 작업을 한다. - B가 후진하여 노즐을 닫는다. - 실린더 A 를 후진하고 실린더 C 가 전진하여 작업물을 초기위치로 이동한다. 1) 주어진 문제를 해석하여, 실린더의 전후 동작을 표시한다. = (A+,B+,B-,C-,B+,B-,(A-C+)) 2) 공압회로를 그리고, 실린더와 리밋스위치등을 배치하고 PLC 에 배선한다. 가. 공압은 5BAR 에 맞추도록 한다. 217

실습 #10 최대신호차단법 나. 공압호스의 연결시 공압의 손실이 없도록 확실하게 연결한다. 다. 공압호스 해제시 메인밸브를 차단하여 공압을 제거한 상태에서 공압호스를 제거하도록 한다. 라. 장비세트간 부품이 이동이 없도록 하며, 이상발생시 지도교사에게 보고한다. 3) 체크백 신호표를 작성한다. 실린더 작동순서 A+ B+ B- C- B+ B- (A-,C+) 체크백 신호표 LS2 LS4 LS3 LS5 LS4 LS3 LS1,LS6 작동 릴레이 R1 R2 R3 R4 R5 R6 R7 작동 솔레노이드 SOL1 SOL3 SOL4 SOL6 SOL4 SOL3 SOL(1,5) 4) 공식에 따라 코일 조건식을 쓴다. R1=(ST LS1 LS6 R7+R1) (R2)b R2=(LS2 R1+R2) (R3)b R3=(LS4 R2+R3) (R4)b R4=(LS3 R3+R4) (R5)b R5=(LS5 R4+R5) (R6)b 218

실습 #10 최대신호차단법 R6=(LS4 R5+R6) (R7)b R7=(LS3 R6+R7+Reset) (R1)b C 실린더는 처음에 전진 하여 있어야 하지만, 공압회로에서 위치를 바꾸었기 때문에 프로그램 상으로 출력 신호를 바꿔줄 필요가 없다. 5) 주소할당표를 작성한다. 219

실습 #10 최대신호차단법 6) 작성한 코일 조건식을 보면서 GMWIN 으로 시퀀스 프로그램을 작성한다. 220

실습 #11 양/음변환 검출접점을 사용한 회로 구성 실습 #11 양/음변환 검출접점을 사용한 회로 구성 1. 실습 목표 : 양/음변환 검출접점의 기능을 알고 응용회로를 구성하여 동작을 확인한다. 2. 동작 개요 1) 양변환 검출접점을 이용한 동작 : 양변환 검출접점 PBS1 을 ON 하면 R1 이 1스캔 동안 ON 된다. 1스캔 ON 된 R1 의 신호를 받아 SOL1 이 여자되어 자기유지된다. SOL1이 자기유지되어 있음은 PBS1 이 1스캔 동안 ON 되었음을 확인할 수 있다. 정지 스위치 PBS2 를 ON 하면 SOL1 이 소자된다. 2) 음변환 검출접점을 이용한 동작 : 음변환 검출접점 PBS3 을 ON 하면 R2 가 1스캔 동안 ON 된다. 1스캔 ON 된 R2 의 신호를 받아 SOL1 이 여자되어 자기유지된다. SOL1이 자기유지되어 있음은 PBS3 가 1스캔 동안 ON 되었음을 확인할 수 있다. 정지 스위치 PBS4 를 ON 하면 SOL1 이 소자된다. 3. 타임 차트 4. 입출력 테이블 221

실습 #11 양/음변환 검출접점을 사용한 회로 구성 5. Ladder Diagram 222

실습 #12 양/음변환 검출코일을 이용한 회로구성 실습 #12 양/음변환 검출코일을 이용한 회로구성 1. 실습 목표 : 양/음변환 검출코일의 기능을 알고 응용회로를 구성하여 동작을 확인한다. 2. 동작 개요 1) 양변환 검출코일을 이용한 동작 : 양변환 검출코일의 동작조건 PBS1 을 ON 하면 R1 이 1스캔 동안 ON 된다. PBS1의 홀수번째 ON 된 R1 의 신호를 받아 SOL1 이 여자되어 자기유지된다. PBS1의 짝수번째 ON 된 R1 의 신호를 받아 자기유지는 해제되고 SOL1 은 소자 된다. PBS1의 ON/OFF/차수에 따라 이상의 동작을 반복한다. 2) 음변환 검출코일을 이용한 동작 : 음변환 검출코일 동작조건 PBS2 을 ON 하면 R2 가 1스캔 동안 ON 된다. PBS2 의 홀수번째 ON 된 R2 의 신호를 받아 SOL1 이 여자되어 자기유지된다. PBS2의 짝수번째 ON 된 R2 의 신호를 받아 자기유지는 해제되고 SOL1 은 소자 된다. PBS2의 ON/OFF/차수에 따라 이상의 동작을 반복한다. 3. 타임 차트 4. 입출력 테이블 223

실습 #12 양/음변환 검출코일을 이용한 회로구성 5. Ladder Diagram 224

실습 #13 Set 코일과 Reset 코일을 이용한 회로구성 실습 #13 Set 코일과 Reset 코일을 이용한 회로 구성 1. 실습 목표 : Set 코일과 Reset 코일을 이용하여 회로를 구성하고, 동작을 확인한다. 2. 응용 및 시나리오 : 주차장 입구에 자동차가 진입하면 센서가 이를 감지하여 차단 바가 후진한다. 차단 바가 충분히 후진하면 이를 검출하여 차단 바가 멈춘다. 자동차가 전진하여 차단 바를 통과한 후 자동차의 통과를 센서가 감지한다. 센서가 감지되면 차단 바는 전진하여 닫히고, 완전히 닫히면 이를 검출하여 차단 바 가 멈춘다. 3. 동작 개요 : 센서 1이 ON 되면 양변환 검출 코일인 내부릴레이 R1 이 1스캔 동안 ON 된다. 1스캔 동안 ON 된 R1 의 신호를 받아 차단 바 후진 Set 코일(SOL1)이 작동한다. SOL1 의 작동하면 실린더가 후진한다. 실린더가 완전히 후진하여 LS2 리밋 S/W 를 건드리면 차단 바 후진 Reset 코일이 작동하여 차단 바의 후진이 멈춘다. 센서 2가 ON 되면 양변환 검출 코일인 내부릴레이 R2 가 1스캔 동안 ON 된다. 1스캔 동안 ON 된 R2 의 신호를 받아 차단 바 전진 Set 코일(SOL2)이 작동한다. SOL2가 작동하면 실린더가 전진한다. 실린더가 완전히 전진하여 LS1 리밋 S/W 를 건드리면 차단 바 전진 Rest 코일이 작 동하여 차단 바의 전진이 멈춘다. 225

실습 #13 Set 코일과 Reset 코일을 이용한 회로구성 4. 입출력 테이블 5. Ladder Diagram 226

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

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

부 록 _ANNUN_WR BOOL 외부기기의 경고장 검출 예 약 변 수 데 이 터 타 입 내 용 _HSPMT1_ER BOOL 고속 링크 파라미터 1 이상 _HSPMT2_ER BOOL 고속 링크 파라미터 2 이상 _HSPMT3_ER BOOL 고속 링크 파라미터 3 이상 _HSPMT4_ER BOOL 고속 링크 파라미터 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 순시정전 이력 229

부 록 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 BOOL 통신 모듈의 시스템 에러(에러 = 1) _CnSVBSY BOOL 공용 RAM 자원 부족(부족=1) _CnIFERR BOOL 인터페이스 에러(에러 = 1) _CnINRING BOOL 통신 참여(IN_RING = 1) 230

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

부 록 2. 예약어 9.6 예약어는 시스템에서 사용하기 위해 미리 정의한 단어들입니다. 따라서 식별 자로 이 예약어를 사용할 수 없습니다. 예 약 어 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 232