산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

PLCnext 데이터로거 데이터를 CSV로 내보내기: 단계별 가이드

산업 애플리케이션에서 값을 로깅하는 것은 많은 고객의 주요 특징이며, 일부 애플리케이션에서는 변수 수가 매우 많을 수 있으므로 이 데이터 로깅을 네이티브하고 쉽게 구성하는 방법이 필요합니다.

아래에서는 네이티브 데이터로깅 서비스 컴포넌트를 살펴보고 이 서비스에서 CSV 파일을 생성하는 방법을 알아보겠습니다.


데이터로거 서비스 컴포넌트에 대한 자세한 정보는 다음 링크에서 확인할 수 있습니다:

데이터로깅 세션을 구성하면 모든 변수의 로그된 값이 포함된 *.db 파일이 생성됩니다. 이 *.db 파일은 데이터베이스 파일이지만, Sqlite3나 DB Browser 같은 도구 없이는 값을 탐색할 수 없습니다.

많은 고객이 *.csv 파일에 이미 익숙하므로 이 데이터베이스를 CSV 파일로 내보내는 방법을 살펴보겠습니다. 모든 PLCnext 컨트롤러에 있는 Sqlite3 도구가 이 내보내기에 필요한 모든 도구를 제공합니다.

데이터베이스가 생성될 때 원하는 이름을 설정할 수 있지만, 값을 포함하는 데이터베이스의 테이블 이름은 특정 이름으로 설정할 수 없습니다. 다행히 Sqlite3 도구는 "Sqlite3 <데이터베이스명> .tables" 명령어로 데이터베이스에 있는 테이블을 표시해 줍니다. 모든 특정 명령어는 Sqlite3 도움말 페이지나 이 페이지: Sqlite3에서 확인할 수 있습니다.

테이블 이름을 알면 이 테이블에서 모든 데이터를 선택하여 CSV 파일로 내보낼 수 있습니다.

프로세스를 조금 더 쉽게 하기 위해 데이터베이스에서 내보내기 위한 두 가지 스크립트를 링크해 드립니다. 물론 필요에 맞게 스크립트를 수정할 수 있습니다!

안타깝게도 *.sh 파일을 업로드할 수 없어 아래에 두 파일의 내용을 적어둡니다.

첫 번째, ISO8601 타임스탬프 형식용 파일:

ExportSQL2CSV_ISO.sh
#!/bin/bash
name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}
# 테이블 이름 가져오기
name_of_table=$(sqlite3 $name_of_database .ta)
# 첫 번째 항목의 날짜시간을 가져와 출력 파일 이름에 사용
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',Timestamp) from $name_of_table limit 1;")
# 파일 이름 생성
output_filename=${name_of_database_no_ext}_${DateTime}.csv
# CSV 파일로 내보내기
sqlite3 -header -csv -separator ";" $name_of_database "SELECT * from $name_of_table;"\
 > $output_filename

두 번째, RAW 타임스탬프 형식용 파일:

ExportSQL2CSV_RAW.sh
#!/bin/bash
name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}
# 테이블 이름 가져오기
name_of_table=$(sqlite3 $name_of_database .ta)
# 첫 번째 항목의 날짜시간을 가져와 출력 파일 이름에 사용 (RAW 타임스탬프 변환)
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') from $name_of_table limit 1;")
# 파일 이름 생성
output_filename=${name_of_database_no_ext}_${DateTime}.csv
# CSV 파일로 내보내기 (타임스탬프 변환 포함)
sqlite3 -header -csv -separator ";" $name_of_database "SELECT \
 strftime('%Y-%m-%d %H:%M:%f',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') AS Time,\
 * from $name_of_table;"\
 > $output_filename

이 파일들은 스크립트이므로 파일에 실행 플래그를 추가하는 것을 잊지 마세요:

chmod +x ExportSQL2CSV_*.sh

그런 다음 스크립트를 호출할 수 있습니다. 스크립트 호출 예시는 다음과 같습니다:

./ExportSQL2CSV_ISO.sh <데이터베이스경로>

스크립트가 완료되면 데이터베이스 이름과 데이터베이스의 첫 번째 항목 날짜시간을 포함한 이름으로 CSV 파일을 찾을 수 있습니다:

PLCnext 데이터로거 데이터를 CSV로 내보내기: 단계별 가이드

이제 네이티브 데이터로거 서비스 컴포넌트를 사용하여 기록한 모든 데이터가 포함된 CSV 파일을 갖게 되었습니다.

cron 도구를 사용하여 이 파일을 매시간 또는 매일 자동으로 생성하도록 더 발전시킬 수도 있습니다.

질문이나 의견이 있으시면 언제든 연락 주세요!

산업기술

  1. SPICE와 명령줄 인터페이스(CLI) 사용법
  2. C 파일 입출력: fopen, fprintf, fread, fseek 마스터하기
  3. C 헤더 파일 이해: 유형, 사용법, 모범 사례
  4. CM에서 EMS, MSP로: 전자제품 제조 아웃소싱의 진화 추적
  5. 코로나19가 부각시킨 3D 프린팅의 의료 분야 핵심 역할
  6. 리드 생성 투자 수익(ROI) 극대화하기
  7. 머신러닝으로 혁신하는 4대 핵심 산업
  8. ISO 9001을 제조 전략에 통합해 품질과 성장 견인하기
  9. 밀 파일(Mill File) 완벽 가이드: 목공·금속 마감 필수 도구
  10. Go로 정적 파일 손쉽게 제공하기: 검증된 접근법