용어 정리 - FBD
FB / FBD : Function Block Diagram = 펑션 블록
IEC61131-3 : 국제 전기 표준 회의(IEC)가 1993년 12월에 발행한 표준 규칙으로, PLC용의 이하 5종류 프로그램 언어를 정의한 것입니다.
Instruction List(IL언어)
Ladder Diagram(LD언어)
Sequential Function Chart(SFC언어)
Function Block Diagram(FBD언어)
Structured Text(ST언어)사용자 라이브러리(User Library) : 사용자가 추가한 펑션 블록입니다. 펑션 블록 변수 및 프로그램을 자유롭게 작성할 수 있고, 필요에 따라 파일로 내보내기 / 불러오기를 하여 언제든지 재사용 할 수 있습니다.
사용자 라이브러리는 프로젝트 정보에 포함됩니다. 따라서 CICON에서 새로운 프로젝트를 생성하거나 다른 프로젝트를 Open할 경우 사용자 펑션 블록은 해당 프로젝트의 펑션 블록으로 교체됩니다. 프로젝트와 상관 없이 항상 사용하기 위해서는 사용자 시스템 라이브러리로 등록해야 합니다.
사용자 라이브러리에 등록된 펑션 블록과 PLC에 쓰기(PLC 다운로드) 되는 펑션 블록은 다를 수 있습니다. 스캔 프로그램에서 사용중인 펑션 블록만 PLC에 쓰기(PLC 다운로드) 됩니다. 따라서 사용자 펑션 블록으로 등록한 후 실제 사용을 하지 않은 펑션 블록은 PLC에서 읽기(PLC 업로드) 후 제거 될 수 있습니다. 이와 관련하여 제거된 펑션 블록에 대한 복구 기능을 사용할 수 있습니다. 자세한 내용은 <미사용 펑션 블록의 처리>를 참조해 주십시오.
시스템 라이브러리(System Library) : CICON에서 제공하는 펑션 블록입니다. 펑션 블록 변수 및 프로그램이 미리 정의 되어 있어 바로 사용할 수 있습니다. 시스템 라이브러리는 프로젝트와 상관 없이 CICON 자체에 등록됩니다. 자세한 내용은 시스템 라이브러리를 참조해 주십시오.
사용자 시스템 라이브러리(User-System Library) : 사용자가 작성한 사용자 라이브러리를 시스템 라이브러리로 등록하면 일반 시스템 라이브러리와 동일하게 사용할 수 있습니다.
스캔 프로그램 : IL 또는 Ladder 로 작성된 PLC 스캔 프로그램입니다. 상수값과 디바이스 어드레스 그리고 PLC 명령어로 작성합니다.
펑션 블록 프로그램 : 펑션 블록 내에서의 처리 프로그램으로 일반 스캔 프로그램과 유사하지만 펑션 블록 변수를 사용한 프로그램이 가능하며 디바이스 어드레스(X00, Y20, D05) 역시 사용 가능합니다.
<펑션 블록 프로그램의 사용시 주의 사항>
펑션 블록에서 사용되는 입력 변수와 출력 변수는 연속적인 데이터 영역을 사용하며 이는 입력 변수와 출력 변수로 지정된 디바이스 어드레스와는 별개로 동작합니다.
따라서 입력 변수 또는 출력 변수는 블록형 데이터 처리 명령어(= 데이터 테이블 처리)에 사용하는 것은 적합하지 않습니다. 블록 복사(BMOV..), 워드 쉬프트(DSFR..), 데이터 테이블(FIFW…) 등의 블록형 데이터 처리 명령어를 사용할 경우 의도와는 다르게 프로그램이 동작 할 수 있습니다. 사용시 주의해 주십시오.
배열형 사용 방법은 [여기]를 참조해 주십시오.
예)
입력 변수 1 / 2 / 3 의 디바이스 어드레스가 연속된 영역이고 출력 변수 1 / 2 / 3 의 디바이스 어드레스가 연속된 영역일 경우에는 정상 동작이 가능합니다.
배열형 명령어 사용이 필요할 경우에는 인덱스 레지스터를 사용하면 정상적으로 사용할 수 있습니다.
펑션 블록 변수 : 펑션 블록 내에서만 사용할 수 있는 로컬 변수입니다. 스캔 프로그램에서 사용 할 수 없습니다.
로컬 변수(지역 변수) : 특정 프로그램 내에서만 사용할 수 있는 변수를 말합니다. CIMON PLC에서는 펑션 블록 변수와Z 디바이스가 로컬 변수이고 그 외 모든 디바이스는 글로벌 변수입니다. 예를 들어 펑션 블록1에서 사용한 변수 “입력1”의 값은 해당 펑션 블록 처리가 끝나면 지워집니다.
글로벌 변수(전역 변수) : PLC프로그램 전체에 적용되는 디바이스 어드레스를 말합니다. 스캔 프로그램1 에서 D05 에 100을 대입할 경우 스캔 프로그램2 에서도 D05에는 100입니다.
기본 명령 / 응용 명령 : PLC를 제어 하기 위해 스캔 또는 특수 프로그램에서 사용하는 명령어의 종류입니다. 기본 명령은 접점 / 결합 / 종료 / 실행 등의 단순한 명령을 말하고 응용 명령은 비교 연산 / 산술 연산 / 데이터 처리 등의 기본 명령보다 복잡하고 다양한 기능을 수행할 수 있게 만들어진 명령입니다.
CIMON PLC의 모든 명령어(기본/응용 모두) 는 기능을 표시하는 명령부와 명령에서 사용하는 Data를 표시하는 Device로 구성됩니다.(보다 상세한 내용은 HELP를 참조해 주십시오)입력 변수 : 펑션 블록 지역 변수에 값을 입력하기 위한 변수입니다. 정수 또는 디바이스 어드레스 지정이 가능합니다.
출력 변수 : 펑션 블록 지역 변수의 값을 디바이스 어드레스(글로벌 변수)에 출력하기 위한 변수입니다. 반드시 디바이스 어드레스를 지정해야 합니다.
입출력 변수 : 펑션 블록 지역 변수에 값을 입력하고 처리가 끝난 후 디바이스 어드레스(글로벌 변수)에 출력하기 위한 변수입니다. 반드시 디바이스 어드레스를 지정해야 합니다.
EN : 펑션 블록 실행 입력으로 펑션 블록이 실행될 경우 반드시 1입니다.
ENO : 펑션 블록 실행 출력으로 EN이 0일 경우 ENO는 반드시 0이고, EN이 1일 경우 펑션 블록을 실행한 결과값이 정상일 경우 ENO는 1입니다.
CIMON PLC에서는 ENO 출력을 펑션 블록 전용 스캔 프로그램에서 제어 할 수 있습니다. Default 값은 1이고, 펑션 블록에 에러가 발생하거나 사용자가 0으로 설정할 경우 ENO 값은 0을 출력합니다.
B / D / DW / F : 펑션 블록 변수의 데이터 타입입니다.
B : Bit / W : Word / DW : Double Word / F : FloatFB / FB Extension : 펑션 블록은 CPU Type에 따라 기능이 달라질 수 있습니다.(*지원 CPU 참조)
FB : Rung당 1개의 펑션 블록만 사용할 수 있으며 입력 / 출력 변수가 각각 32개로 제한됩니다.(Extension에는 없는 펑션 블록 실행 모니터링 기능이 있습니다.)
FB Extension : 펑션 블록의 모든 기능을 쓸 수 있습니다.(펑션 블록 실행 모니터링 제외)Timestamp(타임스탬프) : 파일 시스템에서 타임 스탬프는 파일의 생성 시간 또는 변경된 시간을 뜻합니다. 펑션 블록에서는 사용자가 추가한 라이브러리마다 최종 수정 시간 값의 타임 스탬프가 있습니다.
펑션 블록 변수 편집 화면에서 최종 수정 시간을 확인하거나 PLC 읽기(업로드) 한 펑션 블록과 프로젝트의 동일 펑션 블록이 충돌할 때 어느쪽 데이터를 사용할지 선택할 때 필요한 정보입니다.펑션 블록 고유 코드 번호 : 사용자가 추가한 라이브러리는 모두 고유한 코드 번호 할당됩니다. 한 번 부여 받은 코드 번호는 절대 바뀌지 않으며 동일 코드 번호를 다시 사용할 수 없습니다.
단, 아래 그림과 같이 제거된 라이브러리에서 “FB 완전 삭제”를 할 경우 고유 코드 번호를 다시 사용할 수 있습니다.
이 고유 코드 번호는 모든 펑션 블록을 판별하는 기준이 되는 값으로 다음과 같은 상황에 고유 코드 번호에 의한 처리를 주의 깊게 확인해야 합니다.
“FB_001”이라는 명칭의 펑션 블록을 추가하여 PLC 쓰기(다운로드)
“FB_001” -> “TEST1”로 명칭 변경 및 변수 설정 등을 변경
PLC 읽기(업로드) 실행시 아래 그림과 같이 동일 고유 코드 번호 사용에 따른 선택 화면 표시
동일한 고유 코드에 따른 선택 -> 타임 스탬프 기반의 수정 시간 및 입/출력 정보를 확인하여 사용할 펑션 블록을 선택합니다. 선택된 펑션 블록은 PLC 읽기한 펑션 블록으로 덮어쓰기 됩니다. 선택 해제시 PLC 읽기한 펑션 블록은 무시됩니다.