摘要:复杂的运动控制系统往往由多个步进电机构成,在功能组件相同的情况下,为了能够复用相同的组件控制功能,提出了一种基于复杂可编程逻辑器件(cPLD)的步进电机群分控制系统的设计。以4个组件每个细件8个电机为例,介绍了控制系统原理,详细阐述了控制系统的硬件实现及软件设计。实际工程结果表明:该控制系统能够满足控制要求,县有简单、可靠、性价比高的特点,具有一定的工程参考价值。
关键词:步进电机:分时控制;运动控制卡
0 引 言
复杂的运动控制系统往往有多个步进电机构成,有止匕庞大的电机群各个功能组件完全相同,而同一时刻的操作对象仅仅是某一组电机,如果每组电机都采用完全相同而且完全独立的控制方案,那势必将造成极大浪费。鉴于此,笔者提出了一种利用复杂可编程逻辑器件(Complex Program—mabk L0gic Device,cPLD)的解决方案,能有效地分时复用控制系统,每个时刻只对需要运动的组件电机进行控制。
1 控制系统原理本文以32个电机以例,控制系统分为4个组件(每个组件的功能完伞相同),各组件都由8个小同型号的步进电机组成。控制系统总体组成如图1所示。
针对此组成有以下4种控制方案供选择。
(1)采用8个四轴运动控制卡直接控制32个驱动器,此方案控制最简单,但成本最大。
(2)采用2个旧轴运动控制卡控制8个驱动器,由控制单元控制至少128个继电器分别切换每个电机的相线。该方案对相电流较小的步进电机是可行的,但对相电流人的电机则小容易实现。
该方案需要的继电器相当多,如果都采用两相四线的步进电机,32个电机共需要128个继电器。
由于相电流较大的步进电机其反向电动势很大,保护措施做得不好则很容易烧坏继电器,此方案显然不适合大电流的步进电机。
(3)采用CPLD 对2个四轴运动控制卡的输入、输H 5信号进行分路选择切换,每个电机用各自的驱动器驱动。该方菜允分利用,运动控制卡的输入、输出信号,火大降低r丌发难度、周期和成本,而且可靠性高,是较优方案。
(4)采用现场可编程门阵列对32个驱动器进行独立控制。该方案的软什工作量较大,相当于方法3的2个四轴运动控制卡及cPLD切换电路都做在一起,采用PcT总线通信方式,其开发难度大而上上周期长,不适合短周期的工程项H。
综合比较,本文选用方案3,其控制电路结构纽成如图2所示。
计算机扩展两个PCI四轴运动控制卡,电机控制方式采用共阳檄接法。利用其中一个运动控制卡(这里称为主卡,另一个为副卡)的数字量输出口来控制cPLD 切换电路,由切换电路来选择所需要运动的组件驱动器,再由各驱动器分别驱动对应的电机;运动控制卡的脉冲、方向、脱机及限位信号通.CPLD切换电路来切换,能够实现各组件的8个电机联动插补运动及光电限位开父的切换。
需要注意的是:运动控制卡的地要单独引出来,并与cPLD 切换电路共地(卡的coM公共端与CPLD不接),cPLD切换电路的电源+5 V就是实际使用的驱动器的cOM公共端。
控制系统l一作过程如下:上电前所有的脱机信号都没置为低电半,b机处于脱机状态;电机电源接通后,将需要选择的组件脱机信号拉高,使其处于受控状态;设置运动控制k选择需要控制的组件,cPLD自动切换到相应组件的8个电机。
2控制系统硬件实现
由图2可知,控制系统的硬件由计算机、2个四轴的运动控制卡.CPLD切换电路和32个驱动器及对应的电机构成。计算机提供人机交互并与运动控制卡通信,2个运动控制卡接收计算机的指令并控制电机的驱动器及外部限位信号
2.1运动控制卡运动控制卡采用国产32位PcI总线。ADT8940-AI型号的可联动带插补功能的四轴卡,有40个数字量输入,16个数宁量输出。
2.2 CPLD切换电路
CPLD切换电路由CPLD、译码电路和分配电路封I成。
2.2.1 CPLD的选用
该控制系统分配电路占用的I/0口不超过70个,cPLD采用xILINx公司的xc95108,其IO口最大108个,可满足分配电路的使用。
2 2.2译码电路
利用运动控制k的数字量输出控制cPLD切换电路,选择当前需要的组件。四个组件的选择需要2个数字量输出口,假设为Outo和OUTI,其真值表如表l所示。
CPD译码电路如图3所示,运动控制卡的数字输出口经译码后,所选组什处于有效状态。
2.2 .3分配电路CPLD根据输入的电平信号通过分酉己电路将信号分配到所选组件上。脉冲方向分配电路如图4所示。74Hc4052足双4选l模拟丹关,根据s1 s0的状态可以使lZzjIY[O-3]之间开关切换,同时2z与2Y[0~3]开关切换。
运动控制卡其中一轴的脉冲和方向输出信号xPul一和xDRl一经过74Hc4052电f模拟开关分配至四路,每一路再经过两次施密特触发器cD4()106帮形成比较好的信号,最后对应输出给四个组件的1号电机,其余电机的脉冲方向分配电路相同。系统每一个组件有8个电机,脉冲方向分配需要8路,clPlD占用16个lO口。
在上电的瞬问即使没有发脉冲,电机也会出现走步的情况,这势必对控制精度产牛较大影响,所以系统将脱机信号(或使能信号)通过cIJLD脱机信号分配电路分配到每个组件上。当选择某一组件时,该组件的8个电机使能端自动切换到该使能信号上。CPLD脱机信号分配电路如图5所示。其他三个组件的脱机信号分配电路棚同。系统共有4个组件,每个组件的8个电机都共用一个使能信号,所以脱机信号分配电路需要4路,cPLD占用4个Io口。
原点及限位分配电路如图6所示。设组件1的3号电机其原点开关输入信号为HOME3-l。
组件1的3号电机到达原点后,原点开关的输出端HOME3-l产生一个上升沿的跳变。此跳变通过限位分配电路后输入给运动控制(通过INcOM引脚和HOME3引脚输入)。cPLD30控制HOME3一l是否要输入到卡中,当需要此限位信号分配时,cPLD30输出低电乎;否则输出高电平。每个限位开关都需要一个分配电路,故若每个电机都使用一个限位开关,则cPLD占用32个IO口。
控制系统软件采用VerilogHDI语言编写,在xILINx公司的TsE软件中设计仿真下载。程序包括:(1)定义输入、输出端口;(2)程序初始化(默认选择组件1);(3)根据CPLDl/cPLDO选择分配。
3结 语
采用cPLD控制步进电机群分时复用的方法已成功应用到某大型工程项目中,试验表明该控制系统能够满足控制要求,而且具有简译、可靠、性价比高等优点,具有一定的工程参考价值。
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |