你的位置: 首页 > 仪器仪表 > 电工仪器仪表

干货 | 虹科KPA MoDK运行环境与搭建步骤(3)——MoDK例程测试

2024-01-09 11:26:21 | 人围观 | 评论:

“虹科

工业自动化 本系列文章旨在帮助读者对虹科KPA Automation体系进行一个简要的理解,并且能使用MoDK进行快速的上手操作,包括:虹科KPA Automation、虹科KPA MoDK简介,虹科KPA MoDK的运行环境搭建与例程测试。本文档搭建的虹科KPA MoDK运行环境,是基于Win10,并且是以C/C++为开发语言进行的。 本篇推文将展示部分官方例程的测试。以下例程分别对应了MoDK可以控制的3类对象:EtherCAT从站(结合MDK)、Vrep机器人仿真平台、Simulation(纯文字仿真)。最后一个例程通过Motion Configuration Utility中的设置,实现了对实际电机以及Vrep中仿真机器人的同时控制。
温故知新
点击以下链接可回顾前文内容 • 虹科KPA MoDK运行环境与搭建步骤(1)——运行环境简介 • 虹科KPA MoDK运行环境与搭建步骤(2)——MoDK运行环境搭建 1. Move_relative (EtherCAT & CiA402) 该例程的测试效果是控制一个物理电机轴进行3次相关运动,需要我们外接一个EtherCAT从站伺服和电机进行现象观察,笔者的测试环境中,选择的是maxsine的伺服。 af608998-787b-11ec-9437-dac502259ad0.jpg 例程测试的步骤如下: 在虹科KPA Studio中进行网络组态 打开虹科KPA Studio,导入maxsine伺服ESI文件。当虹科KPA MRT安装完毕后,可用作本地EtherCAT Master与Studio进行连接。将maxsine伺服拖动至Master的位置,即实现了从站的挂载,也完成了网络组态。 进行轴的配置,并导出配置文件 接下来在Motion Configuration Utility中将轴与伺服电机进行对接,并导出网络组态与轴配置文件,然后进行电机轴与伺服的绑定,并导出相关文件。 修改程序源代码的部分参数 例程通过读取网络配置文件和轴配置文件进行MoDK运行环境的初始化,其读取的文件名是通过宏进行设定的。可以通过修改宏来适应文件名。另外,我们还需要修改ecatm虹科KPA15_helper.c中的选用网卡编号,使得本地Master能够通过正确的网卡进行从站伺服的控制。 以上配置完成后,点击“ctrl+F5”,即可运行程序观察现象。 2. Move_path (Vrep) 该例程不仅体现了虹科KPA MoDK的另一种被控对象(Vrep),并且也体现了另一种轴实例的初始化方式——源代码配置,即通过直接在程序中添加源码以到达修改轴配置参数的目的。相比上一个例程中的“界面配置+源码导入”的环境初始化方式,这种配置方式无疑会更加繁琐,而且会增加源代码的代码量。但是在此部分代码完成后,再次修改轴配置参数的步骤可以直接在代码中进行,而另一种环境初始化方式则仍需要重新配置生成ini文件。 例程测试的步骤如下: 在VREP中打开官方提供的三轴线性机器人模型 虹科MoDK提供了一个Vrep三轴线性机器人模型,在开发包的samples文件夹下,安装Vrep后,双击即可在Vrep中打开模型 在代码中修改VREP的端口参数 虹科MoDK提供的Vrep模型使用3.04.00版本的Vrep开发,而目前在官网上下载的Vrep版本已经到达了3.5.0。不过这并不需要用户进行太多的适配操作,新版本的vrep会向下兼容旧版本vrep的模型。 观察控制现象 修改完成后,即可进行例程测试,点击ctrl+F5,切换至VREP窗口,即可观察到机器人末端按照预定的轨迹点进行运动。用户也可以使用自己的算法生成所需要的轨迹在此demo中进行测试 3.Simulation_move_absolute (Simulation) 此例程为纯文字仿真,不需要进行额外的操作。MoDK在虹科KPA运行环境内创建了虚拟轴句柄,simulation即对这些虚拟轴句柄进行虚拟化运动,反映在读取的各轴位置、速度值发生变化。 切换启动项目,按下ctrl+F5,即可开始仿真。 af9d61ec-787b-11ec-9437-dac502259ad0.png 4. Move_complex_drawing (EtherCAT & CiA402 + Vrep) 对于可控制的三种被控对象,虹科MoDK可以同时控制其中任意两种,此部分选取EtherCAT伺服电机+Vrep机器人模型这两种比较直观的被控对象进行测试。测试控制的对象是三个maxsine的EtherCAT伺服电机,加上Vrep中的三轴线性机器人模型。 例程测试的步骤如下: 在虹科KPA Studio中进行网络组态 此部分操作与第1个例程Move_relative (EtherCAT & CiA402)的操作基本相同,可参照前文进行。 打开Vrep中的三轴线性机器人模型,并将轴与伺服电机进行对接 留意此处线性机器人模型的名称,后续会使用到。并且注意到,机器人的axis1使用y轴坐标表示,axis2使用x轴坐标表示。而代码的逻辑是按照x、y的顺序进行扫描的。因此在初始化配置的时候需要留意轴的编号指定,即将编号1(x轴)指定到axis2,编号2(y轴)指定到axis1。 修改V-REP参数和通用参数,并克隆电机轴 将参数修改为所需的参数,完成电机轴参数配置后克隆电机轴,然后只需要为克隆出来的电机轴绑定伺服、设定Vrep机器人模型的轴编号、修改Vrep端口号即可。 导出文件,修改源代码部分参数后按下“ctrl+F5”,即可看到控制现象:Vrep中的机器人模型进行圆周运动,EtherCAT伺服也在带动电机进行运动。 afd78bce-787b-11ec-9437-dac502259ad0.png  总结CONCLUSIONS
1. 观察MoDK的例程代码,可以发现其程序编写遵循一个比较规整的三步走模式:声明变量→创建实例→函数调用,轴控制循环则采用状态机的方式实现。但这种PLC编程方式虽然用起来的思路比较明确,但是代码量看起来会相当庞大,可维护性相对较差。
2. 因而MoDK最好的使用方式,仍是结合虹科Straton使用PLC语言进行开发。虹科Straton拥有独立的变量编辑器,并且PLC功能块创建与调用本身就是一体化的,可以极大减少开发的工作量,程序的维护也变得直观与简单起来。




标签:[db:tags]