☰
三菱A系列PLC迁移至Q系列实战指南
2026/10/7 4:50:21 网站建设 项目流程

1. 迁移前的想法与背景

1.1 为什么还在用A系列,又为什么非迁不可

先说说我接触A系列的起点。十年前刚入行那会儿,车间里最老的一台设备用的就是三菱A系列PLC,型号是A2N,CPU上厚厚的灰一擦都能写字。那时候师傅跟我说,这台机器比你都大,但它干活比你稳。确实,A系列是八九十年代三菱的主力产品,在当时的行业里属于高端货,结构紧凑、指令丰富,许多老生产线到现在还在跑着A系列的程序。哪怕A系列停产多年,备件只能靠拆机件和二手市场淘,一些工厂仍然不敢轻易动它——因为设备一直稳定运行,谁也不敢保证迁移之后不出幺蛾子。

但现实问题是,A系列的CPU处理速度跟现在的Q系列相比,差距非常明显。老程序的扫描周期动辄几十毫秒,放到现在很多带高速检测、编码器定位、PID调节的设备上,这个速度已经不够用了。再加上A系列通讯模块老旧,与上位机、HMI、伺服驱动的数据交互手段很单一,想要扩展一个以太网模块,难如上青天。备件贵、维修难、技术支持基本为零,这三个问题叠加起来,就是逼着设备改造部门必须考虑向Q系列迁移。

我接手的那次项目,是一台服役了快二十年的包装机。客户要求整机自动化改造,上位机换成新的触摸屏,伺服系统全面更新,但老PLC还要保留一批启停控制、气缸动作、称重计数的逻辑。客户最初的想法是重新写一套Q系列程序,后来一评估,老程序有上千步的顺控逻辑和一大堆工艺参数存在数据寄存器里,重新开发至少要两个星期,而且涉及老工艺,没有人能完全说清楚每个时序为什么要这样设计。这时候,把A系列程序平移或者半移植到Q系列,就成了最经济、最稳妥的方案。

1.2 A系列转Q系列的方案选型逻辑

A系列到Q系列的迁移,业内一般有三种做法。

第一种是整体替换CPU模块加全部程序重写。这个方法最彻底,但是工作量最大、风险最高,尤其对老工艺不透明的情况,很容易在生产恢复后出现各种莫名其妙的时序问题,调试周期不可控。

第二种是使用三菱官方提供的转换工具,在GX Developer或GX Works2里直接把A系列工程转换成Q系列工程。这个方案最常用,也是我这次实战采用的主路径。三菱的FX\A系列程序是可以直接导入到GX Developer中的,然后通过工程转换功能输出为Q系列格式。这个转换不是简单的指令改写,而是对软元件编号、参数块、通讯设置都会做自动映射,极大减少了手动改写的量。

第三种是混合迁移,就是保留一部分A系列模块继续使用,新增加Q系列CPU,通过CC-Link或者I/O LINK进行跨系列通讯。这种方案适合预算有限、只改造部分工位的情况,但对于整线升级来说,通讯延迟和故障点增多,并不是最优解。

从我的经验来看,除非整个产线推倒重来,否则第二种方案——工具转换加手动调优——是性价比最高的。我做这次迁移时,先用官方转换工具完成了90%的指令转换,剩下10%是一些特殊功能指令、中断程序、通讯协议的细节调整。这篇实战记录里的所有内容,都是基于这条路走下来的真实经历。

2. A系列与Q系列的差异难点

2.1 硬件结构差异——不是换块CPU那么简单

很多人以为A系列和Q系列都是模块式PLC,把CPU拔下来换一块新的就能跑,这想法大错特错。A系列的基板、电源模块、I/O模块、通讯模块,跟Q系列完全不通用。

A系列用的是A1S、A2N、A3N这些老基板,总线结构是早期的三菱专用并行总线,模块插槽的机械结构、电气定义跟Q系列的Q总线完全是两代产品。Q系列基板上的模块可以直接插入Q系列CPU,但A系列模块插不进Q系列基板,反过来也一样。所以改造的第一步,就是把整个基板连同所有A系列模块全部拆掉,换成Q系列基板、Q系列电源、Q系列I/O模块。

这里有一个我踩过的大坑:输出模块的接线端子定义。A系列的老模块输出端子的排列方式和Q系列不一样,尤其是继电器输出模块,每个通道的公共端COM的分配规则不同,如果只是把线按原来的端子号插到新模块上,很大概率会烧保险甚至损坏模块。拆线之前,一定要把每一根线的去向记录清楚,同时对照新模块的接线图逐根核对。我的做法是拆线之前拍照、做线号标签,拆完线之后每个插槽都拍照留档,新旧模块的端子号对应表做成Excel表列出来,逐根核对后再接线。

