运用软件建立伺服环,应该注意什么 点击:768 | 回复:18



动感

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 28回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2007年7月11日
发表于:2009-02-24 20:44:01
楼主
我原来用的PMAC,后来发现PMAC 在WINDOWS下的时钟不准确,造成的累计误差引起不规则振动,现在想运用实时操作系统编写类似的软件来代替PMAC ,请问应该注意哪些问题 ,是否单纯的编写PMACA的伺服环就可以?



竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2009-02-24 21:12:52
1楼
可以关注一下linux下的开放式数控项目,例如linuxcnc之类的

波恩

  • 精华:3帖
  • 求助:0帖
  • 帖子:10帖 | 2797回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年12月10日
发表于:2009-02-25 08:14:01
2楼
PMAC本身自带实时操作环境(未必是操作系统),以PMAC直接实现伺服的电流环控制也是有先例的,建议咨询原厂。

firstrazor

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 753回
  • 年度积分:0
  • 历史总积分:909
  • 注册:2007年7月28日
发表于:2009-02-25 08:16:13
3楼
我没用过PMAC,但个人的理解是所有的伺服环都因该在PMAC里CPU/实时操作系统中运行,这是固件的功能,有必要重写吗?

动感

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 28回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2007年7月11日
发表于:2009-02-26 18:08:19
4楼

这个伺服环在PMAC 内部是442us一次执行的,我外部的实时指令理论上是10ms发送一次,可是由于WINDOWS是非实时操作系统,所以外部指令存在不准确的情况,造成累计误差,如果换其他实时操作系统的话,PMAC的驱动程序不支持,因此考虑使用实时操作系统来发送外部指令,内部伺服环也运用软件来代替。国外有这样做的先例,不过软件编写伺服环很吃力。有什么好的建议吗?

 

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2009-02-26 18:20:05
5楼
外不指令能否缓冲?用PMAC内部的时钟实现真正的发送?

动感

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 28回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2007年7月11日
发表于:2009-02-26 19:58:23
6楼

尝试过,缓冲效果很不好,因为即使缓冲,外部指令依旧是要WINDOWS送到PMAC 这样有时会造成缓冲区有时为空,控制发生问题

 

波恩

  • 精华:3帖
  • 求助:0帖
  • 帖子:10帖 | 2797回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年12月10日
发表于:2009-02-27 08:24:55
7楼
缓存的使用机制有问题,首先缓存需要足够大,以应付Windows可能出现的指令延误,其次需使用缓存的满,半满,空(仅作为报警)等标识。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2009-02-27 18:23:44
8楼

个人认为,改善缓冲比自己做伺服环的工作量小太多了.

动感

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 28回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2007年7月11日
发表于:2009-03-02 09:45:25
9楼
工作量大小不是问题,关键是缓冲不能解决实际的问题,国外向倍福和FCS都运用软件编写伺服环,肯定是由于硬件时钟不匹配的问题,是否还有其他建议?

波恩

  • 精华:3帖
  • 求助:0帖
  • 帖子:10帖 | 2797回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年12月10日
发表于:2009-03-02 13:10:04
10楼

倍福的TwinCAT有实时内核的支持,楼主不然也试试RTX或者InTime

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2009-03-02 21:22:11
11楼

如果您实现不了缓冲,估计做伺服环也不是很容易实现

s-l

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2004年3月22日
发表于:2009-03-02 22:21:01
12楼
RTX是美国Ardence公司开发的基于Windows操作系统的实时解决方案,是目前Windwos平台的唯一纯软件的硬实时扩展子系统。RTX不对Windows系统进行任何封装或修改,其通过在HAL层增加实时HAL扩展来实现基于优先级的抢占式的实时任务的管理和调度。RTX实时子系统RTSS的线程优先于所有Windows线程,提供了对IRQ、I/O、内存的精确直接控制,以确保实时任务的100%可靠性。通过高速的IPC通讯和同步机制,RTX方便地实现与Windows之间的数据交换。RTX的定时器时钟分辨率为100纳秒,最低定时器周期为100微秒。

波恩

  • 精华:3帖
  • 求助:0帖
  • 帖子:10帖 | 2797回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年12月10日
发表于:2009-03-03 08:36:33
13楼

“RTX是美国Ardence公司开发的基于Windows操作系统的实时解决方案,是目前Windwos平台的唯一纯软件的硬实时扩展子系统”———楼上的以为InTime和RTX相比如何?

firstrazor

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 753回
  • 年度积分:0
  • 历史总积分:909
  • 注册:2007年7月28日
发表于:2009-03-03 09:17:13
14楼
那么Wind River公司基于 Windows的 VxWorks呢?

波恩

  • 精华:3帖
  • 求助:0帖
  • 帖子:10帖 | 2797回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年12月10日
发表于:2009-03-03 12:51:06
15楼
“基于Windows 的 VxWorks”———  一直以为VwWorks是独立的实时操作系统,真的也有支持Windows的VxWorks吗?是否可以介绍一下。

firstrazor

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 753回
  • 年度积分:0
  • 历史总积分:909
  • 注册:2007年7月28日
发表于:2009-03-03 13:32:15
16楼
http://www.kuka-rtos.com/en/products/vxwin/

波恩

  • 精华:3帖
  • 求助:0帖
  • 帖子:10帖 | 2797回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年12月10日
发表于:2009-03-03 21:01:30
17楼

仔细阅读了Kuka基于VxWorks开发的VxWin的白皮书,总体上与RTX或InTime的Real Time Kernel概念和应用模式有类似之处,是基于Windows上位环境实现底层实时操作的不错思路!

就是不知性能和使用成本与RTX或InTime相比如何?

alexqiu

  • 精华:0帖
  • 求助:1帖
  • 帖子:13帖 | 233回
  • 年度积分:0
  • 历史总积分:933
  • 注册:2006年8月28日
发表于:2009-03-04 11:20:36
18楼

如果樓主的應用不是很復雜,弄顆16BIT 的單片機不用操作系統就應該可以搞定。

另外請問樓主,你的控制端和伺服的通訊采用什么方式,CAN .ETEHRCAT?

如果使用CAN,4軸4ms可以完成數據刷新,如果是ethercat 會快很多。


热门招聘
相关主题

官方公众号

智造工程师