제10강 펑션블록 프로그램(1) 1. 펑션과 펑션 블록 1) 펑션 2)펑션 블록 구분 펑션 펑션블록 입력의 수 1개 이상

Slides:



Advertisements
Similar presentations
가. 3 일 취업완성 ! 성취반 _ 성공 취업 반 1 일차 시간 프로그램 내용비고 17:00 ~ 17:10 출석 및 일정 안내 17:10 ~ 18:10 취업 전략 및 채용 프로세스 이해 18:10 ~ 19:30 입사지원서 작성법 및 주요 기업 에세이 작성법 19:30 ~
Advertisements

Copyright ⓒ Learning Storm All right reserved 러닝스톰 대표 김 정도 大 戰略.
[ MOV ] 16 bit data 전송 형식 : [ MOV[P] S D ] SOURCE( 소스 ) Destination( 목적지 ) [ MOV[P] K10 D0 ] 온라인 → 모니터 → 디바이스 일괄 → 디바이스에서 D0 입력 16 진수 2 진수 자리값.
과목명 ; 소방전기회로 강의 교재 ; 소방전기회로 저자 ; 최충석, 김진수 ( 출판사 : 동화기술)
출석수업 자료 교과서 범위: 제1장-4장.
여성의 광장 어린이 집 www. womankids. com
패널자료 분석
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
원격검침 / 고조파필터 모니터링 시스템 사용 설명서
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
성결 어린이 영등포교회 유년부 정답은 뒷면에 제 11-31호 2011월 8월 14일 어디로 가세요?
강의 기법과 상황대처 경기도 마약퇴치운동본부 김이항 약사 10.
11 레지스터 (Register) IT CookBook, 디지털 논리회로.
Ⅵ. 빛(단원학습목표).
누가 누가 인기 많나? 막무가내 설문조사.
Sequence Control -Introduction-
Chapter 7. Flip-Flops and Other Multivibrators
PTC 써 미 스 터 의 특 성 과 응 용 ㈜ 하 이 엘.
문화이벤트 특강 시민축제에 대하여 애니메이션 김철환.
사용자 메뉴얼 차량용 4CH 블랙박스 매뉴얼 버전 : Version 2.1 Hardware Version : 2.0
통로이미지㈜ 마케팅실 신입/경력 모집 ◎ 모집부분 및 자격요건 ◎ 채용인원 ◎ 전형절차 ◎ 제출서류 ◎ 연봉 ◎ 사전인터뷰
4 컴퓨터에서 활용되는 디지털 논리회로 IT CookBook, 컴퓨터 구조와 원리 2.0.
VHDL, FPGA를 이용한 소리인식 스위치 (Matched Filter 사용)
10장 주변장치 (PIO) Slide 1 (of 28).
Chapter 11. 레지스터.
< 생산자동화 기능사 실기수준 >
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
3장 MPU 내부구조 Slide 1 (of 28).
자동제어 실험(2) 라인트레이서 제어.
2-1. PLC I/O 할당 입.출력 기기와 외부기기와의 접속
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
시퀀스회로.
Lecture #8 어셈블리어 (5) 매크로 어셈블리어 시스템프로그래밍.
영덕풍력발전단지 준공 기념식 행사(안) 경영기획실.
Chapter 06 명령어와 번지지정 방식.
냉난방 시스템 설계 논리회로 설계 및 실험 텀 프로젝트 제안서 16조 김태광 정상훈.
PLC.
4장. 컴퓨터 구조에 대한 두 번째 이야기 작성자: 윤성우.
본교에 오심을 환영합니다 나주공산중학교 교 직 원 일 동.
작업장에서 불의의사고로 절단사고가 발생했다면
Stop Watch 예비제안서 10조 이인희 김민석 박재원
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
7장: 빛의 간섭과 회절 빛의 간섭 단일슬릿과 회절 회절격자 – 더 선명해진 간섭무늬.
알기쉬운 시설공사(2) 경상북도교육청 이형주.
6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치.
GMWIN 화면 구성.
PIC16C84의 외형 RA2 1 RA1 I/O PIN I/O PIN RA3 RA0 RTCC OSC1 발 진 RESET
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
D:\win_9X\setup.exe 또는 D:\win_XP\setup.exe 을 클릭하여 설치합니다.
3-16. 디지털 시계.
제안개요 1. 프로그램 개요 및 세부일정 교육명 : 경북대학교 삼성 계열사 입사 대비 취업캠프
야채 듬뿍 월남쌈 센텀초등학교 요리교실 강사 : 전지원.
이행점검/현장점검관리.
제 1회 예천자활복지센터 보호자 간담회 예천자활복지센터.
본선대회 일정안내.
문서의 제목 나눔고딕 45pt 작성자 | 소속팀 / 상위부서 | 이 문서는 나눔글꼴로 작성되었습니다. 설치하기.
체크포인트 가정 내 일어나는 사고에 대해 알아보고 사고예방을 위해 주의한다. | 예방법 장소별 사고 – 방과 거실 1 2 높은 곳 에 물건 두지 않기! 날카로운 모서리는 천으로 씌우기!
컴퓨터 계측 및 실습 로터리 엔코더 영남대학교 기계공학부.
어떤 금속이 열전도가 빠른지 찾기 평택여자중학교 김수민.
(생각열기) 횡파와 종파를 구분하는 기준은 무엇인가?? 답 : 진동하는 방법의 차이
기술가정 2학년 1학기 2.재료의 이용>1) 목재,플라스틱,금속재료의 특성>11/15제품의 구상
문서의 제목 문서의 개요 작성자 이름 소속팀 소속팀 작성년월일
(제작자: 임현수)모둠:임현수,유시연,유한민
차량차단기 설치 설명서
시민이 체감하는 편리한 건축인허가 절차 개선 추진.
제 10 장  코드 생성.
매스펀 문제 2.
4-1. 명령어 형식.
Presentation transcript:

