
1. 为什么是iQ-R从选型说起1.1 这是一条怎样的产品线先交代一下背景。我当时接手的项目是一条多工位组装产线的控制系统升级原设备用的是三菱Q系列整条线二十多个从站模拟量、定位、变频通讯混在一起程序是用GX Developer写的维护起来已经很吃力。客户提出两个硬要求要么把老系统重新梳理一遍要么换一套方案。综合算下来换平台反而更省钱于是我把目光放在了三菱iQ-R系列上。iQ-R不是Q系列的简单升级而是三菱把Q、L系列统一后重新设计的一套系统。它最大的变化是内核换代指令执行速度快、通信带宽高、支持标签化编程并且工程软件从GX Developer/GX Works2切换到了GX Works3。这些改变不是锦上添花而是从根本上改变了做项目的方式。如果你以前只接触过FX3U、FX5U这类小型机或者一直用软元件地址写梯形图第一次打开iQ-R工程时大概率会有一种“这不是我熟悉的那个三菱”的感觉。1.2 iQ-R和Q系列、FX系列的本质区别想理解iQ-R先要区分它和Q系列的关系。Q系列在三菱中大型PLC里统治了很多年指令丰富、模块齐全但它的编程模型还停留在“软元件梯形图”的时代输入X、输出Y、中间继电器M、数据寄存器D这些东西地址是固定的程序里到处是地址编号。做小项目没问题一旦程序超过几千步或者多个工程师协同开发这种模型就会变得难以维护——你很难从一屏D100、D200、M50里快速看出它们到底代表什么。iQ-R引入了标签编程的概念。你可以给每个变量起一个有意义的名字比如气缸A伸出到位然后在程序里直接使用这个标签名。GX Works3会自动帮你在后台映射到具体的软元件或内部存储器。这不是简单的“符号表”而是真正的结构化编程基础可以定义结构体、数组、FB功能块用ST语言写算法把整个控制逻辑像搭积木一样组织起来。再往硬件层面看。R系列CPU分为基础型、标准型、高性能型和过程控制型它们统一支持板载以太网不少型号自带SD存储卡槽用于配方管理、数据记录和固件维护。这一点比老Q系列方便太多——Q系列很多CPU要加通信模块才能上好一点的网络R系列基本上拿过来就能联。CPU之间还能通过冗余光纤做系统冗余有些支持多CPU多CPU之间通过高速总线交换数据。不过我要提醒一句这些高级功能听着美好实际项目里能用到的比例并不高大部分设备用不到冗余和多重CPU。1.3 用一个实际配置清单说明选型回到我的项目。产线一共需要三套控制系统配套联动单机控制点数加起来约500点数字量、64路模拟量外加快几十个伺服轴。选型时锁定R04CPU基础型到R08CPU标准型之间电源模块三菱iQ-R系列用R61P输入100~240VAC输出5VDC/6A这个电流容量要看背板挂了多少模块把每个模块的5V消耗加起来留出余量。我第一次配的时候就是没算功耗模块插多之后启动不稳后来老老实实做了一张功耗表。CPU模块R08CPU带Ethernet和SD存储卡槽能满足30~50ms内扫描周期下的大中型控制任务。如果程序量更大或将来要扩展更多运动控制轴建议直接上R16/R32。数字量模块输入选的是RX40DC373等型号输出选的是RY40NT5P这种晶体管输出模块。这些外形和Q系列差不多DIN导轨卡装方式一致但总线背板走的是新架构速度更快。模拟量模块现场既要有热电偶又要有标准4~20mA信号所以分别配了温度输入和模拟量输入模块。R系列的模拟量模块自带每通道定标scaling功能这让程序省了很多工程量不用每路信号都写一遍工程量转换。运动控制这次用的是内置定位功能的CPU加增量编码器模块如果你做的是真正的多轴联动推荐使用RD75D/RD75P定位模块或者干脆走伺服驱动器的CC-Link IE现场总线。看到这里你应该能理解我的选型逻辑先用“程序规模IO点数轴数”框出CPU档位再按电压类型和接线形式挑IO模块最后留出通信接口余量。先别急着学那些花哨的冗余和高性能配置把单CPU系统的配置做扎实后面再升级也顺手。2. 工程搭建与编程思路2.1 GX Works3到底改变了什么如果说硬件是骨架那软件就是神经。三菱为iQ-R配备的编程软件是GX Works3它和以前的GX Works2是两套完全不同的工程环境。GX Works2兼顾Q系列和FX系列而GX Works3主要面向iQ-R、FX5U等新平台。我认识的不少工程师第一次打开GX Works3时会有点懵新建工程时不是先选PLC型号然后“确定”就完了而是要你选择CPU类型、工程类型简单工程/结构化工程和编程语言组合。现在很多人推荐直接用“结构化工程”因为它能混用梯形图、ST、结构化文本和功能块。这不是炫技而是为未来维护考虑简单逻辑用梯形图复杂算法用ST复用逻辑做成FB。如果你还在用GX Works2的思路在GX Works3里找“X0、Y0、M0”的软元件表我建议先把脑子切换一下。标签化编程刚开始会觉得不习惯——找不到“地址”很心慌。但用两周之后你会知道标签带来的可读性和可维护性在大中型项目里是压倒性的优势。2.2 程序结构怎么规划一体化控制系统的核心问题不是“怎么写程序”而是“怎么组织程序”。我习惯做一个三级层次第一层主循环负责扫描周期内调用所有功能块和子程序。不要把全部逻辑都拖到一层面主程序臃肿是后期所有问题的来源。第二层功能模块比如进料控制、夹紧控制、加热温控、报警处理、手动调试、自动联锁。每个功能模块用独立的GB/T文件存放标签在模块内部定义对外只保留清晰的接口。第三层底层的伺服FB和模拟量处理FB。这些功能块在上个项目里已经调好直接拷到新工程里复用。iQ-R对FB的支持比Q系列好能自定义变量类型还能设置保护防止不懂的人乱动内部逻辑。实际划分时我会建议把“手动操作”和“自动流程”分开写。老项目最怕的就是手动逻辑混在自动流程里改一个手动按钮结果自动流程莫名奇妙停机。这个教训我踩过太多次了。2.3 标签、软元件和I/O映射我们来细说标签这件事。iQ-R工程里标签分两种全局标签和局部标签。全局标签相当于全局变量多程序共用局部标签只在某个程序块内有效能避免命名冲突。很多初学者一开始把所有变量全部定义成全局标签工程大了就变成一团乱麻。正确做法是全局只放需要跨模块交互的信号比如“急停状态”、“系统运行模式”、“报警总复位”模块内部变量尽量用局部标签或FB内部变量。有一种常见的过渡技巧如果团队以前是Q/FX的老手短期内不习惯标签可以在GX Works3里直接用“全局标签”映射到特定软元件。比如定义X0、D100这样的软元件标签然后标签名可以叫启动按钮、当前温度。这只是过渡方案真正要发挥iQ-R的能力还是建议彻底告别“看到D100就知道是数据”的旧思维直接为D100起名P3罐压力。这样至少你三个月后回来维护时不用再翻注释文档。关于I/O映射我还要强调一个原则尽量在程序入口做一次“物理输入/标签”映射也就是用一条赋值、比较或传送指令把X点读取到系统标签中程序内部只用系统标签。这样做的价值在调试和维修阶段特别大——现场电工只要看标签名就知道这个信号来自哪个开关而不是对着图纸查X点位号。3. 硬件组态与网络通讯实战3.1 模块参数设置的重点项iQ-R模块组态时最容易出错的地方不是接线而是模块参数的分配。每个模块都有面板和参数比如输入模块要设滤波时间、输入响应时间输出模块要设输出保持模式断电保持或初始化清零模拟量模块要设量程、滤波、断线检测、定标。很多人组态时跳过这些参数结果调试时各种诡异问题。我举个例子。有个测温通道接线正常但数值乱跳排查半天发现是滤波器没开现场高频干扰直接耦合进模块。把滤波时间从0调到100ms后数值稳定了。反过来有些快速响应场景比如高速计数和中断输入则需要把滤波关掉。这里有个基本原则D/A、A/D和温度模块滤波开启高速输入、计数、中断输入滤波关闭。另外提醒一点R系列模块的参数破坏了“外部接线改动后才能改参数”的旧观念。现在你在GX Works3里改某个模块的量程和滤波并下载配置模块就会按新参数运行不需要跳线改码。这在上线调试阶段极其好用试错成本非常低。3.2 CC-Link IE、以太网、MODBUS怎么选iQ-R的通信能力是我选择它的一大理由。CC-Link IE Field是高速工业以太网总线可以带IO站、伺服、变频器和传感器普通的正弦波变频器也可以走三菱的CC-Link协议。这个网络用的是以太网电缆屏蔽双绞线或光纤布线方便链路速度高。实际项目里我习惯把控制类设备放在CC-Link IE Field总线上比如远程IO分站、伺服驱动器、变频器。这样做的好处是逻辑统一组态里能直接看到每个站的状态排查故障时一目了然。数据采集类设备比如第三方仪表、条码枪、上位机走普通以太网用SLMP通信协议或MODBUS TCP。iQ-R对MODBUS TCP有原生支持吗严格说是通过以太网模块或FB库实现硬件上标准型CPU自带以太网口软件层面做MODBUS TCP客户端很容易。如果现场有旧设备Q系列时代的CC-Link普通版本总线还能通过接口模块和R系列兼容。很多老产线改造会遇到这类问题新CPU要控制旧CC-Link从站。三菱有R系列的CC-Link主站模块可以直接挂载普通CC-Link总线的远程IO站、仪表和上位机。这是iQ-R比很多日系新PLC友好得多的地方——升级改造不用把所有老模块扔掉。3.3 SCADA怎么连最稳上位机SCADA连接iQ-R常见方案有这么几种。首先是直接用以太网口和SLMP协议通信WinCC、iFIX、组态王、LabVIEW里通过以太网驱动访问R系列CPU这在老Q时代就叫MC协议。其次是OPC UAiQ-R有专门的OPC UA服务器模块或者通过三菱MX OPCUA Server软件来桥接。第三种是MODBUS TCP如果SCADA本身只懂MODBUS只要在RCPU程序里写一个映射逻辑就行。我强烈建议新项目优先考虑OPC UA或SLMP直连不要用串口加转换器的方式。串口在工业现场的可靠性太差而且调试效率低。SCADA和PLC的通信还有一个“轮询周期”问题上位机一般每秒轮询几百个点如果程序里每个点都通过“走模块”来存取现场带宽可能不够。正确做法是一批次传送批量数据比如把200个运行状态打包到一个数组上位机一次读取整个数组而不是一个一个点去读。这一点在调试大系统时差异极其明显。4. 调试流程与关键环节实施4.1 从零到上线的调试顺序我的调试习惯是先离线验证逻辑再点亮模块最后带设备跑动。如果你上来就把PLC和正在生产的设备接上直接下载程序那是拿现场设备的安危试错。R系列好在支持完善的模拟仿真GX Works3里带一个简易PLC仿真器可以模拟CPU运行、监控软元件状态。用仿真跑通主流程能筛掉80%的逻辑低级错误比如数组越界、条件分支错乱、数据类型不匹配等。离线验证通过后开始带IO模块上电。这时先不要接任何执行机构直接用监控表和强制输出的方式验证每一个输入模块的接线正确性。怎么验证手动短接输入端看PLC里对应标签变化用强制输出让输出模块对应的点动作看现场指示灯是否按你预期亮。这条看起来笨却是我调试过的项目里最省时间的一步。因为大部分IO模块故障都是接线错误而现场绞线往往最难查。端子箱里的线号对错、正负反接、信号和24V短路这些只有在逐个点亮的阶段才能发现。别人调试慢通常不是逻辑复杂而是IO底数模糊着干等到联调才暴露问题然后只能一通乱猜。IO点亮加上模块状态监控这个过程通常半天到一天可以完成。4.2 伺服定位和模拟量调试的要点这次项目里涉及十几个伺服轴用的是R系列定位模块加增量编码器伺服驱动。调试时我一般按“单轴点动→电子齿轮比校验→回原点→相对定位→绝对定位→插补”的顺序推进。很多第一次用R系列的工程师会被“电子齿轮比”吓到其实和FX/Q系列同道理你把脉冲当量设好再设置电子齿轮比分子分母让一个指令单位对应一个真实的移动量。伺服调试中最烦人的问题之一是回原点后位置差几毫米。造成这种问题的原因通常是原点开关和零点信号响应时序没处理好。R系列定位模块有帮助避开零位信号抖动的参数通过设置零位信号过滤宽度就能剔除零星抖动让回原点位置稳定。另外每次改完参数务必执行一次“轴初始化”或“复位”否则新参数不生效。模拟量调试相对直接4~20mA传感器接上后先看原始值是否正确再通过模块定标功能观察工程量值是否合理。比如0~250摄氏度温度变送器输出4~20mA定标设定下限0、上限250模块内部算出的数值就是温度值。这个值在调试监控里能实时看到省掉了写程序做换算的麻烦。我还会在模拟量通道上加“断线检测”功能一旦现场线路断开或短路模块会置出报警位程序立刻联动报警画面提示操作员检查而不是傻傻读到0或65535。这一条在冷库、锅炉、烤箱这类温度敏感场景中非常值钱。4.3 在线修改、程序变更和安全的平衡iQ-R支持在线修改程序这是个双刃剑。在设备正常运行中修改逻辑确实方便但它意味着你要特别留意检修和调试模式的区别。我规定的原则是在线修改时只允许修改非安全相关快照修改前记录当前程序备份修改后第一时间做逻辑验证绝不能直接下载到正在执行自动流程的CPU上除非你确认当前工况安全。GX Works3里的在线修改有几种程度可在线写软元件、可在线改程序、可在CPU运行中变更模块参数。最安全的是先用模拟仿真验证再到项目测试环境试跑。也许有人觉得这样太保守但我见过太多在线修改把好端端的设备改停机的例子。很多故障不是程序本身的问题而是下载时机和设备状态不匹配造成的。所以我建议所有R系列项目都在CPU属性里使能“程序变更履历”功能同时定期把CPU里的程序上载到电脑存档并做哈希比对。这样即使现场程序被人改过你也能快速发现哪里变了、什么时候变的。5. 常见问题与排查技巧实录5.1 启动失败和通信不通的几类根因问题一CPU模块上电后RUN灯不亮或闪烁面板报警。排查顺序先看电源模块输出是否正常再看CPU电池电压再检查是否有模块通信冲突。R系列启动时如果检测不到某个智能功能模块会在报警履历里给出详细代码。不要只看RUN灯一定要上GX Works3看系统监视窗口。问题二CC-Link IE从站掉线。这是产线高频问题。先看主站诊断界面里是哪个从站从“正常”变为“异常”。然后查这个从站的供电、站号、网线网线松动是最大推手其次是从站模块被误换导致站号重复。问题三MODBUS TCP通讯偶尔超时。我遇到过多次设备偶尔通讯断、又自动恢复的情况多为现场网关压力过大导致。上位机同时读多个设备时把数据分开虚拟服务器端口控制轮询频率问题大幅改善。问题四模拟量读数与现场实际偏差大。先检查布线屏蔽层是否单端接地再用万用表在模块端子处直接测信号电流与PLC读数对比。如果一致性OK那就是干扰不是模块问题。另外模块的端子盖板上的感光片有些人拆掉后忘了装回导致信号引脚裸露生产环境里很容易被金属屑碰到造成跳变。5.2 报警履历、缓冲存储器和跟踪记录怎么用R系列的报警履历是排查现场问题的第一入口。打开GX Works3的“系统监视”可以看到CPU错误、模块错误、外部故障。很多报警信息不是那么友好但至少能告诉你是哪个模块、什么时间、何种类型。在此基础上我还会用模块的缓冲存储器界面直接监视关键数值。比如定位模块的当前位置寄存器、速度寄存器、状态位不用写一行程序就能在监控表里看到实时值。这一步在排查伺服抖振、定位超时问题时极有用。还有一个很好用的工具是“故障历史记录”它能把每个报警出现的时刻、当时的模块状态存下来。别小看这个功能很多设备故障是偶发性的等工程师赶到现场报警早就不存在了。有历史记录就能复盘报的什么警、什么时间、哪个轴在动、当时速度是多少。这比现场员工“大概可能也许”的描述靠谱一百倍。5.3 写在程序里的防护措施调试再仔细也防不住操作员误操作和极端工况。我建议在R系列程序里做一个标准的“防护三件套”第一所有轴运动必须经过“允许动作”标志位的联锁手动模式下操作员可以点动自动模式下轴动作只能由流程控制触发。第二气缸夹紧、推出等动作必须有超时报警加一个“指令状态”和“到位状态”的时限监控超时2~5秒就报“执行超时”防止卡死未被发现。第三CPU停止、模块通讯异常时所有安全相关输出必须掉电清空输出模块参数里设置成停机输出清零防止PLC一停设备还停在通电状态。这些防护逻辑不是可选项是我每次调试都坚持加进去的。因为设备异常停机损失的最多是时间失控输出伤到的是人。6. 调试笔记之外的扩展想法关于iQ-R在完成这个项目后我自己的体会是它不是一个“更快更贵的Q系列”而是一个编程哲学完全不同的平台。你如果只是硬套老思路可能感觉不到优势但如果你愿意换到标签编程、结构化工程、FB复用、数据记录这些现代工程方法上iQ-R的上限会明显高得多。我身边很多朋友还在犹豫要不要从Q/FX迁移我的建议是把第一个iQ-R项目放在新设备或改造难度低的线体上给自己留出学习时间别一上来就挑战大型冗余系统。还有一个小技巧想分享R系列CPU内置SD卡槽我习惯在每个项目里配一张小容量SD卡启用CPU的“开机自动载入程序”功能。这样遇到极端情况CPU程序丢失或操作员误格式化断电重启就能自动恢复不用拿电脑到现场下载。这个方法救过我一次产线断电后CPU程序区故障自动恢复保障了生产不然连夜去现场传程序的滋味真的不好受。如果你正在评估iQ-R或已经拿到开发套件在啃GX Works3可以从一个简单任务入手比如把以前用FX3U写的一个小设备控制程序用标签FB的方法在R系列上重写一遍。不需要复杂硬件一个CPU、一个数字量模块、一个模拟量模块就足够验证大部分功能。这个练习做完你基本就理解了两代平台之间的设计差距在哪里再回头做正式项目会顺手很多。