作為運動控制的核心部件,運動控制器普遍采用16位或32位微控制器,其靈活的系統集成方式和高速的指令執行速度提高了運動控制性能、改善了控制系統的精度、增強了系統構造的靈活性。如DeltaTau公司的PMAC系列、MEI公司的XMP系列的產品,均采用了高速數字信號處理器(DSP)和現場可編程門陣列(FPGA)技術,一般可以控制1~8個軸。這些基于PC機總線的運動控制器,雖然因采用高性能微處理器在信息處理速度方面有較大的提高,并在實際應用中提供了靈活的接口,但在使用以及系統集成的時候,仍然有很多不便,如價格比較高、應用非常復雜等。并且在結構上是封閉的,只能針對某一類型的應用,控制策略單一,很難同時滿足控制系統在多種應用場合中的要求,實現定制應用。 過去,受計算機處理能力的限制,高性能的運動控制技術需要在板處理器如單片機或DSP上實現,一般PC機中的微處理器很難同時完成如軌跡插補運算和伺服控制運算等任務。目前PC機微處理器已經采用了更先進的工藝技術,信息處理能力明顯提高,可以滿足高速實時運動控制的要求,硬件支持能力大大增強,并且PC機良好的軟件開發環境使構造開放式運動控制平臺成為可能。本文提出了一種不采用在板處理器而以PC機微處理器為控制核心的開放式四軸運動控制器,該運動控制器采用ALTERA公司的復雜可編程門陣列(CPLD)EPF6016實現硬件管理功能,硬件的功能可以通過軟件配置,而應用層的功能如運動軌跡規劃和伺服控制等均由PC機完成。 1系統硬件結構 開放式四軸運動控制器的硬件結構如圖1所示。其中,虛線框內的部分由ALTERA公司的復雜可編程門陣列EPF6016實現。FLEX6000系列器件EPF6016是ALTERA公司為大容量設計提供的一種低成本可編程交織式門陣列,共有16000個可用門,1320個邏輯單元,117個I/O引腳,每個I/O引腳都有獨立的三態輸出使能控制。該器件采用OPEFLEX結構,能在最小的芯片尺寸上保持高性能和高布線率。器件的基本組成是邏輯單元(LE)。每個邏輯單元由一個4輸入查找表、一個寄存器以及作為進位鏈和級連鏈功能的專用通道。每十個邏輯單元組成一個邏輯陣列塊(LAB)。器件采用SRAM構造,可以通過外部EEPROM或控制器實現在線配置,能使設計者在設計初期以及設計測試過程中對設計作靈活的修改,同時也能夠通過在線重新配置來改變其內部功能。運動控制器的硬件功能編程由ALTEPA公司提供的MAX+PLUSII開發系統支持,設計采用了原理圖輸入方式,設計和調試比較直觀、簡便。 該運動控制器的硬件結構分為以下幾部分: (1)主機接口電路:運動控制器采用了ISA-AT總線接口,同時設計了PC-104接口。數據總線寬度為16位,接口功能在EPF6016內部實現,其中包括總線地址譯碼、數據和命令鎖存、中斷及復位等功能。 (2)光電編碼器接口電路:運動控制器接收四路光電編碼器差分輸入信號作為位置反饋,最高輸入頻率為1MHz,輸入的A、B相信號經過差動接收后,在EPF6016內部經過數字濾波處理后進行倍頻和辨向,產生的方向信號和脈沖信號進入16位加減計數器。系統軟件可以讀取計數而獲得實際的位置變化。 (3)模擬量輸出電路:高性能的運動控制器應采用高分辨率的D/A轉換器。為了保證模擬量控制信號的精度,并考慮到模擬量信號在線上傳輸引起的漂移和電壓降落,運動控制器和伺服驅動器之間的模擬控制接口信號至少應有12位以上的精度。本文中的運動控制器采用了低成本、小封裝體積的雙16位串行輸入D/A轉換器AD1866,構成雙極性電壓輸出方式。在EPF6016內部設計了控制4路并發式并行/串行數據轉換以及4路D/A地址選擇電路,運動控制器的模擬量電壓輸出范圍為±10V。 (4)數字量輸入輸出電路:運動控制的所有I/O信號均采用光電隔離處理,考慮到I/O開關信號可能產生的信號抖動現象,對每一路I/O信號都進行了相應的數字濾波處理以消除噪聲信號。控制器設計了40路I/O信號,其中包括16路專用輸入信號、2路特殊開關輸入信號(用于坐標測量或定位的接觸式測頭信號和急停開關信號),另外還設計了16路可編程通用I/O信號(8路輸入/8路輸出)。實際上,所有的I/O信號除個別信號具有獨特的功能外,都是開放的,可以根據應用的特點設計具體的功能。 (5)模擬量輸入電路:對于一些控制場合,需要檢測或控制外部狀態量的變化,運動控制器也設計了相應的單端或差動式模擬量反饋輸入通道。系統采用MAXIM公司的8通道、12位轉換精度、150kHz采樣頻率的A/D轉換器MAX197。各模擬量通道可以獨立編程選擇輸入范圍:±10V、±5V、0~10V、0~5V,A/D轉換器的轉換基準采用內部基準。 (6)可編程定時器:由于在開放式運動控制系統中,插補運算和伺服控制都由PC機完成,這兩個控制任務通常不在一個任務循環中處理。一般而言,插補運算的周期要比伺服控制的周期長,因此兩個任務需要占用不同的系統資源。由于插補運算通常占用PC機的定時中斷資源,而伺服控制也是一個需要精確定時的任務,因此在EPF6016內部設計了可編程16位定時器。該定時器可采用不同的時鐘源,定時范圍為0~300ms,最小分辨率為70ns,定時器產生的溢出動作可以向PC機申請中斷。 (7)同步工作電路:在運動控制系統中,各控制軸同步運行是一個很重要的要求,因此在EPF6016內部設計了同步控制電路和專門的控制字,支持多塊運動控制器控制輸出同步刷新、反饋計數值同步讀取等操作。 (8)硬件看門狗電路:在運動控制器中采用了DALLAS公司的看門狗復位及電壓監控芯片DS1232,以監測系統的軟硬件運行情況。當系統軟件運行死機的時候,看門狗電路產生信號復位系統,保證整個系統的可靠性。看門狗定時時間可以編程設置為300ms、600ms、1.2s。 從硬件結構的組成特點可以看出,系統的組成核心是具有可重新配置特點的CPLD EPF6016,它實現了幾乎所有的外圍電路管理功能,而其它的電路都屬于標準的輔助電路。因此系統在結構上具有典型的開放性,這對實現軟件的開放是一個很好的支持。 2運動控制器軟件設計 運動控制器的軟件采用Borland C++語言編寫,可以按照庫函數的方式調用。根據實時運動控制的特點和硬件資源的結構,函數庫分為兩類: (1)控制運動控制器硬件操作的函數庫。包括針對運動控制器硬件基本操作的函數,通過調用這些函數可以充分利用硬件資源,實現定制的應用。運動控制器上的各個硬件功能的存取操作是通過一組讀寫控制命令實現的,每一個控制命令占用一個PC機I/O空間地址,對每一個地址分別進行讀或寫操作將產生不同的功能。 硬件操作函數庫按照C++語言類的方式構造,每個命令都是以運動控制器硬件操作類的公有成員函數形式存在。這些命令主要實現以下功能: 控制光電編碼器脈沖計數器,讀取或清除計數值; 設置運動控制器的工作方式以及配置系統的各個硬件資源; 開關量輸入輸出操作,實現包括通用I/O和專用I/O的查詢和設置、控制器硬件資源工作狀態查詢等功能; 模擬量控制命令,用于控制D/A轉換器和A/D轉換器實現模擬量輸出和模擬信號采集等。 (2)定制應用算法函數庫。根據實際應用的要求,以控制運動控制器硬件操作的函數庫為基礎,可以有針對性地設計應用算法函數。本文以運動控制為例設計了針對運動控制的算法函數庫,實現運動規劃、伺服控制等功能。其它控制算法和功能也可以在此基礎上進一步擴展。運動控制算法函數庫的各個命令也采用C++語言類的方式進行封裝,控制算法類是運動控制器硬件操作類的繼承,調用和修改都十分方便,因而在結構上具有很好的開放性。 在伺服運動控制算法上,控制器將當前規劃的運動位置、進給速度送入伺服控制器與反饋的實際位置進行比較,得到位置跟蹤誤差,經過位置控制器后,送到D/A轉換器,輸出伺服驅動器的控制信號。位置控制算法可以根據實際的要求采用多種控制策略。 本文的運動控制器控制算法采用PID+速度前饋方式。通過調節各參數,這種控制算法能對大多數系統實現精確而穩定的控制。其控制結構如圖2所示。 3系統應用及實驗結果 從運動控制器的軟硬件結構可以看出,這種設計具有比較好的開放性,便于在軟硬件方面進行功能擴展和重新配置,同時應用系統的構造也比較靈活。圖3為開放式運動控制平臺應用于伺服電機控制的結構圖。它由三部分組成:采用PENTIUM200 CPU的IBM PC機;四軸開放式運動控制器;交流伺服電機和驅動器(采用松下MINAS-A系列100W伺服驅動器;位置伺服控制周期分別為250us和1ms)。圖4和圖5分別是不同伺服控制周期時位置控制器采用PID控制算法的正弦位置跟蹤曲線,其中,θr表示幅值為2500個脈沖、頻率為4Hz的正弦給定信號,θf表示實際位置反饋,E表示位置跟蹤誤差。結果表明,系統可以方便地實現控制設置,具有較強的軟件擴展能力。 本文設計的開放式四軸運動控制平臺,由于采用了高容量低成本的CPLD EPF6016,將運動控制器所需的硬件資源進行了整合集成,提高了系統硬件的配置能力和可靠性,并且充分利用PC機軟件資源方面的優勢,采用C++語言“類”的結構對運動控制算法進行封裝,使系統軟件也具有很好的開放性和集成性,可以方便地設計多種控制算法,實現“軟運動控制”功能。這種設計不僅降低了成本,而且控制算法對使用者開放,便于根據實際對象采用不同的控制算法定制應用。 |