날짜: 10-26-2021 08:22 PM
c#에서 daq mx driver 를 사용하여 실시간 계측 프로그램을 개발하고 현장 테스트 중에 있습니다.
총 3대의 pc에서 테스트 했는데, 매일 특정 시각에 1.x 초간 지연이 발생합니다.
PC마다 발생 시각은 다르나, 1일 1 ~ 3회 정도로 발생하고, 재부팅을 하지 않는 이상 동일한 시각에 발생합니다.
==== 코드
double[,] readedData = new double[channelCount, this._buffSize];
while(true)
{
DateTime beginReadStartDT = DateTime.Now; // BeginRead 시작시각 기록
IAsyncResult asyncResult = reader.BeginMemoryOptimizedReadMultiSample(this._buffSize, null, null, readedData); // BeginRead 함수 호출
DateTime beginReadEndDT = DateTime.Now; // BeginRead 종료시각 기록
DateTime endReadStartDT = DateTime.Now; // EndRead 시작시각 기록
readedData = reader.EndMemoryOptimizedReadMultiSample(asyncResult, out actualNumberOfSamplesPerChannelRead); // EndRead 함수 호출
DateTimeendReadEndDT = DateTime.Now; // EndRead 종료시각 기록
}
==== 관련 로그
2021-10-18 12:49:01.963 [INFO] Logger Write Thread Started: RootPath=C:\Users\abc\Documents\OutlierDetection\LOG\DALOG, Log Mode=Day, Log Level=All, Queue Count=0
2021-10-18 12:49:20.683 [INFO] RealTimeControl DataReceived TimeSpan.TotalMilliseconds = 35
2021-10-18 13:46:11.019 [INFO] RealTimeControl DataReceived TimeSpan.TotalMilliseconds = 41
2021-10-18 18:24:36.835 [INFO] RealTimeControl DataReceived TimeSpan.TotalMilliseconds = 49
2021-10-18 21:12:26.005 [INFO] ReadMultiSampleWorker TimeSpanBeginReadStartToSampleClearEndDT Delayed.
Duration=1124, SamplingPeriod=100, AllowPeriod=150,
BeginReadStartDT=24.881, BeginReadEndDT=24.881,
EndReadStartDT=24.881, EndReadEndDT=26.005,
=== 로그 설명
2021년 10월 18일 12시 40분경 계측 시작하여 약 9시간 후인 21시 12분에 1.124초 지연 발생
발생한 위치는 EndReadStart ==> EndReadEnd 구간이며, SamplingRate 25000, buffSize 2500 으로 0.1초당 1회씩 데이터를 처리해야합니다.
계측 시작 시각에서 일정 시간이 지난 후 발생하는것은 아닌것으로 확인되었으며,
daqmx dirver에서 제공한 샘플 코드 그대로 사용할 경우에도 UI 쪽 지연에 의해 Callback 함수 호출이 지연되는 현상이 발견되어 위와 같이 수정한 상태입니다.
윈도우의 Task Scheduler에는 스케줄러에 의해 수행된 Task 기록이 없는 상태에고, Background App, Firewall, Window Search, Window Update, Window Error Reporting Service 등 모든 서비스를 Disable 시킨 상태입니다.
혹시 관련 내용 해결하려면 어디쪽을 더 봐야할지.. 알려주실 분 계신가요?
아니면 ni 쪽에 메일이라도 보낼려고 하는데 어디로 보내야할지 자료가 없네요
부탁드립니다.
개인적인 생각입니다만...
한국 NI 에 C 관련 지원을 받기 무척 힘듭니다.
LabVIEW 도 어려워 졌구요..;;
LabWindows 관련 포럼이 있습니다.
여기서 문의해 보심이 어떨까 싶습니다.