시리얼 코드를 이용한 KRO-4000 제어 방법


측정 및 제어 분야에서 Readout 이란 측정 장치로부터 판독값을 제공받아 그 정보를 표시하고 제어할 수 있는 장치를 말합니다.


인포라드에서 제공하는 KRO-4000은 MFC에 안정적으로 전원을 공급하고 설정값(Set Point)과 유량값(Flow Value)을 표시해 정확하게 제어할 수 있는 Readout 장치입니다.


KRO-4000은 컴퓨터와 연결이 가능하며, 소프트웨어나 시리얼 코드를 이용해 작동할 수 있습니다.


이번 시간에는 시리얼 코드를 이용해 KRO-4000을 작동하는 방법에 대해 알아보겠습니다.

 

기본 화면과 설정


시리얼 통신을 하기 위해서 먼저 KRO-4000과 컴퓨터를 연결한 후, Serial 통신 소프트웨어를 실행합니다.

시리얼 통신 소프트웨어는 SerialCom 소프트웨어를 기준으로 설명하겠습니다.


컴퓨터를 이용해 KRO-4000을 제어하기 위한 SerialCom 소프트웨어의 화면



SerialCom 소프트웨어의 기본 화면은 위의 사진과 같습니다.

왼쪽에는 시리얼 코드를 입력하고 결과값을 출력하는 공간이 있고, 왼쪽은 포트 설정으로 구성되어 있습니다.


오른쪽의 포트 설정에서는 실제로 연결된 시리얼 포트를 선택해 주는 것 외에는 모두 사진과 동일하게 선택해야합니다.

포트 설정 후에는 Open 버튼을 눌러 포트를 열여줘야 연결됩니다.


시리얼 코드의 데이터는 16진수로 입력해야 하며, 16진수로 변환하지 않을 경우 출력값이 원하는대로 출력되지 않거나 설정값에 오류가 생길 수 있습니다.


시리얼 코드는 2개의 문자들로 구성되며, 문자들의 사이는 스페이스바로 한칸을 띄고 입력해야 합니다.

 

입력 및 출력 프로토콜과 체크섬(Checksum)


SerialCom 소프트웨어에 KRO-4000의 작동 시리얼 코드를 입력한 예시



위의 사진은 시리얼 코드를 입력한 예시입니다.


KRO-4000에서 입력할 수 있는 시리얼 코드는 총 16가지가 있으며, 위에 언급한 것처럼 문자들의 사이는 스페이스바로 한 칸을 띄고 입력해야 합니다.


출력되는 결과값은 입력한 코드에 따라 다르며, 출력 값 또한 16진수로 표시되기 때문에 정확한 값을 알기 위해서는 10진수로 변환이 필요합니다.


입력 문자에 따른 설명은 아래 표를 참고하시기 바랍니다.


1번째 문자는 채널 번호를 뜻하며 채널 번호 -1을 입력하면 됩니다.



2번째 문자의 입력 문자 및 설명은 아래와 같습니다.



F로 시작하는 입력 문자는 현재 설정 값이나 상태를 확인하는데 사용되며, E로 시작하는 입력 문자는 설정 값을 변경하거나 유량을 변경할 때 사용됩니다.


F로 시작 하는 입력 문자는 2개의 앞 문자와 2개의 뒤 문자로 이뤄져 있고, E로 시작하는 입력 문자는 2개씩 4개의 문자로 이뤄져 있습니다.


E로 시작하는 입력 문자에서 3번째와 4번째 문자는 2개씩 4개의 문자로 이뤄진 16진수의 입력 값입니다.


출력되는 결과값에는 체크섬(Checksum) 항목이 있습니다.

체크섬은 중복 검사의 한 형태로, 오류 정정을 통해 송신된 자료의 무결성을 보호하는 방법입니다.


기본적인 메시지 구성 요소를 추가해 결과값을 저장함으로써 동작하며, 추후에 누구든지 무결성 검사에 대해 결과 값을 비교할 수 있기 때문에 입력 및 출력 메시지가 손상되지 않았다고 결론 내릴 수 있는 방법입니다.


이 글에서 체크섬에 대한 자세한 설명은 생략하고, 입력 문자에 따른 출력 문자 중, 체크섬 값을 읽는 방법만 소개하겠습니다.


출력 값 중 마지막에 출력되는 체크섬 값은 출력 문자 중 채널 번호를 표시하는 1번째 문자와, 밸브가 열리거나 닫힌 상태를 표시하는 2번째 문자 이후 문자들의 값을 합한 값이 나오면 정상입니다.


이제 입력 값에 대한 출력 값을 예시와 함께 확인해보겠습니다.

 

1) 0x F0 : 0x 채널의 현재 유량 값을 표시합니다.


1 번째 시리얼 코드는 0x 채널의 현재 유량 값을 표시하는 코드로 '0x F0'의 형식으로 쓰입니다.


입력 예시 : 00 F0



