[포스코x코딩온] 스마트 팩토리 과정 9주차 회고 | PLC실습

Dana·2023년 5월 17일
0

펑션 vs 펑션블록

펑션블록

  • 인스턴스 지정 : 펑션 블록에 이름을 지정해서 펑션 블록 내부의 데이터 이용

타이머

TON (On delay Timer)

  • 입력
    - IN : 타이머 기동 조건
    • PT : 설정 시간
  • 출력
    - Q : 타이머 접점 출력
    • ET : 경과 시간
  • IN이 1이 된 후, 경과 시간이 ET로 출력

TOF (OFF delay Timer)

  • IN이 0이 된 후, 경과 시간이 ET로 출력

TP(Pulse Timer)

  • TIME으로 설정한 시간만큼 IN의 값을 Q로 전달

타이머_UINT

  • 입력
    - IN : 타이머 기동 조건
    • PT : 설정 시간
    • UNIT : 단위
  • 출력
    - Q : 타이머 접점 출력
    • ET : 경과 시간
  • 단위와 숫자를 입력받고 두 수를 곱해서 타이머의 시간을 설정

플리커 회로 (깜빡이)

  • 다른 방법

실습1.

  • 스위치를 켜면 5초 후 램프가 켜지고 다시 스위치를 끄면 5초 후 램프가 꺼지는 래더

실습2.

  • 사용자가 변기에 접근 1초 후 2초간 물이 나오고
  • 이탈 후 즉시 3초간 물이 공급되는 회로
  • 다른 방법

카운터

CTU_*** (count up)

  • 입력
    - CU : 카운터 기동 조건
    • R : 리셋 조건
    • PV : 설정한 횟수 이상(이하)일때 Q에 1 전달
  • 출력
    - Q : 카운터 접점 출력
    • CV : 카운트 횟수

CTD_*** (count down)

  • 입력
    - CD : 카운터 기동 조건
    • LD : CV에 PV값 로드
    • PV : 시작 숫자
  • 출력
    - Q : CV가 0이하일 때 1
    • CV : 카운트 횟수

CTUD_*** (count up/down)

  • 입력
    - CU : UP카운터 기동 조건
    • CD : DOWN 카운터 기동 조건
    • R : up 리셋
    • LD : PV = CV로
    • PV : 기준 숫자
  • 출력
    - QU : up 카운트에 대해서 출력
    • QD : down 카운트 조건에 대한 출력
    • CV : up/down 되는 숫자 출력

사용자 정의 펑션/펑션 블록

사용자 정의 펑션

  • 기존의 펑션/펑션 블록 외에 사용자가 직접 만드는 펑션/펑션 블록
  • 사용자가 직접 펑션/펑션 블록을 디자인하여 동일한 로직을 재활용
  • 사용자 정의로 로직을 숨김으로써 노하우 보호
  • 프로그램 메모리를 효과적으로 사용

현재 날짜 검출

  • 트리거 조건 발생 시 현재 시간(년,월,일,시,분,초)를 워드타입으로 지정한 디바이스에 저장하는 펑션

사칙연산

  • 숫자 두 개를 입력 받아서 모든 사칙 연산을 한번에 수행하는 펑션 블록

실습1. 사용자 정의 펑션

  • PITA라는 이름의 사용자 정의 펑션
  • A,B 값을 넣으면 피타고라스 정리에 의한 result값 출력

실습2. 사용자 정의 펑션 블록

  • FL 신호 -> LA1 5초간 켜지고 5초 이후에 1초 주기로 깜빡거림
  • NFL 신호 -> LA1이 꺼지고 LA2가 켜진다
  • OFF 신호 -> 모든 출력(LA1, LA2) 꺼짐

0개의 댓글