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