首页 > 解决方案 > 使用 REST API 与 MiR200 机器人通信

问题描述

我一直在尝试在 python 中使用 REST API 来控制 Mir 200 机器人。我已将 Mir 中的任务编程为仅在 PLC 寄存器值更改时才起作用,因此我在 python 中发出以下请求,但出现 405 错误。任何人都可以帮我语法吗?我尝试将 PLC 寄存器 41 的值更改为 5。

register = {"value": 5}
PLCregister = requests.post(host + 'registers/41', json = register, headers = headers)
print(PLCregister)

标签: pythonjsonroboticsrest

解决方案


我从未使用过 MiR200 或他们的任何机器人(它们看起来很酷,我有点嫉妒)但看起来POST你可以尝试PUT修改值的请求而不是请求。我要关闭这个 pdf:https ://www.mobile-industrial-robots.com/media/2214/mir_robot_rest_api_200.pdf

405 错误意味着请求方法(POST在这种情况下)是不允许的,可能它已被弃用。

你可以试试这个:

register = {'value': 5}
plc_register = requests.put(host + 'registers/41', json=register, headers=headers)
print(plc_register)

POST请求通常用于告诉服务器创建数据,而不是修改它。你可以看到他们在 MiR 2.0.X 文档中提到了这一点:

POST /registers/{id}

用指定的 ID 修改 PLC 寄存器的值。寄存器 1 到 100 是整数,寄存器 101-200 是浮点数。Even though this is not a standard use of the POST call it has been included for compatibility purposes

所以,也许这个POST方法不在你机器人的软件中,只是推测。


推荐阅读