电源容量也是另一个容易忽略的点。A系列的电源模块是A1S61PN等老型号,输出容量有限,换成Q系列后,需要根据新基板上所有模块的5V消耗电流和24V消耗电流重新核算。Q系列基板的电源冗余一般没有问题,但如果原来带了外部传感器电源、触摸屏的24V供电,还是要单独算一遍,避免把Q系列电源模块拖垮。

2.2 软元件与指令集差异——迁移的重灾区

A系列和Q系列虽然都是三菱的PLC,但它们的软元件体系有比较大的差别。直接拿A系列程序编译到Q系列,编译器会报一堆错误,原因就在于两者的元件编号和特殊继电器/寄存器编号并不完全一致。

A系列常用的软元件有X(输入)、Y(输出)、M(内部继电器)、S(状态继电器)、T(定时器)、C(计数器)、D(数据寄存器)、W(字元件)、R(文件寄存器)等。Q系列基本保留了这些类别,但编号范围、编址方式有调整。尤其是文件寄存器的处理,A系列用的是R,Q系列也支持R,但容量和扩展方式不同。转换工具能自动迁一部分,但遇到R文件被程序直接寻址、或者用变址修饰的时候,转换结果往往需要手动校对。

指令集的差异更需要注意。A系列的基础指令(LD、LDI、AND、OR、OUT、SET、RST、PLS、PLF等)在Q系列里完全兼容,这保证了顺控逻辑的主体可以平移。但功能指令的映射就不是一一对应的了。比如A系列里的FUN指令体系,跟三菱后来统一的F/FC指令体系在助记符上有很大区别。

举一个具体的例子。A系列程序里用到的PID控制指令,写法是FNC 88 PID,参数块格式和Q系列不太一样,转换工具会把指令头转换过去,但是参数块的详细设置、采样时间、滤波系数、PID增益这些寄存器的偏移地址,常常需要手动调整。再比如高速计数器指令,A系列的C255、C256这些高速计数器的软件配置方式与Q系列的高速计数器模块配置界面完全不同,程序虽然能转换,但实际运行时计数行为可能出现微妙偏差,必须在调试阶段用信号发生器实测验证。

所以我的建议是:永远不要相信转换工具一按就完事,转换只是拿到了一个可编译的壳,核心工艺逻辑需要一条一条指令去审。

3. 实战记录:A系列程序硬转Q系列的操作全流程

3.1 拿到原始程序与备份——成败的第一步

做迁移前,第一件事不是编程,而是把老程序完整备份出来。这里要说一个很多新手容易忽略的细节:A系列程序在GX Developer里读取CPU时,默认备份的可能是程序文件和参数文件分离的格式,但如果你手头的电脑上只装了GX Works2而没有GX Developer,读取老CPU可能会遇到麻烦。我建议大家安装GX Developer 8.x版本,配合串口编程线或USB-SC09-FX编程线来连接A系列CPU。

我这次的做法是:

  1. 确认CPU型号,我遇到的是A2NCPU,软件上选择对应CPU类型。
  2. 用GX Developer的在线菜单,执行“PLC读取”,把程序、参数、注释全部读出来。
  3. 保存工程后,额外再做一次“备份到文件”操作,生成一个专用的备份文件。
  4. 在电脑上建一个文件夹,把程序文件、注释文件、参数文件、寄存器初始值文件全部归档,文件名标注日期和CPU型号。

这一步之所以重要,是因为后面转换失败了还可以随时回到原点重来,而如果只在CPU里留了程序,一旦迁移中途出现误操作写坏了CPU,老工艺逻辑就永远丢了。

另外,我强烈建议在备份之后再执行一次“PLC写入”或者至少做一次在线监控,确认注释文件与程序文件一致。很多老程序在长期维护过程中,注释文件早就跟程序对不上了,如果后续调试全靠注释去理解逻辑,会浪费大量时间。

3.2 建立Q系列工程与转换操作细节

备份完成后,接下来是新建Q系列工程,并把A系列程序转进来。这一步有三种入口,我用的是GX Developer中的“工程>改变PLC类型”功能,但在新版本GX Works2里,操作路径有些不同。我这里以GX Developer 8.103H为例,GX Works2也是差不多的思路。

