專利名稱:用于閉環(huán)控制器編程的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本公開總體上涉及使用在計(jì)算機(jī)輔助設(shè)計(jì)、制造、使用,建模,以及可視化(個(gè)別及統(tǒng)稱為“CAD”和“CAD系統(tǒng)”)和產(chǎn)品生命周期管理系統(tǒng)(“PLM”)及其它系統(tǒng)中的系統(tǒng)和方法。
背景技術(shù):
許多工業(yè)產(chǎn)品首先在計(jì)算機(jī)輔助設(shè)計(jì)(CAD)系統(tǒng)中被設(shè)計(jì)和建模,PLM系統(tǒng)被制造商、零售商、顧客和其它用戶用來(lái)管理各種產(chǎn)品的設(shè)計(jì)、使用和處置。期望改進(jìn)的系統(tǒng)
發(fā)明內(nèi)容
·各種實(shí)施例中包括系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。一種方法,包括接收仿真模型的輸入,所述仿真模型包括傳感器。該方法包括并行地執(zhí)行仿真模型及用于所仿真的物理控制器的控制代碼,在控制器處,控制代碼根據(jù)傳感器的狀態(tài)與仿真模型進(jìn)行交互。該方法包括基于執(zhí)行的仿真模型和控制代碼生成修正的控制代碼,以及基于修正的控制代碼生成控制器專用的控制代碼。該方法包括執(zhí)行仿真模型和控制器專用的控制代碼,控制器專用的控制代碼與仿真模型進(jìn)行交互。前面已經(jīng)比較粗略地概述了本公開的特征和技術(shù)優(yōu)點(diǎn),使得本領(lǐng)域的技術(shù)人員可以更好地理解下面的詳細(xì)描述。構(gòu)成權(quán)利要求的主題的本公開的其它特征和優(yōu)點(diǎn)將在下文進(jìn)行描述。本領(lǐng)域的技術(shù)人員將理解,可以容易地使用所公開的概念和具體實(shí)施例作為基礎(chǔ)來(lái)修改或設(shè)計(jì)用于實(shí)施與本公開的目的相同目的的其它結(jié)構(gòu)。本領(lǐng)域的技術(shù)人員也將認(rèn)識(shí)到,這樣的等同結(jié)構(gòu)沒(méi)有脫離本公開的最寬泛形式的精神和范圍。在開始說(shuō)明以下的“具體實(shí)施方式
”之前,說(shuō)明貫穿本專利文獻(xiàn)中使用的特定詞語(yǔ)或短語(yǔ)的定義是有利的術(shù)語(yǔ)“包括”和“包含”及其衍生物,其含義是沒(méi)有限制的包括;術(shù)語(yǔ)“或”是包容性的,其含義是和/或;短語(yǔ)“與.· ·關(guān)聯(lián)”和“與其關(guān)聯(lián)”及其衍生物,可以指包括、包括在…內(nèi)、與...互連、包含、包含在…內(nèi)、連接到或與…連接、I禹接到或與…率禹接,可與……通信、與...協(xié)作、交織、并列、接近、被綁定到或與…綁定、具有、具有...的特性等;以及術(shù)語(yǔ)“控制器”是指控制至少一個(gè)操作的任何裝置、系統(tǒng)或其部分,而不管該裝置是以硬件、固件、軟件還是其中的至少兩個(gè)的組合來(lái)實(shí)施。應(yīng)該指出的是,與任何專用控制器相關(guān)聯(lián)的功能性可以是集中式的或分布式的,本地的或是遠(yuǎn)程的。對(duì)特定詞語(yǔ)和短語(yǔ)的定義貫穿本專利文件,并且本領(lǐng)域的普通技術(shù)人員將會(huì)理解,這樣的定義在許多場(chǎng)合(即使不是絕大多數(shù))下適用于這樣定義的詞和短語(yǔ)的先前和將來(lái)的使用。雖然某些術(shù)語(yǔ)可包括各種各樣的實(shí)施例,但是所附的權(quán)利要求書中明確地將這些術(shù)語(yǔ)限制到特定的實(shí)施例。
為了更透徹地理解本公開及其優(yōu)點(diǎn),現(xiàn)在參考下面結(jié)合附圖的描述,在附圖中相同的標(biāo)記代表相同的對(duì)象,其中
圖I示出了可以實(shí)現(xiàn)實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖;圖2示出了根據(jù)所公開的實(shí)施例的系統(tǒng)架構(gòu)的框圖;圖3示出了根據(jù)所公開的實(shí)施例的處理的流程圖。
具體實(shí)施例方式下面討論的圖f圖3和本專利文獻(xiàn)中用于描述本公開的原理的各種實(shí)施例僅是示例性的,并且不應(yīng)被解釋為以任何方式限制本公開的范圍。本領(lǐng)域的技術(shù)人員將理解,本公開的原理可以以任何適當(dāng)布置的裝置實(shí)現(xiàn)。將參照示例性的非限制性實(shí)施例描述本申請(qǐng)的多個(gè)創(chuàng)新的教導(dǎo)。生產(chǎn)機(jī)床和其它裝置越來(lái)越多地由數(shù)字控制器控制。在過(guò)去,生產(chǎn)機(jī)床的特點(diǎn)是通過(guò)一個(gè)大的電動(dòng)機(jī)驅(qū)動(dòng)一個(gè)中心立軸。各種各樣的傳動(dòng)裝置物理地將該軸的運(yùn)動(dòng)傳遞和分配給多個(gè)執(zhí)行機(jī)構(gòu)。 現(xiàn)代化的機(jī)床由通過(guò)機(jī)床來(lái)移動(dòng)和處理工作物質(zhì)的分散的執(zhí)行機(jī)構(gòu)和監(jiān)視生產(chǎn)過(guò)程的狀態(tài)的傳感器組成。通過(guò)運(yùn)行于數(shù)字控制器上的軟件來(lái)執(zhí)行執(zhí)行機(jī)構(gòu)關(guān)于生產(chǎn)過(guò)程的狀態(tài)的協(xié)調(diào)。這種方法的好處在于,這些機(jī)床可以容易地通過(guò)編輯控制器軟件來(lái)適應(yīng)于生產(chǎn)新產(chǎn)品或適應(yīng)于生產(chǎn)過(guò)程中的變化。由于現(xiàn)在在軟件中而不是在物理傳動(dòng)裝置中指定機(jī)床的功能,因而生產(chǎn)工作構(gòu)件的復(fù)雜性已變成編程問(wèn)題。數(shù)字控制器的程序員需要具有之前處于分離領(lǐng)域的專業(yè)知識(shí)。程序員需要對(duì)于機(jī)床具有深厚的機(jī)械和處理的理解,也必須要精通控制器上所使用的編程語(yǔ)言。由于這些不同的需求,目前只有高素質(zhì)的人員可以創(chuàng)建用于自動(dòng)化的現(xiàn)代化生產(chǎn)機(jī)床的代碼,并且即使是對(duì)于那些高素質(zhì)的專家,在機(jī)床能夠投產(chǎn)之前,仍需要花費(fèi)大量的時(shí)間和進(jìn)行測(cè)試。所公開的實(shí)施例通過(guò)提供與機(jī)械系統(tǒng)如何工作的直觀概念更匹配的用于開發(fā)控制器編程的交互式系統(tǒng)來(lái)減輕程序員的負(fù)擔(dān)。圖I示出數(shù)據(jù)處理系統(tǒng)的框圖,其中,實(shí)施例可以被實(shí)施并被配置為執(zhí)行本文描述的處理。所示出的數(shù)據(jù)處理系統(tǒng)包括連接到二級(jí)緩存/橋接器104的處理器102,處理器102反過(guò)來(lái)連接到本地系統(tǒng)總線106。本地系統(tǒng)總線106可以例如是外圍組件互連(PCI)架構(gòu)總線。在所示出的例子中,主存儲(chǔ)器108和圖形適配器110也連接到本地系統(tǒng)總線。圖形適配器110可以被連接到顯示器111。其它外圍設(shè)備,例如局域網(wǎng)(LAN)/廣域網(wǎng)絡(luò)/無(wú)線(例如,無(wú)線局域網(wǎng))適配器112,也可以連接到本地系統(tǒng)總線106。擴(kuò)展總線接口 114將本地系統(tǒng)總線106連接到輸入/輸出(I/O)總線116。I/O總線116連接到鍵盤/鼠標(biāo)適配器118、盤控制器120和I/O適配器122。盤控制器120可以被連接到存儲(chǔ)器126,其可以是任何適合的可用機(jī)器或機(jī)器的可讀存儲(chǔ)介質(zhì)(包括但不限于非易失性、硬編碼型介質(zhì),例如只讀存儲(chǔ)器(ROM)或可擦除、電可擦可編程只讀存儲(chǔ)器(EEPR0M)、磁帶存儲(chǔ)裝置)和用戶可記錄型的介質(zhì)(如軟盤、硬盤驅(qū)動(dòng)器和光盤只讀存儲(chǔ)器(CD-ROM)或數(shù)字多功能盤(DVD)),以及其它已知的光學(xué)、電學(xué)或磁存儲(chǔ)設(shè)備。示例中示出音頻適配器124也被連接到I/O總線116,揚(yáng)聲器(未示出)可以與音頻適配器124連接以播放聲音。鍵盤/鼠標(biāo)適配器118提供用于指示設(shè)備(未示出,例如鼠標(biāo)、軌跡球、磁道指示器等)的連接。本領(lǐng)域的普通技術(shù)人員將理解,對(duì)于特定的實(shí)施方式,圖I中所示的硬件可能會(huì)有所不同。例如,也可另外使用其它外圍設(shè)備(如光盤驅(qū)動(dòng)器等)或以其它外圍設(shè)備替換所示出的硬件。所示出的例子僅為了說(shuō)明的目而提供,并不意味著隱含與本公開相關(guān)的架構(gòu)限制。根據(jù)本公開的實(shí)施例中的數(shù)據(jù)處理系統(tǒng)包括采用圖形用戶界面的操作系統(tǒng)。該操作系統(tǒng)允許在圖形用戶界面中同時(shí)呈現(xiàn)多個(gè)顯示窗口,其中每個(gè)顯示窗口為不同的應(yīng)用或相同應(yīng)用的不同情況提供界面。用戶可以通過(guò)指示設(shè)備來(lái)操作圖形用戶界面中的光標(biāo)。可以改變光標(biāo)的位置,和/或產(chǎn)生激勵(lì)期望響應(yīng)的事件,例如點(diǎn)擊鼠標(biāo)按鈕。如果進(jìn)行適當(dāng)?shù)男薷模瑒t也可以采用各種商業(yè)化的操作系統(tǒng)之一,例如位于華盛頓州雷德蒙德的微軟公司的產(chǎn)品Microsoft WindowsTM的一個(gè)版本。根據(jù)所描述的本公開修改或創(chuàng)建操作系統(tǒng)。 LAN/WAN/無(wú)線適配器112可以連接到網(wǎng)絡(luò)130 (其不是數(shù)據(jù)處理系統(tǒng)100的一部分),網(wǎng)絡(luò)130可以是如本領(lǐng)域的技術(shù)人員已知的任何公共的或私密的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)或其組合(包括因特網(wǎng))。數(shù)據(jù)處理系統(tǒng)100可以通過(guò)網(wǎng)絡(luò)130與服務(wù)器系統(tǒng)140通信,服務(wù)器系統(tǒng)140也不是數(shù)據(jù)處理系統(tǒng)100的一部分,但可以作為例如單獨(dú)的數(shù)據(jù)處理系統(tǒng)100實(shí)現(xiàn)。目前,需要用戶或其它用戶利用傳統(tǒng)的編程語(yǔ)言對(duì)用于生產(chǎn)系統(tǒng)的控制器編程,可能通過(guò)使用數(shù)據(jù)處理系統(tǒng)100,因而可能需要針對(duì)每個(gè)實(shí)現(xiàn)學(xué)習(xí)特定的編程要求和語(yǔ)言。為了提高用戶對(duì)于編程和在真機(jī)上測(cè)試控制軟件的技能,要投入大量的時(shí)間。一些機(jī)器人系統(tǒng)使用在執(zhí)行時(shí)沒(méi)有任何實(shí)時(shí)反饋的開環(huán)程序。使用用于記錄機(jī)器人的不同執(zhí)行機(jī)構(gòu)計(jì)劃的動(dòng)作的方法來(lái)對(duì)這些機(jī)器人系統(tǒng)編程,所述動(dòng)作稍后將在真實(shí)的或虛擬的機(jī)器人上展示。控制器使用所記錄的運(yùn)動(dòng)來(lái)提供機(jī)器人的執(zhí)行機(jī)構(gòu)的開環(huán)位置控制。這些技術(shù)不能恰當(dāng)?shù)夭僮鲗?duì)控制器運(yùn)行期間的實(shí)時(shí)輸入進(jìn)行響應(yīng)的閉環(huán)系統(tǒng)。機(jī)器人的編程動(dòng)作是固定的,并且沒(méi)有考慮機(jī)器人與其周圍環(huán)境的物理交互。所公開的實(shí)施例提供了用于對(duì)閉環(huán)自動(dòng)化系統(tǒng)編程的系統(tǒng)和方法,其中,在所述閉環(huán)自動(dòng)化系統(tǒng)中,感測(cè)和其它條件會(huì)影響控制器的行為。各種實(shí)施例包括通過(guò)使用集成的虛擬仿真模型來(lái)生成控制器軟件的方法。該模型再現(xiàn)了機(jī)床的基本的機(jī)械/物理行為。圖2示出了根據(jù)所公開的實(shí)施例的系統(tǒng)架構(gòu)的框圖,其可以在特定配置的數(shù)據(jù)處理系統(tǒng)上實(shí)現(xiàn)。用戶經(jīng)由圖形用戶接口 202與系統(tǒng)交互。圖形用戶接口 202可以包括用戶交互技術(shù)(如鼠標(biāo)拖動(dòng)),以對(duì)對(duì)象施加運(yùn)動(dòng)或力、觸發(fā)傳感器,全面控制啟動(dòng)、停止和倒退運(yùn)行時(shí)間等。圖形用戶接口 202可以包括可視化的特征(例如三維(3D)仿真模型)、傳感器和執(zhí)行機(jī)構(gòu)狀態(tài)、控制代碼狀態(tài),以及針對(duì)與仿真交互及理解仿真對(duì)用戶而言有用的其它信息。該系統(tǒng)還采用了可以操縱和維護(hù)三維圖形模型的三維(3D)圖形編輯器204。例如,該模型可能包括如下構(gòu)成但不限于這些構(gòu)成諸如結(jié)構(gòu)件的機(jī)械部件、諸如導(dǎo)軌和傳動(dòng)裝置的耦合部件、傳感器的檢測(cè)區(qū)域和這些部件的幾何位置、原料流以及產(chǎn)品狀態(tài)的變化。該模型的對(duì)象被表示為布置在3D圖形編輯器204中的三維圖形。系統(tǒng)使用本領(lǐng)域的技術(shù)人員已知的3D圖形方法來(lái)顯示該模型。
根據(jù)各種實(shí)施例,該仿真模型包括至少三種對(duì)象。一些對(duì)象表示機(jī)床自身的物理方面。這些對(duì)象包括各種固體表面、杠桿臂和其它機(jī)械部件。這些對(duì)象還包括概念性的物理特征,如通過(guò)鉸鏈連接在一起的兩個(gè)對(duì)象或加工材料的流向。其它對(duì)象表示機(jī)床所作用的產(chǎn)品。例如,對(duì)于傳送帶系統(tǒng),該產(chǎn)品可以是承載于傳送帶上的對(duì)象。作為另一例子,對(duì)于成型機(jī)床,該產(chǎn)品是加工成形的原材料以及成型發(fā)生后的產(chǎn)品。最后一組對(duì)象是引起行為發(fā)生的機(jī)床內(nèi)的傳感器和執(zhí)行機(jī)構(gòu)。例如,發(fā)動(dòng)機(jī)可以施加用于移動(dòng)機(jī)床內(nèi)的杠桿臂的動(dòng)力,或者激光傳感器可以在箱子通過(guò)門的時(shí)候讀取其位置。除了 3D仿真模型和關(guān)聯(lián)的3D圖形編輯器204,一些實(shí)施例中的系統(tǒng)還包含用于對(duì)控制行為進(jìn)行編程的代碼編輯器206。這些行為包括執(zhí)行機(jī)構(gòu)用來(lái)適當(dāng)?shù)貙?shí)施機(jī)床的操作的指令。輸入值可以來(lái)自仿真模型中的傳感器以及諸如計(jì)時(shí)和其它數(shù)據(jù)源的內(nèi)在事件。代 碼編輯器206可以使用傳統(tǒng)的編程語(yǔ)言,或者優(yōu)選使用流程圖或數(shù)據(jù)流編程技術(shù)。使用如流程圖或數(shù)據(jù)流編程的圖表化語(yǔ)言,通過(guò)與系統(tǒng)交互來(lái)開發(fā)該代碼。用戶可以在任何時(shí)間直接編輯控制代碼,在優(yōu)選實(shí)施例中,該系統(tǒng)允許使用仿真環(huán)境自動(dòng)地創(chuàng)建代碼。該系統(tǒng)還具有在仿真期間運(yùn)行控制代碼的注釋器。該系統(tǒng)包括執(zhí)行系統(tǒng)208,其用于執(zhí)行所仿真的或?qū)嶋H的控制器的控制代碼和3D仿真模型。3D仿真模型允許用戶使用圖形用戶接口 202的交互技術(shù)來(lái)處理3D圖形編輯器204的3D圖形。例如,鼠標(biāo)拖動(dòng)或?qū)ο到y(tǒng)的類似輸入可以用來(lái)改變對(duì)象的位置和速度、施加力和力矩、觸發(fā)傳感器等。在仿真模型的該實(shí)時(shí)操作中,根據(jù)用戶操作的機(jī)床的機(jī)械/物理的行為,由系統(tǒng)執(zhí)行和顯示物理仿真。該模型還可以通過(guò)計(jì)算每個(gè)傳感器對(duì)其當(dāng)前的環(huán)境如何反應(yīng)來(lái)生成傳感器的狀態(tài)。執(zhí)行系統(tǒng)208還可以運(yùn)行當(dāng)前指定的控制代碼來(lái)更新由執(zhí)行機(jī)構(gòu)產(chǎn)生的效果。各種實(shí)施例允許用戶使用仿真模型,以便在執(zhí)行系統(tǒng)208中檢查和編輯控制代碼。當(dāng)與用戶交互時(shí),系統(tǒng)運(yùn)行仿真模型。響應(yīng)于用戶的操作,系統(tǒng)啟動(dòng)、停止和倒退運(yùn)行時(shí)間。當(dāng)仿真運(yùn)行時(shí),該系統(tǒng)還執(zhí)行控制代碼,以便用戶可以看到所有執(zhí)行機(jī)構(gòu)的參數(shù),無(wú)論其是處于激活狀態(tài)還是非激活狀態(tài)。用戶可以在任何點(diǎn)處暫停仿真模型,此時(shí),系統(tǒng)凍結(jié)仿真對(duì)象的值并顯示每個(gè)執(zhí)行機(jī)構(gòu)的控制代碼的狀態(tài)。該仿真以及與用戶的交互可以用來(lái)創(chuàng)建執(zhí)行系統(tǒng)208中的控制代碼。響應(yīng)于從用戶或其它用戶接收的輸入,該系統(tǒng)可以在時(shí)間上向后或向前移動(dòng)以找到發(fā)生重要事件或要發(fā)生重要事件的精確點(diǎn)。在仿真暫停時(shí),用戶有若干選項(xiàng)來(lái)改變代碼。當(dāng)然,用戶可以直接使用代碼編輯器206編輯代碼。用戶還可以在仿真模型的當(dāng)前狀態(tài)下拍攝其“快照”。快照是對(duì)于其當(dāng)前狀態(tài)下的所有執(zhí)行機(jī)構(gòu)的有效記錄。該系統(tǒng)向用戶提供在代碼編輯器中可用的快照對(duì)象。將快照插入到代碼中提供了用于使所有的執(zhí)行機(jī)構(gòu)進(jìn)入所記錄的相同狀態(tài)的指令。在一些情況下,快照對(duì)象可以被實(shí)現(xiàn)為成為執(zhí)行系統(tǒng)208的控制代碼的一部分的代碼指令。快照對(duì)象可以用作使得機(jī)床符合特定的行為模式的指令。例如,可以針對(duì)機(jī)床正常運(yùn)行的時(shí)間創(chuàng)建一個(gè)快照,并且對(duì)于機(jī)床處于診斷模式的時(shí)間創(chuàng)建另一快照。用戶可以檢查快照對(duì)象并手動(dòng)編輯該對(duì)象,以對(duì)其命名、刪除多余的狀態(tài)變量及添加參數(shù)和條件。用戶還可以將對(duì)象從仿真模型拖動(dòng)到代碼中來(lái)創(chuàng)建新的指令。所創(chuàng)建的該類型的指令依賴于被拖動(dòng)的仿真對(duì)象的背景。為了創(chuàng)建條件表達(dá)式,在一些實(shí)施例中,用戶將傳感器對(duì)象拖動(dòng)到代碼中。仿真中的傳感器對(duì)象將具有用于確定其狀態(tài)的屬性值。例如,光電二極管傳感器將具有在對(duì)象通過(guò)其相應(yīng)的光束時(shí)發(fā)生改變的二進(jìn)制值。針對(duì)傳感器自動(dòng)創(chuàng)建的指令是傳感器的屬性值是否等于其在仿真中的當(dāng)前值的測(cè)試。將多個(gè)傳感器對(duì)象拖入代碼中會(huì)導(dǎo)致系統(tǒng)創(chuàng)建用來(lái)測(cè)試每個(gè)傳感器的值的指令,并且使用邏輯與將它們組合成單個(gè)測(cè)試。如果還需要其它表達(dá)式,用戶可以直接編輯該表達(dá)式的邏輯。如果用戶將執(zhí)行機(jī)構(gòu)對(duì)象拖動(dòng)到代碼中,則系統(tǒng)自動(dòng)創(chuàng)建用于將執(zhí)行機(jī)構(gòu)的屬性修改為其當(dāng)前狀態(tài)的指令。所創(chuàng)建的指令與針對(duì)快照對(duì)象將創(chuàng)建的是相同的,但對(duì)于被拖動(dòng)的執(zhí)行機(jī)構(gòu)是獨(dú)特的。用戶可以根據(jù)需要修改指令。將機(jī)床的不是傳感器或執(zhí)行機(jī)構(gòu)的一部分拖入控制代碼中,會(huì)使得系統(tǒng)創(chuàng)建表示對(duì)象狀態(tài)的狀態(tài)變量。該系統(tǒng)將創(chuàng)建用于可以確定的狀態(tài)的變量,其給出執(zhí)行機(jī)構(gòu)對(duì)象的狀態(tài)。如果用戶將加工件對(duì)象拖動(dòng)到控制代 碼或類似地僅受物理交互影響的機(jī)床部分中,則系統(tǒng)會(huì)報(bào)告錯(cuò)誤。由于物理交互發(fā)生在控制程序之外,因此控制代碼不能包含這些變量的引用。用戶也可以通過(guò)修改仿真模型中的執(zhí)行機(jī)構(gòu)的狀態(tài)來(lái)創(chuàng)建指令。當(dāng)仿真暫停時(shí),用戶可以使用3D圖形編輯器編輯其對(duì)象。如果用戶對(duì)執(zhí)行機(jī)構(gòu)進(jìn)行編輯,則在控制代碼中添加用于引起該變化的指令。例如,如果用戶激活發(fā)動(dòng)機(jī),則在代碼中添加用于激活該發(fā)動(dòng)機(jī)的代碼。通過(guò)重復(fù)地重新開始仿真并再次暫停或者通過(guò)使用時(shí)間控件來(lái)在時(shí)間上前進(jìn)或倒退,可以呈現(xiàn)一系列的動(dòng)作。每次暫停之后,用戶將執(zhí)行機(jī)構(gòu)的狀態(tài)修改為其適當(dāng)值。系統(tǒng)會(huì)在序列中的每個(gè)動(dòng)作之間自動(dòng)插入定時(shí)指令。用戶可以按需求使用其它代碼代替定時(shí)指令,如通過(guò)在傳感器對(duì)象中拖動(dòng)來(lái)創(chuàng)建條件測(cè)試。在一些實(shí)施例中,在仿真模型中接收到不同于執(zhí)行機(jī)構(gòu)的編輯對(duì)象,不會(huì)促使系統(tǒng)在控制代碼中添加指令。這類編輯被視為外力,如機(jī)床操作員手工移動(dòng)機(jī)床的一部分或者其它不可控的影響。一旦用戶到達(dá)其對(duì)機(jī)床的行為滿意的點(diǎn),該系統(tǒng)能夠?qū)⑼ㄟ^(guò)用戶與模型的交互而生成的軟件代碼翻譯、編譯或以其它方式處理成能夠在數(shù)字控制器上執(zhí)行的控制器專用軟件,示為代碼生成器210中的控制器專用代碼。由于用戶有權(quán)使用生成的代碼,針對(duì)控制硬件的改進(jìn)能夠被應(yīng)用到控制器軟件。為了驗(yàn)證所翻譯的代碼的正確性,通過(guò)將實(shí)際的或虛擬的控制器連接到仿真內(nèi)部的執(zhí)行機(jī)構(gòu)或傳感器,通過(guò)將其它物理設(shè)備連接到系統(tǒng)或由系統(tǒng)單獨(dú)運(yùn)行虛擬控制器和其它硬件,能夠針對(duì)代表機(jī)床的機(jī)械/物理行為的仿真模型測(cè)試該代碼。當(dāng)在該模式下運(yùn)行時(shí),仿真模型正常地運(yùn)行其物理仿真,但允許通過(guò)外部設(shè)備或仿真設(shè)備控制執(zhí)行機(jī)構(gòu)的狀態(tài)。同樣,傳感器的狀態(tài)也可以被發(fā)送到控制器,而不是在內(nèi)部使用。在編寫控制軟件的同時(shí)應(yīng)用運(yùn)行仿真模型的一個(gè)總優(yōu)點(diǎn)在于其使得軟件操作更清晰、易于規(guī)劃并易于測(cè)試。—個(gè)優(yōu)點(diǎn)在于使物理過(guò)程的運(yùn)行仿真可用簡(jiǎn)化了很多問(wèn)題。用戶將不再猜測(cè)給定的代碼段將產(chǎn)生什么影響。只要運(yùn)行代碼,仿真中的影響通常是很容易看到的。由于仿真是虛擬的,可以容易地查看包括那些難以在物理機(jī)床上實(shí)施的過(guò)程的屬性。由于用戶可以控制仿真時(shí)間,當(dāng)某事發(fā)生時(shí)或應(yīng)該發(fā)生時(shí)可以直接地發(fā)現(xiàn)。另一優(yōu)點(diǎn)在于,該仿真模型提供了用于理解控制代碼的直觀平臺(tái)。通常,在沒(méi)有清楚地表現(xiàn)所控制的機(jī)床的情況下編寫控制軟件。程序員必須通過(guò)使用其它文件或通過(guò)猜測(cè)軟件的變量名的含義來(lái)推斷機(jī)床如何工作。使用所公開的實(shí)施例,該仿真向讀取代碼的任何人準(zhǔn)確地示出正在實(shí)施什么代碼以及該代碼如何與裝置中的其它機(jī)構(gòu)關(guān)聯(lián)。通過(guò)運(yùn)行該仿真,程序員可以以完全動(dòng)畫的和交互式的3D圖形來(lái)查看機(jī)床如何工作。另一優(yōu)點(diǎn)是,代碼和仿真被明確鏈接在一起。這使得能夠使用仿真作為指引來(lái)檢查代碼,或者能夠檢查由代碼指引的仿真。由于仿真和代碼的名稱是直接關(guān)聯(lián)的,因而可以在控制與仿真之間無(wú)縫地來(lái)回跳轉(zhuǎn)。當(dāng)使用仿真對(duì)象時(shí),創(chuàng)建新的指令是比較不容易出錯(cuò)的,因?yàn)橄到y(tǒng)會(huì)專門創(chuàng)建用于該對(duì)象的代碼。用戶不必輸入傳感器或執(zhí)行機(jī)構(gòu)的名稱,因此減小了弄錯(cuò)名稱或不小心·將指令發(fā)送到錯(cuò)誤對(duì)象的可能性。此外,傳感器與執(zhí)行機(jī)構(gòu)的屬性的特征值來(lái)自運(yùn)行中的仿真。因此,裝置已知這些值是正確的。例如,在實(shí)際情況下,程序員不太可能錯(cuò)誤地將傳感器測(cè)試為真實(shí)狀態(tài),假定其為假。通常,本文公開的各種實(shí)施例減少了用于將只存在于用戶腦中的預(yù)期的機(jī)床行為轉(zhuǎn)換為軟件代碼的困難任務(wù)。代替調(diào)用與編程和如何管理設(shè)備相關(guān)的所有內(nèi)容,用戶指出需要實(shí)現(xiàn)什么要求并將其拖進(jìn)代碼中。圖3示出了根據(jù)所公開的實(shí)施例的處理的流程圖。該高級(jí)流程圖描述了與通過(guò)使用本文所述的集成的虛擬仿真模型生成控制器軟件的處理有關(guān)的流程圖。這樣的處理可以通過(guò)單獨(dú)的數(shù)據(jù)處理系統(tǒng)或多個(gè)共同運(yùn)行的數(shù)據(jù)處理系統(tǒng)實(shí)現(xiàn),這兩種情況均稱為單數(shù)的“數(shù)據(jù)處理系統(tǒng)”。該系統(tǒng)首先接收仿真模型的輸入(步驟302)。這里所用的接收可以包括從存儲(chǔ)器加載、例如通過(guò)網(wǎng)絡(luò)從其它的系統(tǒng)接收、通過(guò)與用戶進(jìn)行交互構(gòu)建仿真模型或包括上述的組合。在各種實(shí)施例中,仿真模型是機(jī)械的/物理的3D仿真模型,該模型可以包括彼此交互的機(jī)械部件、限制運(yùn)動(dòng)的部件,如鉸鏈、工件、傳感器、執(zhí)行機(jī)構(gòu),以及如本文所述的其它部件。該步驟也可以包括從存儲(chǔ)器、其它系統(tǒng)、與用戶的交互,或包括上述的其它組合來(lái)接收控制一個(gè)或多個(gè)所仿真的物理控制器的控制代碼。該系統(tǒng)執(zhí)行仿真模型(步驟304),并同時(shí)執(zhí)行控制一個(gè)或多個(gè)所仿真的物理控制器的控制代碼(步驟306)。由于物理仿真在執(zhí)行時(shí)與控制代碼的執(zhí)行交互以示出所仿真的物理控制器的操作,因此,在圖3中,這些步驟被示為互相交互。這些并行的執(zhí)行有效地仿真了閉環(huán)控制器系統(tǒng),在閉環(huán)控制器系統(tǒng)中,仿真模型和控制器根據(jù)本仿真模型中存在的傳感器和執(zhí)行機(jī)構(gòu)來(lái)修改它們的行為。作為步驟304和306的一部分,在執(zhí)行仿真模型與控制代碼時(shí),該系統(tǒng)可以與用戶交互。該系統(tǒng)監(jiān)視仿真模型中存在的傳感器和執(zhí)行器的狀態(tài),并對(duì)這些狀態(tài)以及仿真模型中對(duì)應(yīng)的狀態(tài)和操作拍攝“快照”。系統(tǒng)確定仿真模型和所仿真的物理控制器的行為是否正確(步驟308),其可以包括接收用戶關(guān)于預(yù)定操作的行為是否正確的指示。如果該行為不正確,則系統(tǒng)生成修正的控制代碼(310)。該步驟可以包括基于快照、從用戶接收的輸入,或其它生成或編輯修正的控制代碼。優(yōu)選地,用戶可以使用圖形界面將快照、對(duì)象或其它輸入插入至系統(tǒng)作為生成代碼的基礎(chǔ),并且該步驟還可以包括直接接收來(lái)自用戶的新的或經(jīng)過(guò)編輯的控制代碼。該步驟可以包括使用仿真模型中的對(duì)象的值來(lái)創(chuàng)建新的或經(jīng)修正的控制代碼。然后,系統(tǒng)返回到步驟304和306以繼續(xù)執(zhí)行。在一些實(shí)施例中,系統(tǒng)不斷地在步驟304,306,308,和310之間循環(huán),直到所述行為被確定為正確為止。以這種方式,當(dāng)用戶與系統(tǒng)交互以修改仿真和所仿真的物理控制器的行為時(shí),系統(tǒng)有效地執(zhí)行實(shí)時(shí)仿真和與用戶的交互、生成修正的控制代碼并執(zhí)行修正的控制代碼和仿真模型。當(dāng)用戶篡改仿真模型、所仿真的物理控制器、執(zhí)行機(jī)構(gòu)、傳感器和其它對(duì)象的狀態(tài)以及控制代碼本身時(shí),立即更新所顯示的仿真模型。當(dāng)行為被確定為正確時(shí)(在步驟308),系統(tǒng)將基于控制代碼和/或仿真模型的當(dāng)前狀態(tài)自動(dòng)地生成控制器專用的代碼(步驟312)。該步驟可以包括,從用戶或其它處接收要 對(duì)其生成代碼的專用控制器的特定模型的指示或?qū)S每刂破鞯囊?guī)格,并且接收與用于生成控制器專用的代碼所需的特定控制有關(guān)的任何數(shù)據(jù),包括專用控制器的內(nèi)核。本文所使用的“專用控制器”,可以表示唯一的控制器或設(shè)備,或者可以表示可用于各種設(shè)備的特定類型或型號(hào)的控制器。然后,系統(tǒng)將再次執(zhí)行仿真模型,此次與專用控制器的內(nèi)核進(jìn)行通信(步驟314),其中所述內(nèi)核執(zhí)行控制器專用的代碼。該步驟可以包括執(zhí)行包括所述內(nèi)核的專用控制器的仿真,或者與包含內(nèi)核的實(shí)際的特定物理控制器進(jìn)行通信。以這種方式,仿真模型可以顯示與專用控制器(或特定的控制器的仿真)直接進(jìn)行交互的仿真,以確保控制器專用的代碼是正確的。這個(gè)步驟可以包括接收對(duì)控制器專用的代碼的編輯或修正。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,為了簡(jiǎn)單和清楚,本文中沒(méi)有描述或說(shuō)明所有適合于使用本公開的數(shù)據(jù)處理系統(tǒng)的全部結(jié)構(gòu)和操作。相反,只描述和說(shuō)明了數(shù)據(jù)處理系統(tǒng)的對(duì)于本公開唯一的或者用于理解本公開所必需的內(nèi)容。數(shù)據(jù)處理系統(tǒng)100的其余的結(jié)構(gòu)和操作可以與本領(lǐng)域已知的各種現(xiàn)有的實(shí)施或?qū)嵺`相一致。需要著重要指出的是,雖然本公開包括完整的功能性系統(tǒng)的上下文描述,但本領(lǐng)域的技術(shù)人員將理解,本公開機(jī)構(gòu)的至少一部分能夠以包含在機(jī)器可用、計(jì)算機(jī)可用或任何形式的計(jì)算機(jī)可讀介質(zhì)中的指令的形式分發(fā),而且,不管實(shí)際用于實(shí)施所述分發(fā)的指令或信號(hào)的承載介質(zhì)或存儲(chǔ)介質(zhì)的特定類型,本公開同樣適用。機(jī)器可用/可讀或計(jì)算機(jī)可用/可讀的介質(zhì)的例子包括非易失性介質(zhì)、如只讀存儲(chǔ)器(ROM)或可擦除的硬編碼類型的介質(zhì)、電可編程只讀存儲(chǔ)器(EEPR0M)、以及如軟盤,硬盤驅(qū)動(dòng)器和光盤只讀存儲(chǔ)器(CD-ROM光盤)或數(shù)字多功能光盤(DVD)的用戶記錄類型的介質(zhì)。盡管已詳細(xì)描述了本公開的示例性實(shí)施例,但本領(lǐng)域的技術(shù)人員將理解,在不脫離本公開的精神和范圍的情況下,本文中所公開的各種修改,替換,變化和改進(jìn)可以以其最廣泛的形式實(shí)現(xiàn)。所使用的附圖標(biāo)記、詞匯列表100數(shù)據(jù)處理系統(tǒng)102處理器
104緩存/橋接器106本地系統(tǒng)總線108主存儲(chǔ)器110圖形適配器111顯示器112局域網(wǎng)/廣域網(wǎng)/無(wú)線適配器114擴(kuò)展總線接口116輸入/輸出總線
118鍵盤/鼠標(biāo)適配器120盤控制器1221/0 適配器124音頻適配器130 網(wǎng)絡(luò)140服務(wù)器系統(tǒng)202圖形用戶接口204圖形編輯器206代碼編輯器208執(zhí)行系統(tǒng)210代碼生成器302接收仿真模型的輸入304執(zhí)行仿真模型306并行執(zhí)行用于控制一個(gè)或多個(gè)所仿真的物理控制器的控制代碼308確定仿真模型和所仿真的物理控制器的行為是否正確310生成修正的控制代碼312基于控制代碼和/或仿真模型的當(dāng)前狀態(tài)自動(dòng)地生成控制器專用的代碼314執(zhí)行與控制器內(nèi)核交互的仿真模型所使用的縮寫字母列表PLM產(chǎn)品生命周期管理
權(quán)利要求
1.一種生成用于閉環(huán)控制器的代碼的方法,包括 -在數(shù)據(jù)處理系統(tǒng)(100)中接收仿真模型的輸入(302),所述仿真模型包括傳感器; -在所述數(shù)據(jù)處理系統(tǒng)中并行執(zhí)行(304)所述仿真模型和所仿真的物理控制器的控制代碼(306),所述控制代碼根據(jù)所述傳感器的狀態(tài)與所述仿真模型進(jìn)行交互; -基于所執(zhí)行的仿真模型和控制代碼,由所述數(shù)據(jù)處理系統(tǒng)(100)生成修正的控制代碼(310); -由所述數(shù)據(jù)處理系統(tǒng)(100)基于所述修正的控制代碼生成控制器專用的控制代碼(312);以及 -執(zhí)行所述仿真模型(314)和所述控制器專用的控制代碼,所述控制器專用的控制代碼與所述仿真模型進(jìn)行交互。
2.如權(quán)利要求I所述的方法,其中,重復(fù)執(zhí)行所述并行執(zhí)行步驟和生成修正的控制代碼的步驟(306,310),直到所述數(shù)據(jù)處理系統(tǒng)接收到表示所述仿真模型的行為(308)是正確的指示為止。
3.如權(quán)利要求I或2所述的方法,其中,所述生成修正的控制代碼的步驟包括基于所述傳感器的狀態(tài)修改所述控制代碼。
4.如權(quán)利要求1-3中的任意一項(xiàng)所述的方法,其中,使用與所述控制器專用的控制代碼對(duì)應(yīng)的專用控制器來(lái)執(zhí)行(312)所述控制器專用的控制代碼。
5.如權(quán)利要求1-4中的任意一項(xiàng)所述的方法,其中,使用與所述控制器專用的控制代碼對(duì)應(yīng)的專用控制器的仿真來(lái)執(zhí)行(312)所述控制器專用的控制代碼。
6.如權(quán)利要求1-5中的任意一項(xiàng)所述的方法,其中,所述仿真模型還包括執(zhí)行機(jī)構(gòu)。
7.如權(quán)利要求1-6中的任意一項(xiàng)所述的方法,其中,所述控制代碼控制所仿真的物理控制器。
8.如權(quán)利要求1-7中的任意一項(xiàng)所述的方法,其中,所述仿真模型是包括互相交互的機(jī)械部件的機(jī)械的/物理的三維仿真模型。
9.一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括處理器和能夠訪問(wèn)的存儲(chǔ)器,所述數(shù)據(jù)處理系統(tǒng)具體被配置為執(zhí)行以下步驟 -接收仿真模型的輸入,所述仿真模型包括傳感器; -并行執(zhí)行所述仿真模型和所仿真的物理控制器的控制代碼,所述控制代碼根據(jù)所述傳感器的狀態(tài)與所述仿真模型進(jìn)行交互; -基于所執(zhí)行的仿真模型和控制代碼生成修正的控制代碼; -基于所述修正的控制代碼生成控制器專用的控制代碼;以及 -執(zhí)行所述仿真模型和所述控制器專用的控制代碼,所述控制器專用的控制代碼與所述仿真模型進(jìn)行交互。
10.如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,重復(fù)執(zhí)行所述并行執(zhí)行步驟和生成修正的控制代碼的步驟,直到所述數(shù)據(jù)處理系統(tǒng)接收到表示所述仿真模型的行為是正確的指示為止。
11.如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),所述生成修正的控制代碼的步驟包括基于所述傳感器的狀態(tài)修改所述控制代碼。
12.如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,使用與所述控制器專用的控制代碼對(duì)應(yīng)的專用控制器來(lái)執(zhí)行所述控制器專用的控制代碼。
13.如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,使用與所述控制器專用的控制代碼對(duì)應(yīng)的專用控制器的仿真來(lái)執(zhí)行所述控制器專用的控制代碼。
14.如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,所述仿真模型還包括執(zhí)行機(jī)構(gòu)。
15.如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,所述控制代碼控制所仿真的物理控制器。
16.一種編碼有計(jì)算機(jī)可執(zhí)行的指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)執(zhí)行所述指令時(shí),所述指令使得數(shù)據(jù)處理系統(tǒng)執(zhí)行以下步驟 接收仿真模型的輸入,所述仿真模型包括傳感器; 并行執(zhí)行所述仿真模型和所仿真的物理控制器的控制代碼,所述控制代碼根據(jù)所述傳感器的狀態(tài)與所述仿真模型進(jìn)行交互; 基于所執(zhí)行的仿真模型和控制代碼生成修正的控制代碼; 基于所述修正的控制代碼生成控制器專用的控制代碼;以及 執(zhí)行所述仿真模型和所述控制器專用的控制代碼,所述控制器專用的控制代碼與所述仿真模型進(jìn)行交互。
17.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,重復(fù)執(zhí)行所述并行執(zhí)行步驟和生成修正的控制代碼的步驟,直到所述數(shù)據(jù)處理系統(tǒng)接收到表示所述仿真模型的行為是正確的指示為止。
18.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述生成修正的控制代碼的步驟包括基于所述傳感器的狀態(tài)修改所述控制代碼。
19.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,使用與所述控制器專用的控制代碼對(duì)應(yīng)的專用控制器來(lái)執(zhí)行所述控制器專用的控制代碼。
20.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,使用與所述控制器專用的控制代碼對(duì)應(yīng)的專用控制器的仿真來(lái)執(zhí)行所述控制器專用的控制代碼。
21.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述控制代碼控制所仿真的物理控制器。
22.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),還包括如下指令當(dāng)執(zhí)行該指令時(shí),如果通過(guò)其它傳輸處理獲取了由傳輸列表所標(biāo)識(shí)的傳輸,則該指令使得數(shù)據(jù)處理系統(tǒng)執(zhí)行從所述傳輸列表中移除所有傳輸?shù)牟襟E。
全文摘要
一種方法,包括接收仿真模型的輸入(302),所述仿真模型包括傳感器。該方法包括并行執(zhí)行仿真模型和所仿真的物理控制器的控制代碼(304,306),所述控制代碼根據(jù)所述傳感器的狀態(tài)與所述仿真模型進(jìn)行交互。該方法包括基于所執(zhí)行的仿真模型和控制代碼生成修正的控制代碼(312),以及基于所述修正的控制代碼生成控制器專用的控制代碼。最后,該方法包括執(zhí)行仿真模型(314)和控制器專用的控制代碼,所述控制器專用的控制代碼與所述仿真模型進(jìn)行交互。
文檔編號(hào)G05B19/4061GK102906652SQ201180025961
公開日2013年1月30日 申請(qǐng)日期2011年5月23日 優(yōu)先權(quán)日2010年5月25日
發(fā)明者羅蘭德·施奈德, 理查德·加里·麥克丹尼爾 申請(qǐng)人:西門子產(chǎn)品生命周期管理軟件公司