KUKA机器人8.7系统对PROFINET软件进行编程控制的步骤

发布者:AngelicHeart最新更新时间:2024-03-04 来源: 机器人及PLC自动化应用作者: Lemontree 手机看文章 扫描二维码
随时随地手机看文章

通过 KRL 解耦 PROFINET 设备

IOCTL 命令 1060:
为了可以在不同的上交替地运行一个设备,需要 IOCTL 命
令 1060 进行解耦。如果该设备仅在一个机器人上运行,也可以使
用该命令。
设备输出端设置在解耦后立即归零。如果将设备短时间断开后
又重新接上,则不会恢复输出端设置。
IOCTL 命令 60:
只在该设备仅在一个机器人上运行时,才能使用该 IOCTL 命令。
只出于兼容性原因,该命令才仍可用。
在解耦时,设备上的输出端设置保持不变。如果将设备短时间断开
电源后又重新接上,则会恢复输出端设置。

始终可用 • 勾选:机器人启动时期待设备已被激活。若设备未被激活,将输出故障。
• 未勾选:机器人控制器在启动时不检查设备是否已被激活。

已解耦设备的属性

• 若将解耦了的设备与总线或者电源分离开,这不会触发故障。
• 在已解耦的设备上进行的所有输入/输出操作都将保持无效。
• 已解耦的设备不能对读/写故障进行处理。
• 解耦时设备的输入端已被归零。
• 解耦时设备的输入端已被归零。

选项 始终可用
对于带工具更换系统的应用程序,并非所有设备都持续。在冷启动或重新配置 I/O 驱动程序时,解耦的设备将直接触发总线故障。用选项 始终可用可以避免该情况:
• 勾选:错误信息
未勾选:无故障信息

句法
• 在一台机器人上使用该设备时:
RET = IOCTL("PNIO-CTRL",60,用户 ID)
• 在一台或多台机器人上使用该设备时:
RET = IOCTL("PNIO-CTRL",1060,用户 ID)

这里将根据所用的工具给 ID 为 3 的设备解耦:
...
IF (NEXT_TOOL == GRIPPER_1) THEN
RET = IOCTL("PNIO-CTRL",1060,3)
ENDIF
...

2.通过 KRL 耦合 PROFINET 设备

有 2 个具有不同应用和效果的 IOCTL 命令用于耦合:
• IOCTL 命令 1050:为了使设备可以在不同的机器人上交替运行,需要IOCTL 命令 1050 进行耦合。如果该设备仅在一个机器人上运行,也可以使用该命令。
• IOCTL 命令 50:只在该设备仅在一个机器人上运行时,才能使用该IOCTL 命令。只出于兼容性原因,该命令才仍可用。

句法
• 在一台机器人上使用该设备时:
RET= IOCTL("PNIO-CTRL",50,用户 ID)
• 在一台或多台机器人上使用该设备时:
RET= IOCTL("PNIO-CTRL",1050,用户 ID)

这里将根据所用的工具给 ID 为 5 的设备耦合:
...
IF (NEXT_TOOL == GRIPPER_2) THEN
RET = IOCTL("PNIO-CTRL",1050,5)
ENDIF
...

3、通过 KRL 更改耦合 PROFINET 设备的等待时间

有些设备的耦合时间长于其他设备。因此,在机器人输出错误信息之前,要等待规定的时间。默认情况下,规定的等待时间为 10 秒,可在运行时于程序之内更改。为此,必须在程序中借助 KRL 函数 IOCTL 一个更改等待时间的命令。

句法
RET = IOCTL("PNIO-CTRL",32776,等待时间)

说明
RET 用于保存 KRL 函数 IOCTL 返回值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-CTRL 总线驱动程序的名称
32776 用于更改等待时间的 IOCTL 命令
等待时间 在机器人控制器输出错误信息之前要等待的时间,单位:ms

返回值:RET

0 已成功更改等待时间。
-1 由于无法访问总线系统,所以未能更改等待时间。

示例
在该示例中,将该值设为 15 s (= 15000 ms):
RET = IOCTL("PNIO-CTRL",32776,15000)

4.通过 KRL 查询 PROFINET 设备的状态

说明
运行时,可在一个程序之内查询 PROFINET 设备的状态。为此,必须在程序中借助 KRL 函数 IOCTL 编程一个查询状态的命令。
句法

RET = IOCTL("PNIO-CTRL",70,用户 ID)

元素 说明
RET 用于保存 KRL 函数 IOCTL 返还值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-CTRL 总线驱动程序的名称
70 用于查询设备状态的 IOCTL 命令
用户识别号 要查询其状态的设备的用户 ID


返回值RET

