3

私たちはロボット工学のコースを運営しており、Xbeeは学生にとって最も人気のある通信プロトコルです。過去2年間で、私たちは彼らが約62のさまざまなプロジェクト(パイプラインでさらに40)を構築するのを支援しました。

ほとんどすべてのプロジェクトには、さまざまな種類のデータをボットに送信することが含まれます。1バイトのコマンドである場合もあれば、解釈される長い文字列である場合もあります。1つのxbeeをブロードキャストモードで使用して、複数のボットの中から特定のボットにメッセージを送信すると、ボットに対処するという問題に直面することがあります。学生は毎回この問題に取り組むために彼らの創造性を使用します。

私は個人的にこれが車輪を再投資していると感じています。シリアルポート通信用のより高いレベルのプロトコル提案が存在するかどうか、また特定のプロトコル設計がない場合は、学生向けに設計する価値があるかどうか疑問に思います。

4

5 に答える 5

5

システムの内部 のみのプロトコルを意味しますか?はいの場合、多くの場合、組み込みソフトウェアエンジニアは、独自のプロトコルをロールする傾向があります。彼らのほとんどは、それが彼らに最適なシステムを作ることを可能にすることを話します。

理想的なアプローチではありません。学生が良い例を学ぶのは良いことだということに同意します。

残念ながら、ロボット工学アプリケーションに適したプロトコルスタックはわかりません。しかし、私はあなたにグーグルのプロトコルバッファシステムを試してみることをお勧めします。それはプロトコルエンジンを構築するほとんどの努力を単純化することができ、そしてそれはプレーンcでも動作します。

于 2011-10-12T18:15:35.973 に答える
4

すでに開いている標準プロトコルを使用する場合は、ModbusASCIIを実装できます。

于 2011-10-12T20:57:17.970 に答える
2

Comliは、一部の古いデバイスで、またはイーサネットを使用できない場合に使用されるマスター/スレーブプロトコルです。あなたが尋ねれば、おそらくABBから仕様を入手することができます-それは秘密ではありません。

つまり、その上にOPCサーバー/クライアントアーキテクチャを配置して、もう少し強力な通信を行うことができます。

+--------------+    +--------------+         +--------+
| OPC UA Client| -- | OPC UA Server| -comli- | Device |
+--------------+    +--------------+         +--------+

これにより、OPC UAクライアントプロトコルが独立し、将来的には少し簡単になります。

Modbusは、よく使用されるもう1つのシリアルプロトコルです。

OPCはあなたが望む高レベルの操作を提供すると信じています。

www.opcfoundation.orgwww.abb.com を参照 してください

PS。OPC UAは古いOLEバージョンと同じではないため、COM/DCOMとは何の関係もありません。

于 2011-10-12T16:18:16.783 に答える
2

mjh2007が言ったように、Modbusは標準で、オープンで簡単です。私が見ることができる唯一の問題は、ロボットがコマンドに「迅速に」応答するようにするかどうかです。これは、シリアルModbusがタイムアウトを使用してパケットの終わりを検出するためです。これを回避するには、タイムアウト要件を無視し、受信時に機能コードとパラメーターに基づいてパケットの予想サイズを計算します。最後のバイトを受信して​​チェックサムを確認するとすぐに、コマンドの処理を開始できます。 このページには、そのようなスキームの実装に関する詳細があります。

于 2011-10-14T16:54:36.850 に答える
0

ATAOを1に設定してAPIモードで実行されているXBeeモジュールの「TransmitExplicit」フレーム(タイプ0x11)を必ず使用してください。常にフレームをブロードキャストする代わりに、ネットワーク上の特定のボットにユニキャストできます。メッシュZigBeeネットワークでは、ブロードキャストをできるだけ避けたいと考えています。

生データの送信に「ATモード」を使用しているか、ATAOを0に設定した「APIモード」(「透過シリアル」と呼ばれることもあります)を使用していると思います。

そのフレームタイプ(0x11)を見ると、受信者はすでに複数のフィールド(送信元/宛先エンドポイント、クラスター、プロファイルID)を含む0x91フレームを取得していることがわかります。ZigBeeネットワーキングを実行しようとしているのではないので、これらのフィールドを再利用できます。

于 2012-01-04T20:52:05.567 に答える