본문으로 바로가기

Sequential Function Chart

category Programming/PLC 2024. 5. 14. 21:39
반응형

Sequential Function Chart, 줄여서 SFC라고 불리는 이 프로그래밍 언어는 이름에서부터 알 수 있듯이 시퀀스 시스템을 단계마다 처리해야 하는 기능에 따라 차트 형태로 표현하는 언어입니다.

 

SFC 프로그램이 이러한 차트 형태를 보이는 것은 SFC 언어의 탄생 배경 때문인데요. 
점차 복잡해져 가는 시퀀스 제어 시스템을 보다 효과적으로 관리하고
시각적으로 명확하게 표현할 수 있는 방법을 고민하던 프랑스 연구자들에 의해
GRAFCET이라는 모델이 탄생하게 되었구요.
이 GRAFCET 모델이 IEC에서 표준으로 인정받으면서 지금의 SFC라는 이름을 가지게 되었습니다. 
다시 말해서, GRAFCET 모델이 가지고 특징들인 차트 형태로 프로그램을 작성한다는 점과
스텝이나 트랜지션이라 불리는 프로그래밍 오브젝트들을 그대로 이어받았다는 말이 됩니다.

SFC 언어의 탄생 배경은 그렇다 치더라도, 
SFC 프로그램을 표현하고 있는 위의 그림만 봐서는 무엇을 하기 위한 프로그램인지 파악하기가 어렵습니다. 
프로그램이라 하면 단 번에 떠오르는 그런 연산자들이 하나도 보이지 않기 때문인데요. 
그래서 SFC 언어를 처음 접해보는 분들이 대체로 난감하다는 반응을 보입니다. 

순수 SFC 프로그램은 위의 그림처럼 차트 형태를 보입니다. 
앞에서 SFC의 탄생 배경에 관한 내용을 말씀드렸던 것처럼,
SFC 언어의 전신인 GRAFCET 모델은
시퀀스 제어 시스템을 효과적으로 관리하고 시각적으로 명확하게 표현하기 위한 모델이었기 때문인데요. 
다시 말해서, 순수 SFC 프로그램에서는 제어 대상인 시스템을
처리해야 하는 작업에 따라 여러 단계로 나누고,
다음 단계로 넘어가기 위한 연관 관계 정도만을 표현합니다. 
각 단계에서 처리해야 하는 작업은 SFC 언어의 영역이 아니라는 말이지요. 
그래서, 단계를 의미하는 스텝 (Step), 스텝과 스텝을 이어주는 브랜치 (Branch),
다음 단계로 넘어가기 위한 조건을 뜻하는 트랜지션 (Transition)을 가지고
제어 시스템의 전체적인 윤곽만을 잡습니다.
그리고 여기에는 프로그램 과정에서 보이지 않았던 숨어 있는 오브젝트인 토큰 (Token)이 등장하구요. 
토큰을 언제 어느 스텝으로 전이 (Firing)시킬 것인지를 고려하면서 SFC 프로그램을 작성합니다.

그렇다면, SFC 언어로 작성된 프로그램에서는 더하기, 빼기와 같은 산술 연산이나,
래더 다이어그램으로 표현할 수 있는 릴레이 로직의 처리는 전혀 하지 않는 것이냐라고 물어보실 수 있는데요. 
순수 SFC 프로그램에서는 그러한 연산을 처리하지 않구요. 
스텝에서 호출 (또는 등록이라고 표현하기도 합니다.)하는 액션 오브젝트를 통해 단계별로 처리할 작업들을 구현합니다. 
그리고 여기에서는 우리가 흔히 알고 있는 래더 다이어그램이나 ST와 같은 언어가 사용되지요. 
따라서, 순수 SFC 프로그램에서는 제어 시스템을 단계별로 나누는 부분에 초점을 맞추고,
각 단계별로 처리할 작업들을 다른 프로그래밍 언어를 통해 개별적으로 작성한다라고 정리할 수 있습니다.

이번 글의 주제에 관한 더욱 자세한 내용은 전자책을 통해 확인하실 수 있습니다.
아래 Link를 클릭하면 전자책에 대한 소개글로 이동하오니,
전자책 구매에 관심 있으신 분들은 참고하시기 바랍니다.

[EBook] - EPUB3] ESME - 기본편

 

EPUB3] ESME - 기본편

슈나이더 일렉트릭에서 출시한 장비 제어용 컨트롤러인 M2XX 컨트롤러의 어플리케이션을 개발하는EcoStruxure Machine Expert (줄여서 ESME)에 관한 내용을 다루는 전자책입니다.현재 Machine Expert와 관련

sw-eng.tistory.com

 

반응형

'Programming > PLC' 카테고리의 다른 글

사용자 정의형 데이터 타입  (0) 2024.05.14
Structured Text  (0) 2024.05.14
FBD와 CFC  (0) 2024.05.14
래더 다이어그램  (2) 2024.05.14
변수의 종류  (0) 2024.05.14