본문 바로가기

delphi

변위 시스템용 3D visualization 프로그램

반응형
SMALL

 3D Visualization 프로그램은 EmbacdeoDelphi프로그램의 firemonkey 3D 기능을 이용하여 개발하였다. FireMonkeyWindows, macOS, iOS Android용 크로스 플랫폼 애플리케이션을 빌드하기 위해 오브젝트 파스칼 또는 C++를 사용하여 Delphi 또는 C++Builder에서 사용하기 위해 Embarcadero Technologies에서 개발한 크로스 플랫폼이다. 3D 프로그램 개발에 필요한 컴포넌트를 이용하여 윈도우 화면에서 3D 구현이 가능하게 하였다. Firemonkey는 크로스플랫폼으로 OS 환경 설정과 약간의 수정으로 안드로이드나 iOS, 리눅스 등에서도 사용할 수 있어서 매우 효율 적이다.

3D Visualization 개발 툴
 

현장에 설치된 센서 값이 LTE 모뎀을 통해 클라우드로 전송되고 모니터링 프로그램에 의해 자동으로 사용자 PC에 보여지게 된다. 이 결과값을 3D로 볼 수 있도록 하는 것이다.

3D로 표현하기 위해서는 기본적으로 3D ViewportGrid3D를 생성하고 거기에 센서 관절을 원형 봉으로 객체를 생성하였다. 그 객체에 metrial을 표현하기 위해 이미지를 만들어 표현하였다. 이렇게 한 개의 관절 객체가 생성되면 이를 연결하기 위한 힌지를 볼 표현하기 위한 3D 오브젝트를 만들고, 이 오브젝트를 관절 개수 만큼 동적으로 생성하여 화면에 표현한다.

관절 표현 이미지와 1개의 관절 3D객제 생성
D Visualization 관절 수 만큼 객제 생성 및 테스트 변위 적용 (수평형)
 

이 때 각 위치좌표는 센서 변위값과 기본 설치 기준값을 이용하여 표현한다. 김제 테스트 밴치의 현장이 가장 많이 사용되는 수평 설치로 되어 있어서 수직형은 가상의 데이터를 이용하여 3D Visualization을 개발하였다. 이 가상의 데이터에 센서값만 매칭을 시키면 실제 적용이 바로 가능하다.

3D Visualization 화면 (수직형)
 

테스트 밴치(김제)의 값을 실제 3D 현상에 적용할 수 있게 되어 있는데 모니터링을 위해 항상 마지막 값을 표현하게 하였다. 아래 이미지에서 보듯이 총 길이 30M에서 수 mm의 변위는 실제 형상에서 유안으로 구분이 안되는 형상 변위이다. 그래서 이를 30배 증폭 시켜서 표현을 할 수 있도록 하였다.

수평 변위 3D 확대
 

변위 증폭하여 형상 표현

데이터로거 응용 및 모니터링 시스템 개발

() DB 클라우드 개념과 개발 방법

모니터링 프로그램은 Windows10을 기반으로 개발하였지만 크로스플랫폼 기반의 Firemonkey를 이용하여 안드로이드, iOS, 리눅스 시스템에서도 적용이 가능하다. 본 과제에서는 Windows10에서 구현하였다. 모니터링 프로그램의 기본 기능은 현장에 설치된 데이터가 LTE를 통해 AWS(Amazon web service)MQTTDynamoDB를 이용하여 클라우드에 저장된다. 이렇게 저장된 데이터를 모니터링 프로그램이 자동 수집하여 모니터링 프로그램이 설치되어 있는 로컬DB에 저장된다. 로컬DB를 사용하여 Chart나 데이터 확인, 관리기준 설정 등을 이용하여 최종 user가 관리할 수 있도록 한다. 로컬DB를 이용하는 이유는 실시간으로 AWS에 지속적으로 접근하여 모든데이터를 다운로드하면 시간과 비용이 너무 많이 소요되기 때문에 비 효율적이다. 따라서 기존에 받은 데이터는 로컬에 저장하고, 새로운 데이터만 AWS cloud에서 받아 오도록 하였다.

모니터링 시스템 구성도
 

클라우드를 개발 계획에는 구글 클라우드인 Firebase를 이용하려고 하였으나, 모니터링 개발 툴인 Delphi에서 개발 생산성이 매우 좋지 않아 개발기간이 많이 소요될 것으로 판단되었다. 그래서 AWS에서 IOT로 서비스하는 MQTT기능과 DB서비스인 DynamoDB를 이용하여 빠르고 신뢰성 있는 클라우드 시스템을 적용하였다.

AWS의 IoT서비스와 DynamoDB 접속 화면(웹 브라우저)

DB 개발 툴인 FireDAC의 설정 화면과 CDATA사의 Connection component

FireDACData Access Engine으로 Embacdero사의 Delphi 개발 툴에서 기본으로 사용할 수 있다. 그리고 CDATA사의 AWSDynamoDB에 쉽게 연결이 가능하도록 한 component를 이용하여 AWS 클라우드의 DB에 접속하여 데이터를 다운로드하거나 조회 할 수 있도록 하였다.

() 모니터링 화면 구성

모니터링 프로그램의 메인 화면

메인 화면 설명

- Chart : 100개 관절에 대한 변위 그래프와 , 가속도 그래프 등을 볼 수 있는 메인 화면으로 이동

Data : AWSLocal Data를 확인하거나 다운로드 할 수 있는 화면으로 이동

Setting : 관리기준치, 각 센서의 설정값을 셋팅하거나 조회 할 수 있는 화면으로 이동

현장변위테스트 : 현장에서 임으로 변위 테스트 할 경우 그래프와 값을 볼 수 있는 화면으로 이동

Chart : 100개 관절에 대한 변위 그래프와 , 가속도 그래프 등을 볼 수 있는 메인 화면으로 이동

Data : AWSLocal Data를 확인하거나 다운로드 할 수 있는 화면으로 이동

Setting : 관리기준치, 각 센서의 설정값을 셋팅하거나 조회 할 수 있는 화면으로 이동

현장변위테스트 : 현장에서 임으로 변위 테스트 할 경우 그래프와 값을 볼 수 있는 화면으로 이동

 
 
역순 : 날짜 조회의 정렬을 시간순서와 최근순서 설정
시작날짜, 끝날짜 : 데이터 조회 기간
Arry, ERMSA, mm, AutoScheduleDown : 데이터를 배열연산과 오차보상 적용, 자동 스케줄 다운로드을 설정

측정 날짜 조회 : 날짜의 체크를 선택하면 차로로 표현됨

차트 : 측정 날짜에 체크된 날짜 데이터를 차트에 표현, 최대 100개까지 표현 가능, 관리기준 상하값도 같이 표현됨

가속도 데이터 차트 : 해당 관절의 가속도 측정 데이터를 차트로 실시간으로 보여줌, 현재 별도의 LTE모뎀을 사용하여 TCP 통신으로 접속 받음. 기본 개념은 유선 시리얼 통신으로 데이터를 획득

센서 시스템 설치 현장 지도

 

센서 시스템 설치 전경 사진

 
3D visualization 메뉴 : 수직, 수평 3D 화면으로 전환

Data 화면

클라우드에 저장된 Data 다운로드와 Local Data 확인 등 Data 조회, 다운로드 화면
 

Setting

데이터 초기치, 관절길이, 온도계수 등 각 센서의 설정 셋팅값 DB 처리 화면
 

현장변위테스트

현장에서 임의 변위를 주고 확인하기 위한 화면
 

 

 
반응형
LIST