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

左侧导航栏列出了概览、您的两个存储目标和三个输出,每个都有自己的开/关开关。在您开启至少一个输出之前,不会发送任何内容。
第一步:添加存储目标
-
在左侧导航栏中,点击存储目标 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}
然后选择图像本身。原始图像是完全按拍摄时的捕获。带标注图像是同一捕获,并在其上绘制了工具叠加层:框、标签、热图和区域。可打开其中一个或两个。每个都有自己的:
- 尺寸:完整 2592×1944,一半 1296×972 或 四分之一 648×486。较小的图像节省服务器空间和带宽;叠加层在每种尺寸下绘制相同
- 质量 (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 记录,适用于脚本和数据库)。选择 Daily 或 Hourly 以决定何时开始新文件。日志文件名必须包含
{DD}(按天)或同时包含{hh}(按小时)
包含工具详情会将每个工具的完整结果添加到两者中。日志从不混合不同的程序:如果某个周期中列发生了变化,会启动新文件,而不是损坏旧文件。
如果服务器无法向现有文件追加内容,相机会提示,并改为每次捕获写入一个结果日志文件。图像和 JSON 文件不受影响。
程序备份

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