高跃武等
摘 要:文章论述了在工业控制广泛应用的PCI-1750研华控制卡的功能,在工业控制计算机上进行安装、调试、基于VC++6.0开发环境下编程控制混合式步进电机的方法及其技术问题。
关键词:研华控制卡;控制;步进电机
随着计算机的应用和普及,基于PC工业控制计算机数据采集和测控系统得到了快速发展,用户可以通过系列研华测控卡直接将外围硬件设备的数据采集到计算机或直接控制外部设备,文章论述用PCI-1750测控卡控制混合式步进电机运行的接口电路和编程控制。
1 PCI-1750数据采集和控制卡简介
PCI-1750数据采集和控制卡是一款PCI总线的开关量卡,完全符合工业总线的Rev2.1标准。可以提供16路光电隔离输出通道和16路光电隔离输入通道,另外,还带有一个具有输入信号的光电隔离量计数器/定时器。计算机 I/O端口与板卡的每个I/O通道相互对应,故对其编程较为便捷容易。支持干接点,且带有2500VDC隔离保护,适合需要高电压保护地工业场所内。
PCI-1750数据采集卡提供一个DB-37型孔型接口,管脚图如图1所示,图示显示了输入输出通道的绝对地址Port口分布情况。
1.1 外设开关量输入计算机连接简述
如图1所示PCI-1750卡有“输入PORT0口和输入PORT1口”两个输入口地址,每个输入口地址各有IDI0~IDI7八个数字量输入位,两个输入口地址共有16位输入,卡子内部扛干扰电路已经设计好,可外部开关量TTL信号直接与这16位联接读入计算机。
1.2 用开关量输出控制外设接口连接
如图1所示PCI-1750卡有“输出PORT0口和输出PORT1口”两个输入口地址,每个输入口地址各有IDI0~IDI7八个数字量输入位,两个输入口地址共有16位输入,卡子内部扛干扰电路已经设计好,计算机程序向外设输出TTL信号即可控制外设,案例见图2所示控制混合式步进电机。
1.3 中断功能
如图1所示,PCI-1750具有很强的中断处理能力,四个输入通道(IDI0、IDI4、IDI8、IDI12)和定时器1、计数器2连接到中断电路,中断控制寄存器控制这六个信号产生中断,IDI0、IDI4和定时器1连接到中断口0,IDI8、IDI12和计数器2连接到中断口1,这两个中断请求可同時发生,根据各自的中断服务程序(ISR),处理各个中断请求。
2 用PCI-1750研华数据采集卡控制混合式步进电机案例
2.1 控制接线
如图2所示为用PCI-1750控制卡通过MB4501驱动器控制混合式步进电机接线图,IDO0和IDO1分别为图1上“输出Port0口的IDO0”和“输出Port1口的IDO1”。
接线方式分为共阳极和共阴极两种,共阳极是把脉冲位和方向位的正极接上+5V的正极,负极接到控制卡的相应位,由高低电平控制;共阴极是把脉冲位和方向位的负极接上+5V的负极,正极接到控制卡的相应位,由高低电平控制。
图2 用PCI1750控制卡通过MB4501驱动器控制混合式步进电机
此实验选取57HS7630A4两相步进电机及与之对应MB450A型混合式步进电机驱动器,步进电机步距角和相电流参照驱动器上说明设置拨码开关实现。本次实验研究共阳极的接线,5V电源借助计算机上电源接口,驱动器电源为输入220V交流电输出24V直流电,D1、D2位的信号由采集卡发出的高低电平控制,使能位不接,电机上的黑绿线接到驱动器上的A+和A-,红蓝线接到B+和B-。
控制系统提供给驱动器的信号主要有以下两路:
(1)步进脉冲信号PUL:发出一个脉冲信号步进电机就旋转一个角度——步距角,发出的脉冲信号的个数就是步进电机的转数,脉冲信号的频率正比于步进电机的转速。系统控制脉冲信号就可以调节电机转速或使其定位。
(2)方向电平信号DIP:这一路信号决定步进电机的旋转方向,正转还是反转。有两种换向方式:单脉冲换向方式和双脉冲换向方式。单脉冲换向方式就是信号为高电平时,电机顺时针转动,即为正转;信号为低电平时,电机逆时针转动,即为反转。双脉冲换向方式是驱动器接受两路脉冲信号,当其中有一路有信号时,电机正转;当另一路有信号时,电机反转。可以通过设置驱动器上的拨码开关来切换这两种换向方式。次案例信号是由单脉冲信号控制。
2.2 PCI-1750测控卡设备安装、运行与关闭
研华系列产品可以在VC、VB、Delphi、Borland C、C++ Builder等开发环境下编程,用户只要装好研华的驱动程序就可以直接在开发环境下进行编程。
系列研华卡计算机测控总体流程主要分为软件方式采集、中断采集和DMA采集三类,它们的整体软件编程流程图是相同的,如图3所示。
2.3 编程控制
本系统采用 C++Builder6.0作为软件开发平台,调用程序步骤如下:
(1)使用研华驱动编程必须首先安装Device Manager 和32bitDLL驱动。
(2)在调用板卡内部函数之前,首先要添加头文件及静态库文件,添加头文件(Driver.h)可以直接添加程序代码:
#include “ Driver.h”
添加静态库文件:从菜单中选择工程,然后选择添加到工程,在安装文件目录里找到adsapi32bcb.lib文件,添加到工程,Driver.h是用户应用程序和板卡函数库之间的桥梁和纽带,Adsapi32bcb.lib是对库函数封装编译生成的功能模块。
(3)对步进电机进行正转、反转、停转的控制主要使用的函数为正转函数:
ULONG DeviceNum=0;//表示设备号
LONG DriverHandle;//返回设备句柄,指向要操作的设备
PT_DioWriteBit ptDioWriteBit;
DRV_DeviceOpen(DeviceNum,&DriverHandle);
ptDioWriteBit.port=1;//选输出port1端口
ptDioWriteBit.bit=1;
ptDioWriteBit.state=0x1; //高电平
DRV_DioWriteBit(DriverHandle,&ptDioWriteBit); //使用port1口第1位控制方向
ptDioWriteBit.port=0;//選输出port0端口
ptDioWriteBit.bit=0;
ptDioWriteBit.state=0x1;//高电平
DRV_DioWriteBit(DriverHandle,&ptDioWriteBit); //使用port0口第0位控制脉冲
Sleep(1);
ptDioWriteBit.port=0; //port口地址00;
ptDioWriteBit.bit=0;
ptDioWriteBit.state=0x0; //低电平形成脉冲
DRV_DioWriteBit(DriverHandle,&ptDioWriteBit);//
Sleep(1);
DRV_DeviceClose(&DriverHandle); //关闭设备,释放占用的资源。
步进电机反转函数:
以上定义的变量都一样,在这里把向控制方向位的脉冲信号改为低电平信号即可:
ptDioWriteBit.port=1;//选输出port1端口
ptDioWriteBit.bit=1;
ptDioWriteBit.state=0x0;//低电平
3 驱动器使能端信号的应用
脱机信号ENBL:这路信号不是必须要用的,是选用信号。经实验观察,ENBL+端口接为高电平或者悬空不接,驱动器和电机都会正常运转;ENBL+端口接高电平,ENBL-接低电平,电机不转,驱动器不报警;只接ENBL-为低电平,驱动器报警。
4 结束语
文章介绍了PCI-1750采集卡的接口信息、程序流程以及与驱动器、电机的接线方法,通过在试验中的尝试和检测,整个系统运行平稳,满足在实践中对步进电机的控制。这套系统的设计方法和步骤,对开发数据采集系统的设计和研制也会有很好的参考价值。
参考文献
[1]姜培昌,卢军霞,赵庆志.基于PCI-1750数据采集卡的步进电机控制系统设计[J].山东理工大学学报,2010,24(1):93-95.
[2]郑雪娜,王洪诚,毕珈瑞,等.PCI总线技术在仪表检测控制系统中的应用[J].物联网技术,2012(8):59-62.
作者简介:高跃武(1987-),男,山东理工大学机械工程学院机械制造及其自动化学科,硕士研究生,研究方向:数控技术与装备。
*通讯作者:赵庆志(1962-),男,山东理工大学机械工程学院教授、博士,研究生导师,研究方向:数控技术与装备,机电一体化技术。