0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于計算機串行口實現(xiàn)步進電機控制系統(tǒng)的應(yīng)用設(shè)計

電子設(shè)計 ? 來源:電子技術(shù)應(yīng)用 ? 作者:隋振,李明哲,蔡中 ? 2021-03-22 10:53 ? 次閱讀

步進電機數(shù)控機床、醫(yī)療器械、儀器儀表等自動或半自動設(shè)備中得到了廣泛應(yīng)用。用計算機控制步進電機的通常作法是采用步進控制卡,系統(tǒng)構(gòu)成如圖1所示。其中Pulse、Dir分別為控制電機的轉(zhuǎn)動步數(shù)和旋轉(zhuǎn)方向的信號;CWL(Clock Wise Limit)、CCWL(Counter Clock Wise Limit)分別為電機順、逆時針旋轉(zhuǎn)的限位信號;ORG為定位信號。

這種方法不僅成本較高,而且不便于操作。在計算機擴展槽上安裝控制卡,必需打開機箱才能操作,而且在小型平板電腦嵌入式電腦中根本沒有安裝控制卡的空間和擴展槽。將計算機串行口二次開發(fā),用于控制步進電機,代替控制卡的作用,具有成本低、操作簡單、兼容性好等優(yōu)點。

基于計算機串行口實現(xiàn)步進電機控制系統(tǒng)的應(yīng)用設(shè)計

1 RS232串行口及編程

計算機串行接口采用RS232標(biāo)準(zhǔn):規(guī)定邏輯1的電平為-3~-15V,邏輯0的電平為+3~+15V,常用的信號有8個(接口為DB9M插座時,引腳號如表1所示),其中RXD、TXD為收、發(fā)數(shù)據(jù),可與RS232串行口設(shè)備直接進行通訊,RTS、DTR、CD、DSR、CTS、BELL為控制與檢測MODEM的信號,在通訊過程中起聯(lián)絡(luò)與控制作用。數(shù)據(jù)格式有5、6、7、8位幾種,1位起始位(邏輯0),1、1.5、或2位停止位(邏輯1),可以選擇奇校驗、偶校驗和無校驗,常用波特率為2400、4800、7200、9600bps等。串行口編程方法主要有三種:硬件編程法、文件操作法、串口控件法。

表1RS232接口各引腳定義

1.1 硬件編程法

直接使用端口的輸入、輸出(I/O)函數(shù)對串行口的控制電路進行編程。適用于DOS及Windows平臺(Windows Me以前的各版本),但在基于NT技術(shù)構(gòu)建的操作系統(tǒng)(Windows NT、Windows 2000、Windows XP等)中因不允許用戶程序直接操作硬件而不適用。常用的端口輸入、輸出函數(shù)(指令)有:匯編語言的IN、OUT指令及軟中斷調(diào)用,C語言的inport( )、outport( )、inportb( )、outportb( ),C++的_inp( )、_outp( )等。計算機串行口采用Intel 8250異步串行通訊組件構(gòu)成,COM1、COM2、COM3、COM4的基地址分別為16#3F8(16進制數(shù)3F8,表示法下同)、16#2F8、16#3E8、16#2E8,波特率因子(DR)計算方法為:DR=1.8432×1000000/16B,8250編程請見參考文獻。

1.2 文件操作法

文件操作法是將串行口作為系統(tǒng)的一個文件來處理,通過對這個文件的讀、寫操作引發(fā)串口對數(shù)據(jù)進行收、發(fā)動作。這種方法在DOS、Windows、Windows NT、Windows2000及Windows XP等平臺下都能正常工作。例如在BASIC語言中可用語句:OPEN “COM1,1200,n,8,1,rs,cs,ds,cd”AS #1將串行口COM1作為文件#1進行讀寫操作。在VC++中,可用CreateFile()、BuildCommDCB()、Read()、Write()、EscapeCOMMFunction()等函數(shù)將串行口作為文件進行操作。

1.3 串口控件法

用VB及VC++編程時,可用控件對串行口進行編程。這種方法通用性好,在Windows、Windows NT、Windows2000及Windows XP等平臺下都能正常工作。在VB中,使用MSCOMM控件;在VC++下使用Microsoft Communication Control這一ActiveX類控件。串口控件使用方法請參考MSDN。

2 串行口步進電機控制器工作原理

