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

기본 PLCnext Datalogger의 데이터베이스를 CSV 파일로 변환

산업용 애플리케이션의 로깅 값은 많은 고객의 주요 특성이며 일부 애플리케이션에서는 변수의 수가 정말 많을 수 있으므로 이 데이터 로깅을 구성하는 기본적이고 쉬운 방법이 필요합니다.

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


다음 링크에서 데이터 로깅 서비스 구성 요소에 대한 추가 정보를 찾을 수 있습니다.

Datalogging 세션을 구성한 경우 모든 기록된 변수 값이 포함된 *.db 파일이 있습니다. 이 *.db 파일은 데이터베이스 파일이지만 이 형식은 값을 탐색하려면 Sqlite3 또는 DB Browser와 같은 도구가 필요합니다.

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

데이터베이스가 생성될 때 데이터베이스에 대해 원하는 이름을 설정할 수 있지만 값을 포함하는 데이터베이스에 있는 테이블의 특정 이름을 설정할 수는 없습니다. 다행히도 Sqlite3 도구는 "Sqlite3 .tables" 명령을 사용하여 데이터베이스에 있는 테이블을 표시하여 우리를 도울 수 있습니다.
Sqlite3의 도움말 페이지 또는 Sqlite3 페이지에서 모든 특정 명령을 찾을 수 있습니다.

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

프로세스를 조금 더 쉽게 하기 위해 데이터베이스에서 내보내기를 수행하는 두 개의 스크립트를 연결하겠습니다.
물론 필요에 따라 스크립트를 조정할 수 있습니다!

유감스럽게도 *.sh 파일을 업로드할 수 없으므로 아래에 두 파일의 콘텐츠가 있습니다.

먼저 ISO8601 Timestamp 형식에 대한 파일 :

ExportSQL2CSV_ISO.sh
#!/bin/bash

name_of_database="${1:?Missing database}"
name_of_database_no_ext=${name_of_database::-3}

#Get the name of the table
name_of_table=$(sqlite3 $name_of_database .ta)

#Get the DateTime of the first entry to name the output file
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',Timestamp) from $name_of_table limit 1;")

#Create the filename
output_filename=${name_of_database_no_ext}_${DateTime}.csv

#Make the export to the csv file
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}

#Get the name of the table
name_of_table=$(sqlite3 $name_of_database .ta)

#Get the DateTime of the first entry to name the output file
DateTime=$(sqlite3 $name_of_database "SELECT strftime('%Y_%m_%d_%H_%M_%S',(Timestamp - 4611686018427387904)/10000000 - 62135596800,'unixepoch') from $name_of_table limit 1;")

#Create the filename
output_filename=${name_of_database_no_ext}_${DateTime}.csv

#Make the export to the csv file
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 <PathToDatabase>

스크립트가 완료되면 다음과 같이 데이터베이스 이름과 데이터베이스 첫 번째 항목의 DateTime이 포함된 CSV 파일을 찾을 수 있습니다.

이제 기본 DataLogger 서비스 구성 요소를 사용하여 기록한 모든 데이터가 포함된 CSV 파일이 생성되었습니다.

cron 도구를 사용하여 매시간 또는 매일 이 파일의 생성을 자동화하여 더 나아갈 수 있습니다. .

질문이나 의견이 있으시면 언제든지 저희에게 연락해 주십시오!


산업기술

  1. 명령줄 인터페이스
  2. C 파일 처리
  3. C - 헤더 파일
  4. CM에서 EMS, MSP로:산업의 진화
  5. COVID-19는 3D 프린팅으로 주목받고 있습니다
  6. 리드 창출 투자를 최대한 활용하려면 어떻게 해야 합니까?
  7. 머신러닝의 가장 큰 혜택을 받는 4가지 산업
  8. ISO 9001 표준을 제조업체 전략에 통합
  9. 밀 파일이란 무엇입니까?
  10. Go로 정적 파일 제공