跳转至

DLLStatusGetItems

函数 DLLStatusGetItems 批量读取多个状态项(轴位置、速度、电流等)的当前值。(比多次调用 DLLStatusGetItem 效率更高。)

所属:C/C++ API 函数索引

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*)

输出。接收各状态项的值数组,元素顺序与输入数组对应。

返回值

返回 ErrorCodeNoError (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);

相关函数