INTERACTIVE DEMO

값이 들어오지 않는 채널 하나부터
2,234만 행 무손실 수집까지

레이저 거리 · 로터리 엔코더 · IMU 각도 3종 데이터 로거. 실제 현장에서 벌어지는 4단계를 직접 눌러 확인해 보세요.

엔코더가 COM 포트에 잡히지 않습니다

레이저와 IMU는 시리얼로 값이 들어오는데 엔코더만 0 byte입니다. 보드레이트를 다 바꿔봐도 소용없습니다. 임시로 엑셀 매크로 로깅을 붙였더니 1000Hz IMU에서 샘플이 7.4% 밀려 사라집니다. 2주 차 연동 마일스톤이 여기서 멈춥니다.

SensorLogger v1.0  ·  Windows 산업용 센서 데이터 로거  ·  D:\SensorLog\sensor_log.db
센서 연동 첫날 · 2026.08.20
3종 센서를 모두 COM 포트로 연결 시도 중
CH2 연결 실패
CH1 · 레이저 거리 수신 중
ymsystem DEN-10-500 · COM3
187.42 mm
CH2 · 로터리 엔코더 응답 없음
Autonics E50S8-100-3-T-24 · COM5
— — —
COM5 포트 열림 · 0 byte 수신 (타임아웃 12회)
CH3 · IMU / AHRS 수신 중
3DM-GV7-AHRS · COM7 · MIP
roll 2.14°
지금 무슨 일이 벌어지고 있나
1 장치 관리자에 엔코더가 COM 장치로 뜨지 않음
2 보드레이트를 9600~115200까지 전부 바꿔봐도 0 byte
3 임시로 엑셀 매크로 로깅 → 1000Hz IMU에서 샘플이 밀림
4 2주 차 "센서 연동 완료" 마일스톤이 여기서 멈춤
품번을 읽으면 답이 나옵니다
E50S8 - 100 - 3 - T - 24
Ø50 샤프트형 · 100 PPR · A/B/Z 3상 · T = 토템폴 출력 · 24VDC
시리얼 통신 포트가 없는 인크리멘탈 엔코더입니다. COM 포트로는 영원히 읽히지 않습니다.
엑셀 매크로 로깅 유실률
7.4%
연동된 채널
2 / 3
카운터 경로 확정 + 무손실 파이프라인 가동
결선 설계서 3안 중 USB DAQ 쿼드러처 카운터 채택 · 착수 3일차
구성 적용 중
엔코더 카운터 경로 3안 비교
A안 · USB DAQ 쿼드러처채택
배선 최소 · 4체배 400 c/rev · 즉시 조달 가능
비용 중 · 정확도 상 · 납기 3일
B안 · 산업용 카운터 모듈 + RS-485
현장 표준 · 노이즈 강함 · 비용 상 · 납기 7일
C안 · 레벨시프터 + MCU 디코더
비용 최저 · 자체 제작 필요 · 검증 공수 추가
24V A/B/Z → 카운터 → USB
CH2 연결됨 · 3,182 count
1. Reader 스레드 3개 가동
센서별 전용 스레드가 받아서 버퍼에만 넣고 끝냅니다
2. Bounded 링버퍼 가동
가득 차면 조용히 버리지 않고 즉시 경고를 띄웁니다
3. Writer 배치 커밋 가동
500건 단위로 묶어 WAL 모드 SQLite에 기록합니다
파이프라인 가동 로그
[OK] CH1 LASER COM3 115200 8-N-1 reader thread started [OK] CH2 ENCODER CTR0 quadrature x4 reader thread started [OK] CH3 IMU COM7 MIP 1000Hz reader thread started [OK] ring buffer capacity=65536 backpressure=block [OK] sqlite journal_mode=WAL batch=500 [..] session SES-20260901-0932 recording...
화면 갱신은 초당 30회로 솎아내고, 저장은 센서 원본 속도 그대로 갑니다. 화면이 무거워져도 데이터는 밀리지 않습니다.
실시간 수집 · SES-20260901-0932
3 / 3 채널 수신 중 · 경과 06:12:41
REC
CH1 · 레이저 거리
187.42 mm
100 Hz · 2,234,092 샘플
CH2 · 엔코더 회전각
286.38 deg
3,182 count · CW · Z상 7회
CH3 · IMU 롤 각도
2.14 deg
1000 Hz · pitch -0.87 / yaw 118.42
무손실 검증
수신 샘플
22,340,918
=
DB 저장 행
22,340,918
드롭
0
버퍼 점유율 12% · 배치 커밋 500건
시간 정렬 뷰 · 기준 축 IMU 1000Hz · 리샘플 10 ms 거리와 각도가 같은 행에 놓입니다
t_utc distance_mm enc_deg roll_deg pitch_deg yaw_deg
09:32:14.120187.42286.382.141-0.873118.421
09:32:14.130187.44286.412.139-0.871118.424
09:32:14.140187.41286.452.136-0.870118.428
09:32:14.150187.38286.492.132-0.868118.431
sensor_export_20260901_0932.csv · 2,234,092 행 · 184 MB CSV로 내보내기
같은 30일, 같은 예산. 결과가 갈리는 지점
6시간 12분 연속 수집 시험 결과 · SES-20260901-0932
검수 통과
DROPPED SAMPLES
0
22,340,918 샘플 중
납품물
· 설치 파일 (자체 포함 빌드)
· 소스 코드 원본 일체
· SQLite 스키마 문서
· 결선 설계서 (3안 비교)
· 센서 시뮬레이터
· 무손실 검증 리포트
항목 기존 방식 우리팀 구조 근거
샘플 유실률 7.4% 0.00% 수집·저장 스레드 분리 + 링버퍼
연동 채널 2 / 3 3 / 3 엔코더 카운터 경로 3안 비교 후 확정
연동 완료 시점 미정 Day 12 착수 3일차 결선 설계서 제출
고장 케이스 검증 0건 24 / 24 시뮬레이터 회귀 테스트 자동 실행
채널 간 최대 시차 측정 불가 0.94 ms QPC 단조 타임스탬프 통일
연속 수집 시간
06:12:41
무중단 · 재연결 1회 자동 복구
DB 저장 행 수
22,340,918
1.42 GB · WAL 모드
납품 시점
Day 30
착수일로부터 1개월 이내
이 숫자들은 기능 목록이 아니라 설계 선택의 결과입니다. 품번 한 줄을 읽는 것에서 시작해, 수집 구조와 검증 방식까지 이어진 선택입니다.