库卡机器人-Profinet相关

[复制链接]
查看63563 | 回复0 | 2024-8-10 01:35:10 | 显示全部楼层 |阅读模式
更多KUKA的知识学习请点击下图:



1

Profinet介绍

在当今工业自动化的浪潮中,PROFINET技术已经成为连接工业设备的关键纽带。作为一种先进的基于以太网的现场总线系统,PROFINET不仅提供了高速的数据传输能力,而且还通过其独特的主从通信架构,保证了生产线上各个设备之间信息的实时性和可靠性。在这个框架下,KUKA机器人作为工业自动化领域的重要参与者,其与PROFINET网络的兼容性显得尤为重要。

为了实现KUKA机器人与PROFINET网络的无缝对接,KUKA公司精心设计了两种软件选项包:KUKA.PROFINET MS 和 KUKA.PROFINET S。这两种软件包分别针对不同的网络配置需求,提供了全面的解决方案。

- KUKA.PROFINET MS 软件包包含了PROFINET Controller、PROFINET Device和PROFIsafe Device,这使得机器人不仅能作为网络上的主控制器,还能作为从设备参与数据交换,同时支持安全相关的通信。

- KUKA.PROFINET S 软件包则包括PROFINET Device和PROFIsafe Device,适用于那些不需要充当主控制器的机器人,但仍然需要与PROFINET网络进行高效、安全的数据交换。

现在,让我们深入探讨如何使用WorkVisual软件,在KUKA机器人上安装KOP文件,以完成这些软件选项包的配置。WorkVisual是一款强大的工程工具,它允许用户在机器人控制器上安装和配置软件包,从而优化机器人的性能和功能。

以下是详细的安装步骤:

1. 首先,确保您已经将WorkVisual软件安装在了机器人的D:\驱动器中,并且已经准备了一切必要的安装包。

2. 打开WorkVisual软件,在主界面上找到并点击“Extras”(附加功能)菜单。

3. 在下拉菜单中选择“备选软件包管理”,这将打开一个新窗口,允许您管理机器人的软件包。

4. 在“备选软件包管理”窗口中,您需要选择“安装新软件包”选项,然后根据提示选择位于D:\KUKA_OPT目录下的KOP文件,或者如果您已经通过WorkVisual下载了KOP文件,直接选择该文件。

5. 遵循屏幕上的指示完成KOP文件的安装过程。这可能包括设置配置参数、确认安装选项等。

6. 安装完成后,不要忘记对机器人进行重启,以确保所有更改生效。

7. 最后,通过WorkVisual软件验证软件包是否已正确安装,并检查PROFINET网络配置是否正常。

通过以上步骤,您的KUKA机器人将能够顺利地集成到PROFINET网络中,实现高效、稳定的数据交换。这不仅提升了生产线的自动化水平,也为未来的智能化升级打下了坚实的基础。在安装和配置过程中,务必注意细节,确保每一步都准确无误,以避免潜在的兼容性问题或通信故障。

2

程序讲解

今天我们来聊聊我们最常用的通讯形式--Profinet

定义:

PROFINET 是一种基于以太网的现场总线。数据交换以主从关系进行。

KUKA软件包:

KUKA.PROFINET MS :包括 PROFINET Controller、PROFINET Device 和PROFIsafe Device。

KUKA.PROFINET S :包括 PROFINET Device 和 PROFIsafe Device。

配置(机器人):

WorkVisual软件(机器人D:\有安装包)

KOP文件:(机器人D:\KUKA_OPT,或者通过WorkVisual下载)

安装KOP文件:

打开WorkVisual软件,点击Extras,点击备选软件包管理



点加号添加KOP文件,安装完成后即可关闭窗口,最好再重启动一下Work Visual



查找项目并激活:

将笔记本连接到机器人,匹配网络后,查找项目,并且激活项目

添加profinet总线

鼠标右键点击总线,点击ADD打开添加窗口,旋转Profinet



设置

如果机器人做从站,那双击Profinet进入配置界面

设备名称:机器人端的名称,必须与主站的设置大小写和符号都一致

激活工艺以太网设备堆栈:勾选(激活I/O)

PROFIsafe配置:是否采用PROFIsafe(需要安全型plc)如果不用就选无PROFIsafe

输入、输出端数量:与主站的通讯数量:I/O数量(bit)

其余可以默认



如果机器人做主站:

右击profinet总线,点添加

加入从站设备,如果你的添加界面上没有你所需要的设备那么你需要导入GSD文件,去设备的官网下载一下,让导入到WorkVisual里面



双击从站设置从站参数



点击模块添加从站通讯I/O



IO映射

点击IO Mapping 进行IO连接



RET =IOCTL(”PNIO-CTRL”,60,[ 用户 ID])

这个指令可以解耦一台机器人上使用该设备

RET =IOCTL(”PNIO-CTRL”,50,[ 用户 ID])

这个指令可以耦合一台机器人上使用该设备

RET 的返还值:

-1 出错

1 机器人控制系统处于驱动总线关闭的状态下

2 机器人控制系统处于制动器已制动的状态下

255 机器人控制系统处于待机的状态下

256 PROFIenergy 未初始化

257 机器人控制系统处于过渡状态下

通过 PROFINET 进行电源管

C:\KRC\ROBOTER\Config\User\Common 下的文件 CabCtrl.xml 中进行配置。

输入字节 0

0 AB 驱动总线

0 = 接通驱动总线,条件:HIB = 0 和 KS = 0

1 = 关断驱动总线,条件:HIB = 0 和 KS = 0

1 HIB 休眠

0 = 无功能

