數值控制裝置的製作方法
2023-06-22 04:37:46 1

本發明涉及數值控制裝置,特別是涉及通過多個CPU核心進行最佳負載分配的數值控制裝置。
背景技術:
作為具有多個CPU核心的數值控制裝置的現有技術,例如在日本特開2014-211721號公報、日本特開2014-035564號公報中,公開了以下方法:在與執行PMC處理或機器人控制處理的CPU核心不同的CPU核心上執行在進行機械控制時所執行的數值控制的處理。
通過使用日本特開2014-211721號公報、日本特開2014-035564號公報所公開的技術,能夠消除由於PMC處理或機器人控制處理導致的負載上升對於執行數值控制處理造成的影響。
關於在數值控制裝置上執行的數值控制處理,主要列舉每隔一定時間進行移動軸指令的插補處理、進行程序指令解釋的程序指令解釋處理(預處理)、輔助功能處理或外圍設備控制處理等其他的數值控制處理等。在這些處理中,將程序指令解釋處理、插補處理定位為對數值控制裝置的性能產生重大影響的重要處理。但是,在日本特開2014-211721號公報、日本特開2014-035564號公報所公開的技術中,由於構成為在一個CPU核心上執行數值控制處理,例如在對金屬模具加工等中採用的微小線段的加工程序指令進行處理時等,程序指令解釋處理與插補處理的負載集中在同一個CPU核心中,因此存在無法充分發揮數值控制裝置的性能的問題。
技術實現要素:
因此,本發明的目的在於,提供一種數值控制裝置,該數值控制裝置針對與數值控制有關的重要處理,向多個CPU核心分散負載,由此能夠謀求高性能。
在本發明中,在搭載了多核CPU的數值控制裝置中進行負載分散來謀求高性能。使用與其他的數值控制的處理不同的CPU核心來執行特別重要的、處理負載大的程序解釋處理(預處理)以及插補處理。選擇適合分配程序解釋處理(預處理)以及插補處理的CPU核心。
並且,本發明的數值控制裝置基於程序對機械進行數值控制,其特徵在於,具備多核處理器,該多核處理器具有多個CPU核心,對與所述數值控制有關的多個處理中的各個處理預先分配了重要度,根據分配的所述重要度對多個CPU核心分配各個所述處理,由此來進行所述多核處理器的負載分配。
所述數值控制裝置的特徵在於,對特定的所述CPU核心分配多個所述處理內的重要度高的處理。
所述數值控制裝置的特徵在於,對特定的所述CPU核心分配多個所述處理內的程序指令解釋處理。
所述數值控制裝置的特徵在於,對特定的所述CPU核心分配多個所述處理內的插補處理。
所述數值控制裝置的特徵在於,對不同的所述CPU核心分配多個所述處理內的至少程序指令解釋處理和插補處理。
所述數值控制裝置的特徵在於,將多個所述處理內的程序指令解釋處理分散地分配給多個特定的所述CPU核心。
所述數值控制裝置的特徵在於,在所述處理啟動時測定所述CPU核心負載,把重要度高的所述處理分配給負載小的CPU核心。
所述數值控制裝置的特徵在於,通過在分配負載時反覆進行實驗運行來進行對所述CPU核心分配所述處理的優化。
根據本發明,能夠對重要的處理(預處理)分配最大限度的資源,能夠發揮數值控制裝置的性能。另外,能夠對重要的處理(預處理、輔助處理等)分配最大限度的資源,能夠發揮數值控制裝置的性能。
附圖說明
通過參照附圖對以下的實施例進行說明,本發明的上述以及其他的目的、特徵會變得更加明確。在這些圖中:
圖1是本發明的一個實施方式的數值控制裝置的主要框圖。
圖2A對於向圖1的多核處理器的各核心進行的處理分配,對數值控制處理應用程式啟動前進行說明。
圖2B對於向圖1的多核處理器的各核心進行的處理分配,對數值控制處理應用程式啟動前進行說明。
圖3表示在數值控制處理內用於識別重要的處理而使用的重要處理管理表的例(1)。
圖4表示在數值控制處理內用於識別重要的處理而使用的重要處理管理表的例(2)。
圖5是對核心分配在圖1的數值控制裝置上執行的數值控制處理的分配處理的流程圖。
具體實施方式
以下,與附圖一起對本發明的實施方式進行說明。
圖1是對本發明的一實施方式的具有多核處理器的數值控制裝置的主要部分進行說明的框圖。在數值控制裝置1中安裝具有多個CPU核心的多核處理器10和集成外圍控制LSI16,還具有由電動機控制部處理器18及其外圍控制LSI19構成的電動機控制部17和進行電動機驅動用放大器4之間的通信的放大器接口部20,分別經由內部總線22相連接。作為一個例子,多核處理器10具有4個核心11~14。另外,具有用於在各核心11~14之間共享信息的核心間通信中使用的共享存儲器。例如,作為共享存儲器使用DRAM15。
在多核處理器10中,通過執行加工程序解析處理來解析用於對與數值控制裝置1相連接的電動機驅動用放大器4進行控制的加工程序,根據解析結果執行移動指令生產處理從而生成移動指令,把所述移動指令經由集成外圍控制LSI16以及內部總線22發送到電動機控制部17的外圍控制LSI19內部的RAM(未圖示)。
在電動機控制部17的電動機控制部處理器18中,讀取在其內部的RAM中寫入的移動指令,生成向電動機驅動用放大器4發送的電動機控制用數據,並將該數據經由內部總線22寫入放大器接口部20的通信控制LSI21中。
在放大器接口部20的通信控制LSI21中,把在通信控制LSI21內部的RAM中寫入的數據發送給電動機驅動用放大器4,電動機驅動用放大器4對工具機所具有的電動機(未圖示)進行驅動。
另外,在多核處理器10中,還執行PMC處理,即根據來自與數值控制裝置1相連接的機械(未圖示)的輸入數據等執行預定的順序控制用程序。然後,把根據PMC處理結果用於對機械的各機械要素進行控制的信號發送給機械側I/O單元2。
顯示器/MDI單元3是具有顯示器、鍵盤等的手動數據輸入裝置。集成外圍控制LSI16接受來自鍵盤的指令、數據,並將其交給多核處理器10,並且向顯示器輸出從多核處理器10上執行的顯示處理輸出的顯示指令。
圖2A、圖2B說明對於本實施方式的數值控制裝置1中的CPU的核心進行的處理分配。在數值控制裝置1正在動作的狀態下,在用於控制機械的數值控制處理啟動前的階段,對各核心11~14中的某個核心分配OS處理、輸入輸出驅動處理,從而來執行這些處理,其中,OS處理用於承擔對整個數值控制裝置1進行控制的基本動作、輸入輸出驅動處理進行與數值控制裝置1相連接的各硬體的控制,(在圖2A的例子中,將OS處理分配給第一核心11,將輸入輸出驅動處理分配給第二核心14),但是對這些OS處理、輸出輸出驅動處理中的大部分處理進行設計,以便在通過特定的核心執行後,核心的變更儘可能小。
另一方面,關於數值控制裝置1控制機械時所執行的處理,主要列舉進行每個一定時間的移動軸指令的插補處理、進行程序指令解釋的程序指令解釋處理(預處理)、輔助功能處理或外圍設備控制處理等其他的數值控制處理。在這些處理中,程序指令解釋處理是對數值控制裝置的性能產生重大影響的重要的處理。另外,插補處理是用於進行移動路徑上的每隔微小時間的位置計算的處理,對核心施加大的負荷,這些處理可以說是重要的處理。因此,在本發明中,通過把這兩個處理分配給不同的核心,由此對重要的處理(程序指令解釋處理、插補處理)分配最大限度的計算資源,從而能夠發揮數值控制裝置的性能。
在本實施方式的數值控制裝置1中,當用於執行數值控制處理的應用程式啟動時,使用OS中標配的功能來調查對核心11~14中的哪個核心分配了OS處理、輸入輸出用驅動處理等。然後,對於沒有被分配OS處理、輸入輸出驅動處理的核心(負載小的核心),分配數值控制中的重要的處理(程序指令解釋處理、插補處理)。另外,在將重要的處理分配給核心時,對於已經被分配了重要的處理的核心,不再新分配重要的處理,由此來嘗試負載的分散(在圖2B中,將程序指令解釋處理分配給第二核心12,將插補處理分配給第三核心13)。
關於被分配重要處理的核心的選擇,如上所述可以根據當前的處理的分配狀態進行選擇,也可以根據各核心的負載狀態進行選擇。另外,也可以事先調查被分配OS處理、輸入輸出驅動處理等處理的核心,對於這些核心以外的特定的核心固定地分配重要的處理。
此外,在對核心分配了重要的處理後,可以在開始主運轉之前,一邊自動地重複進行實驗運轉一邊監視各核心的負載狀況,把負載變大的核心被分配的處理分配給其他的核心,從而優化各數值控制處理的分配。
關於各個數值控制處理是否為重要的處理,例如可以對各數值控制處理的程序事先分配重要度,根據該重要度判定各數值控制處理的程序是否為重要的處理。例如,如圖3所示可以考慮如下方法:在數值控制裝置1的存儲器上設置用於登錄重要的數值控制處理的識別名稱(程序名稱、處理名稱等)的重要處理管理表200,在啟動數值控制處理時參照重要處理管理表200,在該數值控制處理被登錄在重要處理管理表200中時,判定該數值控制處理是重要度高的處理,將該處理分配給沒有被分配其他處理的負載小的核心。另外,如圖4所示,也可以在數值控制裝置1的存儲器上設置將數值控制處理的識別名稱(程序名稱、處理名稱等)與重要度關聯起來進行登錄的重要處理管理表200,在啟動數值控制處理時參照重要處理管理表200來判別該數值控制處理的重要度。
圖5表示在數值控制處理的應用程式啟動時,在本實施方式的數值控制裝置1上執行的處理的流程圖。
[步驟SA01]當執行數值控制處理的應用程式時,使用OS的標準功能來取得與多核處理器10的各核心11~14正在執行的各處理的執行狀況有關的信息。在取得的信息中,包含由各個核心執行的處理的名稱、各個核心的負載狀況等。
[步驟SA02]判定由啟動的應用程式執行的數值控制處理是否為重要的處理。當是重要的處理時將處理轉移到步驟SA03,當是正常的處理時將處理轉移到步驟SA04。
[步驟SA03]把各CPU核心11~14內的沒有被分配OS處理、輸入輸出驅動處理以及其他的數值控制處理內的重要的數值控制處理的核心決定為本次啟動的數值控制處理的分配目標核心。
[步驟SA04]把各CPU核心11~14內的沒有被分配其他的數值控制處理內的重要的數值控制處理的核心決定為本次啟動的數值控制處理的分配目標核心。
[步驟SA05]把通過啟動的應用程式執行的數值控制處理分配給在步驟SA03、SA04中決定的核心。
以上,對本發明的實施方式進行了說明,但是本發明不限於上述實施例,通過增加適當的變更能夠以多種方式來實施本發明。
例如,在上述實施方式中表示了把程序指令解釋處理作為一個處理分配給一個核心的例子,但是當在程序指令解釋處理中存在能夠並行地動作的處理時(例如,在將內部處理事先編程為線程等那樣的並行處理時,或者,包含能夠與進行解釋處置的程序指令並行執行的處理時),可以將能夠並行動作的各個程序指令解析處理分散地分配給多個核心。在該情況下,作為能夠被分配可並行動作的各個程序指令解析處理的核心,選擇沒有被分配OS處理、輸入輸出驅動處理等的核心,另外,不分配給與插補處理相同的核心。由此,能夠進一步發揮數值控制裝置的性能。