I/O 控制

IO 设备类型

  • "ROBOT":控制箱,带有 4DI/4DO/2AI/2AO,接口对应关系详见用户手册
  • "FLANGE":法兰盘,带有 2DI/2DO,接口对应关系详见用户手册
  • "EXTRA":扩展板,带有 12DI/12DO/2AI/2AO,接口对应关系详见用户手册
  • "SHOULDER":肩部灯板,带有 1DI,已用作按键
  • "FLANGE_BTN":法兰按钮,带有 2DI,已用作按键

设置数字 IO 模式

设置指定数字 IO 引脚的方向(输入或输出)。

  • 函数名:[Robot]下的方法set_dio_mode
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
    3. mode: [DigitalMode] 引脚方向,INPUT输入 / OUTPUT输出
  • 返回:无
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "set_dio_mode", "params": [{"device": "ROBOT", "pin": 0, "mode": "OUTPUT"}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {}, "id": 1 }

示例程序

lebai:set_dio_mode("ROBOT", 0, "OUTPUT")

获取数字 IO 模式

获取指定数字 IO 引脚的方向(输入或输出)。

  • 函数名:[Robot]下的方法get_dio_mode
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
  • 返回:[DigitalMode] 引脚方向,INPUT输入 / OUTPUT输出
JSON-RPC
// 请求:
{ "jsonrpc": "2.0", "method": "get_dio_mode", "params": [{"device": "ROBOT", "pin": 0}], "id": 1 }
// 响应:
{ "jsonrpc": "2.0", "result": {"mode": "OUTPUT"}, "id": 1 }

示例程序

mode = lebai:get_dio_mode("ROBOT", 0)
print(mode)

设置数字输出

设置对应的 DO 端口打开和关闭。常用于控制电磁阀的开闭。

  • 函数名:[Robot]下的方法set_do
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
    3. value: [int] 待设置的值,0 关闭/1 打开
  • 返回:无

示例程序

lebai:set_do("ROBOT", 0, 1)
lebai:set_do("FLANGE", 0, 1)

获取数字输出

获取对应的 DO 端口是打开还是关闭的状态。

  • 函数名:[Robot]下的方法get_do
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
  • 返回:[int] 返回 0 关闭,1 打开

示例程序

value = lebai:get_do("ROBOT", 0)
print(value)

获取多个数字输出

获取对应的连续多个 DO 端口是打开还是关闭的状态。

  • 函数名:[Robot]下的方法get_dos
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 起始端口号
    3. num: [int] 连续数量
  • 返回:[list[int]] 连续多个 DO 输出状态

示例程序

values = lebai:get_dos("ROBOT", 0, 3)
print(values)

获取数字输入

获取对应的 DI 端口是否有电信号输入。常用于光电传感器的检测。

  • 函数名:[Robot]下的方法get_di
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
  • 返回:[int] 返回 0 无信号,1 有信号

示例程序

value = lebai:get_di("ROBOT", 0)
print(value)

获取多个数字输入

获取对应的连续多个 DI 端口是否有电信号输入。常用于光电传感器的检测。

  • 函数名:[Robot]下的方法get_dis
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 起始端口号
    3. num: [int] 连续数量
  • 返回:[list[int]] 连续多个 DI 输入状态

示例程序

values = lebai:get_dis("ROBOT", 0, 3)
print(values)

设置模拟输出

设置对应的 AO 端口输出设定的电压或者电流。

  • 函数名:[Robot]下的方法set_ao
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
    3. value: [float] 待设置的值。电压型 0-10V,电流型 4-20mA
  • 返回:无

注:控制界面有设置端口是输出电压还是电流的选择。

示例程序

lebai:set_ao("ROBOT", 0, 5)

获取模拟输出

获取对应的 AO 端口输出的电压或者电流的值。

  • 函数名:[Robot]下的方法get_ao
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
  • 返回:[float] AO 端口输出值

示例程序

value = lebai:get_ao("ROBOT", 0)
print(value)

获取多个模拟输出

获取对应的连续多个 AO 端口输出的电压或者电流的值。

  • 函数名:[Robot]下的方法get_aos
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 起始端口号
    3. num: [int] 连续数量
  • 返回:[list[float]] 连续多个 AO 端口的输出值

示例程序

values = lebai:get_aos("ROBOT", 0, 2)
print(values)

获取模拟输入

获取对应的 AI 端口输入的电压或者电流的值。

  • 函数名:[Robot]下的方法get_ai
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 端口,从 0 开始
  • 返回:[float] 对应 AI 端口的输入值

示例程序

value = lebai:get_ai("ROBOT", 0)
print(value)

获取多个模拟输入

获取对应的连续多个 AI 端口输入的电压或者电流的值。

  • 函数名:[Robot]下的方法get_ais
  • 参数:
    1. device: [IoDevice] 设备类型
    2. pin: [int] 起始端口号
    3. num: [int] 连续数量
  • 返回:[list[float]] 连续多个 AI 端口的输入值

示例程序

values = lebai:get_ais("ROBOT", 0, 2)
print(values)