基于打印机并行接口的步进电机运动控制.doc

基于打印机并行接口的步进电机运动控制.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于打印机并行接口的步进电机运动控制

实验一 基于打印机并行接口的步进电机运动控制 一、实验要求: 清楚打印机并行口地址; 能够用高级语言进行接口控制; 了解并掌握步进电机的驱动控制技术; 编制出能够控制步进电机的高级语言程序。 二、实验原理: 1、步进电机的驱动控制原理 步进电机区别于其他控制用途电机的最大特点是,它接受数字控制信号(电脉冲信号)并转化成与之相对应的角位移或直线位移,它本身就是一个完成数字模拟转化的执行元件。而且它可开环位置控制,输入一个脉冲信号就得到一个规定的位置增量,这就是所谓的增量位置控制系统。我们知道步进电机的转速可以用下式表示(以反应式步进电机,负载不变为例):式中为控制脉冲的频率,为转子齿数,为运行拍数。由上式可见步进电机的转速取决于脉冲频率、转子齿数和拍数。其角速度与脉冲频率成正比,而且在时间上与脉冲同步。因而在转子齿数和运行拍数一定的情况下,只要控制脉冲频率即可获得所需速度。为了充分发挥电机的快速性能,通常使电机在低于启动频率下启动,然后逐步增加脉冲频率直到所希望的速度,所选择的变化速率要保证电机不发生失步,并尽量缩短启动加速时间。为了保证电机的定位精度,在停止以前必须使电机从最高速度逐步减小脉冲频率,使之降到能够停止的速度(等于或稍大于启动速度)。 因此,步进电机拖动负载高速移动一定距离并精确定位时,一般来说都应包括“启动-加速-高速运行(匀速)-减速-停止”五个阶段,通常为梯形速度特性,如果移动的距离很短则采用三角形 速度特性。 2、基于打印机并行接口的步进电机运动控制原理 采用PC机并行接口进行步进控制时,计算机与步进电机驱动器之间只需两条控制线,一条用来发出时钟脉冲串,另一条用来发出方向电平信号。所以,在这种控制中,驱动器中必须含有环型分配器,对电机的各项励磁的分配及转换顺序都由环型分配器来完成。系统向并行口地址按电动机的转速要求发出相应周期间隔的脉冲,如恒定周期、周期递减或递增等。由此可方便的对电动机转速控制。方向电平控制线可实现对电动机方向的控制,电平为低时环型分配器按正方向进行脉冲分配,电机正转。反之,电机逆转。 三、实验步骤: 按实验要求将步进电机与驱动器,电源的连线连起来,驱动器和打印机口的连线连起来,注意不要连错; 清楚打印机口地址,理解打印机的数据位,打印机口的数据位共8位,本实验共利用打印机数据位中的两位来控制步进电机的方向和速度。 D0 D1 D2 D3 D4 D5 D6 D7 步进电机的脉冲控制位 没有用 步进电机的方向控制位 没有用 没有用 没有用 没有用 没有用 例如下面利用VB语言来控制步进电机的程序说明: Call outdata(H378,0) //此函数是对打印机口的数据位D0写0 For j = 1 To q Next j //这是一个空循环,起到一个延时的作用,q的大小即是决定脉冲周期的长短 Call outdata(H378, 1) //此函数是对打印机口的数据位写1 编完软件后,运行软件。打印机的2-9脚分别对应打印机数据线的D0-D7,如果是利用打印机D0发脉冲,利用示波器的正端接打印机线的另一端的2脚,负端接打印机线的另一端的18脚(地线),观察脉冲的频率是多大,如果看不到脉冲信号,试着增大q的值,然后再观察是否有脉冲,通过对步进电机改变方向,利用万用表的正端接打印机线的另一端的4脚,负端接18脚,观察电平的变化。如果信号正确就可以把2脚和4脚分别接到步进电机驱动器的脉冲输入端和方向输入端,打印机的管脚如下图所示: 四、实验程序编制说明: Private Sub Command1_Click() Dim i As Long Dim j As Long IsStop = False Do While IsStop = False If Option1.Value = True Then Call outdata(ptraddress, 0) 相当输入H000第二脚,数据位0位为0也就是停止电机 For j = 1 To 10000 - Val(Combo1.Text) 延时打开电机 Next j Call outdata(ptraddress, 1) 输入001数据位第二位为方向位 ElseIf Option2.Value = True Then Call outdata(ptraddress, 4) 输入100停止 For j = 1 To 10000 - Val(Combo1.Text) Next j Call outdata(ptraddress, 5) 输入101启动电机 End If runstate = True DoEvents Loop End Sub 五、思考题: 从原理上来说,如

您可能关注的文档

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档