2016-07-30 64 views
0

我建立了一個由3個引擎組成的CANOpen網絡,每個引擎都有自己的CANOpen從站。我有一個Hilscher CifX板作爲CANOpen主設備。是否可以通過SDO輪詢CANOpen變量,如果是這樣,怎麼辦?

我已經通過將RPDO和TPDO直接讀入Hilscher主板的進程內存來實現正確的引擎命令。

現在,我嘗試通過Sycon.NET(Hilscher配置工具)設置網絡,以將附加變量映射到PDO,但我想捕獲的變量未出現在列表中。我認爲這是因爲EDS爲這些變量提供PDO Mapping = 0

我想讀取這些變量的值每20ms左右。我可以通過SDO輪詢設備嗎?如果是這樣,怎麼樣?

回答

1

您可以在對象上執行SDO上傳。

該消息應該看起來像這樣(對象指數:0×1234,子索引:0×01):

編號:0x680 +的NodeId,DLC:8,數據:0x40的0x34 0×12 0×01 0×00 0×00 0×00 0×00

您可以在CiA DS301中找到關於SDO的更多信息。

+0

@ M.Neubauer:謝謝。我查看了DS301,並可以將您的示例映射到「Initiate SDO Upload」協議的消息結構。我看到「加速傳輸」位是從屬設備響應的一部分(在我的情況中)。這是否意味着在這種情況下從機可以選擇傳輸模式?是否有保證,由於數據不超過4個字節,從機總是選擇使用快速傳輸? –

+0

是的,它由主機決定傳輸模式。我認爲大部分實施都會加快轉移。但可以通過分段上傳傳輸少於4個字節的數據。所以沒有保證。 – mkninc

+0

所以我很好的貫徹整個服務。 –

相關問題