입력 예시에 대한 출력 값 : 00 E0 00 0D 0D



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 000D를 10진수로 변환한 현재 유량 값은 13, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 0D로 정상입니다.

 

2) 0x F1 : 0x 채널의 현재 Set Flow 설정 값을 표시합니다.


2 번째 시리얼 코드는 0x 채널의 현재 설정된 Set Flow 설정 값을 표시하는 코드로 '0x F1'의 형식으로 쓰입니다.


입력 예시 : 00 F1



입력 예시에 대한 출력 값 : 00 E0 03 E8 EB



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 03E8을 10진수로 변환한 현재 설정된 Set Flow 값은 1,000, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 EB로 정상입니다.

 

3) 0x F2 : 0x 채널의 현재 Full Scale을 표시합니다.


3 번째 시리얼 코드는 0x 채널의 현재 Full Scale 값을 표시하는 코드로 '0x F2'의 형식으로 쓰입니다.


입력 예시 : 00 F2



입력 예시에 대한 출력 값 : 00 E0 03 E8 EB



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 03E8을 10진수로 변환한 Full Scale은 1,000, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 EB로 정상입니다.

 

4) 0x F3 : 0x 채널의 현재 Status를 표시합니다.


4 번째 시리얼 코드는 0x 채널의 Status를 표시하는 코드로 '0x F3'의 형식으로 쓰입니다.


입력 예시 : 00 F3



입력 예시에 대한 출력 값 : 00 E0 24 00 24



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, Status 표에 따라 Unit은 SLM, Point는 00.00이며, Memory Clear와 Relay는 모두 Off, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 24로 정상입니다.


Status 표시 출력 값의 3 번째와 4번째에는 Status 전용 값이 출력되며, 3 번째는 Unit Select와 Point Select, 4 번째는 Memory Clear와 Relay On/Off 값의 순서로 표시됩니다.

Status 전용 출력 값은 아래 표에서 확인할 수 있습니다.


 

5) 0x F4 : 0x 채널의 현재 Relay High 값을 표시합니다.


5 번째 시리얼 코드는 0x 채널의 현재 Relay High 값을 표시하는 코드로 '0x F4'의 형식으로 쓰입니다.


입력 예시 : 00 F4



입력 예시에 대한 출력 값 : 00 E0 01 F4 F5



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 01F4을 10진수로 변환한 Relay High 값은 500, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 F5로 정상입니다.

 

6) 0x F5 : 0x 채널의 현재 Relay Low 값을 표시합니다.


6 번째 시리얼 코드는 0x 채널의 현재 Relay Low 값을 표시하는 코드로 '0x F5'의 형식으로 쓰입니다.


입력 예시 : 00 F5



입력 예시에 대한 출력 값 : 00 E0 00 00 00



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 0000을 10진수로 변환한 Relay Low 값은 0, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 0으로 정상입니다.

 

7) 0x F6 : 0x 채널의 종합 정보를 표시합니다.


7 번째 시리얼 코드는 0x 채널의 종합 정보를 표시하는 코드로 '0x F6'의 형식으로 쓰입니다.


입력 예시 : 00 F6



입력 예시에 대한 출력 값 : 00 E0 00 0D 03 E8 03 E8 03 E8 24 00 01 F4 00 00 FC



입력 예시와 출력 값에 따른 결과 : 종합 정보에 표시된 예시는 앞의 1번~6번 까지의 출력 값과 동일하며, Check sum의 경우 3번째 문자부터 14번째 문자까지 모두 합하면 2FC가 나오지만, 뒤의 2문자만 표시되기 때문에 FC로 출력됩니다.

 

8) 0x FA : 0x 채널의 현재 Acc 상태 값을 표시합니다.


8 번째 시리얼 코드는 0x 채널의 현재 Acc 상태 값을 표시하는 코드로 '0x FA'의 형식으로 쓰입니다.


입력 예시 : 00 FA



입력 예시에 대한 출력 값 : 00 E0 00 00 00 00 00



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 00을 10진수로 변환한 Acc High2, Acc High1, Acc High0, Acc Low 값은 모두 0, 체크섬 오류 검사는 3번째부터 6번째 문자 값 모두를 더한 0으로 정상입니다.

 

9) 0x FB : 0x 채널의 현재 Sacc 상태 값을 표시합니다.


9 번째 시리얼 코드는 0x 채널의 현재 Sacc 상태 값을 표시하는 코드로 '0x FB'의 형식으로 쓰입니다.


입력 예시 : 00 FB



입력 예시에 대한 출력 값 : 00 E0 00 00 00 00 00



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 00을 10진수로 변환한 Sacc High2, Sacc High1, Sacc High0, Sacc Low 값은 모두 0, 체크섬 오류 검사는 3번째부터 6번째 문자 값 모두를 더한 0으로 정상입니다.

 

10) 0x FC : 0x 채널의 현재 상태(Acc/Sacc) 값을 표시합니다.


