干货:KUKA机器人App4API上位机控制完全指南
一、 App4API 核心架构概览
-
建立连接:上位机作为客户端,通过TCP协议连接机器人控制系统(服务器)。 -
发送请求:将控制指令封装成 Request 对象发送给控制器。 -
获取响应:控制器处理后,返回一个 Response 对象作为执行结果。 -
断开连接:任务完成后,优雅地关闭通信通道。
二、 从握手到告别:TCP连接的建立与断开
1.建立 TCP 连接
通过 SyncClient 类的 ConnectToHost 方法可以建立与机器人控制系统的 TCP 通信连接,该方法需要传入控制系统 TCP 服务器的 IP 地址和端口号,当前端口号固定为 7000
代码示例:

2.断开 TCP 连接
通过 SyncClient 类的 AbortConnection 方法即可断开与机器人控制系统的连接
代码示例:

三、 核心操作:发送请求与接收响应
1.发送控制请求和获取控制响应
通过 SyncClient 类的 SendRequest 方法即可向机器人控制器发送控制命令,该方法需要传入一个 Request 类型的参数,同时返回一个 Response 类型的响应结果
2.控制请求的类别和控制响应的类别
·控制请求主要包含如下类别,他们都继承于 Request 类
ReadVariableRequest读取变量的请求,包括系统变量和全局变量
WriteVariableRequest写入变量的请求,包括系统变量和全局变量
ReadMultipleRequest读取多个变量的请求,包括系统变量和全局变量
WriteMultipleRequest写入多个变量的请求,包括系统变量和全局变量
ProgramControlRequest程序控制的请求,包括选择/运行/启动/暂停/复位/取消
SetFileAttributesRequest设置文件属性的请求
ListDirectoryRequest获取文件夹内容列表的请求
CreateFileRequest创建文件的请求
DeleteFileRequest删除文件的请求
CopyFileRequest复制文件的请求,包括移动文件的功能
FilePropertiesRequest获取文件属性的请求
FilePathRequest获取文件路径的请求,包含 KRC 路径和全路径
FileWriteBeginRequest写入文件开始的请求,该请求是文件写入的第一步
FileWriteSizeRequest写入文件大小的请求,该请求是文件写入的第二步
FileWriteDataRequest写入文件数据的请求,该请求是文件写入的第三步
FileWriteEndRequest写入文件结尾的请求,该请求是文件写入的最后一步
FileReadBeginRequest读取文件开始的请求,该请求是文件读取的第一步
FileReadSizeRequest读取文件大小的请求,该请求是文件读取的第二步
FileReadDataRequest读取文件数据的请求,该请求是文件读取的第三步
FileReadEndRequest读取文件结尾的请求,该请求是文件读取的最后一步
ConfirmAllRequest确认错误消息的请求
·控制响应主要包含如下类别,他们都继承于 Response 类
VariableValueResponse读取或写入变量请求后反馈的响应
VariableMultipleResponse读取或写入多个变量请求后反馈的响应
ProgramControlResponse程序控制请求后反馈的响应
ListDirectoryResponse获取文件夹内容列表请求后反馈的响应
FilePropertiesResponse获取文件属性请求后反馈的响应
FilePathResponse获取文件路径请求后反馈的响应
FileWriteResponse写入文件请求(开始/大小/数据/结尾)后反馈的响应
FileReadResponse读取文件请求(开始/大小/数据/结尾)后反馈的响应
·有一些普通控制请求的响应不包含特殊信息,因此直接返回 Response
SetFileAttributesRequest
CreateFileRequest
DeleteFileRequest
CopyFileRequest
ConfirmAllRequest
四、 实战代码演练:从变量到程序
1.控制请求和控制响应的代码示例
-
读写单个变量

-
读取多个变量

-
写入多个变量

-
选定程序

·运行程序

-
启动程序

-
停止程序

-
复位程序

-
取消程序

五、 高级技巧:文件系统的深度操作
1. 文件读写的标准流程
-
设置文件属性

-
获取文件夹内容列表


-
创建新文件

·删除文件

-
复制和移动文件

-
获取文件属性

-
获取文件全路径

-
获取文件 KRC 路径

-
写入文件内容


-
读取文件内容


-
确认错误信息

2. 更便捷的文件流方式
-
写入文件内容
通过 SyncClient 类的 FileWrite 方法同样可以写入文件内容,该方法需要传入两个参数来获取文件流,分别为要写入的文件的路径和要写入的内容的字节长度,结合返回的文件流的 Write和 Flush 方法可以完成文件内容的写入。
代码示例:

-
读取文件内容
通过 SyncClient 类的 FileRead 方法同样可以读取文件内容,该方法需要传入文件路径作为参数来获取文件流,结合返回的文件流的 Read 和 Flush 方法可以完成文件内容的读取
代码示例:

六、 专家级秘籍:Jog(点动)功能的实现原理
-
前置条件:确保 APP4JOG.SRC 程序已在自动模式下运行。 -
核心变量:该程序中定义了一个 FRAME 类型的全局变量 APP4_JOG_FRAME。 -
控制逻辑:上位机只需给 APP4_JOG_FRAME 赋值。
-
赋值非零增量 → 机器人按指定方向和距离移动。
-
赋值为零 → 机器人停止在当前位置。

七、 避坑指南与最佳实践
-
连接时序:所有控制命令必须在 ConnectToHost 之后、AbortConnection 之前调用。 -
变量参考:读写系统变量时,请务必参考 KUKA System Variable 官方手册,确保变量名和读写权限正确。 -
程序启动逻辑:推荐两种标准流程:
-
流程一:Select → Start → Start(BCO)
-
流程二:Run → Start(BCO)
夜雨聆风