問題タブ [canopen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
canopen - マルチインターフェースカード用のCANopenプロファイル
EIA-485 カウンターや SPI デジタル I/O エクスパンダなどのさまざまな周辺機器やインターフェイスを接続する、UART、SPI、I²C などのインターフェイスを備えたマイクロコントローラー ベースの CAN ノード カードを構築したいと考えています。可能な構成に適応し、そのようなノードカードに接続できるデバイスを含めるのに十分な柔軟性を備えたカードのプロファイルを定義したいと思います。CANopen プロファイルは非常に厳格なように見えるため、CANopen 仮想デバイスを調査しましたが、それも答えではないようです。
そのような機能の標準はありますか、それとも私は未知の海域を航海していますか?
embedded - CANopen STORE および RESTORE オブジェクトは何をしますか?
CiA 301 CANopen プロトコル仕様では、パラメータを保存および復元するためにデバイスが実装できる 2 つのオブジェクトが定義されています。
オブジェクト 1010h -Store Parameters
デバイスがこのオブジェクトを実装すると、CANopen マスターは値「save」をオブジェクトのサブエントリの 1 つに書き込み、対応する一連のパラメータを不揮発性メモリに書き込みます。
オブジェクト 1011h -Restore Default Parameters
デバイスがこのオブジェクトを実装すると、CANopen マスターは値「load」をオブジェクトのサブエントリの 1 つに書き込み、対応するデフォルト パラメータを復元します。
デバイスのリセット
CiA 301 仕様では、「デフォルト値は、CANopen デバイスがリセットされた後に有効に設定される」と記載されています - 電源サイクル、NMT リセット ノード (サブインデックス 01h から 7Fh)、または NMT リセット通信 (サブインデックス 02h) によって。
「デフォルト値」とは何ですか?
「デフォルト値」は次のことを意味しますか:
Store Parameters
オブジェクトによって設定された値? その場合、デバイスを元の工場出荷時のデフォルト設定にリセットするにはどうすればよいですか?- 工場出荷時の初期設定?その場合、保存されたパラメータはいつ復元する必要がありますか?
- 上記の組み合わせで、工場出荷時のデフォルト設定がデバイスのリセットによって復元され、
Store Parameters
値がRestore Default Parameters
オブジェクトによって復元されますか? - 他の定義?
オブジェクトから読み取ってデバイスの機能を取得し、ガード パターンをオブジェクトに書き込んで必要なアクションをトリガーするメカニズムを理解しています。また、さまざまなサブインデックスについて、保存する値と保存するサブセットもわかっています。
私が理解していないのは、保存された値ではなく工場出荷時のデフォルト値を使用する必要がある場合、またはその逆の場合です。
can-bus - 標準のCAN 2.0Aデータフレームでスタッフビットを計算する方法
8 バイトのデータを含む 1 つの CAN 標準 2.0A フレームがあります。例: CAN フレーム データ "00 CA 22 FF 55 66 AA DF" (8 バイト) ここで、この CAN フレームに追加されるスタッフ ビット数 (ビット スタッフィング) を確認したいと思います。最悪の場合のビット スタッフィング シナリオを計算する標準式は次のとおりです。 64+47+[(34+64-1)/4] ->64 ::データ ビットおよび 47 :: オーバーヘッド ビット 2.0A
このサンプル CAN メッセージの実際の詰め込まれたビットを計算する方法は?? コメント、提案は大歓迎です。
canopen - DS402 で最初の TPDO を構成する方法
statusword を取得するように TPDO を構成したいと考えています。誰もこれを行う方法を知っていますか? TPDO 1 を設定したい場合、COBID は 1800h でなければなりませんか? 他に何を指定する必要がありますか?
前もって感謝します。
canopen - CANopen over EtherCAT (CoE)
- EtherCAT がバスベースであるのに対し、CANopen はポイントツーポイント通信です。ポイントツーポイントは、ノードアドレスがあることを意味します。しかし、これは EtherCAT では冗長です。このノード アドレス バイトが CANopen over EtherCAT でどのように処理されるのか疑問に思っていました。情報を検索してみましたが、これに関する特定の情報は見つかりませんでした。
- また、CANopen デバイスのサイクリック データと非サイクリック データの両方が EtherCAT 経由でサイクリックにのみ送信されると仮定します。これはマスター トリガー サイクリック伝送プロトコルであるためです。これは基本的に、イベントのトリガー時に非同期のイベントトリガー情報を EtherCAT で送信できないことを意味します (これは、CAN の優先度ベースの直感に反するものです。なぜなら、それらはすべて同じ優先度を取得するからです)。これについて間違っている場合は修正してください。また、優先度の高いバイトを優先度の低いバイトよりも速く到達させる方法を教えてください (両方が同時に発生し、新しいフレームの開始時に両方を送信する帯域幅があると仮定します)。