python - 使用 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)
解决方案
我从未使用过 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
方法不在你机器人的软件中,只是推测。
推荐阅读
- c - 为什么我的代码中有编译时错误
- angular - Angular界面添加子项如何
- php - 如何在 PHP "echo" 中插入带有撇号和其他特殊字符的文本?
- python - 使用日期时间循环
- javascript - 使用 Lodash 对对象进行求和的深度数组
- c# - Html.BeginForm() 在我的控制器上执行错误的操作
- python - 在多线程程序中的字典上使用 .copy() 是否安全?
- php - 如何在laravell中切换语言
- java - 使用 S3a 连接器到 S3 的 HDFS 应用程序
- arrays - 我有几个带有斜线分隔的文件夹路径字符串,我可以将它排列为数组树结构吗?