제10강 펑션블록 프로그램(1) 1. 펑션과 펑션 블록 1) 펑션 2)펑션 블록 구분 펑션 펑션블록 입력의 수 1개 이상 ⊙ 1스캔에 입력을 받아 동일 스캔에 연산을 실행하여 그 결과를 만들어 내는 응용 명령어 ⊙ 1개 이상의 입력 ⊙ 펑션은 오직 하나의 결과만을 출력 2)펑션 블록 ⊙ 여러 스캔에 걸쳐 입력을 받고 연산을 해서 결과를 만들어 내는 응용 명령어 ⊙ 2개 이상의 입력 ⊙ 펑션 블록은 여러 개의 결과 출력 구분 펑션 펑션블록 입력의 수 1개 이상 2개 이상 출력의 수 1개 연산시간 1스캔 1스캔 이상 예 전송펑션, 형 변환 펑션 산술 연산 펑션, 비교펑션 타이머, 카운터 특수모듈 초기화 펑션블록

제10강 펑션블록 프로그램(1) 2. 타이머 1) TON(ON-Delay Timer) 설명 입력: IN:타이머의 기동 조건 PT:설정 시간 출력: Q:타이머 접점 출력 CV:경과 시간 펑션 TON IN PT ET Q BOOL TIME ⊙ 기능 ▶ IN이 ON된 후 경과 시간이 ET로 출력 ▶ 설정 시간 PT와 경과 시간 ET가 같아지는 순간 타이머 출력 접점 Q는 ON ▶ Q가 ON되면 경과 시간은 정지 ▶ 경과 시간 ET가 설정 시간에 도달하기 전에 IN이 OFF되면, 경과 시간은 0 ▶ Q가 ON된 후 IN이 0FF되면, Q는 OFF

제10강 펑션블록 프로그램(1) ⊙ 타임 차트 ☞ 타이머의 설정 시간은 TIME 형으로 설정하며, 날짜는 D, 시간은 H, 분은 M, 초는 S, 1/1000초는 MS단위를 사용합니다. 예) 1일 2시간 3분 4초 567MS => T#1D2H3M4S567MS 설정가능 최대 시간 : T# 49D 17H 2M 47S 295MS

제10강 펑션블록 프로그램(1) 2) TON_UINT*(정수 설정 ON-Delay Timer) 설명 펑션 입력 IN : 타이머 기동 조건 PT : 설정 시간(Preset Time) UNIT : 설정 시간의 시간 단위(Unit)  출력 Q : 타이머 접점 출력 ET : 경과 시간(Elapsed Time) 펑션 TIME TON_UINT Q IN PT UNIT ET BOOL UINT ⊙ 기능 ▶ IN이 ON 된 후 경과 시간이 ET로 출력 ▶ 설정시간은 PT×UNIT[ms]입니다. ▶ 설정 시간 과 경과 시간 ET가 같아지는 순간 타이머 출력 접점 Q는 ON ▶ 경과 시간 ET가 설정 시간에 도달하기 전에 IN이 OFF 되면, 경과 시간 ET는 0 ▶ Q가 ON 된 후 IN이 OFF 되면, Q는 OFF ▶ Q가 ON 되면 경과 시간 정지 ☞ * 표시 된 펑션 블록은 APP.xFB 라이브러리를 삽입해야 사용가능 합니다.

제10강 펑션블록 프로그램(1) ⊙ 타임 차트 IN ET PT×UNIT 설정시간 (PT ×UNIT) Q

제10강 펑션블록 프로그램(1) ⊙ 프로그램 예제 - TON_UINT를 이용한 플리커 회로 ▶ 아래의 그림과 같이 새 프로젝트를 정의합니다.

제10강 펑션블록 프로그램(1) ▶ 다음과 같이 프로그램을 정의합니다.

제10강 펑션블록 프로그램(1) ⊙ TON_UINT를 사용하기 위해 ‘APP.4FB를 프로젝트에 삽입합니다. ▶ 프로젝트 메뉴의 ‘라이브러리 삽입’ 항목을 클릭합니다. ▶ ‘라이브러리 삽입’ 창이 화면에 나타나면 ‘추가’ 단추를 클릭합니다.

제10강 펑션블록 프로그램(1) ▶ ‘라이브러리 선택’ 창이 화면에 나타나면 ‘APP.4FB’를 선택하고 ‘열기’ 단추를 클릭합니다. ▶ ‘라이브러리 선택’ 창에서 라이브러리가 삽입되었음을 확인하고 ‘확인’ 단추를 클릭합니다.

제10강 펑션블록 프로그램(1) ▶ ‘프로젝트 창’에 ‘APP.4FB’ 라이브러리가 삽입되었습니다.

제10강 펑션블록 프로그램(1) 클릭 ⊙ 프로그램 작성 ⊙ 프로그램 작성 ▶ 도구 상자에서 {FB}를 클릭하여 프로그램 창에 다시 한 번 클릭합니다. 클릭

제10강 펑션블록 프로그램(1) ▶ ’펑션블록 목록’ 창이 나타나면 TON_UINT를 선택한 후 ‘확인’을 클릭합니다.