说明
4 设备已解耦。
5 设备已耦合,但出现错误。
6 设备已耦合且工作正常。
7 设备已解耦,但内部仍在 PROFINET Controller 中激活。
提示:例如,当用 IOCTL 命令 60 将设备解耦时,会出现这种状态。在这种情况下,PROFINET Controller 会通过 P 搜索设备。

5.通过 KRL 激活或停用总线故障

在默认情况下激活总线故障。如果出现总线故障,这会导致停止和/或锁定激活命令。借助 KRL 函数 IOCTL 可停用并再次激活总线故障。激活或停用可以在运行时于程序内通过 KRL 执行。
可为一个或多个总线实例停用总线故障。如果总线故障被停用,会有如下表现:
• 总线故障:不停止和/或锁定激活命令
• 总线故障:smartHMI 信息窗口中没有故障信息
• smartHMI 信息窗口中会显示以下信息:
KRC IO 总线错误抑制针对下列总线实例激活:{总线实例}{总线实例}{总线实例}
• 如果总线实例中已出现故障,则无法再次激活总线故障。
该情况下可通过系统变量 $IOBUS_INFO 读取是否出现总线故障。

句法
• 为了停用总线故障:
RET = IOCTL("KRC->PNIO-CTRL", 1, 1)
• 为了激活总线故障:
RET = IOCTL("KRC->PNIO-CTRL", 1, 0)

元素 说明
RET 用于保存 KRL 函数 IOCTL 返还值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-CTRL 总线驱动程序的名称
1、1 用于停用总线故障的 IOCTL 命令
1、0 用于激活总线故障的 IOCTL 命令

返回值RET

说明
0 IOCTL 命令成功执行。
-1 未找到指定的总线驱动程序。
-3 KRL 函数 IOCTL 包含一个错误。
-4 由于出现总线故障,不允许激活。

6.通过 KRL 查询机器人控制器的节能模式

运行时,可在一个程序之内查询机器人控制器的节能模式。为此,必须在程序中借助 KRL 函数 IOCTL 编程一个查询节能模式的命令。

句法
RET = IOCTL("PNIO-DEV",1002,0)

元素 说明
RET 用于保存 KRL 函数 IOCTL 返回值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-DEV 总线驱动程序的名称
1002 用于查询机器人控制器节能模式的 IOCTL 命令

返回值RET

说明
-1 查询时出现了一个错误。
2 机器人控制器处于制动器已制动的状态下。
240 机器人控制器处于 Energy_Saving_Disabled 状态下。
255 机器人控制器处于 Rey_To_Opera 状态下。
256 PROFIenergy 未初始化。
257 机器人控制器处于过度状态下

通过 KRL 重启总线系统

总线故障后,可在运行时在程序之内重启总线系统。为此,必须在程序中借助KRL 函数 IOCTL 编程一个重启总线系统的命令。

句法
RET = IOCTL("PNIO-CTRL",12,0)

元素 说明
RET 用于保存 KRL 函数 IOCTL 返还值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-CTRL 总线驱动程序的名称
12 用于重启总线系统的 IOCTL 命令

返回值RET

说明
0 重启总线系统成功。
3 重启总线系统失败。

7.通过 KRL 查询有故障的 PROFINET 设备数量

运行时,可在一个程序之内查询总线系统上有故障的 PROFINET 设备数量。为此,必须在程序中借助 KRL 函数 IOCTL 编写一个查询故障设备的命令。
RET = IOCTL("PNIO-CTRL",32774,0)

元素 说明
RET 用于保存 KRL 函数 IOCTL 返回值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-CTRL 总线驱动程序的名称
32774 用于查询故障设备数量的 IOCTL 命令

返回值RET

说明
0 总线系统上的所有设备功能完好。
>0 故障设备的数量

8.通过 KRL 查询已配置的 PROFINET 设备数量

运行时,可在一个程序之内查询总线系统上已配置的 PROFINET 设备数量。为此,必须在程序中借助 KRL 函数 IOCTL 编写一个查询已配置设备的命令。

句法
RET = IOCTL("PNIO-CTRL",32775,0)

元素 说明
RET 用于保存 KRL 函数 IOCTL 返回值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-CTRL 总线驱动程序的名称
32775 用于查询已配置设备数量的 IOCTL 命令

返回值RET

说明
-1 执行 IOCTL 命令时出错。
>0 已配置设备的数量



审核编辑:刘清
引用地址:KUKA机器人8.7系统对PROFINET软件进行编程控制的步骤

上一篇:用于机器人化血管栓塞的磁性柔性微纤维机器人研究
下一篇:使用UKA.机器人8.7系统编程控制PROFINET软件的方法

小广播
最新机器人文章
换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关:

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved