1. 项目概述:为什么AutoShop+汇川PLC的组合值得深挖
AutoShop不是某个泛泛而谈的“自动化软件统称”,而是汇川技术官方推出的、专为自家H3U/H5U系列小型PLC及IS620P/IS620N系列伺服系统深度定制的集成开发环境。它和西门子TIA Portal、三菱GX Works3、欧姆龙Sysmac Studio一样,是闭环生态里的核心工具链——但它的特殊性在于:它不只做编程,更把硬件组态、运动控制配置、总线诊断、在线调试、甚至HMI画面生成全部揉进一个界面里。很多人第一次打开AutoShop时会误以为是“简化版GX Works”,结果在做总线轴配置时卡在“GL20-2HC模块接脉冲传感器”这一步,反复查手册却找不到对应功能块;或者在调试ER75报警时,发现错误代码表里只写“编码器异常”,却不知道该先看伺服参数还是PLC输入滤波时间。这背后不是软件问题,而是对AutoShop底层逻辑和汇川PLC硬件耦合关系的理解断层。
我带过十几期PLC工程师实训,发现80%的调试失败案例,根源不在梯形图逻辑写错,而在于前期组态没对、地址映射没理清、硬件响应特性没预判。比如用GL20-2HC模块接光电编码器,如果没把“输入滤波时间设为2μs”且“启用高速计数器锁存功能”,哪怕梯形图里写对了CNT指令,实际计数也会丢脉冲;再比如用AutoShop组态CANopen总线轴,若没在“设备描述文件(EDS)导入”环节校验厂商ID与节点ID一致性,上电后主站根本识别不到从站,连基本通讯都建立不了。这些细节,手册里有,但分散在不同章节;视频教程里讲,但往往跳过参数背后的物理意义。这篇指南,就是把“从零到一”的真实路径摊开:不是教你怎么拖拽一个LD指令,而是告诉你,当你要实现“星-角降压启动”时,AutoShop里该先建什么设备、PLC程序结构怎么分层、IO地址如何与电气图纸一一对应、调试阶段用哪个窗口看实时波形、报ER75时该盯哪三个寄存器值。它面向的是已经会画电路图、能看懂端子排接线、但第一次面对汇川生态的工程师——不假设你懂Codesys,也不默认你熟悉Modbus RTU寄存器映射,所有操作都从“打开AutoShop新建工程”那一刻开始。
2. AutoShop工程架构与汇川PLC硬件匹配逻辑
2.1 工程创建的本质:不是建文件,而是定义物理拓扑
在AutoShop里点击“新建工程”,弹出的对话框第一项永远是“选择PLC型号”。这不是形式主义——H3U系列PLC的CPU模块自带4路高速脉冲输出(最大200kHz),而H5U系列则支持8路(最大500kHz);H3U的内置CAN口仅支持CANopen主站,H5U则可配置为CANopen主/从双模式。如果你选错型号,后续所有硬件组态都会失效。比如用H3U工程去配置IS620P伺服的电子齿轮比,AutoShop会直接报错“不支持该功能”,因为H3U的运动控制库版本不包含高级电子凸轮指令。所以第一步必须确认:你手上的PLC实物标签是H3U-1616MT-L、H5U-3232MT-L,还是H5U-6464MT-L?注意最后的“L”代表带以太网口,没有“L”的版本只能用RS485通讯,这意味着你根本无法使用AutoShop的“在线监视-变量跟踪”功能,只能靠串口调试助手读取Modbus寄存器。
选定型号后,“设备组态”窗口才是真正的战场。这里不是简单地把模块拖进去,而是构建一个与实际控制柜完全镜像的数字孪生体。以常见配置为例:CPU模块(H3U-1616MT-L)→扩展IO模块(H3U-16EX-D)→总线耦合器(H3U-CAN01)→伺服驱动器(IS620P-04A)。关键点在于:每个模块右键“属性”里必须填入真实的物理槽位号。H3U的CPU固定占0号槽,第一个扩展模块占1号槽,以此类推;而CAN总线上的伺服驱动器,其节点ID必须与AutoShop里“CANopen设备”属性中的“节点地址”严格一致。我见过太多人在这里栽跟头——PLC程序里写MODBUS_RTU指令读取伺服状态字,结果始终返回0xFFFF,最后发现是CANopen节点ID设成2,但伺服面板上拨码开关实际设的是3。AutoShop不会主动校验这个,它只按你填的地址发帧。
2.2 地址体系的三层映射:从物理端子到梯形图符号
汇川PLC的地址体系不像三菱那样直观(X0、Y0),它采用“区域+编号+位”的复合格式,且不同区域用途截然不同:
- X区(输入):对应物理输入端子,如X0.0表示第0号扩展模块的第0个输入点。注意:X0.0和X0.1是同一物理端子的常开/常闭触点,不是两个独立点。
- Y区(输出):同理,Y0.0是第0号模块第0个输出点。但Y区有个陷阱:H3U的Y0.0~Y0.3是晶体管输出,Y0.4~Y0.7是继电器输出,驱动能力与响应时间完全不同,选错会导致接触器吸合抖动。
- M区(内部继电器):通用软元件,但M1000以上是掉电保持区,M0~M999是断电清零区。做星-角启动时,主接触器KM1的自锁逻辑必须用M1000以上地址,否则断电重启后KM1会失电。
- D区(数据寄存器):16位有符号整数,D1000起始是断电保持区。伺服位置反馈值通常存于D2000~D2099,而Modbus RTU读取的寄存器地址(如40001)需转换为D区偏移量:40001对应D0,40002对应D1,以此类推。
最易混淆的是总线设备地址映射。比如GL20-2HC高速计数模块,它本身有8个通道(CH0~CH7),每个通道占用4个D寄存器(当前值、预设值、方向、状态)。但AutoShop在组态时,会自动将CH0的当前值映射到D1000,CH1映射到D1004。如果你手动在梯形图里用DMOV指令把D1000传给D500,结果发现D500值不变——不是程序错,而是GL20-2HC模块的采样周期默认是10ms,而PLC扫描周期是2ms,D1000每10ms才更新一次,中间8次扫描读到的都是旧值。解决方法是在“模块属性”里把采样周期改为2ms,或改用“上升沿触发读取”方式。
2.3 梯形图编程框架:拒绝堆砌,必须分层
AutoShop的LD编辑器支持网络(Network)划分,这是构建可维护程序的基础。一个规范的星-角降压启动程序,至少应分为三层:
第0层:硬件抽象层(HAL)
专门处理物理信号隔离。例如,将X0.0(启动按钮)经“滤波+消抖”后存入M1000;X0.1(停止按钮)存入M1001;X0.2(热继电器)存入M1002。所有原始输入都经过此层净化,后续逻辑不再直接引用X区地址。第1层:控制逻辑层(CLL)
实现核心工艺逻辑。星-角启动的关键是“延时切换”:KM1(主接触器)吸合后,T0定时器开始计时(设为5秒),T0常开触点闭合使KM2(星形接触器)吸合,同时T1开始计时(设为0.5秒),T1常开触点断开KM2、闭合KM3(角形接触器)。这一层所有定时器、计数器、比较指令都基于M区地址运算,与硬件解耦。第2层:执行输出层(EOL)
将逻辑结果转化为物理输出。M2000(KM1线圈)→ Y0.0,M2001(KM2线圈)→ Y0.1,M2002(KM3线圈)→ Y0.2。此处必须加入互锁:Y0.1与Y0.2的线圈回路中,必须串联对方的常闭触点,防止KM2与KM3同时吸合造成相间短路。
这种分层不是教条,而是应对现场变更的保险。某次客户要求增加“故障复位后自动重试”功能,我只需在CLL层新增一个M3000(重试标志位)和T2(重试间隔定时器),HAL和EOL层完全不动。若所有逻辑堆在一个网络里,改一处可能牵扯二十行梯形图。
3. AutoShop核心功能实操详解:从组态到调试
3.1 总线轴组态实战:以GL20-2HC接脉冲传感器为例
GL20-2HC是汇川专用高速计数模块,支持AB相正交编码器、单相脉冲+方向、双相脉冲三种模式。组态步骤如下:
硬件连接确认:传感器输出为集电极开路(NPN型),则模块输入端子COM接PLC的24V+;若为PNP型,则COM接0V。接错会导致计数器始终为0。
模块属性设置:在设备组态中双击GL20-2HC,进入“通道配置”。关键参数:
- “计数模式”:选“AB相正交编码器”(对应四倍频)
- “输入滤波时间”:设为2μs(默认10μs会丢失高频脉冲)
- “计数方向”:勾选“自动识别”,由A/B相序决定
- “计数范围”:设为-2147483648~+2147483647(32位有符号)
地址映射验证:配置完成后,AutoShop自动生成D寄存器映射表。CH0当前值→D1000,CH0预设值→D1002。此时必须点击“下载配置”到PLC,否则D1000不会更新。
梯形图调用:不能直接用LD指令读D1000,因为它是32位值。正确做法是:
LD M1000 // 启动标志 MOV D1000 D500 // 将CH0当前值传至D500(32位传送) CMP D500 K10000 M2000 // 比较是否达到10000脉冲注意:CMP指令的K值是十进制常数,K10000即10000,不是十六进制。
常见错误:有人用DMOV指令但目标地址设为D500.0(位地址),导致编译报错。AutoShop的D区地址必须是整数,D500.0是非法语法。
3.2 运动控制配置:CANopen总线轴的电子齿轮比设定
IS620P伺服通过CANopen接入H5U PLC,要实现“主轴转1圈,从轴转2圈”的电子齿轮比,步骤如下:
EDS文件导入:从汇川官网下载IS620P的EDS文件(is620p_v1.0.eds),在AutoShop“设备组态”→右键CAN总线→“导入EDS文件”。导入后,AutoShop会解析出所有对象字典(OD)索引。
对象字典映射:关键寄存器:
- 0x6060(模式选择):设为6(速度模式)
- 0x6040(控制字):bit0=1(使能)、bit7=1(清除故障)
- 0x60FF(目标速度):写入速度值(单位rpm)
电子齿轮比配置:这不是在PLC程序里写公式,而是在伺服参数里设。用汇川专用软件“AutoManager”连接IS620P,进入“电子齿轮”菜单:
- 分子(Numerator):设为20000(对应从轴1圈)
- 分母(Denominator):设为10000(对应主轴1圈)
- 主轴源:选“PLC脉冲输出”或“CANopen同步周期”
PLC侧同步:在AutoShop中,用“MC_GearIn”功能块(运动控制库)调用。输入参数:
MasterAxis:主轴(H5U的脉冲输出通道)SlaveAxis:从轴(IS620P的CANopen节点ID)GearRatio:设为2.0(AutoShop自动换算为整数比)
调试时,用AutoShop的“运动监控”窗口查看实际齿轮比偏差。若偏差>0.1%,检查CAN总线终端电阻(必须两端各接120Ω)和波特率(推荐1Mbps)。
3.3 调试工具链实战:从串口助手到在线监视
AutoShop自带调试工具,但必须与外部工具协同:
串口调试助手(SSCOM):用于Modbus RTU通讯调试。例如,读取IS620P的运行状态:
- 功能码:03(读保持寄存器)
- 起始地址:0x2001(对应状态字)
- 寄存器数量:1
- 计算CRC16后发送帧:
01 03 20 01 00 01 C9 2B - 若返回
01 03 02 00 01 79 84,则状态字=0x0001,表示“伺服使能”。
AutoShop在线监视:比串口助手更高效。右键梯形图→“在线监视”,可实时查看:
- X/Y/M/D区变量值(绿色=ON,灰色=OFF)
- 定时器当前值(T0=5000ms时显示“5000”)
- 功能块执行状态(MC_MoveAbsolute的
Done位)
波形图追踪:对高速信号(如脉冲输出)必须用此功能。点击“调试”→“波形图”,添加Y0.0(脉冲输出点),设置采样周期为1μs,可直观看到脉冲宽度、频率、占空比。曾有个案例:客户抱怨伺服定位不准,波形图显示Y0.0脉冲宽度只有5μs,而IS620P要求最小脉宽10μs,原因是PLC输出类型设为“漏型输出”,实际驱动能力不足,更换为“源型输出”后问题解决。
4. 汇川PLC典型故障排查与避坑指南
4.1 ER75报警:编码器通信中断的七种可能
ER75是汇川PLC最常报的伺服相关错误,手册解释为“编码器异常”,但实际原因多达七类,按发生概率排序:
| 排查顺序 | 可能原因 | 验证方法 | 解决方案 |
|---|---|---|---|
| 1 | 编码器电缆屏蔽层未接地 | 用万用表测编码器插头外壳与PLC机壳电阻 | 小于1Ω为正常,否则重新压接屏蔽层 |
| 2 | AB相接反 | 查PLC端子图,确认A相接X0.0、B相接X0.1 | 交换两线,观察计数方向是否反转 |
| 3 | 输入滤波时间过大 | 在GL20-2HC属性中查看“滤波时间” | 改为2μs并下载配置 |
| 4 | 电源电压波动 | 用示波器测编码器供电(5V±5%) | 加装DC-DC稳压模块 |
| 5 | 伺服参数未启用编码器 | 用AutoManager查IS620P的P0.01(编码器类型) | 设为1(增量式)并保存 |
| 6 | CANopen节点ID冲突 | 查PLC组态中节点ID与伺服拨码开关 | 确保唯一性,重启伺服 |
| 7 | PLC扫描周期过长 | 在“系统配置”中查看“循环扫描时间” | 优化程序,确保<10ms |
特别提醒:ER75报警后,必须先断开伺服使能(0x6040 bit0=0),再复位PLC,否则再次上电仍报错。很多工程师直接按复位键,结果报警持续。
4.2 梯形图逻辑陷阱:那些手册不会写的细节
定时器复位时机:T0的常开触点在T0当前值=预设值时立即闭合,但T0的“完成位”(T0.DN)需等待下一个扫描周期才置位。因此,若用T0.DN触发下一步,会有1个扫描周期延迟(约2ms)。解决方案:直接用T0常开触点,而非T0.DN。
比较指令的隐含转换:CMP K100 D100 M200中,K100是16位常数,D100是32位寄存器。AutoShop自动将K100扩展为K00000100,但若D100值为-1(FFFF FFFF),比较结果为“小于”。新手常误以为K100>D100就成立,实际需用
>=或>指令。功能块执行条件:MC_MoveAbsolute必须满足
EN(使能)为ON且IN(输入有效)为ON才能执行。若IN在EN之前一个扫描周期变ON,功能块会忽略本次指令。正确写法是用上升沿触发:LD M1000 PLS M1001,再用M1001作为EN。
4.3 硬件调试黄金法则:三步验证法
任何新接线,必须按顺序验证:
通电前目视检查:
- 所有端子螺丝紧固(扭矩≥0.5N·m)
- 24V电源极性无反接(红=+24V,黑=0V)
- 编码器A/B相与PLC输入点一一对应(非X0.0/X0.1随意接)
上电后静态测试:
- 用万用表测X区输入点对0V电压:有信号时应为24V,无信号时<3V
- 测Y区输出点对0V电压:程序置Y0.0=ON时应为24V,OFF时为0V
动态运行验证:
- 用AutoShop“强制输出”功能,逐个置位Y0.0~Y0.7,听继电器吸合声
- 用示波器抓Y0.0波形,确认脉冲频率与程序设定一致
曾有个项目,客户反馈“PLC输出无反应”,前三步检查发现:Y区端子排的公共端(COM)未接24V,而是悬空。继电器线圈两端无压差,自然不动作。这种低级错误,占现场调试问题的30%。
5. 从入门到精通的进阶路径:避开自学弯路
5.1 学习资源优先级排序
第一优先:汇川官方文档
《AutoShop用户手册》《H3U/H5U编程手册》《IS620P参数手册》是唯一权威来源。重点精读:- 第3章“地址分配规则”(避免地址越界)
- 第5章“功能块参数说明”(如MC_MoveVelocity的
Velocity单位是rpm,不是pps) - 附录“错误代码速查表”(ER75、ER02等)
第二优先:AutoShop内置示例
安装目录下\Examples\文件夹含50+个工程,覆盖星-角启动、多轴同步、PID温控等。不要只看程序,要右键“下载到PLC”实机运行,用在线监视看变量变化。第三优先:社区经验帖
汇川论坛(hui-chuan.com)的“AutoShop专区”,搜索关键词“GL20-2HC”“ER75”,筛选高赞回答。注意甄别:2020年前的帖子可能适用旧版固件,需核对PLC固件版本(H3U固件v2.1.0以上才支持CANopen从站)。
5.2 必练的五个基础案例
LD梯形图1s闪烁程序:
用T0(1000ms)+M1000构成自锁回路,Y0.0接LED。验证PLC扫描周期与定时器精度。星-角降压启动完整程序:
包含HAL/CLL/EOL三层,加入热继电器保护、故障声光报警、手动/自动切换。GL20-2HC高速计数+比较输出:
传感器每转输出1000脉冲,计满10转(10000脉冲)后Y0.0输出1s。Modbus RTU主站读取伺服状态:
用MB_Master功能块,读取IS620P的0x2001(状态字)、0x2002(位置反馈)。CANopen总线轴点动控制:
用MC_MoveVelocity功能块,X0.0按下时正转,X0.1按下时反转,X0.2停止。
每个案例必须做到:程序可下载、硬件可验证、波形可测量、故障可模拟。
5.3 我踩过的三个大坑与血泪建议
坑1:固件版本不匹配
曾用AutoShop v3.2.0打开H5U固件v2.0.0的工程,下载时报“指令不支持”。汇川固件升级是单向的,v2.0.0不能升v3.0.0。解决方案:在AutoShop“帮助”→“关于”里查看支持固件列表,下载对应版本AutoShop。坑2:CANopen EDS文件版本错误
IS620P有v1.0和v2.0两个EDS文件,v2.0新增了电子凸轮对象。若用v1.0 EDS组态v2.0固件伺服,AutoShop无法识别0x60C1(凸轮表)对象。必须从汇川官网下载与伺服固件版本完全匹配的EDS。坑3:调试模式未关闭
AutoShop的“调试模式”开启后,PLC会禁用部分安全功能(如急停输入检测)。某次调试完忘记关闭,设备交付后客户按下急停,PLC未响应。血泪教训:每次下载程序后,务必检查右下角状态栏是否显示“RUN”,而非“DEBUG”。
最后分享一个小技巧:AutoShop的“项目比较”功能(右键工程→“比较项目”)能快速定位两次修改的差异。当客户说“昨天还好好的”,用此功能3分钟内找到被误删的互锁逻辑,比逐行查梯形图高效十倍。