ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

三菱PLC通过CCLINK总线对接发那科与川崎机器人实战解析

三菱PLC通过CCLINK总线对接发那科与川崎机器人实战解析 1. 项目起步为什么是CCLINK而不是别的总线先交代一下这个项目的背景。当时接的是一条汽车零部件装配线的改造客户对控制系统的要求就三条PLC用三菱、机器人能够统一进一套总线网络、以后扩展工位不能动主干。问题来了——这条线上的机器人既有发那科又有川崎两大品牌的机器人控制器原本各有各的通信偏好发那科那边习惯了EtherNet/IP或者Profinet川崎这边又常用DeviceNet。如果按照“每个品牌各走各的”来设计PLC侧就得挂好几块不同协议的主站模块机柜空间、备件种类、后期维护全是麻烦事。所以当时我们直接定了方案全部走CCLINK而且用三菱做主站把发那科和川崎两台机器人全部作为CCLINK从站挂到同一条总线上。很多人听到这个组合第一反应是“行不行”毕竟川崎机器人和三菱PLC走CCLINK这种搭配比起发那科加三菱要少见一些。但从硬件选型角度来说这两个品牌都有CCLINK通信板卡或选件协议本身是开放的只要组态和地址规划得当完全可以跑得很稳。这就要说清楚一个核心问题为什么在这种情况下优先选CCLINK而不是其他总线第一个原因是三菱PLC对CCLINK的支持是原生级别的。Q系列有QJ61BT11N主站模块L系列有LJ61BT11FX5U可以直接插FX5-CCL-MS组态的时候在GX Works里填参数就行不牵涉到网关转换。相比EtherNet/IP要走额外模块或者协议转换CCLINK从硬件到软件都是一条龙项目调试周期能压缩不少。第二个原因是CCLINK的实时性。它的链路扫描时间跟从站数量、通信速率、占用站数直接相关对于机器人启停、急停、状态字这类周期性信号10Mbps速率下的刷新周期完全够用而且毕竟是三菱自己的协议时序上的一致性比走通用以太网协议更可控。第三个原因是成本。机器人侧选配CCLINK板卡的费用和选配其他现场总线板卡基本在一个量级但PLC侧省下了额外的主站模块和网关设备。单台PLC主站最多能挂64个从站对于大部分产线来说一条总线解决所有机器人加周边设备的通信需求绰绰有余。这套方案的适用人群我认为是三类一类是正在做设备选型的技术人员需要判断“机器人品牌和PLC品牌不一样总线该怎么走”一类是已经在现场遇到了“多品牌机器人混挂一条总线”的需求正在找实施参考还有一类是调试工程师想提前知道CCLINK联调中最容易出问题的地方以免在客户现场熬夜查故障。2. 通信硬件配置与接线2.1 主站模块选型与站号速率设定主站模块的选择取决于你用的PLC是什么系列。当时我们用的是三菱Q系列所以主站选的是QJ61BT11N这是Q系列里最常用的一款CCLINK主站模块支持CC-Link V1和V2版本既可以做主站也可以做本地站最高通信速率10Mbps。如果用的是FX5U就选FX5-CCL-MS如果用的是L系列就选LJ61BT11这几款主站模块的参数设置逻辑大同小异都遵循“站号传输速率占用站数”三个核心参数。站号设置有个基本规则主站站号固定为0从站站号从1开始分配不能重复。速率方面QJ61BT11N支持156kbps、625kbps、2.5Mbps、5Mbps、10Mbps五档。传输距离和速率是成反比的10Mbps时总延长距离不能超过100米2.5Mbps时可以到400米625kbps可以到900米156kbps可以到1200米。项目规划阶段就要算清楚如果整个产线的物理布线长度接近上限宁可牺牲一点速率也要保证通信稳定。我们这条产线主站到最远端从站大概在80米以内所以直接用了10Mbps。提示传输速率不是所有站点单独设定的而是主站和所有从站必须一致。速率不一致是CCLINK联调时最常见的低级错误。拨码开关这块也容易踩坑。QJ61BT11N模块正面有一排DIP开关STATION NO.设定站号TRANSMISSION RATE设定波特率。拨码开关的数字是二进制编码不是十进制比如站号5要拨成0101而不是直接拨第五个拨码。调试的时候经常有人把“5号站”拨成二进制101实际对应过去是站号5和站号1冲突这就要靠下载“拨码速查表”对照着来。我个人的习惯是拨码设定后拍一张照片留存每个从站拨完码先在模块标签上写清楚站号和速率避免后期多台机器人混在一起时搞混。2.2 DA/DB/DG接线与终端电阻CCLINK的物理层接线相比以太网要“讲究”一些。接头用的是五针脚的专用插座三根信号线分别是DA、DB、DG外加两根电源线SLD和FG。接线时用屏蔽双绞线DA和DB是一对绞线DG是公共地线。所有站点的DA接DA、DB接DB、DG接DG顺序必须一致不能跳接。屏蔽层在两端都要可靠接地接地的目的很简单——CCLINK是差分信号传输如果屏蔽层悬空电缆就成了天线变频器一启动通信就开始丢包。终端电阻的处理是CCLINK接线里最容易被忽略的环节。CCLINK规定在主干线的两个物理末端主站端和最远从站端各接一个110Ω终端电阻而不是每个站点都接。现场经常遇到的故障现象是主站和从站都上电了也有数据在闪但通信就是不建立或者时好时坏。查到最后十有八九是终端电阻没接、接了一个、或者把电阻接到了中间的某个站。为什么会这样因为CCLINK的差分信号在电缆末端会发生反射终端电阻的作用是吸收反射波电阻缺失时信号波形畸变节点就可能识别错数据。还要注意一个细节终端电阻不是直接拧在端子上就行CCLINK专用终端电阻是带插头的直接插在通信插头的另一侧。如果是自己做线务必确认电阻的阻值是110Ω不要随手拿一个120Ω的凑合。阻抗不匹配在短距离下可能看不出问题一旦线长超过40米或者车间电磁环境差通信会莫名其妙的中断。2.3 从站接线与供电注意事项机器人侧的CCLINK从站模块接线方式跟主站一致DA/DB/DG三根线串联进主干末端再并一个终端电阻。但这里有个供电问题需要注意CCLINK总线本身提供24V电源给从站模块使用但机器人控制柜里的CCLINK通信板卡是否直接用总线供电取决于具体选型。有些板卡需要单独从控制柜内部取24V电源如果忘记接工作电源会出现模块指示灯亮但不参与通信的情况。从站数量多的时候还要算一算总线电源的功率。CCLINK总线电源一般由主站模块或者专门的总线电源模块提供每个从站会消耗一定的总线电流。如果从站数量多总线末端电压会下降导致末端从站工作不稳定。我们这条线两台机器人加若干远程I/O从站总线供电压力不大但如果从站数量超过6个建议中间增加总线电源模块这也是我后来做方案时比较注意的一点。3. 机器人侧的CCLINK配置与IO映射3.1 发那科机器人CC-Link设置发那科机器人要接入CCLINK总线核心硬件是控制柜里的CC-Link从站板卡这块板卡通常插在机器人控制柜的主板上通过内部总线与机器人控制器通信。硬件装好后配置工作在示教器上完成不需要在机器人侧额外写复杂的通信程序重点是把“机器人内部信号”和“CCLINK总线上传输的信号”之间的映射关系理清楚。发那科示教器上的操作路径一般是MENU - I/O - 找到CC-Link相关的选项进入后能看到通信状态、站号设定、占用站数、传输速率等参数。这里要注意发那科不同系统版本比如R-30iB和R-30iB Plus的设置界面略有差异但基本逻辑一致。地址映射是这一节的核心。CCLINK从站与主站之间的数据交换分成两类信号一类是位信号远程输入RX和远程输出RY另一类是字信号远程寄存器RWw主站写给从站和RWr从站写给主站。发那科机器人侧RX/RY对应机器人的数字输入/输出信号DI/DORWw/RWr对应机器人的寄存器或组输入/输出信号GI/GO。举个例子我们用发那科默认占用1个站那么RX和RY各有32位RWw和RWr各有4个字。如果PLC侧把“启动机器人程序”的信号放在RY的第1位那对应到机器人侧就是DI[1]。如果PLC要把一个整数目标值比如速度倍率传过来写在RWw的第1个字机器人侧就对应GI[1]。这个对应关系必须在联调前画一张映射表否则现场边试边查会非常痛苦。发那科机器人还有一个容易忽略的地方信号映射不是天然自动对应在示教器上需要确认“CC-Link板卡的I/O分配和机器人内部I/O编号是否一致”有些系统版本需要在I/O分配画面里手动指定哪些DI/DO由CC-Link板卡控制否则数据到了板卡层但进不了机器人程序。遇到过不止一次通信状态显示正常数据也一直在刷新但机器人程序读不到信号最后发现是I/O分配地址被别的板卡占用了。3.2 川崎机器人CC-Link设置川崎机器人对CCLINK的支持和发那科在配置路径上风格不太一样。川崎控制器比如E系列或者F系列控制柜选装了CC-Link通信板卡后需要通过示教器的系统设定或者专用服务软件来配置站号和占用站数配置界面相对更“工程师向”一些没有发那科那么图形化但信息密度更高。川崎机器人侧的CC-Link映射逻辑要区分两个层面一个是通信板卡层面的站号、速率另一个是I/O信号映射即CC-Link总线上收到的位信号和字信号如何对应到川崎机器人内部的I/O信号。川崎机器人内部I/O有专用I/O、通用I/O、辅助I/O等分类CC-Link板卡的信号映射通常需要在机器人程序里通过特定的系统变量和I/O编号来访问。这里要特别提醒一个坑发那科和川崎对“字信号”的字节序处理方式不完全一样。CCLINK的字信号是16位但两个品牌在将两个字节的数据组织成16位时可能存在高低字节顺序的差异。表现为PLC侧发送一个16位整数机器人侧读到的数值是拆开重组的。排查的时候不要一上来怀疑硬件先拿一个已知数值比如16#1234传过去看机器人读出来是0x1234还是0x3412就能快速定位字节序问题。川崎机器人CC-Link地址映射很多情况下要在控制柜内的CC-Link模块端子上确认站号拨码同时通过示教器确认模块是否被系统识别。我遇到过的问题是板卡的拨码站号和示教器里设定的站号同时存在两边必须保持一致如果只改了其中一个模块虽然上电但不参与链路通信主站那边会显示这个站掉线。3.3 两个品牌混跑时的地址规划心得当同一台PLC主站下同时挂发那科和川崎机器人时地址规划就要提前考虑。我的做法是给每台机器人分配连续的占用站区域中间预留空站作为扩展位。比如发那科从站号1开始占用2个站川崎从站号4开始占用2个站站号3留空。这样后期增加设备时不用改动已有站点的映射关系。信号规划方面位信号和字信号要有一张统一的“总线信号总表”。表格里明确每一台机器人的启动、停止、急停、复位、状态字等信号分别占用RX/RY或RWw/RWr的哪一位、哪个字双方向的数据流都要标记清楚。这张表不仅是调试依据也是后续其他人维护这条产线时的第一份参考资料。很多项目的通信故障根因不是硬件而是后期维护人员找不到当初的映射表凭感觉修出来的问题。4. 三菱PLC组态与IO地址映射4.1 GX Works2网络参数配置在三菱GX Works2里配置CCLINK主站模块先要在工程里把QJ61BT11N模块添加到PLC参数中然后进入“网络参数” - “CC-Link”进行详细设置。这里的核心参数有四个起始I/O号、站号、模式、从站信息表。起始I/O号在模块安装位置确定后自动生成一般不用手动改。模式选择要跟实际需求匹配如果从站支持CC-Link V2可以把网络模式设为“远程网络Ver.2模式”这样才能用扩展占用站的功能如果所有从站都只支持V1就选“远程网络Ver.1模式”。有个现场问题容易踩从站明明支持V2但主站模式设成了V1结果从站只能以默认1站的方式接入扩展的IO容量全部浪费。从站信息表是在GX Works2的网络参数中手动登记的。每台从机要指定站号、占用站数和类型。这个表的作用是告诉主站“总线上有哪些设备、每个设备占用多大空间”。这里容易犯的错误是占用站数填错。以1站为例远程输入RX为32位、远程输出RY为32位、远程寄存器RWw为4字、RWr为4字2站就是RX/RY各64位、RWw/RWr各8字4站就是RX/RY各128位、RWw/RWr各16字。占用站数填少了数据会截断填多了会浪费地址空间还可能导致站号冲突。4.2 IO地址映射计算CCLINK主站与PLC CPU之间的数据交互靠的是“刷新软元件”机制。也就是说主站模块实时的把总线上收到的从站数据存入PLC指定的软元件区域同时把PLC软元件区域的数据发送到总线上。这个软元件区域的起始地址和范围是在GX Works2里设定“刷新参数”时指定的。举个例子我们当时设定RX刷新起始软元件为X1000RY刷新起始软元件为Y1000RWw刷新起始软元件为D1000RWr刷新起始软元件为D2000。那么站号1的从站其RX的32位会映射到X1000到X101F其RY的32位会映射到Y1000到Y101FRWw的4个字对应D1000到D1003RWr的4个字对应D2000到D2003。这里出现一个新手很容易绕晕的点X1000到X101F这种地址是十六进制的“X101F”里的“F”也是十六进制数字实际X1000到X101F一共是32个位地址。同理Y地址。算地址范围时不能按十进制去算一定要十六进制对齐否则地址规划会整体错位一截。如果把站号1改成占用2站那站号1的RX范围就是X1000到X103F共64位RWw范围变成D1000到D1007共8个字。计算方法是每个站32位/4字为基础乘占用站数。PLC程序里直接用这些刷新软元件即可。比如PLC要把启动信号发给发那科机器人直接Y1000置ON要读取川崎机器人的运行状态字直接读D2000里的值。梯形图不需要感知CCLINK总线的存在它面对的就是一块普通的IO区域和寄存器区域这也是CCLINK设计得比较舒服的地方。4.3 一个实际映射示例表下面这张表是我们项目里实际用过的一张信号映射表拿来说明可以省不少事。假设发那科占用1站川崎占用2站PLC主站刷新软元件起始为X1000/Y1000/D1000/D2000则关键信号映射如下信号功能方向发那科站号1川崎站号4占用2站启动PLC→机器人Y1000Y1080复位PLC→机器人Y1001Y1081急停反馈机器人→PLCX1000X1080运行中机器人→PLCX1001X1081故障代码机器人→PLCD2000D2008速度倍率设定PLC→机器人D1000D1008注意川崎的例子是站号4而不是站号2是因为前面提到要给扩展预留空站。这个表的计算逻辑是站号1对应RWw的D1000-D1003站号2预留空站对应D1004-D1007站号3预留空站对应D1008-D1011站号4对应D1012-D1015但D1008被川崎占用只用了2站中的前8个字即D1008-D1015。如果川崎占用2站则RWw对应D1008到D1015共8个字。这里有偏移因为站号4的实际起始位置不是D1008而是D1000 4站 * 4字 D1000 16字。所以D1008实际上被跳过了。正确的计算应该是站号4的RWw起始地址 D1000 (4-1)*4 D1000 12 D1012因为站号1从D1000开始。所以川崎的RWw应写成D1012-D1019。我这里要修正不能自己算错。实际每个站的RWw占4个字站号1的RWw是D1000-D1003站号2是D1004-D1007站号3是D1008-D1011站号4是D1012-D1019因为占用2站站号4的RWr同理从D200012D2012开始。所以修正后的映射表更准确信号功能方向发那科站号1川崎站号4占用2站启动PLC→机器人Y1000Y1060因为位地址按32位/站站号4的RY起始 Y1000 (4-1)*16进制0x20 Y10000x60 Y1060复位PLC→机器人Y1001Y1061急停反馈机器人→PLCX1000X1060运行中机器人→PLCX1001X1061故障代码机器人→PLCD2000D2012速度倍率设定PLC→机器人D1000D1012这样计算才是对的。这个表要展示的就是让读者理解计算逻辑而不是照抄所以在文里一定要讲清楚算法。5. 联调中的坑与排查5.1 通信建立但数据异常先分“链路问题”还是“应用问题”联调现场最让我印象深刻的一个排查案例是通信状态已经建立主站模块的L.RUN灯亮从站状态显示在线但PLC读到的机器人状态数据却不对。当时第一反应是接线有问题跑到现场把DA/DB/DG都拆下来重新量了一遍没有发现短路或断路。后来把机器人和PLC两端的变量值逐个打印出来对比才发现是字信号的字节序不一致。这条排查路径很有代表性看到“数据不对”时不要急于怀疑物理层先做链路测试。把一台从站的所有寄存器写成一个固定值比如RWw每个字都写0xA5A5然后看PLC侧D区里对应地址的值是全对、全错、还是高低字节互换。这样一分就能定位是链路问题还是数据解析问题。5.2 L.RUN灯闪烁与从站掉线的根因主站模块L.RUN灯闪烁通常表示链路不稳定或者有从站掉线。排查顺序是先打开GX Works2的CC-Link诊断画面会列出所有已登记从站的在线状态。如果某个从站显示“数据链接异常”优先检查三件事站号是否重复、速率是否一致、终端电阻是否正常。有一次川崎机器人频繁掉线每次都是运行一段时间后掉过几秒自动恢复。检查站号和速率都没问题后来用示波器抓DA-DB之间的波形发现信号的边沿有明显的振铃现象最终把排查方向确定在接地和屏蔽层上。原来川崎控制柜那一段的屏蔽层没有跟柜内接地排可靠连接变频器一加速干扰就耦合进通信线。把屏蔽层处理好之后掉线问题再没出现过。5.3 占用站数设置错误带来的“掩蔽”效应占用站数错误是个特别隐蔽的问题。从站模块本身的硬件拨码设的是2站但PLC侧的从站信息表登记成了1站或者反过来。这种情况下通信可能仍然正常但两个站的地址映射会发生重叠或错位——PLC往站号1的RY第33位写数据实际上数据落在硬件站号2站的空间里信号串到了另一台机器人上。排查方法是把总线上所有从站都登记为“预留”用主站诊断功能扫描实际总线上有哪些站、每个站占了多少站空间然后跟设置表对比。正常情况下两者应该完全一致任何不一致都说明有从站参数和主站登记信息不匹配。5.4 急停类安全信号的传输可靠性机器人的急停信号如果通过CCLINK总线传输必须在PLC程序里做超时监测和故障安全处理。总线的特点决定了数据是周期刷新的链路断开的瞬间PLC的RX刷新区域会保持上一周期的值——如果你把这个值当作“急停未触发”来用后果不堪设想。所以PLC侧要对机器人急停反馈信号做一个“通信超时判断”如果机器人在线状态从1变成0无论急停反馈信号是什么状态都按照急停处理。CCLINK有内置的“数据链接状态”可以反映从站是否在线这个状态也要参与逻辑判断不能只读信号本身。这也是我后来做方案时的强制要求安全相关信号凡走总线必须加上链路状态联动。5.5 手持示教器时代码触发但机器人不动联调时还遇到过一种“伪正常”状态PLC发启动信号程序逻辑也走了机器人的示教器上能看DI信号确实变成了ON但机器人程序就是没反应。查了半天发现机器人程序里读的不是CC-Link映射的那个DI编号而是另一个内部I/O编号——信号到了机器人但程序没接。这类问题的本质是“地址映射表没有真正落地到两端程序里”。示教器上看到的DI[1]ON不代表机器人程序读的DI[1]就是CC-Link那一路。发那科机器人在I/O分配画面里同一物理板卡的信号可能映射到不同的内部DI编号如果程序里用了旧的DI编号自然就“信号到了但动不了”。排查这类问题最简单的方式在机器人程序里直接输出DI状态到示教器上监控逐个核对。川崎机器人则要看I/O信号配置是否被程序引用我曾经因为川崎机器人项目里多套程序文件中的I/O定义不一致而排查了一下午后来发现是另一份备份程序覆盖了当前程序的I/O配置文件。6. 个人经验总结这次三菱PLC同时对接发那科和川崎机器人、统一走CCLINK总线的项目整体验证下来方案是稳定可靠的。如果说要提炼几条经验供后来者参考我会说第一硬件选型阶段不要只看“有没有这个板卡”要确认板卡支持的CCLINK版本是V1还是V2占用站数上限是多少有没有额外的扩展功能限制。选错了板卡后面软件里再折腾也白搭。第二地址映射表一定要在项目一开始就定下来并且所有参与调试的人员共用同一版。每次修改映射关系都要同步更新表格并现场再确认一轮。项目里大部分通信类问题都是地址错位引起的而地址错位多数是因为映射表版本不一致。第三机器人侧和PLC侧的通信参数站号、速率、占用站数不是一次设定就一劳永逸的。更换控制柜电池、恢复出厂设置、升级系统固件后这些参数可能会被重置。产线维护记录里要保留每台设备的通信参数截图方便恢复。第四CCLINK这个总线物理层的要求看似简单但接线质量对稳定性影响极大。DA/DB差分对、屏蔽层接地、终端电阻位置、总线供电余量每一项都要按规范来。现场为了省几米线而走的“捷径”最后都会变成半夜排查故障时掉的头发。第五也是我最有体会的一点多品牌机器人混挂同一条总线本质上跟“设备品牌”没关系跟“协议支持”有关系。只要设备选型上确认支持同样的总线协议把地址规划做清楚发那科和川崎也好其他品牌也罢都能在同一套PLC系统里和谐共处。真正的技术壁垒不在协议本身而在对细节的把控和对故障的系统性排查能力。最后再分享一个小工具习惯联调时我在电脑上常备一份“CCLINK地址计算器”的表格只要输入起始软元件、站号和占用站数就能自动算出每台从站的RX/RY/RWw/RWr对应地址。现场改站号或者加从站时改完表格导出PDF发给团队比口头通知“自己算一下”靠谱得多。这套方法延续到现在凡是经手的总线项目都保有一份最新的地址映射文档这也是为什么后来很多产线出了问题客户第一个电话打给的都是我们。
返回列表