
线上跑了好几条带CC-Link的产线之后我越来越觉得这套总线是个“入门容易、调稳看细节”的东西。三菱FX5U本身并不带CC-Link接口想让FX5U作为主站去带远程IO、变频器、伺服或者另一台PLC必须靠FX5-CCL-MS这类扩展模块来落地。这套组合在小产线改造、老设备联网、分布式IO替代传统硬接线这些场景里特别常见因为它的接线简单、抗干扰能力不错、一次能挂的站也多。这篇文章我打算把从选型、接线、GX Works3参数配置到程序读写和现场排查的整条路径拆开讲一遍重点是那些手册上写着但不会告诉你在什么情况下会翻车的地方比如终端电阻该接在哪两个端子之间、站信息设定和实际设备对不上会怎样、刷新软元件不够用怎么救。不管你是刚接手FX5U的新手还是从FX3U那套CC-Link转过来的老手都能直接照着做。1. 先把角色定位搞对FX5U做CC-Link的几条路1.1 FX5U本体为什么接不了CC-Link先把一个最常见的误区掐掉有朋友看到FX5U自带RS-485端子就想直接把CC-Link设备的DA、DB线拧上去觉得反正都是两线制串行通信应该能通。这是不可能的。CC-Link虽然物理层也是差分信号加终端电阻但它的协议是轮询式现场总线协议有自己的帧格式、站号体系、链接扫描机制跟FX5U的RS-485口支持的MC协议、无协议通信、Modbus完全不是一回事。速率、终端电阻阻值、编码方式全都对不上接上去的结果就是双方谁也听不懂谁。所以FX5U要走CC-Link只有一条正路在CPU右侧的扩展总线上挂FX5专用CC-Link模块。FX5U系列对应的模块主要有两个方向一个是主站模块FX5-CCL-MS另一个是智能设备站模块FX5-CCL-GS。前者让FX5U当“指挥官”去轮询和管理下面一堆从站后者让FX5U降格成一个被别的CC-Link主站管理的从站设备常见于把FX5U挂到一个大控制系统里当子站或者两台FX5U之间做数据交互。这两者的参数配置、接线、程序写法差别不小选之前一定先想清楚你这个FX5U在网络里是“主”还是“从”。1.2 主站、智能设备站怎么选我给个更实用的判断方式。如果这个网络里只有一台FX5U在“发号施令”其他全是远程IO、变频器、阀岛、称重模块这类只管听命令的从站那你就是主站选FX5-CCL-MS。注意主站在CC-Link里本身也要占一个逻辑站最多64个逻辑站里主站先拿走一个名额剩下63个给从站。如果现场已经有一套在跑的CC-Link网络主站可能是Q系列、iQ-R或者L系列的老设备现在你加了一台FX5U只是为了采数据、做小逻辑、控制旁边的气缸那FX5U就作为智能设备站挂进去选FX5-CCL-GS。这里有个容易搞混的点智能设备站和远程设备站都能传位数据和字数据区别在于智能设备站支持瞬时传送指令通信也就是说主站可以针对某一个站做一次性的读写请求类似“点对点”地问一句答一句而远程设备站只参与固定的循环刷新。如果你需要读变频器的某些参数、或者做故障时的详细诊断信息读取智能设备站的瞬时传送会好用很多。1.3 选型时最容易被忽略的三个点第一个是站数预算。整条网络最多64个逻辑站但注意“逻辑站”和“物理设备”不是一回事。一个设备可以占用1个、2个、4个甚至8个逻辑站用它来换取更大的数据容量。比如某些多轴伺服模块、带大量数据的视觉模块可能一次就吃掉4个站。你先把每个从站的数据量算清楚再数站数别数到64就以为还能再加。第二个是速率和距离的取舍。CC-Link的传输速率从156kbps到10Mbps分五档速率越高允许的总线长度越短而且这个长度是所有站点共享的“总延长距离”不是每两个站之间都能拉那么长支线还要另外算。现场经常遇到的情况是老板要求通信快一点结果线拉了150米速率却想设10Mbps这时候物理上就不成立必须降速或者改拓扑。第三个是Ver.1还是Ver.2。Ver.1是经典规格每站固定32点远程输入、32点远程输出、4字远程读、4字远程写。Ver.2可以按需要扩展占用数据量大得多但要求主站和所有从站都支持Ver.2混着用会出问题。老设备多的现场老老实实Ver.1往往更省事。2. 接线CC-Link的物理层比你想的讲究2.1 端子定义和电缆选型CC-Link模块上的通信端子一般有五个DA、DB、DG、SLD、FG。DA和DB是一对差分数据线DG是信号地SLD接电缆屏蔽层FG接机架地。接线的时候DA对DA、DB对DB、DG对DG、SLD对SLD这几根对应上了通信才谈得上正常。电缆这块我强烈建议用CC-Link专用电缆别拿普通的屏蔽双绞线凑合。专用电缆的特征阻抗、线间电容、双绞节距都是按这套总线的电气特性设计的尤其在10Mbps这种高速率下用非专用线现场出现偶发丢站、ERR.灯闪一下就恢复的概率会明显上升而这种间歇性故障排查起来最要命你可能花两天都找不到原因。专用电缆分成圆型和扁型两种圆型适合固定布线穿管扁型适合拖链或者要频繁弯折的场合。DA和DB必须是用同一对双绞线不能拆开用两根不同绞对的线这一点比想象中重要差模信号的抗干扰能力全靠这个。2.2 终端电阻110Ω到底接在哪两个端子之间这是新手翻车率最高的地方我单独拎出来说。CC-Link要求在整条总线最远的两端各接一个终端电阻阻值110Ω、功率1/2W接在DA和DB之间。注意不是接在DA和DG之间也不是DG和DB之间是DA-DB。而且只接两个中间的所有站点一律不接。为什么是这两个端子、这个阻值因为总线两端接上匹配电阻之后信号到达末端不会产生反射波形才干净。阻值选110Ω是配合专用电缆的特性阻抗来的用别的阻值会让匹配变差速率越高越明显。我还见过有人图省事把两个终端电阻都接在同一个柜子里中间站点一头一个这种“两端”其实没落在物理最远点上的做法在几米的短距离下也许能跑一旦拉到几十米末端站点就会开始报通信错误。还有个小细节终端电阻要接在电缆的端头不要把电缆多甩出一段再接电阻甩出来的那截线等于一根天线会把干扰引进来。2.3 屏蔽处理与接地SLD接屏蔽层这个屏蔽层最好是两端都接让它形成一个完整的屏蔽回路。有些现场只在一端接屏蔽另一端悬空结果干扰从悬空那头灌进来。FG接机架地按手册要求做第三类接地接地电阻100Ω以下并且PLC柜的地要和动力柜的地分开走线实在没法分开也要保证只有一个接地点避免地环流。还有一个老生常谈但总有人犯的错通信电缆千万不要和变频器输出线、伺服动力线并排走同一个线槽。哪怕有屏蔽层动力线的共模干扰照样能顺着线槽耦合过来。真要走同一条桥架中间加隔板或者把通信线单独穿金属管。2.4 拓扑总线和支线CC-Link是总线型拓扑主干一路串下去。允许有支线但支线长度有严格限制而且总延长距离里要把支线算进去。我的建议是能不用支线就不用直接从主干上分一站一站往下走。如果设备分布在几个方向用中继单元或者干脆分成两条网络比在一棵树上挂一堆支线要可靠得多。3. GX Works3里把参数配明白3.1 工程创建与模块添加打开GX Works3新建工程的时候CPU系列选FX5U机型按你实际的型号来比如FX5U-32MT/ES。然后在导航窗口找到“模块配置图”在CPU右侧的空槽位上双击从模块列表里选FX5-CCL-MS或者FX5-CCL-GS。添加完之后双击这个模块图标就能进它的参数设置画面。这里提醒一句FX5系列智能功能模块的站号、传输速率大部分是在工程工具的参数里设定的不像老的FX3U-16CCL-M那样靠模块本体上的旋转开关。所以换了程序、改了参数一定要把工程下载到CPU而不是只在电脑上改完就以为生效了。如果你手头的模块本体上确实带有站号或速率的旋转开关不同批次、不同型号可能不一样那就以模块正面的标签和手册为准先用开关设好再在参数里保持完全一致——开关和参数不一致是现场第二种最常见的翻车方式。3.2 站号、速率、模式三项基本设定主站参数里的“站号”通常保持默认因为主站在逻辑上占0号这个位置。传输速率要和网络上所有从站完全一致五档可选156kbps、625kbps、2.5Mbps、5Mbps、10Mbps。模式选“远程网络(Ver.1)”还是“远程网络(Ver.2)”取决于你的从站支持情况。速率的选择我给个经验短距离、站数多、要求响应快的场合10Mbps没问题线长超过100米就得往下降如果现场电磁环境脏、柜子里变频器多宁可降到2.5Mbps换取稳定性这点响应损失对绝大多数逻辑控制来说完全无感。别一味追求高速率CC-Link的循环通信是周期性的速率降一档扫描时间增加的量级往往只有零点几毫秒但对误码率的改善是实实在在的。3.3 站信息设定这一步错了后面全废站信息设定是主站参数里最花时间、也最不能出错的部分。你要为每一个站号逐个指定它是什么类型、占几个逻辑站。站类型主要有这几种远程I/O站、远程设备站、智能设备站、本地站、待机主站。数据量对照关系大致是这样的站类型远程输入RX远程输出RY远程读RWr远程写RWw远程I/O站Ver.132点32点不占不占远程设备站Ver.132点32点4字4字智能设备站Ver.132点32点4字4字Ver.2设备4倍占用128点128点16字16字每个站还有一个“有设定/无设定”的开关。这个开关的价值在于拆站和预留假如某个站设备拆掉了但你要保留站号位置不删就把该站改成“无设定”这样主站不再等它的数据网络可以继续正常跑如果还留着“有设定”主站会一直认为该站掉线ERR.灯就会亮。现场改造期间经常靠这个开关救急属于非常实用的小技巧。另外从站的站号是设备自己设的旋转开关或者配置工具一般从1开始往上排0号不要给从站用那是主站的位置。3.4 刷新软元件分配与点数核算参数配好之后要把网络上的数据映射到FX5U的软元件上这一步在“刷新设定”里做。典型的映射关系是这样的数据类别方向刷新目标示例远程输入RX从站到主站位软元件如X1000起远程输出RY主站到从站位软元件如Y1000起远程读RWr从站到主站字软元件如D1000起远程写RWw主站到从站字软元件如D2000起RX和RY记得区分方向RX是从站“送进来”的输入映射到X上读取RY是主站“送出去”的输出映射到Y上写。RWr和RWw更容易混一个记法字母w代表write是主站往下写的字母r代表read是主站往上读的。点数一定要算清楚。Ver.1下一个站就是32点RX加32点RY。如果网络上有8个远程IO站那就是8×32256点X1000起就要占到X1377附近。FX5U的X和Y可用点数是有限的站点一多X1000往后根本不够分。这时候有两个处理办法一是把部分RX、RY刷新到B或M这类内部位软元件上不占X/Y二是按实际站数精简刷新点数先给当前用上的站分配后期扩容再改参数。第二种做法要注意参数一改地址可能整体错位程序里用到的地址全要跟着改所以前期规划时宁可多留一点余量也别贴着边分配。4. 程序侧怎么写4.1 远程I/O站直接映射简单直接远程I/O站是最省事的它没有远程寄存器只有位数据。假设1号站是32点输入、32点输出的远程IO模块RX刷新到X1000起那这个模块的第1点输入就是X1000第32点输入是X101F输出对应Y1000到Y101F。你在程序里读X1000、写Y1000就等于读到了远端设备的输入、控制了远端的输出不用写任何通信指令。用ST写这段逻辑控制一个小气缸就很直观// 1号远程站第1点输入到位信号第1点输出控制电磁阀 Y1000 : X0 AND X1; // 本机启动条件满足驱动远端电磁阀这种写法在梯形图里也完全一样只是把触点线圈换到对应的X/Y地址上。要注意的是刷新周期这些地址的值不是立刻更新的它跟着链接扫描周期走速率低、站数多的时候你写下去到远端真正输出中间会有几毫秒的延迟。做普通顺序控制无所谓做高速同步或者飞剪之类的东西就得掂量了。4.2 远程设备站RWr和RWw要握手远程设备站除了位数据还有远程寄存器这里就涉及握手逻辑了。以CC-Link变频器为例一般主站通过RWw下发运行指令、频率指令通过RWr读回运行状态、输出频率、故障代码。假设2号站是变频器RWr映射到D1000起4个字RWw映射到D2000起4个字那么// 2号远程设备站变频器指令下发 D2000 : H0001; // 运行指令正转启动 D2001 : K3000; // 频率指令30.00Hz // 读取变频器状态 D1000 表示运行状态字D1001 表示输出频率D1002 表示故障代码具体的寄存器编号和位定义必须查设备自带的CC-Link通信手册不同厂商、不同系列的映射完全不一样抄别人的地址一定会踩坑。变频器这类设备的位数据RX/RY里通常是运行中、频率到达、故障报警这些状态位字数据里是频率、电流、电压这类模拟量。握手时序上有个经验写RWw之后不要立刻去判断RWr的反馈值因为指令下发到从站执行、再从从站回报状态中间至少要经过两个链接扫描周期。稳妥的做法是加一个定时器或者状态机先置指令等反馈位稳定后再进入下一状态。用ST写成简单的状态机CASE Step OF 0: D2000 : H0001; // 下发启动 Step : 1; 1: IF X1000 THEN // 变频器反馈运行中 Step : 2; END_IF; 2: // 后续逻辑 END_CASE;4.3 一个完整的小案例我拿一个真实改造场景说一台FX5U-32MT做CC-Link主站挂8个远程IO站给一台包装机做分布式IO再挂2台CC-Link变频器控制输送带。速率设2.5MbpsVer.1模式总线长度约60米。参数里1到8号站设成远程I/O站9、10号站设成远程设备站。刷新设定里RX从X1000起按8个站算就是256点正好到X1377RY同样Y1000到Y1377RWr从D1000起给两个远程设备站各4个字共8个字RWw从D2000起同样8个字。程序结构分三块第一块是远程IO的状态采集和输出控制纯X/Y映射第二块是变频器的启动停止和频率给定走D2000区第三块是通信状态监视把主站的故障信号、各站的数据链接状态引到一个报警画面位上。这套结构不复杂但上下游的关系要理清楚尤其是变频器的频率给定值最好在本机做一个限幅别让上位给个超范围的值直接送下去。4.4 通信状态怎么看FX5-CCL-MS模块正面有几个LED这是现场最快的第一手信息RUN常亮说明模块本身在工作ERR.亮红说明有错误L RUN常亮说明数据链接正常在跑SD和RD分别表示数据发送和接收时闪动。如果ERR.灯常亮而L RUN不亮先看站信息设定和实际挂的站是否一一对应如果L RUN亮但某个站的数据不更新看那个站的站号开关和接线。软件侧GX Works3里带CC-Link诊断功能打开之后能列出每个站的数据链接状态、循环数据、出错代码。现场排查时把这个画面开出来比拿着万用表一根一根测线要快得多。模块内部的出错代码含义去查模块手册的错误代码表别自己猜。5. 现场排查实录ERR.灯亮起来的那些情况5.1 故障速查表现象可能原因处理思路ERR.常亮L RUN不亮站信息设定与实际从站不符逐站核对站号与站类型部分站数据不更新该站站号重复或未上电检查站号开关和24V供电低速能用高速就掉站终端电阻缺失或阻值不对在最远两端DA-DB接110Ω偶发通信错误电缆非专用、与动力线同槽换专用电缆分开布线上电后一直不通信主站速率与从站不一致统一速率并断电重启拆掉设备后报警该站仍设为“有设定”改为“无设定”刷新地址全乱参数改动后未同步修改程序建立地址规划表统一管理5.2 三个最阴的坑第一个是速率不一致。有些从站设备的速率是通过拨码或配置工具单独设的主站参数改了速率从站没改结果就是网络死活起不来。这个坑难在症状不明确灯该亮的都亮就是没数据。建议大家养成习惯改速率的时候把每个从站的速率设置都过一遍。第二个是站信息与实际设备类型不符。比如实际设备是远程设备站带远程寄存器你在参数里设成了远程I/O站那么地址映射会整体错位读到的数据全是乱的而且不一定报错。这个只能靠一台上电试一台别嫌慢。第三个是刷新软元件溢出或者重叠。比如RX分配了256点但X区的可用范围不够或者RX区和RY区不小心配到了同一段地址上现象是数据乱跳、控制异常。我的做法是拿张纸或者表格把每个区的起始地址、占用点数、结束地址全部列出来互相之间留出至少一个区的余量。5.3 链接扫描时间和响应延迟CC-Link的循环通信不是实时的一轮扫描把所有站轮询一遍所花的时间叫做链接扫描时间。它和传输速率、站数成正比10Mbps、8个站的时候实测通常在亚毫秒到1毫秒这个量级降到156kbps、站点又多可能涨到十几毫秒。这个数值在GX Works3的CC-Link诊断画面里能看到做程序时心里要有数。对那些要求“输入一变马上输出跟着变”的场合比如高速计数、位置比较输出就不要指望走CC-Link的循环刷新那些功能应该放在本地做或者用带瞬时传送的智能设备站来补。这一点在方案阶段就要想清楚别等调试时才发现响应跟不上。6. 几个我踩过之后总结下来的实操习惯第一接线之前先把地址规划表做出来。每个站的站号、类型、占用几个逻辑站、RX/RY/RWr/RWw分别落在哪个地址段全部写清楚贴到电柜门内侧。后期维护的人会感谢你你自己三个月后再来看也不会懵。第二终端电阻随模块一起买。110Ω 1/2W这个阻值不常见现场临时找不到有人就随便拿个电阻凑结果高速率下通信时好时坏。多备几个放在工具包里成本可以忽略不计。第三调试顺序从少到多。先接主站加一个从站把通信跑通再去加第二个、第三个。一次性全部接完再上电出了问题你根本不知道是从站的锅还是接线的锅排查时间会成倍增加。第四参数改完记得断电重启或者复位让设置真正生效然后看L RUN灯是不是稳定常亮再开始写程序。我见过有人在参数没生效的状态下写了一整天程序最后发现地址全对不上白干。第五如果这条网络后续还要扩容在地址规划阶段就留出余量RX/RY多留两三个站的位置RWr/RWw也多留几个字。后期加一个站不用动已有地址程序改起来就是几个坐标的事省心省力。