当前位置:网站首页>虹科Automation softPLC | 虹科KPA MoDK运行环境与搭建步骤(3)——MoDK例程测试
虹科Automation softPLC | 虹科KPA MoDK运行环境与搭建步骤(3)——MoDK例程测试
2022-07-29 05:25:00 【虹科工业通讯事业部】
本系列文章旨在帮助读者对虹科KPA Automation体系进行一个简要的理解,并且能使用MoDK进行快速的上手操作,包括:虹科KPA
Automation、虹科KPA MoDK简介,虹科KPA MoDK的运行环境搭建与例程测试。本文档搭建的虹科KPA
MoDK运行环境,是基于Win10,并且是以C/C++为开发语言进行的。若您有任何疑问,欢迎您评论、私信或联系[email protected],虹科工程师将给您专业的解答。
虹科KPA Automation是一个自动化解决方案开发平台,适用于工厂自动化和过程控制应用。经过前文的相关介绍和运行环境的搭建,本部分将进行部分官方例程的测试,包括EtherCAT从站(结合MDK)、Vrep机器人仿真平台、Simulation(纯文字仿真)。
本篇推文将展示部分官方例程的测试。以下例程分别对应了MoDK可以控制的3类对象:EtherCAT从站(结合MDK)、Vrep机器人仿真平台、Simulation(纯文字仿真)。最后一个例程通过Motion Configuration Utility中的设置,实现了对实际电机以及Vrep中仿真机器人的同时控制。
1. Move_relative (EtherCAT & CiA402)
该例程的测试效果是控制一个物理电机轴进行3次相关运动,需要我们外接一个EtherCAT从站伺服和电机进行现象观察,笔者的测试环境中,选择的是maxsine的伺服。

例程测试的步骤如下:
①在虹科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,即可开始仿真。
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伺服也在带动电机进行运动。

总结
- 观察MoDK的例程代码,可以发现其程序编写遵循一个比较规整的三步走模式:声明变量→创建实例→函数调用,轴控制循环则采用状态机的方式实现。但这种PLC的编程方式虽然用起来的思路比较明确,但是代码量看起来会相当庞大,可维护性相对较差。
- 因而MoDK最好的使用方式,仍是结合虹科Straton使用PLC语言进行开发。虹科Straton拥有独立的变量编辑器,并且PLC功能块创建与调用本身就是一体化的,可以极大减少开发的工作量,程序的维护也变得直观与简单起来。
因篇幅限制,例程测试示例未能一一详细展开。若有疑问,欢迎发邮件到[email protected]联系我们的技术工程师。
边栏推荐
- Rowkey设计
- 虹科分享 | 测试与验证复杂的FPGA设计(2)——如何在IP核中执行面向全局的仿真
- Linked list -------------------------- tail insertion method
- Ue5 light shadow basic shadow full resolution sawtooth shadow solution lumen
- Ml self study notes 5
- JUC concurrent knowledge points
- 【Leetcode刷题】数组2——二分查找
- Ue5 landscape conversion Nanite conversion method and it does not support the use method of starting dynamic mesh with lumen and lumen
- LeetCode #35.搜索插入位置
- 利用云打码来破解登录遇到验证码的问题
猜你喜欢
随机推荐
[beauty of software engineering - column notes] 19 | as a programmer, you should have product awareness
LeetCode #189.轮转数组
虹科分享 | 测试与验证复杂的FPGA设计(2)——如何在IP核中执行面向全局的仿真
关于【链式前向星】的自学理解
Sliding window leetcode 76. minimum covering substring (hard) 76.76. minimumwindow substring (hard)
LeetCode #876.链表的中间结点
Overview and summary of GI engine in redshift 024, the official tutorial
Official tutorial redshift 04 rendering parameters
Leetcode 7. integer inversion
Official tutorial redshift 05 AOVs
Leetcode 14. longest public prefix
Leetcode scribble notes 763. Divide the letter range (medium)
Joiner.on和stream().map联合使用技巧
LeetCode #977.有序数组的平方
Leetcode 167. sum of two numbers II - input ordered array
Official tutorial redshift 03 parameters and general instructions of various GI
Unity初学4——帧动画以及主角攻击(2d)
leetcode刷题笔记 763.划分字母区间(中等)
LeetCode #9.回文数
Operating system interview questions









