0

SOEM および SOES ライブラリを使用して SDO 通信を実装していますが、いくつか問題があります。詳細を説明すると、Ethercat マスターとして Ubuntu を搭載した PC と、LAN9252 を使用する ethercat スレーブを使用しています。スレーブは、SOES プログラムをロードするために使用されるウィンドウ 10 を備えた PC に接続されます。ソフトウェアがロードされると、変数をチェックするためにデバッグ モードで接続されたままになります。SDO 通信に問題があります。マスターで、slaveinfo.c プログラム (このプログラムは SOEM ライブラリに含まれています) をコマンド ウィンドウからオプションのパラメーター -sdo を使用して実行すると、次の結果が得られます。

SOEM (Simple Open EtherCAT Master) Slaveinfo enp2s0 での slaveinfo ec_init の開始に成功しました。1 個のスレーブが見つかり、構成されました。計算されたワークカウンター 3

Slave:1 Name: SSC_Device Output size: 1024bits Input size: 1024bits State: 4 Delay: 0[ns] Has DC: 1 DCParentport:0 Activeports:1.0.0.0 Configured address: 1001 Man: 00000afc ID: 00010000 Rev: 00000001 SM0 A :1000 L: 128 F:00010026 タイプ:1 SM1 A:1200 L: 128 F:00010022 タイプ:2 SM2 A:1400 L: 128 F:00010064 タイプ:3 SM3 A:1600 L: 128 F:00010020 タイプ:4 FMMU0 Ls:00000000 Ll: 128 Lsb:0 Leb:7 Ps:1400 Psb:0 Ty:02 Act:01 FMMU1 Ls:00000080 Ll: 128 Lsb:0 Leb:7 Ps:1600 Psb:0 Ty:01 Act:01 FMMUfunc 0:1 1:2 2:0 3:0 MBX 長 wr: 128 rd: 128 MBX プロトコル: 04 CoE 詳細: 0d FoE 詳細: 00 EoE 詳細: 00 SoE 詳細: 00 Ebus 電流: 0[mA] LRD のみ/LWR:0 ec_slave[cnt].mbx_proto: 04 printSDO: 1 スレーブ情報を終了し、ソケットを閉じます プログラムを終了します

問題は、CoE に従って PDO マッピングが表示されないことです。マスターとスレーブ間のパッケージの交換を確認したところ、マスターがリクエストを送信し、スレーブがそれを受信し、スレーブが応答リクエストを送信しましたが、マスターはそれを受信して​​いませんでした。スレーブ デバッガーから SM_status (同期マネージャー ステータス SM1 0x080d) を確認しました。これは、mailmox がいっぱいかどうか、およびマスターが読み取れるかどうかを示すレジスターであり、このレジスターの値が変更されていないことがわかりました。誰かが何が問題なのか知っていますか? eeprom メモリには、正しい SDO 通信を可能にする特定の構造が必要ですか? それとも、スレーブ ソフトウェアの問題だけですか?

ありがとう。

4

2 に答える 2

0

sudo ./slaveinfo eth2 -map

SOEM (Simple Open EtherCAT Master)
Slaveinfo
Starting slaveinfo
ec_init on eth2 succeeded.
1 slaves found and configured.
Calculated workcounter 3

Slave:1
 Name:Servo Drives
 Output size: 88bits
 Input size: 88bits
 State: 4
 Delay: 0[ns]
 Has DC: 1
 DCParentport:0
 Activeports:1.0.0.0
 Configured address: 1001
 Man: 0000029c ID: 02c30001 Rev: 00000003
 SM0 A:1000 L: 128 F:00010026 Type:1
 SM1 A:1400 L: 128 F:00010022 Type:2
 SM2 A:1800 L:  11 F:00010064 Type:4
 SM3 A:1c00 L:  11 F:00010020 Type:3
 FMMU0 Ls:00000000 Ll:  11 Lsb:0 Leb:7 Ps:1c00 Psb:0 Ty:02 Act:01
 FMMU1 Ls:0000000b Ll:  11 Lsb:0 Leb:7 Ps:1800 Psb:0 Ty:01 Act:01
 FMMUfunc 0:1 1:2 2:3 3:0
 MBX length wr: 128 rd: 128 MBX protocols : 0e
 CoE details: 2f FoE details: 01 EoE details: 01 SoE details: 00
 Ebus current: 0[mA]
 only LRD/LWR:0
PDO mapping according to CoE :
  SM2 inputs
     addr b   index: sub bitl data_type    name
Number of subindex: 4
  [0x000B.0] 0x6040:0x00 0x10 UNSIGNED16   Control Word
  [0x000D.0] 0x607A:0x00 0x20 INTEGER32    Position set-point
  [0x0011.0] 0x60FF:0x00 0x20 INTEGER32    Velocity set-point
  [0x0015.0] 0x6060:0x00 0x08 INTEGER8     Operation mode
  SM3 outputs
     addr b   index: sub bitl data_type    name
Number of subindex: 4
  [0x0000.0] 0x6041:0x00 0x10 UNSIGNED16   Status Word
  [0x0002.0] 0x6064:0x00 0x20 INTEGER32    Actual position
  [0x0006.0] 0x606C:0x00 0x20 INTEGER32    Actual velocity
  [0x000A.0] 0x6061:0x00 0x08 INTEGER8     Operation mode display
End slaveinfo, close socket
End program
于 2020-07-14T10:27:06.680 に答える