ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

三菱PLC与发那科/川崎机器人CCLINK总线通信实战指南

三菱PLC与发那科/川崎机器人CCLINK总线通信实战指南 做自动化集成这些年多品牌设备之间的“对话”是最容易让人头疼的部分。前段时间刚完成一个产线改造项目控制层用的是三菱PLC机器人却是发那科和川崎两个品牌混着用发那科机器人负责机床上下料川崎机器人负责搬运码垛项目需求里明确要求所有机器人必须接入同一套CCLINK总线网络由三菱PLC统一调度和监控状态。这个项目让我把三菱PLC、发那科机器人、川崎机器人走CCLINK总线通信的整套流程摸了个透。从硬件选型、总线接线、拨码开关设定到地址映射、PLC组态、机器人示教器参数配置再到通信测试和报警排查每一步都有不少坑。这篇文章就把整个过程做个完整梳理重点讲清楚CCLINK通信的原理细节、IO地址映射的计算方法以及实际操作中容易忽略的地方给正在做类似多品牌设备联动的朋友一个可参考的落地方案。1. 项目背景与通信方案的整体选型思路1.1 设备现状三菱PLC、发那科机器人、川崎机器人为什么要“联网”这个项目的现场设备情况其实很典型产线主控用的是三菱Q系列PLC负责整条线的逻辑调度和联锁控制。机器人这边有两类一类是发那科机器人应用在数控机床的上下料工位需要根据PLC的指令切换加工程序、执行取放动作也要把机器人当前状态、报警信息、节拍数据回传给PLC另一类是川崎机器人负责后道的搬运码垛需要接收来自PLC的托盘号和垛型选择指令同时反馈码垛完成信号。在没有总线通信的情况下这类多品牌设备联动通常靠I/O硬接线一个点位一根线启停、复位、报警、准备完成再加上程序号选择少说也要二十根线。而且硬接线只能传开关量像产品计数、坐标偏置、报警代码这些数据根本传不过来。所以项目初期做方案评审的时候我们就确定了要走总线通信把点位和数据都在总线上跑。1.2 为什么选CCLINK三种方案对比后的结论当时我们重点比对了三种方案IO硬接线、CCLINK总线、以及通过Ethernet/IP或Profinet加网关转换的方案。方案布线成本传输内容实时性多品牌兼容性维护难度IO硬接线高线缆多仅开关量高好查线麻烦CCLINK总线低一根电缆串联位字数据高扫描周期毫秒级三菱主站各厂商从站清晰工业以太网低数据量大高需要网关/协议转换配置复杂选择CCLINK有几个决定性因素。首先PLC是三菱的CCLINK是三菱主导的开放式现场总线主站模块和编程组态都是原生支持不用做任何协议转换。其次发那科和川崎这两家机器人都提供CCLINK从站接口选配机器人控制器里直接插入对应的总线板卡示教器上有专门的参数界面配置站号属于标准成熟方案。第三CCLINK属于工业现场总线扫描周期在毫秒级完全满足机器人上下料这种对实时性有要求的场景。这里要特别说明一下标题里提到的川崎机器人和发那科机器人其实接入CCLINK网络的原理和步骤是基本一致的都是作为从站挂在三菱PLC主站下面。后面章节我会以发那科机器人为主做详细配置讲解川崎机器人的差异点单独列出来说明。2. 硬件准备与CCLINK总线接线规范2.1 三菱PLC主站模块与机器人从站接口的选型搭配硬件选型是整个通信方案的基础。三菱PLC做主站不同系列要配不同的CCLINK主站模块PLC系列主站模块型号说明FX3U/FX5UFX3U-16CCL-MFX3U用最大带4个从站Q系列QJ61BT11N经典款最多带64个从站L系列LJ61BT11L系列专用iQ-R系列RJ61BT11新型号性能更强我们现场用的是Q系列所以主站模块选的是QJ61BT11N。要注意这个模块是安装在主基板或扩展基板上的组态时需要在GX Works里单独做网络参数配置不是插上去就能用的。机器人侧需要的硬件是CCLINK从站接口板卡。发那科机器人R-30iB控制器可以选配CCLINK从站板卡插入主板的扩展槽位里川崎机器人同样有对应的CCLINK接口选配件。这里有一个非常关键的细节机器人订货的时候就要和生产厂家确认好是否有这个硬件接口因为多数情况下总线板卡是需要出厂预装的后期现场改造加装也可以但涉及拆装控制器、更新系统软件比较麻烦。我们项目里发那科机器人是出厂预装好的川崎机器人则是在到货后由厂家技术人员现场加装的。2.2 CCLINK专用电缆的接线细节与终端电阻处理CCLINK总线使用的是专用电缆外形和普通的屏蔽双绞线不同内部有5根线DA、DB、DG、SLD、FG。接线端子通常是5孔的插拔式端子排剪线剥线后按顺序压接这点和接普通电缆很不一样不熟悉的人容易接错。引脚信号名作用线色参考1DA数据线A白2DB数据线B蓝3DG数据公共地黑4SLD屏蔽层接地屏蔽层5FG框架接地黄绿DA和DB是一对差动信号线传输数据靠它们DG是信号地必须和数据线一起接好否则通信会不稳定SLD用于接电缆的屏蔽层防止工业现场的电磁干扰FG接机壳地。接线过程中最容易犯的错有三个。第一个是DA和DB接反这个会导致完全通信不上第二个是SLD和FG同时乱接造成接地环路第三个是终端电阻的问题。CCLINK网络的物理层是RS-485标准规范要求在总线的最两端各接一个110欧姆终端电阻接在DA和DB之间。这个电阻的作用是消除信号在电缆末端反射没有终端电阻或者只在一边接总线通信都会出现偶发断线的情况。判断线路两端在哪里很简单主站模块算一端最远的那个从站算另一端两个位置各接一个终端电阻就对了。2.3 从站拨码开关站号、波特率、占用站数缺一不可硬件接线完成后每个从站模块上都有拨码开关需要设定。机器人控制器里的CCLINK从站板卡上一般有3组设定站号、波特率、占用站数也叫扩展站数。这三项看着简单但设定错了通信必然失败。站号设定通常由两位拨码开关组成分别代表十位数和个位数编号范围是1到64。波特率要和主站模块完全一致CCLINK支持156kbps、625kbps、2.5Mbps、5Mbps、10Mbps五档通信距离和波特率有关系速率越低传输距离越远10Mbps时最远100米156kbps时可以做到1200米。现场要根据实际布线距离和通信要求选一个统一速率然后主站和所有从站都拨到同一档。占用站数决定了这个从站占用的地址资源大小后面第三章详细讲地址计算时会说明一般IO点数要求不多的情况下选默认的“占用1站”就可以。这里有一个实践经验上的重要提醒拨码开关的设定必须在断电状态下进行拨完之后再上电模块才能正确读取站号和波特率参数。我见过太多次因为带电拨码导致通信参数没生效甚至损坏模块的情况这个务必要写进项目的操作规范里。3. 地址映射与IO点位规划把“谁控制谁”落实到具体地址3.1 CC-LINK的通信数据模型RX/RY/RWr/RWw怎么理解讲到CCLINK总线通信就绕不开RX、RY、RWr、RWw这四个概念。很多第一次接触总线通信的朋友一看到这几个名词就懵了其实理解起来并没有那么复杂。如果把CCLINK比作一条“邮路”主站是邮局从站是收件人那么数据交换就可以分成四种信RYRemote Output主站发给从站的位数据相当于主站写给从站的信内容是“启动”“停止”“复位”这类开关信号。RXRemote Input从站回给主站的位数据相当于从站寄回给主站的信内容是“运行中”“已到位”“报警”这类状态信号。RWwRemote Write Word主站写给从站的字数据相当于主站寄给从站的大信封里面装的是“程序号”“速度倍率”“坐标偏置”这类数值型数据。RWrRemote Read Word从站回传给主站的字数据相当于从站寄回给主站的大信封里面装“当前坐标”“节拍时间”“报警代码”这类数值反馈。对于从站设备来说RY和RWw是主站对它的输出RX和RWr是它对主站的输入。搞清楚这个方向后面做地址映射表的时候才不会把信号方向搞反。3.2 从站占用站数与IO地址区间计算示例CCLINK总线里每个从站可以占用1到4个站每个站对应的地址资源是固定的32点位RX、32点位RY、4个字RWr、4个字RWw。占用站数越多分到的地址范围就越大。实际选几站取决于机器人需要和主站交换多少信号。大多数场景下机器人需要十几个DI、十几个DO占用1站完全够用字数据通常还能余下不少。地址从哪里开始算和主站模块在网络参数里设置的起始地址有关系。以QJ61BT11N为例假设我们在GX Works里设定的起始XY地址是0000H那么从站站号占用站数RX地址范围RY地址范围RWr字地址RWw字地址站号11站0~1FH0~1FHW0~W3W10~W13站号21站20H~3FH20H~3FHW4~W7W14~W17站号31站40H~5FH40H~5FHW8~WBW18~W1B计算公式并不复杂起始地址加上站号减1乘以每个站的地址偏移量。比如站号3的RX起始地址 0 (3-1) × 20H 40H。多做两个例子就能掌握规律。不过实操中我基本不手算直接在GX Works的网络参数画面里看它自动分配的地址列表那个界面会把每一个从站的RX、RY、RWr、RWw地址清清楚楚列出来以软件显示为准最靠谱。有一点要特别注意软件里显示的地址是主站侧的地址。主站用这些地址去读写从站而从站侧比如机器人控制器里也有自己对应的地址编号两者之间的对应关系是通过从站的参数配置和映射来建立的。所以做地址表的时候一定要同时记录“主站地址”和“机器人侧地址”两个维度。3.3 信号映射表把机器人的控制逻辑落到具体点位地址区间计算出来之后下一步就是做信号映射表。我的习惯是在项目配置前先把这张表做出来而不是一边配置一边想这样可以避免点位遗漏和冲突。以发那科机器人上下料工位为例假设我为它分配的PLC侧RY地址是Y0到Y1F32位RX地址是X0到X1F32位信号规划如下方向PLC地址信号名称说明PLC→机器人Y0启动上升沿有效启动当前程序PLC→机器人Y1停止上升沿有效暂停运行PLC→机器人Y2复位复位机器人报警PLC→机器人Y3~Y7程序号选择5位二进制最多32个程序PLC→机器人Y8允许运行安全联锁权限机器人→PLCX0准备完成机器人上电且无报警机器人→PLCX1运行中正在执行程序机器人→PLCX2报警有活动报警机器人→PLCX3原点到位已回到原点位置机器人→PLCX4~X7状态代码预留扩展状态PLC→机器人W10目标坐标X字数据16位数值PLC→机器人W11目标坐标Y字数据16位数值机器人→PLCW0当前坐标X字数据16位数值机器人→PLCW1当前坐标Y字数据16位数值这样一张表做完整个通信内容就完全清晰了。后面无论是配置机器人示教器还是在PLC里写程序所有编程都围绕这张表展开。特别强调一点程序号用二进制编码的位组合来传可以大大节约IO点位。如果不走总线而是用硬接线传一个程序号至少需要7根线128个程序总线方式下5个点位就能搞定32个程序这就是字数据处理能力带来的优势。4. 三菱PLC主站参数配置与机器人从站设置实操4.1 GX Works中的主站网络参数配置硬件连接到位后第一个要做的是在三菱PLC这边完成主站的网络参数配置。我用的软件是GX Works2Q系列对应的版本操作流程如下第一步在工程导航栏的“PLC参数”里确认CCLINK主站模块所在的基板槽位已经被识别。如果模块安装正确刷新后槽位上会显示QJ61BT11N的型号信息。第二步双击模块图标进入“网络参数”设置界面把运行模式设为“在线”通信速度波特率选为和从站拨码开关一致的档位比如2.5Mbps。这里要注意主站的波特率设定实际上是从上位机写入的但具体操作要在网络参数的“通信速度”下拉框里选好而且要和所有从站保持一致一处不一致就可能导致整个网络掉线。第三步在“从站信息”列表中添加每个从站。填入站号、占用站数保存后软件会自动分配RX、RY、RWr、RWw地址。这个画面里会显示每一站的占用范围方便我对照之前做的信号映射表核对。第四步把网络参数写入PLC并复位。配置完成后必须对PLC进行断电复位或者在线复位操作网络参数才会真正生效。复位后观察QJ61BT11N模块面板上的指示灯L RUN灯亮表示主站正常SD/RD灯闪烁表示正在收发数据。4.2 发那科机器人示教器上的CCLINK从站设定发那科机器人这边的操作是通过示教器完成的。进入方式是在MENU菜单下找到“I/O”或“总线”相关界面具体路径可能因软件版本略有差异但核心要设置的就几项从站站号、波特率、以及把总线数据映射到机器人内部DI/DO信号。站号和波特率必须和PLC主站设置的完全一致。比如PLC主站速率设为2.5Mbps机器人这边也要选2.5MbpsPLC分配站号1给发那科机器人机器人这里也要把从站号设为1。接下来是最关键的IO映射。发那科机器人UIUniversal Interface里有一张映射表可以把CCLINK的RX/RY位数据映射成机器人内部的DI/DO。举个例子PLC侧的Y0是“启动”信号对应到CCLINK总线从站侧机器人收到的是主站发送的RY0那就在示教器映射界面把RY0对应的位映射成机器人内部的DI[1]这样PLC写Y0机器人看到的DI[1]就会导通。同理把机器人的DO[1]“准备完成”映射到RX0PLC从X0就能读到这个状态。这部分配置做完了一定要记得在示教器上做一次“冷启动”或者控制器重启让映射生效。实际操作中很多时候参数改完了画面也显示了但通信就是不通最后发现是没重启控制器这种低级错误很常见。4.3 川崎机器人接入时需要注意的差异川崎机器人和发那科在CCLINK从站配置上原理是一致的但操作路径不一样而且有几个需要注意的差异点。川崎机器人需要在控制器里安装CCLINK从站板卡上电后通过示教器的“I/O 管理”或者“现场总线”设定界面来配置。设置项基本也是站号、波特率、占用站数这三样。川崎的IO地址概念和发那科略有不同它用信号编号来区分输入输出比如“输入信号”对应总线从站收到的主站输出数据“输出信号”对应机器人回传给主站的输入数据。在实际对接川崎机器人时我遇到的一个问题是川崎的从站板卡默认的站号范围是从0开始还是从1开始不同版本可能有区别。解决方法是先把波特率设为和主站一致站号先设1然后用主站的“CC-Link诊断功能”扫描一下网络上的从站软件会显示检测到的从站站号和模块类型。如果扫描结果显示多个站逐个核对找到对应机器人那一路。4.4 通信测试三板斧强制、监视、握手参数全部设置完成后不要急着跑完整流程先用最基础的三个手段把链路打通。第一步是使用GX Works的“软元件测试”功能强制置位发那科机器人对应映射的RY点位。比如在软元件测试画面输入Y0点强制ON然后到机器人示教器上看DI[1]是否变成1。如果能看到说明PLC往机器人方向的链路已经通了。第二步是反过来在机器人示教器上手动置位一个DO信号比如把DO[1]准备完成强制为ON然后到PLC这边用软元件监视看X0是否为1。这个方向通常更容易出问题因为涉及机器人侧的映射表配置如果X0读不到状态先查机器人侧映射是否做对再查从站地址区间是否对应。第三步是做“握手测试”PLC输出一个信号给机器人机器人程序里检测到这个信号后延时2秒再给PLC回一个信号PLC收到回信后把输出信号复位。这样一个回合下来双向通路都验证了而且通过回信延时也能看出总线的扫描周期和稳定性。我在QJ61BT11N上实测过2.5Mbps速率下CCLINK的扫描周期大概在几毫秒到十几毫秒之间完全满足工业控制需求。5. 常见故障排查与现场避坑经验5.1 通信类报警的快速判断与处理这个项目前后调试了两周遇到的报警和问题不少整理出来基本可以分为物理层、参数层、映射层、程序层四类。下面这张表是现场排查问题的速查表故障现象可能原因排查步骤主站模块L RUN不亮主站参数没生效重新复位PLC确认网络参数已写入主站ERR灯常亮通信速率先不匹配、从站不存在核对主站和从站的波特率设置确认从站拨码站号正确且已上电从站ERR灯闪烁从站参数错误、占用站数设置不符断电重拨码核对占用站数是否和主站配置一致主站能扫描到从站但IO状态不对地址映射错误检查QX地址区间配置和机器人侧映射表通信时通时断总线接线松动、终端电阻缺失检查DA/DB接线端子紧固确认两端终端电阻排查屏蔽层接地机器人侧一直收不到启动信号示教器映射未生效重启控制器冷启动后再测试5.2 总线不通时的从物理层到应用层排查顺序总线和普通的IO硬接线不完全一样查起来要有一个清晰的顺序。我的经验是严格按照“物理层→参数层→地址层→程序层”这个顺序排查不要一上来就怀疑程序逻辑。物理层最先看检查QJ61BT11N模块面板上的L RUN灯和ERR灯状态。ERR灯亮或者闪烁大概率是物理层有问题。这时候拿万用表量终端电阻两端DA和DB之间的阻值正常应该显示110欧姆。如果显示几百欧姆或者无穷大说明总线电缆有断路、接错、终端电阻缺失等问题。这个方法非常有效可以快速定位断点大概在哪个区段。物理层确认没问题后再检查参数层主站的波特率设置是否和从站一致、从站站号是否冲突、是否存在两个设备设置了同一个站号。站号冲突的表现是主站能扫描到设备但数据时好时坏。用GX Works的CCLINK诊断功能可以查出来如果诊断画面显示“站号重复”这类提示排查那个站号对应的所有从站。映射层的问题通常出现在机器人侧主站PLC这边地址是软件自动分配的一般不会出错但机器人侧的手工映射容易搞错方向。检查映射表的时候先确认主站侧的RY对应从站侧的哪一位再确认从站侧映射到机器人的哪个DI三步链路一步一步核对。5.3 现场最容易踩的五个坑第一个坑是接完线没有用终端电阻就长时间跑程序。CCLINK网络在短距离、少从站的情况下不接终端电阻可能也能工作但抗干扰能力会显著下降电焊机一开通信就闪断。这种情况最坑人因为它不是完全不通而是“时好时坏”非常难查。第二个坑是带电拨码。发那科机器人的从站板卡上拨码开关拨的位置没有变但实际上电时是另一个状态——这些数字逻辑芯片读取参数是在启动瞬间完成的。反复确认了站号和波特率都没问题最后才发现是上电后去动了拨码开关模块根本没重新读取。正确做法是拨码前断电拨码后确认再上电然后观察模块启动自检过程是否正常。第三个坑是接地问题。DG信号地和SLD屏蔽地的作用不一样DG必须跟着DA/DB一起拧到端子排上SLD通常接在电缆屏蔽层的引出线上。现场如果发现某一段通信特别差检查这一段的地线是不是接到了不干净的接地点上比如和变频器的地共用了干扰会沿着地线串进来。第四个坑是地址映射表签名写反。我在最开始做信号规划的时候就把RX和RY的方向理解了后面对应到机器人侧也必须一致。主站写Y从站收RY机器人看到的是DI从站发RX主站读X机器人要输出的信号要从DO映射过去。方向一搞反启动信号发出去永远没有反应。第五个坑是程序号用二进制传送时的位序问题。发那科机器人中DI信号的编号和CCLINK从站的位号不一定完全对齐做映射的时候要逐个确认是从哪一位开始的不要默认位0就一定对应控制器内部地址的位0。最好的办法就是用软元件测试功能逐一强制置位通过机器人示教器观察实际通断确认每一个信号的实际对应关系。5.4 独家小技巧用PLC监视功能反查机器人IO状态最后分享一个现场调试时特别好用的小技巧。当机器人报警停止PLC和机器人之间通信正常但PLC程序里状态信号一直不对的时候不要急着在机器人侧去翻状态直接在GX Works里打开软元件监视画面输入RX对应的地址区间比如X0到X1F观察每一位的ON/OFF状态。比如机器人报了一个安全门报警PLC程序里应该显示X3报警信号为ON但监视画面上X3始终是OFF。这时候先确认机器人侧的实际报警状态如果机器人确实有报警而X3没导通问题就出在机器人内部“报警”这个DO没有正确反映到CCLINK从站的RX位上去示教器检查对应DO的映射和逻辑就好。反过来如果PLC程序里看到X3为ON但触摸屏上机器人运行状态显示不对那就是PLC程序里对X3这个状态的后续处理逻辑出了问题跟总线通信本身已经没有关系了。用这个方法可以把“通信链路问题”和“控制逻辑问题”快速分开调试效率能提升不少。以我个人实际做这个项目的感受来说多品牌设备通过CCLINK总线通信这件事原理并不复杂只要把硬件接线、拨码参数、地址映射这三块吃透后面的工作基本都是按部就班。最容易出问题的往往是细节接线端子压接不牢、拨码没断电、映射方向搞反、终端电阻缺失。希望这篇文章里总结的这些实操经验和排查方法能帮正在做类似项目的你少走一些弯路。
返回列表