跳转至

C/C++ API 函数索引

OneSysCore.dll 导出的全部 C API 函数,按功能分类。所有函数均返回 ErrorCodeNoError = 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 程序(运行态与队列一并清除)。