在本文中,将探讨如何使用C#来控制施耐德电气的M-Drive步进电机,该电机集成了编码器和控制器。这是一个系列文章的第一部分,将逐步深入到编程和应用的各个方面。
在开始之前,需要明确一点,这是个人博客,作者与施耐德电气没有任何雇佣或经济关系,也没有得到任何特殊帮助或免费硬件。
步进电机是一种相对简单的设备。虽然互联网上有大量资源描述步进电机的工作原理,但本文将主要参考施耐德的官方资料。这些博客文章很好地解释了步进电机的工作原理以及微步进是如何工作的。虽然阅读这些文章并非理解本系列文章的必须,但了解这些基础知识总是有益的。
施耐德提供了多种型号的电机。这个宝贵的硬件文档
包含了各种型号的技术规格,包括机械和电气参数。需要注意的是,不同尺寸的电机可能有不同的堆叠配置,如单层、双层、三层甚至四层。增加堆叠数量会增加电机的长度和扭矩。
在选择并获取电机后,还需要一个12-48VDC的电源。硬件文档中明确指出了电流需求。请检查硬件文档以获取正确的电源连接器和线径。
还需要一种方式通过RS422端口从PC与电机通信。再次,检查硬件文档以确定电机侧需要哪种类型的RS422连接器。至于PC,最简单的解决方案是USB到RS422的转换器。虽然施耐德销售自己的转换器,但它们价格过高且驱动支持不佳。作者推荐使用US Converters的产品,特别是单端口XS890和四端口UTS-M14。新的RS422端口在Windows中应可识别为“COM3”(或更高)。
一旦电机连接并通电,需要某种软件来与电机通信。任何终端仿真器都可以。施耐德提供了他们自己的免费IMS Terminal
程序,它工作正常,但偶尔会锁定。作者不再使用它,因为它的界面并不友好。
为了简化操作,作者编写了一个名为MDrive
的程序,其源代码可在Codeplex上找到。更多内容将在第三部分介绍。在此之前,这里有一个漂亮的屏幕截图。
在本文的最后,作者想概述一下电机的特性:
MDrive是一个配置为每转200个全步的步进电机。这意味着可以将电机轴转动的最小量是1.8度。启用微步进后,电机可以在每个全步之间定位256个位置中的任何一个。这允许每转定位51200个位置,允许将电机轴转动至小至0.007度。电机可以以慢至每秒1微步(约0.001转/分钟)的速度旋转,也可以在轻负载下以高达1000转/分钟的速度旋转。
MDrive包含一个嵌入式计算机,控制步进电机的移动,并通过RS422与外部PC通信。计算机可以接受多种命令来控制所有运动方面。有一种脚本语言可以让定义复杂的运动序列。此外,计算机还具有非易失性内存,可以用来存储程序和数据。
MDrive包含一个嵌入式磁性编码器,每转有2048个位置的分辨率。编码器允许计算机跟踪电机轴的实际运动。这意味着如果轴停止旋转,嵌入式计算机可以识别到卡滞事件并采取适当的行动。编码器还允许电机返回到一个精确的位置,即使步进电机之前卡滞或轴错过了几个步骤。另一个有趣的特性是,即使步进电机没有运行,计算机也可以检测到轴的移动。编码器还有一个索引标记,允许将轴返回到一个已知的“家”位置。