siemens x
I/O 設備

PMAC控制板在轉臺控制系統(tǒng)中的應用

2025China.cn   2008年09月08日
摘 要:各種嵌入式產品的出現導致計算機控制系統(tǒng)出現了很多新的形式,作為典型的DSP應用產品,PMAC非常適合軸類運動的控制。本文主要介紹PMAC在一個實際的飛行模擬轉臺控制系統(tǒng)中的應用方法。

關鍵詞:PMAC, 轉臺, 半實物仿真

1. 引言

  由于各種民用、軍用飛行器技術的快速發(fā)展,當今世界各國都十分重視半實物仿真技術的研究和應用,而飛行模擬轉臺是半實物仿真的重要設備之一。通常,飛行模擬轉臺提供模擬飛行器飛行姿態(tài)角和為被試件提供測試條件的功能,以便驗證全數字仿真的實驗結果并進一步優(yōu)化或改良飛行器設計方案。而對于轉臺這樣一個典型的自動控制系統(tǒng)來講,控制器扮演重要角色,其優(yōu)劣直接決定飛行仿真實驗的成敗和效果。因此,尋求簡單易用且可靠的控制器成為轉臺設計的一個重要方面。

2. 使用PMAC控制器

  隨著自動控制理論和數字計算機及其應用技術的不斷發(fā)展,使以計算機為基礎控制技術迅猛發(fā)展,被控對象規(guī)模更大,控制過程和規(guī)律也更加復雜和精密,控制方法也更加靈活多樣。在轉臺的控制系統(tǒng)中,除了用來產生輸入信號的仿真機之外,計算機還扮演了控制器的角色。在這里,計算機可以是單片機、工控機或者是PC等。根據控制器的不同形式,計算機控制系統(tǒng)分為集中式,分布式,集散式三種類型,其中集散式控制器又分為PC機與單片機,PC機與PC機,PC機與嵌入式控制器三種形式。

  在控制系統(tǒng)中使用PMAC,采用的就是PC機與嵌入式控制器組合這種形式。

  2.1問題的提出

  轉臺的控制系統(tǒng)通常采用上、下位機的形式。如圖1所示,常見的控制器一般位于下位機,由其給出具體控制算法,并由下位機總線上的各個分立器件(如放大器,DA、AD轉換裝置等)來完成輸出控制信號和采集被控對象位置/速度等信息的功能,同時通過網卡等通信設備與上位機交換信息。這里,控制器的功能由一個各部分相對獨立的系統(tǒng)來完成,使系統(tǒng)設計、控制算法實現和數據采集都較為復雜;加上各個設備之間可能存在的干擾,整個系統(tǒng)的安裝調試需要花費較多的精力才能完成。這樣看來,如果整個下位機(包括提到的各種功能)能夠由一個獨立的通用部件完成,系統(tǒng)設計和調試所面對的困難就要小得多。PMAC控制器正好可以達成這一目的。

  2.2 PMAC簡介

  PMAC的全稱是Programmable Multi Axis Controller,由美國Delta Tau公司設計生產。PMAC系列包含適用多種總線平臺的板卡以及適于獨立使用的組件。PMAC基于DSP(數字信號處理器),是一種通用的運動控制器,但更適用于數控機床等軸運動設備。它可以控制2 – 32根軸的運動(18塊PMAC級聯可以控制128根軸),同時包含多路數字I/O和DA/AD裝置;可以自動生成各種控制曲線的軌跡,并允許用戶方便的生成自己的控制代碼。由于DSP的強大功能,PMAC甚至集成了典型的控制算法(也可以由用戶提供自己的控制算法),并提供高精度的計算能力。用于PC的PMAC提供ISA/PCI總線或串口的通信方式,并提供了一組編程接口供高級用戶進行二次開發(fā)。

  PMAC非常適合于對軸運動進行控制。因此,只要滿足指標要求,飛行模擬轉臺也可以采用PMAC作為控制器。這樣,整個下位機物理結構可以大大簡化,系統(tǒng)設計和調試過程也變得相對簡單。

  圖2是PMAC本身提供的前饋濾波+PID控制算法的框圖,其中的各個參數都可以調節(jié),以滿足不同需要。


圖2:PMAC的PID框圖