제10강 펑션블록 프로그램(1) ▶ 펑션블록을 사용할 경우 펑션블록에 대한 변수(FB INSTANCE)를 설정합니다.

제10강 펑션블록 프로그램(1) 더블 클릭 ▶ 접점을 이용하여 회로를 완성합니다. ▶ 펑션블록에 변수를 입력하기 위해 입력 또는 출력 단자 앞을 더블 클릭합니다. 더블 클릭

제10강 펑션블록 프로그램(1) ▶ 변수이름 및 메모리 할당

제10강 펑션블록 프로그램(1) ⊙ 프로그램 및 지역 변수

제10강 펑션블록 프로그램(1) 3) TOF(OFF-Delay Timer) 설명 입력: IN:타이머의 기동 조건 PT:설정 시간 출력: Q:타이머 접점 출력 CV:경과 시간 펑션 TOF IN PT ET Q BOOL TIME ⊙ 기능 ▶ IN이 ON 되면, Q가 ON ▶ IN이 OFF된 후 경과 시간이 ET로 출력 ▶ IN이 OFF 된 후부터 PT에 설정된 설정 시간이 경과한 후 Q가 OFF ▶ 경과 시간 ET가 설정 시간에 도달하기 전에 IN이 ON 되면 경과 시간은 0

제10강 펑션블록 프로그램(1) ⊙ 타임 차트 ET 설정시간 Q IN

제10강 펑션블록 프로그램(1) 4) TOF_UINT* (정수설정 OFF-Delay Timer) 설명 입력 PT : 설정 시간(Preset Time) UNIT : 설정 시간의 시간 단위(Unit) RST : 리셋 입력 출력 Q : 타이머 접점 출력 ET : 경과 시간(Elapsed Time) 펑션 UDINT TOF_UINT Q IN PT UNIT ET BOOL UINT RST ⊙ 기능 ▶ 기동 조건 IN이 ON되는 순간 Q는 ON ▶ IN이 OFF된 후 경과 시간이 ET로 출력 ▶ IN이 OFF 된 후부터 설정 시간이 경과한 후 Q가 OFF ▶ 경과 시간 ET가 설정 시간에 도달하기 전에 IN이 ON되면 경과 시간은 0 ▶ RST 입력 조건이 ON되면 타이머 출력 Q는 OFF되고 경과 시간은 0 ▶ 설정시간 PT×UNIT[ms]

제10강 펑션블록 프로그램(1) ⊙ 타임 차트 IN RST ET PT ×UNIT 설정시간 (PT×UNIT) Q

제10강 펑션블록 프로그램(1) 즉시 3초간 물이 공급되는 회로 ⊙ TON, TOF를 이용한 프로그램 - 화장실 자동 밸브 제어 ▶ 사용자가 변기에 접근한 후 1초 뒤 2초간 물이 나오고 이탈 후 즉시 3초간 물이 공급되는 회로

제11강 펑션블록 프로그램(2) 5) TP(Pulse Timer) 설명 입력: IN:타이머의 기동 조건 PT:설정 시간 출력: Q:타이머 접점 출력 ET:경과 시간 펑션 TP IN PT ET Q BOOL TIME ⊙ 기능 ▶ IN이 ON 되면 PT에 설정된 설정 시간 동안 Q가 ON ▶ 경과 시간 ET가 설정 시간 PT에 도달하면 Q는 OFF ▶ 경과 시간 ET는 IN이 ON 되었을 때부터 증가 ▶ 경과 시간 ET는 PT에 이르면 값을 유지, IN이 OFF 될 때 0 ▶ ET가 증가하는 동안 IN이 OFF 되거나 ON 되어도 영향 없음 ▶ ET가 PT에 도달한 후 IN이 다시 ON되면 ET가 증가

제11강 펑션블록 프로그램(2) ⊙ 타임 차트

제11강 펑션블록 프로그램(2) 6) TP_RST*(출력 OFF 가능 Pulse Timer) 설명 입력 IN : 타이머 기동 조건 PT : 설정 시간(Preset Time) RST : 리셋 입력(Reset)   출력 Q : 타이머 출력 ET : 경과 시간(Elapsed Time) 펑션 TIME TP_RST Q IN PT RST ET BOOL ⊙ 기능 ▶ 블록은 IN이 ON되는 순간 Q는 ON ▶ 경과 시간이 설정 시간에 도달하면 타이머 출력 Q는 OFF ▶ 경과 시간 ET는 IN이 ON 되었을 때부터 증가 ▶ 경과 시간이 PT에 이르면 값을 유지 ▶ 경과 시간은 IN이 OFF 될 때 0으로 클리어(clear) ▶ 타이머 출력 Q가 ON 동안(펄스 출력 중)에는 타이머 기동조건 IN이 변화해도 무시 ▶ RST 입력 조건이 성립하면 펄스 출력 중 타이머 출력 Q는 OFF 되고 경과 시간도 0

제11강 펑션블록 프로그램(2) ⊙ 타임 차트 IN RST ET PT 설정시간 (PT) Q

제11강 펑션블록 프로그램(2) 신호의 안정화 T ⊙ TP를 이용한 떨림 방지 회로 ▶ 속도가 일정치 않은 물체의 통과신호(리미트 스위치)의 떨림을 방지하여, 안정된 신호를 얻습니다. T 신호의 안정화

제11강 펑션블록 프로그램(2) ⊙ 프로그램 및 지역 변수

