在CANopen網(wǎng)絡(luò)中無法獲取從站的TPDO數(shù)據(jù)?本文將為您解析可能的原因及解決方案。通過檢查TPDO的通信參數(shù)和傳輸類型,確保主站與從站的數(shù)據(jù)同步,快速定位問題所在。
如果你的CANopen網(wǎng)絡(luò)中已經(jīng)確保接線和波特率都沒有問題,但無論主站如何發(fā)送網(wǎng)絡(luò)管理命令,都無法使從站切換操作模式,并且反復(fù)給從站上下電也無法獲取到從站的TPDO數(shù)據(jù),這該怎么辦呢?別急!很有可能是因為從站發(fā)送的TPDO ID與主站設(shè)置的ID不符,或者是從站根本就沒有滿足TPDO上傳的條件,因此沒有發(fā)送TPDO數(shù)據(jù)。
如何判斷ID是否正確?
根據(jù)CANopen協(xié)議,TPDO1的通訊參數(shù)固定在索引0x1800
中。我們可以通過SDO(服務(wù)數(shù)據(jù)對象)來訪問這個索引,獲取TPDO1的COB-ID(通訊對象標(biāo)識符)和傳輸類型。
獲取TPDO1的COB-ID
要獲取TPDO1的COB-ID,我們需要發(fā)送SDO指令:
指令I(lǐng)D為0x600 + NodeID
(節(jié)點號)。
輸入段部分:命令符0x40讀取01子索引的內(nèi)容,例:40?00 18 ?01(子索引)?00?00?00?00。
通過從站的SDO回復(fù),我們就可以知道TPDO1的COB-ID。
檢查傳輸類型
如果發(fā)現(xiàn)ID已經(jīng)對上了,但還是沒有收到TPDO數(shù)據(jù),說明從站可能沒有滿足TPDO上傳的條件。通過SDO指令訪問02子索引來獲取TPDO1的傳輸類型,傳輸類型可以根據(jù)以下表格參考:
只有在滿足觸發(fā)條件時,從站才會上傳TPDO數(shù)據(jù)。
那么,這些傳輸類型觸發(fā)條件應(yīng)該如何得到滿足呢?關(guān)注我們,下期為你講解。
USBCANFD系列CANFD接口卡?
? 2路CANFD
??DB9接口形式
? 13萬幀緩沖不丟幀
參考價格:2300元