3. 系統(tǒng)構成方法

  3.1 由PMAC構成上下位機系統(tǒng)

  簡化的邏輯框圖如圖3所示。

  圖中,PMAC控制卡通過標準總線與上位機相聯,碼盤等測速或測角機構通過PMAC上的DD接口傳遞位置、速度等信息,經PMAC處理,并按上位機給出的控制要求通過PMAC上的DA接口輸出合適的電平信號控制轉臺上的電機運動,從而構成控制閉環(huán)。

  另外,PMAC通過總線向上位機交換報告轉臺位置、運行安全等信息,并從上位機獲得程序運行所需要的命令,如程序開始、結束和系統(tǒng)復位等。

  由于PMAC自身的特性,使諸如碼盤信號換算、行程限位等功能可以很方便的實現,且PMAC的可編程特性使系統(tǒng)經由很強的擴展能力,整個系統(tǒng)構成要比普通的上下位機系統(tǒng)顯得簡單實用。而PMAC的使用也使系統(tǒng)更具通用性,只需作少量調整即可應用于其他設備。

  3.2軟件環(huán)境的選擇

  過去用于轉臺控制的上下位機軟件系統(tǒng)普遍采用DOS作為操作系統(tǒng)。這一方面是受當時的條件限制,另一方面也是由于DOS的開放性,程序可以直接對硬件進行操作,且一般認為DOS的實時性較好。缺點是控制軟件的圖形界面不容易通過編程的方式生成,控制和通信程序中揉雜大量用于生成用戶界面的代碼,調試和維護比較困難,而且直接直接對硬件操作使得程序通用性較差。隨著計算機軟/硬件及其應用技術的發(fā)展,一方面計算機硬件的價格顯著降低,軟件產品極大豐富,另一方面使用者對程序界面的要求也逐漸提高,越來越多的控制系統(tǒng)軟件開始采用Windows作為操作系統(tǒng)。對于PMAC而言,它同時提供了基于DOS和Windows的配置程序、二次開發(fā)工具以及例程。穩(wěn)定性方面,Windows作為控制系統(tǒng)上位機的操作系統(tǒng)已經是流行的做法,說明它可以滿足一般要求;而實時性更是一個相對概念,對于轉臺控制系統(tǒng)而言,只要你有足夠快的硬件設備和不太差的控制/通信程序,毫秒級的時間精度不難達到。

  這樣,如果采用PMAC作控制器,我們可以選用Windows作為上位機的操作系統(tǒng);而PMAC運行一般并不需人為干預,結果合適配置,上電后會按既定的方式執(zhí)行程序。PMAC通過驅動程序+開發(fā)庫的方式提供與OS的接口,Windows下常見的開發(fā)工具都可以使用。

