1 廖正棋龍華科技大學工程技術研究所研究生 1 2 2,* 蔡瓊星龍華科技大學機械工程系助理教授 摘要本文研究設計一個低成本控制器, 利用 4 個低價 8051 系列 CPU 組成, 其中主 8051 透過 RS232C 與主控電腦連接, 可接受主控電腦指令作動 主 8051 CPU 只做指令解碼及定位命令傳送 定位運算及執行利用另外 3 個 8051 CPU 來處理 (1 個 8051 CPU 處理 1 軸 ) 科技進步, 自動化所需的精度 速度及穩定度要求越嚴苛 本研究低成本運動控制器有脈波信號輸出 DIO 界面電路及二軸同動功能 本文主要目的為研究一個簡易運動控制器, 利用低價的 8051 CPU 接受電腦指令, 處理運動演算, 產生運動指令 ( 如定位 定速 寸動及二軸同動 ), 要求運動資訊, 調整速度及加減速 8051 CPU 運動控制器利用組合語言完成, 並在主控電腦完成一個操控軟體 關鍵詞 : 運動控制器 二軸同動 組合語言 1. 前言 運動控制 是指廣泛的應用多種科技, 將 一受控制的力, 形成有效的運動, 而這個控制的力是施加於機電系統上 運動控制 就是控制機械運動情形, 如定速控制 定位控制 規跡控制 扭力控制等 產業自動化可以提升生產速度 降低生產成本 改善生產品質 增強市場競爭力 IC 半導體生產技術的進步使得體積愈小功能愈強, 使得高速 精密的控制性能都可實現 產業自動化是必然的趨勢, 機械產業的競爭除機械設備本體, 控制器及軟體的結合也非常重要 故控制器是非常重要且有廣大市場的產品, 故學術界及工業界皆有相當投入 [1-5] 本研究主題為設計一個低價運動控制器, 如圖 1 以大眾化 8051 CPU 為核心, 主 8051 CPU 負責指令接收及控制結果傳送, 主 8051 CPU 把運動指令解碼後利用匯流排傳送到另外 3 個獨立 8051 CPU 晶片,8051 CPU 進行控制各種加減速運動 二軸同動運動與定位控制 控制指令規劃參考美國 Galil 運動控制卡 [6] 主 8051 CPU 透過 RS232 介面與 PC 通訊,PC 透過 RS232 介面下命令給 8051 執行, 也可透過此介面讀取運動控制器資料, 達到監控目的 本研究由於有 PC 監控功能故需對控制功能作虛擬機械的函式庫開發, 然後將函式庫整合成人機介面, 並針對各運動函數討論其實驗結果和功能的應用性 此運動控制器最多可用於 3 軸伺服馬達 ( 步進馬達 ) 的控制, 使用者不需要作複雜程式設計, 與運動規劃, 只須利用函式庫直接呼叫函數, 即可下達運動命令 控制的力本研究主要研究發展一個低價運動控制器, 能大量應用於產業機械自動化, 提升產業精密度及生產速度 2. 運動控制器電路設計控制器電路設計如圖 2., 主 8051 CPU 35
龍華科技大學學報第三十二期,2012.06 透過 MAX232 IC 接收 PC 傳送過來的指令 指令解碼後利用 8051 CPU 的 INT0 中斷及 P1 IO 與其他三個 CPU 形成握手功能,P0 及 P2 傳送指令及資料 ATF16V8B PLD 電路及 INT1 中斷設計為二軸同動信號控制 軸控 8051 CPU 的 P1 可規劃成 IO 運動控制器若須有獨立動作能力, 可加上 EEPROM 來儲存控制器程式及資料 圖 2.U1 為主 8051 CPU,U2 為 X 軸控制 CPU,U3 及 U4 分別為 Y 與 Z 軸控制 CPU 3.PC 與主 8051 之通訊規範 PC 與主 8051 之通訊規範設定為 9600,N,8,1 指令範例如下: %1# SPX HHHH CHR$(13) (1) 其中 %1#..指令開始前使用 SPX..指令 圖 1. 運動控制器系統方塊圖 圖 2. 系統電路圖 36
HHHH..指令資料, 一個 H 代表一個 16 進位數值 CHR$(13)..指令結束, 在主 8051 CPU 程式中是使用 RS232 中斷把 UART( 非同步式串列介面 Universal Asynchronous Receiver Transmitter) 接收資料先放置在暫存器中, 等到接收到 CHR$(13) 這個字元再對指令進行解碼執行 指令說明於表 1. 表 1. PC 指令指令資料説明 BGX 無 X 軸啟動 STY 無 Y 軸停止 JPZ 無 Z 軸正方向寸動 SPX HHHH X 軸速度 JMX 無 X 軸負方向寸動 ACY HHHH Y 軸加減速 PRZ ±HHHHHH Z 軸定位值 DXY ±HHHHHH 二軸同動定位,X 軸為主,Y 軸為輔註 : 表一 XYZ 是可以互換 4 主 8051 與軸控 CPU 之通訊規範主 8051 與三個軸控 CPU 使用 P2 及 P0 來傳送指令 (P2) 及資料 (P0),8051 的 IO 都是雙向的, 不用特別設定便可自由使用成輸入或輸出, 要當輸入使用時只要把輸出設定為 "1",IO 便成為高阻抗, 所以雖然 4 個 CPU 的 P2 及 P0 都連接在一起, 但當其中一個 CPU 輸出資料另一個讀取時不會受另外 2 個 CPU 影響 主 8051 與軸控 CPU 之間以 2 個 IO 相連形成資料傳遞的握手功能, 以主 8051 與 X 軸 CPU 為例, 主 8051CPU 先把指令及資料輸出到 P2 及 P0, 再從 P1.0 輸出 1 個低準位信號去觸發 X 軸 CPU 的 INT0 負緣中斷,X 軸 CPU 中斷副程式讀取 P2 及 P0 資 料再從 P3.0 回送 1 個低準位信號到主 CPU P1.1, 主 8051 CPU 收到後便完成這次資料 傳送,X 軸 CPU 此時便可針對讀取資料作 指令解碼及執行 表 2. 軸控 CPU 指令範例 P2 P0 説明 50H 無 啟動 49H 無 停止 10H 無 正方向寸動 11H 無 負方向寸動 80H 82H HH 定位值 83H 0 or 1 定位 ± 值 90H---91H HH 加減速值 98H 99H HH 速度值 88H 89H HH 同動定位值 8AH 0 or 1 同動定位 ± 值 8BH 無 同動被動軸 表 2. P2 的 50H 代表 16 進位 50 值,P0 的 HH 代表 2 個未定 16 進位值 圖 3. 為本實驗之機械系統, 機械系統 有效行程為 550mm-680mm-250mm, 馬達及 驅動器使用台達 AC 伺服馬達 圖 3. 三軸機械系統 三軸系統的二軸同動若考慮主從關 係, 共有 6 種不同排列方式, 如表 3 故 主 CPU 利用 3 個 DO(SA2 SA1 SA0) 透 過 PLD 來選擇馬達驅動信號流向, 主驅動 馬達接受控制指令會自行驅動, 同時送信 37
龍華科技大學學報第三十二期,2012.06 號經 PLD 傳送給選擇的從屬馬達 從屬馬 達依接收的脈波作動 表 3. SA2 SA1 SA0 及主從馬達關係 SA2 SA1 SA0 主馬達附屬馬達 0 0 0 X Y 0 0 1 X Z 0 1 0 Y X 0 1 1 Y Z 1 0 0 Z X 1 0 1 Z Y 圖 2. U5 PLD IC,SA2 SA1 SA0 3 個接腳是由主 CPU 傳送來判別主從馬達關係, 如表 3 XD YD ZD 是各軸當主馬達時所送出方向信號 XP YP ZP 是各軸當主馬達時所送出位移脈波信號 XDT YDT ZDT 是各軸當從屬馬達時所接收方向信號 XPT YPT ZPT 是各軸當從屬馬達時所接收位移脈波信號 PLD 内部布林方程式如下 : EQUATIONS XDT=/SA2*SA1*SA0*YD+SA2*/SA1*/SA0*ZD XPT=/SA2*SA1*SA0*YP+SA2*/SA1*/SA0*ZP YDT=/SA2*/SA1*/SA0*XD+SA2*/SA1*SA0*ZD YPT=/SA2*/SA1*/SA0*XP+SA2*/SA1*SA0*ZP ZDT=/SA2*/SA1*SA0*XD+/SA2*SA1*SA0*YD ZPT=/SA2*/SA1*SA0*XP+/SA2*SA1*SA0*YP 5. VB 程式指令範例說明 PC 與主 8051 傳送溝通是使用 RS232C 介紹, 操控軟體目前由 VB 寫成, 如圖 4 基本運動功能如寸動 定位等功能由按鍵直接下令, 其餘指令可直接輸入 ASCII 字串來完成 圖 4. VB 操控軟體動作範例說明如下 : 當 VB 執行指令時, 譬如説按下 Y+ 寸動鍵,PC 會傳送 "%1#JPYCHR$(13) ASCII 字串到主 8051 CPU, 主 8051 的 RS232C 是利用中斷完成,8051 收到 RS232C 資料先暫存在記憶體中直到讀取到 CHR$(13) 字元, 主 8051 收到 CHR$(13) 字元後開始作指令解碼, 解碼後發現指令為 Y 軸馬達正寸動, 主 8051 CPU 先靶指令及資料輸出到 P2 及 P0, 再利用一個 DO 去觸發 Y 軸 CPU 外部 INT0 中斷, Y 軸 CPU 接受中斷請求後, 中斷副程式讀取 P2 及 P0 資料再從 DO 回送一個低準位信號到主 CPU, 主 8051 CPU 收到後便完成這次資料傳送 Y 軸 CPU 讀取指令後解碼, 依指令執行 Y 軸馬達作動 6. 結論 8051 IC 是一個穩定 價格低廉廣泛應用於工業控制上的 CPU, 本文成功使用 8051 CPU 的外部 IO 負緣中斷及計時中斷功能, 設計一個低成本運動控制器可應用於位置控制型伺服馬達及步進馬達運動控制上, 並利用 UART 中斷功能與 PC 溝通 8051 是一個 8 位元 CPU, 雖然穩定且功能齊全, 但因已有 30 幾年歷史 (1981 年問世 ), 速度較慢約 12 至 48 時間週期才能 38
完成一個指令, 考量定位判斷及一些運算, 雖然使用 22.1184MHZ 石英晶體, 運動控制脈波輸出頻率也只能 20KHZ 以下, 此輸出頻率在步進馬達控制是恰當的但在伺服馬達或高分割微步進馬達就稍為慢些, 未來需尋求較高速 CPU 或 16 位元 CPU 以相同理論來求輸出脈波頻率上升 本文低價控制器設計研究使我們更瞭解 8051 中斷的運用, 對於運動控制及二軸同動, 不同 CPU 之間指令資料傳送的握手功能皆有初步良好結果 參考文獻 [1] 張人偉, 以 DSP 為基礎具低轉速估測之感應馬達無感測驅動器 ", 國立中山大學碩士論文, 2003 [2] 張宏德, 高性能運動控制器之設計與研究, 國立台灣科技大學機械工程系碩士論文, 2000 [3] 陳岳汶," 多軸伺服步進馬達控制器之研究與開發, 國立交通大學機械工程系碩士論文, 2004 [4] 蔡明發," 以 FPGA 為基礎之交流感應馬達 SPWM 數位控制 IC 之設計 ", 明新學報 34 卷第 1 期,PP011-025,2008 [5] AT89C51 資料手冊,ATMEL [6] Galil 操作手冊及指令手冊, 美國 Galil 公司 39
龍華科技大學學報第三十二期,2012.06 Design and Study of a Lost Cost Motion Controller Jheng-Ci Liao 1 Chiung-Hsin Tsai 2 1,2 Department of Mechanical Engineering,Lunghwa University of Science and Technology, Taoyuan, Taiwan Abstract A low-cost motion controller using a PC and four 8051 microprocessors, one being the master chip and others being the slaves, is designed and study in this paper. The master receives commands from the PC, through RS232 interface. On receiving the commands, the master immediately interprets the commands and sends to three slave microprocessors for motion execution. Upon receiving the commands, the slaves execute required motion and perform the calculation for position precision control. To obtain required precision, and speed, pulse signal output, DIO interface circuit and two-axis synchronous motion capabilities are all included in the design. A software program is written and installed on PC and an assembly program is written into 8051 for control. 8051 microchips receive commands from PC, perform all required calculation for motion control and generate motion commands furthermore microchips receive feedback signals to adjust speed and maintain motion stability. Keywords: motion controller,two-axis synchronous motion contro. 40