SIEMENS/SIMATIC MANAGER

(4) OB, FC, FB 란 무엇인가?

전기럭 2025. 4. 11. 03:05
반응형

 

 

(3) OB, FC, FB 란 무엇인가?

(2) 하드웨어 스테이션 만드는법(1) 새로운 project 만들기SIMATIC MANAGER 실행 더블클릭  바탕화면이나 메뉴바나 설치된 SIMATIC Manager 아이콘을 더블 클릭하여 실행합니다.    그러면 이 화면이 실

electricalgoose.tistory.com

 

 

 

안녕하세요! 지난 시간에는 OB 에 대해 자세히 알아보았습니다. 오늘은 PLC 프로그래밍의 또 다른 중요한 두 축, 바로 **FC (Function)**와 **FB (Function Block)**에 대해 알아보 시간을 갖겠습니다.

 

FC와 FB는 PLC 프로그램 내에서 특정한 기능을 수행하는 코드 블록이라는 공통점을 가지고 있지만, 그 내부 작동 방식과 활용 목적에는 중요한 차이점이 존재합니다. 이 두 블록의 특징을 명확히 이해하는 것은 효율적이고 체계적인 PLC 프로그램을 설계하는 데 필수적입니다.

 

우선 FB와 FC블록 추가하는 방법에 대해 보겠습니다.

 

OB 추가와 동일하게

 

 

지난번 OB를 추가하는 방법과 동일하게 FC ,FB 블록을 추가할수있습니다.

 

 

우선 FB의 특징에 대해 알아보기 위해 FB하나를 생성해 보겠습니다.

 

OK 클릭하여 생성
추가된 FB1

 

 

 

문제없이 생성하셨다면 이렇게 추가된걸 확인하실수있습니다.  FB1을 실행해 보겠습니다.

 

 

 

 

FB를 실행하게되면 이런 창이뜹니다. 우선 위에 Interface칸에있는 이상한?것들부터 설명해보겠습니다.

 

 

 

  • IN (Input): FB1으로 들어오는 (입력) 파라미터들을 정의하는 영역입니다. FB1을 호출하는 다른 블록에서 값을 전달해 줄 때 사용합니다.
  • OUT (Output): FB1의 연산 결과를 내보내는 (출력) 파라미터들을 정의하는 영역입니다. FB1의 연산 결과를 호출한 블록으로 전달할 때 사용합니다.
  • IN_OUT (Input/Output): FB1으로 값을 전달하고 (입력), FB1 내부에서 값이 변경된 후 다시 전달하는 (출력) 파라미터들을 정의하는 영역입니다. 주로 데이터를 업데이트하거나 공유할 때 사용합니다.
  • STAT (Static): FB1 내부에서 상태를 저장하고 유지하기 위한 **정적 변수 (Static Variable)**들을 정의하는 영역입니다. 이 변수들은 FB1이 실행된 후에도 값을 유지하며, FB1의 각 인스턴스 (Instance DB)마다 독립적인 값을 가집니다. 이것이 FB가 FC와 가장 큰 차이점을 가지는 부분입니다.
  • TEMP (Temporary): FB1이 실행되는 동안 **임시적으로 사용되는 변수 (Temporary Variable)**들을 정의하는 영역입니다. FB1 실행이 완료되면 이 변수들의 값은 사라집니다. FC에서도 동일하게 사용됩니다.

 

개념들은 이러하며 STAT(Static) 빨간색으로 된것엔 이유가있으니 꼭 잘기억해두시길 바랍니다.!!

 

 

 

간단하게 보여드리겠습니다.

 

IN(Input) 영역에 Start_Butoon과 Stop_Button 이라고 추가해주겠습니다.

 

참고로

데이터 타입설정

 

 

데이터타입도 선택할수있습니다. 지금은 Bool로 하시면 됩니다.

 

 

같은방식으로

 

 

OUT과 STAT에도 작성해줍니다. 이름은 마음대로 하셔도됩니다.

추가한 변수들을 활용하여 간단한 모터 기동 프로그램을 만들어 보겠습니다.

 

 

 

 

이렇게 프로그램을 구성하였습니다. 그런데 이제 이걸 어떻게 사용할까요??

 

 

다시 첫화면으로와서 OB1을 실행시킵니다.

 

상단의 VIEW -> OVERVIEW 클릭하면 좌측 블록추가 옵션카드 열립니다.

 

OB1에 FB1을 추가하니 ??? 라고뜨는데 이유는 FB1에 해당하는 Instance DB를 지정해주지 않아서 그런것입니다. 

 

Instance DB가 무엇이냐면 FB의 상태 데이터를 저장하고 관리하는 전용 데이터 저장소입니다. FB가 호출될 때마다 해당 FB 인스턴스에 대한 고유한 Instance DB가 생성되며, 이 데이터 블록 안에 FB 내부의 Static 변수 값, 입력/출력 파라미터 값 등이 저장됩니다.