10 번째 시리얼 코드는 0x 채널의 현재 상태(Acc/Sacc) 값을 표시하는 코드로 '0x FC'의 형식으로 쓰입니다.


입력 예시 : 00 FC



입력 예시에 대한 출력 값 : 00 E0 00 00 00 00 00 00 00 00 00



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫혀 있으며, 16진수 00을 10진수로 변환한 Acc High2, Acc High1, Acc High0, Acc Low, Sacc High2, Sacc High1, Sacc High0, Sacc Low 값은 모두 0, 체크섬 오류 검사는 3번째부터 10번째 문자 값 모두를 더한 0으로 정상입니다.

 

11) 0x E0 : 0x 채널의 Set Value 값을 입력하고 밸브를 닫습니다.


11 번째 시리얼 코드는 0x 채널의 Set Value 값을 원하는 값으로 입력하고 밸브를 닫는 코드로 '0x E0'의 형식으로 쓰입니다.


입력 예시 : 00 E0 00 00



입력 예시에 대한 출력 값 : 00



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 닫히게 되며, Set Value 값은 10진수 0을 16진수로 변환해 00 00을 입력했고, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 00로 정상 입력 되었습니다.

 

12) 0x E1 : 0x 채널의 Set Value 값을 입력하고 밸브를 엽니다.


12 번째 시리얼 코드는 0x 채널의 Set Value 값을 원하는 값으로 입력하고 밸브를 여는 코드로 '0x E1'의 형식으로 쓰입니다.


입력 예시 : 00 E1 03 E8



입력 예시에 대한 출력 값 : EB



입력 예시와 출력 값에 따른 결과 : 1번 채널의 밸브는 열리게 되며, Set Value 값은 10진수 1,000을 16진수로 변환해 03 E8을 입력했고, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 EB로 정상 입력 되었습니다.

 

13) 0x E2 : 0x 채널의 Full Scale 값을 설정합니다.


13 번째 시리얼 코드는 0x 채널의 Full Scale 값을 원하는 값으로 설정하는 코드로 '0x E2'의 형식으로 쓰입니다.


입력 예시 : 00 E2 03 E8



입력 예시에 대한 출력 값 : EB



입력 예시와 출력 값에 따른 결과 : 1번 채널의 Full Scale 값은 10진수 1,000을 16진수로 변환해 03 E8을 입력했고,, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 EB로 정상 입력 되었습니다.

 

14) 0x E3 : 0x 채널의 Status를 설정합니다.


14 번째 시리얼 코드는 0x 채널의 Status를 설정하는 코드로 '0x E3'의 형식으로 쓰입니다.


입력 예시 : 00 E3 24 00



입력 예시에 대한 출력 값 : 24



입력 예시와 출력 값에 따른 결과 : 1번 채널의 Status 설정을 합니다.

Unit은 SLM, Point는 00.00, Memory Clear와 Relay는 Off로 설정했고, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 24로 정상 입력 되었습니다.


Status 설정 입력 코드의 3 번째와 4번째에는 Status 전용 값을 입력하며, 3 번째는 Unit Select와 Point Select, 4 번째는 Memory Clear와 Relay On/Off 값의 순서로 입력합니다.

Status 전용 출력 값은 아래 표에서 확인할 수 있습니다.


 

15) 0x E4 : 0x 채널의 Relay High 값을 설정합니다.


15 번째 시리얼 코드는 0x 채널의 Relay High 값을 원하는 값으로 설정하는 코드로 '0x E4'의 형식으로 쓰입니다.


입력 예시 : 00 E4 01 F4



입력 예시에 대한 출력 값 : F5



입력 예시와 출력 값에 따른 결과 : 1번 채널의 Relay High 값은 10진수 500을 16진수로 변환한 01 F4로 입력했으며, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 EB로 정상 입력 되었습니다.

 

16) 0x E5 : 0x 채널의 Relay Low 값을 설정합니다.


16 번째 시리얼 코드는 0x 채널의 Relay Low 값을 원하는 값으로 설정하는 코드로 '0x E5'의 형식으로 쓰입니다.


입력 예시 : 00 E5 00 00



입력 예시에 대한 출력 값 : 00



입력 예시와 출력 값에 따른 결과 : 1번 채널의 Relay Low 값은 10진수 0을 16진수로 변환한 00 00으로 입력했으며, 체크섬 오류 검사는 3번째와 4번째 문자 값을 더한 00으로 정상 입력 되었습니다.

 

인포라드는 기체 유량을 측정하는 Mass Flow Meter / Controller와 진공도를 측정하는데 사용되는 Vacuum Sensor를 비롯한 여러 측정 장비들을 공급하고 있으며, 고객의 요청에 따라 OEM 방식으로 다양한 종류의 제품을 제작해 제공하고 있습니다.


문의사항은 아래 링크를 이용하시기 바랍니다.


https://www.inforad.co.kr





출처


https://en.wikipedia.org/wiki/Checksum

카테고리