打印

用单片机控制XY工作台的一些问题

[复制链接]
3135|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
windxx|  楼主 | 2010-4-3 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 windxx 于 2010-4-3 16:40 编辑

本人正在做毕业设计,题目是“基于单片机控制的XY数控工作台”,其实大体的机械本体设计都定下来了,打算做成行程是300X300mm的,呈十字形,原点设在导轨中点,采用步进电机控制,而控制方面就采用AT89S52单片机,遇到以下几个问题:

1、原点如何定在导轨中点?老师给的建议是在中点安装接近开关,两边安装行程开关,但我没见过这些实物,究竟怎么实现的呢?(没有经验,完全不知道如何确定原点)
    回零操作也不知道如何实现?(难道是软件上实现?)

2、在导轨两端安装行程开关,用其常开触点,一边接单片机的I/O口,一边接地,如果检测到开关合上(到行程终点),该I/O口为低电平,就使步进电机停下来,请问这种想**确吗?能否实现呢?

3、由于是数控设备,打算设计成单片机能与上位机通信,能够解析上位机的控制代码(G代码、M代码),然后再控制步进电机的运动,问题是,如何实现通信呢?是不是也是通过软件实现呢?

4、在显示部分,我想实现在LCD上实时显示工作台的当前坐标,是用光栅吗?还是有别的方法呢?

5、一旦发生停电等,如何实现掉电保护?能否扩展外部存储器24C08,然后实时存储工作台的坐标,那么在下次重新开机时就能续着掉电前的位置继续工作?这种想法可以吗?

暂时就遇到这些问题了,很多问题都是因为没有经验才不会的。。其实,最不懂的就是原点的确定,被这个问题搞得我烦死了。。上网搜了很多资料都没有解决。。希望各位大侠能帮帮忙,小弟先谢了。。

相关帖子

沙发
windxx|  楼主 | 2010-4-3 17:23 | 只看该作者
本帖最后由 windxx 于 2010-4-3 17:26 编辑

先谢谢楼上的。。。

不过主要是我的原点究竟怎么定?
我的理解是:在导轨中间安装一个接近开关(这是硬件上的),它连接的是单片机的一个I/O口,在编程时设定该I/O口为低电平时工作台在原点,一旦工作台离开了,该I/O口变为高电平,这样,只要不断检测该I/O的电平,就知道工作台是否在原点了。
这样想对吗?


还有一个,如果不用光栅的话,我想到的实时显示工作台坐标的方法如下:
每次加工前都回原点,然后从原点到加工位置的过程里,不停对步进电机的旋转计数,几乎是每转一个步距角,我都将它转换成对应的丝杠的移动距离,累积起来,然后就送到LCD那里进行显示。
我这种方式会不会笨了点呢?

使用特权

评论回复
板凳
windxx|  楼主 | 2010-4-4 13:02 | 只看该作者
自己顶顶!!

使用特权

评论回复
地板
冰清玉洁| | 2010-4-5 17:17 | 只看该作者
你先找个那种现成的驱动器熟悉一下,其实很简单的

使用特权

评论回复
5
windxx|  楼主 | 2010-4-5 17:26 | 只看该作者
我也想,但是我只是个学生,这个只是毕业设计,我买个现成的驱动器那多贵啊~!~!

况且这些毕竟是自己的学习任务,只有亲手接触过才算掌握~~~

所以希望有经验的朋友能就我前面的问题给点提示,谢谢了

使用特权

评论回复
6
woshidasha| | 2010-4-16 16:10 | 只看该作者
首先,此设计必须软硬件结合,还有通讯等东西都是在搭好硬件的基础上才能软件实现的。

比如第一,如何定位原点,单片机要控制,首先你要先让单片机知道,外面都有什么信号,在什么情况下,执行什么样的操作,就像你用眼睛定位原点,如果你没有眼睛就没办法定位原点了。像你的老师说的,就是非常简单的办法。

第二,你的想法已经比较接近实际了,但是你别忘了加上拉电阻,要不你死也做不出来。

