小伙伴们,大家好!我是罗伯特祥,很荣幸受到古月大神的邀请成为古月居的签约作者,同大家一起分享我的技术成长经验。   相信很多小伙伴都有过这样的经历,开发机器人或者自动化设备的过程中买过一些运动控制器,使用时发现不知道从哪儿着手使用,技术手册看的稀里糊涂,咨询技术有时又被敷衍了事。为了避免小伙伴们踩我曾经踩过的坑,决定跟大家分享一下我曾经用过的运动控制器使用方法。   今天跟大家分享的是Elmo的Maestro控制器使用教程,我将以Platinum Maestro控制器为例,介绍它的具体使用方法。

1、控制器的硬件连接

EtherCAT为例,首先我们用RJ45双绞线建立控制器与PC之间的连接,对应控制器的HOST ETH端口,在其右侧的EtherCAT则对应我们的EtherCAT总线设备,将我们转接好的EtherCAT总线水晶头插入Master1,最后连接24V直流电源线。CAN总线接口位于控制器左侧,连接方法同上所述。  
重要的事情说三遍:正负极千万不要接反!正负极千万不要接反!正负极千万不要接反!
PMAS硬件连接

2、控制器与PC间的通讯

  运动控制器,说到底还是一台PC,两台PC之间建立通讯,必须处于同一子网络下,因此我们需要现对上位机PC设备的IP进行修改。   Platinum Maestro控制器默认IP为:192.168.1.3默认端口为502,挂载到运动控制器上的总线设备,其设备IP会依次识别192.168.1.4192.168.1.5……   在系统设置中依次找到【更改适配器选项】【“连接设备的网卡”】,右击选择【属性】【Internet 协议版本4(TCP/IPv4)】【属性】,为了避免PC与设备的IP发生冲突,建议将PC端网卡IP设置为:192.168.1.2。   PC网卡IP设置   至此,我们已经完成了物理层面的连接,接下来打开EASII(Elmo Application Studio II),在工作空间选项右击选择要添加的控制器类型,在此我们选择【Add Platinum Maestro EtherCAT】。   EASII添加控制器   选中添加的设备,在其右侧填写项目配置信息,【Target Connection】Connection Type选择【Maestro TCP/IP】IP Address选择我们网卡配置的192.168.1.2;勾选【Gateway】的两个子选项,在【Host Interface】项点击后面的下三角选择PMAS的IP(192.168.1.3),配置完后点击左上角的【Connect】即可建立连接。   OK!接下来设备会开始自动扫描总线设备,默认PDO映射基本足够我们的使用,扫描完设备点击【To System Configuration】,相关配置信息将自动下载到运动控制器。  
小提示: ①如果连接不上,检查IP设置并关闭防火墙; ②如果扫描的设备少于实际硬件,说明总线环路中间有断开,需检查硬件连接;

3、程序的编写及管理

  对于控制器的程序编写我们需要用到官方提供的MDS IDE(Maestro Developer Studio),这是基于Ecispse开发的一款专门针对Maestro控制器程序开发的IDE,集成了程序编译、下载和控制器程序管理功能。 MDS
小提示:建议安装MDS时使用管理员权限安装,并使用其默认安装位置,这样会避免因为环境导致的迷一样的问题。
3.1 项目的创建   首先我们来新建一个名称为【CPP_FirstProjectSayHello】的控制器C++ Project, 官方在【Advanced Elmo C++ project】中提供了一些运动控制程序模板,我们在此选择Elmo C++ project下的【Simple C++ Hello World】例程,并以此为例介绍程序的开发和管理流程。   Cplusplus_project  
为了方便管理,官方为用户提供了一套项目名称、变量名称以及函数名的命名建议,例如C++项目命名为CPP_ProjectName、常量命名为NAME_TYPE、short型变量命名为sVarName、函数名称命名为FunctionName等等,具体的命名方式可参考《Maestro Software编程实践指南》
  IDE会自动生成一个CPP_FirstProjectSayHello的项目,该项目包含一个Includes文件夹(此文件夹下自动加载控制器的库文件)、CPP_FirstProjectSayHello.cppCPP_FirstProjectSayHello.h文件,如图所示:   CPP_SayHelloDemo   3.2 程序的调试与编译   单击右上角的【Debug】可进入程序调试界面,调试过程中IDE会自动将程序下载到运动控制器。   Debug   调试完成切换回【C/C++】编辑模式,单击工具栏的锤子,并选择【PLATINUM_D(Debug Platinum)】进行编译,最终版本的程序应选择Release版本编译。   程序编译   编译完成后,会生成【PLATINUM_D】文件夹和*.launch文件,其中文件夹下的【CPP_FirstProjectSayHello.pexe】即是我们要下载到控制器中的程序,launch文件自动生成程序开机自启的配置。   编译完成  
小提示:编译后重新修改程序时,建议先删除已生成的PLATINUM_D文件夹及launch文件。
  3.3 程序的下载   程序下载前需要连接控制器,单击工具栏中的【Maestro】选择【Create connection】选项,单击【Discover】,系统会自动扫描连接的设备,最后点击【connect】完成连接。   Maestro_create Maestro_create_connect   程序下载选项同样位于【Maestro】选项卡下,选择【Download executable】Target项选择要下载的控制器,Select File项选择编译生产的*.pexe文件,该文件位于C:\GMAS\GMASUserProg\CPP_FirstProjectSayHello\PLATINUM_D目录下,如果选择的Release编译版本,*.pexe将位于\PLATINUM_D 同级目录下的\PLATINUM_R目录中。   开发完善的程序通常需要上电即开始运行程序,要想实现该功能,我们需要在下载时勾选【Run at Maestro startup】,并点击【Download】按钮即可完成下载,重新上电控制器,测试自启动是否正常。   Maestro_downloadMaestro_download_download  
小提示: ①测试程序不建议使用“上电自启动功能”,避免由于BUG引起的意外发生; ②控制器正在运行程序时无法进行下载操作,需要先删除正在运行的程序;
  3.4 程序在控制器中的管理   单击MDS右上角的【Remote System explorer】可进入远程连接界面,可通过SSH登陆运动控制器。   SSH   在控制器的【Ssh Terminals】选项右击选择【Launch Terminal】即可对控制器进行远程操作,由于PMAS基于实时Linux系统运行,因此Linux操作命令同样使用于控制器的操作。   常用操作有: ls #列出当前目录下的文件 clear #清屏 rm ***.pexe #删除某个可执行程序   SSH_Terminal  
小提示:除常用操作外建议不要操作其他文件、进行提权以及修改密码等行为,避免控制器系统瘫痪。
  正在运行的程序无法进行删除,此时需要对控制器重上电操作,趁程序未运行时进行删除操作。  

总结

  本文中我们主要介绍了PMAS运动控制器的物理连接方法、控制器配置的下载以及PMAS程序的开发和管理,流程如下:   开发流程图   在整个开发过程中需要注意: ① 控制器上电时先检查电源线是否接反 ② 应使用管理员权限MDS软件,并使用其默认安装位置 ③ 通讯失败时检查防火墙设置 ④ 编译后重新修改程序时,建议先删除已生成的PLATINUM_D文件夹及launch文件 ⑤ 测试程序不建议使用“上电自启动功能”,避免由于BUG引起的意外发生 ⑥ 控制器正在运行程序时无法进行下载操作,需要先删除正在运行的程序 ⑦ 除常用操作外建议不要操作其他文件、进行提权以及修改密码等行为,避免控制器系统瘫痪。
作者水平有限,如有不足还请海涵! 读万卷书,也要行万里路!我是罗伯特祥,我们下期见!