【问题记录】Twincat与ROS不同设备上的Ads通信

配置具体方法参照该博客,足够详细路由配置方面仅作些许补充→ TwinCAT3与ROS之间的ADS通信实现_sjtu_way的博客

环境信息 Ubuntu18.04  win10 twincat2/3都通信成功


 

【路由配置】

ubuntu在设置中写好静态ip,此处无图可参看顶部博客,足够详细,保证和windows处于同一网段

windows上在  按win+i打开设置→网络和Internet→以太网→更改适配器选项 找到对应的网口设置ipv4

   →

 

 

Twincat2/3静态路由设置方法参照↓

 

 

 


 

【Ads库文件】 

根据顶部博客配置好后,在github下载 Beckhoff/ADS: Beckhoff protocol to communicate with TwinCAT devices. (github.com)其文件库。

 

 

 使用meson编译,unbuntu可直接用sudo apt-get install安装,需要以来ninja与python3.7+,但本机python3.6也正常完成编译,。


 

 【ROS】参考github上的 lemanhtrung/twincat_talker: ROS interface for Beckhoff TwinCAT PLC (github.com)

根据自己的需求改写CMakeLists和库文件。

可能出现的问题

①port不对

AdsDevice route{remoteIpV4, remoteNetId, AMSPORT_R0_PLC_TC3}; //第三个参数通常TC3 AMSPORT_R0_PLC_TC3 对应port 851 ; TC2 AMSPORT_R0_PLC 对应801

②一直卡在上面这句代码,之后屏幕上输出 Socket connect fail, 关闭Windows的防火墙即可。

③Ads operation error code 1797 : template里的数据类型不对。如读写INT,需uint8_t  ,uint32_t即会报错。具体原因带查询即可知道如何使用

④Ads operation error code 1808: 就是没找到你要操作的变量

 

posted on 2022-10-19 21:44  Isaac0617  阅读(792)  评论(0)    收藏  举报