模式与 IO 控制接口

模式与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:失败

使用示例:

Python
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:失败

使用示例:

Python
# ----设置数字 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:失败

使用示例:

Python
# ----查询数字 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:失败

使用示例:

Python
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:失败

使用示例:

Python
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:失败

使用示例:

Python
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:失败

使用示例:

Python
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:失败

使用示例:

Python
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:失败

使用示例:

Python
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)