ARTICLE DETAIL

资讯详情

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

KUKA KRC4与S7-1200走Profinet通讯配置详解

KUKA KRC4与S7-1200走Profinet通讯配置详解 我们先直接说结论KUKA工业机器人KR C4系列搭配KRC4控制器和西门子S7-1200走Profinet通讯本身并不复杂但第一次做的人基本都会卡在“设备名称分配”和“IO地址映射”这两个环节上。前阵子我去现场帮客户调试一条小产线机器人是KR 10 R1420PLC是S7-1200 1215C DC/DC/DC从硬件接线到通讯建立再到信号交互前后折腾了大概一个下午。所以我把整个步骤拆开写清楚踩过的坑也一并列出来希望对正在做类似集成的朋友有点帮助。这套方案适合谁参考如果你手上正好有KUKA KRC4控制器想和S7-1200通过Profinet交换信号又不太确定从哪下手或者说你以前只做过S7-1200和第三方Profinet IO设备这次换成机器人发现菜单逻辑完全不同——那这篇文章就是给你准备的。文章会按“硬件准备 → PLC侧组态 → 机器人侧配置 → 联调排查”的顺序走每一步都会解释为什么这么做而不是只告诉你点哪里。1. 通讯架构与硬件准备1.1 为什么选择Profinet而不是MPI或普通以太网先说选型逻辑。KUKA KRC4控制器本身支持多种现场总线选项常见的有DeviceNet、Profibus DP、Profinet、EtherNet/IP等。S7-1200这代PLC原生支持Profinet而它的RS485口要通过额外模块才能扩展Profibus所以如果你在方案阶段就定下来用S7-1200Profinet几乎是最省事的选择——不需要额外的通讯处理器不需要转接线直接用标准网线就能搭起来。另外Profinet在实时性上也能满足机器人控制的需求。S7-1200作为Profinet IO控制器和KRC4的IO设备之间的循环周期可以做到几十毫秒甚至更快。对于产线上的启动、停止、复位、到位信号、报警信号这类开关量交互完全没有问题。如果你还想用它的等时实时模式理论上也支持但实际做产线集成时一般用实时通讯就足够了没必要把通信周期调得太激进反而容易出兼容性问题。1.2 硬件清单和接线细节先把需要的硬件列个清单一台KUKA工业机器人控制器为KRC4KR C4 standard或KR C4 compact均可但需要配置对应的Profinet选项包一台西门子S7-1200 PLC推荐带至少两个网口的型号如1214C、1215C因为一个网口可能要用于编程下载另一个用于Profinet通讯一台普通交换机非必需但调试时建议带上如果PLC和机器人点对点直连也可以至少一根标准工业以太网线建议使用屏蔽网线长度根据现场布局定笔记本电脑安装TIA Portal和KUKA WorkVisual接线这块大部分人不会出错但我要强调一个容易忽略的点KRC4控制柜上的网口不止一个。带Profinet选项的KRC4通常在控制柜内有一块专用的总线通讯模块Profinet网线要接到这个模块对应的网口上而不是随便插一个柜门上带标签的以太网口。普通以太网口一般是用于连接示教器、连接WorkVisual的。另一个容易被忽略的问题是IP地址规划。S7-1200以太网接口默认的IP地址通常为192.168.0.1而KRC4机器人如果在调试时连接过WorkVisual它的IP可能也是192.168.0.x。所以建议先把PLC和机器人的IP段统一规划比如PLC用192.168.0.1机器人Profinet接口用192.168.0.2子网掩码都是255.255.255.0。这个规划最好在组态之前就定下来因为后面分配设备名称和IP地址时全都要用到。提示Profinet通讯建立后IP地址实际上只影响设备在调试阶段的查找和诊断真正通讯时的地址解析是依赖“设备名称”Station Name的。但IP规划混乱会给你排查问题带来极大麻烦所以先用表格把地址理清楚。2. PLC侧组态TIA里必须过关的三件事2.1 安装KUKA的GSDML文件打开TIA Portal新建一个项目添加S7-1200 PLC并组态好基本硬件这个基础操作就不展开了。接下来要做的第一件关键事是把KUKA提供的Profinet设备描述文件装进TIA里否则你在设备目录里找不到这个机器人。KUKA的Profinet设备描述文件是GSDML文件文件名通常长得类似“GSDML-V2.3-KUKA-Robot...”具体版本随控制器软件版本略有不同。这个文件一般在KUKA WorkVisual的安装目录下能找到或者从KUKA官网的支持区下载。装的方式很简单在TIA Portal的菜单栏选“选项→管理GSD文件”在弹出窗口下方点“安装”选中你下载好的GSDML文件装完重启TIA。有个细节我想多说一句很多第一次做的人装了GSDML后在设备目录里看不到KUKA原因是安装完GSDML后没有正确使命名规则去过滤。你在“设备目录”中输入“KUKA”搜索时要注意目录树切换页签从“常规”切到“ProfinetIO”并且在搜索类型里选“设备描述文件”。反正就一个原则如果目录里看不到优先怀疑过滤条件和GSDML版本不匹配。2.2 添加设备并分配IP和设备名称GSDML装好之后在TIA的“设备组态”里从右侧硬件目录的“其他Profinet设备→网关/控制器→KUKA”下找到对应的机器人设备拖到网络视图上把它和PLC画一条Profinet连接线。接下来就是最重要的一步分配设备名称和IP。这一步是整个配置的核心。选中网络视图中的KUKA设备在下方的属性窗口里找到“Profinet接口→以太网地址”把IP地址设为192.168.0.2子网掩码255.255.255.0。然后在“Profinet接口→Profinet”里设置设备名称例如“kuka-krc4”。这个设备名称必须记住后面在机器人侧配置时会用到而且必须和机器人侧设置的设备名称完全一致连大小写都不能差。分配设备名称时往往会有个问题机器人还没通电或者网络不通TIA提示“无法分配设备名称”。不要慌这一步有两种做法一是先把机器人侧配置做完让机器人在网络上上线再回到TIA里执行“在线→分配设备名称”二是你先用电脑的Ping命令确认网络通了再用TIA的设备名称分配功能去写名称。我个人建议先把机器人侧配置做完再回来分配名称否则顺序反了容易出现“名称写不进去”的假象。2.3 规划IO地址表设备添加完成后在TIA的网络视图里点中KUKA设备在下方的IO地址列表里能看到一组输入输出地址。S7-1200里PLC的输入I点对应机器人侧输出PLC的输出Q点对应机器人侧输入。这里要特别注意理解从PLC程序的角度看其实是它向KUKA设备输出控制字以及从KUKA设备读取状态字。举个例子如果TIA里组态后显示KUKA输入模块地址为I 1002.0~I 1003.716位输出模块地址为Q 1004.0~Q 1005.716位那PLC程序里OUT信号比如“机器人启动”命令就放在Q区IN信号比如“机器人准备好”、“运行中”就放在I区。这组地址可以在组态界面里改很多人会改成I 1000起或I 0起但要注意和机器人侧映射时的字节顺序保持一致。IO地址规划时要预留几个额外的位给故障字和状态字。生产中很多莫名其妙的通讯中断问题其实是地址对不上机器人那边往Byte0写了启动命令PLC程序却在Byte1读取隔着一个字节信号怎么绕都绕不转。3. 机器人侧配置WorkVisual里的总线搭建3.1 用WorkVisual连接控制器并上传现场项目机器人侧要用KUKA WorkVisual。插上网线连上KRC4先确认电脑能Ping通机器人的IP一般KRC4的默认IP也是192.168.0.1之类的需要提前确认现场实际设置。打开WorkVisual通过“打开项目→从控制器上传”的方式把控制器里的当前项目拉出来。这一步很多新人不理解为什么必须上传因为KRC4在出厂时已经装好了一套可运行的项目包括机器人运动配置和IO配置只有把它完整拉下来才能在后面修改总线组态后重新下载回去。上传之后WorkVisual显示的界面里会看到控制器的结构树包含机器人系统目录、R1等机器人轴配置、KRC4控制器柜配置等项目条目。3.2 在总线结构里添加Profinet接口现在进入总线配置。在WorkVisual的项目结构里找到“KRC4控制器柜”或者类似入口进入后找“总线结构”。KRC4的一个特点是内部已经预置了一套底板总线比如基于Profinet的KBus或类似机制你在“总线结构”里会看到已经存在的“Interface”条目。接下来要添加的是Profinet IO Slave相关的接口模块。结合我实际调试过的配置流程大致是右键“总线结构”→添加新组件→选择“Profinet”→“PROFINET IO Slave”然后配置它的属性。属性里需要填写的就是那句设备名称例如“kuka-krc4”这个名称必须和TIA里分配的名称完全一致一个字符都不能差。然后添加子组件比如添加一个16位输入/16位输出的模块这样PLC侧在组态设备列表里就能看到对应的槽位。需要强调一个点WorkVisual里添加的Profinet IO Slave的槽位、模块顺序必须和TIA里KUKA设备的组态槽位一致。否则会出现设备在线但IO长度不匹配导致通讯建了又断。我遇到过一个槽位不一致的情况现象是仪表显示“已连接”但PLC那边I/Q地址读不到数据后来发现是模块顺序错了数据全被串位。3.3 配置信号映射并生成机器人IO程序总线模块加好之后还要把总线模块上的信号映射到机器人内部的IO信号编号上。在WorkVisual里这项操作通常是在“输入/输出映射”或者“信号编辑器”里完成。比如总线模块的Input Bit 0对应机器人内部信号$IN[1]Output Bit 0对应$OUT[1]。这个映射规则建议一张表格写清楚因为机器人程序里引用的就是这些内部信号号。等到映射做完最后的操作是把修改后的项目重新下载到机器人控制器里。下载完成后控制器一般会提示需要冷启动或热启动选择重启控制器。重启后你的机器人就纳入到Profinet总线里了。此时在TIA的设备组态里如果网络、名称都正确设备图标旁应该显示绿色代表IO设备已连接。到这里已经成功了一大半。但还没完还要在机器人程序里真的用起来这些信号。我习惯的做法是写一个简单的提交解释器程序Submit Interpreter循环检测$IN[1]启动信号如果有就执行启动流程或者干脆用一份简单的作业程序在主程序里做循环判断。PLC那边只需要给“启动”信号机器人这边把“准备完成”“运行中”“报警”等信号往$OUT里写就是一个非常典型的产线手自动交互逻辑。注意机器人下载项目重启之后KRC4的Profinet设备名称、IP地址以及内部映射关系会全部生效这个过程不要频繁断电。我曾经因为调试急躁刚下载完项目就断总闸结果重新上电后控制器里出现版本不一致告警又要重新同步白白多花了半小时。4. 联调验证与故障排查4.1 三分钟快速验证通讯是否建立设备都配好之后按下面顺序快速验证能省掉很多无头绪的排查。第一步在TIA的设备组态里切到“在线”模式看KUKA设备图标状态。绿色就说明PLC和机器人之间的Profinet数据交换已经建立了。如果图标是灰色或不带连接说明设备离线先查网线和设备名称。第二步在TIA的变量表里强制监控几个地址。给一个机器人输出信号对应的PLC输入地址加上强制值比如把I区某个位强制为1这时到机器人示教器上看对应的机器人$IN信号有没有变成TRUE。能变说明数据链路通了一半。第三步反向验证。在机器人示教器上手动置位一个$OUT信号然后到TIA里看对应的PLC Q地址有没有变化。能变化说明双向通讯都通。这三步速度快能帮你快速把故障缩小到“组态没下载”还是“映射不对”还是“线有问题”这几个范围里。4.2 常见故障现象与解决对照表我把现场常见的问题整理一下方便直接对应查故障现象可能原因处理办法TIA设备图标灰色设备名在线搜索不到网线没插对、机器人未上电、设备名称不一致确认网线接在KRC4总线模块网口确认机器人已启动重新在TIA里分配设备名称设备在线但IO数据保持不变组态槽位顺序不一致或地址映射错位打开WorkVisual检查槽位顺序对比TIA设备组态里的模块序列按槽位重新映射机器人示教器无总线错误但PLC那边报IO访问错误机器人项目修改未下载或下载后未冷启动重新在WorkVisual下载项目执行控制器冷启动通讯断断续续网线质量差、IP冲突、设备名称被重复分配更换屏蔽网线检查现场IP规划删除重复设备名称并重新分配PLC项目编译报GSDML版本不兼容GSD文件版本不支持当前TIA版本到KUKA官网下载适配版本GSDML或在TIA更新GSD文件后重启软件还有一类问题比较容易忽略Profinet网络的刷新时间和看门狗时间。如果设备偶尔掉线一段时间后又自己恢复多半是网络拥塞导致看门狗超时。可以在TIA里把“Profinet接口→高级选项→实时选项”里的更新时间适当放宽比如从默认的64ms改成128ms能明显减少偶发性掉线。4.3 几个容易忽略但是很要命的细节第一是KRC4的网口选择问题我在第一部分提过这里必须再强调一次KRC4有多个以太网口但Profinet通讯用的网口是“PN接口”或者接在专用总线耦合模块上的网口不是所有带网络标识的网口都能用。如果设备怎么都上线不了先拿万用表确认一下网线两端是同一个物理网口有时候柜子里有跳线看起来插对了实际连通的是内部网络让你绕一大圈。第二是设备名称里的字符规范。TIA分配设备名称时不能有中文、不能有空格建议全部小写字母和数字、短横线比如kuka-krc4-01。名称一旦带了下划线或大写和机器人侧不一致的概率会高很多。这不只是规范问题Profinet的设备名称在解析时对某些字符处理方式和KUKA侧不同最保险的做法就是全部小写加短横线。第三是随时留意PLC和机器人两边的“在线状态”不是一回事。PLC侧看TIA设备状态变绿不代表机器人程序里已经看到了输入信号机器人侧总线模块灯正常也不代表PLC程序里已经正确读到输出。两边都得看缺一不可。5. 个人经验和几点补充建议说几句掏心窝的话。这套Profinet联调最大的成本往往不在技术而在环境。现场干扰大网线太长没做屏蔽或者电柜里强电和通讯线走同一根线槽都可能让通讯不稳定。如果条件允许Profinet网线尽量用高等级的工业屏蔽网线两边水晶头压接的时候确保屏蔽层接地可靠。一次糟糕的网络物理层问题可以让你排查到怀疑人生。另外调试时最好先在实验室里把最小系统跑通再来现场。所谓最小系统就是一台S7-1200、一台KRC4控制器、一根网线什么都别接先把通迅建立起来。最小系统跑通了剩下的各种信号交互就是映射的事急也急不来了。最后分享一个我常用的调试技巧在TIA里做一个自定义状态变量表把PLC到机器人的关键命令位和机器人回给PLC的状态位放在同一张表里启动、运行、复位、报警、故障代码、安全门状态一目了然。然后打开表格的监控功能和现场联调人员用对讲机配合一边观察PLC变量一边让人员在示教器上看对应的内部信号两边同时变化就是通的哪边不动就查哪边。这个方法看着土但确实是我用下来效率最高的联调套路。
返回列表