CIMON 사용자 프로토콜
CIMON 사용자 프로토콜 Driver 소개
CIMON 사용자 프로토콜(Ethernet)은 CIMON-SCADA 이용 시, 사용자가 직접 통신 대상 장비와의 프로토콜을 작성하고자 할 때 사용합니다. 이로써 사용자는 보다 넓은 범위의 네트워크를 구축할 수 있습니다. CIMON 사용자 프로토콜(Ethernet)을 이용하여 사용자는 CIMON에서 제공하는 I/O디바이스 뿐만 아니라 I/O 디바이스 목록에 없는 디바이스의 프로토콜 작성 및 통신이 가능합니다. 통신을 하기 위하여 CIMON 사용자 프로토콜(Ethernet)에서 프로토콜을 작성할 때, 통신 대상 장비의 프로토콜 자료가 있어야 합니다.
사용자만의 보안을 위해 별도의 프로토콜을 필요로 한다면, CIMON 사용자 프로토콜(Ethernet)을 이용하여 원하는 프로토콜을 직접 작성할 수 있습니다. 사용자는 직접 필요한 프로토콜을 작성하여 통신 대상 장비의 데이터를 읽고 쓸 수 있습니다.
CIMON 사용자 프로토콜은 이더넷(Ethernet)방식과 시리얼(Serial) 방식의 통신을 지원합니다. 본 매뉴얼은 CIMON 사용자 프로토콜(Ethernet)에 한하여 설명합니다.
지원 장비 및 권장 사양 |
| 내용 | 비고 |
제조사 | (주)싸이몬 |
|
지원 장비 | Ethernet통신을 지원하는 장비 전반 |
|
프로토콜 | 사용자 정의 프로토콜 |
|
통신 방식 | Ethernet, Serial | TCP/IP, UDP/IP, RS232C |
드라이버 설명 | (주)싸이몬 사용자프로토콜 (Ethernet) (주)싸이몬 사용자프로토콜 (RS232) |
|
지원/미지원 기능 |
CIMON에서 제공하는 통신 프로토콜 드라이버 별 지원하는 기능이 상이합니다. 하단의 표 는 CIMON 사용자 프로토콜(Ethernet)이 지원하는 기능과 지원하지 않는 기능의 목록입니다. 통신 드라이버 사용 전 지원 기능 목록을 참조하시기 바랍니다.
기 능 | 지원 여부 | 비 고 | |
BYTE 데이터의 BIT 처리 | ■ 지원 |
| |
스테이션 통신블록 설정 CSV저장, 불러오기 | □ 지원 | 미지원 기능 | |
유동 IP 사용 | □ 지원 | 미지원 기능 | |
라인 이중화 | ■ 지원 |
| |
통신방식 | ■ 블록통신 |
| |
□ 페이지통신 | 미지원 기능 | ||
통신 주기 설정 | ■ 지원 |
| |
문자열 태그 읽기/쓰기 | ■ 지원 |
| |
통신 에러 메시지 확인 기능 | ■ 지원 |
| |
통신 상태 확인 기능 | ■ 지원 |
| |
스테이션 활성화(ENABLE) / 비활성화(DISABLE) | ■ 지원 |
| |
쓰기 후 읽기 | □ 지원 | 미지원 기능 | |
레시피 | □ 지원 | 미지원 기능 | |
데이터 스왑 (Data Swap) | 아날로그 | ■ 지원 |
|
문자열 | ■ 지원 |
| |
통신 프레임 표시 | ■ 지원 |
|
프레임 송/수신 순서 |
통신하는 장비들 중 어느 장비가 마스터이고 어느 장비가 슬레이브인지에 따라 프레임 송/수신 순서가 달라집니다. 마스터는 슬레이브에 요청을 보내고 응답을 기다립니다. 마스터는 통신의 주축이 되어서 데이터를 모을 수 있고 통신 대상 장비 쪽으로 데이터를 보낼 수도 있습니다. 슬레이브는 마스터의 요청을 기다립니다. 슬레이브는 통신의 보조자로, 마스터가 데이터를 요청하면 해당 데이터를 보내고, 마스터에서 데이터를 변경하도록 요청하면 그에 맞춰 데이터를 변경합니다.
통신 프레임 이란 |
통신 프레임이란 실제 통신에서 주고 받는 데이터 묶음의 단위를 의미하며, 통신 프레임 혹은 메시지로 표현합니다. 프레임의 구성은 통신 대상 장비의 프로토콜 혹은 사용자가 구성하고자 하는 요건에 따라 달라집니다. CIMON 사용자프로토콜(Ethernet)은 사용자 임의로 프레임을 구성하여 통신할 수 있습니다.
프레임은 일반적으로 다음과 같은 구성을 지닙니다. ‘헤더+바디+테일’, ‘스테이션 번호+(처리 명령+데이터)+BCC’ 그리고 ‘메시지+종료문자’의 구성이 있으며 각각의 특징은 하단에 설명합니다.
1) 헤더(HEADER) + 바디(BODY) + 테일(TAIL)
헤더 | 바디 | 테일 |
일반적으로 프레임의 시작과 끝을 알려주는 헤더와 테일로 구성되어 있으며 실제 내용은 바디 부분에 포함된 채 송/수신되는 프레임 구조입니다. 통상적으로 1:1 구조에서 널리 쓰이는 구조입니다.
2) 스테이션 번호(STATION NUMBER) + 처리 명령(COMMAND) 데이터(DATA) + BCC
스테이션 번호 | 처리 명령+데이터 | BCC |
1:N 통신을 위해 이용하는 구조입니다. 대표적으로 MODBUS가 이 구성에 해당하며, 통상적으로 ‘헤더+바디+테일’ 구조와 섞어 사용합니다. 이러한 프레임 구조는 스테이션 번호로 시작하여 중간에는 처리 명령 및 데이터, 끝에는 프레임의 신뢰성 검사를 위해 BCC라는 데이터로 구성된 채 송/수신되는 프레임 구조입니다. 통상적으로 1:N 통신에 널리 쓰이는 구조입니다.
3) 메시지(MESSAGE) + 종료 문자(END CHARACTER)
메시지 | 종료 문자 |
대화형 통신 방식이며, 프린터와 같은 장비에서 쓰입니다. 메시지 내용 뒤 <CR (Carriage Return)>, <LF(Line Feed)> 와 같은 종료 문자를 붙여 송/수신 내용의 종료를 알립니다.
세그먼트(Segment)란 |
세그먼트란 통신 프레임을 구성하는 기초 단위를 의미합니다. 2.1.2항에서 언급된 통신 헤더, 바디, 테일, 스테이션 번호, 처리 명령, 메시지 등을 세그먼트라고 합니다.
본 CIMON 사용자 프로토콜(Ethernet)에서는 세그먼트를 크게 3가지 종류로 분류 합니다. 값이 고정된 고정 세그먼트, 통신 대상 장비에서 데이터를 받아 태그에 쓰거나 태그에 쓴 값을 통신 대상 장비에 보내는 메모리 링크 세그먼트 그리고 오류검사(BCC) 세그먼트가 있습니다. 다음은 각 세그먼트에 대한 설명입니다.
1) 고정 세그먼트
고정 세그먼트는 데이터 송/수신 시 값과 길이가 변화하지 않는 데이터를 의미합니다. 예를 들어 헤더, 테일, 스테이션 번호, 종료 문자 등이 있습니다.
2)메모리 링크 세그먼트 (고정/가변 메모리 링크 세그먼트)
메모리 링크 세그먼트는 통신 대상 장비로부터 프레임을 수신하여 CIMON 태그에 값을 입력하거나, 태그에 값을 입력하여 통신 대상 장비로 송신하는 경우에 사용하는 세그먼트입니다. 메모리 링크 세그먼트는 고정 메모리 링크 세그먼트와 가변 메모리 링크 세그먼트로 분류됩니다. 고정 메모리 링크 세그먼트는 송/수신 시 데이터 수가 확정적일 때 사용합니다. 가변 메모리 링크 세그먼트는 송/수신 시 데이터 수가 가변적일 때 사용합니다. 단, 가변 메모리 링크 세그먼트의 경우 전/후의 세그먼트는 고정 세그먼트여야 합니다.
메모리 링크 세그먼트의 예로 온도 컨트롤러와 통신할 때, 현재 설정 값을 송신하는 경우를 들 수 있습니다. CIMON 사용자 프로토콜(Ethernet)의 메모리가 설정 값을 지정된 태그에 쓰고 온도 컨트롤러에 송신하게 되면, 태그에 있는 값이 온도 컨트롤러의 설정 값에 쓰여집니다. 온도 컨트롤러에서 현재 온도를 수신하는 경우 수신 프레임에 지정된 메모리 링크 세그먼트의 메모리 영역에 데이터를 수신 받아 지정된 태그에 현재 온도를 갱신하게 됩니다.
메모리 링크 세그먼트는 2가지로 분류됩니다.
고정 메모리 링크 세그먼트: 송/수신 시 데이터 길이가 확정적일 경우 사용합니다.
예) Word크기의 데이터 10개가 송/수신이 된다는 것이 확정적인 경우,
예) ASCII로 송/수신되며 5개의 문자로 송/수신이 된다는 것이 확정적인 경우
가변 메모리 링크 세그먼트: 송/수신 시 데이터 길이가 가변적일 경우 사용합니다.
예) 데이터 요청 시 요청하는 데이터 길이가 변화할 경우
예) ASCII로 송/수신되나 숫자 유효자리수가 변화할 경우
가변 메모리 링크 세그먼트를 사용할 때, 가변 메모리 링크 전/후의 세그먼트는 고정 세그먼트여야 합니다.
3) 오류검사(BCC) 세그먼트
BCC는 송수신 프레임에 대한 검사용 데이터입니다.
CIMON 사용자 프로토콜(Ethernet)에서는 BCC를 이용해 지정 영역의 데이터를 1BYTE 단위로 각 SUM, XOR, MUL연산하여 오류를 검출하는 방식이 있습니다. 이 외에 다양한 CRC 종류 중 Modbus에서 사용하는 CRC(Modbus), 각 BIT CRC오류 검출 방식인 CRC8, CRC16, CRC 16-1, CRC 16-2, CRC16-CCITT 1, CRC16-CCITT 2 등의 방식을 지원합니다.
설정된 시작 세그먼트 데이터부터 끝 세그먼트 데이터를 설정된 BCC 방식을 이용하여 연산하여 데이터를 확인합니다.
데이터 처리 방법 |
CIMON 사용자 프로토콜(Ethernet)에서 제공하는 데이터 처리 방식은 크게 무변환(바이너리)[1]와 ASCII[2]가 있습니다. 이 데이터 처리 방식은 메모리 링크 영역에 적용됩니다. 사용자 임의로 데이터를 처리하여 송/수신할 수 있습니다.
CIMON 사용자 프로토콜(ethernet)에서 ASCII데이터 변환 설정은 송/수신 프레임에 데이터를 보내고 받기 전에 데이터 값을 변환하는 방법을 정의합니다.
무변환(바이너리)는 별도의 변환 절차를 밟지 않으며 설정된 세그먼트 길이만큼 인식합니다.
수신 데이터: H78 H56 H34 H12 ↔ 내부 변환 데이터: H78 H56 H34 H12
데이터를 메모리에 저장할 때, 데이터를 BYTE 단위로 나누어 저장합니다. 2BYTE나 4BYTE 크기의 데이터를 어떤 순서로 저장하는지는 CPU의 유형에 따라 달라질 수 있습니다. 보통은 ‘리틀 엔디안’과 ‘빅 엔디안’방식으로 나뉩니다. 리틀 엔디안은 하위 BYTE부터 저장하는 방식이며, 빅 엔디안은 상위 BYTE부터 저장하는 방식입니다. CIMON-SCADA는 리틀 엔디안 방식을 사용합니다.
서로 다른 데이터 저장 방식의 시스템이 서로 통신할 경우. 통신하는 데이터가 서로의 BYTE 저장 순서에 따르도록 데이터 스왑(DATA SWAP)을 진행하여야 합니다.
엔디안 방식이 두 종류이며 CIMON-SCADA가 리틀 엔디안 방식을 사용하기 때문에 이를 고려하여 데이터 스왑(DATA SWAP) 방식을 설정합니다. CIMON 사용자 프로토콜(Ethernet)에서는 데이터 스왑(DATA SWAP) 2가지를 선택할 수 있습니다. 2BYTE SWAP과 4BYTE SWAP을 선택할 수 있습니다.
2BYTE SWAP
무변환 및 16진[1] 정수에만 적용되며 연속된 2BYTE단위로 서로 자리를 바꿉니다.
*송/수신 데이터가 4BYTE데이터: H78563412변환 완료 -> H56781234
*송/수신 데이터가 2BYTE데이터: H3412 변환 완료 -> H1234
4BYTE SWAP
무변환 및 16진 정수에만 적용되며 연속된 4BYTE 단위로 서로 자리를 바꿉니다.
*송/수신 데이터가 4BYTE 데이터: H78563412 변환 완료 -> H34127856
*송/수신 데이터가 2BYTE 데이터: H3412 변환 완료 -> H0000
구성 및 운영방식 |
CIMON 사용자 프로토콜(Ethernet)를 구성하는 요소는 크게 가상 메모리와 통신 드라이버가 있습니다. CIMON 사용자 프로토콜(Ethernet)의 가상 메모리는 통신 드라이버를 통하여 통신 대상 장비와 데이터를 송/수신하며 CimonD에서 사용자가 설정한 데이터베이스의 태그와 연결되어 사용됩니다. 송/수신한 데이터는 가상 메모리 내부의 통신용 메모리 영역에 읽거나 쓸 수 있습니다. 통신 드라이버는 데이터를 송/수신 할 때 데이터의 처리 및 변환을 담당합니다. 뿐만 아니라 통신 대상 장비와 통신하기 위해 이더넷(Ethernet) 통신을 연결하는 역할을 합니다.
CIMON 사용자 프로토콜(Ethernet)이 통신 대상 장비와 통신을 할 때 운영하는 방식은 두 종류로, 마스터 모드와 슬레이브 모드가 있습니다. 마스터 모드란 슬레이브 모드에게 데이터를 요청하고 응답을 기다리는 동작을 하는 모드를 뜻하며, 슬레이브 모드란 마스터 모드로부터 받은 요청을 수신하고 그에 대하여 응답을 보내는 동작을 하는 모드를 뜻합니다.
가상 메모리는 통신용 메모리, 프레임 상태 메모리 그리고 모드 감시용 메모리로 구성되어 있습니다. 통신용 메모리는 데이터베이스의 태그를 이용하여 가상메모리에 데이터를 읽거나 쓸 때 이용합니다. 프레임 상태 메모리는 데이터베이스의 태그를 이용하여 프레임의 상태를 감시하거나 일부를 제어 할 때 쓰입니다. 모드 감시용 메모리는 데이터베이스의 태그를 통해 CIMON-SCADA가 설치된 시스템의 마스터/슬레이브 모드 여부를 확인하는데 사용됩니다.
CIMON 사용자 프로토콜(Ethernet)은 내부의 가상 메모리와 통신 드라이버를 이용합니다. 가상 메모리는 CimonD에서 사용자가 설정한 데이터베이스의 태그와 연결되어 사용됩니다. 통신 드라이버는 통신 대상 장비와 이더넷(Ethernet) 통신을 하도록 도우며 송/수신하는 데이터의 처리 및 변환을 담당합니다.
가상 메모리: CIMON 사용자 프로토콜(Ethernet)이 통신 대상 장비와 통신하기 위한 가상의 메모리 영역입니다. 데이터베이스와 연결되어 사용됩니다. 크게 통신용 메모리, 프레임 상태 메모리, 모드 감시용 메모리로 영역이 구분되어 있습니다.
통신 드라이버: 어떤 프레임을 수신하고 송신할 지에 대하여 데이터를 처리 및 변환하는 역할을 합니다.
사용자는 세그먼트를 정의하고, 이로 구성된 프레임을 가상 메모리에 저장합니다. 이로써 사용자는 CIMON 사용자 프로토콜(Ethernet)의 가상 메모리와 통신 드라이버를 통하여 통신 대상 장비와 통신합니다. 통신을 할 때, 사용자는 CIMON 사용자 프로토콜(Ethernet)의 가상 메모리를 참조하여 데이터베이스에 데이터를 쓰거나 읽을 수 있습니다.
마스터/슬레이브 모드 동작 방법 |
프레임 설정 시, ‘초기 수신대기 모드’의 체크 여부로 CIMON 사용자 프로토콜(Ethernet)의 기본 통신 방법을 마스터와 슬레이브 모드 중 하나로 설정 할 수 있습니다.
본 절에서는 마스터와 슬레이브 모드에 대한 설명 및 동작 방법을 안내합니다.
마스터 모드
CIMON 사용자 프로토콜(Ethernet)은 위 그림과 같이 ‘초기 수신대기 모드’ 체크해제 시 마스터 모드로 동작합니다. 마스터 모드 설정방법은 ‘초기 수신대기 모드’를 통해서만 가능합니다.
CIMON-SCADA를 마스터 모드로 설정할 때, CIMON-SCADA는 둘 이상이 통신을 하는 상황에서 주도권을 가지며, TCP 클라이언트(ACTIVE)로 동작합니다. 이 경우 통신 대상 장비는 무조건 슬레이브 모드인 것으로 간주합니다. 마스터 모드는 통신 대상 장비에게 데이터를 먼저 요청하고, 그 요청에 대한 데이터를 기다리는 입장입니다. 마스터 모드가 요청을 보내기 전에는 통신 대상 장비로부터 데이터를 받아도 값을 가상 메모리에 쓰지 않습니다.
그렇기 때문에 마스터 모드는 송신 프레임이 정의되어 있어야 합니다. 송신 프레임은 초기 Enable 상태여야 합니다. 이 송신 프레임을 먼저 보내는 것이 상대방, 즉 슬레이브 측에 데이터를 요청한다는 의미이기 때문입니다. 프레임의 초기 Enable이 되지 않은 경우, 통신을 시작할 때 송신 프레임을 보내지 않아 통신이 불가능합니다.
사용자는 송신 프레임의 통신 주기를 설정합니다. 송신 프레임은 설정된 주기에 따라 통신을 할 대상에 전송됩니다. 송신 프레임이 여러 개 등록되어 있으면 각 송신 프레임 마다 설정된 통신 주기에 의해 반복 실행 됩니다. 달리 말하자면, 송신 프레임에 설정된 주기마다 통신 대상 장비 쪽에 데이터를 요청하는 것이라고 볼 수 있습니다.
송신 프레임은 초기 Enable 상태여야 합니다.
마스터와 마스터가 서로 통신을 시도할 때에는 통신이 불가능합니다.
슬레이브 모드
CIMON 사용자 프로토콜(Ethernet)은 위 그림과 같이 ‘초기 수신대기 모드’ 체크 시 슬레이브 모드로 동작하게 됩니다. 슬레이브 모드 설정방법은 ‘초기 수신대기 모드’를 통해서만 가능합니다. 4.3.1항의 ‘초기 수신대기 모드’에서 상세히 설명합니다.
CIMON-SCADA를 슬레이브 모드로 설정 때, CIMON-SCADA는 둘 이상이 통신을 하는 상황에서 수동적인쪽이 되며 TCP 서버(PASSIVE)로 동작합니다. 이 경우, 통신 대상 장비는 무조건 마스터 모드인 것으로 간주합니다. 슬레이브 모드는 통신 대상 장비의 요청을 받은 이후에 동작하는 모드입니다.
그렇기 때문에 슬레이브 모드는 수신 프레임이 정의되어 있어야 정상적으로 동작합니다. 수신 프레임은 초기 Enable 상태여야 합니다. 마스터 모드에서 필요하다고 요청한 프레임만 전송하며, 이를 위해서는 우선 요청사항을 수신해야 하기 때문입니다. 마스터 모드에서 보낸 프레임이 정의된 수신 프레임에 해당하지 않으면 프레임을 수신하지 않습니다.
만약 슬레이브 모드에 송신 프레임이 존재하더라도 그 프레임은 수신 프레임에 링크되어 있거나, 프레임 상태 메모리를 이용해 강제 실행한 경우가 아니면 동작하지 않습니다. 그러므로 송신 프레임의 초기 Enable 여부는 무관합니다. 슬레이브 모드에 설정된 송신 프레임이 동작하려면 우선 통신 대상 장비로부터 데이터를 수신해야 합니다. 그 후 슬레이브 모드에 등록된 모든 수신 프레임 중에서 해당하는 수신 프레임에 링크된 송신 프레임을 전송합니다. 이 때, 링크된 송신 프레임이 동작할 때는 통신 주기를 무시합니다.
수신 프레임은 초기 Enable 상태여야 합니다.
가상 메모리 |
CIMON 사용자 프로토콜(Ethernet)의 가상 메모리는 통신용 메모리, 프레임 상태 메모리, 모드감시용 메모리 총 3가지로 구성되어있습니다. 통신용 메모리는 가상 메모리에서 통신에 사용되는 데이터를 읽거나 쓰기 위하여 사용됩니다. 프레임 상태 메모리는 태그를 설정하여 이를 통해 프레임을 감시하거나 제어할 수 있습니다. 모드 감시용 메모리는 태그를 이용하여 CIMON-SCADA가 설치된 시스템의 마스터/슬레이브 모드 여부를 확인합니다.
통신용 메모리
통신용 메모리는 가상 메모리에서 통신에 사용되는 데이터를 읽거나 쓰기 위해서 사용됩니다.
통신용 메모리는 BYTE 단위의 연속된 영역으로 구성되어 있으며, 최소 0BYTE에서 최대 65533BYTE까지 지정 가능합니다. CimonD에서 데이터베이스의 아날로그, 디지털 또는 문자열 태그를 이용하여 지정합니다. BYTE 단위의 영역 어드레스는 태그를 설정할 때 I/O 어드레스에 입력합니다. 설정방법은 두 종류입니다.
디지털, 아날로그 그리고 문자열 태그의 경우 Mn(n=바이트위치)의 형태로 설정할 수 있습니다. 사용자가 지정한 데이터 형태 또는 길이에 따라 그 범위는 M0 에서 M65533까지 입니다.
첫번째 BYTE -> M0, 마지막 BYTE -> M65533
그리고 디지털 형태의 태그일 때에는 M바이트위치.비트위치 (비트위치는 63까지 표현 가능) 의 형식으로 설정합니다.
첫번째 BYTE의 첫번째 BIT -> M0.0
네번째 BYTE의 마지막 BIT -> M3.7 또는 M0.31
여덟 번째 BYTE 의 마지막 bit -> M7.7 또는 M0.63
아홉 번째 BYTE의 첫번째 BIT -> M8.0 또는 M1.56
마지막 BYTE의 마지막 BIT -> M65533.7 또는 M65531.63
프레임 상태 메모리
프레임 상태 메모리는 그림 화면에서 나타나는 프레임의 이름으로 메모리를 구분합니다. 다시 말해, 태그를 설정할 때 메모리 영역을 구분 지어 어드레스에 입력하기 위하여 프레임의 이름이 필요합니다. CIMON 사용자 프로토콜(Ethernet)은 프레임을 최대 256개까지 등록할 수 있습니다. 각 프레임 별로 6개의 상태 코드를 이용하여 감시 및 제어가 가능합니다. 상태 코드 중 감시만 가능한 코드가 있으며, 감시 및 제어까지 가능한 코드가 있습니다.
프레임 상태 감시만 가능한 상태 코드는 0, 2, 3, 4 이며, 감시 및 제어가 가능한 상태 코드는 1, 5 입니다. 각 코드 별 내용 및 기능은 하단의 표를 참조하십시오.
CimonD를 실행한 후 데이터베이스에서 태그를 설정할 때, 어드레스 영역에 F:프레임이름.상태코드 의 형태의 값을 작성합니다. 설정된 태그는 감시 또는 제어하고자 하는 프레임에 상태 코드의 기능 대로 동작합니다.
상태 코드 | 내 용 | 값 |
0 | 프레임 설정 이상 | 0: 정상 1: 이상 |
1 | 프레임 활성화(ENABLE) 또는 | 0: 비활성화(DISABLE) 1: 활성화(ENABLE) |
2 | 프레임 종류 | 0: 송신 프레임 1: 수신 프레임 |
3 | 송수신 통신 대기 상태 | 0: 대기상태 아님 1: 대기상태 |
4 | 송수신 통신 완료 상태 | 0: 완료 아님 1: 완료 |
5 | 송수신 프레임 강제 실행 | 0: 강제 실행 아님 1: 강제 실행 중 |
드라이버 설정 |
CIMON 사용자 프로토콜(Ethernet)을 사용하기 위해서는 통신 대상 장비와 CIMON-SCADA가 설치된 시스템이 이더넷(Ethernet) 통신을 지원하는지 먼저 확인하여야 합니다. 또한, 통신 대상 장비의 IP 어드레스와 포트번호, CIMON 사용자 프로토콜(Ethernet)을 사용하고자 하는 CIMON-SCADA가 설치된 시스템의 IP 어드레스를 파악해야 합니다. CIMON 사용자 프로토콜(Ethernet)을 작성할 때, 통신 대상 장비의 프로토콜에 맞출 경우 해당 프로토콜 자료가 있어야 합니다. 프로토콜을 직접 만들 경우에는 필요하지 않습니다. 만약 네트워크 통신 항목들이 일치하지 않거나 네트워크가 비정상적인 경우에는 정상적으로 통신이 되지 않습니다. CIMON-SCADA에서 사용자 프로토콜(Ethernet) 설정은 다음과 같은 순서로 진행합니다.
I/O 디바이스
통신포트
스테이션
프레임 정의
통신 프레임 확인
I/O 디바이스 설정에서 통신 드라이버를 선택합니다. 통신포트 설정을 통해 CIMON-SCADA가 설치된 시스템의 네트워크 환경을 설정합니다. 스테이션은 통신 대상 장비의 네트워크 환경을 설정합니다. 프레임 정의로 CIMON 사용자 프로토콜(Ethernet)의 프레임을 구성합니다. 최종적으로 통신 프레임 확인을 통해 정상적으로 통신이 이루어지는지 확인할 수 있습니다.
I/O 디바이스
통신 대상 장비와 통신 연결하기 위한 통신 방식 설정은 I/O 디바이스 설정에서 가능합니다. [도구] – [I/O 디바이스] 순으로 클릭한 다음에 나타나는 I/O 디바이스 설정 화면으로 진입하십시오. 해당 화면에서 ‘새 디바이스’ 항목을 선택하면 아래 다음과 같은 화면이 나타납니다.
1) 디바이스 이름 프로젝트에서 현장의 기기가 여러 종류이며 다른 통신 드라이버를 사용하는 경우, 각 디바이스를 구별할 수 있는 이름을 입력합니다. 디바이스 이름에 온점을 사용하거나 공백(SPACE 키)만 입력하여 사용할 수 없습니다. 2) 디바이스 종류 CIMON-SCADA와 접속하는 디바이스의 종류를 선택합니다. CIMON 사용자 프로토콜(Ethernet)을 사용하려면 싸이몬 사의 ㈜싸이몬 사용자 프로토콜 (Ethernet)으로 설정합니다. 3) [확인] 입력한 내용으로 새로운 디바이스를 등록합니다. [확인]을 누르면 각 디바이스 별 통신 설정 화면이 표시됩니다. 4) [취소] 수행중인 작업을 취소하고 선택 화면을 종료합니다
통신포트 설정
CIMON-SCADA가 설치된 시스템의 네트워크 통신 항목을 설정합니다. 다음 그림를 따라 통신 포트의 설정 사항을 설정할 수 있습니다.
1) 소켓 포트 번호 네트워크 통신을 위해 소켓 포트 번호를 입력합니다. CIMON-SCADA가 설치된 시스템이 이더넷(Ethernet)을 통해 다수의 다른 통신 프로토콜을 함께 사용하는 경우 각각 다른 소켓 포트 번호를 입력하여야 합니다. UDP의 경우 통신 대상 장비의 포트 번호를 입력합니다. TCP의 경우 통신 대상 장비와 공통으로 사용할 포트 번호를 입력합니다. 미리 정해진 소켓 포트 번호가 없을 경우에는 임의의 숫자를 입력하십시오.
※ 기본 설정값은 0이며 최대 65535번 까지 설정 가능합니다. 65535를 초과하는 숫자를 입력할 경우 통신 오류가 발생합니다. 소켓 포트 번호 0번부터 1023번 까지는 사용이 불가능합니다.
IP 어드레스 #1, #2
IP 어드레스#1에는 CIMON-SCADA가 설치된 시스템의 기본 IP 어드레스를 입력합니다. IP 어드레스#2는라인이중화기능을 사용하는 경우에 한해 사용합니다. 라인 이중화를 선택할경우 IP어드레스 #2에 CIMON-SCADA가 설치된 시스템의 예비 IP 어드레스를 입력합니다
스테이션
스테이션에서는 연결하고자 하는 통신 대상 장비의 네트워크 통신 항목을 설정합니다. 스테이션은 하나의 통신 드라이버로 여러 장비들과 통신하는 경우 각각의 장비를 구분하기 위해 각각 다른 이름으로 설정합니다. [스테이션 추가]로 상세 설정이 완료되면 스테이션이 등록된 것을 확인할 수 있습니다.
1) [편집] 이미 등록되어 있는 스테이션이나 프레임 정의를 편집하고자 할 때 사용합니다. 스테이션을 선택한 상태에서 ‘편집’을 누르면 스테이션 설정 화면이 나타납니다. 프레임 정의를 선택한 상태에서 [편집]을 누르면 '프레임 설정' 화면이 나타납니다. 2) [삭제] 기존에 등록되어 있는 스테이션 또는 프레임 정의를 삭제할 때 사용합니다. 먼저 삭제할 스테이션 또는 프레임 정의를 선택한 다음 [삭제] 버튼을 눌러 삭제합니다. 3) [스테이션 추가] 새로운 스테이션을 추가합니다. 이 버튼을 누르면 스테이션 설정 화면이 표시됩니다. 4) [저장] 현재까지 편집한 스테이션 내용을 저장합니다.
프레임 정의 |
스테이션 설정을 완료하면 아래 그림과 같이 설정한 이름의 스테이션이 등록되며 프레임 정의를 선택할 수 있습니다. 프레임 정의를 더블 클릭하거나 우측의 편집 버튼을 눌러 프레임을 구성할 수 있습니다.
사용자가 프레임 구성을 어떻게 설정하는지 에 따라 이더넷(Ethernet)을 사용하는 대부분의 통신 프로토콜과통신이 가능합니다 .
프레임 정의를 더블 클릭하거나 선택 후 [편집]을 누르면 다음 그림과 같은 프레임 설정 화면이 나타납니다. 각 항목에 대한 설명과 버튼의 기능에 대해 설명합니다.
1) 초기 수신대기 모드 ‘초기 수신대기 모드’는 슬레이브 모드를 의미합니다. ‘초기 수신대기 모드’를 체크하면 CIMON-SCADA가 설치된 시스템이 슬레이브 모드가 되어, CimonX 실행 시 송신 프레임이 설정되어 있더라도 해당 프레임을 송신하지 않습니다. 체크한 상태일 때, 해당 스테이션은 수신 프레임 대기 모드로 동작하는 것이 우선시 됩니다. ‘초기 수신대기 모드’를 체크해제하면 마스터 모드로 설정됩니다. 기본값은 체크 해제된 상태로, 마스터 모드입니다.
‘비주기 수신모드’는 장시간 송수신이 없어도 Timeout처리되지 않고 통신 될 수 있도록 하는 설정입니다.
‘수신 모드 중 클라이언트 접속’은 슬레이브 모드로 동작하되 실제 TCP접속은 Client로 접속하는 설정 옵션입니다.
2) 프레임 정의 화면 송/수신 프레임 설정 상태를 나타냅니다. 최대 256개의 프레임을 등록 할 수 있으며, 256개를 초과하여 등록할 수 없습니다. 세그먼트는 프레임 당 최대 10개까지 등록 가능합니다.
3) 번호 프레임 번호를 나타냅니다. 0부터 255까지 표시됩니다. 프레임은 낮은 번호부터 처리되며, 마지막 번호까지 처리한 후 다시 0부터 처리합니다. 링크 기능이 적용된 프레임은 예외입니다. 순서는 바꿀 수 없습니다. (*) 링크 기능은 4.4.2항을 참조하십시오.
4) 프레임 이름 프레임 정의 화면에서 설정한 프레임의 이름입니다 5) 방향 송신 프레임과 수신 프레임을 구분하여 표시합니다. 송신 프레임은 TX, 수신 프레임은 RX로 표시됩니다.
6) 링크 하나의 프레임에 ‘송신에 대한 수신 프레임’ 또는 ‘수신에 대한 송신 프레임’이 정의되어 있을 경우, 해당 프레임에 연결된 프레임의 이름을 보여줍니다.
7) S0~S9 프레임에 설정한 세그먼트를 세그먼트 번호 순으로 나타냅니다. 세그먼트는 최대 10개까지 표시됩니다. 각 세그먼트 별로 지정된 번호는 S0 에서 S9까지 입니다.
8) [추가] 송/수신 프레임을 추가하는 프레임 정의 화면이 나타납니다.
9) [저장] 프레임 내용을 저장하고 화면을 닫습니다.
10) [종료] 프레임 설정 화면을 닫습니다. [저장]을 누르지 않고 종료 시 별도의 경고 없이 작성했던 내용이 사라집니다.
통신 프레임이란 실제 통신에서 주고 받는 데이터 묶음의 단위를 의미합니다.
프레임의 내용은 통신 대상에 따라 달라질 수 있으며, 내용의 구성 또한 통신 대상 장비에 따라 달라질 수 있습니다. 통신 대상 장비의 프로토콜 자료에 맞춰 구성되기도 하며, 사용자의 임의로 새로운 구성을 갖기도 합니다.
1) 프레임 이름 프레임을 구별할 수 있는 이름을 입력합니다. 이름 설정에 제한이 없습니다. 그러나 공백(SPACE 키)는 사용할 수 없습니다.
2) 초기 Enable 초기 실행 시 프레임 동작 활성화(ENABLE) 상태를 정의합니다. CIMON 사용자 프로토콜(Ethernet)을 마스터 모드이고 송신 프레임의 초기 Enable이 체크되어 있을 때, 통신 시작 시 송신 프레임이 동작합니다. 반대로 초기 Enable이 체크 해제된 상태로 통신을 시작하면 통신이 되지 않습니다. 수신 프레임은 초기 Enable 여부와 상관없이 동작하지 않습니다. 동작하려면 강제 실행 또는 송신 프레임에 링크되어야 합니다. CIMON 사용자 프로토콜(Ethernet)이 슬레이브 모드이고 수신 프레임의 초기 Enable이 체크되어 있을 때, 통신 시작 시 수신 프레임이 동작합니다. 반대로 초기 Enable이 체크 해제된 상태로 통신을 시작하면 데이터가 들어오더라도 수신 프레임이 동작하지 않습니다. 송신 프레임은 초기 Enable 여부와 상관없이 동작하지 않습니다. 동작하려면 강제 실행 또는 수신 프레임에 링크되어야 합니다. 프레임의 초기 Enable은 프레임 상태 메모리를 이용하여 활성화(ENABLE)/비활성화(DISABLE)을 설정할 수 있습니다. 3) 통신 방향 프레임의 송/수신 여부를 설정합니다. 이때 설정한 통신 방향은 프레임 설정 중인 CIMON-SCADA를 기준으로 합니다. 송신 프레임은 TX, 수신 프레임은 RX로 나타냅니다.
4) 통신 주기 송신 프레임이고 초기 Enable 상태일 때 자동적으로 송신되는 주기를 설정합니다. 0초-9999.9초까지만 입력이 가능 합니다. 수신 프레임은 통신 주기를 설정할 수 없습니다.
5) 송신에 대한 수신 프레임 송신 프레임인 경우 송신을 완료한 뒤에 자동으로 수신할 프레임을 설정합니다. 링크된 프레임의 초기 Enable 체크 여부는 고려하지 않습니다.
6) 수신에 대한 송신 프레임 수신 프레임인 경우 수신을 완료한 뒤에 자동으로 송신할 프레임을 설정합니다. 링크된 프레임의 초기 Enable 체크 여부는 고려하지 않습니다.
7) [추가] 파일에 세그먼트를 추가합니다. 세그먼트는 한 프레임 당 최대 10개까지 등록 가능합니다.
8) [▲/▼] 선택된 세그먼트를 위/아래로 이동시킵니다.
초기 Enable
초기 Enable은 프레임 정의에서 설정 가능합니다. 체크 시 활성화(ENABLE)하며 체크 해제 시 비활성화(DISABLE)합니다. CimonX를 실행하여 통신을 시작할 때 프레임을 활성화(ENABLE)하는지에 대한 여부를 의미합니다.
CIMON 사용자 프로토콜(Ethernet)이 마스터 모드인 경우:
송신 프레임의 초기 Enable이 체크되어 있으면 통신 시작 시 송신 프레임이 동작합니다.
송신 프레임의 초기 Enable이 체크 해제되어 있으면 통신 시작 시 통신이 되지 않습니다.
수신 프레임은 초기 Enable 여부와 상관없이 동작하지 않습니다. 동작하려면 강제 실행 또는 송신 프레임에 링크 되어야 합니다.
CIMON 사용자 프로토콜(Ethernet)이 슬레이브 모드인 경우:
수신 프레임의 초기 Enable이 체크되어 있으면 통신 시작 시 수신 프레임이 동작합니다.
수신 프레임의 초기 Enable이 체크 해제되어 있으면 통신 시작 시 데이터가 들어오더라도 수신 프레임이 동작하지 않습니다.
송신 프레임은 초기 Enable 여부와 상관없이 동작하지 않습니다. 동작하려면 강제 실행 또는 수신 프레임에 링크 되어야 합니다.
프레임 상태 감시 및 제어 어드레스 설정에서 미리 등록한 태그를 이용해 CimonX에서도 프레임 활성화(ENABLE)/비활성화(DISABLE) 설정을 할 수 있습니다.
프레임 상태 감시 및 제어 상태코드 1은 프레임 활성화(ENABLE)/비활성화(DISABLE) 상태를 감시 및 제어할 수 있는 상태코드로, 태그 값이 0이면 비활성화(DISABLE), 1이면 활성화(ENABLE)를 나타냅니다.
I/O디바이스(상태를 감시할 프레임이 속한 디바이스)와 I/O어드레스(상태를 감시할 프레임과 상태코드)를 설정하여 프레임 활성화(ENABLE)/비활성화(DISABLE) 상태를 감시 및 제어합니다.
CimonX 실행 후 데이터베이스를 통하여 위 그림과 같이 설정한 태그 값을 확인하면 태그 값이 1이므로, 프레임의 상태가 활성화(ENABLE)된 것을 알 수 있습니다.
CimonX에서 위에서 설정한 태그 값을 0으로 설정 시 드라이버 명령식으로 프레임의 비활성화(DISABLE) 여부를 확인 할 수 있습니다.
세그먼트 정의 |
위와 같은 프레임 정의 화면에서 추가 버튼을 누르면 아래와 같은 세그먼트 정의 화면이 나타납니다. 아래의 화면에서 각각의 프레임 마다 세그먼트를 등록하고 편집할 수 있습니다.
CIMON 사용자 프로토콜(Ethernet)에서 세그먼트란 통신 프레임을 구성하는 기초 단위를 의미합니다. 세그먼트에 해당하는 예로는 헤더, 바디, 테일, 스테이션 번호, 메시지 등이 있습니다.
CIMON 사용자 프로토콜(Ethernet) 에서는 통신 대상의 프로토콜에 맞게 사용자가 세그먼트를 작성하여 통신 프레임을 구성하거나, 보안을 위하여 사용자의 임의대로 세그먼트를 작성할 수 있습니다.
세그먼트정의설정에서는각각의세그먼트를작성합니다. CIMON 사용자 프로토콜(Ethernet)에서제공하는세그먼트종류에는고정세그먼트, 메모리 링크 세그먼트, BCC 세그먼트가있습니다.
고정값 세그먼트
고정값 세그먼트는 세그먼트 데이터의 크기, 데이터 값을 고정하여 송/수신 하고자 할 때 사용합니다. 예로 헤더, 테일 등의 통신 프레임 구조에서 프레임 시작과 끝의 구조를 갖추는데 사용됩니다. 고정 세그먼트에서의 입력 요소로는 세그먼트의 길이, 데이터 형식, 데이터 값이 있습니다. 데이터 형태로는 바이너리 또는 ASCII를 지원합니다.
1. 세그먼트
세그먼트 유형이 고정 값일 때에 세그먼트 길이는 고정 데이터의 길이(바이트)단위를 뜻합니다. 세그먼트 길이는 데이터 값의 입력 값에 따라 자동으로 길이를 계산하지만 사용자의 입력 방식에 따라 입력한 데이터 값과 다를 수 있기에 세그먼트 정의를 완료 후, 입력한 데이터 값이 맞게 되었는지 다시 한번 확인하여 주십시오.
2. 데이터 값
데이터 형식은 바이너리와 ASCII가 있습니다. 데이터 값은 고정으로 송/수신될 고정 값 데이터를 입력합니다. 여기서 입력된 값에 따라 세그먼트 길이(바이트)가 자동적으로 설정됩니다.
3. 동작 설명
송신 프레임에 고정 세그먼트를 사용하는 경우에는 등록된 세그먼트의 데이터 값을 지정한 데이터 길이, 데이터 형식, 데이터 값으로 송신합니다.
수신 프레임에 고정 세그먼트를 사용하는 경우에는 등록된 세그먼트의 데이터 길이, 데이터 형식, 데이터 값을 검사합니다.