高躍武等
摘 要:文章論述了在工業控制廣泛應用的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-),男,山東理工大學機械工程學院教授、博士,研究生導師,研究方向:數控技術與裝備,機電一體化技術。