操作步骤:

  1. 新建工程。在GX Developer中选择“PLC系列”为Q,“PLC类型”选择实际的Q系列CPU型号,我这里是Q02UCPU,用梯形图语言创建工程。
  2. 打开新建的空工程后,在菜单栏选择“工程>工程变更>从其他系列PLC变更”,弹出对话框后,选择源PLC系列为A,然后指定A系列备份文件的路径。
  3. 点击执行后,系统会把A系列的程序、注释、参数中的可转换部分映射到Q系列的工程里。
  4. 转换完成后,先做一次“编译”,看看报错列表。第一次编译上百个错误都很正常,不要慌,逐个看错误信息,按批次处理。

转换后的常见报错有几类:不支持的指令、软元件编号越界、特殊继电器/寄存器不匹配、中断指针重复、通讯指令的参数表有问题。这些错误大多是格式层面的,一条条改掉即可。但有一个要特别留心的:A系列程序里如果用了T(定时器)的当前值直接读写,例如用MOV指令去读T0的当前值,Q系列里需要用T0的触点加OUT指令配合,或者改用D寄存器去存定时器的设定值,再从定时器当前值寄存器直接读取,这与A系列的行为是有一点差别的。

3.3 手动调整的核心内容——参数、通讯与中断

编译通过后,程序看起来已经“是”Q系列了,但这只是万里长征第一步。真正需要手动调整的是这三个方面。

第一,CPU参数。A系列工程的运行方式、扫描周期设定、I/O分配等参数在Q系列里需要重新设置。Q系列的CPU参数中有一个“智能功能模块”的分配表,要在里面登记每一个模块的起始地址和占用点数。A系列老程序里,I/O分配是自动映射的,而Q系列必须手动指定,否则模块地址会错位。我这次用的Q02UCPU,在第一槽放的是QX40输入模块,设置为X0到X1F,第二槽是QY40P输出模块,设置为Y20到Y3F。

第二,通讯参数。A系列的老通讯模块,比如AJ71UC24,对应的是串行通讯模块,通讯格式、站号、协议等在模块侧面用拨码开关设置。换成Q系列的通讯模块后,这些设置全部要在GX Works2的智能功能模块设置里在线配置。比如我这次新选的QJ71C24N模块,把通道1设置为RS-232无协议通讯,波特率9600,数据格式8位数据、无校验、1停止位,这些参数与老模块拨码开关的含义严格对应,但设置方式完全不同。

第三,中断程序。A系列程序的中断指针I50、I60这些,在Q系列里要检查对应的中断因子。尤其是高速计数中断、定位模块的中断,必须与新的高速计数模块或定位模块的中断号定义一致,否则到点不会触发,设备就会在某个动作上卡死。

3.4 调试准备:用模拟模式和在线监控验证逻辑

调整完参数后,先在离线状态下用GX Works2的模拟器跑一遍逻辑。这一步不能省,因为很多逻辑转换后虽然编译通过了,但时序行为变得不一样,比如A系列里的PLS指令产生的脉冲宽度,在Q系列里可能出现微妙差别。用模拟器虽然不能完全模拟实机I/O,但可以验证内部继电器、定时器、计数器的动作逻辑有没有被破坏。

在线调试阶段,我习惯先不接负载,把输出模块的保险断开或者把输出端子排空,然后给PLC上电,用GX Works2在线监控观察每个关键步序的状态切换。如果没有异常,再逐步接入实际负载,从小到大、从单机到联机地恢复生产。

这里分享一个我实用的方法:把原来A系列的注释导入到Q系列工程里,再用注释去逐条比对关键步序,类似于做代码审阅。老程序里梯形图步号、注释行号是与A系列强相关的,转换后步号会变化,但注释内容不会丢。通过注释可以快速定位哪些工艺动作是靠哪一段逻辑控制的,这在调试时非常有用。

4. 常见问题与排查技巧实录

4.1 Q系列模块地址错乱的排查方法

我在这次项目中遇到的第一个典型问题,就是迁移完程序下载后,所有输入输出全部不对。比如触摸屏上按启动按钮,PLC的X20没有任何反应,但实际上按钮已经按下去了。排查思路其实很直接:先看I/O分配表。

Q系列里,I/O地址不是自动分配的,如果没有在参数里正确登记模块的起始地址,系统会按默认顺序排列,很可能跟旧程序里的X/Y编号对不上。我的解决方法是:在GX Works2的PLC参数窗口中,打开“I/O分配设置”页面,把每个插槽的模块型号、起始X/Y地址逐一填好。填完之后再执行一次“反映参数”,重新下载,地址就正常了。

如果是新加的模块本身地址设置没问题,但仍然读不到输入,那就要检查模块的“响应时间”设置。老设备用的一些近接开关和光电传感器,输出信号高电平持续时间可能很短,如果输入模块的响应时间设置太慢,会漏掉信号。Q系列输入模块一般可以设置ON/OFF响应时间,默认是10ms级别,如果传感器输出脉冲宽度短于这个时间,建议把响应时间调到最小档。

