問題タブ [ethercat]
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.
ethercat - EtherCAT スレーブが初期状態から動作前状態に移行できない
おはようございます、
私は EtherCAT の初心者で、IPC Beckhoff CP6202-0001 と他のデバイス (Beckhoff のものとそうでないもの) の間で EtherCAT 通信をセットアップしようとしています。私の問題は、デバイスの 1 つ (Beckhoff からのものではない) が、init 状態から動作前状態に遷移できず、EtherCAT ステート マシンで動作状態に遷移できないことです。他のデバイスは正常に動作し、動作状態に移行できます。「問題のある」デバイスの ET1100 の EEPROM の内容を変更したことは言うまでもありません。私が使用した .xml ファイルは、おそらく正しいものです。どこが間違っている可能性があるか知っている人はいますか?アイデアをありがとう。
ubuntu - make : ターゲットにするルールはありません。止まる
仮想マシンで lubuntu 32 ビットを使用しており、ホストは Windows 7 32 ビットです。Igh から ethercat master をインストールしようとしています。私はいくつかのエラーをうまく克服しましたが、このエラーは解決できませんでした。
私のメイクファイル:
-------------------------------------------------- ----------------------------
linux - Linux ユーザー アプリケーションから ethtool を使用してネットワーク設定を変更する
RT_PREEMPT パッチを適用した Xubuntu で EtherCAT マスター アプリケーションを開発しているので、EtherCAT 通信でリアルタイムのパフォーマンスを実現できます。
一部の NIC では、rx-usecsの「Coalesce パラメータ」がデフォルトで 0 以外の値に設定されていることがわかりました。0 以外の値を設定すると、ネットワーク カードは、ネットワーク パケットの受信後に割り込みを生成する前に、そのマイクロ秒数だけ待機します。しかし、ネットワーク ドライバーはリアルタイム アプリケーションによってプリエンプトされ、アプリケーションがネットワークから EtherCAT IO を受信する際に大幅な遅延が発生します。
現在、EtherCAT に使用するすべてのネットワーク カードに対して、sudo を使用して ethtool を手動で実行する必要があります。これはスクリプト化できますが、理想的には、EtherCAT を使用するように実際に構成された NIC でのみ実行する必要があります。これは、アプリケーションの外部で行うのは困難です。
Linux アプリケーション内から ethtool を呼び出して、使用している NIC のネットワーク設定を構成する方法はありますか? または、同じことを実行する API はありますか?
私のアプリケーションは、EtherCAT 用に CAP_NET_ADMIN および CAP_NET_RAW 機能を割り当てる setcap を使用して非 root ユーザーとして実行されます。サブプロセスとして ethtool を呼び出すのにこれで十分ですか? それとも追加のアクセス許可が必要ですか? または、root にならずに ethtool を呼び出して合体設定を変更することもできますか?
twincat - TwinCAT 3 または IntervalZero
新しいボード (名前は XYZ とします) の EtherCAT 通信をテストするつもりです。そこで、XYZ を Slave にしてマスターに接続する予定です。生活を楽にするために、自分の PC (Windows とクアッドコア xeon cpu) のマスターとして TwinCAT 3 または RTX64 を使用することにしました。3つの質問。1. これらのソフトウェアのうち、どちらが優れているか、またその理由は? 例 - モジュール性、さらなるプロジェクト、互換性 (ソフトウェアとハードウェアの両方)、matlab 統合、コスト (予想外) などに関して (私が言及した以上のものになる可能性があります)。2. ソフトウェアを使用して EtherCAT マスターを構成し、PC の既存のイーサネット ポートを介してデータを送信できますか? 3. XYZ スレーブは非インテル EtherCAT スレーブ チップセットです。これは合併症を引き起こしますか?(理想的にはそうあるべきだ」
canopen - CANopen over EtherCAT (CoE)
- EtherCAT がバスベースであるのに対し、CANopen はポイントツーポイント通信です。ポイントツーポイントは、ノードアドレスがあることを意味します。しかし、これは EtherCAT では冗長です。このノード アドレス バイトが CANopen over EtherCAT でどのように処理されるのか疑問に思っていました。情報を検索してみましたが、これに関する特定の情報は見つかりませんでした。
- また、CANopen デバイスのサイクリック データと非サイクリック データの両方が EtherCAT 経由でサイクリックにのみ送信されると仮定します。これはマスター トリガー サイクリック伝送プロトコルであるためです。これは基本的に、イベントのトリガー時に非同期のイベントトリガー情報を EtherCAT で送信できないことを意味します (これは、CAN の優先度ベースの直感に反するものです。なぜなら、それらはすべて同じ優先度を取得するからです)。これについて間違っている場合は修正してください。また、優先度の高いバイトを優先度の低いバイトよりも速く到達させる方法を教えてください (両方が同時に発生し、新しいフレームの開始時に両方を送信する帯域幅があると仮定します)。
python - 複数の python プロセスで並行して pyads ライブラリを使用する
pyads ( TwinCAT ライブラリを介して TcAdsDll.dll と通信するためのPython libをインポートしました。このライブラリにはマルチスレッド機能があることをここで読みました。
pyads ライブラリを競合することなく複数のプロセスで使用することもできますか?
競合を避けるために、マルチプロセッシングとキューを使用して ADS データを複数のプロセスに共有する pyads ラッパーを作成することを検討しましたが、実行するだけに比べてかなりの作業になります。
そして、同様のプロセスで:
複数のプロセスで pyads.open_port() を実行するだけでは、エラーは発生しません。競合/優先順位付けなしで両方のプロセスで同じデータを受け取るかどうか、誰かが教えてくれることを願っています。
[編集:]同期の問題のリスクを回避するために、プロセス間でデータをマルチプロセッシングおよび共有することにより、システムを実装しました。これは問題なく動作しますが、データフローとプログラミングのオーバーヘッドが発生します。
ethercat - EtherCAT のデータフォーマットは、プロセス指向のみですか?
ビデオの転送など、プロセス管理以外のシナリオで EtherCAT を使用できるかどうかを知りたいです。
ありがとう !