C#是推出.NET的时候一并诞生的,可以说是单就语言技术、风格、严谨等特点上来说,它是编程语言中最为优秀的一种语言,甚至由它而引发出计算机语言界中的多种新的规范和特征。我们知道多数C#编译器都只是运作于.NET平台上的,但并不是说C#只能运作于.NET平台上,只要有人愿意,就可以开发一个运作于非.NET平台上的C#编译器。只是C#还有一个很特殊的问题,即它仍然在不断的发展中,新的语言细节不断地推出,除了设计该语言的微软,其他公司很难有这个实力开发其它平台的C#开发环境。
真正意义上的跨平台是指类似于Java虚拟机,.NET平台这样的中间层产品,或者是某种软件,有多种客户端在不同的平台上但是却都可以工作。简言之,跨平台是指一种软件产品的特性。而语言只是一种开发产品的工具。你可以用这种工具去开发一个跨平台的产品,可以用多种不同的工具,却只开发出同样一种平台的产品。C#优势地位毫无悬念,智能,强大[20]。而且这个语言目前仍然还在进化中,而很多其他语言已经基本上成型,以后不再会有什么改进了。C#锻炼人的逻辑思文的能力最好。虽然它目前仍然主要被绑在.NET平台中使用,但是从软件开发者角度而言,开发一款软件,C#是开发效率最高的一种选择,这也就是为什么本次系统设计选用C#作为控制语言的一种选择。
1.4 本章小结
本次系统设计主要在PC机即上位机上进行步进电机的控制,利用microsoft visual studio平台,结合C#中的一些内置函数,编写程序实现步进电机的点动控制、连续控制、实时坐标的获取、绝对坐标以及相对坐标的获取、正反转以及转速控制等,同时利用串口通信,将命令发送至单片机当中,翻译成单片机语言后,然后利用单片机命令驱动步进电机实现相应的控制。上位机向单片机发送具体信息的同时,单片机也能向上位机发送步进电机的一些实时参数,如电机的实时坐标等,这些数据的来往都是通过串行通信的RS-232接口完成的,它将PC机的并行数据串行发送至单片机,再生成并行数据,同时也将单片机的并行数据串行发送至上位机,实现了双方向的串行通信。本次设计的主要项目是上位机控制台的生成,控制台中嵌入各个具体的功能以及选项,这些选项与功能的实现都是本次系统控制的主要内容。
2 步进电机
2.1步进电机的概述
步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电动机有多相方波脉冲驱动,用途很广。本次设计使用的步进电机为二相步进电机,其最小步进角度为1.8。使用多相步进电动机时,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组[2]。每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。
正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响[1]。由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。
2.2 步进电机的原理分析
步进电机是将电脉冲或线脉冲转换为角位移的开环控制元件,当步进驱动器收到一个脉冲信号的时候,它就驱动步进电机按照设定的方向转过一个固定的角度(即步进角),可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的[7]。 步进电机驱动控制软件设计+文献综述(3):http://www.751com.cn/shuxue/lunwen_5259.html