Instromet MODBUS ASCII 는 벨기에의 Instromet International 사에서 개발/판매하는 GAS Measurement Corrector 장비 ( 793-1K, … ) 등과 통신을 위한 드라이브이다.
<그림 1>은 Instromet MODUBS ASCII 통신 드라이브를 사용할 때의 통신설정 예이다.
<그림 1> Instromet MODUBS ASCII 드라이브의 통신설정 예
<그림 1>의 DEVICE 설정은 연결된 통신포트(COM1), 통신속도( 4800 ), Parity Bit ( 0 ), Data Bit ( 8 ), Stop Bit ( 1 ), 순으로 장비에 설정된 값을 입력한다.
Instromet 장비의 통신속도 등의 설정은 앞면 조작스위치로 설정할 수 있다. ( 3절 참조 )
또한 옵션 부 에는 DWORD/FLOAT 등의 값을 읽을 때 읽을 크기를 WORD 단위 비 사용여부( 1 = 사용안함, 0 = WORD 단위로 계산, 기본 : 0 )를 입력한다.
참고) Instromet 793-1K 등은 MODBUS ASCII 프로토콜로 통신하는 장비이다.
MODBUS ASCII 프로토콜은 MODBUS 프로토콜과 프레임 구조 등은 동일하고 통신코드가 ASCII 라는 것이 다르다.
읽기 설정 방법
READ | 스테이션 | 읽을 종류 | 읽을 시작주소 | 메모리 저장위치 | 읽는 개수 |
DOUBLE, | 1, | 3fd, | 1, | 0, | 20, |
FLOAT, | 1, | 3f, | 101, | 20, | 8, |
DWORD, | 1, | 3, | 117, | 0, | 3, |
1) 스테이션 : 장비의 스테이션 (ID) 번호. (1 ~ 247)
2) 읽을 종류 : 읽을 데이터 종류를 지정.
3 – WORD 단위의 데이터 읽기,
3D – DWORD 단위의 데이터 읽기 ( LO, HI 데이터 순 ),
3d – DWORD 단위의 데이터 읽기 ( HI, LO 데이터 순 ),
3M – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 읽기 ( LO, HI 데이터 순 ),
3m – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 읽기 ( HI, LO 데이터 순 ),
3F2 – FLOAT 단위의 데이터 읽기 ( LO, HI 데이터 순 ),
3F – FLOAT 단위의 데이터 읽기 ( LO, HI 데이터 순 ),
3f – FLOAT 단위의 데이터 읽기 ( HI, LO 데이터 순 ),
3fd – DOUBLE 단위의( 8 Byte ) 데이터 읽기 ( HI, LO 데이터 순 ),
3B – BYTE 단위의 데이터 읽기,
1X – 16 BIT 단위의 데이터 읽기.
3) 읽을 시작주소 : 읽을 시작번지. (modbus 주소 )
4) 메모리 저장 위치 : 읽어온 상태 값을 저장할 버퍼위치.
5) 읽는 크기: 읽을 크기.
3 – WORD 단위 개수,
3D, 3d, 3M, 3m, 3F, 3f – 2 WORD 단위 개수,
3fd – 4 WORD 단위 개수,
3B – BYTE 단위 개수,
1X – 읽을 크기 x 16 Bit 단위 개수.
주의) Instromet 793-1K 장비는 DOUBLE, FLOAT, WORD의 3가지 종류의 데이터가 있다.
그러므로 읽기 설정 시 위의 예처럼 3가지 데이터를 구분해서 읽을 필요가 있다.
Instromet 793-1K 장비의 MODBUS 번지 및 내용은 <표 1>과 같다.
MODBUS 번지 |
내용 |
데이터 형식 |
단위 |
1 ~ 4 |
V
|
DOUBLE ( 64 bit ) |
m3 |
5 ~ 8 |
Vb-c
|
||
9 ~ 12 |
Vn Main |
||
13 ~ 16 |
|
Kcal |
|
17 ~ 20 |
M
|
Tonnes |
|
21 ~ 24 |
V Current Day |
m3 |
|
25 ~ 28 |
Vb-c Current Day |
||
29 ~ 32 |
Vn Current Day |
||
33 ~ 36 |
E Current Day |
Kcal |
|
37 ~ 40 |
M Current Day |
Tonnes |
|
41 ~ 44 |
V Current Hour |
m3 |
|
45 ~ 48 |
Vb-c Current Hour |
||
49 ~ 52 |
Vn Current Hour |
||
53 ~ 56 |
E Current Hour |
Kcal |
|
57 ~ 60 |
M Current Hour |
Tonnes |
|
61 ~ 64 |
V Previous Day |
m3 |
|
65 ~ 68 |
Vb-c Previous Day |
||
69 ~ 72 |
Vn Previous Day |
||
73 ~ 76 |
E Previous Day |
Kcal |
|
77 ~ 80 |
M Previous Day |
Tonnes |
|
81 ~ 84 |
V Previous Hour |
m3 |
|
85 ~ 88 |
Vb-c Previous Hour |
||
89 ~ 92 |
Vn Previous Hour |
||
93 ~ 96 |
E Previous Hour |
Kcal |
|
97 ~ 100 |
M Previous Hour |
Tonnes |
|
101 ~ 102 |
Qb |
FLOAT ( 32 bit ) |
m3/hr |
103 ~ 104 |
Qn |
||
105 ~ 106 |
QE |
Kcal/hr |
|
107 ~ 108 |
QM |
Tonnes/hr |
|
109 ~ 110 |
Pressure |
Kg/cm2 |
|
111 ~ 112 |
Temperature |
Deg C |
|
113 ~ 114 |
Z Factor |
|
|
115 ~ 116 |
Z base |
|
|
117 |
Status Bit Code ( <표 2> 참조 ) |
WORD ( 16 bit ) |
|
118 |
|
||
119 |
|
<표 1> Instromet 793-1K 장비의 MODBUS 번지 및 내용
MODBUS 번지 | 비트위치 |
내용 |
비고 |
117 | 0 번 비트 ( LSB ) |
Any Alarm |
ON = Alarm, Fault 등
OFF = 정상 |
1 번 비트 |
Flow Computer Fault |
||
2 번 비트 |
Pulse Output Alarm |
||
3 번 비트 |
Print Alarm |
||
4 번 비트 |
Calibrate Alarm |
||
5 번 비트 |
사용안함 |
||
6 번 비트 |
Qb High Alarm |
||
7 번 비트 |
Qb Low Alarm |
||
8 번 비트 |
Blade Failure < HF/LF |
||
9 번 비트 |
Blade Failure > HF/LF |
||
10 ~ 15 번 비트 ( MSB ) |
사용안함 |
||
118 | 0 번 비트 ( LSB ) |
Pressure Max |
ON = Max, Min, High, Low, Fault 등
OFF = 정상 |
1 번 비트 |
Pressure Min |
||
2 번 비트 |
Pressure High |
||
3 번 비트 |
Pressure Low |
||
4 번 비트 |
Pressure Transmitter Fault |
||
5 번 비트 |
Pressure Transmitter Comms |
||
6 ~ 7 번 비트 |
사용안함 |
||
8 번 비트 |
Temperature Max |
||
9 번 비트 |
Temperature Min |
||
10 번 비트 |
Temperature High |
||
11 번 비트 |
Temperature Low |
||
12 번 비트 |
Temperature Transmitter Fault |
||
13 번 비트 |
Temperature Transmitter Comms |
||
14 ~ 15 번 비트 ( MSB ) |
사용안함 |
||
119 | 0 번 비트 ( LSB ) |
Hs Max |
ON = Max, Min, High, Low 등
OFF = 정상 |
1 번 비트 |
Hs Min |
||
2 번 비트 |
Hs High |
||
3 번 비트 |
Hs Low |
||
4 번 비트 |
Hi Max |
||
5 번 비트 |
Hi Min |
||
6 번 비트 |
Hi High |
||
7 번 비트 |
Hi Low |
||
8 번 비트 |
CO2 Max |
||
9 번 비트 |
CO2 Min |
||
10 번 비트 |
CO2 High |
||
11 번 비트 |
CO2 Low |
||
12 번 비트 |
d Max |
||
13 번 비트 |
d Min |
||
14 번 비트 |
d High |
||
15 번 비트 ( MSB ) |
d Low |
<표 2> Instromet 793-1K 장비의 Status Bit Code 내용
<그림 1> 프로토콜 옵션부의 아이콘을 클릭하면 <그림 2>의 대화상자가 나타나는데 여기서도
READ 스케쥴을 작성할 수 있다.
<그림 2> Instromet MODUBS ASCII 드라이브의 통신 읽기 설정 대화상자
<그림 2>의 ,
,
버턴과 리스트 박스를 이용하여 READ 스케쥴을 작성한다.
<그림 2>의 ‘Don’t Use WORD Unit Read Size’ 영역에 DWORD/FLOAT 등의 값을 읽을 때 읽을 크기를 WORD 단위 비 사용여부를 설정할 수 있다.
<그림 3> Instromet MODUBS ASCII 드라이브의 통신 읽기 설정 READ 추가/편집 대화상자의 예
<그림 3>는 <그림 2>의 대화상자에서 READ 스케쥴을 추가 또는 편집할 때 나타나는 대화상자이다.
출력은 SCAN File과 상관없이 컨트롤러의 직접 ADDRESS에 쓴다.
디지털 출력 설정법
디지털 출력으로 장비의 상태 값(reset 등)을 설정하거나 Relay 등을 제어할 수 있다.
디지털 출력 TAG 설정 시 필요한 요소는 아날로그 출력태그 설정요소와 동일하고 출력 값만 다르다.
아날로그 출력 설정법
아날로그 출력은 BYTE/WORD/DWORD/FLOAT 값을 메타에 쓰는 것을 말한다.
아날로그 출력 TAG 설정 시 필요한 요소
1) PORT 연결된 PORT 번호.
2) STATION 장비의 Station( ID )번호. ( 1 ~ 247 )
3) Address 출력 번지. 10진수 단위의 출력번지. (Modbus 번지 )
단 Extra1 이 TIME, TIME3 일 때 : 상위 2자리 = 년, 하위 2자리 = 월
4) Extra1 출력하고자 하는 데이터 종류.
16 – WORD 단위의 데이터 쓰기,
16D – DWORD 단위의 데이터 쓰기 ( LO, HI 데이터 순 ),
16d – DWORD 단위의 데이터 쓰기 ( HI, LO 데이터 순 ),
16M – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 쓰기 ( LO, HI 데이터 순 ),
16m – HI WORD x 10000 + LO WORD 형식의 DWORD 데이터 쓰기 ( HI, LO 데이터 순 ),
16F2 – FLOAT 단위의 데이터 쓰기 ( LO, HI 데이터 순 ),
16F – FLOAT 단위의 데이터 쓰기 ( LO, HI 데이터 순 ),
16f – FLOAT 단위의 데이터 쓰기 ( HI, LO 데이터 순 ),
16fd – DOUBLE 단위의 데이터 쓰기 ( HI, LO 데이터 순 ),
16B – BYTE 단위의 데이터 쓰기,
TIME – 기존 모델 날짜/시간 쓰기,
TIME1 – 기존 모델의 컴퓨터 날짜/시간을 장비 날짜/시간과 동기화,
TIME2 – 컴퓨터 날짜/시간을 장비 날짜/시간과 동기화,
TIME3– 날짜/시간 쓰기.
5) Extra2 사용안함.
단 Extra1 이 TIME, TIME3 일 때 : 상위 2자리 = 일, 하위 2자리 = 시
Extra1 이 TIME, TIME3 일 때 출력 값 : 상위 2자리 = 분, 하위 2자리 = 초
예1) Station : 1 Address : 0100 Extra1 : 16f, EXTRA2 : 빈칸으로 설정하고 아날로그 출력을 하면 1번 Station Instromet 장비의 100 Modbus 번지 값을 설정한 값으로 변경할 수 있다.
예2) Station : 1 Address : 0102 Extra1 : 16f, EXTRA2 : 빈칸으로 설정하고 아날로그 출력을 하면 1번 Station Instromet 장비의 0102 Modbus 번지 값을 설정한 값으로 변경할 수 있다.
예3) Station : 1 Address : 0305 Extra1 : TIME, EXTRA2 : 2716 로 설정하고
2545 아날로그 값을 출력하면 1번 Station Instromet 장비의 날짜/시간을
예4) Station : 1 Address : 0305 Extra1 : TIME3, EXTRA2 : 2716 로 설정하고
2545 아날로그 값을 출력하면 1번 Station Instromet 장비의 날짜/시간을
예5) Station : 1 Address : 0000 Extra1 : TIME2, EXTRA2 : 빈칸으로 설정하고 아날로그 출력을 하면 1번 Station Instromet 장비의 날짜/시간을 현재 컴퓨터 시간과 동기화(같게) 시킬 수 있다. ( Modbus 출력번지는 01F4h 즉 500번지로 고정 : 신규모델 )
기본전원 연결
<그림 4>의 전원단자에 24V DC 전원을 연결한다. (보통 24V DC UPS 와 연결 : <그림 5> 참조 )
<그림 4> Instromet 793-1K 장비의 뒷면 단자대
통신 케이블 연결
<그림 4>의 SKT1 단자에 일반 RS-232C 시리얼 통신 케이블을 연결한다.
통신속도 설정
Instromet 장비의 ( 793-1K의 경우 ) 통신속도는 앞면 조작스위치로 ( <그림 5> 참조 ) 다음과 같은 순서로 설정할 수 있다.
1) 운전상태 설정 열쇠를 ‘EDIT’ 또는 ‘DATA’ 에 위치시킨다.
2) 숫자 키 패드의 ‘L’ 키를 누른다.
3) 숫자 키 패드로 ‘5004’ 를 입력한다.
4) ‘E’ 키를 누르면 Communication port 1 을 설정할 수 있는 내용이 액정화면이 표시된다.
5) 키 패드의 위, 아래 방향키로 Baud, Data, Parity, MB id 등의 설정 메뉴로 이동한다.
6) 설정할 메뉴로 이동 후 ‘E’ 키를 누른다.
7) Baud, Data, Parity 메뉴는 위, 아래 방향키로 통신속도를 선택하고, MB id 는 키 패드의 숫자를 눌러 id를 입력한다.
8) 선택 또는 입력을 완료한 후 ‘E’ 키를 다시 누르면 설정이 완료된다.
참고) 설정 가능한 통신속도의 인자 및 범위는 다음과 같다. ( 굵은 글자 : 기본 값 )
Baud : 1200, 2400, 4800, 9600
Data : 8Bit, 7 Bit
Parity : None, Even, Odd
MB id : 1 ~ 247
<그림 5> Instromet 793-1K 장비와 ( 위쪽 ) UPS ( 아래쪽 )의 모습