#load #time-series #cli-applications #plot #logging #date-time #hours

nightly bin+lib load_lpp

用于记录、处理和绘制负载时间序列的 CLI 应用

1 个稳定版本

11.0.3 2022年12月30日

#382 in 可视化

GPL-3.0 许可协议

240KB
1.5K SLoC

load_lpp (日志 - 处理 - 绘图) 🦀

此包编译以下三个用于记录、预处理和绘制负载时间序列的二进制文件。应用程序用 Rust 编写,旨在进行底层优化和长期稳定性。

1 load_log_dad141

CLI 应用程序通过常见的 DAD 141.1 数字放大器和 TCP-UTF8 记录负载单元。应用程序允许在 1 天的因数(分钟或小时)的整倍数间隔自动记录。有效的分钟间隔为 1、2、3、5、10、15、20、30 和 60 分钟。有效的小时间隔为 1、2、3、6、12 和 24 小时。使用 RFC 3339 - ISO 8601 标准格式的时间日期,以更通用和健壮地处理时区和夏令时。

2 load_process

此 CLI 应用程序按照以下步骤处理负载时间序列

  1. 读取并解析记录的负载时间序列。
  2. 将所有时间日期转换为选择的时区,即,如果需要则删除夏令时或更改时区。
  3. 使用数据中找到的最小时间间隔使时间序列连续。
  4. 可选,用 NAN 替换记录错误。
  5. 可选,用 NAN 替换输入文件中的给定时间日期(例如,受维护干扰的值)。
  6. 可选,用 NAN 替换给定的每日间隔(例如,每日温度影响或维护期)。
  7. 可选,自动检测并报告难以通过以下移动平均平滑和纠正的异常时间段。
  8. 可选,使用加权移动平均平滑时间序列(例如,风速和温度)并填充 NAN 值。它使用线性权重之间的移动平均,权重从用户定义的中心权重(通常是最大权重)到侧权重(通常是最小权重)。窗口宽度可以通过指定每侧的数据点数量来调整,这种参数化保证了窗口的对称性。可以设置约束来定义何时缺失的信息太大而无法填充 NAN 值(最大缺失负载值或它们的累积相关权重)。
  9. 命令行应用程序保存一个与load_plot兼容的新CSV文件。

3 load_plot

CLI应用程序用于绘制由dad141_log或load_process保存的负载时间序列。应用程序自动调整日期时间格式。图形输出格式为svg。

注意,在整个框架中,负载用于负载单元数据,而重量用于移动平均。

文档:rust_crate

CLI应用程序是用Rust编程语言编写的。

附加说明

DAD141.1

通用

  • 移除密封开关跳线以启用所有命令,这仅适用于合法应用。
  • 使用功能2.4来显示实际原始电压mV/V。
  • 菜单3.1用于过载,确保它高于所需的最大负载。

校准:零点(截距)和量程(斜率,量程校准)

请参阅DAD手册中的示例和DOP手册第7.4节(第34页)。

  • 使用功能1.2 - CZ(重力)或1.3 - AZ(电子)进行零位,这会将当前测量的电压(mV/V)与零位读数关联起来。
  • 使用功能2.1设置span_kg,设置RO_kg_sum。
  • 使用功能2.3从以下公式设置span_V

计算量程值(span_V

span_kg = RO_kg_sum = RO_kg_1 + RO_kg_2 + ... RO_kg_n.

例如,span_kg = 20kN * 6负载单元 = 120 kN = 120 = 12,236.5921 kg。在DAD 141.1函数2.1中设置RO_kg_sum。

RO_V_1 + RO_V_2 + ... + RO_V_n = RO_V_sum,单位为mV/V。

span_V = (V_sum / kg_sum) * kg_max,单位为mV/V。在我们的例子中,12.00062 / 6 = 2.000103333 mV/V。

在我们的例子中,SPAN_V = 2.00032 + 2.00034 + 1.99979 + 2.00014 + 2.00011 + 1.99992 = 12.00062 mV/V。在函数2.3中将span_V放入。

其中

  • RO_V是从校准证书中得出的额定输出(RO)的电压输出(mV/V)。
  • RO_kg是额定输出,始终来自校准。

kg从mV

kg@x = (mV@x / (mV@RO * ExcitationVoltage)) * kg@RO

例如,如果kg@RO = 2039.43 kg,mv/V@RO ~ 2 mv/V,激励电压应为5 V

2040 kg应给出10mV(即,2 mv/V * 5 V),1020 kg应给出5mV(即,2 mv/V * 5 V / 2)。通常,204 kg = 1 mV

格式

应用程序期望10字节的DAD格式,对小数点的位置具有灵活性。前两个字符是值的描述,不包括在数值负载值的解析中。然而,原始字符串也将写入CSV文件,以避免丢失读取类型的信息,并在解析错误的情况下恢复值。可能的空白属性字符(Unicode标准)将被正确修剪并忽略。

负载单元和安装模块的安装

安装模块

使用三种类型的安装模块来获得正确的自由度,以匹配系统的变形。

  1. 固定:无移动性,该模块将该系统点固定在该位置(0D自由度)。
  2. 缓冲器:在某一方向上限制运动(1D自由度)。
  3. 自由:允许在负载单元平面内所有方向上移动(2D自由度)。

对齐

考虑机械变形的自由度,对负载细胞进行对齐。特别是要注意固定和缓冲负载细胞,以及它们与缓冲器处主要变形的对齐。请参阅手册中的图示。

润滑剂/油脂

用于在其运动过程中保护安装模块的移动部件(摇臂销和匹配的上表面)。一些例子包括

  • 梅特勒-托利多手册,洛克tight防锈,食品级
  • 弗林特克,在弗林特克使用由富克斯生产的RENOLIT ST-80。然而,他们已经提供了与负载细胞相似的型号。

远程/SSH日志记录

命令行应用程序适合远程监控。建立远程和持久连接的解决方案之一是使用sshtmux。此外,可以使用scp来复制-传输数据。

查找IP和/或主机名

  1. 查找IP地址,例如,使用ifconfig
  2. 使用host ipaddr_from_ifconfig查找主机名。

启动

  1. 通过SSH连接到树莓派,ssh user@ip
  2. 打开tmux,tmux
  3. 启动日志记录进程,请参阅./compiled_binary --help
  4. 使用Ctrl+b然后d从终端断开tmux会话n,它将返回[已断开(从会话n)]
  5. 使用tmux ls检查tmux会话是否仍在,它应该返回n: 1个窗口(创建日期时间2),其中日期时间为第2点
  6. 关闭终端/SSH连接,exit,它返回连接到uset@ip已关闭

检查日志记录

  1. 如启动步骤1所示,通过SSH连接到树莓派,ssh user@ip
  2. 如启动步骤5所示,使用tmux ls查找tmux会话
  3. 使用tmux attach -t n连接会话,其中n是启动步骤4中的数字
  4. 重复启动中的步骤4、5、6

复制数据

  1. 打开终端,并使用scp将文件从树莓派复制到笔记本电脑,例如,scp user@localhost:~/path/to/file/loadcells.csv ./Desktop/

关闭日志记录

  1. 如启动步骤1所示,通过SSH连接到树莓派,ssh user@ip
  2. 如启动步骤5所示,使用tmux ls查找tmux会话
  3. 使用Ctrl+c关闭正在运行的日志记录,应返回[已退出]
  4. 使用tmux ls再次检查,应返回无服务器在...上运行

关于远程连接的附加细节

依赖关系

~16MB
~134K SLoC