摘要:本文主要介绍了组态软件和PCL839在步进电机控制中的应用,同时也说明了如何计算步进电机的频率。
关键词:步进 PCL839 组态软件
Abstract: The paper mainly introduces the application of Advantech PCL839 and KingView in Step Motor Control. Besides, it shows how to calculate the Frequency of Step Motor.
Keywords: Step, PCL839 ,Configuration Software
1、 引言
步进电机是一种将电能转变为动能的基本部件,它在多种机电设备中得到了广泛地应用,如工业生产中的各种机床、生产线上的传送带、农业生产中的灌溉机械、粉碎机等。如今,随着控制技术的发展与完善,对步进电机的控制方法也层出不穷,从早期纯粹依赖电路设计控制,到如今的计算机、PLC等先进控制方式的涌现,大大提供了步进电机的控制精度和设计的简单性、灵活性,因而也促进了步进电机在生产中获得更加广泛地应用。
晶体生长控制系统是一种高精度的控制系统,其中对晶体生长过程中坩埚的升降、旋转和耔晶杆的升降的控制尤为重要。同时,晶体生长控制系统具有控制速度范围要求广、低速段的速度要求低(一般低速与高速之比超过10000倍以上)等特点。因此,在设计这种控制系统时,就要充分利用硬件和软件资源,来达到良好的控制功能。作者在为台湾某大学设计的晶体生长控制系统中,就利用了研华PCL839三轴步进电机控制卡、研祥多功能板卡711B和北京亚控自动化公司的组态王6.03软件来达到精确的控制精度。
2、 控制系统组成
由于晶体生长控制系统中对步进电机的控制提出了很高的要求,其中对两台步进电机的控制精度要求在低速达到0.01mm/Hr——-10mm/Hr(Hr代表小时),在高速达到10—1000mm/Hr。对于要求如此高的控制系统,作者设计了如下的控制系统硬件配置图:
图1 控制系统硬件配置图
系统主要由研华PCL839步进控制卡、研祥711B及端子板785、782、880和减速器、步进电机驱动器所构成。其中711B主要是通过端子板输入开关量、模拟量和输出开关量来实现报警显示、A/D转换和步进驱动器控制输出等功能;PCL839是本系统的关键设备,因为它通过软件设置脉冲数量(频率)和电机运转方向,去控制步进电机的运行和停止。PCL839是一块具有三路独立步进控制功能的运动控制卡,其脉冲数可以设置在1-16382PPS(每秒脉冲数),而且可以控制步进电机的正反向运转。
3、 脉冲数的计算
步进电机控制中脉冲数(频率)的计算是关键,通过设置步进控制卡的频率就可以达到改变步进电机的运行速度。而脉冲数(频率)的计算涉及到螺距(步进电机转一圈所行走的直线距离)、设定的速度等,其计算可以按如下的步骤进行:
①、 假设步进电机每个脉冲转过的角度为np
②、 确定电机旋转一周所需要的脉冲数值nr,则 nr=360/np;
③、 如果步进电机驱动器存在细分nc,则nr=360*nc/np;
④、 假设电机旋转一周,运动的直线距离为D(mm),则运动每毫米需要的脉冲数nt,nt=360*nc/np/D
⑤、 若存在减速器且假设减速比为nb,则nt=360*nc*nb/np/D
⑥、 假设要求达到的速度为V(mm/Hr)时,则可以计算出脉冲周期Td为Td=3600/nt/V=10*np*D/nc/nb/V
⑦、 可以计算出要求达到V(mm/Hr)时,其频率 f=1/Td=nc*nb*V/10/np/D,式中各参数的意义如下: nc―――驱动器细分数
nb―――机械减速比
V―――速度,单位mm/Hr
np―――每个脉冲,步进电机运动的角度,单位度
D――――步进电机旋转一周所运行的直线距离,单位mm
现假设D=5, np=1.8, nc=200, nb=50,要求达到0.01mm/Hr的速度,则可以计算出f=200*50*0.01/10/1.8/5≈1,即在步进控制卡的频率为1HZ时,速度可以达到0.01mm/Hr。由此就可以控制步进电机了。
4、 组态软件控制步进电机的实现
组态软件在冶金、环保、化工、电力等领域都有不少的应用实例,大大提高了工业系统的自动化水平。而组态软件控制步进电机主要是通过控件(OCX)和控件函数来实现。北京亚控自动化公司提供的PCL839.OCX控件,就是用来控制研华PCL839步进电机控制卡的控件,该控件提供的主要函数有:
①、 设置步进电机控制卡地址函数,SetAddr(long Addr),其中Addr为地址数值,十进制表示;
②、 停止通道脉冲输出函数,MStop(short Chan),chan为通道号,数值为1-7分别代表通道1,2,3,1&2,1&3,2&3,1&2&3;
③、 通道模式设置函数,SetMode(short Chan, short Mode),chan取值同MStop函数,Mode取值为0或1,分别代表脉冲、方向控制和正负脉冲控制;
④、 检测通道是否有脉冲输出函数,CheckBusy(),函数返回值中位0-2分别代表3个通道的状态,1为有脉冲输出,0为空闲;
⑤、 脉冲上下限设置函数,SetSpeed(short Chan, long LowSpeed, long HighSpeed, long Accelerate),chan的取值同MStop函数,LowSpeed代表脉冲下限,取值1-16382,HighSpeed代表脉冲上限,取值1-16382,Accelerate代表脉冲的加速倍速,取值为2-1023;
⑥、 设置连续脉冲输出函数,CMove(short Chan, long Dir1, long Speed1, long Dir2, long Speed2, long Dir3, long Speed3),chan取值同MStop函数,Dir1,Dir2,Dir3分别用以设置3个通道步进电机的方向,取值为0或1,Speed1,Speed2,Speed3代表连续脉冲输出是以脉冲高限为标准还是以低限为标准,0以低限为标准,1以高限为标准;
⑦、 设置单步脉冲函数,PMove(short Chan, long dir1, long Speed1, long Step1, long Dir2, long Speed2, long Step2, long Dir3, long Speed3, long Step3),Chan,dir1,dir2,dir3,speed1,speed2,speed3参数意义和取值同CMove函数,Step1,Step2,Step3分别代表每个通道每执行一次该函数所要走的脉冲数,取值为1-16382。
利用组态控件和函数来进行实际的编程时,是首先在画面上创建一个控件实例,如PCL839,然后在按钮的动画链接或其他位置中输入如下的语句:
PCL839.SetAddr(512); //设置板卡的地址为200H
PCL839.SetMode(1,1); //设置通道1的模式为正负脉冲方式
PCL839.SetSpeed(1,1,1100,2); //设置通道1的低限脉冲为1,高限脉冲为1100,加速倍速为2
PCL839.CMove(1,1,1,0,0,0,0); //设置通道1脉冲输出,并且以高限为标准
在利用控件函数时一定要注意大小写,函数区分大小写。
另外,由于系统的速度跨度比较大,加入了50:1的减速器(此时的细分数为10000)用以去除在低速情况下因间隔发脉冲所带来的抖动现象,保证PCL839脉冲发生器在最低频率1HZ的情况下可以达到0.01mm/Hr的控制速度,但同时又产生了高速阶段达不到要求的问题,为此需要在高速的情况下去除步进电机驱动器细分功能(此时细分数仅为50)。该功能通过使用软件判断和输出开关量控制信号给步进电机驱动器来实现。
5、 结论
通过使用研华PCL839和组态软件来对步进电机进行控制,不仅可以利用软件来控制步进电机,提高控制精度,而且可以方便的进行速度更改,显示等操作,可以极大地方便现场操作,提供控制系统的自动化水平。
作者简介:
翁根春 男,1977年4月,汉族,硕士研究生,工业自动化专业,北京华利嘉环境工程技术公司自控事业部工程师,现主要从事环保及其他领域的工业自动化项目设计工作。