AI 驱动文档
您想了解什么?
远程存储(FTP、SFTP、SMB)
远程存储将文件从相机复制到您自己网络上的服务器。它可以发送三种文件:
| 输出 | 发送内容 |
|---|---|
| 图像 | 被检测部件的 JPEG 图像:原始捕获图、带有工具叠加层的副本,或两者皆有 |
| 元数据 | 每次捕获的检测结果(JSON 文件格式),以及持续记录的结果日志(CSV 或 JSONL 格式) |
| 程序备份 | 按计划(每天或每周)复制您的程序 |
您可以设置两个存储目标,例如一个服务器用于图像,另一个用于备份。每个存储目标可以是 FTP(或 FTPS)服务器、SFTP 服务器,或 Windows SMB 共享文件夹。
进入 Integration → Remote Storage:

左侧栏列出概览、您的两个存储目标,以及三种输出,每项都有自己的开/关开关。只有在至少开启一个输出后,才会开始发送文件。
本页截图来自 OV Spark Pro。在 OV Spark 上一切相同,仅图像尺寸不同,分别为 1280×960、640×480 和 320×240。
第一步:添加存储目标
-
在左侧栏中,点击存储目标 1。
-
选择协议:
协议 适用于 备注 FTP 大多数网络存储设备(NAS)和 FTP 服务器 被动模式。勾选使用 TLS (FTPS) 以加密;服务器证书必须有效 SFTP Linux 服务器,以及通过 SSH(安全远程登录协议)访问的任何服务器 服务器的主机密钥在首次成功测试时被学习 SMB Windows 文件共享 SMB 2 和 3。输入共享文件夹名称,如果您的网络使用域,则输入域 -
填写主机(仅服务器名称或 IP 地址,不含
ftp://、端口或文件夹)、端口、用户名和密码。 -
可选设置文件夹。在 FTP 和 SFTP 上,不以
/开头的路径相对于该账户的主文件夹,例如inspections/line3。在 SMB 上则是共享文件夹内的子文件夹。 -
要重命名存储目标,点击名称旁的铅笔图标。该名称将显示在左侧栏和概览中。

高级:超时、并行上传 包含连接和空闲超时(1 到 600 秒)以及并行上传。大多数 FTP 服务器允许每个用户两个连接。
请 IT 创建一个只能写入检测文件夹的账户。相机需要创建文件夹并写入文件;不需要删除任何内容,也不会修改服务器上已有的文件。
第二步:测试连接
点击测试连接。相机会依次执行五项检查,并在第一个失败项处停止,显示原因和修复方法:
- 解析主机名
- 连接到端口(如果选择 FTPS,则使用 TLS)
- 登录(在 SMB 上,还会打开共享文件夹)
- 创建文件夹
- 写入、追加并删除一个 1 KB 的测试文件
| 消息 | 含义 |
|---|---|
| 未找到主机名 | 检查拼写,或改用 IP 地址 |
| 连接被拒绝 | 端口错误,或服务器上该服务未运行 |
| 超时、无法访问服务器 | 相机所在网络无法访问该服务器。检查路由和防火墙 |
| 登录被拒绝 | 用户名或密码错误。在 SMB 上也可能需要域名 |
| 不允许创建文件夹、不允许写入 | 该账户在此文件夹上没有权限 |
| 未找到共享文件夹 | SMB 共享文件夹名称错误 |
| TLS 握手失败 | FTPS 证书不受信任,或服务器未启用 TLS |
| 不允许删除 | 无害。测试文件被遗留在服务器上;上传不需要删除权限 |
然后点击页面底部栏中的保存。
首次成功的 SFTP 测试会信任服务器的主机密钥并显示其指纹。请将其与 IT 团队提供的指纹进行比对。如果密钥发生变化,相机将拒绝上传并报告主机密钥已更改。这种情况会在服务器重装后发生,或者有其他机器正以该服务器的身份应答。确认与 IT 核实后,再按忘记并重新测试。
第三步:选择要发送的内容
在侧栏中单击一个输出,选择其存储目标,完成设置,然后打开启用。两个输出可以共享一个存储目标。
图像

要发送哪些捕获决定上传的内容:
| 选项 | 发送内容 |
|---|---|
| 所有捕获 | 每次检测 |
| 仅失败 | 失败和未检测结果 |
| 仅通过 | 通过结果 |
| 所有失败 + 每 N 次通过中的 1 次 | 每次失败,加上每 N 次通过中的 1 次(1 到 10,000) |
文件夹和文件名是由令牌构建的模板,每个字段下方的行显示其生成路径的示例。默认值为:
- 文件夹:
{camera}/{YYYY}/{MM}/{DD} - 文件名:
{YYYY}{MM}{DD}_{hh}{mm}{ss}{ms}_{trigger_id}_{result}
然后选择图像本身。原始图像是完全按拍摄时的捕获。标注图像是在相同捕获上绘制了工具叠加层:框、标签、热力图和区域。开启其中一个或两个。每种都有自己的:
- 尺寸:完整 1280×960、一半 640×480 或四分之一 320×240。较小的图像可节省服务器空间和带宽;叠加层在每种尺寸下绘制相同
- 质量 (1–100):JPEG 质量,默认为 85
- 隐藏叠加类型(仅标注图像):排除框、多边形、弧线、线段、点、文本、热力图或遮罩

底部的估计带宽根据您的设置计算 MB/s 和每日 GB,按程序运行的速率,或者如果尚未运行,则按每分钟 60 次检测计算。请对照服务器和网络的承受能力进行检查。
要发送哪些捕获、尺寸、质量、原始和标注开关以及隐藏的叠加类型只能在设置模式中更改,因为它们会改变每次检测所做的工作。存储目标、文件夹和文件名可以随时更改。
文件夹和文件名的令牌
单击显示可用于文件夹和文件名的令牌,然后单击令牌将其插入到您上次编辑的字段中。
| 分组 | 令牌 |
|---|---|
| 日期 | {YYYY} {YY} {MM} {DD} {hh} {mm} {ss} {ms} {timestamp}(纪元毫秒) |
| 设备 | {camera}(摄像头名称)、{hostname}、{serial}、{model} |
| 检测 | {recipe}、{recipe_id}、{trigger_id}、{capture_id}、{result}、{variant} |
| PLC / HTTP | {trigger.<key>},触发所携带的任何字段,例如 PLC 发送的零件号 |
摄像头强制执行的规则:
- 文件名必须包含
{trigger_id}、{capture_id}或{timestamp},这样两次捕获就不会相互覆盖 - 文件夹可以使用
/嵌套;文件名则不可以 {variant}仅在文件名中有效。如果原始和标注都已启用而您未使用它,系统会自动添加_raw和_annotated
如果 PLC 随触发发送零件号或序列号,请使用 {trigger.<key>} 添加。这样任何在服务器上查找特定零件的人都可以通过文件名找到其图像,而无需打开摄像头。
元数据

元数据使用与图像相同的 捕获范围 选项和相同的文件名,以便两者一一对应。它包含两部分,可以启用其中一项或两项:
- 每个捕获生成的 JSON 文件:每个文件以对应图像命名,后缀为
.json。其中包含捕获时间、触发数据、程序、总体结果、每个工具的结果、评分与详情,以及随附上传的图像路径 - 结果日志:一个持续追加的文件,每次捕获写入一行,格式为 CSV(可用 Excel 打开)或 JSONL(每行一条 JSON 记录,适用于脚本和数据库)。选择 按日 或 按小时 开始新文件。日志文件名必须包含
{DD}(按日文件),按小时文件还须包含{hh}
包含工具详情 会将每个工具的完整结果添加到两者中。日志绝不会混合不同程序:如果在同一周期内列发生变化,会启动新文件,而不会损坏原有文件。
如果服务器无法向现有文件追加内容,相机会给出提示,并改为按每个捕获写入一个结果日志文件。图像和 JSON 文件不受影响。
程序备份

| 设置 | 选项 |
|---|---|
| 内容 | 所有程序,或 仅活动程序 |
| 时间 | 按日,或 按周 在选定的星期几 |
| 时刻 | 24 小时制时间,使用相机自身的时区(显示在字段下方) |
| 包含训练图像 | 关闭:生成紧凑型包,可运行但无法重新训练。开启:生成完整包,可用于重新训练;包大小超过 2 GB 的程序将被跳过 |
每次运行会为每个程序写入一个包,并附带一个 manifest.json,其中列出每个文件及其程序、版本和校验和。立即备份 使用已保存的设置立即运行一次。上次运行 与 下次运行 显示已完成与计划中的任务。
如果某次运行与另一次备份、导入或导出相冲突,它会等待并在可执行时立即运行,而不是失败。如果到达备份时间时相机处于关机状态,相机重新启动后会执行一次。
每个程序包,无论是定时还是手动导出,都会携带相机的设置,包括 以明文形式 保存的远程存储密码。任何能够读取备份文件夹的人都能读取这些密码。请像对待凭据文件一样保护该文件夹。
验证是否正常工作
概览 显示每个输出的摘要、自启动以来已上传的内容,以及队列中等待处理的任务。
| 状态 | 含义 | 应对措施 |
|---|---|---|
| 发送中 | 文件正常发出 | 无需操作 |
| 重试中 | 连接失败;相机自动重试 | 运行 测试连接 以立即重试 |
| 丢弃捕获 | 服务器速度慢于产线,队列已满,最早的任务被丢弃 | 发送更小的图像、仅发送失败件,或增加 并行上传 |
| 已阻止 | 发生永久性错误,例如证书失败。该存储目标的上传已停止 | 修正设置,然后运行 测试连接;测试通过后将恢复上传 |