C/C++ API 函数索引
OneSysCore.dll 导出的全部 C API 函数,按功能分类。所有函数均返回 ErrorCode(NoError = 0 表示成功),调用约定为 StdCall,仅支持 x64。
页面由 gen_sdk_c_pages.py 依据 OneSysC.h 生成,请勿直接编辑签名部分。
连接与会话
| 函数 | 说明 |
|---|---|
| DLLSetControllerAddress | 设置 One 控制器的目标 IP 地址与端口,后续 DLLSysConnect 使用该地址建立连接。(此函数为进程全局调用,不绑定客户端句柄。) |
| DLLDiscoverControllers | 在指定 UDP 端口上发送广播,发现局域网内运行中的 One 控制器。(无句柄,进程全局广播。) |
| DLLSysConnect | 建立与 One 控制器的客户端会话,返回会话句柄。(支持同一进程内多客户端并发。) |
| DLLSysDisconnect | 销毁指定客户端会话句柄,释放相关资源。 |
系统
| 函数 | 说明 |
|---|---|
| DLLInitializeSystem | 触发 One 控制器的初始化流程(等效于复位操作),初始化完成后可通过 DLLIsSystemInitialized 查询状态。 |
| DLLIsSystemInitialized | 查询 One 控制器当前是否已完成初始化。 |
信息查询
| 函数 | 说明 |
|---|---|
| DLLGetSMCVersion | 获取 One 控制器固件的主版本号、次版本号、修订号与构建号。 |
| DLLGetNumberDrives | 获取 EtherCAT 总线上发现的总驱动数量。 |
| DLLGetDriveCommunicationType | 获取指定驱动的通信类型。(通信类型标识总线协议,如 EtherCAT 等。) |
| DLLGetDriveInfo | 获取指定驱动的完整信息结构体。(结构体二进制布局为 SDK ABI 组成部分,Pack=1,大小 148 字节。) |
参数操作
| 函数 | 说明 |
|---|---|
| DLLGetParameter | 按参数名称读取控制器参数值。(支持轴特定参数与任务特定参数的作用域指定。) |
| DLLGetParameterTable | 下载控制器完整参数表元数据(parametersInfo.xml 文本投影,含 csv_hash,用于参数树构建与固件/SDK 偏差检测)。 |
| DLLSetParameter | 按参数名称写入控制器参数值。(支持轴特定参数与任务特定参数的作用域指定。) |
| DLLSaveParameters | 将控制器当前所有参数值持久化保存到文件。(写入磁盘参数文件。) |
| DLLTransferParameterFile | 将参数文件从 PC 上传至控制器文件系统。 |
变量操作
| 函数 | 说明 |
|---|---|
| DLLVarGlobalGetDoubles | 从控制器读取 $global[] 全局双精度数组。($global[] 为所有任务共享的双精度变量区。) |
| DLLVarGlobalSetDoubles | 向控制器写入 $global[] 全局双精度数组。($global[] 为所有任务共享的双精度变量区。) |
虚拟 IO
| 函数 | 说明 |
|---|---|
| DLLVirtIOGetBinaryInput | 读取控制器虚拟二进制输入字(ushort 数组)。(虚拟 IO 为控制器的软件可编程 IO 映像,支持输入和输出方向。) |
| DLLVirtIOSetBinaryInput | 写入控制器虚拟二进制输入字(ushort 数组)。(虚拟 IO 输入通常由硬件信号驱动,写入可能需要特定权限或仅用于仿真场景。) |
| DLLVirtIOGetBinaryOutput | 读取控制器虚拟二进制输出字(ushort 数组)。(虚拟 IO 输出表示控制器驱动外部设备的软件输出信号。) |
| DLLVirtIOSetBinaryOutput | 写入控制器虚拟二进制输出字(ushort 数组)。(立即更新输出映像,对外部设备产生实际效果。) |
| DLLVirtIOGetRegisterInput | 读取控制器虚拟浮点寄存器输入。(寄存器为 double 精度浮点型 IO,可存储模拟量数据如位置、速度、力等。) |
| DLLVirtIOSetRegisterInput | 写入控制器虚拟浮点寄存器输入。(寄存器为 double 精度浮点型 IO,可存储模拟量数据如位置、速度、力等。) |
| DLLVirtIOGetRegisterOutput | 读取控制器虚拟浮点寄存器输出。(寄存器输出由控制器程序或 SDK 写入,可驱动需要模拟量输入的外部设备。) |
| DLLVirtIOSetRegisterOutput | 写入控制器虚拟浮点寄存器输出。(立即更新寄存器输出映像,可驱动需要模拟量输入的外部设备。) |
状态与任务
| 函数 | 说明 |
|---|---|
| DLLStatusGetItems | 批量读取多个状态项(轴位置、速度、电流等)的当前值。(比多次调用 DLLStatusGetItem 效率更高。) |
| DLLStatusGetItem | 读取单个状态项的当前值。(常用状态项代码定义在头文件中:位置反馈、指令位置、速度反馈、电流反馈、轴状态字等。) |
| DLLPcoGetFiredCount | 读取轴所在驱动器的 PCO 已触发脉冲计数。即时 SDO 读(不经指令队列),计数自上次 PCO ARM 起累计。 |
| DLLTaskStop | 停止一个或多个程序任务。(通过任务掩码指定要停止的任务,支持同时停止多个任务。) |
命令执行
| 函数 | 说明 |
|---|---|
| DLLExecute | 执行一条指令并返回成功或失败,是客户执行指令的统一主入口——运动(MOVEABS/LINEAR/RAPID)、使能、回零、参数设置指令、诊断操作等绝大多数操作都经本接口下发。失败原因通过 DLLGetLastCommandDetail 获取。 |
| DLLGetLastCommandDetail | 获取最近一次 DLLExecute 调用失败时的详细错误描述文本。(进程全局,无句柄依赖。) |
| DLLApplyCalibrationNow | 将各轴已存储的 1D 校准表(Calibration1DTable 参数)立即下载至对应驱动器;控制器连接驱动器时也会自动重放。(格式见帮助「1D轴校准数据格式」。) |
数据采集
| 函数 | 说明 |
|---|---|
| DLLDataCollectionConfigure | 配置数据采集通道、采样周期和采集模式。(调用此函数后需调用 DLLDataCollectionStart 启动采集。) |
| DLLDataCollectionStart | 启动数据采集。(采集配置由 DLLDataCollectionConfigure 预先设置。) |
| DLLDataCollectionStop | 停止当前数据采集。 |
| DLLDataCollectionGetStatus | 查询当前数据采集的状态。(返回已采集样本数、写指针位置、采集状态和连续/有限模式标志。) |
| DLLDataCollectionGetData | 按起始索引读取已采集的样本数据。(从控制器的循环缓冲区中读取数据,支持在采集过程中读取。) |
| DLLDataCollectionGetQueueData | 以队列方式读取最新采集的样本数据。(每次调用读取自上次读取以来的所有新样本,适合实时数据流处理。) |
OneScript 脚本
| 函数 | 说明 |
|---|---|
| DLLOneScriptLoad | 将 OneScript(基于 Lua 语法)程序文件(.pgm)加载到指定任务中。(路径由运行 OneController 的 PC 解释,不在控制器端解释。) |
| DLLOneScriptValidate | 对 OneScript 脚本内容进行编译验证,不执行程序。(返回 JSON 格式的错误列表,包含错误行号和描述。) |
| DLLOneScriptLoadBuffer | 从内存缓冲区加载 OneScript 程序到指定任务。(适合动态生成脚本内容或从非文件源加载程序的场景。) |
| DLLOneScriptRun | 运行指定任务中已加载的 OneScript 程序。 |
| DLLOneScriptStop | 停止指定任务中正在运行的 OneScript 程序。 |
| DLLOneScriptGetStatus | 查询指定任务中 OneScript 程序的运行状态、当前行号、错误码与错误信息。(程序输出缓冲区内容也可一并获取。) |
| DLLOneScriptUnload | 卸载指定任务上已加载的 OneScript 程序(运行态与队列一并清除)。 |