프레임 구조

CIMON PLC Ethernet 모듈의 Application Frame 구조

CIMON PLC Ethernet 모듈의 Application Frame 구조

Application  Data  Format

Application Header Format

Application Instruction Format

Master Frame Format(PC측)

Master Frame Format(PC측)

ID

Frame No.

Cmd

Res.

Length

Data

Check

Sum

항 목

크기(Byte)

내 용

ID

9

Company ID

Frame No.

1

프레임 번호

Cmd

1

명령어

Res.

1

예약 영역

Length

2

Data 필드의 크기 표시

Data

1456

Data영역

Check Sum

2

데이터의 정확성 검사

 

상세 설명

ID : 9 Byte로 구성된 문자열

 

Frame NO. : 0 ~ 127 범위의 값을 갖는 1 Byte Data로서, Master 측에서 관리하는 프레임 번호입니다.  번호의 시작은 범위내의 어떤 값이어도 관계없지만, 새로운 프레임을 전송할 때는 반드시 이전 프레임에 부여된 번호에서 ‘1’을 증가한 값이어야 합니다. Slave 측에서는 이전 프레임에 대한 응답 프레임이 전송되지 않은 상태에서 동일한 번호의 프레임이 중복 수신되면 이 프레임은 무시 됩니다.

 

Cmd : Master에서는 다음의 표와 같은 1 Byte 크기의 명령어를 사용할 수 있으며, 각 명령어에 따라 ‘Data’ 필드의 포맷이 결정됩니다.

Cmd    Code

기 능

설 명

52h

Word Block Read

데이터를 WORD 단위로 읽어옵니다.

57h

Word Block Write

데이터를 WORD 단위로 씁니다.

72h

Bit Block Read

데이터를 BIT 단위로 읽어옵니다.

77h

Bit Block Write

데이터를 BIT 단위로 씁니다.

 

Res : Reserved. (1 Byte, 00h) – 예약 영역

 

Length : ‘Data’ 필드의 크기를 표시하는 2 Byte의 값입니다. (16진수)

 

Check-Sum : 데이터 정확성을 검사하기 위한 용도로 사용되며 데이터를 하나씩 받아들여 합산한 다음 이를 최종적으로 들어온 검사합계와 비교하여 착오가 있었는지 체크합니다.

2 Byte의 값으로, 전체 프레임을 Byte 단위로 ‘Binary Sum’을 한 뒤 그 결과값 중 하위 2 Byte를 사용합니다.

 

 

Slave Frame(Ethernet 모듈 측)

Slave Frame(Ethernet 모듈 측)

ID

Frame No.

Cmd

Res.

Length

Data

Check

Sum

ID : 9 Byte로 구성된 문자열  KDT_PLC_S

 

Frame No. : 1 Byte의 데이터로서, Master로부터 수신 된 명령 프레임의 번호에 128을 더한 값을 사용합니다. 이 응답 프레임을 수신한 Master는 명령 프레임에 사용한 프레임 번호로부터 응답 프레임의 프레임 번호를 예상할 수 있으므로, 이것을 이용하여 프레임의 정상 여부를 확인할 수 있습니다.

 

Cmd : Slave에서는 다음의 표와 같은 1 Byte 크기의 명령어를 사용할 수 있으며, 각 명령어에 따라 ‘Data’ 필드의 포맷이 결정됩니다.

Cmd  Code

기 능

설 명

52h

Word Block Read

데이터를 WORD 단위로 읽어옵니다.

72h

Bit Block Read

데이터를 BIT 단위로 읽어옵니다.

41h

ACK Resp.

 

Res. : Reserved. (1 Byte, 00h) – 예약 영역

 

Length : ‘Data’ 필드의 크기를 표시하는 2 Byte의 값입니다. (16진수)

 

Check-Sum : 데이터 정확성을 검사하기 위한 용도로 사용되며 데이터를 하나씩 받아들여 합산한 다음 이를 최종적으로 들어온 검사합계와 비교하여 착오가 있었는지를 체크합니다.

2 Byte의 값으로, 전체 프레임을 Byte 단위로 ‘Binary Sum’을 한 뒤 그 결과값 중 하위 2 Byte를 사용합니다.