제11강 펑션블록 프로그램(2) 6) TMR*(적산 Timer) 설명 입력 IN : 타이머 기동 조건 PT : 설정 시간(Preset Time) RST : 리셋 입력(Reset)  출력 Q : 타이머 접점 출력 ET : 경과 시간(Elapsed Time) 펑션 TIME TMR Q IN PT RST ET BOOL ⊙ 기능 ▶ IN이 ON 된 후 경과 시간이 ET로 출력 ▶ 경과 시간 ET가 설정 시간에 도달하기 전에 IN이 OFF 되어도 현재의 경과 시간을 유지 ▶ IN이 다시 ON 되면 경과 시간을 증가 ▶ 경과 시간이 설정 시간이 도달하면 Q가 ON ▶ RST 입력 조건이 성립되면 Q는 OFF 되고 경과 시간은 0

제11강 펑션블록 프로그램(2) ⊙ 타임 차트 IN RST ET PT Q

제11강 펑션블록 프로그램(2) 7) TMR_FLK*(Flicker Timer) 설명 입력 IN : 타이머 기동 조건 ON : ON 타이머 설정 시간 OFF : OFF 타이머 설정 시간 RST : 리셋 입력 출력 Q : 타이머 출력 ET : 경과 시간(Elapsed Time) 펑션 TIME TMR_FLK Q IN ON OFF ET BOOL RST ⊙ 기능 ▶ IN이 1이 되는 순간 Q는 1이 되고, ON에서 지정된 시간 만큼 Q는 1 유지 ▶ ON에 지정된 시간이 경과하면 OFF에 지정된 시간 만큼 Q는 0 유지 ▶ IN이 0이 되면 ON 또는 OFF 동작을 수행을 중지 ▶ IN이 0인 동안 중지된 시간을 유지하다가 IN이 다시 1이 되면 정지된 시간부터 타이머 동작 ▶ IN이 0인 동안 출력 Q는 0 ▶ ON이 0이면 출력 Q는 항상 0 ▶ RST 조건이 ON되면 경과 시간은 0으로 되며, 출력 Q는 0 ▶ RST 조건이 해제되면 경과 시간은 상승하고, 출력 Q는 최초 기동과 동일

제11강 펑션블록 프로그램(2) ⊙ 타임 차트 IN ON OFF Q OFF Time ON Time Time

제11강 펑션블록 프로그램(2) 8) TRTG*(Retriggerable Timer) 설명 입력 IN : 타이머 기동 조건 PT : 설정 시간(Preset Time) RST : 리셋 입력(Reset)  출력 Q : 타이머 출력 ET : 경과 시간(Elapsed Time) 펑션 TIME BOOL TRTG Q IN PT RST ET ⊙ 기능 ▶ IN이 ON 되는 순간 Q는 ON ▶ 경과 시간이 설정 시간에 도달하면 타이머 출력 Q는 OFF ▶ 출력 Q가 OFF 되기 전에 IN이 또 다시 OFF  ON 되면 경과 시간은 0으로 재설정 되어 다시 증가하여 설정 시간 PT에 도달하면 Q는 0 ▶ RST 입력 조건이 성립하면 타이머 접점 출력 Q는 OFF 되고 경과 시간은 0

제11강 펑션블록 프로그램(2) ⊙ 타이밍 차트 IN RST ET PT 설정시간 (PT) Q

제11강 펑션블록 프로그램(2) 적색(%QX0.1.2) 황색(%QX0.1.1) 청색(%QX0.1.0) 적색(%QX0.1.4) ⊙ 신호등 제어 프로그램 ▶ 보행자가 보행버튼을 누르면 30초 후 차선의 신호등은 황색램프가 1초간 점등 ▶ 황색 램프 1초간 점등 후 적색 20초간 점등 ▶ 보행자 신호등은 청색 램프가10초간 점등 된 뒤 10초간 점멸 ▶ 10초간 점멸 후 적색 점등 적색(%QX0.1.4) 버튼 (%IX0.0.0) 적색(%QX0.1.2) 황색(%QX0.1.1) 청색(%QX0.1.0) 청색(%QX0.1.3)

제11강 펑션블록 프로그램(2) ⊙ 타임 차트 및 지역 변수 버튼 청색 황색 적색 차선 횡단 보도

제11강 펑션블록 프로그램(2) ⊙ 신호등 제어 프로그램

제12강 펑션블록 프로그램(3) 1. 카운터 1) CTU (UP – Counter) 펑션 설명 입력: CU:펄스 신호 입력 PV:설정값 출력: Q:카운터 접점 신호 출력 CV:카운터 현재값 출력 CTU R CU PV CV Q BOOL INT ⊙ 기능 ▶ 펄스입력 CU가 OFF  ON으로 변하면 현재값 CV가 이전값 보다 1만큼 증가 단, CV는 정수(INT)의 최대값 32767을 넘지 않습니다. ▶ 리셋 입력 R이 ON 되면 현재값 CV는 0으로 Clear ▶ 현재값이 설정값과 같아지게 되면 카운터 출력 접점(Q)가 ON ▶ 현재값이 설정값보다 큰 동안 ON상태 유지

제12강 펑션블록 프로그램(3) ⊙ 타임 차트 Q CU CV R 설정값

