首页 上一页 1 2 下一页 尾页

求助:有关运动控制系统的软件架构 点击:1219 | 回复:29



gaishe

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 59回
  • 年度积分:0
  • 历史总积分:325
  • 注册:2004年4月19日
发表于:2010-07-29 09:56:18
楼主

刘版主,波恩大侠:帮忙啦……

 

各位大侠:我最近在接到一个新的任务,需要做一个运动控制系统,用c语言编写。

我首先需要设计一下软件架构,也就是软件功能模块的分析之类的设计。

我首先想到到功能分散,风险分散。

哪位大侠有比较成熟的软件架构啊?

谢谢大家了!

 

好像说的不太明白。

我的硬件系统是:PC+D/A+I/O+光栅尺+光栅计数卡+直线电机。

采用c语言编程。

我想知道的就是控制程序的架构。比如有保护程序\驱动程序\控制模块\等等,这样的类是功能架构。

 

再次加入:我想应该不是叫运动控制系统,我想应该是下位机软件的开发。

 

具体的应该说是下位机软件架构。

 

不知道这样说对不对?

 

 




竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2010-07-29 12:04:44
1楼
PC下,实时性是关键哦

还不如选一款运动控制卡

gaishe

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 59回
  • 年度积分:0
  • 历史总积分:325
  • 注册:2004年4月19日
发表于:2010-07-29 12:59:26
2楼

谢谢!

muqian

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2010-07-29 17:50:30
3楼
软件架构不敢说懂,电机控制略知一二,如果采用 PC+D/A+I/O+光栅尺+光栅计数卡+直线电机 的方式,一定要用一个实时的操作系统,不要用普通的瘟到死。

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-07-29 19:21:06
4楼

上位控制软件开发俺不懂,不敢胡说!

一定要用Windows,没有实时内核等于刘版主所预言的“瘟到死”,不过正版的实时内核比运控卡不知要贵多少倍!

gaishe

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 59回
  • 年度积分:0
  • 历史总积分:325
  • 注册:2004年4月19日
发表于:2010-07-29 22:13:59
5楼

用的RTLinux,不能用windows的,呵呵!RTLinux免费的。以后可能会用到VXWorks。

兄弟我想做个在Linux下,基于RTLinux内核的,类似于实时层(RTLinux)+非实时层(Linux)架构的软件系统。

波恩大侠:如果有下位机的也成啊!

就是想看看真正的工业应用是如何做的。

竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2010-07-30 10:58:40
6楼
现在主流的方式有两种
1、采用实时操作系统
2、在底层用DSP等其它芯片做一个实时环境,PC只是界面

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-07-30 12:00:28
7楼

所谓上位控制,就是指驱动执行层面以上的控制。至于是以PC机还是嵌入式为载体,都是上位控制!

RTLinux可用,但实时性有限,至少不是所谓的硬实时,实时任务响应滞后和调度开销都不小。

alexqiu

  • 精华:0帖
  • 求助:1帖
  • 帖子:13帖 | 233回
  • 年度积分:0
  • 历史总积分:933
  • 注册:2006年8月28日
发表于:2010-08-04 15:26:57
8楼

运动控制大体分三种。

PC Base,这个一定要用实时操作系统,多用工业以太网为控制。

PLC base 有的有嵌入式操作系统,有的根本就没操作系统。采用定点DSP或者浮点DSP芯片,PC端有配套的编程配置软件,多为PLCopen 风格。控制界面很多,工业以太网,工业现场总线及脉冲。

Drive Base 不是很了解,但是也看到好多这种类型的运动控制器。

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-08-04 16:47:14
9楼
昨天风河的人说RTLinux也是硬实时,原则上能力不弱于VxWork等,将信将疑中,开始颠覆自己过去对RTLinux实时性的疑虑。

竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2010-08-04 17:03:10
10楼
波恩,硬实时的标准是什么样的?或者说什么样的性能能算硬实时?

记得RTLinux的延时应该在10微秒左右。

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-08-04 17:21:53
11楼

看是什么样的运算平台,记得过去听别人说RTLinux在奔Ⅲ 800上硬中断的响应滞后在15~20微秒。现在的x86平台可能会更快才对。

