ModBus TCP/RTU 슬레이브는 ModBus 프로토콜을 통해 외부 시스템과 인터페이스에 사용 됩니다. 대부분의 시스템이 ModBus 프로토콜을 지원하기 때문에 연계 시 가장 쉽고 높은 범용성을 제공 합니다. 모드버스 사용시 설정 법은 다음과 같습니다.

지원 오브젝트

데이터 익스체인지의 지원하는 모드버스 오브젝트는 다음과 같습니다.

오브젝트

주소 별 데이터 크기

데이터 속성

용도

Discreate Input

Bit

Read

상태 값(0,1) 읽기

Coil

Bit

Read/Write

상태 값(0,1) 읽기/쓰기

Input Register

16Bit Word

Read

아날로그 값 읽기

Holding Register

16Bit Word

Read/Write

아날로그 값 읽기/ 쓰기


가상 디바이스 추가

1. 데이터 익스플로어에서 '가상 디바이스' 항목을 선택 후 추가 합니다.

2. 프로토콜 타입에서 'Modbus TCP Slave' 혹은 'Modbus RTU Slave'를 선택 합니다.

3. 모드버스 그룹에서 관련 설정 항목을 입력 합니다.

(1) 디바이스 주소

가상 디바이스의 슬레이브 주소(1~255)를 입력 합니다.

(2) 잘못된 주소 요청시 정상 응답

외부 시스템에서 읽기 요청 시 가상 디바이스에 없는 주소(Address,번지)를 요청 했을 때 처리 방법 입니다.

  • 체크한 경우 : 없는 주소의 데이터 요청 시 해당 번지의 값을 0으로 설정해 응답 합니다.
  • 체크하지 않은 경우 : 없는 주소의 데이터 요청 시 'Illegal address' 오류를 발생 합니다.

기타 항목은 '가상 디바이스 설정' 을 참고하여 입력 합니다.


가상 상태 포인트 추가

  • 상태 포인트나 아날로그 포인트를 연결해 연결한 포인트 값을 'Coil' 혹은 'Discrete Input'과 같은 Modbus 형식으로 외부 시스템과 연계 합니다.
  • 외부 시스템에서 디지털 (0,1) 형식으로 값을 읽고 쓰는데 사용 합니다.

 

(1) 데이터 주소

데이터의 주소를 입력 합니다.  (보통 0부터 입력 합니다)

(2) 데이터 속성

교환할 데이터 형식을 지정 합니다.

  • Read/Write (Coil) : 외부 시스템에서 포인트 값을 읽고 쓸 수 있습니다.
  • Read (Discrete Input) : 외부 시스템에서 포인트 값을 읽을 수만 있습니다.

기타 항목은 '가상 상태 포인트 설정' 을 참고하여 입력 합니다.


입력 예)

주소 (Address)는 영역 별(Discrete Input/Coil)로 고유해야 합니다.


가상 아날로그 포인트 추가

  • 상태 포인트나 아날로그 포인트를 연결해 포인트 값을 'Input Register' 혹은 Holding Register'과 같은 Modbus 형식으로 외부 시스템과 연계 합니다.
  • 외부 시스템에서 아날로그 형식으로 값을 읽고 쓰는데 사용 합니다.
  • 연계에 사용할 자료 형식으로 정수형 (Int16, Int32) 혹은 실수형 (Float32, Float64)등의 자료 형식을 선택 할 수 있습니다.


(1) 데이터 주소

레지스터 시작 주소(번지, Address)를 입력 합니다. (보통 0부터 입력 합니다)

(2) 데이터 속성

교환할 데이터 형식을 지정 합니다.

  • Read/Write (Holding Register) : 외부 시스템에서  포인트 값을 읽고 쓸 수 있습니다.
  • Read (Input Register) : 외부 시스템에서 포인트 값 읽기만 가능 합니다.

(3) 데이터 타입

데이터 자료 형식 입니다. 모든 자료형은 빅 엔디안 (Big Endian) 포맷 입니다.

자료형

데이터 크기

레지스터 크기(개)

설명

Int16

2Byte (16Bit)

1

16비트 정수형 (-32,768 ~ 32,767)

UInt16

2Byte (16Bit)

1

16비트 부호 없는 정수형 (0 ~ 65,535)

Int32

4Byte (32Bit)

2

32비트 정수형 (-2,147,483,648 ~ 2,147,483,647)

UInt32

4Byte (32Bit)

2

32비트 부호 없는 정수형 (0 ~ 4,294,967,295)

Int64

8Byte (64Bit)

4

64비트 정수형 (-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)

UInt64

8Byte (64Bit)

4

64비트 부호 없는 정수형 (0 ~ 18,446,744,073,709,551,615)

Float32

4Byte (32Bit)

2

32비트 실수형 , IEEE754  (3.4E+/-38(7개의 자릿수)

Float64

8Byte (64Bit)

4

64비트 실수형 , IEEE754 Double  (1.7E+/-308(15개의 자릿수)

포인트 주소 설정 시 자료형 크기에 맞게 레지스터 시작 번지를 입력 합니다. (Int32는 레지스터 2개를 사용 합니다.)

기타 항목은  '가상 아날로그 포인트' 설정을 참고하여 입력 합니다.


입력 예)

주소 (Address)는 영역 별(Holding Register / Input Register)로 고유해야 합니다.