Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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

프로토콜

CIMON HMI Ethernet 프로토콜

지원/미지원 기능

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)의 기본 통신 방법을 마스터와 슬레이브 모드 중 하나로 설정 할 수 있습니다.

본 절에서는 마스터와 슬레이브 모드에 대한 설명 및 동작 방법을 안내합니다.

마스터 모드

  • 지원 태그

  • 지원 태그

  • 지원 태그

  • No labels