1 = 使控制器休眠,条件:AB = 0 和 KS = 0

2 KS 冷启动

0 = 无功能

1 = 使控制器冷启动,条件:AB = 0 和 HIB =0

3 … 7 RES 预留

输出字节 0

0 AB 驱动总线

0 = 驱动总线已接通

1 = 驱动总线已关断

1 BBS 机器人控制系统的待机运行状态

0 = 机器人控制系统尚未做好运行准备

1 = 机器人控制系统已经准备就绪

2 … 7 RES 预留

PROFIsafe

输入字节 0



输入字节 1



输出字节 0





输出字节 1





这段程序是用一种类似于ABB机器人编程语言Rapid的伪代码编写的,它演示了如何使用子程序(也称为例行程序)来使主程序的结构更加清晰和模块化。下面是对这段程序的解释:

首先,定义了一个名为`GET_PEN`的子程序(例行程序)。这个子程序的作用是检查是否输入了第一个参数(`$IN[1]`),如果没有输入,则直接退出。这里的`$IN[1]`可能代表一个输入信号或者条件,用来判断是否需要执行这个子程序。如果条件成立,说明不需要执行取笔的操作,因此直接退出子程序。

```plaintext

DEF GET_PEN

IF $IN[1] THEN

EXIT

ENDIF

END

```

接下来是主程序`MAIN`,它包含了程序的初始化(`INI`)和一个无限循环(`LOOP`...`ENDLOOP`)。

```plaintext

DEF MAIN()

INI

LOOP

```

在循环中,程序通过调用一系列子程序来执行不同的任务。每个子程序的调用是通过其名称加上括号`()`来实现的。例如,`GET_PEN()`调用了之前定义的`GET_PEN`子程序。

```plaintext

GET_PEN()

PAINT_PATH()

PEN_BACK()

GET_PLATE()

GLUE_PLATE()

PLATE_BACK()

```

这些子程序的名称暗示了它们可能的功能:

- `GET_PEN()`:可能用于取笔或者准备绘画的工具。

- `PAINT_PATH()`:可能用于执行绘画路径。

- `PEN_BACK()`:可能用于将笔或者工具返回到初始位置。

- `GET_PLATE()`:可能用于取板或者准备另一个工具或部件。

- `GLUE_PLATE()`:可能用于在板上涂抹胶水或其他材料。

- `PLATE_BACK()`:可能用于将板或者工具返回到初始位置。

最后,循环结束,主程序完成。

```plaintext

ENDLOOP

END

```

这种编程方式的好处是,主程序的结构非常清晰,每个子程序负责一个特定的任务,这样便于程序的维护和调试。如果需要修改某个特定任务的功能,只需要修改对应的子程序,而不需要改动主程序的其他部分。此外,这种模块化的编程方式也便于代码的重用。

这段程序是用一种类似于ABB机器人编程语言Rapid的伪代码编写的,它演示了如何使用子程序(也称为例行程序)来使主程序的结构更加清晰和模块化。下面是对这段程序的解释:

首先,定义了一个名为`GET_PEN`的子程序(例行程序)。这个子程序的作用是检查是否输入了第一个参数(`$IN[1]`),如果没有输入,则直接退出。这里的`$IN[1]`可能代表一个输入信号或者条件,用来判断是否需要执行这个子程序。如果条件成立,说明不需要执行取笔的操作,因此直接退出子程序。

```plaintext

DEF GET_PEN

IF $IN[1] THEN

EXIT

ENDIF

END

```

接下来是主程序`MAIN`,它包含了程序的初始化(`INI`)和一个无限循环(`LOOP`...`ENDLOOP`)。

```plaintext

DEF MAIN()

INI

LOOP

```

在循环中,程序通过调用一系列子程序来执行不同的任务。每个子程序的调用是通过其名称加上括号`()`来实现的。例如,`GET_PEN()`调用了之前定义的`GET_PEN`子程序。

```plaintext

GET_PEN()

PAINT_PATH()

PEN_BACK()

GET_PLATE()

GLUE_PLATE()

PLATE_BACK()

```

这些子程序的名称暗示了它们可能的功能:

- `GET_PEN()`:可能用于取笔或者准备绘画的工具。

- `PAINT_PATH()`:可能用于执行绘画路径。

- `PEN_BACK()`:可能用于将笔或者工具返回到初始位置。

- `GET_PLATE()`:可能用于取板或者准备另一个工具或部件。

- `GLUE_PLATE()`:可能用于在板上涂抹胶水或其他材料。

- `PLATE_BACK()`:可能用于将板或者工具返回到初始位置。

最后,循环结束,主程序完成。

```plaintext

ENDLOOP

END

```

这种编程方式的好处是,主程序的结构非常清晰,每个子程序负责一个特定的任务,这样便于程序的维护和调试。如果需要修改某个特定任务的功能,只需要修改对应的子程序,而不需要改动主程序的其他部分。此外,这种模块化的编程方式也便于代码的重用。







KUKA机器人


    原来,库卡机器人示教器可以玩游戏的!

    库卡示教器图标S

    库卡机器人-TCP校正

    KUKA机器人示教器屏幕截图

    库卡机器人-逻辑指令

    库卡机器人-CRIC运动

    库卡机器人:-LIN运动

    库卡机器人:-PTP运动

    库卡机器人:坐标系统

    KUKA机器人:控制柜组成

    KUKA机器人:-示教器介绍

    KUKA机器人:-线路连接

    库卡机器人-脉冲输出功能

    库卡机器人-子程序的运用

更多库卡机器人编程、异常处理、方法技巧请点击下图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则