SIEMENS S7 PLC 에서 사용되는 DB 중 UDT(User Defined data Type : 사용자 정의 데이터) 개념과 만드는 방법에 대해 알아보는 시간을 가졌습니다.
지난 글 참고하기 : UDT 사용 용도
오늘은 반복사용 될 DB 를 위한 UDT(User Defined data Type : 사용자 정의 데이터) 구조에 대해 상세히 알아보겠습니다. UDT 구조 설정에 앞서 SIMATIC Manager 프로그램 다운로드 상태 확인 및 설치 완료된 환경에서 진행해야 하기 때문에 다운로드 받지 않은 상태라면 미리 설치해 두기 바랍니다.
UDT 구조 만드는 방법 (변경 또는 수정 요령)
설비 도입 당시 프로그래머가 만들어둔 UDT의 구조 변경, 수정을 할 경우에 UDT 구조에 대해 알아두어야 오류 없이 수정할 수 있습니다.
또는, 사용자가 추가로 UDT를 만들기 위해서 어떤 데이터 항목을 어떻게 입력해야하는지 요령을 알 필요가 있습니다.
- 앞선 포스팅 내용으로 UDT 만들기를 끝낸 후, 새로 만든 “UDT10”을 OPEN 합니다.
- 회색 음영처리된 영역은 사용자가 직접 입력할 수 없으며, 흰색 영역만 입력할 수 있습니다.
- Address(주소) : 데이터의 형태에 따라 자동으로 입력됩니다. 데이터 Type 은 그 데이터의 크기 또한 내포하고 있으므로 다음 Address 생성 또한 크기에 맞게 순차적으로 생성됩니다. 처음 시작은 “0.0”으로 시작됩니다.
- Name(이름) : 해당 데이터의 Symbol name 입니다. 사용자가 구분하기 쉬운 이름으로 텍스트 입력을 할 수 있습니다.
- Type(유형, 형태) : 사용자가 저장 및 관리하고자하는 데이터의 유형애 맞게 입력합니다. 입력 방법은 “마우스 우클릭”을 통해 선택 입력이 가능합니다. 데이터 값에 따라 유형이 결정될 수 있으며, 예를 들어 -32768 ~ 32767까지의 정수 데이터라면 16비트 정수인 “INT” Type을 입력해주면 됩니다.
소수점 숫자, “실수” 데이터 유형일 경우 “REAL” 값을 선택 입력하면 됩니다. - Initial Value : PLC CPU에 DB 데이터 블록을 다운로드 할 때에 사용되는 초기값을 입력해줍니다. UDT는 다운로드하지 않지만, 앞으로 UDT를 이용해 만든 DB는 직접 사용될 용도이기 때문에 CPU 다운로드를 거치게 됩니다. 이때 초기값으로 사용될 데이터를 입력합니다. 마찬가지로 “Type”에 맞게 값을 입력해야 합니다.
- Comment : 데이터에 대한 코멘트, 설명문을 입력할 수 있습니다.
UDT를 이용한 DB 데이터 블록 만들기
앞선 포스팅을 통해 설명한 UDT 개념과 사용 용도는 간단히 말해 템플릿(Template)을 예로 들었습니다. 동일한 구조의 DB를 여러개 생성할 때에 일일이 똑같은 DB를 만들고 입력하는 것은 비효율적이기 때문에 “UDT”라는 기능을 이용해서 동일한 구조의 DB를 손쉽게 대량 생산할 수 있습니다.
UDT 구조까지 만들었으니, 이제 이 UDT를 이용해 DB 데이터 블록을 만들어 보겠습니다.
- SIEMENS S7 PLC SIMATIC Manager 다운로드 및 설치
- SIMATIC Manager 실행, Project 내 “Blocks” 폴더 클릭
- 상위 메뉴탭 “Insert” 클릭
- “S7 Block” → “Data Block” 클릭
- “Properties – Data Block” 팝업창을 통해 신규 생성할 Data Block의 구조 설정
- “Name and type” 에서 “DB00”입력 → “DB of type” 선택 → “UDT10” 선택
- 팝업창 하단 “OK” 클릭 시 “UDT” 구조를 이용한 DB 만들기 완료
※ 참고 : 이렇게 UDT 구조를 이용해 만들어진 DB는 별도로 수정, 변경 불가합니다. DB가 아닌 UDT를 직접 변경하는 방법이 있습니다. UDT를 통해서 만들어진 DB는 UDT 구조로 고정되어 있으며, UDT 구조를 직접 변경했다면, 이전 버전의 UDT를 통해 만들었던 DB는 모두 삭제 한 후 다시 만들어야 합니다.
Error Message 1 : Data block Open (319:17) – There are no parameter and local variable names avaliable because ther is a time stamp conflict between the interface of the block and the description of the parameter and local variable names.
Error Message 2 : Save (30:22) – The interface of the block was changed. After Save/Load, this results in an interface conflict with the blocks that reference it. When this block is loaded, the CPU can go into the STOP mode. Continue Save/Load?
UDT를 이용해 DB 데이터 블록 만들기에 대해 상세히 알아보는 시간을 가졌습니다. 현업에서 동일한 10대의 전동기(Motor)제어를 위해 10대의 Inverter 모듈과 데이터를 주고 받을 때에 10개의 DB를 모두 생성하지 않고, UDT 구조를 이용한다면 아주 빠르고 간단하게 10개의 DB 생성을 할 수 있겠습니다.
또한, UDT의 장점은 Address 구조 또한 동일하기 때문에, DB 하위 Address가 동일해 데이터를 찾아 쓰고, 관리하기에 용이합니다.
DB 기초 개념과 DB 만드는 방법에 대해 안내한 글이 있으니 함께 읽어보고 가시는 것을 추천드립니다.
지난 글 참고하기 : DB 데이터 블록 만드는 방법