ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

汇川AM400总线伺服与IT7070触摸屏联调实战指南

2026/9/13 3:02:47 拓冰建站 浏览量
汇川AM400总线伺服与IT7070触摸屏联调实战指南 先交代一下背景最近在调一套全自动设备控制端最早用的是汇川 AM401 系列程序后来工艺段加多、轴数超了整套程序平移到 AM403 上继续跑伺服全部走汇川总线伺服通过 EtherCAT 挂在网上人机界面用的是 IT7070 系列触摸屏。整个项目做完以后回头再看真正花时间的不是接线而是从 AM401 往 AM403 迁程序时的那套配置习惯以及总线伺服参数和触摸屏变量之间的“对齐”工作。这篇就把当时的选型逻辑、组态方法、报警处理和现场踩坑记录整理出来。如果你正准备用汇川 AM400 平台做一套“中小型总线伺服 触摸屏”的设备或者已经开始用 AM401、AM403 调伺服应该能从这里提前躲开几个坑。1. 为什么选 AM400 系列而不是“小 PLC 脉冲伺服”这套设备一开始做技术评审时方案其实分了两派。一派建议用小型 PLC 配脉冲型伺服理由很简单——便宜工程师也熟随便一个会写梯形图的人都能上手。另一派主张直接用 EtherCAT 总线伺服哪怕老板一开始犹豫那点预算差距。最后拍板选 AM401不是因为它比脉冲方案便宜而是因为整套系统的可维护性完全不一样。1.1 从 AM401 到 AM403程序和选型边界怎么划先说 AM401 和 AM403 的区别。这俩都属于 AM400 系列编程环境都是 InoProShop底层是 Codesys 内核所以程序、库、变量表基本是通用的。区别主要在 CPU 性能、轴任务数量和程序容量上限。拿这套设备来说最初设计只有 6 个伺服轴转盘 1 轴、上下料机械手 3 轴、定位治具 1 轴、压装机构 1 轴。AM401 完全跑得动程序里开两个任务一个管 EtherCAT 同步一个管逻辑扫描周期做到 4ms 以内没有任何压力。但后来客户加了视觉引导抓取机械手从 3 轴变成 4 轴还要做一小段轨迹插补控制点一下子多了。AM401 虽然也能凑合跑但轴组插补的响应会弱一点换到 AM403 以后同样的程序不需要改结构只把设备树里的 CPU 型号替换掉重新编译下载就完事了。所以选型边界其实就是两句话纯点位控制、轴数不超过处理器建议范围、逻辑不复杂选 AM401 性价比最高。有电子凸轮、CNC 文件轨迹、轴组插补或者轴数和 IO 点数明显偏多直接上 AM403别给自己留“带不动再换”的隐患。提示AM401 和 AM403 在 InoProShop 里工程是可以互相替换的但替换完必须检查轴配置和任务配置。特别是轴组、电子凸轮这些功能不同 CPU 固件版本支持度有差异我碰到过一次从高配往低配反着拷工程直接把轴组报错排查了半天才发现是 CPU 类型不支持。1.2 总线伺服和 IT7070 触摸屏为什么是“连带选择”总线伺服的好处不用我多吹少走几十根脉冲线、参数集体上传、故障诊断直接看伺服状态字这几点对现场调试来说都是实打实省时间的。如果项目已经选了 EtherCAT 总线伺服那控制器这一层基本就绑定到支持 EtherCAT 主站的中大型 PLC 上AM400 系列正好在这个定位上。触摸屏选 IT7070 系列理由更简单和 AM400 是同厂生态HMI 变量可以直接和 PLC 变量关联不用手工去对寄存器地址。IT7000 系列的组态软件 InoTouchPad 里面自带 AM400 以太网驱动新建工程选型号、填 IP编译下载就能通。现场经常会改工艺参数IT7070 的存储和配方功能做起来比第三方触摸屏顺手和 PLC 的配合也更底层。当然用第三方触摸屏比如威纶通、昆仑通态通过 Modbus TCP 也能和 AM400 通讯这种方案在老板指定触摸屏品牌时是必须的。但如果是自己选型IT7070 这套原厂组合会少很多“地址对了但数据不对”的玄学问题。2. 从图纸到通电总线伺服与触摸屏的硬件拓扑细节硬件拓扑这种东西画起来简单真正到了电柜里往往会因为走线、接地、网络划分问题折腾出各种“偶发报警”。这块多花点篇幅说透。2.1 控制系统的“两张网”EtherCAT 和以太网必须分开这套设备的网络实际上是分开的两张网不推荐混在一起。第一张网是 EtherCAT专走实时运动控制。AM400 的 EtherCAT 主站网口出来依次接到每一个总线伺服最后一台伺服后面不接普通交换机保持链路完整就行。这张网上的所有节点按 EtherCAT 从站拓扑自动扫描不需要像 Profibus 那样手动拨地址只要你觉得伺服序列和你程序里的轴号对得上基本不会乱。第二张网是工业以太网走非实时数据。AM400 的以太网口接一台工业交换机交换机上再接 IT7070 触摸屏、上位机或者视觉系统。这里面有个容易犯的毛病有人为了省交换机直接把触摸屏接到 EtherCAT 主站网口的下面结果触摸屏的 UDP 广播流量把实时网段干扰了设备偶尔莫名其妙掉一个从站。我建议的动力配置如下节点网段说明AM400 PLC 控制侧网口EtherCAT接伺服、远程 IO只跑实时运动数据AM400 信息侧网口Ethernet/IP接 IT7070、上位机、视觉IP 规划在一个独立段IT7070 触摸屏Ethernet/IP例如 192.168.1.10调试电脑Ethernet/IP建议固定 IP和触摸屏错开2.2 接线和通电前必须做的静态检查总线伺服调试时很多人上来就通电子结果不是报警就是丢站。先花十分钟做静态检查后面能省两小时伺服主回路和 24V 控制电不要共用一个断路器。EtherCAT 从站虽然功耗不高但多台伺服同时上电时冲击电流容易把共用的开关电源拉掉电压导致 PLC 和伺服握手失败。抱闸电源特别重要。带抱闸的伺服电机抱闸打开瞬间电流比额定电流高如果抱闸电源和逻辑电源共用会出现抱闸打开延时甚至把 EtherCAT 通信卡掉。正规做法是单独一路 24V 或使用开关电源的大电流输出端子。屏蔽层接地只有一端接地而且要在电柜侧接 PE。很多设备 EtherCAT 抖动报警都是因为屏蔽层两端接地或者根本没接。EtherCAT 网线跟动力线必须分槽走线间距至少 20cm。电柜里实在避不开就交叉走直角不要平行长距离贴着。注意EtherCAT 没有传统意义上的“终端电阻”它靠的是链路最后一个从站后的硬件识别。所以不需要在最后一台伺服后面接 120 欧姆电阻但每一段网线都必须是合格的工业级屏蔽网线不能用普通网线凑数。3. InoProShop 里的程序骨架轴控制任务与状态机的设计思路程序结构这东西不同人写出来风格差距非常大。我在这套设备里用的结构比较直白适合大多数全自动设备一个运动控制任务管伺服一个逻辑任务管流程状态机挂在逻辑任务里。这种分法在 AM400 平台上很稳查故障也好查。3.1 任务配置多少扫描周期合适AM400 的 InoProShop 里任务配置在“任务配置”节点下。我的习惯是建两个循环任务控制任务优先级 1关联 EtherCAT 同步和 PLCopen 轴功能块循环时间设 4ms 或 2ms。逻辑任务优先级 2循环时间 10ms管气缸、IO、HMI 命令、报警逻辑。为什么要分两个任务因为轴控制块和运动学插补需要在固定周期内刷新而普通逻辑块里如果有字符串处理、文件读写、浮点计算这些操作耗时不确定如果不分开就会把运动控制周期拖乱。分任务以后即使逻辑任务偶尔卡一两个周期轴也一直保持同步。有一点要注意轴功能块实例不要散布在多个任务里调用尽量集中在控制任务里。比如你有一个点动按钮在逻辑任务里另一个定位写在控制任务里同一个轴的控制块被两个任务同时调用就会出“功能块正在被其他任务执行”的错误。3.2 轴控制基本块上电、回原、绝对定位AM400 的轴控制库是标准的 PLCopen 运动控制库核心函数块和 Codesys 的 MC 系列基本一致。刚上手的时候先把这几个块吃透就行MC_Power轴使能相当于伺服使能。MC_Home回原可以走到限位再找 Z 相也可以直接按当前位置设零。MC_MoveAbsolute绝对定位。MC_MoveVelocity连续速度运行适合调速和点检。MC_Stop停止带减速度参数。一个标准启停代码块大概长这样PROGRAM PLC_PRG_Control VAR bEnable : BOOL : FALSE; bHomeCmd : BOOL : FALSE; bMoveCmd : BOOL : FALSE; rTargetPos: REAL : 100.0; MC_Power_1 : MC_Power; MC_Home_1 : MC_Home; MC_MoveAbs_1 : MC_MoveAbsolute; END_VAR // 轴使能 MC_Power_1( Axis : Axis_A, Enable : bEnable, RegulatorOn : bEnable, DriveStart : bEnable ); // 回原 MC_Home_1( Axis : Axis_A, Execute : bHomeCmd, Position : 0.0 ); // 绝对定位 MC_MoveAbs_1( Axis : Axis_A, Execute : bMoveCmd, Position : rTargetPos, Velocity : 80.0, Acceleration : 10.0, Deceleration : 10.0, Jerk : 50.0, Direction : 0 );写完功能块调用之后别忘了把程序里的Axis_A这个轴引用变量对应到设备树里的轴配置。AM400 在添加 EtherCAT 伺服后会自动生成轴对象你在程序里定义变量时类型选“AXIS_REF”然后在设备树里绑定到具体轴这一步漏了编译能过但运行时所有指令都不动。3.3 用状态机让流程可读、可排错全自动设备最怕的就是流程糊在一大段梯形图里条件全堆在一起报警了根本不知道现在在哪个环节。我的习惯是写一个状态机用 CASE 语句列步骤。举个例子机械手上下料流程CASE byStep OF 0: // 待机 IF bStart THEN byStep : 10; END_IF 10: // 回原 MC_Home_1.Execute : TRUE; IF MC_Home_1.Done THEN byStep : 20; END_IF 20: // 移动到取料位 MC_MoveAbs_1.Execute : TRUE; MC_MoveAbs_1.Position : 50.0; IF MC_MoveAbs_1.Done THEN byStep : 30; END_IF 30: // 夹紧气缸动作 Output_C1 : TRUE; IF Sensor_C1 THEN byStep : 40; END_IF 40: // 移动到放料位 MC_MoveAbs_1.Execute : TRUE; MC_MoveAbs_1.Position : 300.0; IF MC_MoveAbs_1.Done THEN byStep : 50; END_IF 50: // 放料 Output_C1 : FALSE; byStep : 20; END_CASE状态机的好处在于报警时可以立即看到byStep等于多少直接就知道卡在哪一步是没到位是气缸没到位还是夹爪没张开。现场排错效率会高特别多。要提醒的是每个轴的MC_Home_1.Done、MC_MoveAbs_1.Done这些输出不能只判断一次必须判断上升沿或“保持完成标志”否则状态机会刷过去轴只动了一下就不动了。4. 伺服编码器分辨率 262144 这件事到底能不能改这也是网上搜得特别多的问题汇川伺服 MS1H4 在驱动器里查看默认编码器线数是 262144这个数值可以改吗搜这个词的人多半是在做位置换算或者改电子齿轮比时被这个数字卡住了。4.1 这个 262144 是怎么来的先算一笔账262144 2 的 18 次方。这个数不是凭空出来的它是驱动器根据电机编码器反馈读出来的一个分辨率参数意思就是电机每转一圈位置反馈计数是 262144。不是所有人都会在意“编码器线数”和“分辨率”的区别。传统增量编码器说 2500 线指的是码盘刻了 2500 道经过驱动器的四倍频一圈就是 10000 个计数。而汇川 MS1H4 这种伺服电机配的是绝对值编码器内部经过电子细分后反馈计数达到 262144相当于一圈被分成了 26 万多个位置点轴定位的精度和低速平稳性全靠这个高分辨率撑着。所以你在驱动器面板上看到“编码器线数 262144”时第一反应应该是“这是正常的、合理的”而不是“是不是参数被人改过了”。4.2 这个数值可以改吗改了会怎样这个问题得拆成两层回答。第一层能不能改严格说某些驱动器参数里确实提供编码器分辨率相关的设置项可以把它改小。但改完之后电机每圈对应的计数就变了原来出厂标定的位置环、速度环参数全部失配。最轻的后果是定位偏差变大了严重的可能直接导致电流环波动、电机啸叫、发热。第二层也是更常见的很多人其实不是要改 262144而是想把“PLC 程序里的用户单位”和“电机实际转角”对应起来。这一步应该靠电子齿轮比或用户单位换算去实现不是去改编码器线数。比如你希望 PLC 里发 10000 个单位电机正好转一圈那就在轴配置里把用户单位设置为“10000 表示一圈”或者配置电子齿轮比。AM400 的轴配置里有“每圈单位数”这个概念填 10000它就自动帮你做了位置换算编码器本身的 262144 根本不用动。提示改任何编码器相关参数之前先做参数备份。伺服驱动器一般支持将参数导出到 U 盘或软件里备份完再试。改完以后如果是绝对值编码器原来设定的绝对零点很可能丢失必须重新执行回原或设置当前位置为原点。我见过一个现场有人为了“让触摸屏上显示整数方便”把编码器线数从 262144 改成 10000结果是设备一动就过流报警换回 262144 以后立刻正常。所以结论很明确默认值别动需要换算请走电子齿轮和 PLC 轴配置的路子。5. IT7070 与 AM400 系列联机的通信配置和变量同步IT7070 是汇川 IT7000 系列里尺寸比较紧凑的那一档配合 AM400 做本地操作屏非常合适。这节直接讲配置流程按步骤做基本不会卡。5.1 在 InoTouchPad 里新建工程驱动类型别选错IT7000 系列用的是 InoTouchPad 组态软件。新建工程第一步是选择屏幕型号选 IT7070 之后工程会自动带出该型号的推荐分辨率模板。接着添加设备这里关键点来了设备驱动不要选 Modbus TCP虽然 AM400 也支持 Modbus TCP但你要手工去 PLC 里映射寄存器麻烦且容易错。直接选“汇川 AM400 系列以太网”或“汇川 AM400 TCP”这类原厂驱动然后填 AM400 信息侧网口的 IP 地址。IT7070 的 IP 也要固定比如 192.168.1.10AM400 信息口设 192.168.1.1调试电脑设 192.168.1.100。三者必须在同一网段。5.2 变量导入让触摸屏直接看到 PLC 的符号变量原厂驱动最大的优势在变量同步。在 InoProShop 里开发完程序把 PLC 工程编译通过后触摸屏工程里就可以导入 PLC 的符号表。做法是InoTouchPad 的设备列表里右键 AM400 设备选择导入变量然后指向 InoProShop 编译生成的符号文件或者直接把 PLC POU 里定义的全局变量同步过来。导入之后你不需要知道这些变量在 PLC 里具体映射到什么地址屏幕上的按钮、数值显示直接绑定这些符号就行。这一步对后期维护特别有帮助。以后工艺人员改配方、改定位位置只需在触摸屏上操作变量完全不用去 PLC 程序里翻地址。5.3 配方、报警和用户权限的落地全自动设备通常离不开配方功能。IT7070 的组态里可以建配方表比如“产品 A 料号定位参数”和“产品 B 料号定位参数”。配方数据既可以存到 HMI 存储里也可以通过变量直接传给 AM400 PLC。我的做法是在 PLC 里定义一组配方结构体数组触摸屏配方画面绑定这些结构体换型时点击配方下载PLC 状态机检测到换型信号把当前轴位置、速度参数全部更新一遍。报警画面那边建议把伺服报警状态做成 PLC 变量再映射到 HMI。AM400 读取总线伺服的报警码并不复杂伺服状态字的错误位和报警代码会映射到 PLC 的轴诊断变量。IT7070 上配置报警文本时把“PLC 变量数值”和“报警内容”做一个对应表比如报警码 12 显示“主电源缺相”这样就摆脱了纯看伺服监视器的尴尬。注意IT7070 的变量绑定如果用的是原厂 AM400 驱动必须保证 AM400 程序里变量名是全局可见的而且编译日期和触摸屏导入日期一致。改过 PLC 程序后忘了解复用变量是“画面显示数值不更新”最常见的原因。6. 现场跑机踩坑实录排查路径和参数修正记录这块挑三个真实发生过的故障案例出来把排查过程写完整比单纯列参数表更有用。6.1 开机报 EtherCAT 同步错误轴全部变灰现象上电后 InoProShop 里能看到所有总线伺服但只要程序一运行轴全部变灰报同步丢失。最先怀疑伺服坏了换一台新的还是一样。排查链路先看 EtherCAT 拓扑扫描。在 InoProShop 的 EtherCAT 主站配置里做在线扫描结果发现扫描到的从站顺序倒过来了。原来上一班的人把中间一根网线拔了重新插插反了方向。EtherCAT 链路虽然是菊花链但它从主站第一个网口出发必须按顺序经过每一个从站最后再回到最后一个从站。如果有人在中间位置把进线和出线对调主站扫描就没法按预期拓扑识别。恢复正确接线顺序后重新扫描拓扑匹配在线运行 1 小时没有掉站。这个案例想说明的是EtherCAT 是级联网不是现场随意相互联通。重新整理过电柜后最好强制做一次“在线扫描拓扑”并且保存校验结果。6.2 触摸屏突然提示“连接失败”PLC 正常跑现象设备运行中IT7070 画面偶尔弹连接失败几秒后自动恢复。一开始以为是触摸屏坏了检查网线也没问题。排查链路用电脑长拼 AM400 的 IP没有丢包错有丢包。进一步分析发现交换机上插了一台视觉系统视觉系统在做数据转存时产生了大量 UDP 包把交换机资源占满了导致触摸屏和 PLC 之间的 TCP 连接超时。处理办法是把视觉系统单独放到另一个网段或者和 AM400 的实时控制系统分开走不同的交换机。这再次印证了“两张网要分开”这个原则。6.3 回零位置每次都不一样总差一格现象机械手上电回原后每次停的位置都差一点点干一阵以后累计误差越来越明显。排查链路一开始怀疑绝对值编码器丢了原点重新标定没用。后来打开伺服监视器发现每次回零时伺服接收到的“回零速度”和“爬行速度”不一样。细问才知道有工程师把回原速度写成了模拟量给定现场有人改了触摸屏上的速度参数导致每次回零高速段不同。真正的根因是回原方式选择的是“当前位置 索引信号”但是回原完成条件没有限制只在找 Z 相后才能结束结果速度稍微波动Z 相捕获位置就偏差一点。解决把回原方式改成“限位回原 Z 相零点捕获”并把回原速度和爬行速度锁死不在 HMI 上开放给操作工修改。这一段总结起来就一句话回原不是单纯让轴碰到限位开关一定要让轴在低速爬行段捕获 Z 相或编码器零点回原的重复精度才能高。速度、爬行速度、回原偏移这组参数直接固定别让现场随便改。7. 还有一些关于调试习惯和备件的建议前面把主要步骤都过了一遍最后聊点不写进说明书里的东西。第一每台伺服在通电前先把它的固件版本和编码器型号记下来。汇川伺服不同批次固件对 EtherCAT 从站参数有细微差异特别是在旧伺服替换新伺服的场合并联时最好把参数从原机上导出到 U 盘再导入到新机里插上就能跑避免“明明是新伺服上电就报编码器匹配错误”。第二PLC 程序里务必做“轴使能失败”和“回原超时”这两个保护逻辑。轴使能失败报警不要只看MC_Power.Error还要把轴诊断信息里的错误字传出来显示到触摸屏上回原超时则是加一个定时器比如回原 15 秒内没触发完成就停轴报故障。这两个保护看着简单但在无人值守的全自动设备里能避免设备带病运行导致撞机。第三IT7070 的工程文件版本和 PLC 工程文件版本要一起归档。现场最容易出现的情况是程序改了一版触摸屏画面也改了一版两边却没同步归档等下次换机器或恢复系统时找回的是不匹配的旧版本。所以每次给设备升级把 InoProShop 工程和 InoTouchPad 工程放在同一个文件夹注明日期和修改内容这是对自己最好的保护。我在实际调设备的时候发现AM400 平台加上汇川总线伺服和 IT7070 这套组合性能上限对大多数中小型全自动设备来说完全够用真正决定项目顺不顺利的往往是配置习惯和排查思路。希望这篇记录能帮你把刚开始的弯路省掉。