XMatrix接口 · API-SDK

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在程序里调用函数。同一台设备可以两种都用。

快速上手

  1. 向技术支持领取开发包,库文件放到可执行文件同目录;进程位数必须和库一致(64 位程序配 64 位库)。
  2. 本机装 WinPcap,网线接设备 NET1(同一交换机也可)。不用配设备 IP,也不用 ping。
  3. MSP_Connect() 后循环 MSP_Get_Connect(),等到非 0,开发包自己在网卡上搜设备。
  4. 现场调电机:MSP_Debug();改参数:MSP_Dialog_Config()。
  5. 未回零先 MSP_Block_T(0),再 MSP_Block_A_Percent() 按百分比走位。
  6. 退出:MSP_DisConnect(),然后 MSP_Exit()。
弹窗类函数(调试窗、参数窗)必须在带消息循环的 UI 线程上调用。控制台程序可以连、读状态、发运动;要弹窗请用带界面的本机程序。

统一配置、调试与参数

本软件功能与其他XMatrix入口共用同一套MSP设备基础层。先配置分组、轴和运动模块,再核对原点、限位、方向与回零,最后设置速度、加减速、行程和保护参数;完成这些基础工作后,才进入本页对应的软件模式。

XMatrix统一硬件配置界面:分组、轴与运动模块
统一硬件配置:建立分组和轴,并为每根轴添加运动模块
XMatrix统一运动调试界面:原点、限位、输入输出、位置、点动、回零与停止
统一运动调试:观察原点、正负限位和IO,低速点动确认方向,再执行回零
XMatrix统一参数设置界面:方向、速度、加减速、行程、力矩、回零与保护参数
统一参数设置:集中管理方向、速度、加减速、行程、力矩、回零与保护;图中数值仅为界面示例

公开函数分类

完整签名以开发包头文件为准,这里只列分类与常用函数名。SDK 与完整 API 联系技术支持领取。

分类常用函数
连接MSP_Connect / MSP_Get_Connect / MSP_DisConnect / MSP_Exit
官方窗MSP_Debug / MSP_Dialog_Config
状态文本MSP_Get_SPC
板卡与 IOMSP_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 或本地服务中转,不要从云端直连网卡