알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

HSMS 프로토콜 이란 본문

산업용 프로토콜/secs gem 프로토콜 개념

HSMS 프로토콜 이란

백곳 2017. 8. 28. 18:04

HSMS[High Speed SECS Message Service]


sesc-I 을 대체 하기 위해서 만들어진 프로토콜입니다. 


시대가 변하면서  RS-232 보다 더빠른 ehternet 기반으로한 TCP/IP 프로토콜을 사용하여 통신을 하는 시대가 됬습니다. 


반도체 설비들도 더 빠른 통신을 필요로 하였습니다. 


그래서 TCP/IP 프로토콜 위에 HSMS 프로토콜을 얻혀 SESC-I 을 대체 하는것으로 표준이 만들어 졌습니다. 


먼저 secs-I 위에 secs-II 를 다시 한번 구조를 보겠습니다. 



영역

크기

설명

A

1byte

B영역과 C영역의 데이터 크기가 몇바이트 인지 설정

B

10byte

Header Structure 에서 상세히 설명 기본 개념은 데이터의 흐름 제어 

C

0~244Byte

DATA 를 집어 넣음  

D

2byte

Check sum 으로 데이터에 노이즈 없이 잘들어 왔는지 확인 작업


여기서 C영역은 Secs-II의 영역입니다. 


HSMSsecs-II 영역은 그대로 두고 A,B,D secs-I 의 부분만 대체 하게 됩니다. 



연결도 



HSMS 상태 변경 로직 


HSMS 에서는 통신으로 뭔가 동작을 하기위해서는 먼저 선절차가 있다. 


우리가 HSMS 문서를 보면 

위와 같은 시퀀스 정보를 볼수 있는데 이에 대한 설명으로적혀 있는것은 



   Current State Current State Description Comment

1

 

 

TCP/IP Communication 준비

2

Not Connected

TCP/IP Connection을 초기화할 준비는 되어 있으나, 아직 Connection은되어 있지 않은 상태

 

3

Connected

TCP/IP Connection이 되어 있는 상태

 

4

Not Selected

Connected상태이지만,HSMS Session이 Establish 되어 있지 않는 상태

Data Message Exchange 허락상태

5

Selected

Connected 상태이며, 적어도 한개의 Session이Establish되어 있는 상태이고 이상태가 HSMS의
Normal "Operating"상태 이다

HSMS Communication의 끝

6

Not Selected

 

 



통신을 하기위한 최종 목적은 selected 까지 상태를 변경는것입니다.                                                                      


그 과정에 사용 되는 HSMS 통신을 살펴 보겠습니다. 


1~3 까지 과정은 소켓통신을 통해 TCP/IP 통신 접속 상태를 말합니다. 


중요한것은 4번 부터 입니다.  


HSMS 헤더 분석 하기 



영역

사이즈

내용

A

4byte

B+C 데이터 길이 

B

10byte

메시지 헤더

C

0~4G Bytes

데이터 SECS-II 부분


여기서 중요한 부분은 B 영역 입니다 .


또한 SECS-I 에 있던 D 부분 check SUM 부분은 사라졌습니다. 


그이유는 TCP/IP 프로토콜에서 CHECK_SUM 을 해주기 때문에 굳히 HSMS 에서 할필요가 없기 때문에 빠졌습니다. 

B영역


B영역의 메세지에는 Control Message 메세지와  Data Message 가 있습니다. 


Control Message



상태를 제어하는데 사용되는 통신 입니다. 


Data Message



secs-II 데이터를 통신하기 위한 헤더를 만듭니다. 


Control Message B영역 구조



순서

이름

내용

0~1

sessionID

DEVICE ID

2

Header Byte 2

0이 콘트롤 메시지를 의미함 

3

Header Byte 3

0이 콘트롤 메시지를 의미함 

4

Ptype

0 은 secs-II 사용을 의미함

5

Stype

현 상태를 어떻게 할지를 결정함 (1~9) [콘트롤 메세지일때만 의미 있음]

6~9

Systembyte

통신 고유 ID 값으로 통신할때마다 고유값을 넘겨 주면 됩니다.



Procedure Symbol Description
Select Select.req  → HSMS communication 을 만들 때 사용
← Select.rsp CONNECTED state에서 가능(maybe in NOT SELEDTED)
Deselect Deselect.req → 양방합의에 의한 통신 종료 수행 
← Deselect.rsp  SELECTED state에서만 가능, Not Selected 상태로 전이 
Link Test LinkTest.req → Connection 유지 확인 절차 
← LinkTest.rsp CONNECTED state에서는 언제나 가능 
Separate Separate.req → 일방적으로 HSMS Communication을 종료하는 경우에 사용
SELECTED state에서 가능
Procedure이 정상적으로 되면, Selected->Not Selected로 바뀜.
Reject Reject.req → When an inappropriate message is received 





Data Message B영역 구조




순서

이름

내용

0~1

sessionID

DEVICE ID

2

Header Byte 2

stream 번호를 의미함

3

Header Byte 3

Funtion 번호를 의미함

4

Ptype

0 은 secs-II 사용을 의미함

5

Stype

0 은 DATA 을 의미함 

6~9

Systembyte

통신 고유 ID 값으로 통신할때마다 고유값을 넘겨 주면 됩니다.



일반적인 통신 시나리오 



active , passive 모드 


HSMS 에서 active 와 passive 모드가 존재합니다. 


위의 시나리오를 보면 알겠지만 Passvie가 서버 이며 active 가 client 로 보면 되겠습니다. 


일반적으로 설비가 Passvie 모드를 사용합니다. 



Comments