- 选型指南
- 概述
- 入门指南
- 机械臂参数
- 示教器使用
-
二次开发
-
API(C++)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
-
API(Python)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
- ROS2开发
-
API(C++)
- 相关下载
模式与 IO 控制接口
头文件:include/tl_interface.h
1. set_current_mode - 设置机器人模式(切换示教模式和运动模式)
方法:set_current_mode(SOCKETFD socketFd, int mode);
功能描述:切换控制器运行模式:0=示教模式(手动),1=远程模式,2=自动模式(运行作业)。
参数:
- socketFd:已连接的句柄。
- mode:模式
- 0:示教模式。
- 1:远程模式。
- 2:运行模式,切换为运行模式后将自动进入伺服上电状态,无须额外上电。
返回值:
- 0:成功
- 非 0:失败
使用示例:
import tl_interface as tl
import time
# 建立连接
socket_fd = tl.connect_robot("192.168.1.13", "6001")
# 设置机器人当前模式
# mode 参数说明:
# 模式 0:示教 1:远程 2:运行
mode = 2 # 运行模式
ret = tl.set_current_mode(socket_fd, mode)
print(f"设置模式返回值(ret) = {ret}")
2. set_digital_output - 设置数字 IO 输出
方法:set_digital_output(SOCKETFD socketFd, int port, int value);
功能描述:设置指定数字输出端口的状态。value:1高电平,0低电平。
参数:
- socketFd:已连接的句柄。
- port:输出端口号,从1开始到最大端口号。
- value:输出值
- 1:ON。
- 0:OFF。
返回值:
- 0:成功
- 非 0:失败
使用示例:
# ----设置数字 IO 输出----
print("[INFO] **********设置数字 IO 输出**********")
io_port = 1
value = 0
ret = set_digital_output(socket_fd, io_port, value)
if ret != SUCCESS:
print("[ERROR] 设置数字 IO 输出失败,程序退出!")
return -1
print("[INFO] 设置数字 IO 输出成功")
注意:port的值不能设置为0,否则将会报错0x71800x7180参数错误
3. get_digital_output - 获取所有数字 IO 输出
方法:get_digital_output(SOCKETFD socketFd, std::vector<int>& out);
功能描述:读取所有数字输出端口的电平状态(通常64路)。
参数:
- socketFd:已连接的句柄。
- out:输出参数,用于存储所有数字输出状态的向量。
返回值:
- 0:成功
- 非 0:失败
使用示例:
# ----查询数字 IO 输出----
print("[INFO] **********查询数字 IO 输出**********")
outputValues = VectorInt()
ret = get_digital_output(socket_fd, outputValues)
if ret != SUCCESS:
print("[ERROR] 查询数字 IO 输出失败,程序退出!")
return -1
print("[INFO] 查询数字 IO 输出成功,状态为:", end="")
for state in outputValues:
print("%d " % state, end="")
4. get_digital_input - 获取所有 IO 输入状态
方法:get_digital_input(SOCKETFD socketFd,std::vector<int>& in);
参数:
- socketFd:已连接的句柄。
- in:输出参数,用于存储所有数字输入状态的向量。
返回值:
- 0:成功
- 非 0:失败
使用示例:
print("[INFO] **********获取所有 IO输入状态**********")
inputValues = VectorInt()
ret = get_digital_input(socket_fd, inputValues)
if ret != SUCCESS:
print("[ERROR] 查询数字 IO 输入失败,程序退出!")
return -1
print("[INFO] 查询数字 IO 输入成功,状态为:", end="")
for state in inputValues:
print("%d " % state, end="")
5. set_analog_output - 设置模拟量输出
方法:set_analog_output(socketFd, port, value);
功能描述:设置模拟输出。
参数:
- socketFd:已连接的句柄。
- port:端口号。
- value:数值,参数范围 0≤value≤10。
返回值:
- 0:成功
- 非 0:失败
使用示例:
import tl_interface as tl
socket_fd = tl.connect_robot("192.168.1.13", "6001")
ret = tl.set_analog_output(socket_fd, 1, 5.0)
6. get_analog_input - 获取模拟量输入
方法:get_analog_input(socketFd, ain);
功能描述:查询模拟输入。
参数:
- socketFd:已连接的句柄。
- ain:输出参数,模拟输入数组,最大长度 64。
返回值:
- 0:成功
- 非 0:失败
使用示例:
import tl_interface as tl
socket_fd = tl.connect_robot("192.168.1.13", "6001")
ain = VectorDouble()
ret = tl.get_analog_input(socket_fd, ain)
7. get_analog_output - 获取模拟量输出
方法:get_analog_output(socketFd, aout);
功能描述:查询模拟输出。
参数:
- socketFd:已连接的句柄。
- aout:输出参数,模拟输出数组,最大长度 64。
返回值:
- 0:成功
- 非 0:失败
使用示例:
import tl_interface as tl
socket_fd = tl.connect_robot("192.168.1.13", "6001")
aout = VectorDouble()
ret = tl.get_analog_output(socket_fd, aout)
8. get_io_type - 获取 IO 类型
方法:get_io_type(socketFd, io_type);
功能描述:IO 型号查询。
参数:
- socketFd:已连接的句柄。
- io_type:IOtype 输出参数(num IO 板数量;type IO 型号;io_port_sum IO 端口数量一维数组:[数字输入、数字输出、模拟输入、模拟输出端口数量])。
返回值:
- 0:成功
- 非 0:失败
使用示例:
import tl_interface as tl
socket_fd = tl.connect_robot("192.168.1.13", "6001")
io_type = IOtype()
ret = tl.get_io_type(socket_fd, io_type)
9. get_IO_reset_function - 获取 IO 复位功能
方法:get_IO_reset_function(socketFd, robotNum, type);
功能描述:获取 IO 复位相关参数。
参数:
- socketFd:已连接的句柄。
- robotNum:机器人编号(1-4)。
- type:设置类型,1 远程IO复位 / 2 切模式停止 / 3 程序报错。
返回值:
- tuple:(ret, enable, value),enable 复位使能容器、value 复位值容器
- 0:成功
- 非 0:失败
使用示例:
import tl_interface as tl
socket_fd = tl.connect_robot("192.168.1.13", "6001")
ret, enable, value = tl.get_IO_reset_function(socket_fd, 1, 1)
