编写前言

为何想写这些经验?

之前只专注于工业自动化PLC部分,对机器人侧的设计逻辑了解较浅,所以一直有系统学习KUKA机器人的想法。上段时间刚好有些空闲学习了KUKA机器人应用技术的基础知识,加之最近项目有大量KUKA机器人可供学习实践。因此突发兴趣,想通过边学边用的机会把认为有记录分享价值的调试操作理论理解实践经验总结成文进行记录分享。

编写目的用途

  • 方便自己以后记录回顾、参考积累、对比升级完善(好记性不如电子文档化)
  • 方便快速分享给他人参考&进行技术交流
  • 供我发布的其它经验进行关联参考
  • 自己理解下的经验文档呈现(在查阅网上其他类似博文后觉得不够贴切,毕竟每个工程师都有自己的理解与实现方式,写出来的经验不一定符合自己的理解与需求)

技术经验测试环境

  • PLC:
    • 控制器:Siemens S7-1214C DC/DC/DC
    • IDE:TIA-Portal V17
  • ROB:
    • 控制器:KRC4 (8.6.13)
      • 系统固件:KSS 8.6.13
      • 选件包:KUKA.PROFINET S (V5.0.5.51)
    • 本体:KR 210 R2700-2
    • IDE:WorkVisual 6.0.31
    • ROB:KRC

基本准备条件

KUKA控制器软件系统直接支持Profinet通讯,无需采购添加额外通讯硬件模块或板卡。硬件连接上只需通过工业网线将控制器柜内KPC(KUKA PC)主机网卡KLI接口(KUKA Line Interface,图2-7)与外部PN控制器网络相连接。这里与S7-1200 PLC控制器通过工业交换机(支持LLDP)连接。连接注意保证KLI网口指示灯正常闪烁即代表连接正常。
详细硬件接口连接说明参考官方手册“KR C4 标准控制柜说明”1
在这里插入图片描述
(部分型号产品将KLI接口引到控制柜底部接线板X66接口,如图 2-6,此情况推荐接到底部防尘X66网口上)
在这里插入图片描述

一 、PN设备组态配置(KUKA侧)

KUKA侧组态配置主要包括安装Profinet选件包配置总线结构树配置PN设备站的通讯参数机器人交互信号表配置。初次配置稍微复杂繁琐,不过在交互信号配置过程中可以利用我做好的Excel表模板进行快速导入。以下配置过程参考“ProfiNet 总线通讯技术手册”2与“Workvisual6.0 使用手册”3对配置步骤进行简单图文说明。

安装KUKA.PROFINET选件包

获取选件包

KUKA选件包可以在官方渠道采购获取。若机器人采购时选配了Profinet功能,可直接在机器人控制器系统盘默认选件包路径 [C:\KukaOptionPackage] 中拷贝对应选件安装包(xxx.kop文件)。安装方式可以通过WorkVisual安装或者通过KCP(Smart-HMI)示教器安装。
选件安装目录
在这里插入图片描述

注意: 选件包有 KUKA.PROFINET MS 与 KUKA.PROFINET S两种。根据官方手册2理解,以MS结尾代表可配置为PN主站*( PROFINET Controller)与PN从站(PROFINET Device),而以S结尾代表只可以配置为PN从站。因此在下猜测MS后缀为英文缩写M=Master,S=Slave。