要胜任几十KHz的硬件刷新频率,硬中断的响应滞后就必须足够小,个人以为不应长于3~5微秒,最好在1~2微秒。欢迎拍砖。

gaishe

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 59回
  • 年度积分:0
  • 历史总积分:325
  • 注册:2004年4月19日
发表于:2010-08-04 20:23:57
12楼

谢谢各位,目前正在做这个任务。详细的技术细节还在考虑中……大家继续提建议啊!

笨鳥慢飛

  • 精华:3帖
  • 求助:3帖
  • 帖子:15帖 | 2548回
  • 年度积分:0
  • 历史总积分:4928
  • 注册:2005年10月16日
发表于:2010-08-05 08:56:52
13楼

我的硬件系统是:PC+D/A+I/O+光栅尺+光栅计数卡+直线电机。 這架構說不出你的要求

選用PC目的為何 有大量的資料需要傳遞或處理 還是面子工程

光栅尺+光栅计数卡+直线电机。這應該同一個機構 看來這光栅尺又僅是參考用

很簡單的系統架構 無須複雜化

竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2010-08-05 09:24:41
14楼
TO波恩
公认实时性最好的VXWorks,应该也不能保证1-2微秒吧;
听一个朋友讲,RTLinux的商业版授权比免费版实时性好,现在的典型工业硬件条件下(具体的我也不清楚),做到7-8微秒还是可以的。
另外,如果让我用RTLinux开发数控系统的话(虽然没有这个能力,只是谈一下设想),我的架构会如下:
1、如果采用总线模式,应该把总线最底层的处理用硬件或独立的芯片(FPGA/DSP/ARM)来完成,把同步过来的数据存在寄存器里面,用类似于DMA的方法来与x86架构下的RTLinux交互。
2、如果采用传统模式,应该把编码器计数和DA用硬件或独立的芯片(FPGA/DSP/ARM)来完成,把同步过来的数据存在寄存器里面,用类似于DMA的方法来与x86架构下的RTLinux交互。
3、在x86架构下的RTLinux只用了执行轨迹规划、插补等功能;也就是说,RTLinux控制的只是位置环及位置环以上的工作。这样,RTLinux实现100微秒的伺服周期应该还是有保证的。
4、上述底层硬件的成本不会太高,而软硬件结合的方式,也是对自己的一种保护(在中国,知识产权的保护,更多的还是靠自己)。

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-08-05 11:14:56
15楼

据说基于Windows的实时内核可以跑100KHz的硬件中断,10us周期,中断响应得多快?

个人不曾做过这方面的实际工作,只能凭感觉臆测。欢迎继续拍砖!

gaishe

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 59回
  • 年度积分:0
  • 历史总积分:325
  • 注册:2004年4月19日
发表于:2010-08-05 11:30:59
16楼

to 竹石
3、在x86架构下的RTLinux只用了执行轨迹规划、插补等功能;也就是说,RTLinux控制的只是位置环及位置环以上的工作。这样,RTLinux实现100微秒的伺服周期应该还是有保证的。
 

一般的方法是分为实时层和非实时层两部分,尔轨迹规划和插补等功能是放在非实时层来做的。




波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-08-06 14:40:06
17楼
是啊!轨迹规划、插补、加减速与稳速控制等放在非实时任务中异步突发式处理并缓冲,是现如今业内通行的做法,虽然这在十年前还算是不小的“Know How ” !

jamesyoung77

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 345回
  • 年度积分:0
  • 历史总积分:1565
  • 注册:2010年6月25日
发表于:2010-08-08 14:58:19
18楼
建议参考Deltatau的Power PMAC, 采用的是实时的linux内核处理运动控制,其他的任务采用非实时处理
用的是POWER PC嵌入式芯片,好像可以控制256个马达

vesgine

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 90回
  • 年度积分:0
  • 历史总积分:513
  • 注册:2005年8月29日
发表于:2010-08-10 07:34:50
19楼

电流环的调节也是用linux内核来处理?

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2010-08-10 08:24:57
20楼

有没有用Linux不详,PMAC卡中确实有可以做到电流环调节和矢量控制的。


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页