ProCon说明   快速入门   运动控制   EtherCAT   实时程序   API函数   控件库   硬件说明   问题排查   示例代码  
  

NoTime++

简介

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以上;如果在不同节点运行,优先级无限制;实时系统下的优先级是可抢占的,请合理设置线程优先级,避免低优先级长时间得不到响应。

例程YKNotime

路径: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