大寰夹爪
大寰夹爪 AddOn 介绍
通过本文,您将了解一种通过 Modbus/RS-485 控制夹爪的 AddOn ,并且能够基于该模板快速制作自己的夹爪 AddOn。
ヒント
开始之前,默认您已经了解 AddOn 的基础功能,以及实现的原理。
大寰夹爪 AddOn 下载
接下来将按照功能演示、模板介绍、上手开发的顺序进行讲解,如果您并不想关心和了解实现原理,也可以直接跳过模板介绍,直接按照上手开发部分的引导完成开发。
功能演示
- 配置页面(切换夹爪连接方式,通过末端 TIO 连接或控制柜 RS485 接口连接。)
- 内置文档
- 日志查看
- 控制页面(自定义页面)
- 控制指令(自定义指令)
功能讲解
接下来将分别讲解每部分功能是如何实现的,以及所用到的节点如何使用。 使用 Robot_Ip:AddOn_Port 进入 node-red 开发页面。
自定义指令
在上方的标签栏中选中“夹爪指令块定义”页面,可以看到三个自定义指令的流。每个流用到了 4 个节点,分别是 http in 、Gripper Command Client 、 自定义指令 、 http response

http in 、 http response 和 自定义指令节点已经在入门教程中介绍过,接下来重点讲解 Gripper Command Client 节点。
Gripper Command Client 是一个子流程,只有导入 AddOn "dh_custom_cmd" 包,才能在节点目录中找到。 为了简化开发流程,其内部预封装了一些 JKS 脚本和流程,其作用是生成一个 Socket 客户端,将运行时的指令参数传递到 node-red 中。双击该节点可打开编辑页面。

点击左上角的编辑流程模板,可以查看子流程的具体实现。
指令类型
这里选中的类型,将在 App 实际运行该指令时,把指令块上的参数传递给 Gripper Command Server 的不同通道。

本質的に、Gripper Command Client は JKS を使用して実装されたソケットクライアントであり、コマンドブロック上のパラメータを送信するために使用されます。 一方、Gripper Command Server は node-red 内で tcp in を使用してラップ実装されたソケットサーバーであり、パラメータを受信・処理し、対応するチャネルを介して出力します。
ブロッキング時間
コマンドにブロッキングのタイムアウト時間を指定できます。0 に設定すると、戻り値を受け取るまでずっとブロックされます。戻り値の方法については後ほど紹介します。
前述の「グリッパーコマンドブロック定義」ページでは、コマンドブロックのスタイルとパラメータを受け渡すためのソケットスクリプトが定義されています。ここでは、コマンドブロック上のパラメータを受け取り、グリッパーを制御し結果を返す方法について説明します。
上部のタブバーで*「グリッパーサービス」*を選択すると、Gripper Command Server ノードやその他多数のノードを見ることができます。その中の一つのフローを例として説明します。

上図のグリッパー初期化フローを例に取ると、全体のフローは「パラメータの受信」「コマンドの送信」「結果の返却」の三つの部分に分けられます。
私たちが行うべきことは、グリッパーを制御する部分を実装し、Gripper Command Server ノードの対応するチャネルに接続し、パラメータに基づいてグリッパーコマンドを生成して送信することです。 では、どうやってパラメータを取得するのでしょうか?グリッパー初期化コマンドを例にして説明します。

初期化時には、ドロップダウンメニューからモードを選択する必要があります。プログラムが*「グリッパー初期化」*の行に到達すると、現在選択されている値が Gripper Command Server ノードに送信されます。 その後、Gripper Command Server ノードは受信したすべてのパラメータを node-red のグローバルコンテキストに保存し、コマンドブロックタイプに対応するチャネルをトリガーします。その後、後続の フロー内で global.get() メソッドを使用して対応するパラメータを取得できます。

