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

注意事项

 

1. 共享内存

创建共享内存的方法在NoTime的例程中有详细介绍

① 共享内存结构体大小计算: 共享内存创建的结构体的大小不能超过1MB

② 命名规则:创建共享内存不能创建同样的名称两次

③ 内存对齐:因跨平台内存对齐方式不一致,内存建议4字节对齐。不建议使用bool,因bool在托管平台大小为4字节


2. 开发调试

① NoTime不支持在线调试,如需进行调试,可以使用输出函数进行单步输出查看结果
② 因NoTime跨平台,不支持完整的Windows .net体系,建议程序开发阶段,分单项,分阶段进行NoTime测试,这样程序切换到NoTime运行时的问题相对较少。
③ NoTime下,变量不会自动初始化,特别是引用类型中又有引用类型,需注意初始化问题,使用前必须初始化。
④ NoTime程序不易过于庞大,非必要功能,不建议在NoTime中实现,以保证核心功能实时稳定运行。

3. 库引用

NoTime不能引用依赖特定操作系统的库。


4. IO使用注意事项

① 使用SerialPort创建对象时,不可以使用无参构造函数,因为无惨构造函数会调用Windows API自动搜索可用串口。
② Socket对象不易过多,消耗系统对象资源,增加管理负载,原则上一个IP,对应一个Socket,在用户层根据传输内容实现功能区分。
③ Socket传输使用固定缓冲区大小,用户缓冲区重用。
④ Socket使用长连接方式。
⑤ Socket大数据传输,用户层实现数据拼接、校验重发及粘包处理等机制。


5. 回收机制

因资源回收本身会消耗性能,内存申请建议放在循环外进行,提前申请内存,并重复使用,减少资源回收频次及大小。
由于字符串会导致动态内存的分配和释放,影响整机性能,尽可能少用。

6. 线程使用注意事项

不建议在NoTime下使用过多线程,线程数量限制在5个以内,甚至单线程。原因有以下几点:
① NoTime运行在单核心上,对多线程支持并不友好,过多线程的管理及调度,反而影响程序本身的性能。
② NoTime程序不支持在线调试,多线程本身调试复杂,增加调试难度。单线程可通过打印信息及打印顺序定位问题点。
③ 不建议在NoTime下动态频繁创建线程,可基于状态机实现异步运行的效果。
④ 不建议在线程中频繁分配大内存。

7. 仿真模式

不支持事件。

 

 

  
Copyright © 2015 深圳市优易控软件有限公司 www.proutech.com