問題タブ [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.

0 投票する
1 に答える
421 参照

c# - UDP パケットがネットワーク上にある場合、アプリケーション層で確実に取得できますか?

まず、UDP は信頼できるプロトコルではないことを認識しており、ネットワーク経由でパケットを受信できる保証はありません。

しかし、パケットが自分のマシンに到達した場合、アプリケーション レベルで受信することが保証されているのでしょうか?それとも、ネットワーク スタックが問題なく破棄できるのでしょうか?

私が尋ねる理由は、パケットがネットワーク上にあることを知っていても、パケットが時々失われているように見えるからです (単純な EtherCAT バスなので、パケットは常にループ バックします)。

0 投票する
2 に答える
8546 参照

ethercat - バックグラウンドなしで EtherCAT を勉強するにはどうすればよいですか?

私は EtherCAT の初心者です。そして、EtherCAT マスターを研究するための良い出発点を探しています。

SOEMと呼ばれる優れたオープン ソース実装があることがわかりました。

しかし、EtherCAT の背景知識がなければ、コードを理解するのは非常に困難です。

EtherCAT マスターを勉強する方法を見つけるのを手伝ってくれる人はいますか?

0 投票する
0 に答える
658 参照

go - 自身の IP からマルチキャストを受信

Go で書かれた Ethercat マスターに取り組んでいます。基礎となるライブラリはhttp://github.com/distributed/ecatにあり、UDP とマルチキャストを使用する 1 つのリンク レベル ドライバが含まれています。このリンク レベル ドライバーを複数のプラットフォーム (OS X、Windows、Linux) および異なるネットワーク構成で一貫して動作させるのに問題があります。

Ethercat に慣れていない人のために、これがどのように機能するかを説明します。Ethercat は、イーサネットに基づく産業用バス システムです。1 つのバス マスターと、場合によっては多数のスレーブがあり、論理リングに接続されています。マスターは、市販のハードウェア、つまり通常のイーサネット インターフェイス カードを使用して構築できます。マスターはイーサネット インターフェイスでパケットを送信し、スレーブはオンザフライでパケットを変更し、すべてのスレーブを通過した後、マスターはそれを送信したのと同じネットワーク インターフェイスでパケットを受信します。スレーブの数によっては、ネットワーク インターフェイスがまったく同じパケットを送信している間に、パケットの受信を開始する場合があります。Ethercat フレームには 2 つの形式があります。1 つ目は、特殊な ethertype を持つイーサネット パケットです。2 つ目は、ポート 0x88a4 宛ての UDP パケットです。

イーサネット パケットに含まれるコマンドに応じて、スレーブはパケットの Ethercat データを変更する場合と変更しない場合があります。Ethercat データの変更とは別に、変更されるパケットに関する唯一のことは、イーサネット宛先アドレスのビット 1 が 1 に設定されることです。パケットの IP ヘッダーは、Ethercat スレーブによって変更されません。

私のコードは次のように動作します。私は、Ethercat スレーブを接続239.255.65.10したインターフェイス上などで、マルチキャスト グループに参加します。バスとデータを交換するために、パケットを送信します。このインターフェイスxyzで に呼び出しましょう。OS は送信元アドレス、たとえばinterface の IP アドレスを入力します。パケットがバスを通過し、変更された可能性があるため、現在は packet になっています。IP ヘッダーには、送信元と送信先がまだあります。ホストのネットワーク設定によっては、このパケットがアプリケーションに到達する場合と到達しない場合があります。私のアプリケーションに到達しない場合、たとえばLinux でパケットが設定されている場合pA239.255.65.10192.168.5.2xyzpB192.168.5.2239.255.65.10rp_filterpB私のマシンから発信されたように見えるため拒否されましたが、ネットワーク経由で自分のパケットを受信するべきではありません。

処理されたパケットを確実に受信するには、どのような手順を実行すればよいpBですか? ループバックについて話しているのではないことに注意してください。ループバックはパケットの受信pAに関するものであり、私の質問は受信に関するものpBです。

0 投票する
3 に答える
416 参照

ethercat - あいまいな EtherCAT 詳細

以下は、EtherCAT の紹介文です。

EtherCAT マスターは、各ノードを通過するテレグラムを送信します。各 EtherCAT スレーブ デバイスは、自分宛てのデータを「オンザフライ」で読み取り、フレームがダウンストリームに移動するときにそのデータをフレームに挿入します。

上記のテキストからの私の質問:

  • 「オンザフライ」でデータを読み取るとはどういう意味ですか?
  • 移動中にフレームにデータを挿入するにはどうすればよいですか? 最初にバッファにコピーしてから更新する必要はありませんか?

このテキストはhttp://www.ethercat.org/en/technology.htmlからの引用です。

0 投票する
2 に答える
791 参照

ios - iPadでサーボドライブ・モーターを制御

私は自動化の分野に不慣れなので、「初心者」の質問:

目標は、iPad アプリを介して 2 つのサーボ モーターを制御することです。
Panasonic または Beckhoff ドライバのいずれかを使用することを考えました。Panasonic の方が少し安価ですが、Beckhoff の方がおそらく機能が多く、全体的に文書化されているようです。

プラグ アンド プレイ オプションがないため (少なくとも、完全にカスタム化された iOS アプリを使用できるものは聞いたことがありません)、ethercat ドライバーを入手して、リンクとして機能する Rasperry Pi をそれに接続することを考えました。

[MOTOR]---[DRIVER]---[PI]---wifi---[iPad]

誰かがこのようなことをしたことがあり、私にいくつかのヒントを与えることができますか?