제12강 펑션블록 프로그램(3) 2) CTD (DOWN – Counter) 펑션 설명 입력: CD:펄스 신호 입력 LD:설정값 입력 PV:설정값 출력: Q:카운터 접점 신호 출력 CV:카운터 현재값 출력 CTD LD CD PV CV Q BOOL INT ⊙ 기능 ▶ LD단자를 ON시키면 설정값이 현재 값으로 로드 ▶ 펄스입력 CU가 OFF  ON으로 변하면 현재값 CV가 이전값 보다 1만큼 감소 단, CV는 정수(INT)의 최대값 32767을 넘지 않습니다. ▶ 현재값이 0이되면 카운터 출력 접점 Q가 ON ▶ 현재값이 0보다 작으면 ON상태 유지

제12강 펑션블록 프로그램(3) ⊙ 타임 차트 Q CD CV LD

제12강 펑션블록 프로그램(3) 3) CTUD (UP-DOWN Counter) 펑션 설명 입력: CU:업 카운터 펄스 입력 CD:다운 카운터 펄스 입력 R :리셋 신호 입력 LD:설정값 입력 PV:설정값 출력: QU:업 카운터 접점 출력 QD:다운 카운터 접점 출력 CV:카운터 현재값 출력 CTUD CD CU R QD QU BOOL INT LD PV ⊙ 기능 ▶ CU가 OFF0N 되면 현재값 CV가 이전값 보다 1만큼 증가 ▶ CD가 OFF0N되면 현재값 CV가 이전값 보다 1만큼 감소 단, 현재값 CV는 정수 범위 ( -32768 ~ 32767) 사이의 값 ▶ LD가 ON 되면 현재값 CV에 설정값 PV값이 로드 ( CV=PV) ▶ R이 ON 되면 현재값 CV는 0으로 Clear ▶ 업-출력 QU는 CV가 PV 이상 이면 ON ▶ 다운-QD는 CV가 0이하 일 때 ON ▶ 입력 우선 순위 R > LD > CU > CD

제12강 펑션블록 프로그램(3) ⊙ 타임 차트 설정값 QU CD CV LD CU R QD

제12강 펑션블록 프로그램(3) 4) CTR* (Rinr – Counter) CTR Q CD PV RST CV BOOL INT 설명 입력 CD : 링 카운트펄스 입력 PV : 설정값(Preset Value) RST : 리셋 입력(Reset) 출력 Q : 카운터 접점 출력 CV : 현재값(Current Value) 펑션 ⊙ 기능 ▶ CD가 OFF  ON으로 변할 때 현재값 CV를 1씩 증가 ▶ 현재값 CV가 설정값 PV에 도달한 후 CD가 다시 OFF  ON 되면 현재값은 1 ▶ 현재값이 설정값과 같아지면 타이머 접점 출력 Q는 ON ▶ 현재값이 설정값 미만이거나 RST 조건이 ON되면 타이머 접점 출력 Q는 OFF

제12강 펑션블록 프로그램(3) ⊙ 타임 차트 CD Q R PV CV

제12강 펑션블록 프로그램(3) 1 2 3 . 프 로 그 램 PB1 입력 모듈 (Slot:0) 출력 모듈 (Slot:1) ⊙ 프로그램 - 카운터를 이용한 모터 동작 수 증감 제어 ▶ 4대의 모터를 제어 ▶ 순간접촉 푸쉬 버튼 PB1을 누를 때마다 동작하는 모터 수 1개씩 증가 ▶ 순간 접촉 푸쉬 버튼 PB2를 누를 때마다 모터 동작 수 1개씩 감소 ▶ 4개의 모터가 동작하고 있을 때 PB1을 누르면 모든 모터는 정지 1 2 3 . 프 로 그 램 PB1 입력 모듈 (Slot:0) 출력 모듈 (Slot:1) 모터1 PB2 M 모터2 모터3 모터4 COM

제12강 펑션블록 프로그램(3) ⊙ 프로그램 및 지역 변수

