0
  1. CANインターフェイスカードはCOMポートとしてインストールされる可能性がありますか?

  2. 個別のフレームとして送信されるメッセージを分割するにはどうすればよいですか?受信した複数のフレームのデータを1つのメッセージにまとめるのはどうですか?これは有効な懸念事項ですか?

  3. CANopenスタックとは何ですか?シリアルポートと通信するためのAPIをすでに持っている場合、CANopenスタックなしでプログラムにCANopenメッセージを読み取らせたり送信させたりできますか?私のプログラムは正確に何をしなければなりませんか?

  4. ソフトウェアにオブジェクトディクショナリ(OD)を実装する理想的/正しい方法は何ですか?

(現在の状況:CANopenメッセージを解釈するためのJavaプログラムを作成する必要があります。特定の状況により、CANハードウェアを入手できません。)

(これは、先週JavaとCANopenに投稿した一連のStack Overflowの質問の続きです。)

4

2 に答える 2

2
  1. それはあなたのインターフェースカードに依存します。ただし、ほとんどの場合、COMポートではありませんが、カードにアクセスするための関数をエクスポートしたDLLファイルを取得します(使用可能なほとんどのCANインターフェイスはUSBポートを介してPCに接続されます)。ただし、心配しないでください。公式の標準ではありませんが、これらのDLLファイルのほとんどは同じ機能を使用しているため、CANインターフェイスを別のメーカーの別のメーカーと問題なく交換できます。

  2. CANバスを介して大量のデータを送信することは非常にまれであるため、それらを複数のフレームに分割する必要があります。しかし、どうしても必要な場合は、自分で行う必要があります。

  3. CANopenスタックは、使用できる高レベルの関数を提供するライブラリです。CANopenに必要なすべて(ハートビートなど)を処理するため、自分で行う必要はありません。優れたスタックは、複数のフレームも処理します(2)。残念ながら、そのようなスタックは安価では入手できませんが、私見ではそれだけの価値があります。

  4. ほとんどの実装では、ODを変更できるかどうかに応じて、ROMまたはRAMのいずれかで構造体を使用します。しかし、優れたCANopenスタックもすでにこれを処理します。

于 2009-01-11T08:22:10.573 に答える
0

3) 商用の CANopen スタックは確かに良い考えですが、それを使用しなくても CANopen メッセージを読み書きすることは可能です。

申請の目的がわかりません。ただし、CANopen スタックがなくても問題ない可能性が高い例として、既にマスター ノードとスレーブ ノードを備えた機能している CANopen バスがあり、特定のメッセージをリッスンしたいだけの場合があります。もう 1 つの例は、小規模で明確に定義された一連のメッセージを使用して小規模な構成またはテスト ユーティリティを作成している場合です。そのような場合、本格的な商用 CANopen スタックは、やり過ぎになる可能性があります。

于 2009-01-13T15:08:16.023 に答える