通过 KRL 解耦 PROFINET 设备
已解耦设备的属性
• 若将解耦了的设备与总线或者电源分离开,这不会触发故障。
• 在已解耦的设备上进行的所有输入/输出操作都将保持无效。
• 已解耦的设备不能对读/写故障进行处理。
• 解耦时设备的输入端已被归零。
• 解耦时设备的输入端已被归零。
选项 始终可用
对于带工具更换系统的应用程序,并非所有设备都持续耦合。在冷启动或重新配置 I/O 驱动程序时,解耦的设备将直接触发总线故障。用选项 始终可用可以避免该情况:
• 勾选:错误信息
未勾选:无故障信息,句法
• 在一台机器人上使用该设备时:
RET = IOCTL
• 在一台或多台机器人上使用该设备时:
RET = IOCTL,这里将根据所用的工具给 ID 为 3 的设备解耦:
...
IF THEN
RET = IOCTL
ENDIF
...,2.通过 KRL 耦合 PROFINET 设备,有 2 个具有不同应用和效果的 IOCTL 命令用于耦合:
• IOCTL 命令 1050:为了使设备可以在不同的机器人上交替运行,需要IOCTL 命令 1050 进行耦合。如果该设备仅在一个机器人上运行,也可以使用该命令。
• IOCTL 命令 50:只在该设备仅在一个机器人上运行时,才能使用该IOCTL 命令。只出于兼容性原因,该命令才仍可用。
句法
• 在一台机器人上使用该设备时:
RET= IOCTL
• 在一台或多台机器人上使用该设备时:
RET= IOCTL,这里将根据所用的工具给 ID 为 5 的设备耦合:
...
IF THEN
RET = IOCTL
ENDIF
...,3、通过 KRL 更改耦合 PROFINET 设备的等待时间,有些设备的耦合时间长于其他设备。因此,在机器人控制系统输出错误信息之前,要等待规定的时间。默认情况下,规定的等待时间为 10 秒,可在运行时于程序之内更改。为此,必须在程序中借助 KRL 函数 IOCTL 编程一个更改等待时间的命令。
句法
RET = IOCTL
返回值:RET
示例
在该示例中,将该值设为 15 s :
RET = IOCTL,4.通过 KRL 查询 PROFINET 设备的状态,说明
运行时,可在一个程序之内查询 PROFINET 设备的状态。为此,必须在程序中借助 KRL 函数 IOCTL 编程一个查询状态的命令。
句法,RET = IOCTL
返回值RET
5.通过 KRL 激活或停用总线故障,在默认情况下激活总线故障。如果出现总线故障,这会导致停止和/或锁定激活命令。借助 KRL 函数 IOCTL 可停用并再次激活总线故障。激活或停用可以在运行时于程序内通过 KRL 执行。
可为一个或多个总线实例停用总线故障。如果总线故障被停用,会有如下表现:
• 总线故障:不停止和/或锁定激活命令
• 总线故障:smartHMI 信息窗口中没有故障信息
• smartHMI 信息窗口中会显示以下信息:
KRC IO 总线错误抑制针对下列总线实例激活:{总线实例}{总线实例}{总线实例}
• 如果总线实例中已出现故障,则无法再次激活总线故障。
该情况下可通过系统变量 $IOBUS_INFO 读取是否出现总线故障。
句法
• 为了停用总线故障:
RET = IOCTL
• 为了激活总线故障:
RET = IOCTL
返回值RET
6.通过 KRL 查询机器人控制器的节能模式,运行时,可在一个程序之内查询机器人控制器的节能模式。为此,必须在程序中借助 KRL 函数 IOCTL 编程一个查询节能模式的命令。
句法
RET = IOCTL
返回值RET
通过 KRL 重启总线系统,总线故障后,可在运行时在程序之内重启总线系统。为此,必须在程序中借助KRL 函数 IOCTL 编程一个重启总线系统的命令。
句法
RET = IOCTL
返回值RET
7.通过 KRL 查询有故障的 PROFINET 设备数量,运行时,可在一个程序之内查询总线系统上有故障的 PROFINET 设备数量。为此,必须在程序中借助 KRL 函数 IOCTL 编写一个查询故障设备的命令。
RET = IOCTL
返回值RET
8.通过 KRL 查询已配置的 PROFINET 设备数量,运行时,可在一个程序之内查询总线系统上已配置的 PROFINET 设备数量。为此,必须在程序中借助 KRL 函数 IOCTL 编写一个查询已配置设备的命令。
句法
RET = IOCTL
返回值RET