跳到主要内容

AI 驱动文档

您想了解什么?

通过 Node-RED 使用 HTTP 切换程序

本教程将向您展示如何使用简单的 HTTP 请求远程切换 OV10i 摄像头上的程序。您将构建一个系统,使网络上的任何设备都能即时切换不同的检查设置 - 非常适合具有多种产品的生产线。

您将构建的内容: 一个远程程序切换系统,响应来自平板电脑、计算机、PLC 或任何可发送 Web 请求的设备的 HTTP 命令。

预计时间: 15-20 分钟

技能水平: 初级

真实案例: 想象一下,操作员在平板电脑上扫描条形码,摄像头会自动切换到该产品对应的程序 - 这正是我们要构建的!

为什么 HTTP 程序切换让工作更轻松

OV10i 让远程程序切换变得简单:

  • 任何设备都能触发 - 平板电脑、PLC、计算机,甚至智能手机
  • 即时切换 - 程序在一秒内完成切换
  • 无需复杂配置 - 在 Node-RED 中只需几个节点
  • 兼容现有系统 - 可与您已有的系统集成

非常适合: 多产品生产线、操作员控制面板、自动化系统,或任何需要快速切换程序的场景。

先决条件

在开始之前,请确保您具备:

  • OV10i 摄像头已连接并正常工作
  • 至少创建了 2 个可用的程序
  • Node-RED 访问权限(通过 IO模块)
备注

您将需要程序 ID 编号 - 这些编号可在编辑程序时浏览器的地址栏中找到。

第一步:查找您的程序编号

1.1 获取程序 ID

  1. 在程序编辑器中打开任意程序
  2. 查看浏览器地址栏
  3. 找到 /recipe/ 后面的数字(例如:/recipe/15 表示程序 ID 为 15)
  4. 记下您想要切换的所有程序的 ID

为什么需要这些编号? 每个程序都有一个永不改变的唯一 ID - 这是摄像头内部使用的标识。

第二步:打开 Node-RED

2.1 访问流程构建器

  1. 在任意程序编辑器中,点击 "IO Block"
  2. 点击 "Configure IO"

您现在已进入 Node-RED,我们将在此构建您的程序切换系统!

2.2 规划您的设置

以下是我们要构建的内容:

Button Click → Format Request → Send to Camera → See Result

很简单! 摄像头有一个内置的 Web 服务器,用于监听程序切换请求。

第三步:构建您的程序切换器

3.1 添加基本节点

将以下 4 个节点拖到画布上:

  1. Inject(来自 Input 部分)- 您的"切换程序"按钮
  2. Function(来自 Function 部分)- 正确格式化请求
  3. HTTP Request(来自 Network 部分)- 向摄像头发送命令
  4. Debug(来自 Output 部分)- 显示是否成功

3.2 将它们连接起来

像这样将它们连接在一起:

Inject → Function → HTTP Request → Debug

简单! 现在让我们配置每个节点。

第四步:配置您的节点

4.1 设置您的程序按钮

  1. 双击 Inject 节点
  2. 将名称更改为 "Switch to Recipe 15"(使用您实际的程序 ID)
  3. 将 Payload 设置为 "15"(您的程序 ID 编号)
  4. 点击 "Done"

4.2 设置请求格式化器

  1. 双击 Function 节点
  2. 将其命名为 "Format Request"
  3. 复制以下简单代码:
// Get recipe number from button
let recipeID = msg.payload;

// Set up the web request
msg.headers = {'Content-Type': 'application/json'};
msg.payload = JSON.stringify({ id: recipeID });

return msg;

  1. 点击 "Done"

此操作的作用: 获取您的程序编号并按照相机所需的方式进行封装。

4.3 设置 HTTP 请求

  1. 双击 HTTP Request 节点
  2. 将 Method 设置为 "POST"
  3. 将 URL 设置为 localhost:5001/pipeline/activate
  4. 将其命名为 "Change Recipe"
  5. 点击 "Done"
备注

18.92 之前的版本:使用 http://[CAMERA_IP]/edge/pipeline/activate 18.92 及更高版本:使用 http://localhost:5001/pipeline/activate

4.4 设置响应监视器

  1. 双击 Debug 节点
  2. 将其命名为 "Recipe Change Result"
  3. 点击 "Done"

完美! 您的程序切换器已准备好进行测试。

第 5 步:测试您的程序切换器

5.1 部署并尝试

  1. 点击红色的 "Deploy" 按钮
  2. 点击您的 inject 按钮(Switch to Recipe 15)
  3. 查看调试面板中的响应

5.2 检查是否成功

成功标志:

  • 调试显示 "success": true
  • 相机界面显示新的程序名称
  • 调试面板中没有错误消息

如果成功: 恭喜!您刚刚远程切换了程序。

如果失败: 请查看下方的故障排除部分。

5.3 添加更多程序按钮

想要多个程序? 只需添加更多 inject 节点:

  • Recipe 10 按钮: Payload = "10",Name = "Switch to Recipe 10"
  • Recipe 23 按钮: Payload = "23",Name = "Switch to Recipe 23"
  • 全部连接到同一个 Function 节点

第 6 步:从其他设备使用

现在有趣的部分来了! 任何设备都可以通过向您的相机发送 Web 请求来更改程序。

6.1 从任何 Web 浏览器

在网络上的任何浏览器中输入以下内容:

http://192.168.0.100:5001/pipeline/activate

备注

请替换为您相机的 IP 地址。

6.2 从命令行

Windows/Mac/Linux - 切换到程序 15:

curl -X POST http://192.168.0.100:5001/pipeline/activate \
-H "Content-Type: application/json" \
-d '{"id": "15"}'

6.3 从 PLC 和其他系统

大多数现代系统都可以发送 HTTP 请求:

  • Siemens PLC: 使用 HTTP 客户端块
  • Allen-Bradley: 使用 HTTP 指令块
  • Python/C#/Java: 使用标准 HTTP 库
  • 自定义应用: 任何编程语言均可

请求格式始终相同:

  • Method: POST
  • URL: http://[CAMERA_IP]:5001/pipeline/activate
  • Body: {"id": "RECIPE_NUMBER"}

第 7 步:让它变得更好

7.1 添加程序验证

想要防止切换到不存在的程序? 修改您的函数:

let recipeID = msg.payload;
let validRecipes = ["10", "15", "20"]; // Your actual recipe IDs

if (!validRecipes.includes(recipeID)) {
msg.payload = "Invalid recipe: " + recipeID;
return null; // Don't send request
}

// Normal formatting continues...

7.2 产品代码映射

想用产品名称代替数字? 试试这个:

let productCodes = {
"BOLT_A": "10",
"BOLT_B": "15",
"SCREW_C": "20"
};

let recipeID = productCodes[msg.payload];
// Continue with formatting...

现在您可以使用产品名称而非数字来触发!

7.3 响应处理

想要更好的成功/错误消息? 在 HTTP Request 之后添加另一个函数:

let response = JSON.parse(msg.payload);

if (response.success) {
msg.payload = "✓ Recipe changed successfully!";
} else {
msg.payload = "✗ Recipe change failed: " + response.error;
}

return msg;

第 8 步:快速故障排除

不工作?以下是最常见的解决方法:

问题快速修复
"Recipe not found"(程序未找到)错误仔细检查 URL 中的程序 ID 编号
完全无响应验证相机 IP 地址和网络连接
"Parse error"(解析错误)消息检查 Function 节点代码是否正确复制
程序实际没有切换确保程序存在且未损坏

仍然卡住? 检查您的相机是否在线并可从 Node-RED 访问。

您做到了!

恭喜! 您现在已拥有 OV10i 相机的远程程序控制。只需点击几下,您就构建了一个能够:

  • 从网络上的任何设备即时切换程序
  • 与现有系统(如 PLC、平板电脑或计算机)集成
  • 通过简单的按钮点击支持多个程序
  • 验证请求以防止错误
  • 使用标准 Web 技术与自定义应用程序配合使用

接下来做什么?

现在基础功能已经运行,您可以:

简单的后续步骤

  • 为您的所有产品添加更多程序按钮
  • 从不同设备(如平板电脑或手机)进行测试
  • 创建自定义产品映射以便于操作

高级想法

  • 构建操作员仪表板,带有程序选择按钮
  • 连接条码扫描器以自动选择程序
  • 与 MES 系统集成,实现生产线协调
  • 添加日志记录以跟踪何时使用了哪些程序

实际应用示例

以下是其他人如何使用 HTTP 程序切换:

  • 食品包装: 条码扫描器触发不同包装尺寸的程序切换
  • 汽车: PLC 根据生产线上的零件类型切换程序
  • 电子产品: 操作员平板电脑上带有不同电路板的程序按钮
  • 质量控制: 根据生产计划自动切换程序

可能性是无限的 - 一切都从您刚刚构建的简单系统开始!

🔗 另请参阅