大家好,通过前面的几次实验,相信大家已经看到了YKCAT2在NoTime模式下,相较于运动控制卡方案带来的设备效率和稳定提升。
那么在这一集,我们来解答几个大家经常问到的问题:
1、如何搭建NoTime基本程序框架,同一套程序框架能否兼容YKCAT2 NoTime和Windows模式,甚至是其他的运动控制卡。
2、实时系统上的机器控制程序如何与Windows上的程序交互,以及如何调试他们。
首先,我们来看运控部分的封装结构。
如图所示,我们抽象出运控基类,不同运控品牌基于运控基类做不同的实现,这样在运控品牌切换的时候,调用代码不用做任何更改,做到多运控品牌的兼容。
我们继续看这张图,我们将设备的自动运行逻辑单独封装出来,分别在Windows和console控制台应用程序当中引用,console控制台应用程序是运行在实时系统下面的,Windows这边就和常规的运控的调用是一样的,分别在这两边对我们的自动运行逻辑做引用,即可实现实时系统与Windows系统的兼容。
接下来我们看一下用户程序的运行与调试,在Windows下的运行与调试,与常规的运控开发没有差别,那我们重点讲一下实时系统下的程序的运行与调试。
首先我们来看一下这张图,我们需要在Windows端,调用LoadNoTimeAPP接口,传入编译生成的运行在实时系统下的控制台应用程序,生成的可执行文件的全路径名,传到这个接口里面作为参数,然后我们的控制台应用程序就可以在实时系统下运行起来。Windows程序与实时程序的(数据)交互是基于共享内存实现。
共享内存是需要在实时程序这边创建,然后为我们创建的共享内存命名,然后在Windows这边打开,传入的名字就是我们创建的名字,这样我们的实时程序和Windows程序就会访问同一段内存,这样我们的交互通道就已经打通了,另外,共享内存,我们可以利用结构体,做一下结构化的封装,这样就省去了我们用户需要自己去做地址偏移之类的繁琐的事情。
运行在实时系统下的console控制台的应用程序的调试呢,我们可以在Windows下调试,调试正常之后,再load到实时系统下就行。
审核编辑:郭婷
-
WINDOWS
+关注
关注
3文章
3541浏览量
88635 -
应用程序
+关注
关注
37文章
3267浏览量
57684
原文标题:YKCAT2全实时程序框架与兼容解决方案讲解
文章出处:【微信号:伺服与运动控制,微信公众号:伺服与运动控制】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论