通过U盘在KCP示教器上导入并安装

  • 将包含选件包U盘插入控制柜USB接口上(目录显示盘符K:\)或KCP示教器USB接口上(目录显示盘符E:\)。注意在【管理员】权限下操作。
  • 在主菜单中进入投入运行 > 辅助软件
    在这里插入图片描述
  • 按下新软件:在 名称 列中必须显示条目 KUKA.PROFINET MS或KUKA.PROFINET S,而在 路径 列中必须显示驱动器 E:\ 或 K:\。否则按下更新/刷新键,从而刷新目录下的可安装文件进行列出。
    在这里插入图片描述
  • 若未检索到U盘的kop文件,可以通过上图的安装检索路径“配置”按钮进入如下图所示路径手动配置界面,点击“路径”将U中选件包kop文件所在路径添加到路径列表中,点击保存,再次回到上图刷新显示即可。
    在这里插入图片描述
  • 勾选 KUKA.PROFINET MS 或 KUKA.PROFINET S,然后点击 安装。点击 OK 确认安装提示。
  • 将显示安全询问“允许激活项目 […] 吗?”。激活时,当前活动的项目被覆盖。如果没有相关的项目要覆盖:点击是确认询问。
  • 此时将显示修改概览以及一条安全询问。用回答该询问。安装该备选软件包后机器人控制系统执行重启即可安装生效。

通过WorkVisual工程项目导入并安装

  • WorkVisual软件窗口中【点击菜单栏Extras > 备选软件包管理… > 弹出“备选软件包管理”界面】
    在这里插入图片描述

  • 备选软件包管理界面右侧 “+” 号按钮(通过文件添加软件包按钮)打开kop文件选择窗口。选择完成后即可完成添加备选包到WorkVisual备选软件目录中。

  • ROB工程项目树中展开并选中选项组【右击组 > 点击Add…(添加) > 弹窗展开Options选项卡】。 (建议从新机器人初始项目中导出项目工程后进行配置与修改)
    在这里插入图片描述

  • 选择对应选件包(KUKA.PROFINET S或MS.kop)。此时项目树选项组下已存在该选件包。如上图所示即可完成对ROB工程的Profinet选件添加。

  • 将项目从 WorkVisual 传输到机器人控制系统上并激活

  • 在 smartHMI 上显示安全询问“允许激活项目 […] 吗?”。激活时,当前活动的项目被覆盖。如果没有相关的项目要覆盖:点击确认询问。