2.1 串行口發(fā)送數(shù)據(jù)過程研究

在串行口發(fā)送數(shù)據(jù)的過程中,串行口先發(fā)送起始位(邏輯0)進行同步,接著按規(guī)定的波特率(B)從低位到高位依次發(fā)送通訊數(shù)據(jù)的各二進制位,最后發(fā)送停止位(邏輯1)。表示每個二進制位的邏輯電平在TXD端的保持時間為1/B秒。如果按8位數(shù)據(jù)位、1位停止位、無奇偶校驗方式發(fā)送數(shù)據(jù),所發(fā)送數(shù)據(jù)的二進制位是0、1交替的。例如:數(shù)據(jù)取01010101(即16進制的16#55),其發(fā)送過程如圖2中5所示,每發(fā)送一個字節(jié),在TXD端發(fā)出5個脈沖,周期T=2/B,即頻率f=B/2。改變發(fā)送數(shù)據(jù)的各二進制位,便可在TXD端得到不同的波形。圖2示出欲產(chǎn)生1~5個脈沖時應(yīng)發(fā)出的數(shù)據(jù)及對應(yīng)的波形。

2.2 串行口步進電機控制器工作原理

通過分析串行口發(fā)送數(shù)據(jù)的過程可知,從TXD端所發(fā)出的脈沖完全滿足控制步進電機的需要:

①改變發(fā)送的字節(jié)數(shù)及所發(fā)送的字節(jié)內(nèi)容,可在TXD端產(chǎn)生任意數(shù)量的脈沖;

②改變波特率可動態(tài)改變發(fā)送脈沖的頻率。

所以,可用TXD作為控制步進電機的脈沖信號(Pulse)。

串行口的DTR、RTS、CTS、DSR、CD、RI雖然在串行通訊接口中被定義為不同功能的握手信號,但通過對8250的分析可知,它們均可作為一般的I/O量使用,而且不論采用哪種編程方法,都能很方便地對這些信號進行讀寫操作。若以DTR(或RTS)作為方向控制信號(Dir),同時分別以CD、DSR、CTS、RI作為狀態(tài)檢測信號(CWL、CCWL、ORG等),則僅用一個串行口就已提供了步進電機控制器需要的所有信號。正是基于此原理,我們開發(fā)了串行口步進電機控制器,并成功應(yīng)用在板材多點成形設(shè)備的控制系統(tǒng)中。由于串行口已直接提供了控制步進電機所需的所有信號,只需將各信號由RS232電平變成TTL電平即可。常用的電平轉(zhuǎn)換器件有DS1488、DS1489、MAX232等[5]。用計算機串行口開發(fā)的步進電機控制器工作原理如圖3所示。

3 軟件設(shè)計及計算

為避免電機失步和提高電機運行速度,將步進電機運行過程分為三個階段:低速起動并加速、高速運行、減速并停止;相應(yīng)地控制脈沖也分為:升頻、高頻、降頻三段[6],如圖4所示。

在用串行口發(fā)送數(shù)據(jù)產(chǎn)生控制脈沖時,雖然通過改變所發(fā)字節(jié)內(nèi)容的辦法能產(chǎn)生1~5中間任意個數(shù)的脈沖,但若發(fā)送一個字節(jié)所產(chǎn)生的脈沖少于5個,后面接著發(fā)送數(shù)據(jù)產(chǎn)生的脈沖時,兩個字節(jié)銜接時所產(chǎn)生的脈沖頻率和占空比均會產(chǎn)生波動。為使電機運行的三個階段能平滑過渡,需要對每個階段的脈沖數(shù)量進行調(diào)整,使I、II兩個階段的步數(shù)均為5的整數(shù)倍(分別為n1×5、n2×5);將非5整數(shù)倍的步數(shù)安排在減速停車的III階段,發(fā)出脈沖數(shù)為n3×5+Δp,其中Δp=(1~4)。這可通過改變III階段所發(fā)送的最后一個字節(jié)內(nèi)容實現(xiàn)任意數(shù)量的脈沖輸出。產(chǎn)生1~4個脈沖應(yīng)發(fā)送的數(shù)據(jù)分別為16#FF、16#FB、16#F5、16#D5。

由圖4所示的電機運行過程可知,在電機運行過程中,控制脈沖的頻率f應(yīng)隨時變化以滿足電機低速起停及高速運行的需要。脈沖頻率由發(fā)送數(shù)據(jù)的波特率(B)決定,每發(fā)出一個脈沖需用兩個二進制位1和0來構(gòu)成其高、低電平,所以f=B/2,通過調(diào)整發(fā)送數(shù)據(jù)的波特率可改變所發(fā)出的控制脈沖的頻率。按常規(guī)波特率系列發(fā)送數(shù)據(jù)時所產(chǎn)生的控制脈沖頻率變化較大,不能滿足電機正常起停及調(diào)速的要求,為此計算機需按非標(biāo)準(zhǔn)的波特率發(fā)送數(shù)據(jù)以產(chǎn)生任意頻率的控制脈沖。一般在電機起動及停止階段(I、III)每發(fā)送一個字節(jié)調(diào)整一次波特率,以使電機起停得盡量平滑。

用串行口直接控制步進電機的控制軟件流程圖如圖5所示。

4 高級控制功能

對步進電機的高級控制,主要是指自動找零及多機聯(lián)動差補。

找零功能是指控制步進電機驅(qū)動運動機構(gòu),完成定位的過程。在找零時,電機一般以低速運行,當(dāng)測到ORG信號時電機停止。由于運行速度低,為簡化程序設(shè)計,每發(fā)送一個字節(jié),在TXD端可以只輸出一個脈沖,測到ORG信號則停止發(fā)送。為保證輸出脈沖的占空比為50%,發(fā)送字節(jié)定為16#F0。找零程序的設(shè)計可參照圖5進行。

差補是指控制兩臺或兩臺以上電機按規(guī)定的速比運行,進而控制執(zhí)行機構(gòu)沿規(guī)定的軌跡運行。由于一般計算機只有兩個串行口,這種方法只適用于二維差補控制。通常兩個串行口用相同的波特率進行發(fā)送,通過調(diào)整發(fā)送的字節(jié)數(shù)及發(fā)送每個字節(jié)所產(chǎn)生的脈沖個數(shù)的不同來調(diào)整兩個電機的運行速度和位置。

實際運行證明,用串行口設(shè)計的步進電機控制器具有使用方便、性能穩(wěn)定、成本低、可移植性好、不需安裝硬件設(shè)備驅(qū)動程序等優(yōu)點。

直接采用計算機串行口設(shè)計的步進電機控制控制器適用于對全數(shù)字式伺服電機進行控制。

本文對計算機串行口、并行口等資源的二次開發(fā)應(yīng)用起到了一定的借鑒作用。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6620

    瀏覽量

    110610
  • 步進電機
    +關(guān)注

    關(guān)注

    150

    文章

    3111

    瀏覽量

    147486
  • 數(shù)控機床
    +關(guān)注

    關(guān)注

    19

    文章

    781

    瀏覽量

    46416
收藏 人收藏

    評論

    相關(guān)推薦

    計算機控制系統(tǒng)--系統(tǒng)組建實現(xiàn)

    本帖最后由 CHNlyt 于 2017-8-5 20:25 編輯 計算機控制系統(tǒng)--系統(tǒng)組建實現(xiàn)[hide][/hide]
    發(fā)表于 08-05 20:24

    計算機控制系統(tǒng)的工作原理

    工業(yè)控制計算機,簡稱工業(yè)控制機 ) 來實現(xiàn)生產(chǎn)過程自動控制系統(tǒng)。2.
    發(fā)表于 09-01 06:17

    步進電機控制系統(tǒng)設(shè)計

    計算機控制技術(shù)課程設(shè)計(論文)步進電機控制系統(tǒng)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《計算機控制技術(shù)課程設(shè)計(論文)
    發(fā)表于 09-01 07:50

    基于Protues的步進電機控制系統(tǒng)設(shè)計

    微型計算機論文微型計算機論宜賓學(xué)院 物理與電子工程學(xué)院 微型計算機課程設(shè)計(論文)Yibin University電子信息科學(xué)與技術(shù)專業(yè)微型計算機課程設(shè)計報告題 目 基于 Protue
    發(fā)表于 09-10 08:03

    微型計算機控制系統(tǒng)有哪些

    微型計算機控制技術(shù)復(fù)習(xí)題答案 (4頁) 本資源提供全文預(yù)覽,點擊全文預(yù)覽即可全文預(yù)覽,如果喜歡文檔就下載吧,查找使用更方便哦!9.9 積分1. 微型計算機控制系統(tǒng)有哪些? Pg4答:操作指導(dǎo)控制系統(tǒng)
    發(fā)表于 09-10 08:44

    微型計算機控制系統(tǒng)有哪些

    資源描述1 習(xí)題集 一、問答題 1. 微型計算機控制系統(tǒng)有哪些? 參考:微型計算機控制系統(tǒng)有: (1)操作指導(dǎo)控制系統(tǒng); (2)直接數(shù)字控制系統(tǒng)(DDC) ; (3)
    發(fā)表于 09-10 07:57

    微型計算機控制系統(tǒng)概述

    第一章:微型計算機控制系統(tǒng)概述1.基本要求與基本知識點掌握計算機控制系統(tǒng)的組成及工作原理。了解計算機在工業(yè)控制中的幾種典型應(yīng)用。2.教學(xué)重點與難點本章要求同學(xué)掌握
    發(fā)表于 09-13 08:53

    計算機伺服控制系統(tǒng)設(shè)計

    綜合習(xí)題-2 計算機伺服控制系統(tǒng)設(shè)計13031205 張先炳1.已知:被控對象為一個帶有均質(zhì)圓盤負載的直流力矩電機,其伺服系統(tǒng)方框圖如下:其中,電機
    發(fā)表于 09-15 08:41

    計算機控制系統(tǒng)軟件

    計算機控制系統(tǒng)軟件只有計算機硬件的計算機叫裸機,它不能實現(xiàn)任何功能,只是計算機控制系統(tǒng)的設(shè)備基礎(chǔ);軟件是任何
    發(fā)表于 01-14 16:10 ?30次下載

    計算機控制系統(tǒng)的數(shù)學(xué)描述

    2.1 計算機控制系統(tǒng)的數(shù)學(xué)描述方法分類  一般來說,將模擬控制系統(tǒng)中的控制器的功能用計算機或數(shù)字控制裝置來
    發(fā)表于 11-24 09:43 ?0次下載

    多自由度運動計算機控制系統(tǒng)的設(shè)計

    本文介紹了由計算機步進電機控制從而實現(xiàn)多自由度運動的系統(tǒng)的設(shè)計。同時詳細介紹了
    發(fā)表于 07-21 09:54 ?12次下載

    計算機控制系統(tǒng)--系統(tǒng)組建實現(xiàn)

    計算機控制系統(tǒng)--系統(tǒng)組建實現(xiàn)
    發(fā)表于 12-11 22:52 ?0次下載

    基于步進電機集散控制系統(tǒng)設(shè)計

    控件MSComm和RS-232總線完成二者之間的通信。上位機發(fā)出控制指令,通過串行口通信,由下位機完成2臺步進電機的速度與方向控制,在上位機
    發(fā)表于 09-08 13:52 ?12次下載
    基于<b class='flag-5'>步進</b><b class='flag-5'>電機</b>集散<b class='flag-5'>控制系統(tǒng)</b>設(shè)計

    計算機串行口經(jīng)二次開發(fā)方法實現(xiàn)步進電機控制

    步進電機在數(shù)控機床、醫(yī)療器械、儀器儀表等自動或半自動設(shè)備中得到了廣泛應(yīng)用。用計算機控制步進電機的通常作法是采用
    的頭像 發(fā)表于 10-22 07:58 ?3180次閱讀
    <b class='flag-5'>計算機</b><b class='flag-5'>串行口</b>經(jīng)二次開發(fā)方法<b class='flag-5'>實現(xiàn)</b>對<b class='flag-5'>步進</b><b class='flag-5'>電機</b>的<b class='flag-5'>控制</b>

    步進電機控制系統(tǒng)設(shè)計與實現(xiàn)

    論文介紹了步進電機控制原理,利用脈沖疊加原理,以VerilogHDL為實體設(shè)計輸入,設(shè)計并實現(xiàn)了一套集成于FPGA內(nèi)部 的步進
    發(fā)表于 03-21 10:37 ?1次下載
    <b class='flag-5'>步進</b><b class='flag-5'>電機</b><b class='flag-5'>控制系統(tǒng)</b>設(shè)計與<b class='flag-5'>實現(xiàn)</b>