python3调用汇川机器人IMC100API.dll的问题

famisi 2020-11-06 12:07:35
python3调用汇川提供的dll文件:IMC100API.dll,可以成功调用 IMC100_Init_ETH 函数建立和机器人连接,
但在查询当前控制许可时,却总失败,返回值:-255,对于获取许可
函数原型为: IMC100_CurPermit(int *owner, unsigned int *ipAddr, unsigned short *ipPort, int comId=0)
对该函数在python3建立了相应的指针变量

owner=ctypes.pointer(ctypes.c_int(0))
ipaddr=ctypes.pointer(ctypes.c_uint(0))
port=ctypes.pointer(ctypes.c_ushort(0))

然后调用
result=IMC100_CurPermit(owner, ipaddr, port)

得到结果:result=-255
-----------------------------------------------------
或者改成:

owner=ctypes.c_int(0)
ownerAddr = ctypes.byref(owner)

ip = ctypes.c_uint(0)
ipAddr=ctypes.byref(ip)

port=ctypes.c_ushort(0)
portAddr = ctypes.byref(port)

然后调用
result=IMC100_CurPermit(ownerAddr, ipAddr, portAddr)
得到结果:result=-255
-----------------------------------------------------
以下是汇川的2个函数原型:

可以成功调用的函数


调用失败的函数


恳请做过类似应用的朋友指点下:以上的问题出在哪里?该如何在python中建立相应的C函数指针参数呢?
...全文
1046 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46629578 2022-12-15
  • 打赏
  • 举报
回复

楼主有遇到过调用int IMC100_Get_P(int pNum, ROBOT_POS *pos, int comId=0) 查询全局位置变量对应的位置参数 "pNum:全局位置变量序号,范围0-1000
pos:位置参数结构体,代表查询的结果" 返回0表示查询成功,小于0表示失败
返回-21位置点P或偏移LPR不存在 确认点位无误并重新打开示教程序后调用。
这个报错吗,程序点位是有的,不知道为啥还报错这个

yida5955 2022-10-11
  • 打赏
  • 举报
回复

博主您好,文章中出现的调用函数的功能介绍是有相关资料吗是在哪里下载

famisi 2020-11-10
  • 打赏
  • 举报
回复
问题已经解决。 原因是:汇川机械手开放给示教器的连接端口是:3333,开放给PC端调用API的软件端口是:2222 之前联机时,用的是:3333 端口,软件接收到的结果码是正确的,没有报错。但此时如果继续其它操作就会返回错误结果。 现改为:2222端口联机,一切都正常了。

37,738

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