XMatrix API-SDK:把运动控制装进你的程序
XMatrix是XMSP的软件系统;本页说明开发接口功能,编号 API-SDK。加载开发包后,可以用函数连接设备、打开官方调试窗、读取状态和驱动运动块。
- 开发包向技术支持领取
- C 接口cdecl · Unicode
- C/C++ · C# · Python多语言
- raw 网卡不用配 IP
它能做什么
开发包把调试软件里那套连接、点动、回零、读状态,变成你可以在自己程序里调用的函数。电脑用网卡 raw 帧找设备,不填 IP;运动逻辑在板子上。
- 连接、断开与读取版本。
- 打开官方调试窗、参数窗。
- 读状态文本、位置、限位、IO。
- 按块回零、按脉冲或百分比移动、急停。
适用边界:浏览器标签页本身进不了网卡 raw。网页、云端大模型都要经过本机宿主(桌面壳、本地服务、Agent 工具)再调开发包;从云端直接连电机这条路不成立。
和XMatrix命令接口怎么选
| 你的情况 | 选哪个 |
|---|---|
| 只要发一行行文本命令,要跨平台或走网络 | XMatrix命令接口(当前公开实现是 UDP,端口 6000) |
| 要在本机程序里弹官方调试窗 / 参数窗、按运动块对象编程、读 SPC 状态文本 | API-SDK(开发包函数) |
| 两者都要 | 可以叠加:命令接口走文本,SDK走开发包函数,同一台设备都能用 |
XMatrix命令接口发送文本命令;API-SDK在程序里调用函数。同一台设备可以两种都用。
快速上手
- 向技术支持领取开发包,库文件放到可执行文件同目录;进程位数必须和库一致(64 位程序配 64 位库)。
- 本机装 WinPcap,网线接设备 NET1(同一交换机也可)。不用配设备 IP,也不用 ping。
MSP_Connect()后循环MSP_Get_Connect(),等到非 0,开发包自己在网卡上搜设备。- 现场调电机:
MSP_Debug();改参数:MSP_Dialog_Config()。 - 未回零先
MSP_Block_T(0),再MSP_Block_A_Percent()按百分比走位。 - 退出:
MSP_DisConnect(),然后MSP_Exit()。
弹窗类函数(调试窗、参数窗)必须在带消息循环的 UI 线程上调用。控制台程序可以连、读状态、发运动;要弹窗请用带界面的本机程序。
统一配置、调试与参数
本软件功能与其他XMatrix入口共用同一套MSP设备基础层。先配置分组、轴和运动模块,再核对原点、限位、方向与回零,最后设置速度、加减速、行程和保护参数;完成这些基础工作后,才进入本页对应的软件模式。
公开函数分类
完整签名以开发包头文件为准,这里只列分类与常用函数名。SDK 与完整 API 联系技术支持领取。
| 分类 | 常用函数 |
|---|---|
| 连接 | MSP_Connect / MSP_Get_Connect / MSP_DisConnect / MSP_Exit |
| 官方窗 | MSP_Debug / MSP_Dialog_Config |
| 状态文本 | MSP_Get_SPC |
| 板卡与 IO | MSP_PCB_GetCount / MSP_PCB_GetDI / MSP_PCB_SetDO / MSP_PCBS_Get_Runtime_State |
| 读位置与限位 | MSP_Direct_Axis_Get_Actual_Pos / MSP_Block_Get_Axis_Actual_Pos_Percent |
| 运动块 | MSP_Blocks_T / MSP_Block_T / MSP_Block_Z / MSP_Block_A / MSP_Block_A_Percent |
| UDP / DMX(可选) | MSP_UDP_Client_Register_Call / MSP_DM_Get_Channel_Data 等 |
多语言示例
- C / C++:
extern "C"头文件 + 导入库,或按当前桌面版动态加载入口;调用约定 cdecl,字符串 Unicode(wchar)。 - C#:
DllImport声明CallingConvention.Cdecl,字符串标CharSet.Unicode;弹窗放带界面的本机 UI 线程。 - Python:
ctypes.CDLL(不要用WinDLL),restype声明成c_wchar_p。
# Python 3 · 最小示例(ctypes,64 位 Python 配 64 位库;文件名以开发包为准) import ctypes, time dll = ctypes.CDLL(r"sdk.dll") # 文件名以领取的开发包为准 dll.MSP_Get_Connect.restype = ctypes.c_int dll.MSP_Get_SPC.restype = ctypes.c_wchar_p dll.MSP_Connect() for _ in range(50): if dll.MSP_Get_Connect(): break time.sleep(0.1) print(dll.MSP_Get_SPC(0, 1)) # 百分比状态文本 dll.MSP_DisConnect() dll.MSP_Exit()
LabVIEW / VB.NET / Unity / Electron / 本机 Agent 按同样的「C 接口 + cdecl + Unicode」导入即可。返回的 SPC 指针指向库内部缓冲区,请立刻拷到本地字符串。
配套硬件
SDK 调的是同一批底层功能,所以「调哪个函数」和「现场接什么线」是一一对应的。
| 函数分类 | 底层功能 | 现场要接 |
|---|---|---|
| 回零 / 原点相关 | 找机械原点 | 槽型光电 ×1 → HM |
| 限位与保护 | 硬限位 + 软限位 | 槽型光电 ×2 → LIM+、LIM−(软限位为纯参数) |
| 运动与位置 | 点位、速度、行程 | —(换算涉及减速比 / 导程) |
| IO 控制 | 数字输入输出 | 刹车经 24V 继电器接 DO |
| 多轴管理 | 站号与级联 | 网线手拉手 |
逐项对照见 XMatrix功能 × MSP硬件对照;配件类别与型号见 配件与配套件。
常见问题
| 现象 | 先看什么 |
|---|---|
| 加载库 / DllImport 失败 | 库文件是否同目录;进程 32 / 64 位是否和库一致;依赖库是否齐 |
| C# 一调用就堆损坏 | 是否误写成 StdCall;字符串是否没标 Unicode |
| Python 参数全乱 | 是否用了 WinDLL;restype 是否声明成 c_wchar_p |
| Connect 一直为 0 | 是否已按当前桌面版装好网络驱动;网线是否接到设备;本机网卡是否被占用。开发包不走 IP,改电脑 IP 或 ping 不通都不是原因 |
| Debug / Dialog_Config 没窗或闪退 | 是否在 UI 线程;控制台程序没有消息循环 |
| 网页 / 云端大模型连不上 | 开发包必须跑在本机宿主;网页用 Electron 或本地服务中转,不要从云端直连网卡 |