4.2 通讯不稳定的系统性排查步骤

迁移后的通讯问题是第二高发的故障点,尤其是电脑与PLC之间的数据传输,经常会遇到连不上、偶尔断开的问题。我那次使用的QJ71C24N模块,与上位机软件进行无协议通讯,排查过程分五步。

第一步,检查通讯模块的指示灯。模块上有RD、SD、ERR等指示灯,如果ERR灯常亮,说明参数设置错误或模块本身有故障。如果RD/SD灯闪烁,说明物理链路是通的,问题可能在协议参数。

第二步,检查串口参数是否与上位机一致。波特率、数据位、停止位、校验位任何一个不一致,都会导致通讯不上。这里要强调一个容易忽略的点:Q系列模块的通道1和通道2各自独立设置,有时以为自己设的是CH2,实际上线接的是CH1,这种错误我用万用表量过好几次才发现。

第三步,检查通讯协议格式。三菱Q系列无协议通讯中,发送和接收都是用专用指令或者通过D寄存器配置帧格式,老A系列程序里如果用了类似OUTPUT指令,转换后对应的Q系列指令参数中,首字节、尾字节、校验和的计算方式需要手动微调。

第四步,检查缓冲区。上位机发送数据后,PLC的接收缓冲区大小、接收完成标志位等设置都要与程序中的判断一致。我的做法是在接收完成标志置ON前,先清空接收数据寄存器,再把接收到的字节数存到一个D寄存器里,这样上位机什么时候发的、发了几帧都能监控到。

第五步,检查通讯线缆。RS-232线序问题在新接线时非常常见,2-3交叉、5-5直连是最基本的,但很多工程上用的串口线是直通线,接上后完全不通。用串口调试助手直接跟PLC收发测试,是最快的判定方式。

4.3 扫描周期变化导致的时序偏差处理

A系列的扫描周期通常在10~30ms级别,Q系列的CPU快得多,通常只有0.5~2ms。这个速度提升在大多数场景下是好事,但在某些老工艺逻辑里,会出现令人头疼的时序问题。

典型场景是:老程序里靠两个定时器串联产生一个“延时接通+延时断开”的效果,在A系列里,定时器精度约100ms,计时误差在可接受范围内。到了Q系列,定时器精度上升到1ms或0.1ms,同样的设定值计时出来的实际延迟时间会略微变短,如果工艺上对这段延迟有严格要求,产品就会不一样。

解决方法是做全盘定时器核对。我把程序里所有T(定时器)的设定值列成Excel表,逐个确认它的单位体系。A系列和Q系列的定时器编号范围不同,但单位都是毫秒(1ms/10ms/100ms),转换后必须确认每个定时器被分配到的时基单位。如果老程序里用的是100ms定时器,而新程序里被配置成了1ms定时器,那原本设定值K5(表示0.5秒)就会变成5毫秒,这会导致设备动作过快。

还有一种更隐蔽的问题:CPU的恒定扫描周期设置。Q系列可以通过CPU参数强制PLC按固定扫描周期执行,例如恒定10ms。如果原A系列是自由扫描,而Q系列默认的恒定扫描时间没有关闭,那程序的执行节奏会被强制拉齐,有些互锁条件就会莫名其妙地提前满足。我的经验是这个参数一定要设成0,也就是关闭恒定扫描,除非工艺明确要求固定节奏。

4.4 高速计数与定位模块的特殊问题

A系列老设备上很多用A1SD61高速计数模块或A1SD75定位模块。迁移时,这些模块直接被替换成Q系列对应型号,比如QD62、QD75。

替换后最容易出问题的是计数方向判断和预设值比较。老模块的计数模式、比较输出模式都是在模块侧面拨码开关或者程序里用专用指令设置的,到了Q系列,这些设置全部转移到智能功能模块参数里,需要逐项配置。我调试中遇到过一次计数方向反了的情况,排查后发现是QD62E模块的计数模式被设置为“4倍频/2倍频/1倍频”中的4倍频,而老模块实际是1倍频模式,导致位置数据放大四倍。

定位模块的问题更麻烦。QD75和A1SD75的定位参数(速度、加減速时间、目标位置)虽然在转换工具里能转换,但单位体系不同。老程序里脉冲当量可能是1000脉冲/mm,QD75的默认电子齿轮设置是1:1,如果不重新计算电子齿轮比,定位距离会完全错误。我在项目里花了大半天才排查出来,因为机械上看起来动作是对的,但位置指令差了三倍——最终发现就是电子齿轮比设置遗漏。

