亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

导出 PLCnext 数据记录器数据到 CSV:分步指南

从工业应用记录数值是许多客户的主要特征,某些应用变量数量极大,因此需要原生且简便的方式配置数据记录。

下文深入原生数据记录服务组件,探讨如何从此服务生成 CSV 文件。


数据记录器配置及通过 OPC UA Historical Access 使用的更多信息见:

配置数据记录会话后,您将获得一个包含所有变量记录值的 *.db 文件。此 *.db 文件为数据库文件,若要浏览值,需 Sqlite3 或 DB Browser 等工具。

许多客户已熟悉 *.csv 文件,我们将见如何将此数据库导出为 csv 文件。每个 PLCnext 控制器自带的 Sqlite3 工具提供导出所需的所有工具。

创建数据库时可自定义数据库名,但无法为包含值的数据库表设定特定名称。幸好 Sqlite3 工具可通过命令 “Sqlite3 <DatabaseName> .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} #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>

脚本完成后,您将获得以数据库名和数据库首条记录日期时间命名的 CSV 文件,如下:

导出 PLCnext 数据记录器数据到 CSV:分步指南

您现在拥有包含使用原生数据记录器服务组件记录的所有数据的 CSV 文件。

甚至可结合 cron 工具自动化每小时或每天创建此文件。

如有任何问题或建议请随时联系我们!


工业技术

  1. SPICE 命令行界面使用详解
  2. 从真值表到可靠逻辑:掌握布尔表达式实现安全数字设计
  3. 从CM到EMS再到MSP:电子制造服务演进溯源
  4. COVID-19凸显3D打印在医疗领域的关键作用
  5. 最大化线索生成投资回报率
  6. 机器学习重塑的 4 大战略行业:陶瓷、汽车、能源与食品
  7. ISO 9001 融入制造战略:驱动质量与增长
  8. 用 Go 轻松托管静态文件:经验证的方法
  9. 在 PLCnext 中使用 IXMLSerializable 从 XML 填充 C++ 类
  10. 平锉刀:木工金属加工必备修整工具全解析
  11. C语言文件处理完全指南:fopen、fprintf、fread 与 fseek
  12. C 语言头文件详解:类型、用法与最佳实践