搜索
bottom↓
回复: 32

求赐教:谁用VB通过并口控制过步进电机

[复制链接]

出0入0汤圆

发表于 2012-5-30 14:07:35 | 显示全部楼层 |阅读模式
本帖最后由 zyzsorry 于 2012-5-30 14:09 编辑

我在用VB控制步进电机的时候,用的是调用这个“inpout32.dll“  来控制并口的高低电平,现在遇到一个问题。VB定时的时候精确度不够啊。
比如
让1.8的步进电机每秒钟砖2圈,是不是这样算:脉冲数=(360/1.8)*2=400个脉冲。

VB的定时器好像做不到这一点。

有没有告诉介绍下你们的经验啊。

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2012-5-30 17:44:45 | 显示全部楼层
定时器应该可以做到啊

出0入0汤圆

发表于 2012-5-30 18:13:14 | 显示全部楼层
用API定时

出0入0汤圆

 楼主| 发表于 2012-5-31 08:08:38 | 显示全部楼层
lingaogang 发表于 2012-5-30 17:44
定时器应该可以做到啊

定时器精度不够。完全不够。

出0入0汤圆

发表于 2012-5-31 08:11:55 | 显示全部楼层
精度不够? 你你需要多高的精度?

出100入0汤圆

发表于 2012-5-31 08:46:40 | 显示全部楼层
这跟VB的定时器没关系吧,你又不是要精确定时,只是定位而已(定脉冲数)

出0入0汤圆

 楼主| 发表于 2012-5-31 09:09:34 | 显示全部楼层
wochai 发表于 2012-5-31 08:46
这跟VB的定时器没关系吧,你又不是要精确定时,只是定位而已(定脉冲数)

如果没有精确的定时。怎么产生精准的脉冲啊?如果脉冲不稳定,步进电机运转就不连续啊?
你觉得应该怎么做。给个建议。

出100入0汤圆

发表于 2012-5-31 09:39:25 | 显示全部楼层
zyzsorry 发表于 2012-5-31 09:09
如果没有精确的定时。怎么产生精准的脉冲啊?如果脉冲不稳定,步进电机运转就不连续啊?
你觉得应该怎么 ...

比如设置timer的interval=50,然后在timer中发送一个脉冲,你要发送10个脉冲就进入十次timer,至于timer是50ms触发还是60ms触发,重要吗
如果重要,请用DOS

出0入0汤圆

发表于 2012-5-31 09:42:38 | 显示全部楼层
哗~~~楼主开工啦~~~

出0入0汤圆

发表于 2012-5-31 09:51:27 | 显示全部楼层
timesetevent

出0入0汤圆

 楼主| 发表于 2012-5-31 10:37:37 | 显示全部楼层
wochai 发表于 2012-5-31 09:39
比如设置timer的interval=50,然后在timer中发送一个脉冲,你要发送10个脉冲就进入十次timer,至于timer是50 ...

进入10次脉冲 时间是50*10=500毫秒
1.8的步进电机要200个脉冲才1转。50*200=10000毫秒,10秒。10秒钟一转。不得慢死了啊?
现在要解决的就是这个问题。

出0入0汤圆

 楼主| 发表于 2012-5-31 10:38:14 | 显示全部楼层
zhuisuoji 发表于 2012-5-31 09:42
哗~~~楼主开工啦~~~

刚开工就遇到麻烦了。好几天都没解决掉。

出100入0汤圆

发表于 2012-5-31 10:55:14 | 显示全部楼层
cqfeiyuxmj 发表于 2012-5-31 09:51
timesetevent

用它在实际运用中,也最多只能达到5ms定时,按照lZ的电机算也只能到达1n/s

出100入0汤圆

发表于 2012-5-31 10:56:32 | 显示全部楼层
zyzsorry 发表于 2012-5-31 10:37
进入10次脉冲 时间是50*10=500毫秒
1.8的步进电机要200个脉冲才1转。50*200=10000毫秒,10秒。10秒钟一转 ...

别用定时了,用死循环吧,看看能达多少

出0入0汤圆

 楼主| 发表于 2012-5-31 11:01:48 | 显示全部楼层
cqfeiyuxmj 发表于 2012-5-31 09:51
timesetevent

这位朋友,说的有点道理,研究下再说,感谢先。

出0入0汤圆

 楼主| 发表于 2012-5-31 11:04:39 | 显示全部楼层
wochai 发表于 2012-5-31 10:56
别用定时了,用死循环吧,看看能达多少

死循环太快了。无法准确控制。电机还要有加速的过程,不能一上来就嗷嗷转。
10楼的兄弟说的有点道理,我正在学习。

出0入0汤圆

 楼主| 发表于 2012-5-31 11:07:35 | 显示全部楼层
wochai 发表于 2012-5-31 10:55
用它在实际运用中,也最多只能达到5ms定时,按照lZ的电机算也只能到达1n/s

是么?没搞过啊。

出0入0汤圆

 楼主| 发表于 2012-5-31 12:07:13 | 显示全部楼层
zhuisuoji 发表于 2012-5-31 09:42
哗~~~楼主开工啦~~~