4. PMAC相關的程序設計

  作為一款成熟的工業(yè)產品,PMAC不僅提供了快速穩(wěn)定的硬件平臺,也提供了一套完整的二次開發(fā)接口供高級用戶使用。PMAC用于數控機床等的控制時,可以由用戶編寫程序在相應的坐標系內對各個軸的運動軌跡進行方便的控制,并方便地取得各個軸的速度、加速度、位置等信息。

  4.1 PMAC的基本運行方式

  在PMAC和PC構成的系統(tǒng)中,相對于PMAC,PC機一側一般稱為主機(Host)。

  PMAC上的DSP芯片起到CPU的作用,通過DSP Gate控制程序的運行。用于PC的PMAC的啟動過程和普通的板卡沒有太大的區(qū)別:主機上電后,PMAC默認通過PCI或ISA總線(取決于PMAC的種類)與主機通信,隨后PMAC開始自檢過程(這一點上很象一臺計算機),如果PMAC自檢沒有問題,則從板上自帶的EPROM內讀取變量初始設置等配置信息;如果有活動的PLC程序且PLC程序可以運行,則PLC程序也會開始在后臺運行。PMAC啟動完成后,則可以接收來自主機總線或端口(串行口)的指令,進行進一步的動作。

  這里簡單介紹一下在PMAC中運行的幾種程序。

  PMAC通過DSP處理所有的運算過程,板卡上的芯片固化了所有負責PMAC啟動和高級數學、邏輯運算的核心程序。另外主要用于控制軸運動方式的的程序稱為“G-Code”,一般由用戶根據需要自行編寫,可以以編譯或非編譯的方式運行,比如控制數控機床的程序中大部分是此類代碼,最多可以有256個。最后一類PLC程序(最多32個)則是循環(huán)運行于后臺的。只要被設置為允許運行,PLC程序會一直運行,直到PMAC本身停止。PMAC的程序運行也有類似計算機的優(yōu)先級別分級。核心程序負責協(xié)調其它程序的運行,優(yōu)先級最高;然后是PLC0,接下來是控制運動的G-Gode,最后是PLC1-PLC31,他們在運動程序的間歇運行。同時PMAC也提供硬件中斷功能(中斷級數取決于PMC的級連使用情況),允許主機以中斷方式和PMAC通信。

  4.2 PMAC的編程方式

  PMAC提供了強大的功能用于軸類運動的控制。

  一方面,普通用戶可以通過編寫并運行G-Code的方式來控制特定設備(例如數控車床)的運動過程;另一方面,PMAC也允許高級用戶以命令的方式直接對PMAC的運行過程進行控制。對于前者,PMAC提供了一系列的配置工具和IDE,方便用戶進行G-Code的編寫、調試、編譯和上載(至PMAC);對于后者,除了必需的配置工具以外,PMAC也提供了相應的開發(fā)包用于高級用戶的二次開發(fā)。PMAC應用于轉臺的控制系統(tǒng)時并不需運行G-Code,因此以下著重解釋PMAC開發(fā)包的編程方式。

  當需要與PMAC直接通信時,需要用到DeltaTau提供的PCOMM庫。針對微軟的Windows,可以使用PCOMM32庫來與PMAC通信。PCOMM32提供了支持ANSI/UNICODE的幾組函數分別用于初始化/停止/配置、字符方式通信、上/下載、雙端口RAM(PMAC板載)操作、偽中斷等,具體可查看PCOMMM32的參考手冊。

  結合轉臺的具體情況,所要作的主要是配置PMAC的運行參數和讀取軸運動狀態(tài)。為了保證較高的存取速度,可以使用雙端口RAM作為通信中介。當雙端口RAM被配置成實時數據緩沖工作方式時,可以直接從雙端口RAM讀取各個軸的運動狀態(tài),而PMAC本身負責在大約每400微秒的時間間隔內對這些信息進行刷新。用戶編寫的應用程序只需要讀取對應的雙端口RAM的地址上的數據即可。而且,PCOMM32提供了一組函數專門負責上述功能的實現,使用戶不必和硬編碼的雙端口RAM地址打交道,提高了開發(fā)效率。

  以下的代碼片斷是利用雙端口RAM從PMAC獲得運動信息的例子:

  //針對軸的操作

  double aDouble =DPRPosition(1,1); //軸的當前位置

  //other codes handle this

  aDouble = DPRGetCommandedPos(1,1); //軸的給定位置

  //other codes handle this

  aDouble = DPRFollowError(1,1); //軸的隨動誤差

  //other codes handle this

  aDouble = DPRGetVel(1,1); //軸的速度

  //do more

  如果雙端口RAM默認功能提供的運動狀態(tài)信息不能夠滿足用戶要求,或者用戶只需要其中一部分信息而雙端口RAM又有足夠的存儲空間,也可以采用以下方式。

  前文提到PMAC啟動后可以以較高的優(yōu)先級別循環(huán)運行PLC0程序,且其運行的時間間隔也可以設置,默認也是大約400微秒。于是可以通過編寫PLC0程序的方式,向雙端口RAM中刷新所需的數據,然后再由用戶程序讀出處理。這樣也可以在保證實時性的前提下滿足用戶對數據的特殊需要,且代碼量不大。

  以下的代碼片斷是使用PLC0更新雙端口RAM從PMAC獲得運動信息的例子:

  //first in command line setup M-variable

  m111->D$28 ;#1軸當前位置

  m112->DP$D000 ;first memory area

  ;... other settins

  //PLC0

  open plc 0 clear

  m112 = m111 / (i108*32) ;在plc0內刷新,i108*32是作單位轉換

  ; more

  close

  //wakeup plc 0

  i5 = 2

  enable plc 0

  //user app

  //...

  float lamer = DPRGetFloat(DEVICE0_ID, 0); //0 is offset from DP$D000

  // the lamer

  4.3PMAC應用程序的一般結構

  綜合前面的論述,PMAC的應用程序一般分為三個部分。

  1. PMAC的設置。一般情況下,盡管PMAC使用出廠時的默認配置即可運行起來,在投入正式使用前一般都會根據具體需要對默認配置進行改變,包括硬件設置(如跳線)、軟件設置(如控制電機運行的I變量等)、變量分配和報警設置,具體可以參考PMAC的軟件手冊和用戶手冊。另外還需要連接用的電纜等。

  2. PMAC運動程序的編寫。作為控制器,在配置好系統(tǒng)變量的前提下,PMAC通過運動程序、PLC程序等對具體對象施加控制信號。同時,這些程序還要負責向上位機報告工作狀態(tài)。一般來講,PMAC一側的程序以簡單語句為主,且最好不要有太復雜的邏輯,以保證運行效率。

  3. 主機(上位機PC)一側程序的編寫。主機一側的程序除負責向PMAC傳送仿真機的指令外,還需要獲得轉臺的實時運動狀態(tài)和報警情況,一般還需要繪制波形和記錄數據備查。當上位機程序在WIN32下實現時,應盡可能利用線程來處理各種操作,以保證實時性。

5.結論

  將PMAC作為轉臺的控制器在理論和實際上都是可行的,筆者已經在實際系統(tǒng)上實現。這樣作使系統(tǒng)設計和應用程序的設計大大簡化,設計者只需要較少的代碼就可以達到目的。另外,當整個系統(tǒng)投入使用并進入維護階段,采用PMAC這樣的標準部件也減少了軟/硬件維護的困難。作為飛行模擬轉臺設計實現的一個新思路,這一方法值得嘗試。

(轉載)

標簽:PMAC 控制板 轉臺 控制系統(tǒng) 應用 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機器人下載中心
西克
2024全景工博會
專題報道