本人是研究生,初次接触galil控制卡不久,有很多问题需要请教大神。
我们实验室有一个6自由度机械手,采用的是电脑+dmc2163来控制这个机械手。电脑系统是XP,编程系统是VC++6.0。我导师给我的任务是不用控制卡或者驱动器里位置环的pid控制,改用自己的自适应控制算法来控制(输入的是位置和速度信号),我想到的方法是把算法通过C++写在上位机里,也就是说这个伺服控制是在上位机完成的而不是控制卡。我想请教一下刘工我这个想法可行吗?如果有更好的方案还请您给点建议。
另外,有一个问题困扰了我很久。我们的电机是三菱交流伺服电机,但是在设置dmc控制卡的跳线的时候却要将JP5和JP7处的SM跳线短接,也就是以步进电机方式工作,请问这是为何?
还有,因为我需要用C++编程,我的c语言基础实在太差,现在又要用dmcwin的各种函数,它的使用方法实在搞不明白,请问有没有相关的编程的教程或者案例之类的发我一份,小弟不胜感激,我的邮箱是jbrwell@qq.com
1、不建议把位置环放在xp系统下。因为普通的windows系统是没有实时性可言的。对于传统的pid算法,精确的计算周期是必须的几条件,而windows系统下,这个条件基本没谱。我不知道您的自适应算法细节如何,但是应该也离不开时基的问题。建议换一个有谱的实时操作系统。否则,您就要面对正常运算周期一毫秒,但偶尔几十、几摆毫秒,甚至几秒的问题。
2、看看三菱的手册,把驱动器的工作模式改成速度模式或者电流(扭矩)模式。并相应的调整控制卡的设置和连接线。
3、关于c++编程的问题,实在不是我能帮忙的,或者您熟悉什么编程语言就改用什么编程语言吧。例子只能解决galil的api函数如何使用的问题,解决不了编程的问题。
作为一个买运动控制卡的,我就不向您推荐操作系统与单片机了。
对于实时操作系统,工控论坛上有过讨论的帖子,您可以搜索一下。而单片机的问题,我想的是,如果您用单片机实现了控制算法,您要控制卡干什么?
控制卡本身是可以烧录程序,但是,这个系列的卡已经算是比较古老的了,而且用户写如的程序也是在内部解释执行(不编译的),程序运行的效率非常低。您在pc上一毫秒完成的运算,在控制卡上可能要几百毫秒。这个想法只能算是理论可行,我就没有向您提过。
至于您问伺服为什么要设置成步进电机的控制方式来控制。控制卡是不可能识别外部的电机的,没有怎么智能的控制卡。对于控制卡来说,设置的只是控制的接口模式。当伺服已经设置为接收位置派冲信号时,控制卡自然也就要做相应的设置。