兄弟,你的单片机控制步进电机,加速减速的程序是怎么写的?能否分享下。

出0入0汤圆

发表于 2012-6-1 13:10:17 | 显示全部楼层
zyzsorry 发表于 2012-5-31 12:07
兄弟,你的单片机控制步进电机,加速减速的程序是怎么写的?能否分享下。 ...

兄弟,在 http://www.ourdev.cn/thread-5187335-1-1.html 这个帖子里面有的呀

出0入0汤圆

发表于 2012-6-1 22:58:35 | 显示全部楼层
VB不太适合做这个。自带定时器响应肯定不够,CPU速度决定中断次数,一般电脑,1S 20次左右的event吧。
用系统的tick定时,又得靠查询的原理,CPU占用很高。

一般如果用VB的上位机程序,只是提供G代码到下位机的通讯。

出0入0汤圆

 楼主| 发表于 2012-6-2 09:49:54 | 显示全部楼层
Argee 发表于 2012-6-1 22:58
VB不太适合做这个。自带定时器响应肯定不够,CPU速度决定中断次数,一般电脑,1S 20次左右的event吧。
用系 ...

哦。谢谢。
如果不用VB的,什么样的软件来做上微机比较合适。
应该改变研究方向了。上微机提供命令,让下位机来实现。

出0入0汤圆

发表于 2012-6-2 12:13:30 | 显示全部楼层
Argee 发表于 2012-6-1 22:58
VB不太适合做这个。自带定时器响应肯定不够,CPU速度决定中断次数,一般电脑,1S 20次左右的event吧。
用系 ...

我也是这样想的,毕竟是电脑的操作系统要处理很多任务,当然如果能像mach3一样肯定是好,可以省去下位机不少功夫与成本,但实现起来会比较麻烦(就看楼主功力了).
其实楼主可以往简单一点的方向发展,上位机只要实现二种功能即可:
1:编缉功能
  读出PCB文件的元件坐标位置,同时识别元件参数,比如:10K,104...等.然后自动识别或是手动编缉,同类型的元件对应料架坐标位置,当然料架坐标是对应每台机器不同而编缉的.完成后保存.
2:发送坐标命令
  接下来要做的就是按顺序发出坐标命令:
   第一个元件的料架位置坐标(这里最好有料架坐标识别标志)-->接收等待拾取元件完毕信号-->第一个元件PCB所在坐标(这里最好有PCB坐标识别标志)-->接收等待放置元件完毕信号-->进入下一元件-->直到完成

出0入0汤圆

 楼主| 发表于 2012-6-2 15:31:06 | 显示全部楼层
刚定了2块TB6560的便宜板子。回来先解决掉电机控制问题。马上要换工作了,工资看涨,这2个月装修房子,进度可能要低点。

出0入0汤圆

发表于 2012-6-2 17:01:32 | 显示全部楼层
VB自带的定时器是不准的
但可以利用系统API实现时间精确定时的
看看这个
http://wenku.baidu.com/view/cf5a107602768e9951e73859.html

出0入0汤圆

发表于 2012-9-6 12:28:20 | 显示全部楼层
http://www.docin.com/p-91317652.html
这个可以搞定

出0入0汤圆

 楼主| 发表于 2012-9-6 12:55:07 | 显示全部楼层
lf751117 发表于 2012-9-6 12:28
http://www.docin.com/p-91317652.html
这个可以搞定

效果一般。我用过了,谢谢。

出0入0汤圆

发表于 2012-9-6 13:01:55 | 显示全部楼层
本帖最后由 lf751117 于 2012-9-6 13:03 编辑

楼主可以把代码发给我不?我最近也打算搞QQ17755037

出20入186汤圆

发表于 2012-9-6 13:17:04 | 显示全部楼层
1.把你VB程序的优先级调高,用API
2.我以前用过一个控件是多线程的定时器,很好用的,
  VB默认的定时器比如你程序死循环,定时器就执行不了,伪定时器,你滴明白、?

出0入0汤圆

 楼主| 发表于 2012-9-6 13:18:03 | 显示全部楼层
效果不好。根本就没保存啊。后来就改成串口了。vb发送命令,51接受然后执行。东西也还没做完,赶上装修房子,好几个月没干了。打算房子装修完了继续干。

出0入0汤圆

 楼主| 发表于 2012-9-6 13:21:50 | 显示全部楼层
yuyu87 发表于 2012-9-6 13:17
1.把你VB程序的优先级调高,用API
2.我以前用过一个控件是多线程的定时器,很好用的,
  VB默认的定时器比 ...

看来是高手,饿滴不明白啊。
头像被屏蔽

出0入0汤圆

发表于 2012-9-6 13:35:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2012-9-6 13:45:51 | 显示全部楼层
bbs2009 发表于 2012-9-6 13:35
回 LZ
别用 并口, 用 串口 更靠谱。看看这个:
一种直接采用计算机串行口控制步进电机的新方法

灰常灰常感谢,研究下。最近是想做成串口。
头像被屏蔽

出0入0汤圆

发表于 2012-9-6 13:57:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 10:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表