跳到主要内容

点搜索

这是按时间段查询特定标签的已采集时序数据,并将结果以表格/CSV下载的界面。操作员进行昨天09点至11点之间PLC值是否在正常范围内等巡检时使用。

点搜索界面 — 按标签和时间段查询时序数据

点击工具栏上的数据库图标(fa-database,左侧第六个)或直接访问http://<gateway>/ui/point。


1. 界面结构​

┌────────────────────────────────────────────────────────────────┐
│ ⊙ 포인트 검색 — 시계열 데이터 조회 · TM_TAG_POINT [←] [↻] │
├────────────────────┬───────────────────────────────────────────┤
│ [검색 조건] │ [포인트 목록 — 최신 순] [CSV 다운로드] │
│ ─ 검색 기간 │ ┌──────────────────────────────────────┐ │
│ ─ OPC ID * │ │ 시각 │ 태그 ID │ 값 │ 타입 │ 품질 │ 에러 │ │
│ ─ 태그 ID * │ └──────────────────────────────────────┘ │
│ [검색] │ … │
└────────────────────┴───────────────────────────────────────────┘

左侧面板宽度比标准col-md-2加宽50px,以防止标签/下拉框被截断。


2. 顶部栏​

按钮操作
← (fa-arrow-left)返回/ui/main
↻ (fa-sync)重新调用point.search()(保留现有条件,用于刷新)

3. 搜索条件(左侧面板)​

3.1 搜索时间段 (s_date_range)​

  • 基于daterangepicker — 格式YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm
  • 进入界面时自动填充为最近1小时(moment().subtract(1, 'hours') ~ moment())
  • 点击 → 弹出日历+时间选择器

3.2 OPC ID(必填)​

  • 通过POST /connect/opc/list结果填充下拉框 — 按opc_id字母ASC排序
  • 标签格式: OPC_ID (OPC_NAME) — 若name为空则仅显示OPC_ID
  • 更改选择后,下方的标签ID下拉框将重新加载为该OPC下的标签

3.3 标签ID(必填)​

  • 选择OPC前:disabled + 提示选项*— 选择OPC后加载 —*
  • 选择OPC后通过POST /connect/tag/list { opc_id }结果填充 — 按tag_id ASC排序
  • 标签格式: TAG_ID (TAG_NAME) — 若name为空则仅显示TAG_ID
  • 加载失败时显示*— 加载失败 —*选项并弹出错误提示
未选择标签就点击搜索

会弹出*“请先选择OPC和标签。”*的模态框(bootbox alert)— 这是防止因数据缺失导致空结果和时间浪费的守护机制。


4. 结果表格(6列)​

GET /point/search响应由DataTables绘制。默认排序为时间戳降序(从最新开始)。

#列宽度排序显示/含义
1时间180px默认降序timestamp.iso或原始timestamp — 居中对齐
2标签ID180px—搜索的标签ID — 居中对齐
3值*(自适应)—根据类型对齐方式不同 — integer/long/float/double 右对齐,boolean/string等 居中对齐(UI-DESIGN的表格值对齐规则) — 粗体
4类型100px—用formatTypeBadge()创建的彩色徽章(例如:STRING / INT / DOUBLE / BOOL)
5质量70px—OPC质量码(例如:192=Good)。为空时显示空白
6错误70px—error_code为0/null时显示*—*(灰色),否则显示红色错误码

每页长度:10 / 20 / 50 / 100 / 1000 — 默认100。韩文界面(Korean.json)。


5. CSV下载​

右上角下载CSV按钮 — 调用point.csv()。

  • 本地导出 — 将最后搜索结果(point._lastData)在客户端转换为CSV → 立即下载。无额外服务器调用
  • 文件名:point_<TAG_ID>_<TIMESTAMP>.csv格式(例如:point_TAG_LS_XBC_0001_20260510_1530.csv)
  • 列:时间 / 标签ID / 值 / 类型 / 质量 / 错误 — 与UI表格一致
搜索无结果时点击CSV

*“请先进行搜索。”*提示模态框 — 防止生成空CSV。


6. 数据来源​

界面查询的后端流程:

PLC → Collector → PointProcessor → Cassandra: tm_tag_point (TTL = edge.ttl 일)
↑
/point/search?tag_id&from&to
  • TTL过期的数据不再被查询。app.properties的edge.ttl默认30天。
  • tm_tag_point的row是(tag_id, time_bucket, time)集群 — 短时间段搜索很快。一次拉取超过一个月的数据可能会导致响应变慢,建议按几十分钟到几小时的粒度查询。

7. 运维提示​

  • 异常值追踪:将报警出现的时间段设为搜索范围并查询该标签 — 可发现突发的峰值 / 0值 / 质量变化
  • PLC通信中断:如果同一标签的错误列在特定时间段内满是红色错误码,说明PLC响应失败区间 — 可在/ui/connect/list中与采集状态交叉验证
  • CSV转Excel:将下载的CSV在Excel/LibreOffice中打开,用值列绘制趋势图可快速可视化 — 完整图表请参考实时值查看或标签值趋势查看

8. 相关文档​