在WorkVisual工程中组态配置PN总线

  • 项目结构 窗口的 设备 选项卡中激活机器人控制系t统。操作如下图:
    激活KRC控制器

  • 展开机器人控制系统的树形结构,选中“ Bus Stucture(总线结构树)” > 右键 > 添加Add… > 弹出DTM选择窗口。
    通讯DTM选择

  • 在出的“DTM选择”弹窗名称列中选中条目** PROFINET **并用 OK 确认。即将该条目应用到树形图总线结构中。(DTM,Device Type Manager——设备类型管理器)。此选择项目为“通讯DTM”类型,即为总线上连接设备选择通讯类型为PROFINET通讯。

  • 双击PROFINET总线 > 即可打开Profinet通讯配置界面。以下为配置内容截图与配置参数说明:(注意在这里我们只需要设置作为PROFINET设备相关的参数,其它的默认不修改)
    kuka通讯配置截图

  • 通讯设置

    • 网卡:选择所使用的网卡。官方手册也没说明白,但此处默认“未定义”即可,不用选择。
    • 设备名称:在Profinet网络协议中的PN设备的名称。(注意:必须由 Unicode 字母、数字’0’至’9’和连接符“-”组成。标签必须用点号"."相互隔开)
    • SNMP密码:其它网络设备需要通过 SNMP 写访问本设备信息所需的密码。默认密码KUKA即可。
    • 激活工业以太网设备堆栈 (Device Stack):
      • 勾选:PROFINET 用作设备。
      • 未勾选:PROFINET 用作控制器。
    • PROFIsafe 配置:这里我门工程中一般不需要此功能,选择“无 PROFIsafe”
      • 无 PROFIsafe:使用另一个安全接口,例如SIB 或 FSoE。
      • 其它选项:根据实际系统安全标准进行选择,选项详细说明参考手册2
    • 输入、输出端数量:选择设备拥有的非安全输入和输出端数量。这里与PLC所需配置的IO数量一致。
    • 兼容模式:根据PLC端组态GSD版本进行选择。部分版本在不一致的情况也可兼容使用。根据官方手册2建议保持版本一致。
      官方兼容性提示
    • 刷新时间:设定ROB与PLC的数据刷新周期时间,根据现场网络延迟情况与CPU使用率情况调整。
      刷新时间
    • 总线超时:如果机器人控制系统无法在该时间段内与 PLC建立连接,则将发出故障信息。(如果连接正常后,信息变为一条可应答信息。)
    • 将诊断警报作为提示信息发出:
      • 勾选:在 KUKA smartHMI 信息窗口内显示诊断信息。此外,在选项卡拓扑结构图中这
        些诊断信息显示为 PROFINET 警报。
      • 未勾选:不显示诊断信息。
    • 将设备报警传输给 PLC:
      • 勾选:如果机器人控制系统的设备发出警报,则机器人控制系统将通知 PLC,指出一个设备有警报。PLC 可通过周期性读取读出设备的 IP 地址和 PROFINET 名称。为此,PLC 必须使用机器人控制系统相应的诊断地址。
      • 未勾选:如果机器人控制系统的设备发出警报,则机器人控制系统不通知 PLC。
    • 向PLC发送设备专有报警:手册未具体说明。保持默认
  • PROFIenergy:这里不使用不激活,特殊情况下需要此功能根据系统能耗需求配置。

    • 设备设定 :这里无需配置。(KUKA作为PN主站控制器时发现配置从站设备时使用)
    • 设备诊断:可以激活配置KUKA站的故障信号指示位到PN-IO具体点位上,方便PLC报警诊断。
    • 总线故障:总线出错时,即会向 PLC 发送一个状态位。
    • 保养要求1:如果要保养设备,则向 PLC 发送一个状态位。不必立即进行保养,还没有达到磨 损极限。
    • 保养需求2:如果必须保养设备,则向 PLC 发送一个状态位。必须立即进行保养,已达到磨损极限。
    • 诊断报警:如果在设备上有诊断警报等待处理,则向 PLC 发送一个状态位。
      诊断数据提示
  • 根据配置完所有需要修改的参数后 点击应用 保存设置,点击确认保存并关闭配置界面。

  • 获取PLC组态所需的KUKA-GSD文件:直接在WorkVisual软件安装目录安装包下的路径进行GSD文件拷贝使用。(注意 版本、型号 与实际ROB组态匹配)

    • 安装文件.zip内\DeviceDescriptions\GSDML\xxxx.xml
    • 安装目录\WorkVisual 6.0\DeviceDescriptions\GSDML\xxx.xml

配置连接 PN-IO 与 KRC-IO 映射连接关系(KUKA-IO映射)

配置好Profinet总线通讯后,就可以将PN总线IO点位连接到KUKA控制器的系统变量$IN[x]输入端\OUT[x]输出端。KRC控制器程序通过调用系统输入输出进行信号交互数据收发

  • 在菜单栏点击“编辑器”打开“IO Mapping”编辑器界面。(或工具栏直接点击【IO Mapping图标】)
    在这里插入图片描述

  • 【IO-Mapping】编辑器界面介绍,如下图与对应说明
    IO-Mapping编辑器界面介绍

  • PN-IO输入输出关联到KRC系统数字输入端$IN&OUT上:
    3.1 “对象1窗口”中依次选中 “KRC输入输出端”选项卡 > 输入输出端 > 数字输入端,如下图所示将在“对象1筛选列表窗口”显示筛选的KRC输入端。(KRC系统IN总共4096个)

    3.2 “对象2窗口”中依次选中“现场总线” > “PROFINET”总线 ,通过窗口右下角筛选按钮筛选出待关联的输入信号。如下图所示将在“对象2筛选列表窗口”显示筛选的PROFINET总线输入端。(以上PN配置有Input点512个)
    在这里插入图片描述
    3.3 在两个筛选结果窗口中选择同等数量的信号点击上图“信号连接按钮”进行信号绑定关联,关联信号在列表“I/O”列将从灰色变为绿色,代表信号已被关联。已关联的信号将显示在窗口中间的“已关联信号列表窗口”。选中已关联信号点击中间“取消连接按钮”可取消信号关联

    3.4 与上面输入关联同理,分别筛选出对应的输出信号进行关联。配置过程如下图所示
    在这里插入图片描述

根据交互信号表长文本编辑(信号命名/功能注释)

配置好信号映射后,信号的0/1还没有定义实际意义。所以程序使用PN信号时还需要与PLC工程师协商定义信号。设计工程师针对系统工艺流程制定ROB-PLC之间交互信号表交互逻辑流程图。以下是我对这两个技术文件的理解与定义:

  • 交互信号表:用以定义描述 通讯双方 使用的 信号数量、信号名称、信号功能(作用意义)以及信号备注信息的列表。根据我个人的机器人项目实际经验设计了一张比较通用的Excel格式的KUKA交互信号表模板与一张可快速编辑、导出CSV,并可直接导入WorkVisaul的“长文本编辑表模板”。交互信号表在不同行业、不同公司、不同应用场景可能有不同标准模板。当信号数少、交互逻辑简单时一般可以直接通过长文本编辑器进行编辑即可。
  • 交互流程图:用于描述定义的交互信号之间的 收发流程、时序关系、触发逻辑 的流程图、时序图或关系图。这个与所有的程序设计类的流程图一样,可以用Viso、Word等工具绘制。一般情况下我是直接通过与工程师的口头语言沟通交流,在脑海里确立交互逻辑需求的。最终目的用于指导工程师编写符合双方工艺流程的程序以及提供一个互相交互控制的接口协议。
  • 在菜单栏点击“编辑器”打开“长文本编辑器”界面。(或工具栏直接点击【长文本编辑器图标】)
    打开长文本编辑器
  • 根据“交互信号表”编辑对应信号变量的文本注释信息。根据机器人语言切换需求,可以选择多种语言进行注释添加。这里我们主要进行常用的中文英文进行文本注释。
    在这里插入图片描述
  • 若需要清空所有语言的注释文本信息,可以点击“长文本编辑器窗口”右下角如图按钮进行快速清空。
    在这里插入图片描述 - 对于信号数较多、逻辑较为复杂情况可以通过下图 【导出\导入】功能进行快速文本导入。详细交互信号模板的使用可以参考我的另一篇文章【KUKA-交互信号表快速导入模板——使用教程4

工程编译下载、KLI网口IP配置、通讯测试。

  • 配置好编译未报错的项目从 WorkVisual 传输到机器人控制系统上并激活。(注意示教器用户权限 以及 点击确认项目传输激活)
    在这里插入图片描述
  • 示教器上 进入主菜单 依次点击进入 择投入运行 > 网络配置 打开网络配置窗口。修改地址类型(自动获取/静态地址)。IP地址子网掩码配置要保证为PN控制器(PLC)同一子网下的不同IP地址
    在这里插入图片描述
    注意检查IP地址内部/外部冲突情况)以下说明参考手册5
    在这里插入图片描述
  • 配置完毕,保存网络配置,进行冷启动-重启生效。重启后可以通过 主菜单输入输出信号监控表进行信号收发测试验证与PLC的通讯连接。
    在这里插入图片描述

二、PN控制器组态配置(PLC侧)

TIA-Portal导入KUKA机器人GSD文件

在这里插入图片描述

  1. 如上图所示,依次点击进入 菜单栏 > 选项 > 管理通用站描述文件(GSD),即打开GSD文件导入安装界面。
  2. 上图先点击右上角[…]选择待安装GSD文件所在目录,路径选择后在下面列表列出路径文件夹下所有GSD文件。
  3. 勾选所需GSD文件V5.0版本(gsdml-v2.33-kuka-krc4-profinet_5.0),点击安装即可完成。注意 根据KUKA机器人上安装的PROFINET版本对应。

TIA-Portal 组态KUKA机器人PN设备

