汇川电脑版示教器:离线仿真与EtherCAT本地调试指南 简介汇川机器人电脑版示教器软件是面向工业自动化工程师、机器人调试人员及高职院校实训教师的专业级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 1122H2Windows 家庭版因缺少组策略服务无法启动。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”或未禁用 IPv6EtherCAT 协议栈对网络栈精简度敏感。2.3 网络接口绑定与虚拟拓扑构建用一块千兆网卡模拟整条 EtherCAT 链路该软件不支持 Wi-Fi 或蓝牙必须使用物理千兆以太网卡Realtek 8168/8125 或 Intel I210 推荐且需手动绑定至 EtherCAT 主站进入「控制面板 → 网络和 Internet → 网络连接」右键目标网卡 → 「属性」→ 取消勾选「Internet 协议版本 6 (TCP/IPv6)」双击「Internet 协议版本 4 (TCP/IPv4)」→ 设置静态 IP192.168.100.1子网掩码255.255.255.0网关与 DNS 留空打开 MotionStudio → 「工具 → 系统设置 → EtherCAT 设置」→ 在「主站网卡」下拉框中选择该网卡名称非“以太网”通用名而是具体硬件 ID如Realtek PCIe GbE Family Controller #2点击「扫描网络」此时软件将尝试在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而非1EtherCAT 地址为 16 进制填十进制1会被解析为0x00000001超出 16 位地址空间导致 PDO 映射失败PDO 映射模板选「Standard Motion Control」该模板预置了 0x6040ControlWord、0x6041StatusWord、0x6060Mode of Operation等关键对象若选「Custom」需手动逐个添加新手极易漏掉 0x6064Position Actual Value导致位置反馈为 0。配置完成后点击「应用」界面左上角轴状态灯应由灰色变为绿色。若仍为灰色打开「诊断 → PDO 监视器」查看RxPDO 1是否收到数据帧右下角计数器递增若无说明 EtherCAT 主站未正确绑定网卡或驱动未加载。3.2 示教程序加载与任务绑定.prg文件不是直接双击就能跑汇川示教器程序为结构化文本格式类似 ST 语言扩展名.prg但电脑版示教器不支持直接加载。必须通过 MotionStudio 编译为.bin后再导入在 MotionStudio 中新建「PLC 项目」→ 添加「运动任务」→ 将你的.prg拖入任务编辑区点击「编译」→ 成功后生成Task_Motion.bin路径Project\Output\回到InoTeachPC.exe→ 「文件 → 加载任务」→ 选择该.bin文件点击「任务 → 启动」此时轴状态灯应由绿变蓝表示任务已激活等待使能。关键参数说明「任务周期」建议设为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 中未映射0x6071Target Torque。验证成功标志在「诊断 → 轴状态」中Operation Mode显示Profile PositionStatus 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——它会误导你去装旧版 VC2010反而冲突。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(rC:\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(fTesting acceleration: {acc} pulse/s²) # 设置加速度参数需提前在 MotionStudio 变量表中声明 gAxis1.Acceleration client.set_variable(gAxis1.Acceleration, acc) # 发送绝对位置指令目标位置 100000 pulse速度 5000 pulse/s client.move_absolute(1, position100000, velocity5000) # 等待运动完成轮询 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_code0x8120) # 0x8120 Encoder Signal Loss # 强制触发总线干扰PDO 丢帧超限 client.inject_fault(1, fault_code0x8110) # 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分支里。希望帮到你。本文还有配套的精品资源点击获取