Instance DB는 FB의 기억 창고라고 할 수 있습니다. FB가 어떤 작업을 수행하고, 어떤 상태에 있는지에 대한 모든 정보가 Instance DB에 담겨 있습니다. 따라서 FB는 Instance DB 없이는 제대로 동작할 수 없습니다.

 

그럼 Instance DB는 어떻게 생성하는건지 해보겠습니다.

 

 

 

 

 

OB1 블록에서 FB1를 추가후 ??? 부분에 DB1이라고 치고 YES 버튼을 누르면  (번호는 상관없으나 보통 FB와 같은번호로 하는걸로 알고있습니다) 아래처럼 DB1이라고 바뀌었습니다.

 

 

 

 

그리고 첫화면에 가보면 DB1이라고 생성되어있고 Typ에 보시면 Instance data block for FB1 이라고 써져있습니다 

DB1은 FB1의 Instance data block이라는 것을 알수있습니다.

 

DB1을 실행해보겠습니다.

 

 

 

그럼 아까 FB1에서 만든 변수들이 DB1에 생성되어있는걸 알수있습니다.

 

 

Siemens STEP7에서 FB(Function Block)를 사용할 경우,
해당 FB의 내부 변수들은 **Instance DB(Data Block)**를 통해 저장되고 관리됩니다.
이때 각각의 변수는 **어드레스(Address)**를 가지며, 해당 어드레스를 통해 실제 PLC 메모리 내 위치를 파악할 수 있습니다.

0.0 in Start_Button BOOL FALSE
0.1 in Stop_Button BOOL FALSE
2.0 out MOTOR BOOL FALSE
4.0 stat MOTOR_RUNNING BOOL FALSE

 

 

 

 

PLC 데이터 타입에대해 잘모르시면 참고하시면 될것같습니다.

 

PLC 데이터 타입

PLC 프로그래밍을 할 때 데이터 타입을 정확히 이해하는 것은 매우 중요합니다.데이터 타입을 잘못 설정하면 프로그램의 실행 오류가 발생하거나,메모리 사용이 비효율적으로 이루어질 수 있습

electricalgoose.tistory.com

 

 

 

 

FC로 넘어가기전에 정리한번 해보겠습니다.

 

 

FB(Function Block)란?

FB는 Siemens PLC에서 상태를 저장할 수 있는 블록으로,
같은 로직을 여러 번 호출하더라도 각각의 호출 상태를 따로 기억할 수 있는 구조입니다.
즉, 단순 계산용인 FC와 달리 **“기억력 있는 블록”**입니다.

예를 들어, 모터 제어 FB를 여러 개 만들었다면,
각 모터의 작동 상태(켜짐, 꺼짐, 누름 상태 등)를 따로따로 유지할 수 있어야 하는데,
FB는 바로 이런 상황에 적합합니다.


인스턴스 DB란?

FB를 사용할 때 반드시 함께 만들어지는 것이 **인스턴스 DB (Instance Data Block)**입니다.
이 DB는 해당 FB의 변수들을 실제로 저장하는 공간입니다.

FB는 로직만 가지고 있고, 그 로직에서 사용되는 **값(데이터)**들은 인스턴스 DB에 저장됩니다.

즉,

  • FB는 기능 설명서
  • 인스턴스 DB는 기능에 필요한 저장 공간

이렇게 보면 됩니다.

📌 예: FB1이라는 모터 제어 블록이 있다면, DB1이 자동으로 생성되어
이 안에 Start 버튼, Stop 버튼, Motor 상태 등이 저장됨.


STAT 변수란?

STAT은 FB에서만 선언 가능한 변수로,
**실행 중 값을 기억하는 ‘상태 변수’**입니다.

STAT으로 선언된 변수는 실행이 끝나도 값이 유지되며,
다음 사이클에도 이전 상태를 기반으로 동작할 수 있습니다.

즉,

  • TEMP 변수: 한 사이클 끝나면 값 사라짐 (일시적 계산용)
  • STAT 변수: 다음 사이클까지 값 유지됨 (상태 기억용)

이 덕분에 FB는 “모터가 켜져 있는지”, “센서가 마지막에 뭐였는지” 같은
상태 기반 논리 제어가 가능해집니다.

 

 

다음엔 FC에 대해 알아보겠습니다 .

 

 

반응형

'SIEMENS > SIMATIC MANAGER' 카테고리의 다른 글

(5) OB, FC, FB 란 무엇인가?  (3) 2025.04.21
(3) OB, FC, FB 란 무엇인가?  (1) 2025.04.11
(2) 하드웨어 스테이션 만드는법  (0) 2025.03.31
S7-300 PLC 소개  (0) 2025.03.31
Simatic manager 명령어집  (0) 2023.11.14