GetSlaveById
使用 ID 從指定的從站取得詳細訊息。
語法
KsError GetSlaveById(
int SlaveId,
SlaveStatus* Details
);
參數
SlaveId:即從站索引 (Slave Index)。此索引是 KINGSTAR 主站於 EtherCAT 網路啟動時,根據實體連接順序自動指派的。直接連線到主站的第一個裝置會被指派為索引 0 (Index 0),接著是索引 1、索引 2,依此類推。即使新增、移除或重新連線裝置,這些索引在從站陣列中也會保持一致。請參閱 熱插拔 (HotConnect)、修復與重啟 中的使用案例以了解更多詳細資訊。
Details:SlaveStatus 結構指標,用以接收從暫狀態的詳細資訊。
回傳值
若此函式執行成功,會回傳 errNoError,否則會傳回錯誤碼。更多關於錯誤碼的資訊,請參閱 KsError 清單。
備註
使用 EtherCAT 迴路中的從站位置檢索指定從站的詳細資訊,由於使用的是從站 ID,因此不使用別名資訊。此僅適用於不區分軸或 I/O 的實際從站模組,請在 KINGSTAR 子系統啟動後使用
可用的 EtherCAT 狀態
ecatInit, ecatBoot, ecatPreOP, ecatSafeOP, ecatOP
範例
複製
SlaveStatus slaveStatus = { 0 };
nRet = GetSlaveById(0, &slaveStatus);
if (nRet == errNoError)
{
// Check the slave information in the SlaveStatus structure.
RtPrintf("Device 0 %s: Vendor 0x%x, Product 0x%x, Revision 0x%x, Serial 0x%x\n",
slaveStatus.Name, slaveStatus.VendorId, slaveStatus.ProductCode,
slaveStatus.RevisionNumber, slaveStatus.SerialNumber);
RtPrintf("Address: Auto %d, Fixed %d, Alias %d\n",
slaveStatus.SlaveId, slaveStatus.PhysAddress, slaveStatus.AliasAddress);
RtPrintf("PDO: Input len %d, Output len %d, Index offset 0x%x\n",
slaveStatus.InputLength, slaveStatus.OutputLength, slaveStatus.VariableIndexOffset);
RtPrintf("State %d, Cycle time %d\n", slaveStatus.State, slaveStatus.CycleTime);
}
使用需求
| RT | Win32 | |
|---|---|---|
| 最低支援版本 | 4.0 | 4.0 |
| 標頭檔 | ksapi.h | ksapi.h |
| 程式庫 | KsApi_Rtss.lib | KsApi.lib |
參見