步進電機是一種將電脈沖信號轉(zhuǎn)換為線位移或角位移的電機,但步進電機的控制通常都采用匯編語言或C語言進行軟件開發(fā),本文結(jié)合SC3步進電機控制器及平移臺的控制開發(fā)為例,介紹了一種如何在Windows平臺下利用Visual C++6.0提供的串行通信控件MSComm來實現(xiàn)PC機與步進電機控制器之間的數(shù)據(jù)通訊,最終實現(xiàn)由PC機直接控制步進電機的方法,并詳細介紹了編寫串行通信程序的基本步驟和方法。調(diào)試結(jié)果表明:設計的控制程序簡單、易懂,工作可靠,且具有友好的人機交互界面。
步進電機是一種將電脈沖轉(zhuǎn)化為角位移的機電式數(shù)模轉(zhuǎn)換器,在控制系統(tǒng)中具有十分廣泛的用途,但傳統(tǒng)的步進電機的控制通常都采用匯編語言或C語言進行軟件開發(fā),本文利用VC++提供的串行通信控件MSComm實現(xiàn)PC機與步進電機控制器之間的串行通信。與 DOS下串行通信程序不同的是,Windows不提倡應用程序直接控制硬件,而是通過Windows操作系統(tǒng)提供的設備驅(qū)動程序來進行數(shù)據(jù)傳送。串行口在Win32中是作為文件來進行處理的,而不是直接對端口進行操作,對于串行通信,Win32提供了相應的文件I/O函數(shù)與通信函數(shù),通過了解這些函數(shù)的使用,可以編制出符合不同需要的通信程序。
實現(xiàn)串行通信一般有3種方法:使用VC++提供的串行通信控件MSComm;在單線程中實現(xiàn)自定義的串口通信類;多線程下實現(xiàn)串行通信。結(jié)合實際情況,本系統(tǒng)采用VC++提供的串行通信控件MSComm來進行軟件編程,可以很方便地管理與控制計算機串口。
1、系統(tǒng)組成
由PC機控制步進電動機的系統(tǒng)如圖1所示。
[center][img]200611512413527200.gif[/img]
圖1 PC機控制步進電機系統(tǒng)框圖[/center]
本系統(tǒng)的電機控制采用通用的RS 232串口的異步通信。由于RS 232早期是為促進公用電話網(wǎng)絡進行數(shù)據(jù)通信而制定的標準,其邏輯電平對地是對稱的,與TTL、MOS邏輯電平完全不同。邏輯0電平規(guī)定為+5~+15 V之間,邏輯1電平規(guī)定為-5~-15 V之間,因此,RS 232驅(qū)動器與TTL電平連接必須經(jīng)過電平轉(zhuǎn)換。
2、控制軟硬件的技術參數(shù)
本系統(tǒng)采用卓立漢光儀器有限公司生產(chǎn)的SC3步進電機控制器及平移臺,實現(xiàn)平移臺的三維控制(x,y,z)。利用RS 232串口異步通信完成對步進電機的單步和連續(xù)移動控制,并且把電機的實際位置數(shù)據(jù)反饋給PC機處理。SCHNEIDER ATV71HD18N4Z 變頻器
西門子 6ES7 431-1KF00-0AB0
西門子 6ES7 431-1KF00-0AB0
SIEMENS 6FX2007-1AC04 手持單元
英飛凌 FZ900R12KE4 模塊
施耐德 XS2M30MA250 開關
LIEBERT 416761G-3REV10 板卡
施耐德 GV2-ME16 C 斷路器
發(fā)那科 A03B-0819-C051 模塊
發(fā)那科 A06B-6140-H026 電源模塊
發(fā)那科 A06B-6117-H208 驅(qū)動器
A-B 1734-AENT 模塊
A-B 1734-485ASC 模塊
FAULHABER 3557K024CR 電機
A-B 150-F480NBD 軟啟動器
西門子 1FK7063-2AF71-1RH0 電機
EPCOS B43564-S9488-M1 電容器
Schneider TSXDEY64D2K 模塊
Schneider TSXASY800 模塊
ABB A40-30-01(AC380V) 接觸器
MATROX METEOR2-MC/4 影像卡
Siemens 6ES7141-1BF11-0XB0 模塊
西門子 6ES7141-1BF11-0XB0 模塊
SCHNEIDER CAD326? M7220 VAC 繼電器
發(fā)那科 A02B-0323-K102 電池
SIEMENS 6AV6647-0AD11-3AX0 觸摸屏
SIEMENS 6EP1337-3BA00 電源
西門子 6GK7443-5DX04-0XE0 模塊
富士 UG221H-SR4 觸摸屏
步進 KH42JM2-901 電機
SICK AG661-466109000000 編碼器
SIEMENS 6ES7212-1BB23-0XB0 模塊
SIEMENS 6AV6642-0AA11-0AX1 屏