본문으로 바로가기

FBD와 CFC

category Programming/PLC 2021. 4. 19. 14:08
반응형

FBD란

프로그래밍을 통해 회로의 로직을 쉽게 바꿔서 적용시킬 수 있다는 점은, PLC가 자동화 시스템 개발 담당자를 포함한 공장 관리자들의 관심을 한 몸에 받기에 충분한 이유였다. PLC가 적용되던 초기에는 릴레이 로직 회로를 프로그래밍 유닛으로 대체하는 수준 정도로도 이들을 충분히 만족시킬 수 있었으나, 컨트롤러의 하드웨어 성능이 점차 발전하는 것과 마찬가지로, 자동화 시스템들도 점점 규모가 커져가면서 요구되는 기능들도 다양하고 복잡해지기 시작하였다. 이제껏 단순 순차적인 방법으로 작성해오던 PLC 프로그램에 변화가 필요해지기 시작하였고, 시스템 개발 담당자들은 구현할 시스템을 작은 논리적 단위로 나눠서 설계하는 방식을 적용하기 시작하였다. 여기서 작은 논리적 단위로 작성된 프로그래밍 모듈이 펑션펑션 블록이고, 이렇게 만들어진 모듈들을 서로 연결해주는 형태로 작성된 프로그램을 펑션 블록 다이어그램 (Funtion Block Diagram)이라 부르며, 줄여서 FBD라고 한다.

그래서, FBD로 작성된 프로그램은 위 그림과 같이 모든 연산들이 사각 박스 형태로 구현되고, 연속된 연산의 경우 블록들의 입출력핀이 서로 연결되어 있는 모습을 보여주고 있다. FBD도 IEC 61131-3에서 정의하고 있는 표준 프로그래밍 언어 중 하나이므로, 박스들을 배치하는 형태로도 충분히 프로그램을 작성할 수 있다. 하지만, 모든 연산들이 비슷한 모습의 박스로 표현되고, 박스 내부에 표시된 텍스트를 통해 어떤 연산인지를 구분해야 하는 FBD의 특징은 프로그램이 조금만 복잡해져도 내용을 쉽게 이해하기 어렵다는 단점을 가지고 있다. 하지만, 기본 연산자들의 배열이 아닌, 사용자가 직접 작성한 프로그램 모듈이나 라이브러리 내부의 모듈이 연결된 FBD 프로그램의 경우 연산의 순서나 데이터의 흐름을 이해하는데는 효과적이라는 장점도 함께 가지고 있다.

CFC란

시스템 개발 담당자들이 작은 논리적 단위인 펑션이나 펑션 블록으로 구현할 시스템을 나눠서 설계하고, 이것들을 서로 연결해주는 방식으로 구현하는 FBD는 위에서 이야기한 분명한 장점을 가지고 있다.

하지만, 위 그림처럼 네트워크라는 프로그램 코드의 기본 단위에, 여러 블록들이 연산을 위해 연결되어야 하는 경우, 상황에 따라 블록의 생긴 형태가 변경되면서 프로그램 자체를 어지럽히는 문제가 나타날 수도 있고, 다른 네트워크의 블록으로 데이터를 전달해야 하는 경우 별도의 내부 변수 등을 사용해야 하는 문제점도 나타난다.

IEC61131-3에서 표준으로 정의된 프로그래밍 언어라고 하기에는 확실치 않은 부분이 있지만 CODESYS에서 지원하고 있는 CFC (Continuous Function Chart)는 FBD의 이러한 문제점을 해결하기에 충분한 하나의 대안이라 할 수 있다.

CFC 프로그램은 FBD나 래더 다이어그램처럼 네트워크라는 별도의 프로그램 코드 단위를 두지 않고, 이름에서 의미하는 것 처럼 무한대로 확대될 수 있는 캔버스 위에 위 그림과 같이 펑션이나 펑션 블록들을 자유롭게 배치하고 연결해주는 방식으로 프로그램이 작성된다.

그래서, 연결된 라인을 추적하는 것으로 데이터와 연산의 상관관계를 바로 알아볼 수 있어서 같은 결과를 얻을 수 있는 프로그램이라 하더라도, FBD와 비교했을 때 더욱 직관적이라는 것을 알 수 있다. 단, 캔버스 위에 프로그램 모듈을 자유롭게 배치하고, 이들을 서로 연결해주는 방식으로 프로그램이 작성되기 때문에, 올바르게 시퀀스 처리 순서가 지정되었는지를 확인해야 하는 추가적인 작업이 필요하다는 점과 마우스 조작을 통해 선을 하나씩 이어줘야 하므로 프로그램 작성 속도가 다른 언어에 비해 느리다는 부분이 단점으로 지적된다.

 

이번 글의 주제에 관한 더욱 자세한 내용은 전자책을 통해 확인하실 수 있습니다.
(FBD와 CFC를 이용한 프로그래밍 방법 포함...)
아래 Link를 클릭하면 전자책 구매 사이트 (크몽)으로 연결되니,
전자책 구매에 관심 있으신 분들은 참고하시기 바랍니다.

(전자책 구매하러가기)

 

지금 읽고 계신 글이 유익했다면, 커피 한 잔 부탁드립니다.
더욱 참신한 글로 여러분의 후원에 보답하겠습니다.


donaricano-btn

반응형

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

Sequential Function Chart  (0) 2021.05.15
Structured Text  (0) 2021.04.23
래더 다이어그램  (2) 2021.04.18
변수의 종류  (0) 2021.04.07
변수와 데이터 타입  (0) 2021.03.28