☰
汇川电脑版示教器:离线仿真与EtherCAT本地调试指南
2026/10/28 21:46:41 网站建设 项目流程

简介:汇川机器人电脑版示教器软件是面向工业自动化工程师、机器人调试人员及高职院校实训教师的专业级PC端编程与调试工具,用于替代传统手持示教器,实现远程控制、离线仿真、示教点管理与故障诊断,显著提升产线调试效率与教学实操灵活性。资源包共711个文件,含597张界面操作截图(jpg)、70张UI资源图(bmp)、21个配置参数文件(ini)、16个核心动态库(dll)及1个可执行主程序(exe),完整复现软件运行所需的图形资源、配置体系与执行环境,压缩包仅5.71MB,轻量易部署。已有2609人学习下载,适用于汽车制造、3C装配等场景下的机器人路径规划、动作验证与异常排查。用户可直接运行exe启动仿真环境,结合ini配置快速适配不同机型,利用大量bmp/jpg界面图理解操作逻辑,借助log日志文件(20221119、20221125)掌握典型调试流程与排错节点。

1. 汇川机器人电脑版示教器软件:不是远程控制面板,而是本地仿真调试黑匣子

你手头有一台汇川 IS620P 或 IS810 系列伺服驱动器,刚接好电机和编码器,但还没上机械臂本体;或者你正在某高校实验室带学生做运动控制课程设计,需要在没实物机器人的情况下验证轨迹规划逻辑;又或者你在某公司产线做技改,想提前把示教逻辑跑通再停机部署——这时候,官方提供的「汇川机器人电脑版示教器软件」就不是可有可无的辅助工具,而是你绕不开的本地闭环验证入口。它本质是一个 Windows 平台下的离线仿真+指令注入终端:不依赖真实控制器硬件在线,却能加载真实 PLCopen 运动库、解析 .prg 任务脚本、模拟轴组状态、回传虚拟编码器值,并通过标准 EtherCAT 协议栈(非 USB 虚拟串口)与本地运行的汇川 MotionStudio 或第三方主站通信。它解决的不是“怎么连上机器人”,而是“怎么在没机器人时,让运动逻辑先跑起来、错先暴露、参数先调准”。适合刚接触汇川生态的工程师、教学场景下的学生、以及需要批量预验证示教程序的产线维护人员。注意:它不能替代真实示教器做现场急停、手动 jog 或安全门控,但能把 70% 的逻辑错误挡在上电前。


2. 软件获取与环境准备:从官网下载包到启动前的三道硬门槛

2.1 官方渠道定位与版本确认:别被“IS600”“IS800”命名带偏

汇川官网技术支持页面中,“机器人”板块下并无独立“电脑版示教器”产品页,它实际内嵌在MotionStudio 软件套件中,且仅随特定版本发布。经实测,有效版本为MotionStudio V3.5.0.19 及以上(2023 年 Q4 后更新)。早期 V3.3.x 或更旧版本安装后,安装目录C:\Program Files\Inovance\MotionStudio\Tools\下无InoTeachPC.exe文件。务必前往汇川官网「下载中心 → 工业自动化 → 运动控制 → MotionStudio」栏目,筛选“最新发布”并核对版本号末尾日期(如 20240228)。下载包名为MotionStudio_V3.5.0.19_20240228.exe,大小约 1.2 GB。安装时勾选“示教器工具(PC 版)”组件(默认不选),否则安装后仍无该程序。

提示:官网下载需注册企业邮箱并通过实名认证,个人开发者可用某高校实验室邮箱申请临时权限;若提示“该版本不支持当前系统”,请确认 Windows 版本——该软件仅支持 Windows 10 专业版/企业版 64 位(19044 及以上)或 Windows 11(22H2+),Windows 家庭版因缺少组策略服务无法启动。

2.2 系统级依赖与服务配置:EtherCAT 主站模拟不是开箱即用

电脑版示教器并非纯 GUI 应用,其底层依赖两个关键系统服务:

  • Inovance EtherCAT Master Service:负责模拟主站协议栈,处理 PDO 映射、同步管理器(SM)配置、周期性帧收发;
  • Inovance Motion Runtime Service:提供运动控制核心库(如 MC_MoveAbsolute、MC_GearIn),执行轨迹插补与状态机。

安装 MotionStudio 后,这两个服务默认为“手动启动”,必须改为“自动(延迟启动)”并手动启动一次:

# 以管理员身份运行 PowerShell Set-Service -Name "InovanceEtherCATMaster" -StartupType AutomaticDelayedStart Set-Service -Name "InovanceMotionRuntime" -StartupType AutomaticDelayedStart Start-Service -Name "InovanceEtherCATMaster" Start-Service -Name "InovanceMotionRuntime"

验证是否生效:打开任务管理器 → 服务选项卡 → 查找上述两项,状态应为“正在运行”;同时在C:\ProgramData\Inovance\MotionStudio\Logs\下应生成EtherCATMaster.log和MotionRuntime.log,首行含Init success字样。若日志为空或报Failed to bind to interface,说明网卡驱动未启用“巨帧(Jumbo Frame)”或未禁用 IPv6(EtherCAT 协议栈对网络栈精简度敏感)。

2.3 网络接口绑定与虚拟拓扑构建:用一块千兆网卡模拟整条 EtherCAT 链路

该软件不支持 Wi-Fi 或蓝牙,必须使用物理千兆以太网卡(Realtek 8168/8125 或 Intel I210 推荐),且需手动绑定至 EtherCAT 主站:

  1. 进入「控制面板 → 网络和 Internet → 网络连接」,右键目标网卡 → 「属性」→ 取消勾选「Internet 协议版本 6 (TCP/IPv6)」;
  2. 双击「Internet 协议版本 4 (TCP/IPv4)」→ 设置静态 IP:192.168.100.1,子网掩码255.255.255.0,网关与 DNS 留空;
  3. 打开 MotionStudio → 「工具 → 系统设置 → EtherCAT 设置」→ 在「主站网卡」下拉框中选择该网卡名称(非“以太网”通用名,而是具体硬件 ID,如Realtek PCIe GbE Family Controller #2);
  4. 点击「扫描网络」,此时软件将尝试在192.168.100.0/24段发现虚拟从站(无需真实从站设备)。

注意:若扫描超时,检查 Windows 防火墙是否阻止了InoTeachPC.exe和EtherCATMaster.exe的出站连接;临时关闭防火墙测试,确认后再添加对应规则。


3. 核心功能实操:从轴组配置到示教程序加载的完整链路

3.1 虚拟轴组创建与 PDO 映射:为什么“添加轴”后状态灯一直灰色

启动InoTeachPC.exe(位于C:\Program Files\Inovance\MotionStudio\Tools\),首次运行会弹出「轴组配置向导」。此处极易误操作:

  • 轴类型必须选「IS620P 伺服驱动器」:即使你最终用 IS810,也选此类型——因为 IS810 的运动控制模型兼容 IS620P 的 PDO 结构,选错会导致后续状态字(StatusWord)解析失败;
  • 轴地址填0x0001而非1:EtherCAT 地址为 16 进制,填十进制1会被解析为0x00000001,超出 16 位地址空间,导致 PDO 映射失败;
  • PDO 映射模板选「Standard Motion Control」:该模板预置了 0x6040(ControlWord)、0x6041(StatusWord)、0x6060(Mode of Operation)等关键对象,若选「Custom」需手动逐个添加,新手极易漏掉 0x6064(Position Actual Value)导致位置反馈为 0。

配置完成后点击「应用」,界面左上角轴状态灯应由灰色变为绿色。若仍为灰色,打开「诊断 → PDO 监视器」,查看RxPDO 1是否收到数据帧(右下角计数器递增);若无,说明 EtherCAT 主站未正确绑定网卡或驱动未加载。

3.2 示教程序加载与任务绑定:.prg文件不是直接双击就能跑

汇川示教器程序为结构化文本格式(类似 ST 语言),扩展名.prg,但电脑版示教器不支持直接加载。必须通过 MotionStudio 编译为.bin后再导入:

  1. 在 MotionStudio 中新建「PLC 项目」→ 添加「运动任务」→ 将你的.prg拖入任务编辑区;
  2. 点击「编译」→ 成功后生成Task_Motion.bin(路径:Project\Output\);
  3. 回到InoTeachPC.exe→ 「文件 → 加载任务」→ 选择该.bin文件;
  4. 点击「任务 → 启动」,此时轴状态灯应由绿变蓝(表示任务已激活,等待使能)。

关键参数说明:

  • 「任务周期」建议设为2ms(与真实控制器一致),设为10ms会导致轨迹插补跳步;
  • 「安全使能」默认关闭,需手动勾选「启用安全输入」并点击「强制使能」按钮(模拟 E-Stop 复位);
  • 若加载后报Error 0x8001: Task not found in runtime,说明.bin文件未用当前 MotionStudio 版本编译,或编译时未勾选「包含运行时库」。

3.3 实时监控与手动模式(JOG):如何让虚拟电机真正转起来

加载任务并使能后,进入「手动控制」标签页:

  • JOG 方向控制:点击「+X」按钮,轴应开始以1000 pulse/s(默认速度)正向运动;松开即停。此速度由内部参数MC_JogSpeed决定,可在 MotionStudio 的「变量表」中修改gAxis1.JogSpeed := 5000;后重新编译加载;
  • 位置监视:右侧「当前位置」实时显示脉冲值(如12450),单位为 encoder pulse,换算为角度需除以PPR × gear ratio(如 2500ppr 编码器 + 1:1 减速 = 12450 / 2500 = 4.98 圈);
  • 力矩监视:勾选「显示力矩曲线」,Y 轴为0~100%额定力矩,若程序中有MC_MoveVelocity指令但力矩始终为 0,说明未触发使能或 PDO 中未映射0x6071(Target Torque)。

验证成功标志:在「诊断 → 轴状态」中,Operation Mode显示Profile Position,Status Word低 4 位为0x000F(表示 Ready、Enabled、Fault Reset、Homed),且Actual Position随 JOG 持续变化。


4. 避坑指南:五个血泪经验总结的高频翻车点

4.1 现象:启动InoTeachPC.exe报错 “无法定位程序输入点于动态链接库 MSVCP140.dll”

  • 原因:软件依赖 Visual C++ 2015-2019 运行库,但系统仅安装了 2022 版本(v143),而 MotionStudio V3.5.0.19 编译时链接的是 v142 运行时;
  • 解决:单独下载安装 Microsoft Visual C++ 2015-2019 Redistributable (x64) ,安装后重启软件。不要试图用 Dependency Walker 查看缺失 DLL——它会误导你去装旧版 VC++2010,反而冲突。

4.2 现象:EtherCAT 扫描成功发现虚拟从站,但轴状态灯灰色,PDO 监视器无数据

  • 原因:Windows 网络适配器高级属性中启用了「节能以太网(EEE)」或「绿色以太网(Green Ethernet)」,导致 PHY 层在空闲时降频,破坏 EtherCAT 周期性帧同步;
  • 解决:右键网卡 → 「属性 → 配置 → 高级」→ 找到Energy Efficient Ethernet和Green Ethernet两项 → 设为Disabled→ 点击「确定」后禁用再启用网卡。

4.3 现象:加载.bin任务后点击「启动」,状态灯变红并报Error 0x8012: Axis not homed

  • 原因:虚拟轴默认未执行回零(Homing)流程,而某些示教程序在首条运动指令前隐含MC_Home调用,或 MotionStudio 项目中启用了「上电自动回零」选项;
  • 解决:在InoTeachPC.exe中切换到「回零」标签页 → 点击「执行回零」→ 等待状态灯由红变绿(表示虚拟原点已建立)→ 再启动任务。若需跳过回零,须在 MotionStudio 中清除任务中的MC_Home指令并重新编译。

4.4 现象:JOG 时电机抖动明显,位置曲线呈锯齿状,而非平滑斜线

  • 原因:任务周期(Task Cycle)与 EtherCAT 循环周期(DC Cycle)未对齐。例如任务设为 2ms,但 EtherCAT 主站 DC 周期设为 1ms,导致运动指令下发频率与 PDO 更新频率失步;
  • 解决:在 MotionStudio → 「工具 → 系统设置 → EtherCAT 设置」中,将「DC 循环周期」设为2000 μs(即 2ms),与任务周期严格一致;重启 EtherCAT 主站服务后重试。

4.5 现象:关闭InoTeachPC.exe后,Windows 服务InovanceMotionRuntime仍占用 CPU 30%,且无法停止

  • 原因:软件异常退出时未释放共享内存段(Shared Memory Segment),导致运行时服务认为仍有客户端连接;
  • 解决:打开命令提示符(管理员),执行:
    net stop "InovanceMotionRuntime" del /f /q "%ProgramData%\Inovance\MotionStudio\SharedMem\*.shm" net start "InovanceMotionRuntime"
    此操作强制清理残留共享内存文件,服务即可正常启停。

5. 进阶技巧:用 Python 脚本批量验证示教逻辑与参数鲁棒性

5.1 构建自动化测试框架:为什么手动点一百次 JOG 不如写三十行代码

当你要验证某段示教程序在不同加速度、不同负载惯量下的响应特性时,手动操作不仅效率低,更难保证条件一致性。利用InoTeachPC.exe开放的TCP/IP 调试端口(默认 50001),可实现外部程序控制。该端口遵循汇川自定义二进制协议,但 MotionStudio SDK 中提供了 Python 封装模块inovance_motion_api.py(位于C:\Program Files\Inovance\MotionStudio\SDK\Python\),无需逆向协议。

以下脚本实现:自动加载任务 → 执行三次不同加速度的点位运动 → 记录各次实际到达时间与超调量:

# test_axis_stability.py from inovance_motion_api import MotionClient import time # 连接本地示教器(默认 localhost:50001) client = MotionClient("127.0.0.1", 50001) client.connect() # 加载预编译任务 client.load_task(r"C:\Projects\RobotDemo\Task_Stability.bin") # 启动任务并使能 client.start_task() client.enable_axis(1) # 轴号 1 # 测试参数:加速度列表(单位:pulse/s²) acc_list = [5000, 10000, 20000] results = [] for acc in acc_list: print(f"Testing acceleration: {acc} pulse/s²") # 设置加速度参数(需提前在 MotionStudio 变量表中声明 gAxis1.Acceleration) client.set_variable("gAxis1.Acceleration", acc) # 发送绝对位置指令:目标位置 100000 pulse,速度 5000 pulse/s client.move_absolute(1, position=100000, velocity=5000) # 等待运动完成(轮询 StatusWord 第 10 位:Target Reached) start_time = time.time() while not client.get_status_word(1) & 0x0400: time.sleep(0.005) duration = time.time() - start_time # 读取实际位置与力矩峰值 actual_pos = client.get_actual_position(1) max_torque = client.get_max_torque(1) results.append({ "acc": acc, "duration": round(duration, 3), "overshoot": abs(actual_pos - 100000), "max_torque_pct": round(max_torque, 1) }) # 输出结果表格 print("\n" + "="*60) print(f"{'Acc (pulse/s²)':<15} {'Duration (s)':<15} {'Overshoot (pulse)':<20} {'Max Torque (%)':<15}") print("-"*60) for r in results: print(f"{r['acc']:<15} {r['duration']:<15} {r['overshoot']:<20} {r['max_torque_pct']:<15}") print("="*60) client.disconnect()

参数说明:

  • move_absolute()中velocity为最大速度,acceleration由变量gAxis1.Acceleration控制,二者共同决定 S 曲线形状;
  • get_status_word(1) & 0x0400判断第 10 位(Target Reached),这是 EtherCAT 标准状态字定义,非汇川私有;
  • get_max_torque()返回自上次清零以来的最大力矩百分比,需在 MotionStudio 中启用「力矩统计」功能(项目属性 → 运动 → 启用力矩记录)。

5.2 故障注入测试:模拟编码器断线、总线干扰等异常工况

真实产线中,最怕的不是程序写错,而是异常未被捕捉。InoTeachPC.exe支持通过调试端口强制触发故障,用于验证程序的 fault handling 逻辑:

# 强制触发编码器断线故障(模拟 A/B 相无信号) client.inject_fault(1, fault_code=0x8120) # 0x8120 = Encoder Signal Loss # 强制触发总线干扰(PDO 丢帧超限) client.inject_fault(1, fault_code=0x8110) # 0x8110 = EtherCAT Communication Error # 清除所有故障(模拟复位操作) client.clear_all_faults()

在示教程序中,若已编写IF Axis1.Fault THEN MC_Reset(Axis1); END_IF;,则执行inject_fault后应观察到:状态灯由绿变红 → 1 秒后自动变绿(复位成功)。若未复位,说明MC_Reset未被调用或Fault位判断逻辑有误——这正是你该去修的代码。

从那以后我每次交付示教程序前,都强制走一遍这个 Python 脚本:先跑三组加速度压力测试,再注入两次典型故障,最后用示波器抓取虚拟编码器信号边沿抖动(通过InoTeachPC.exe的「信号发生器」功能输出方波,用逻辑分析仪测)。不是为了炫技,是怕某天凌晨三点产线停机,而问题就藏在那个没被inject_fault揪出来的ELSE分支里。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询