基于PC实时环境的程序开发
2022-01-09点击量:208
一.目前行业主流的基于PC的控制器方案目前行业内主流的基于PC的机器控制方案,通过运动控制卡实现,它的程序运行原理是:用户程序运行在Windows上,线程由Windows分配给程序,对于要求线程稳定的机器,难以满足需求,因为Windows系统不具备实时性,是属于通用型操作系统,它更注重于系统的吞吐量而不是系统响应时间,虽然它大部分的时间是稳定的,但是线程以及性能容易受到Windows上别的软件或者操作的影响,导致有几个周期的响应时间变得很慢。此图是我们使用某款运动控制卡,在Windows下写的程序,动作是输出一个IO,然后把输出IO接到控制卡的输入去,等待控制卡接收到输入,然后把这段时间进行计时,得出的结果。可以看到大部分的时间是在1-2ms之间的,但是一旦电脑上在进行一些其他的操作,或者长时间运行,这个时间就会变得不可控制,波动范围很大。二.ProCon是基于实时系统的开发与执行框架用户使用高级语言和VisualStudio可以开发基于实时系统的程序。上面介绍过在Windows系统上运行的程序的弊端,基于实时系统的开发框架ProCon,可以解决程序运行时的响应时间波动的问题。基于之前IO反转的实验,不同点是程序运行在实时系统中,我们得到以下的实验数据:通过数据可以看到,无论Windows负载如何,且在长时间的运行情况下,从输出到输入的波动始终是在1-2ms之间,这个实验我们采用了ProU的运动控制库配合倍福的EtherCATIO在实时系统的环境下做的测试。使用ProCon框架下的运动控制功能,实时系统会把本来由Windows完全管理的intelCPU分出一个核直接管理,所以即使Windows蓝屏,或者在电脑上使用大量的计算工作(如图像处理),都不会影响机器的运动和逻辑控制程序的执行效率。三.实时系统下的开发流程①先安装并授权实时系统开发版:http://www.ProU.cn/manual/20ProH/02Intime.html,如果要调试代码则需要开发的硬件狗,或者向公司申请临时的开发授权。②安装之后在VisualStudio里会多出一个插件,打开vs,选择新建工程。③选择A“HelloWorld”,然后点击ok,再ok,再ok直到新建工程完成④添加头文件,YKCat.h,文件放在D:\YouKong\ProH\YKCat目录下⑤配置预处理器,将YKCat.h中的FUNS_EXPORTS配置到预处理器,点击应用,确定⑥配置lib文件,文件在D:\YouKong\ProH\YKCat\Intime\V64⑦配置包含目录,将ykcat.lib放到包含目录下⑧程序中引用”windows.h”,”ykcat.h”头文件,注意顺序编写总线初始化函数。其中调用的文件生成方式在下章节讲解⑨主流程,流程包括输出字符"Hello,World!"调用初始化总线函数循环执行控制IO输出,两段绝对定位运动,并判断是否定位完成,并输出当前位置。编译程序,待生成成功⑩将D:\YouKong\ProH\YKCat\Intime\V64目录下的InLib.rta和YKCat.rsl放到生成目录下注:rsl相当于Windows的dll。注:rta相当于Windows的exe。①是我们生成的应用程序②是YKCAT的调用程序③是YKCAT的执行函数文件四.生成总线的配置文件①打开ProU,新建ProU程序默认选项即可,点击确定②右键添加ECAT主站,选择伺服驱动,找到VirtualServo(本案例使用虚拟轴),点击添加③打开ProH,然后点击下载按钮,选择选择所有,点击执行,然后一直确定即可。④关闭ProH,然后就会生成配置信息ecat.bin以及config.txt。五.运行①编译好程序,插上开发加密狗或者临时开发狗,按F5运行即可。六.结论基于ProCon实时开发与执行框架,用户可以通过高级语言开发基于实时系统的机器程序,避免机器运行受到Windows计算任务的影响,实现比运动控制卡方案更加稳定的机器控制。同时继续保持运动控制卡方案与Windows平台上如机器视觉、人机界面等应用整合的优势(相较于脱机的运动控制器),是比较理想的PCbased控制方案。本文由培训无忧网长沙牛耳教育课程顾问老师整理发布,希望能够对想在长沙参加影视动漫培训的学生有所帮助。更多课程信息可关注培训无忧网电脑IT培训频道或添加老师微信:15033336050...