所以涉及高速计数和定位模块的迁移,我强烈建议单独建一个Excel表,把每个轴的速度单位、位置单位、电子齿轮比、回原点的方向、原点信号逻辑全部列出来,跟老程序里的注释参数逐项对照,再花费半天时间专门测试这个轴的所有动作,千万别省。

5. 经验总结与个人心得

5.1 迁移前的离线检查清单

跑过几次A系列转Q系列的项目之后,我总结了一套自己的离线检查清单,可以说按这个顺序走,80%的问题都能在送电之前解决掉。

  1. 程序备份:程序文件、注释、参数、寄存器初始值,全部留存。
  2. 硬件选型:核对新基板、电源、CPU、I/O模块、通讯模块的型号与订货号,关键规格写下来确认无误。
  3. I/O分配:在新PLC参数里把每一个模块的起始地址写好,对照原程序里的X/Y编号逐一核对,确保无重复、无冲突。
  4. 软元件映射:把转换后的工程里所有软元件的编号列出来,重点是M、D、T、C这些高编号区域有没有超出Q系列的可用范围。
  5. 指令审查:用“查找引用”功能检查特殊指令(PID、高速计数、定位、通讯)的调用位置,逐个打开确认参数格式。
  6. 定时器单位核对:把所有定时器的设定值列成表,检查时基单位是否被改变。
  7. 中断与子程序:确认所有中断指针、子程序调用编号在转换后保持一致,且与硬件配置匹配。
  8. 注释导入:确保注释文件导入成功,后续调试有据可查。

这套清单不是一次性的。我每次遇到新问题,都会往里补充一条,现在已经扩充到了二十多条,多花半小时检查,可能帮你省下两天的现场调试时间。

5.2 现场调试中的细节心得

现场调试阶段,有几点经验值得单独拿出来说。

第一,备份永远是第一位的。在现场调试之前,把转换后的程序下载到CPU之后,第一时间做一次“PLC读取”,把程序存到电脑上作为恢复点。后续每完成一个大阶段的修改,都要更新这个恢复点。不要嫌麻烦,真出了现场事故,一个正确的程序备份能救命。

第二,不带负载调试是最高效的调试方式。把输出保险断开或把输出模块端子排悬空,只靠内部继电器和输入信号去验证逻辑。如果条件允许,用开关模拟输入信号,用万用表或者LED灯观察输出状态,这样可以快速定位程序逻辑错误,而不用承受设备联动带来的风险。

第三,遇到问题时先怀疑硬件配置,再怀疑程序转换。这是我多次踩坑后的体会。很多所谓“转换后的程序运行不正常”案例,最终排查下来都是参数没设置对,而不是程序指令错了。先检查I/O地址、通讯参数、智能功能模块配置这三类东西,能解决绝大部分问题。

第四,多利用在线监控和时序图功能。GX Works2的时序图功能可以录制多个软元件的波形,对比执行结果是不是跟老A系列程序一致。我调试那个包装机的气缸动作时序时,就是用时序图盯着M20、T3、Y25这几个元件,整整录了半个小时的波形,最终定位到一个延时回路的误动作。

5.3 值得注意的后续扩展方向

A系列转Q系列这个事,做完并不是终点。设备后续往往还要进一步升级,比如接入以太网通讯、更换人机界面、加入数据采集系统。Q系列CPU本身就带USB口和以太网口,支持MODBUS TCP、SLMP等协议,这让数据对接变得非常方便。如果原来A系列设备需要在触摸屏上显示生产数据,升级到Q系列后完全可以直接用MQTT或者OPC UA等方式把数据送到MES系统里。

我在这次项目中顺手做了一件事:把Q02UCPU的以太网口接到车间交换机上,用三菱的SLMP协议让上位机直接读取D寄存器的数据,用来实时采集生产计数和故障代码。整个程序中只需要在项目里加一个以太网模块的参数设置,不需要额外写通讯指令,非常好用。如果你的设备未来有数字化改造的需求,迁移到Q系列是打了一个很好的底子。

所以从这个角度回头看,A系列转Q系列,表面上是一次PLC换型,实际是一次设备生命周期的重启。程序迁移只是把老工艺逻辑接续到了新一代平台,后面还有更大的空间等着发挥。我自己在调试那台老包装机的时候,看着曾经几十毫秒扫描周期的老CPU被新CPU替代,同时触摸屏上开始显示实时产量,确实有一种把老设备送进了新时代的感觉。如果你手头也有类似的A系列老设备在跑,建议尽早规划迁移,备件撑不了太久的。

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

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

立即咨询