在导入GSD文件后就可以在博图中组态KUKA机器人PN通讯设备,对PN设备进行网络设置、模块组态、地址分配等操作。
在这里插入图片描述

  1. 打开上图所示【网络视图】,在右侧【硬件目录】窗口中依次点击展开 Other field Devices > PROFINET IO > I/O > Deutschland GmbH > KRC4-ProfiNet_5.0。选择目录下的“KRC4-ProfiNet_5.0 ”PN设备,将其拖入网络视图中即可添加KUKA PN-IO设备
    在这里插入图片描述

  2. 点击KUKA-PN设备机架左上角修改设备名称机架左下侧点击“未分配”处选择连接PN控制器。分配PN控制器KUKA-PN设备IP地址将自动变更位对应PN控制器同一网段不同IP地址。(以上配置也可在 设备属性窗口中配置)
    在这里插入图片描述

  3. 双击KUKA-PN设备机架即可打开对应的【设备视图】如上图所示。在窗口内侧箭头处拖拉出设备概览列表视图。【设备概览】视图中可以组态配置KUKA机器人的 安全模块IO模块。上图显示设备默认配置了一个黄色标签64位输入输出安全模块“64 safe digital…”、一个256位输入输出通用IO模块。这里我们只用到了512位输入输出通用IO模块。所以应该删除插槽1、2上默认的两个模块,从右侧【硬件目录】窗口Module文件夹下的【512 digital in-and outputs】模块拖入插槽2中。在上图对应插槽可以修改对应模块名称、注释、蓝色框处修改IO模块对应PLC输入输出地址。配置好后如下图所示。(在PLC-IO地址较充裕的情况下,我 个人喜欢取整十、百、千地址开始,如100、200、1000,方便后期调试记忆地址递推、核对
    在这里插入图片描述

进行PN-IO地址映射到DB数据块

完成上述模块IO地址分配步骤后即可通过PLC的输出端(Q200.0-263.7,共64字节512个位)与PLC的输入端(I263.0-I263.7,共64字节512位)来与KUKA机器人进行信号交互。但为了方便后期编程与调试一般会对PLC的IO地址映射到更加便捷的DB数据块上进行操作交互。

  • DB数据块映射优势
    • DB数据是独立于硬件IO地址的通用数据,不受 硬件组态变化影响。变量名称冲突域只在限于DB块内。硬件上变动 只需要进行重新映射即可,程序变量交叉引用关系无需更改。
    • DB数据块创建 变量“增、删、查、改”十分方便,数据名称、注释、变量类型等改动可以直接进行不停机、局部修改下载。
    • DB数据块的可以十分方便调试。数据块可以十分便捷进行 在线监视、在线修改数据值、批量设定筛选、批量导入导出、快照记录、数据初始化、数据永久保持切换等。
    • 利用DB块可以对变量进行层次化、模块化管理,利于实现结构化、层次化、模块化编程。
  • DB数据块映射劣势
    • 需要对数据多进行依次大量数据映射编程,增加代码量增加CPU运行周期。
    • 无法实现如硬件IO的立即读写(立即读I200.0:P,立即写QB200:P)的非周期性操作
    • 少量IO数据的情况下,再映射显得累赘多余。
      在这里插入图片描述
  1. 创建如上图输入数据块输出数据块并分别命名“ROB-IN[9]”、“ROB-OUT[10]”。然后在数据块中定义好与组态IO同等位数的变量数据,根据ROB-PLC交互信号表写好变量名注释。如下图所示,数据块属性建议取消“优化的块访问”,块编号改为手动指定。这样可避免程序中进行类似指针访问的绝对寻址操作错误。
    在这里插入图片描述
    在这里插入图片描述
  2. 编写机器人IO模块映射程序如下下图所示,利用【DPRD_DAT】读指令与【DPWR_DAT】写指令将机器人PN-IO数据映射至对应DB块中。(少量数据情况下也会用到MOVE指令进行映射)
  • DPRD_DAT:读取 DP 标准从站的一致性数据。从指定模块读取全部输入数据到指定数据存储单元

    • LADDR:组态的模块IO的硬件标识符,系统常数类型。
    • RECORD:所读取的用户数据的目标范围,即输入数据DB块【ROB-OUT】绝对地址。
    • RET_VAL:执行状态\错误返回值,错误代码如下图所示
      在这里插入图片描述
  • DPWR_DAT:将一致性数据写入 DP 标准从站。从指定数据存储单元写入全部输出数据到指定指定模块

    • LADDR:组态的模块IO的硬件标识符,系统常数类型。
    • RECORD:写入用户数据的源区域。
    • RET_VAL:执行状态\错误返回值,错误代码如下图所示:
      在这里插入图片描述
      在这里插入图片描述

编译检查、组态下载、分配名称、通讯测试

  1. 编译检查语法错误语义错误
  2. 编译无误后进行组态下载,PLC在离线模式右击工程树中需下载组态的PLC控制器,点击“下载到设备”展开如下图所示下载选项,选择“硬件与软件(仅更改)”或点击“硬件配置”后再下载“软件”程序。(== 注意!!!==务必确认硬件组态下载到PLC,只进行软件程序下载将出现工程树中数据块全显示绿色但仍然无法正常通讯的情况,这点很容易忽略导致半天查不出问题所在!)
  3. 软硬件都下载完成后,PLC切换为在线模式 > 打开映射DB块 > 进行ROB-OUT数据在线监视 & ROB-IN数据手动赋值 > 在KUKA机器人侧置位/复位输出信号,检查对应输入位是否收到数据变化。在通讯地址区域随机、分散、多次测试几个输入\输出信号进行验证,验证无误后即完成最终测试。

至此! 你已经完成PLC与KUKA通讯所有的前期配置调试工作。幸运的话你接下来你应该可以愉快的编写自动化工艺流程应用程序了!

三、总结:

  • 回顾整个Profinet通讯组态配置流程,KUKA侧的配置还是比较繁琐的。为了比较细致、明确地引导大部分读者(调试人员)顺利完成配置任务,从篇幅文字量来看还是写的有点多了、有点累赘了。对于大部分有KUKA调试经验的调试员以及比较熟练的工程师只需要稍微看几个关键步骤就可以回忆起如何配置操作了。
  • 配置过程中也参插了许多配置项的官方解释、实际意义作用、个人猜测与理解。尽量做到“知其然”与“知其所以然”
  • 实际操作中初次接触的话还是有些复杂繁琐的,很多配置环节逻辑也不是很清晰明确,许多细节也容易忽视与弄错。就算配置过已经配置过几次KUKA通讯的我也会时不时出现一些遗漏或弄错的地方,运气好的话顺利一次性准确无误配置测试成功。不幸的话可能会遇到一些百思不得其解的疑惑:“他这样可以,我这里咋就不行…”、“我明明所有步骤按着来的…”、“什么鬼,刚不行,现在又可以了”…
  • 有时候一些KUKA升级换代的版本问题可能需要反复测试摸索才能顺利成功。
  • 任何事物没有尽善尽美,只有不断更新迭代、发复打磨 才能越趋完善。正所谓“实践是检验真理的唯一标准”对吧,希望各位工程师在项目实践调试过程中,有更好的建议与经验在评论区留言!
  • 本调试经验由本人光伏靓仔团队在项目实践中共同测试、审核完善,感谢团队各位靓仔支持协助,我才有时间把这个进一步完善。

参考资料链接:


  1. KR C4 标准控制柜说明-BA_KR_C4_GI_zh.pdf ↩︎

  2. 总线通讯包手册-KUKA_PROFINET_MS_50_zh.pdf ↩︎ ↩︎ ↩︎ ↩︎

  3. Workvisual6.0 使用手册-KST_WorkVisual_60_zh.pdf ↩︎

  4. KUKA-交互信号表快速导入模板——使用教程 ↩︎

  5. KSS 8.3 集成商手册(中文版)-KSS_83_SI_zh_V7.pdf ↩︎

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