제13강 펑션 프로그램(1) 1. 기본 평션의 종류 1) 전송 펑션 : MOVE, ARY_MOVE 2) 비교 펑션 : GT(>), GE(≥), EQ(=), LE(≤), LT(<) NE(≠) 3) 산술 연산 펑션 : ADD(+), SUB(-), MUL(×), DIV(÷), MOD(나머지 구하기) 4) 논리 연산 : AND(논리곱), OR(논리합), XOR(배타적 논리합), NOT(반전) 5) Bit Shift 연산 : SHL(왼쪽으로 비트 이동), SHR(오른쪽으로 비트 이동) ROL(왼쪽으로 회전), ROR(왼쪽으로 회전) 6) 형(Type) 변환 펑션 : BCD_TO_***, INT_TO_***, SINT_TO_***, DINT_TO_*** UINT_TO_***, USINT_TO_***, UDINT_TO_***, WORD_TO_*** DWORD_TO_***, BOOL_TO_***, BYTE_TO_***,TIME_TO_*** DATE_TO_***, DT_TO_***, TOD_TO_***, STRING_TO_*** NUM_TO_***, LWORD_TO_***, LINT_TO_***, ULINT_TO_*** REAL_TO_***, LREAL_TO_*** ☞ 형 변환 펑션 중 입력 타입이 L***_TO_ ***/ UL***_TO_ ***/ REAL_TO_ ***인 것과 출력 타입이 ***_TO_ L***/***_TO_ UL***는 GMR/1/2기종에서만 사용 가능합니다.

제13강 펑션 프로그램(1) 2. 전송 펑션 1) MOVE 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1:전송할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT: 데이터가 저장될 영역 MOVE IN1 EN OUT ENO BOOL ANY ⊙ 기능 ▶ EN단자가 ON되면IN1의 값을 복사하여 OUT으로 전송 ▶ IN1과 OUT의 데이터 타입은 동일

제13강 펑션 프로그램(1) 2) ARY_MOVE 펑션 설명 입력 EN ; EN이 1일때 펑션 실행 MOVE_NUM ; 옮길 개수 IN1 ; SOURCE IN2 ; DESTINATION IN1_INDX ; SOURCE의 선두 배열 번호 IN2_INDX ; DESTINATION의 선두 배열 번호 출력 ENO, OUT ; 펑션이 성공적으로 수행되면 1 출력 ⊙ 기능 ▶ ARRAY 변수로 설정된 IN1변수의 IN1_INDX단자에 지정되는 원소부터 MOV_NUM단자에 지정되는 수 만큼을 ARRAY 변수로 설정된IN2변수의 IN2_INDX 단자에 지정되는 원소부터 저장

제13강 펑션 프로그램(1) 3. 비교 펑션 1) GT (<) 설명 입력: EN:EN이 1일 때 펑션 실행 IN1~IN8:비교할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:비교 결과가 저장될 영역 IN1IN2... INn을 만족하면 1 출력 펑션 BOOL GT IN1 EN IN2 IN8 OUT …… ENO ANY_NUM ⊙ 기능 ▶ 입력값의 비교 결과 IN1IN2IN3... INn 을 만족하면 OUT으로1 출력 ▶ IN1IN2IN3... INn 의 조건 중 하나라도 만족하지 않으면 OUT으로 0 출력 ▶ IN1 ~ INn 까지 데이터 형은 동일 ▶ n은 최대 8까지 가능

제13강 펑션 프로그램(1) 2) GE (≥) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1~IN8:비교할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:비교 결과가 저장될 영역 IN1IN2...INn을 만족하면 1출력 GE IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_NUM ⊙ 기능 ▶ 입력값의 비교 결과 IN1IN2IN3...INn 을 만족하면 OUT으로1 출력 ▶ IN1IN2IN3...INn 을 만족하지 못하는 경우에는 OUT으로 0 출력 ▶ IN1 ~ INn 까지 데이터 형은 동일 ▶ n은 8까지 가능

제13강 펑션 프로그램(1) 3) EQ (=) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1~IN8:비교할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:비교 결과가 저장될 영역 IN1=IN2...= INn을 만족하면 1출력 EQ IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_NUM ⊙ 기능 ▶ 입력값의 비교 결과 IN1=IN2=IN3...= INn 을 만족하면 OUT으로1 출력 ▶ 입력값의 비교 결과 IN1=IN2=IN3...= INn을 만족하지 못하는 경우에는 OUT으로 0 출력 ▶ IN1 ~ INn 까지 데이터 형은 동일 ▶ n은 최대 8까지 가능

제13강 펑션 프로그램(1) 4) LE (≤) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1~IN8:비교할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:비교 결과가 저장될 영역 IN1IN2... INn을 만족하면 1출력 LE IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_NUM ⊙ 기능 ▶ 입력값의 비교 결과 IN1IN2IN3... INn 을 만족하면 OUT으로1 출력 ▶ 입력값의 비교 결과가 IN1IN2IN3... INn을 만족하지 못하면 OUT으로0 출력 ▶ IN1 ~ INn 까지 데이터 형은 동일 ▶ n은 최대 8까지 가능

제13강 펑션 프로그램(1) 5) LT (<) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1~IN8:비교할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:비교 결과가 저장될 영역 IN1IN2... INn 을 만족하면 1출력 LT IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_NUM ⊙ 기능 ▶ 입력값의 비교 결과 IN1IN2IN3... INn 을 만족하면 OUT으로1 출력 ▶ 입력값의 비교 결과 IN1IN2IN3... INn 을 만족하지 않으면 OUT으로 0 출력 ▶ IN1 ~ INn 까지 데이터 형은 동일 ▶ n은 최대 8까지 가능

제13강 펑션 프로그램(1) 6) NE (≠) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1, IN2 :비교할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:비교 결과 저장 영역 IN1≠IN2이면 1출력 NE IN1 EN IN2 OUT ENO BOOL ANY_NUM ⊙ 기능 ▶ IN1과 IN2를 비교하여 값이 같지 않으면 OUT으로1 출력 ▶ IN1과 IN2를 비교하여 값이 같으면 OUT으로 0 출력 ▶ IN1 과 INn 까지 데이터 형은 동일

제13강 펑션 프로그램(1) ⊙ 비교 펑션 예제 – 창고의 현재 재고량 표시 ▶ 재고량을 BCD 표시기를 이용하여 표시 ⊙ 비교 펑션 예제 – 창고의 현재 재고량 표시 ▶ 재고량을 BCD 표시기를 이용하여 표시 ▶ 0 ≤ 재고량 < 10  램프 1 ▶ 10 ≤ 재고량 < 20  램프 2 ▶ 20 ≤ 재고량 < 30  램프 3 ▶ 재고량 ≥ 30  입고 컨베이어 정지 ▶ 재고량 ≤ 0  출고 컨베이어 정지

제13강 펑션 프로그램(1) ▶ 프로젝트 및 프로그램 정의

제13강 펑션 프로그램(1) ▶ 프로그램 작성 클릭 클릭

제13강 펑션 프로그램(1) ▶ 펑션 종류 선택 및 입력 개수 선택

제13강 펑션 프로그램(1) ▶ 입력 변수 설정 클릭

제13강 펑션 프로그램(1) ▶ 프로그램

제13강 펑션 프로그램(1) ▶ 프로그램(계속) ▶ 지역 변수

제14강 펑션 프로그램(2) 1. 수치 연산 펑션 1) ADD (덧셈) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1~IN8:덧셈할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:덧셈 결과가 저장될 영역 ADD IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_NUM ⊙ 기능 ▶ EN 이 ON되면 INn으로 입력되는 데이터를 덧셈하여 OUT으로 지정된 영역에 저장 ▶ 입력 및 출력의 데이터 형은 동일 ▶ n은 최대 8개까지 입력 가능

제14강 펑션 프로그램(2) 2) SUB (뺄셈) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1, IN2 :뺄셈할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:뺄셈 결과가 저장될 영역 SUB IN1 EN IN2 OUT ENO BOOL ANY_NUM ⊙ 기능 ▶ EN 이 ON되면 IN1로 입력되는 데이터에서 IN2로 입력되는 데이터를 뺄셈하여 OUT으로 지정된 영역에 저장 ▶ 입력 및 출력의 데이터 형은 동일

제14강 펑션 프로그램(2) 3) MUL (곱셈) 설명 펑션 입력: EN:EN이 1일 때 펑션 실행 IN1~IN8:곱셈할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:곱셈 결과가 저장될 영역 MUL IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_NUM ⊙ 기능 ▶ EN 이 ON되면 INn으로 입력되는 데이터를 곱셈하여 OUT으로 지정된 영역에 저장 ▶ n은 최대 8까지 가능 ▶ 입력 및 출력의 데이터 형은 동일

제14강 펑션 프로그램(2) 4) DIV (몫 구하기) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1, IN2 :나눗셈할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:나눗셈한 결과 중 몫이 저장될 영역 DIV IN1 EN IN2 OUT ENO BOOL ANY_NUM ⊙ 기능 ▶ EN 이 ON되면 IN1로 입력되는 데이터에서 IN2로 입력되는 데이터를 나눗셈하고, 그 결과 중 몫을 OUT으로 지정된 영역에 저장 ▶ 입력 및 출력의 데이터 형은 동일

제14강 펑션 프로그램(2) 5) MOD (나머지 구하기) 펑션 설명 입력: EN:EN이 1일 때 펑션 실행 IN1, IN2 :나눗셈할 데이터 출력: EN0:펑션이 수행되면 1출력 OUT:나눗셈한 결과 중 나머지가 저장될 영역 MOD IN1 EN IN2 OUT ENO BOOL ANY_NUM ⊙ 기능 ▶ EN 이 ON되면 IN1로 입력되는 데이터에서 IN2로 입력되는 데이터를 나눗셈하고, 그 결과 중 나머지를 OUT으로 지정된 영역에 저장 ▶ 입력 및 출력의 데이터 형은 동일

제14강 펑션 프로그램(2) ⊙ (%MW10+%MW11-%MW13)X10÷4 ▶ 몫:%MW17 ▶ 나머지:%MW18

제14강 펑션 프로그램(2) 2. 논리 연산 펑션 1) AND (논리곱) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN1~IN8 : AND 연산 될 값 출력 ENO : EN값이 그대로 출력 OUT : AND연산 결과값 AND IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_BIT ⊙ 기능 ▶ IN1을 IN2와 비트별로 AND 연산 해서 OUT으로 출력

제14강 펑션 프로그램(2) 2) OR (논리합) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN1~IN8 : OR 연산 될 값 출력 ENO : EN값이 그대로 출력 OUT : OR연산 결과값 OR IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_BIT ⊙ 기능 ▶ IN1을 IN2와 비트별로 XOR연산 해서 OUT으로 출력

제14강 펑션 프로그램(2) 3) XOR (배타적 논리합) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN1~IN8 : XOR 연산 될 값 출력 ENO : EN값이 그대로 출력 OUT : XOR연산 결과값 XOR IN1 EN IN2 IN8 OUT …… ENO BOOL ANY_BIT ⊙ 기능 ▶ IN1을 IN2와 비트별로 XOR해서 OUT으로 출력

제14강 펑션 프로그램(2) 4) NOT (반전) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN1 : NOT연산 될 값   출력 ENO : EN값이 그대로 출력 OUT : NOT 연산 결과값 NOT IN1 EN OUT ENO BOOL ANY_BIT ⊙ 기능 ▶ IN1을 비트별로 NOT 연산(반전)해서 OUT으로 출력

제14강 펑션 프로그램(2) 3. Bit Shift 연산 1) SHL (Shift-Left) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN : 이동될 비트 열 N : 이동할 비트 수 출력 ENO : EN값이 그대로 출력 OUT : 이동된 값 SHL IN EN N OUT ENO BOOL INT ANY_BIT ⊙ 기능 ▶ 입력 IN을 N 비트 수만큼 왼쪽(상위 방향)으로 이동합니다. ▶ 입력 IN의 맨 오른쪽에 있는 N개 비트는 0으로 채워집니다.

제14강 펑션 프로그램(2) 2) SHR (Shift-Right) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN : 이동될 비트 열 N : 이동할 비트 수 출력 ENO : EN값이 그대로 출력 OUT : 이동된 값 SHR IN EN N OUT ENO BOOL INT ANY_BIT ⊙ 기능 ▶ 입력 IN을 N 비트 수만큼 오른쪽(하위 방향)으로 이동합니다. ▶ 입력 IN의 맨 오른쪽에 있는 N개 비트는 0으로 채워집니다.

제14강 펑션 프로그램(2) 3) ROL(Rotation-Left) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN : 이동될 비트 열 N : 이동할 비트 수 출력 ENO : EN값이 그대로 출력 OUT : 이동된 값 ROL IN EN N OUT ENO BOOL INT ANY_BIT ⊙ 기능 ▶ 입력 IN을 N 비트 수만큼 왼쪽(상위 방향)으로 이동 ▶ 입력 IN의 상위N개 비트는 출력 OUT의 하위 N개 비트로 이동

제14강 펑션 프로그램(2) 4) ROR (Rotation-Right) 펑션 설명 입력 EN : 1일 때 펑션 실행 IN : 이동될 비트 열 N : 이동할 비트 수 출력 ENO : EN값이 그대로 출력 OUT : 이동된 값 ROR IN EN N OUT ENO BOOL INT ANY_BIT ⊙ 기능 ▶ 입력 IN을 N 비트 수만큼 오른쪽(하위 방향)으로 이동 ▶ 입력 IN의 하위N개 비트는 출력 OUT의 상위 N개 비트로 이동

제14강 펑션 프로그램(2) 다시 하위 방향으로 이동합니다. ⊙ 프로그램 ⊙ 프로그램 ▶ %QW0.1.0에 연결된 LED 램프가 상위 방향으로 이동하다가 %QX0.1.15램프가 켜지면 다시 하위 방향으로 이동합니다.

제15강 글로벌 변수 및 예약 변수 1. 글로벌 변수 1) 글로벌 변수 ⊙ 기종별 프로그램 가능 수 ▶ GMR/1/2/3/4 : 최대 180개(태스크 프로그램 + 스캔 프로그램) ▶ GM6/7 : 최대 100개(태스크 프로그램 + 스캔 프로그램) ⊙ 글로벌 변수 – 프로젝트 내의 여러 프로그램에서 공통적으로 쓸 수 있는 변수 ▶ 입력 변수와 출력 변수 및 내부 메모리를 사용하는 변수 중 ‘사용자 정의’로 메모리 할당된 변수는 별도의 선언 없이 주소 할당으로 여러 프로그램에서 사용 가능

제15강 글로벌 변수 및 예약 변수 1) 글로벌 변수의 등록 ☞ 카운터의 ‘현재값’ 변수를 글로벌 변수로 등록합니다. ⊙ 프로그램 작성 ☞ 카운터의 ‘현재값’ 변수를 글로벌 변수로 등록합니다.

제15강 글로벌 변수 및 예약 변수 ⊙ 변수 ‘현재값’의 변수 종류를 VAR_EXTERNAL로, 메모리 할당을 자동으로 설정

제15강 글로벌 변수 및 예약 변수 ⊙ 프로그램 추가 ▶ 프로젝트 창에서 마우스의 오른쪽 버튼을 클릭 ▶ 프로젝트 항목 추가 선택 ▶ 프로그램 선택

제15강 글로벌 변수 및 예약 변수 ⊙ 프로그램 정의 및 사용 언어 정의

제15강 글로벌 변수 및 예약 변수 ⊙ 새로 정의한 프로그램의 지역 변수에 글로벌 변수 등록

제15강 글로벌 변수 및 예약 변수 ⊙ 새로 작성한 프로그램에 글로벌 변수를 지역 변수로 등록

제15강 글로벌 변수 및 예약 변수 ⊙ 새로 작성한 프로그램에 등록된 변수를 프로그램에 사용

제15강 글로벌 변수 및 예약 변수 ⊙ 새로 작성한 프로그램

제15강 글로벌 변수 및 예약 변수 ⊙ 완성된 프로젝트

제15강 글로벌 변수 및 예약 변수 2. 예약 변수 1) 예약 변수 ▶ 사용자는 예약 변수 이름으로 변수 선언 불가능 ▶ 시스템에서 선언한 변수 ▶ 사용자는 예약 변수 이름으로 변수 선언 불가능 ▶ 별도의 변수 선언 없이 사용 2) 예약 변수의 종류 ⊙ 사용자 플래그 ⊙ 시스템 에러 플래그 ⊙ 시스템 에러 해제 플래그 ⊙ 시스템 경고 플래그 ⊙ 시스템 운전 상태 플래그 ⊙ 통신 모듈 플래그 ⊙ 고속링크 플래그 ⊙ 리모트 제어 플래그

제15강 글로벌 변수 및 예약 변수 3) 사용자 플래그(1) 예약 변수 데이터 타입 내용 _LER 연산 에러 래치 접점 _T100MS _ERR BOOL 연산 에러 접점 _T20MS 20ms 클럭 접점 _T200MS _T1S _T2S _T20S _T10S _T60S 60초 클럭 접점 20초 클럭 접점 10초 클럭 접점 2초 클럭 접점 1초 클럭 접점 200ms 클럭 접점 100ms 클럭 접점

제15강 글로벌 변수 및 예약 변수 4) 사용자 플래그(2) 예약 변수 데이터 타입 내용 _1OFF 1스캔 OFF _INIT_DONE _1ON BOOL 1스캔 ON _STOG 매 스캔 반전 _RTC_DATE _RTC_TOD _RTC_WEEK UINT TOD DATE RTC의 현재 요일 RTC의 현재 시간 RTC의 현재 날짜 초기화 태스크 프로그램 완료 _ON 항상 ON 접점 _0FF 항상 OFF 접점