scanCONTROL에서 측정값 받아오기
micro-epsilon의 장비중에 하나인 scanCONTROL의 값을 Execute 프로토콜을 이용하여 쉽게 받아올 수 있습니다.
(Execute 프로토콜 사용방법 : https://forum.xisom.com/ko-kr/bbs/board.php?bo_table=manual_Device&wr_id=27 )
micro-epsilon에서는 사용자를 위해 기본적인 소프트웨어를 제공합니다.
또한 개발자를 위한 scanCONTROL Windows SDK를 제공함으로써 다양한 활용을 지원하고 있습니다.
1. 다운로드 페이지 ( https://www.micro-epsilon.com/2D_3D/laser-scanner/Software/downloads/ )
X-Scada와의 통신에 필요한 것을 scanCONTROL Configuration Tools와 scanCONTROL Windows SDK입니다.
두 프로그램을 다운받아 첫번째 Configuration Tools를 설치하신 후 실행하시면 다음과 같은 화면이 나옵니다.
2. scanCONTROL Configuration Tools 5.2
3. Ethernet Configurator 선택
Ethernet Configurator를 선택하시고 해당 창이 열리면 자동으로 네트워크에 연결된 장비가 검색됩니다.
여기서 확인할 내용은 현재 연결된 장비의 수와 각각의 IP주소입니다.
다음으로 SDK를 다운받아 압축을 푼 폴더로 찾아갑니다.
scanCONTROL Windows SDK 3.7\scanCONTROL Windows SDK 3.7\C# SDK\examples
해당 경로로 들어가면 아래와 같은 파일들을 볼 수 있습니다.
5. SDK와 함께 제공되는 샘플 콘솔 프로그램
Ms의 비주얼 스튜디오로 scanCONTROL_CS_EXAMPLES.sln을 열어보시면 해당 콘솔 프로그램들의 소스를 확인 가능합니다.
여기서 GetProfiles_Poll을 수정하면 현재 연결된 장비들에서 측정값을 다음과 같은 형태로 받는 것이 가능합니다.
6. 장비의 측정값 결과 화면
X-Scada에서는 해당 출력값을 Execute 프로토콜로 받는 것이 가능하기 때문에 출력값을 문자열 태그로 한꺼번에 받은 후
자바 스크립트로 각각의 아날로그 태그로 매핑시켜주면 1280개의 값을 한 번의 통신 요청으로 받아올 수 있습니다.
아래의 화면은 X-Scada에서 3개의 장비에서 각각 1280개의 측정값을 한번에 출력받아 장비별로 ';'로 나눈 후 다시 그것을 ','로 나누어 각각의
아날로그 태그에 매핑하는 코드입니다. 1280개를 모두 받으면 태그가 너무 많이 필요하기 때문에 여기서는 40개 중에 하나씩 샘플링하여 장비별로 32개의 값을 받아옵니다.
여기서는 네트워크 상에 아이피 주소 xxx.xxx.121 xxx.xxx.122 xxx.xxx.123를 가진 3대의 장치가 연결되어 있었기 때문에
콘솔 프로그램에서 3개의 아이피를 인식하여 아이피 주소에 해당되는 장비가 없을 시에는 -1값을 뿌려주도록 수정하였습니다.
7. 콘솔 프로그램에 직접 연결된 태그와 그 태그의 장치내 주소
8. 문자열 태그로 한번에 3840개의 값을 받아 아날로그 태그로 장비별로 32개씩 샘플링하여 뿌려주는 코드
9. 태그 목록
이번 경우와 같이 장비 업체에서 샘플로 제공하는 콘솔 프로그램이 있다면 별도의 프로토콜 개발 없이 제공받은 콘솔 프로그램을 수정하여 값을 받아올 수 있습니다.