DLLStatusGetItems
函数 DLLStatusGetItems 批量读取多个状态项(轴位置、速度、电流等)的当前值。(比多次调用 DLLStatusGetItem 效率更高。)
C/C++
ErrorCode DLLStatusGetItems(INT_PTR hClientHandle, int count, const short* itemAxes, const short* itemCodes, const int* itemExtras, double* outValues);
C#
Controller.Commands[taskId].Status.AxisStatus(...) 等(C# 侧为逐信号查询;批量二进制接口仅本 C API 提供)。
参数
hClientHandle (INT_PTR)
客户端会话句柄,由 DLLSysConnect 获取。
count (int)
要读取的状态项数量。
itemAxes (const short*)
输入。轴编号数组(0-indexed),第 n 个元素对应第 n 个状态项的轴编号。
itemCodes (const short*)
输入。状态项代码数组,支持的代码包括:ONE_STATUS_POSITION_FEEDBACK (0)、ONE_STATUS_POSITION_COMMAND (1)、ONE_STATUS_VELOCITY_FEEDBACK (3)、ONE_STATUS_CURRENT_FEEDBACK (7)、ONE_STATUS_DRIVE_STATUS (47)、ONE_STATUS_AXIS_STATUS (48)、ONE_STATUS_AXIS_FAULT (49)。
itemExtras (const int*)
输入。额外参数数组。大多数状态项传入 0 即可。具体含义参见各状态项定义。
outValues (double*)
输出。接收各状态项的值数组,元素顺序与输入数组对应。
返回值
返回 ErrorCode;NoError (0) 表示成功,TooManyStatusItems 表示超出单次最大数量限制,正值为其他错误码,详见 SDK 发布头 ErrorCode.h。
示例
short axes[2] = {0, 1};
short codes[2] = {ONE_STATUS_POSITION_FEEDBACK, ONE_STATUS_POSITION_FEEDBACK};
int extras[2] = {0, 0};
double values[2] = {0};
DLLStatusGetItems(handle, 2, axes, codes, extras, values);