본문 바로가기
대한상공회의소 스마트팩토리 교육/PLC 프로그래밍

[PLC 프로그래밍] 지멘스 PLC 구조화 프로그램

by 나는영하 2022. 1. 21.

※ 주의사항 

본 블로그는 수업 내용을 바탕으로 제가 이해한 부분을 정리한 블로그입니다.
본 내용을 참고로만 보시고, 틀린 부분이 있다면 지적 부탁드립니다!

감사합니다😁

 

안녕하세요!!

오늘은 아래와 같은 내용을 확인해보겠습니다.

 

구조화 프로그램(객체지향)


여태 제가 배웠던 그리고 작성했던 래더들은

절차지향적 방법으로써 쉽게 말해서 한쪽 방향으로 흐르는 물처럼 순차적으로 처리를 하였습니다.

하지만 지멘스 PLC만의 특징인 구조화 프로그램은 객체지향적 방법 입니다.

 

PLC 프로그래밍의 마지막 시간으로 지멘스 PLC의 구조화 프로그램 작성 방법에 대해 알아보겠습니다.

1. 구조화 프로그램(객체지향)

1-1. FB(Function Block) 만들기

 1) 좌측 메뉴창에서 "Add new block" 클릭 → Function Block 만들기

 

 2) 함수 블록내에 사용할 멤버변수 선언하기

 - Input, Output, Static 등 함수 블록내에서만 사용될 변수를 선언하여 줍니다.

 - 여기에 입력하는 변수들은 멤버변수로써 메인함수 내에서는 사용되지 않습니다!

 

 3) FB내 래더프로그램 만들기

 4) 메인함수(Main(OB1))에서 FB 호출해서 사용하기

 - FB내의 래더프로그램을 만들고 메인함수에서 좌측 메뉴창에 있는 FB를 드래그&드롭을 하면 호출됩니다.

 - 호출해서 Input과 Output에 적절한 어드레스를 입력하여줍니다.

 - 같은 FB라도 그림과 같이 여러번 중복해서 사용이 가능합니다. (단 DB명만 다르게)

 

1-2. FB안에 블록 타이머 사용하기

 1) FB내 래더프로그램 만들기

 

 2) FB내에 블록함수 선언시 주의사항!

 - 블록 타이머 등 블록 명령어를 사용할때 DB는 반드시 Single이 아닌 Multi로 해야 합니다!!

 

 3) Main 래더에서 호출해서 사용하기

 

1-3. 이중 FB를 활용한 빔프로젝트 제어 프로그램

 1) 동작조건 

동작조건(좌) / 참고용 그림(우)

 - 해당 프로그램에 사용되는 함수는 Main함수와 Main_FB, TIMER_FB, FLICKER_FB 총 4개 입니다.

 

 2) TIMER_FB

 

 3) FLICKER_FB

 - 지난시간에 배운 정주기 클럭 접점이 아닌 상시온타이머 2개를 결합해서 FLICKER회로를 만들었습니다.

 

 4) MAIN_FB

 - TIMER_FB와 FLICKER_FB를 결합하는 FB입니다.

 - TIMER_FB의 출력인 FLK_SIG_OUT이 FLICKER_FB의 입력 FLK_EN으로 신호가 이동함

 

 5) Main(OB1)

- Main 함수부에는 물리적으로 존재하는 입력(푸시버튼 등) 과 출력(램프 등)만 어드레스를 입력합니다.

 

1-4. 응용 예제_교통신호등 프로그램

 1) 동작조건

 2) 래더프로그램(FB)

- CTU 블록은 지난시간에 배운 업카운터 블록 입니다.

 

 3) 래더프로그램(Main)

 4) 응용_타이머 및 카운터 설정값 변수 지정

 - 타이머 및 카운터 설정값 대신 넣을 입력 변수를 추가로 선언합니다. 

 - SET_VAL1 ~ SET_VAL3 까지는 타이머 설정값이라 데이터 타입을 Time

 - SET_VAL4는 카운터 설정값이라 데이터 타입을 정수형 Int

 

 - FB내의 블록 설정값에 상수값 대신 입력 변수 설정

 - Main(OB1)에서 FB함수를 호출 후 타이머와 카운터의 설정값을 직접 입력하여 줍니다.

댓글