摘要:本文主要介紹了組態軟件和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、 脈沖數的計算步進電機控制中脈沖數(頻率)的計算是關鍵,通過設置步進控制卡的頻率就可以達到改變步進電機的運行速度。而脈沖數(頻率)的計算涉及到螺距(步進電機轉一圈所行走的直線距離)、設定的速度等,其計算可以按如下的步驟進行:
①、 假設步進電機每個脈沖轉過的角度為n
p②、 確定電機旋轉一周所需要的脈沖數值n
r,則 n
r=360/n
p;
③、 如果步進電機驅動器存在細分nc,則n
r=360*n
c/n
p;
④、 假設電機旋轉一周,運動的直線距離為D(mm),則運動每毫米需要的脈沖數nt,n
t=360*n
c/n
p/D
⑤、 若存在減速器且假設減速比為nb,則n
t=360*n
c*n
b/n
p/D
⑥、 假設要求達到的速度為V(mm/Hr)時,則可以計算出脈沖周期Td為T
d=3600/n
t/V=10*n
p*D/n
c/n
b/V
⑦、 可以計算出要求達到V(mm/Hr)時,其頻率 f=1/Td=n
c*n
b*V/10/n
p/D,式中各參數的意義如下: n
c―――驅動器細分數
n
b―――機械減速比
V―――速度,單位mm/Hr
n
p―――每個脈沖,步進電機運動的角度,單位度
D――――步進電機旋轉一周所運行的直線距離,單位mm
現假設D=5, n
p=1.8, n
c=200, n
b=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月,漢族,碩士研究生,工業自動化專業,北京華利嘉環境工程技術公司自控事業部工程師,現主要從事環保及其他領域的工業自動化項目設計工作。