软赢科技 WMX3 运动控制软件详解与入门实战

1. 产品概述

WMX3 是软赢科技推出的高性能软运动控制器,它突破了传统运动控制卡的硬件限制,将运动控制算法完全运行在 PC 的 CPU 上,通过标准工业以太网(EtherCAT/CC-Link IE TSN)连接伺服驱动器和 I/O 模块。

核心特点:

  • 纯软件实现:无需专用运动控制芯片
  • 高性价比:只需普通 PC + 以太网卡 + 伺服系统
  • 多轴与高实时性:最多 128 轴,最小周期 0.125ms(RTX 实时版)
  • 开放 API:支持 C/C++、C#、Python 等语言开发

它属于软运动控制器(Soft Motion Controller)类别,适合需要灵活定制和高性能的自动化应用。


2. 版本对比

特性 WMX3 RTX 实时版 WMX3 Windows 版
实时性 高(RTX 子系统,独占 CPU 核心) 一般(Windows 调度)
控制周期 0.125ms ~ 8ms 8ms
最大轴数 128 轴 128 轴
通信总线 EtherCAT / CC-Link IE TSN EtherCAT
适用场景 高速高精度多轴联动 低速点到点、简单同动
系统要求 Windows + RTX 许可证 Windows 7/10

3. 核心功能

3.1 运动控制

  • 控制模式:位置模式 (PP)、速度模式 (PV)、扭矩模式、轮廓位置 (CSP)、电子齿轮、电子凸轮
  • 插补功能:直线、圆弧、螺旋、样条、PVT 等
  • 加减速曲线:梯形、S 曲线、加加速度控制

3.2 同步与触发

  • 多轴同步输出
  • 位置比较触发(硬件级输出)
  • 事件触发运动

3.3 回零与补偿

  • 多种回零方式(原点开关、限位开关、编码器零点)
  • 反向间隙补偿、螺距误差补偿、平面度补偿

3.4 I/O 控制

  • 支持数字量输入 / 输出
  • 支持模拟量输入 / 输出(需硬件支持)

4. 硬件与环境要求

最小配置(Windows 版)

  • CPU:Intel J1900 或更高
  • 内存:2GB
  • 网卡:千兆以太网(建议 Intel)
  • 操作系统:Windows 7/10(64 位)
  • 软件:WMX3 安装包

推荐配置(RTX 实时版)

  • CPU:Intel Core i5/i7(4 核及以上)
  • 内存:8GB+
  • 网卡:Intel 82574L / I210 等稳定型号
  • RTX 许可证

外部设备

  • EtherCAT 伺服驱动器(支持 CoE)
  • 电源线、EtherCAT 网线
  • 限位开关、原点开关(可选)

5. 安装与配置

  1. 安装 WMX3 软件

    • 运行安装包,按提示安装
    • 安装完成后,会注册系统服务和 API 库
  2. 配置 EtherCAT 网络

    • 打开WMX3 Configurator
    • 扫描从站设备
    • 配置轴映射、I/O 映射
    • 保存配置并下载到控制器
  3. 测试通信

    • 使用诊断工具检查各轴状态
    • 确认无通信错误

6. 从 0 到 1 的 C# 开发 Demo

假设我们要控制 1 个轴 进行点到点运动:

6.1 创建项目

  • Visual Studio 新建 C# 控制台项目
  • 引用WMX3ApiCLR.dll(.NET 接口)

6.2 编写代码

cs 复制代码
using System;
using WMX3ApiCLR; // 软赢提供的.NET API

class Program
{
    static void Main(string[] args)
    {
        IntPtr handle = IntPtr.Zero;

        try
        {
            // 1. 连接控制器
            int ret = WMX3ApiCLR.WMX3_OpenEtherCAT("192.168.1.100", out handle);
            if (ret != 0) throw new Exception("连接失败: " + ret);

            Console.WriteLine("连接成功!");

            // 2. 初始化轴(轴号0)
            WMX3ApiCLR.WMX3_Reset(handle, 0);

            // 3. 设置速度与加速度
            WMX3ApiCLR.WMX3_SetVel(handle, 0, 1000);       // 1000 pulse/s
            WMX3ApiCLR.WMX3_SetAcc(handle, 0, 5000);       // 5000 pulse/s²
            WMX3ApiCLR.WMX3_SetDec(handle, 0, 5000);       // 5000 pulse/s²

            // 4. 绝对运动到10000脉冲位置
            Console.WriteLine("开始运动到10000...");
            WMX3ApiCLR.WMX3_MoveAbs(handle, 0, 10000);

            // 5. 等待到位
            while (true)
            {
                uint status = 0;
                WMX3ApiCLR.WMX3_GetStatus(handle, 0, out status);
                if ((status & 0x01) != 0) // 到位标志位
                    break;
                System.Threading.Thread.Sleep(10);
            }

            Console.WriteLine("运动完成!");

            // 6. 回零
            Console.WriteLine("开始回零...");
            WMX3ApiCLR.WMX3_Home(handle, 0);

            // 7. 等待回零完成
            while (true)
            {
                uint status = 0;
                WMX3ApiCLR.WMX3_GetStatus(handle, 0, out status);
                if ((status & 0x02) != 0) // 回零完成标志位
                    break;
                System.Threading.Thread.Sleep(10);
            }

            Console.WriteLine("回零完成!");
        }
        catch (Exception ex)
        {
            Console.WriteLine("错误: " + ex.Message);
        }
        finally
        {
            if (handle != IntPtr.Zero)
                WMX3ApiCLR.WMX3_Close(handle);
        }
    }
}

6.3 运行效果

  • 程序连接到 WMX3 控制器
  • 轴 0 以 1000pulse/s 速度运动到 10000 脉冲位置
  • 到位后自动回零
  • 控制台输出各步骤状态

7. 进阶应用建议

  • 多轴联动 :使用WMX3_MoveLinear等插补 API
  • 事件触发:注册事件回调处理限位、到位等信号
  • 电子齿轮 / 凸轮:用于同步跟随场景
  • 误差补偿:添加反向间隙补偿提升定位精度

8. 总结

WMX3 是一款功能强大、灵活开放的软运动控制器,特别适合需要高轴数、高精度、定制化的自动化场景。通过 C# 等高级语言的 API,可以快速实现复杂的运动控制逻辑,大大降低开发门槛。