第三,能够解析上位机代码,你必须要让单片机能够和计算机通讯,推荐傻瓜级芯片,MAX3232。之后就是数据的问题了。

第四,你都用步进电机了,还要什么其它传感器!!!!!!!!
步进电机转过多少个步距角你不知道呀!!!!!!

第五,还算靠谱

使用特权

评论回复
7
windxx|  楼主 | 2010-4-17 10:11 | 只看该作者
非常感谢楼上的,现在我的电路图基本出来了。。剩下的只是软件设计。。

但是在软件设计里面,感觉无从下手,虽然希望实现诸如显示、回原点等功能,但是感觉不知道怎样写程序,不知道用流程图表达

例如我想步进电机从原点到加工点是一个先加速后匀速的过程,但是就是不知道怎样去表达,头痛了!!

使用特权

评论回复
8
ddtx| | 2010-4-17 10:34 | 只看该作者
呵呵,看起来挺简单的,建议首先,原点那部分,其实不需要不停地检测,用到的时候**就好了,另外行程开关可以做一个硬件的关断,把行程开关的常闭端也用上,给电机一个硬件的关断,到了位置后自动停了,步进电机转矩固定,很容易就能知道自己的位置,如果怕掉电丢失的话,可以保存在单片机的FLASH中,没有内置FLASH就只能外接了,每次位置改变都要写FLASH,这样重新上电后就知道自己的位置了,显示LCD应该没什么难度,通信部分硬件是很简单的,软件就比较复杂了,多查查资料,特别是上位机软件那块,对编程的要求高一点,单片机这边就好受多了, 只需要先定一个协议,单片机接收到什么命令,返回那些数据,数据的格式之类的。

使用特权

评论回复
9
windxx|  楼主 | 2010-4-18 17:16 | 只看该作者
本帖最后由 windxx 于 2010-4-18 17:19 编辑

谢谢楼上的建议,看了你提供的资料,用TMC428驱动芯片真的很方便。。。

不过由于之前已经跟老师确定了电机控制的方案,所以不能用TMC428芯片了。。:(

其实现在我的电路控制方案基本确定了,现在是软件设计了。。。。

但是一点头绪都没有,没有开发经验,根本不知道从何入手,知道自己想要实现的功能但又不知道怎样处理。。

例如,我设想整个控制系统的工作流程:
上电复位---工作台自动回零点---与上位机通信,获取加工信息(例如速度、位置、加工类型(直线、圆弧)等等)---按下“启动”键,工作台根据加工信息动作---检测是否越界(行程开关)--检测是否按下“急停”键---执行完任务后,工作台再次回零

如果是越界,则自动停止工作台,并且通过蜂鸣器报警
如果是按下“急停”,则工作台立刻停止
还设置了一个“手动复位”,当按下后工作台会自动回零点

由于外接了AT24C08存储器,在加工过程中实现记录工作台的具体位置,其作用主要是掉电保护

还有,在加工过程中,实时计算工作台的具体位置,并在LCD1602中显示;在越界报警时也显示错误信息

还有,按下“启动”后,工作台从原点运动到加工位置,步进电机是一个加速到匀速的过程;加工完毕后,工作台回原点,步进电机又是一个匀速到减速的过程。。。(这点是最烦的,根本不知道在什么时候用到)

以上就是我想到的整个软件设计的功能,虽然看起来很详细,但是这终归是构想,我就是不知道如何通过程序实现。。。特别是模块化程序设计时,我都不知道怎样才算一个模块

不知道谁有开发经验呢??我都烦死了。。。

使用特权

评论回复
10
airwill| | 2010-4-21 12:40 | 只看该作者
作为一个毕业设计, 单枪匹马做这么大个项目, 真够呛的, 我看在某些方面有些实质性的收获就算成功了.

使用特权

评论回复
11
windxx|  楼主 | 2010-4-22 21:27 | 只看该作者
其实也不是什么大项目的,我现在能实现的功能还是很有限的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

38

帖子

1

粉丝