ProCon说明 快速入门 运动控制 EtherCAT 实时程序 API函数 控件库 硬件说明 问题排查 示例代码 |
NoTime++是基于实时系统INtime打造的C/C++开发框架, 结合实时系统的实时性、windows开发的便捷性。
1. INtime环境
安装INtime-SDK 6.4.21350.2版本。
请购买SDK开发授权,这样可以使用完整的实时系统API,并可获得实时系统厂家的技术支持,支持VS在线调试
未购买SDK开发授权的情况下,仅限于程序编译,不能在线调试代码。由于缺少在线调试功能,请使用单线程编程模式,便于分析问题;仅限于使用本公司的YKCat2和NoSys库。
INtime有两个版本:1.runtime版本仅用于实时程序的运行,notime c#用的visual studio编译器;2.SDK版本既可运行实时程序也可进行实时程序的编译和调试,notime cpp用的INtime编译器。
将SpinDoctor选项改为Disable,避免程序退出时出现不必要的弹框。
2. ProEn环境
支持版本在v1.3.6及以上。
3. Vistual Studio
SDK开发包支持VS2010,VS2012,VS2013,VS2015,VS2017,VS2019;YKCat2运动库用VS2019开发,建议使用此版本;
SDK插件安装到VS请参考
4. C/C++应用程序开发
支持CPP17和CPP20标准
boost库支持请参考https://tenasys.com/my-tenasys/guides-manuals/boost-libraries/
4.1 应用类型
支持Vistual studio C++控制台程序运行 。
4.2动态库
需要将ProCon目录下的lib\include\YKCat2.h和NoSys.h添加到控制台工程中;
5.同步接口
本接口便于运动算法开发,在ProR内部环内调用。
类别 | 运算符 |
YKNotime_SystemInit | 系统初始时调用 |
YKNotime_SystemExit | 系统退出时调用 |
YKNotime_EBusResetStart | 总线复位开始时调用 |
YKNotime_EBusResetEnd | 总线复位完成时调用 |
YKNotime_EBusLoopStart | 总线任务开始时调用,调用时本周期输入PDO数据已读入 |
YKNotime_EBusLoopEnd | 总线任务结束时调用,调用后将本周期PDO数据写入 |
YKNotime_EBusMagRun | 管理任务从STOP到RUN时调用 |
YKNotime_EBusMagStop | 管理任务从RUN到STOP时调用 |
YKNotime_EBusMagLoop | 管理任务每周期调用,可处理非总线同步任务 |
YKNotime_GetActive | 保留 |
将YKNotime.rsl(dll文件)放入ProR根目录下,并在ProR系统配置中启用Notime++接口;ProR在启动时会加载YKNotime.rsl,并调用上表函数。
多节点的情况下,每个节点都会调用YKNtime.rsl,用YKNotime_SystemInit传入的节点参数区分当前运行在哪个节点。
基于NoTime++开发的程序,可正常在Windows端运行,但实时性效果与在INtime运行有差距。
共享内存需在NoTime端创建,Windows端程序打开。
线程的优先级:如果设备程序和运动库在同一节点运动,请指定170以上;如果在不同节点运行,优先级无限制;实时系统下的优先级是可抢占的,请合理设置线程优先级,避免低优先级长时间得不到响应。
路径:YouKong\ProCon\doc\example\notimep\YKNotime
本例中建立了三个编译环境,分别为windows x64,windows x86,intime;预定了WIN64/WIN32/INTIME三个宏以示区别。
编译:先执行copy_library_64bit.bat脚本,将用的库文件(window x64和intime版本)拷贝到引用目录。
调试:可先用windows下调试逻辑,再发布到实时系统;也可直接用intime sdk在实时系统下调试。
发布:实时系统生成的目标文件为rta文件,对应windows下的exe。
加载:用YKM_LoadRtaApp函数将test.rta文件加载到实时系统下,作为一个独立的进程运行。如需要使用总线同步接口,则按同步接口设置。
Copyright © 2015 深圳市优易控软件有限公司 www.proutech.com |