控制裝置的制造方法
【專利摘要】本發(fā)明提供一種控制裝置,其并行執(zhí)行包括動(dòng)作計(jì)算程序在內(nèi)的多個(gè)控制程序,從而能夠縮短周期性執(zhí)行的多個(gè)控制程序的執(zhí)行周期。微處理器(100)并行執(zhí)行多個(gè)控制程序,每當(dāng)并行執(zhí)行的多個(gè)控制程序所含的通信命令被執(zhí)行時(shí),時(shí)序管理程序以使通信控制器(150)中的通信處理不沖突的方式,使微處理器(100)執(zhí)行通信命令。
【專利說明】
控制裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及在為了控制機(jī)械或設(shè)備的動(dòng)作而使用的控制裝置中,使用多內(nèi)核處理器執(zhí)行控制程序的時(shí)序安排(scheduling)。
【背景技術(shù)】
[0002]作為機(jī)械、設(shè)備等的動(dòng)作控制,有時(shí)包括用于控制馬達(dá)運(yùn)動(dòng)的動(dòng)作控制。這樣的動(dòng)作控制,典型的已知有可編程控制器(programmable controller),其利用一個(gè)CPU來執(zhí)行動(dòng)作計(jì)算程序和順序(sequence)的計(jì)算,該動(dòng)作計(jì)算程序用于周期性地對用于驅(qū)動(dòng)馬達(dá)的馬達(dá)驅(qū)動(dòng)器輸出指令值。
[0003]例如在專利文獻(xiàn)I中,公開了可編程控制器執(zhí)行動(dòng)作計(jì)算程序,來周期性地對用于驅(qū)動(dòng)馬達(dá)的馬達(dá)驅(qū)動(dòng)器輸出指令值。
[0004]在專利文獻(xiàn)I中,包括以第一控制循環(huán)(周期)進(jìn)行動(dòng)作的第一控制程序(短周期動(dòng)作程序)和第二動(dòng)作計(jì)算程序(長周期動(dòng)作程序),該第一控制程序包括第一動(dòng)作計(jì)算程序。第二控制程序用于以第一控制循環(huán)的整數(shù)倍的周期來對馬達(dá)輸出指令值,每當(dāng)要執(zhí)行第二控制程序時(shí),在執(zhí)行第一控制程序結(jié)束后開始執(zhí)行第二控制程序。
[0005]在第二控制程序沒有在規(guī)定控制周期內(nèi)結(jié)束的情況下,在第一控制程序的下個(gè)控制循環(huán)中,在執(zhí)行第一控制程序結(jié)束后執(zhí)行第二控制程序的未處理部分。
[0006]現(xiàn)有技術(shù)文獻(xiàn)
[0007]專利文獻(xiàn)
[0008]專利文獻(xiàn)1:日本專利4752984號
[0009]在對這些控制裝置所用的馬達(dá)進(jìn)行控制的設(shè)備中,希望縮短進(jìn)行完如下處理的時(shí)間,這些處理包括:計(jì)算從作為控制對象設(shè)備的設(shè)備輸入的輸入數(shù)據(jù),輸出計(jì)算結(jié)果來作為針對馬達(dá)的指令值。作為控制裝置的動(dòng)作,周期性地反復(fù)讀入輸入數(shù)據(jù),利用輸入數(shù)據(jù)計(jì)算出輸出數(shù)據(jù),發(fā)送輸出數(shù)據(jù),以此為前提,希望能夠結(jié)合控制目的而以不同的執(zhí)行周期來進(jìn)行輸入數(shù)據(jù)的讀入、輸入數(shù)據(jù)的計(jì)算、輸出數(shù)據(jù)的計(jì)算、輸出數(shù)據(jù)的發(fā)送。
[0010]專利文獻(xiàn)I所記載的控制裝置,優(yōu)先執(zhí)行短周期動(dòng)作程序,在短周期動(dòng)作程序結(jié)束后再執(zhí)行長周期動(dòng)作程序,因此,能夠執(zhí)行長周期動(dòng)作程序的時(shí)間有所限制。動(dòng)作計(jì)算程序需要周期性地對馬達(dá)等控制對象輸出指令值,因此,需要在估算短周期動(dòng)作程序的執(zhí)行時(shí)間后來設(shè)定長周期動(dòng)作程序的執(zhí)行周期,導(dǎo)致長周期動(dòng)作程序的執(zhí)行周期變長。
[0011]另外,每當(dāng)生成用于控制裝置執(zhí)行的包括動(dòng)作計(jì)算程序在內(nèi)的多個(gè)控制程序時(shí),需要設(shè)計(jì)作為執(zhí)行對象的輸入數(shù)據(jù)的輸入對象即設(shè)備、執(zhí)行周期或執(zhí)行時(shí)機(jī),導(dǎo)致用戶負(fù)擔(dān)加重。
【發(fā)明內(nèi)容】
[0012]本發(fā)明提供一種控制裝置,其并行執(zhí)行包括動(dòng)作計(jì)算程序在內(nèi)的多個(gè)控制程序,從而能夠縮短周期性執(zhí)行的多個(gè)控制程序的執(zhí)行周期。
[0013]本發(fā)明的其它目的在于,提供一種控制裝置,其能夠容易地生成用于并行執(zhí)行的控制程序。
[0014]為了解決上述課題,本發(fā)明提供一種控制裝置,經(jīng)由網(wǎng)絡(luò)而與控制對象設(shè)備連接,對來自所述控制對象設(shè)備的輸入數(shù)據(jù)進(jìn)行計(jì)算,輸出計(jì)算結(jié)果,從而對控制對象設(shè)備進(jìn)行控制,所述控制裝置的特征在于,具有微處理器、通信回路和存儲(chǔ)器,所述微處理器具有第一核以及第二核;所述通信回路用于在所連接的所述控制對象設(shè)備之間進(jìn)行通信;所述存儲(chǔ)器用于存儲(chǔ)如下程序:應(yīng)該由所述第一核執(zhí)行的第一用戶程序和應(yīng)該由所述第二核執(zhí)行的第二用戶程序,它們用于針對所述控制對象設(shè)備規(guī)定控制內(nèi)容,應(yīng)該由所述第一核執(zhí)行的第一動(dòng)作計(jì)算程序,其用于按照來自所述用戶程序的指示以及第一周期,來計(jì)算針對所述控制對象設(shè)備的指令值,應(yīng)該由所述第二核執(zhí)行的第二動(dòng)作計(jì)算程序,其用于按照來自所述用戶程序的指示以及第二周期,來計(jì)算針對所述控制對象設(shè)備的指令值,應(yīng)該由所述第一核執(zhí)行的第一輸入程序和應(yīng)該由所述第二核執(zhí)行的第二輸入程序,它們的狀態(tài)為,能夠針對經(jīng)由所述通信回路而被存儲(chǔ)至存儲(chǔ)器中的來自所述控制對象設(shè)備的輸入數(shù)據(jù)進(jìn)行計(jì)算,應(yīng)該由所述第一核執(zhí)行的第一輸出程序和應(yīng)該由所述第二核執(zhí)行的第二輸出程序,它們生成能夠經(jīng)由通信回路發(fā)送的輸出數(shù)據(jù),所述輸出數(shù)據(jù)包括所述指令值,時(shí)序管理程序;所述時(shí)序管理程序,使所述第一核以第一周期來反復(fù)執(zhí)行所述第一輸入程序、所述第一輸出程序、所述第一用戶程序、所述第一動(dòng)作計(jì)算程序,使所述第二核以第二周期來反復(fù)執(zhí)行所述第二輸入程序、所述第二輸出程序、所述第二用戶程序、所述第二動(dòng)作計(jì)算程序。
[0015]本發(fā)明能夠達(dá)到如下效果:通過并行地執(zhí)行短周期動(dòng)作計(jì)算程序和長周期動(dòng)作計(jì)算程序,在縮短了短周期動(dòng)作計(jì)算程序相關(guān)的輸入輸出時(shí)間的同時(shí),也能夠縮短長周期動(dòng)作計(jì)算程序的執(zhí)行周期。
【附圖說明】
[0016]圖1是表示本實(shí)施方式的控制裝置的系統(tǒng)結(jié)構(gòu)的圖。
[0017]圖2是表示CPU單元的硬件結(jié)構(gòu)的圖。
[0018]圖3是表示本發(fā)明的實(shí)施方式的CPU單元所執(zhí)行的軟件結(jié)構(gòu)的示意圖。
[0019]圖4是表示本發(fā)明的實(shí)施方式的控制裝置的硬件結(jié)構(gòu)的示意圖。
[0020]圖5是表示控制裝置中的控制裝置的設(shè)定步驟的一例的流程圖。
[0021]圖6是表示進(jìn)行控制程序的設(shè)定的畫面例的圖。
[0022]圖7是表示控制程序的分配設(shè)定的畫面例的圖。
[0023]圖8是表示對控制程序分配的圖片的圖。
[0024]圖9是表不第一?第二控制程序的執(zhí)行時(shí)機(jī)的圖。
[0025]其中,附圖標(biāo)記說明如下:
[0026]1、8控制裝置
[0027]214輸出處理程序
[0028]216輸入處理程序
[0029]218 1處理程序
[0030]230控制程序
[0031]236用戶程序
[0032]14、53 10(Input/0utput:輸輸入輸出)單元
[0033]122、142 DMA (Direct1nal Memory Access:直接內(nèi)存訪問)控制回路
[0034]210、220 系統(tǒng)程序
【具體實(shí)施方式】
[0035]<系統(tǒng)結(jié)構(gòu)>
[0036]本實(shí)施方式的控制裝置,對機(jī)械或設(shè)備等的控制對象進(jìn)行控制。本實(shí)施方式的控制裝置作為其結(jié)構(gòu)要素而包括CPU單元。CPU單元包括:微處理器、包括微處理器的主存儲(chǔ)器在內(nèi)的存儲(chǔ)單元、通信回路(電路)。本實(shí)施方式的控制裝置的CPU單元,反復(fù)執(zhí)行輸出數(shù)據(jù)的發(fā)送、輸入數(shù)據(jù)的接收、用于使用輸入數(shù)據(jù)生成輸出數(shù)據(jù)的控制程序,從而來對控制對象進(jìn)行控制。
[0037]存儲(chǔ)單元存儲(chǔ)控制程序以及系統(tǒng)程序,該系統(tǒng)程序用于控制該控制程序的執(zhí)行以及控制輸入數(shù)據(jù)以及輸出數(shù)據(jù)的輸入輸出。微處理器執(zhí)行存儲(chǔ)在存儲(chǔ)單元中的系統(tǒng)程序以及控制程序。
[0038]通信回路發(fā)送輸出數(shù)據(jù)以及接收輸入數(shù)據(jù)。如后述,本實(shí)施方式的控制裝置,具有以下回路來作為通信回路:第一通信回路,其通過控制裝置系統(tǒng)總線來進(jìn)行輸出數(shù)據(jù)的發(fā)送以及輸入數(shù)據(jù)的接收;第二通信回路,其通過現(xiàn)場網(wǎng)絡(luò)來進(jìn)行輸出數(shù)據(jù)的發(fā)送以及輸入數(shù)據(jù)的接收。
[0039]首先,參照圖1,來說明本實(shí)施方式的控制裝置I的系統(tǒng)結(jié)構(gòu)。圖是表示本發(fā)明的實(shí)施方式的控制裝置系統(tǒng)的概略結(jié)構(gòu)的示意圖。參照圖1,控制裝置系統(tǒng)SYS包括:控制裝置1、經(jīng)由現(xiàn)場網(wǎng)絡(luò)2而與控制裝置I連接的伺服馬達(dá)驅(qū)動(dòng)器(伺服驅(qū)動(dòng)器)3以及遠(yuǎn)程1終端5、作為現(xiàn)場設(shè)備的傳感器6以及繼電器7。另外,在控制裝置I中,經(jīng)由連接電纜10等而連接控制裝置8。
[0040]控制裝置I包括:主要進(jìn)行計(jì)算處理的CPU單元13、一個(gè)以上的1單元14、特殊單元15。這些單元能夠經(jīng)由控制裝置系統(tǒng)總線11而相互交換數(shù)據(jù)。另外,在這些單元中,由電源單元12提供恰當(dāng)電壓的電源。此外,作為控制裝置I而構(gòu)成的各單元,是由控制裝置制造商提供的,因此,控制裝置系統(tǒng)總線11 (PLC系統(tǒng)總線)一般是由每個(gè)控制裝置制造商獨(dú)自開發(fā)并使用的。與此相對,如后述,就現(xiàn)場網(wǎng)絡(luò)2多采用公開的規(guī)格等,以使得能夠連接不同制造商的產(chǎn)品。
[0041]針對CPU單元13的詳細(xì)結(jié)構(gòu),參照圖2而在后敘述。1單元14是進(jìn)行一般的輸入輸出處理的單元,負(fù)責(zé)開/關(guān)(0N/0FF)這樣的2值化的數(shù)據(jù)的輸入輸出。S卩,1單元14采集這樣的信息,該信息表示傳感器6等的傳感器是檢測出某個(gè)對象物的狀態(tài)(開:0N)還是什么對象物都沒檢測出來的狀態(tài)(關(guān):0FF)。另外,1單元14針對繼電器7或促動(dòng)器這樣的輸出目標(biāo),輸出使其激活的指令(開:0N)或不使其激活的指令(關(guān):0FF)。
[0042]特殊單元15如下功能:模擬數(shù)據(jù)的輸入輸出、溫度控制、通過特定的通信方式來進(jìn)行通信,而這些都是1單元14不支持的功能。
[0043]現(xiàn)場網(wǎng)絡(luò)2傳送與CPU單元13交換的各種數(shù)據(jù)。作為現(xiàn)場網(wǎng)絡(luò)2,典型的能夠使用各種產(chǎn)業(yè)用以太網(wǎng)(注冊商標(biāo))。作為產(chǎn)業(yè)用以太網(wǎng)(注冊商標(biāo)),例如已知EtherCAT (注冊商標(biāo))、ProfinetIRT^MECHATROLINK (注冊商標(biāo))-1I1、Power I ink、SERCOS (注冊商標(biāo))-1I1、CIPMot1n等,能夠在其中采用任意的網(wǎng)絡(luò)。進(jìn)而,也可以采用產(chǎn)業(yè)用以太網(wǎng)(注冊商標(biāo))以外的現(xiàn)場網(wǎng)絡(luò)。例如,如果不進(jìn)行動(dòng)作控制,貝1J可以使用DeviceNet、CompoNet/IP (注冊商標(biāo))等。在本實(shí)施方式的控制裝置系統(tǒng)SYS中,典型的,在本實(shí)施方式中例示出作為產(chǎn)業(yè)用以太網(wǎng)(注冊商標(biāo))的EtherCAT(注冊商標(biāo))來作為現(xiàn)場網(wǎng)絡(luò)2的結(jié)構(gòu)。
[0044]此外,控制裝置I使CPU單元13具有1單元14的功能、伺服馬達(dá)驅(qū)動(dòng)器3的功能,就這樣的內(nèi)置功能所能夠達(dá)到的范圍而言,也可以不經(jīng)由1單元14或伺服馬達(dá)驅(qū)動(dòng)器3等而由CPU單元13直接對控制對象進(jìn)行控制。
[0045]伺服馬達(dá)驅(qū)動(dòng)器3,經(jīng)由現(xiàn)場網(wǎng)絡(luò)2而與CPU單元13連接,并且,按照來自CPU單元13的指令值來驅(qū)動(dòng)伺服馬達(dá)4。更具體而言,伺服馬達(dá)驅(qū)動(dòng)器3以一恒定周期(規(guī)定周期)從控制裝置I接收位置指令值、速度指令值、扭矩指令值這樣的指令值。另外,伺服馬達(dá)驅(qū)動(dòng)器3從與伺服馬達(dá)4的軸連接的位置傳感器(旋轉(zhuǎn)編碼器)或扭矩傳感器這樣的檢測器中,取得位置、速度(典型的,根據(jù)本次位置和前次位置的差而計(jì)算出)、扭矩這樣的伺服馬達(dá)4的動(dòng)作的實(shí)測值。并且,伺服馬達(dá)驅(qū)動(dòng)器3將來自CPU單元13的指令值設(shè)定為目標(biāo)值,將實(shí)測值作為反饋值,來進(jìn)行反饋控制。即,伺服馬達(dá)驅(qū)動(dòng)器3調(diào)整用于驅(qū)動(dòng)伺服馬達(dá)4的電流,以使得實(shí)測值接近目標(biāo)值。此外,伺服馬達(dá)驅(qū)動(dòng)器3有時(shí)也稱為伺服馬達(dá)放大器。
[0046]另外,圖1中,例示出伺服馬達(dá)4與伺服馬達(dá)驅(qū)動(dòng)器3組合的系統(tǒng)例子,但也能夠采用其它結(jié)構(gòu)、例如采用脈沖馬達(dá)與脈沖馬達(dá)驅(qū)動(dòng)器組合的系統(tǒng)。
[0047]在圖1所示的控制裝置系統(tǒng)SYS的現(xiàn)場網(wǎng)絡(luò)2中,還連接有遠(yuǎn)程1終端5。遠(yuǎn)程1終端5基本上與1單元14同樣地,進(jìn)行一般的輸入輸出處理。更具體而言,遠(yuǎn)程1終端5包括通信耦合器52和一個(gè)以上的1單元53,該通信耦合器52用于利用現(xiàn)場網(wǎng)絡(luò)2進(jìn)行數(shù)據(jù)傳送的處理。這些單元,經(jīng)由遠(yuǎn)程1終端總線51而能夠相互交換數(shù)據(jù)。
[0048]在后面敘述控制裝置支持裝置8。
[0049]< CPU單元的硬件結(jié)構(gòu)>
[0050]接下來,參照圖2,說明CPU單元13的硬件結(jié)構(gòu)。圖2是表示本發(fā)明的實(shí)施方式的CPU單元13的硬件結(jié)構(gòu)的示意圖。參照圖2,CPU單元13包括:微處理器100、微處理器100的處理器核心140、芯片組102、主存儲(chǔ)器104、非易失性存儲(chǔ)器106、系統(tǒng)計(jì)時(shí)器108、通信控制器150、系統(tǒng)總線控制器120、現(xiàn)場網(wǎng)絡(luò)控制器140、USB連接器(未圖示)。芯片組102與其它組成構(gòu)件之間分別經(jīng)由各種總線連接(結(jié)合)。
[0051]微處理器100以及芯片組102,典型的以通用的計(jì)算機(jī)體系結(jié)構(gòu)為基準(zhǔn)來構(gòu)成。即,微處理器100解釋并執(zhí)行從芯片組102按照內(nèi)部時(shí)鐘而順次供給的命令代碼。芯片組102,在所連接的各種組成構(gòu)件之間進(jìn)行內(nèi)部的數(shù)據(jù)交換,并且,生成微處理器100所需的命令代碼。進(jìn)而,芯片組102發(fā)揮高速緩存的功能,高速緩存由微處理器100進(jìn)行計(jì)算處理而得的結(jié)果的數(shù)據(jù)等。
[0052]CPU單元13具有主存儲(chǔ)器104以及非易失性存儲(chǔ)器106來作為存儲(chǔ)單元。
[0053]主存儲(chǔ)器104是易失性的存儲(chǔ)區(qū)域(RAM),對CPU單元13投入電源后,保存應(yīng)該由微處理器100執(zhí)行的各種程序。另外,主存儲(chǔ)器104也用作由微處理器100執(zhí)行各種程序時(shí)的工作用存儲(chǔ)器。作為這樣的主存儲(chǔ)器104,可以使用DRAM (Dynamic Random AccessMemory:動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)、SRAM (Static Random Access Memory:靜態(tài)隨機(jī)存取存儲(chǔ)器)這樣的設(shè)備。
[0054]另一方面,非易失性存儲(chǔ)器106以非易失的方式保存實(shí)時(shí)OS (Operating System:操作系統(tǒng))、控制裝置I的系統(tǒng)程序、用戶程序、動(dòng)作計(jì)算程序、系統(tǒng)設(shè)定參數(shù)這樣的數(shù)據(jù)。這些程序或數(shù)據(jù),能夠根據(jù)需要而復(fù)制到主存儲(chǔ)器104中,能夠由微處理器100訪問。作為這樣的非易失性存儲(chǔ)器106,能夠使用閃存器這樣的半導(dǎo)體存儲(chǔ)器?;蛘撸軌蚴褂么疟P這樣的磁記錄介質(zhì)、DVD-RAM (Digital Versatile Disk Random Access Memory:數(shù)字多功能光盤-隨機(jī)存取存儲(chǔ)器)這樣的光學(xué)記錄介質(zhì)等。
[0055]通信控制器150典型的由FPGA(Field-Programmable Gate Array:即現(xiàn)場可編程門陣列)、ASIC(Applicat1n Specific Integrated Circuits:專用集成電路)等的硬件構(gòu)成,能夠經(jīng)由芯片組來與主存儲(chǔ)器之間收發(fā)數(shù)據(jù)。通信控制器具有用于與主存儲(chǔ)器進(jìn)行數(shù)據(jù)通信的存儲(chǔ)器區(qū)域,針對后述的系統(tǒng)總線控制器、現(xiàn)場網(wǎng)絡(luò)控制器,傳送從主存儲(chǔ)器傳送來的數(shù)據(jù)。另外,針對系統(tǒng)總線控制器以及現(xiàn)場網(wǎng)絡(luò)控制器發(fā)出命令,使它們將從主存儲(chǔ)器傳送來的數(shù)據(jù)發(fā)送出去。
[0056]通信控制器還具有系統(tǒng)計(jì)時(shí)器108。系統(tǒng)計(jì)時(shí)器108按照每個(gè)一恒定周期(規(guī)定周期)產(chǎn)生中斷信號,將中斷信號提供至該微處理器100。典型的,根據(jù)硬件的規(guī)格,能夠以多個(gè)不同的周期來分別產(chǎn)生中斷信號,但也能夠設(shè)定為通過OS (Operating System:操作系統(tǒng))或B10S(Basic Input Output System:基礎(chǔ)輸入輸出系統(tǒng))等來以任意周期產(chǎn)生中斷信號。利用該系統(tǒng)計(jì)時(shí)器108產(chǎn)生的中斷信號,能夠?qū)崿F(xiàn)后述那樣的針對每個(gè)執(zhí)行周期的控制動(dòng)作。
[0057]作為通信回路,有系統(tǒng)總線控制器120以及現(xiàn)場網(wǎng)絡(luò)控制器140。這些通信回路進(jìn)行輸出數(shù)據(jù)的發(fā)送以及輸入數(shù)據(jù)的接收。
[0058]此外,在CPU單元13自身具有10單元14或伺服馬達(dá)驅(qū)動(dòng)器3的功能的情況下,本來由控制裝置系統(tǒng)總線控制器120進(jìn)行的輸出數(shù)據(jù)的發(fā)送以及輸入數(shù)據(jù)的接收,變?yōu)閷⒊袚?dān)這些功能的部分作為通信對方(通信目標(biāo))而在CPU單元13的內(nèi)部進(jìn)行的發(fā)送以及接收。
[0059]通信控制器150控制經(jīng)由控制裝置系統(tǒng)總線11的數(shù)據(jù)交換。更具體而言,包括系統(tǒng)總線控制器120、DMA(Dynamic MemoryAccess:動(dòng)態(tài)存儲(chǔ)器存取)控制回路122、緩存(緩沖存儲(chǔ)器)。
[0060]緩存(緩沖區(qū))126發(fā)揮發(fā)送緩存和接收緩存的功能,發(fā)送緩存用于對要經(jīng)由控制裝置系統(tǒng)總線11而向其他單元輸出的數(shù)據(jù)(以下“輸出數(shù)據(jù)”)進(jìn)行緩沖存儲(chǔ),接收緩存用于對經(jīng)由控制裝置系統(tǒng)總線11而從其它單元輸入的數(shù)據(jù)(以下“輸入數(shù)據(jù)”)進(jìn)行緩沖存儲(chǔ)。此外,通過微處理器100的計(jì)算處理而生成的輸出數(shù)據(jù),原本存在主存儲(chǔ)器104中。并且,應(yīng)該向特定單元傳送的輸出數(shù)據(jù),被從主存儲(chǔ)器104中讀出,暫時(shí)保存在緩存126中。另夕卜,從其它單元傳送來的輸入數(shù)據(jù),被暫時(shí)保存在緩存126后,進(jìn)而被轉(zhuǎn)移至主存儲(chǔ)器104。
[0061]DMA控制回路122從主存儲(chǔ)器104向緩存126傳送輸出數(shù)據(jù),以及從緩存126向主存儲(chǔ)器104傳送輸入數(shù)據(jù)。
[0062]通信控制器,在與控制裝置系統(tǒng)總線11連接的其它單元之間,進(jìn)行發(fā)送緩存126的輸出數(shù)據(jù)的處理以及接收第一輸入數(shù)據(jù)并將其存儲(chǔ)在緩存126中的處理。典型的,系統(tǒng)總線控制器提供控制裝置系統(tǒng)總線11中的物理層以及數(shù)據(jù)鏈路層的功能。
[0063]現(xiàn)場網(wǎng)絡(luò)控制器140,控制經(jīng)由現(xiàn)場網(wǎng)絡(luò)2的數(shù)據(jù)交換。S卩,現(xiàn)場網(wǎng)絡(luò)控制器140按照所用的現(xiàn)場網(wǎng)絡(luò)2的規(guī)格,控制輸出數(shù)據(jù)的發(fā)送以及輸入數(shù)據(jù)的接收。如上述,本實(shí)施方式中采用按照EtheerCAT (注冊商標(biāo))規(guī)格的現(xiàn)場網(wǎng)絡(luò)2,因此,能夠使用包括用于通常的以太網(wǎng)(注冊商標(biāo))通信的硬件在內(nèi)的現(xiàn)場網(wǎng)絡(luò)控制器140。在EtheerCAT(注冊商標(biāo))規(guī)格中,能夠使用一般的以太網(wǎng)(注冊商標(biāo))控制器,來實(shí)現(xiàn)按照通常的以太網(wǎng)(注冊商標(biāo))規(guī)格的通信協(xié)議。其中,根據(jù)作為現(xiàn)場網(wǎng)絡(luò)2而采用的產(chǎn)業(yè)用以太網(wǎng)(注冊商標(biāo))的種類,也能夠采用與通常通信協(xié)議不同的專用規(guī)格的通信協(xié)議所對應(yīng)的特別規(guī)格的以太網(wǎng)(注冊商標(biāo))控制器。另外,在采用產(chǎn)業(yè)用以太網(wǎng)(注冊商標(biāo))以外的現(xiàn)場網(wǎng)絡(luò)的情況下,能夠使用與該規(guī)格對應(yīng)的專用的現(xiàn)場網(wǎng)絡(luò)控制器。
[0064]緩存126發(fā)揮經(jīng)由現(xiàn)場網(wǎng)絡(luò)2向其它裝置等輸出數(shù)據(jù)(以下“輸出數(shù)據(jù)”)的發(fā)送緩存以及經(jīng)由現(xiàn)場網(wǎng)絡(luò)2而從其它裝置等輸入(接收)數(shù)據(jù)(以下“輸入數(shù)據(jù)”)的接收緩存的功能。微處理器100通過計(jì)算處理而生成的輸出數(shù)據(jù),原本被存儲(chǔ)在主存儲(chǔ)器104中。并且,應(yīng)該向特定的裝置傳送的輸出數(shù)據(jù),被從主存儲(chǔ)器104讀出而暫時(shí)存儲(chǔ)在通信回路緩存146中。另外,從其它裝置傳送來的輸入數(shù)據(jù)暫時(shí)被保存在緩存146中,進(jìn)而被轉(zhuǎn)移至主存儲(chǔ)器104。
[0065]DMA控制回路142從主存儲(chǔ)器104向緩存?zhèn)魉洼敵鰯?shù)據(jù),以及從緩存向主存儲(chǔ)器104傳送輸入數(shù)據(jù)。
[0066]現(xiàn)場網(wǎng)絡(luò)控制器144,在與現(xiàn)場網(wǎng)絡(luò)2連接的其它裝置之間,進(jìn)行發(fā)送緩存的輸出數(shù)據(jù)的處理以及接收輸入數(shù)據(jù)并將其存儲(chǔ)在通信回路緩存中的處理。典型的,現(xiàn)場網(wǎng)絡(luò)控制器144提供現(xiàn)場網(wǎng)絡(luò)2中的物理層以及數(shù)據(jù)鏈路層的功能。
[0067]USB連接器是用于對控制裝置支持裝置8與CPU單元13進(jìn)行連接的接口。典型的,從控制裝置支持裝置8傳送來的能夠由CPU單元13的微處理器100執(zhí)行的程序等,經(jīng)由USB連接器110而被讀入至控制裝置I。
[0068]< C.CPU單元的軟件結(jié)構(gòu)>
[0069]接下來,參照圖3,說明用于提供本實(shí)施方式的各種功能的軟件群。這些軟件所含的命令代碼,在恰當(dāng)時(shí)機(jī)被讀出,由CPU單元13的微處理器100、處理器核心140執(zhí)行。
[0070]圖3是表示本發(fā)明的實(shí)施方式的CPU單元13所執(zhí)行的軟件結(jié)構(gòu)的示意圖。參照圖3,作為CPU單元13所執(zhí)行的軟件,構(gòu)成實(shí)時(shí)0S200、系統(tǒng)程序210、用戶程序236這三層。
[0071]實(shí)時(shí)0S200是根據(jù)CPU單元13的計(jì)算機(jī)體系結(jié)構(gòu)而設(shè)計(jì)的,提供用于微處理器100執(zhí)行系統(tǒng)程序210以及用戶程序236的基本執(zhí)行環(huán)境。
[0072]系統(tǒng)程序210是用于提供控制裝置I的功能的軟件群。具體而言,系統(tǒng)程序210包括時(shí)序管理程序212、輸出處理程序214、輸入處理程序216、順序命令計(jì)算程序(順序計(jì)算程序)232、動(dòng)作計(jì)算程序234、其它系統(tǒng)程序220。此外,一般而言,輸出處理程序214以及輸入處理程序216被連續(xù)(作為一個(gè)整體)執(zhí)行,因此,有時(shí)將這些程序統(tǒng)稱為1處理程序218。
[0073]用戶程序236是根據(jù)用戶的控制目的而作成的。即,是根據(jù)使用控制裝置系統(tǒng)SYS進(jìn)行控制的對象的生產(chǎn)線(工序)等,任意設(shè)計(jì)的程序。
[0074]如后述,用戶程序236與順序命令計(jì)算程序232以及動(dòng)作計(jì)算程序234聯(lián)動(dòng),來實(shí)現(xiàn)用戶的控制目的。即,用戶程序236利用由順序命令計(jì)算程序232以及動(dòng)作計(jì)算程序234提供的命令、函數(shù)、功能模塊等,來實(shí)現(xiàn)程序的動(dòng)作。因此,有時(shí)將用戶程序236、順序命令計(jì)算程序232以及動(dòng)作計(jì)算程序234統(tǒng)稱為控制程序230。
[0075]這樣,CPU單元13的微處理器100執(zhí)行存儲(chǔ)在存儲(chǔ)單元中的系統(tǒng)程序210以及控制程序230。
[0076]以下,詳細(xì)說明各程序。
[0077]用戶程序236如上述所述,是根據(jù)用戶的控制目的(例如,對象的生產(chǎn)線或工序)而作成的。用戶程序236,典型的,成為能夠由CPU單元13的微處理器100執(zhí)行的對象程序形式。在控制裝置支持裝置8等中,該用戶程序236是對由梯形語言(ladder language)等記述的源程序進(jìn)行編譯而生成的。并且,所生成的對象程序形式的用戶程序236被從控制裝置支持裝置8經(jīng)由連接電纜10傳送至CPU單元13,存儲(chǔ)在非易失性存儲(chǔ)器106等中。
[0078]時(shí)序管理程序212,針對輸出處理程序214、輸入處理程序216以及控制程序230,控制各執(zhí)行循環(huán)主的處理開始以及處理中斷后的處理重新開始。更具體而言,時(shí)序管理程序212控制用戶程序236以及動(dòng)作計(jì)算程序234的執(zhí)行。
[0079]在本實(shí)施方式的CPU單元13中,采用與動(dòng)作計(jì)算程序234相適合的一恒定周期(規(guī)定周期)的執(zhí)行循環(huán)(控制循環(huán)),作為整個(gè)處理的通用循環(huán)。因此,在一個(gè)控制循環(huán)內(nèi),難以使全部處理執(zhí)行結(jié)束,因此,根據(jù)應(yīng)該執(zhí)行的處理的優(yōu)先級等,區(qū)分為在各控制循環(huán)中應(yīng)該執(zhí)行完的處理和也可以分配在多個(gè)控制循環(huán)中執(zhí)行的處理。時(shí)序管理程序212管理這些區(qū)分后的處理的執(zhí)行順序等。更具體而言,時(shí)序管理程序212,在各控制循環(huán)期間內(nèi)優(yōu)先執(zhí)行優(yōu)先級高的程序。
[0080]輸出處理程序214,將通過執(zhí)行用戶程序236 (控制程序230)而生成的輸出數(shù)據(jù),重新配置成適于向通信控制器傳送的形式。在系統(tǒng)總線控制器120或現(xiàn)場網(wǎng)絡(luò)控制器140需要來自微處理器100的用于進(jìn)行發(fā)送的指示的情況下,輸出處理程序214發(fā)出這樣的指不O
[0081]輸入處理程序216將由控制裝置系統(tǒng)總線控制器120以及/或現(xiàn)場網(wǎng)絡(luò)控制器140接收的輸入數(shù)據(jù),重新配置成適于控制程序230使用的形式。
[0082]在由用戶程序236使用的某種順序命令被執(zhí)行時(shí),調(diào)用順序命令計(jì)算程序232,用于實(shí)現(xiàn)其命令。
[0083]按照用戶程序236的指示來執(zhí)行動(dòng)作計(jì)算程序234,按照用戶程序236在每次執(zhí)行時(shí),計(jì)算要對伺服馬達(dá)驅(qū)動(dòng)器3或脈沖馬達(dá)驅(qū)動(dòng)器這樣的馬達(dá)驅(qū)動(dòng)器輸出的指令值。
[0084]其它系統(tǒng)程序220是圖3中分別所示的程序以外的程序,總括表示用于實(shí)現(xiàn)控制裝置I的各種功能的程序群。該程序例如使微處理器執(zhí)行與機(jī)械的控制控制裝置的通信、來自外部設(shè)備的要求的處理、自身診斷處理。另外,其它系統(tǒng)程序還包括執(zhí)行向外部存儲(chǔ)介質(zhì)傳送主存儲(chǔ)器的數(shù)據(jù)的處理、從外部存儲(chǔ)介質(zhì)讀取數(shù)據(jù)的處理。
[0085]實(shí)時(shí)0S200,提供用于隨著時(shí)間經(jīng)過而且換執(zhí)行多個(gè)程序的環(huán)境。在本實(shí)施方式的控制裝置I中,作為將通過CPU單元13執(zhí)行程序而生成的輸出數(shù)據(jù)向其它單元或其它裝置輸出(發(fā)送)的事件(中斷),初始設(shè)定有控制循環(huán)開始的中斷。如果產(chǎn)生了控制循環(huán)開始的中斷,則實(shí)時(shí)0S200將微處理器100中的執(zhí)行對象,從在中斷產(chǎn)生時(shí)點(diǎn)正在執(zhí)行的程序切換為時(shí)序管理程序212。此外,在時(shí)序管理程序212以及控制執(zhí)行時(shí)序管理程序212的程序都沒有被執(zhí)行的情況下,實(shí)時(shí)0S200執(zhí)行包含在其它系統(tǒng)程序210中的程序。作為這樣的程序,例如包括在CPU單元13與控制裝置支持裝置8之間經(jīng)由連接電纜10 (USB)等進(jìn)行通信處理相關(guān)的程序。
[0086]此外,控制程序230以及時(shí)序管理程序212,被存儲(chǔ)在作為存儲(chǔ)單元的主存儲(chǔ)器104以及非易失性存儲(chǔ)器106中。
[0087]<支持裝置的硬件結(jié)構(gòu)>
[0088]接下來,說明控制裝置8,其用于生成由控制裝置I執(zhí)行的程序以及進(jìn)行控制裝置I的維護(hù)等。
[0089]圖4是表示本發(fā)明的實(shí)施方式的控制裝置8的硬件結(jié)構(gòu)的示意圖。參照圖4,控制裝置8典型的由通用的計(jì)算機(jī)構(gòu)成。此外,從維護(hù)性的觀點(diǎn)出發(fā),優(yōu)選便攜性良好的筆記本型個(gè)人計(jì)算機(jī)。
[0090]參照圖4,控制裝置8包括:CPU81,其執(zhí)行包括OS在內(nèi)的各種程序;R0M(Read OnlyMemory:只讀存儲(chǔ)器)82,其存儲(chǔ)B1S、各種數(shù)據(jù);存儲(chǔ)器RAM83,其提供工作區(qū)域,用于存儲(chǔ)由CPU81執(zhí)行程序所需的數(shù)據(jù);硬盤(HDD) 84,其非易失的存儲(chǔ)由CPU81執(zhí)行的程序等。CPU81相當(dāng)于控制裝置8的計(jì)算部,R0M82、RAM83以及硬盤84相當(dāng)于控制裝置8的存儲(chǔ)部。
[0091]控制裝置8還包括用于接受用戶操作的鍵盤85以及鼠標(biāo)86、用于向用戶提示信息的監(jiān)視器87。進(jìn)而,控制裝置8包括用于與控制裝置I (CPU單元13)等進(jìn)行通信的通信接口 (IF)89。
[0092]如后述,控制裝置8所執(zhí)行的各種程序被存儲(chǔ)在CDR0M9中流通。存儲(chǔ)在該CD-R0M9中的程序,被⑶ROM (Compact Disk-Read Only Memory:光盤只讀存儲(chǔ)器)驅(qū)動(dòng)器88讀取,進(jìn)而被存入硬盤(HDD)84等?;蛘撸梢詮纳衔坏闹饔?jì)算機(jī)等通過網(wǎng)絡(luò)來下載程序。
[0093]<控制程序>
[0094]在本實(shí)施方式中,控制程序?yàn)閳?zhí)行一系列動(dòng)作的單位,包括順序計(jì)算程序、動(dòng)作計(jì)算程序,這些順序計(jì)算程序、動(dòng)作計(jì)算程序是隨著執(zhí)行10處理程序、用戶程序、用戶程序的執(zhí)行而執(zhí)行的程序。
[0095]在本發(fā)明的控制裝置I中,針對每個(gè)控制程序設(shè)定執(zhí)行周期、所執(zhí)行的優(yōu)先級,為了能夠以更短周期執(zhí)行,設(shè)定使各個(gè)控制程序開始執(zhí)行的時(shí)機(jī)、限制條件。用戶考慮這些控制程序的特性,為了達(dá)到控制目的而進(jìn)行編程。時(shí)序管理程序按照控制程序的執(zhí)行優(yōu)先級、執(zhí)行周期,來使微處理器執(zhí)行控制程序。接下來說明各個(gè)控制程序。
[0096]第一控制程序是以最高優(yōu)先級來周期性執(zhí)行的。包括第一輸出處理程序、第一輸入處理程序在內(nèi),按順序發(fā)送輸出數(shù)據(jù)、讀入輸入數(shù)據(jù)、執(zhí)行所分配的第一用戶程序、生成輸出數(shù)據(jù)、執(zhí)行第一動(dòng)作計(jì)算程序、計(jì)算針對馬達(dá)的指令值。
[0097]第二控制程序是以僅次于第一控制程序的優(yōu)先級來周期性執(zhí)行的。包括第二輸出處理程序、第二輸入處理程序在內(nèi),按順序發(fā)送輸出數(shù)據(jù)、讀入輸入數(shù)據(jù)、執(zhí)行所分配的第二用戶程序、執(zhí)行第二動(dòng)作程序。
[0098]第三控制程序是以恒定周期來周期性地執(zhí)行的。第三控制程序,是以上述的第一控制程序執(zhí)行讀入輸出數(shù)據(jù)或輸入數(shù)據(jù)為前提的。具體而言,接受按照第一控制程序所執(zhí)行的輸出處理程序、輸入處理程序的命令而讀入的輸入數(shù)據(jù)的交接,來計(jì)算輸出數(shù)據(jù)。
[0099]第三控制程序是適合于如下情形的程序:為了縮短第一控制程序的執(zhí)行周期,將包括在第一控制程序中的用戶程序,在允許以比第一控制程序的執(zhí)行周期稍長的周期來執(zhí)行時(shí)分配給該第三控制程序。
[0100]第四控制程序僅由用戶程序構(gòu)成。第四控制程序與高速控制計(jì)算無關(guān),而用于描述通信處理、備份處理等。
[0101]接下來,示出使用控制器支持裝置來在控制裝置中進(jìn)行編程的步驟。圖5示出控制裝置中的控制裝置的設(shè)定步驟的一例。
[0102]在步驟S(STEP) I中,確定經(jīng)由現(xiàn)場網(wǎng)絡(luò)或系統(tǒng)總線連接的設(shè)備。具體而言,設(shè)定用于對與現(xiàn)場網(wǎng)絡(luò)及系統(tǒng)總線連接的設(shè)備進(jìn)行通信的信息。另外,登錄為后述的用戶程序所使用的變量。雖未圖示,也可以自動(dòng)地與經(jīng)由現(xiàn)場網(wǎng)絡(luò)或系統(tǒng)總線連接的設(shè)備進(jìn)行通信,取得經(jīng)由現(xiàn)場網(wǎng)絡(luò)或系統(tǒng)總線連接的設(shè)備、連接順序等的信息。
[0103]在步驟S2中,用戶使用控制器支持裝置,如上述那樣配合控制目的來生成用戶程序。所生成的程序,使用在步驟SI登錄的從與現(xiàn)場網(wǎng)絡(luò)及系統(tǒng)總線連接的設(shè)備輸入的數(shù)據(jù),執(zhí)行順序計(jì)算、動(dòng)作計(jì)算,生成輸出數(shù)據(jù)。該用戶程序也可以分割為多個(gè)程序模塊而生成。
[0104]在步驟S3中,用戶進(jìn)行控制程序的設(shè)定。配合用戶的控制目的,設(shè)定用于執(zhí)行控制程序的周期。
[0105]在步驟S4中,分別針對經(jīng)由在步驟SI中設(shè)定的網(wǎng)絡(luò)連接的設(shè)備,登錄按照所述的1處理程序的命令執(zhí)行的、用于進(jìn)行輸入數(shù)據(jù)的接收與輸出數(shù)據(jù)的發(fā)送的控制程序。圖6表示用于進(jìn)行控制程序的設(shè)定的畫面例。分別針對與現(xiàn)場網(wǎng)絡(luò)及系統(tǒng)總線連接的設(shè)備,登錄用于進(jìn)行1刷新(10 refresh)的控制程序。以一覽方式顯示控制對象設(shè)備,同時(shí)顯示單元名稱。以下拉式菜單形式使用戶選擇分別針對各設(shè)備進(jìn)行1刷新的控制程序。
[0106]在步驟S5中,將所生成的用戶程序分配給控制程序。圖8表示對控制程序分配的圖(Image)。圖7中,分別針對控制程序,將所生成的用戶程序(ProgramO_Program6)分配給控制程序。在將多個(gè)用戶程序分配給控制程序的情況下,登錄用戶程序的執(zhí)行順序。在圖7的例子中,對第一控制程序分配用戶程序ProgramO、Pr ο gram2。在第二控制程序中,分配有用戶程序Program4、Program5、Program6。在第三控制程序中,分配有Programl0
[0107]通過上述的操作,針對每個(gè)控制程序,生成所執(zhí)行的周期、設(shè)定參數(shù)和包括所執(zhí)行的用戶程序在內(nèi)的控制程序,該設(shè)定參數(shù)表示通過控制程序所含的1控制程序進(jìn)行數(shù)據(jù)交換的設(shè)備。控制裝置的時(shí)序管理程序,參照傳送來的設(shè)定參數(shù),參照控制程序的執(zhí)行周期等,控制開始或結(jié)束執(zhí)行程序的時(shí)機(jī)。另外,在本實(shí)施方式中的控制程序的執(zhí)行周期,成為經(jīng)由現(xiàn)場網(wǎng)絡(luò)及系統(tǒng)總線而與外部設(shè)備進(jìn)行通信(10刷新)的周期,因此,基于設(shè)定參數(shù),通信程序確定以通信周期以及該周期進(jìn)行1刷新的對象和設(shè)備。
[0108]〈第一實(shí)施方式〉
[0109]圖8表示多個(gè)核心以恒定周期執(zhí)行第一控制程序和第二控制程序的例子。第一控制程序以及第二控制程序分別包括第一 1處理程序、第二 1處理程序、第一用戶程序、第二用戶程序、第一動(dòng)作計(jì)算程序、第二包括動(dòng)作計(jì)算程序。
[0110]時(shí)序管理程序監(jiān)視計(jì)時(shí)器的計(jì)數(shù)值。如果達(dá)到規(guī)定周期,時(shí)序管理程序使微處理器的第一核心開始執(zhí)行第一控制程序。同時(shí)使微處理器的第二核心開始執(zhí)行第二控制程序。
[0111]在第一控制程序的執(zhí)行過程中,微處理器的第一核心按照第一 1控制程序的輸出處理程序的命令,從主存儲(chǔ)器上的通信緩存向通信控制器150的緩存,傳送用于向與第一控制程序關(guān)聯(lián)的外部設(shè)備發(fā)送的第一輸出數(shù)據(jù)(圖中A)。另外,根據(jù)輸入處理程序的命令,將從通信控制器傳送來的存儲(chǔ)在通信緩存中的第一輸入數(shù)據(jù),發(fā)送至第一用戶程序的工作區(qū)域(圖中C)。
[0112]按照第一用戶程序的命令,微處理器的第一核心利用存儲(chǔ)在第一用戶程序的工作區(qū)域中的輸入數(shù)據(jù)來進(jìn)行順序計(jì)算,將輸出數(shù)據(jù)存儲(chǔ)至主存儲(chǔ)器上通信緩存。另外,利用輸入數(shù)據(jù)進(jìn)行計(jì)算,計(jì)算所輸出的動(dòng)作控制用數(shù)據(jù)。將計(jì)算出的動(dòng)作控制用數(shù)據(jù)傳送至動(dòng)作計(jì)算程序進(jìn)行工作的區(qū)域。
[0113]按照第一動(dòng)作計(jì)算程序的命令,微處理器的第一核心利用第一動(dòng)作計(jì)算程序來進(jìn)行計(jì)算,計(jì)算與第一控制程序的執(zhí)行周期對應(yīng)的向馬達(dá)發(fā)送的指令值,計(jì)算輸出數(shù)據(jù)。將輸出數(shù)據(jù)傳送至用于對通信控制器進(jìn)行傳送的緩存區(qū)域。
[0114]時(shí)序管理程序監(jiān)視下個(gè)執(zhí)行周期的到來,如果檢測出執(zhí)行周期的到來,使微處理器的第一核心執(zhí)行第一控制程序。使微處理器的第一核心以恒定周期反復(fù)執(zhí)行一系列的處理。
[0115]接下來說明第二控制程序的執(zhí)行。在第二控制程序的執(zhí)行過程中,按照第二 1控制程序的命令,微處理器的第二核心從主存儲(chǔ)器上向通信控制器的緩存,發(fā)送用于向與第二控制程序關(guān)聯(lián)的外部設(shè)備發(fā)送的第一輸出數(shù)據(jù)(圖中B)。另外,按照輸入處理程序的命令,將從通信控制器傳送來的存儲(chǔ)在通信緩存中的第一輸入數(shù)據(jù),發(fā)送至第一用戶程序的工作區(qū)域(圖中D)。
[0116]按照第二用戶程序的命令,微處理器的第二核心利用存儲(chǔ)在第二用戶程序的工作區(qū)域中的輸入數(shù)據(jù),進(jìn)行順序計(jì)算,將輸出數(shù)據(jù)存儲(chǔ)至主存儲(chǔ)器上的通信緩存。另外,利用輸入數(shù)進(jìn)行計(jì)算,計(jì)算所輸出的動(dòng)作控制等數(shù)據(jù)。將計(jì)算出的動(dòng)作控制用數(shù)據(jù)發(fā)送至第二動(dòng)作計(jì)算程序進(jìn)行工作的區(qū)域。
[0117]按照第二動(dòng)作計(jì)算程序的命令,微處理器的第一核心利用第二動(dòng)作計(jì)算(方法)來進(jìn)行計(jì)算,計(jì)算出與第二控制程序的執(zhí)行周期對應(yīng)的用于向馬達(dá)發(fā)送的指令值,從而計(jì)算出輸出數(shù)據(jù)。然后將輸出數(shù)據(jù)傳送至用于向通信控制器傳送的通信緩存。
[0118]如果執(zhí)行完第二動(dòng)作控制程序,則第二控制程序執(zhí)行結(jié)束。時(shí)序管理程序監(jiān)視下個(gè)執(zhí)行周期的到來,如果檢測出執(zhí)行周期到來,則使微處理器的第二核心執(zhí)行第二控制程序。使微處理器的第二核心以恒定周期反復(fù)執(zhí)行一系列的處理。
[0119]在該例中,在第一控制程序的第二個(gè)周期的計(jì)算結(jié)束之前,已經(jīng)結(jié)束第二控制程序的計(jì)算,但第二控制程序以所設(shè)定的執(zhí)行周期的時(shí)機(jī)(第一控制程序的執(zhí)行周期的3倍)向外部設(shè)備發(fā)送輸出數(shù)據(jù)。
[0120]時(shí)序管理程序監(jiān)視下個(gè)執(zhí)行周期的到來,如果檢測出執(zhí)行周期到來,則使微處理器的第二核心執(zhí)行第二控制程序。使微處理器的第二核心以恒定周期反復(fù)執(zhí)行一系列的處理。
[0121]在本實(shí)施例中,分別并行地使微處理器的第一核心、第二核心利用第一控制程序以及第二控制程序來并行地執(zhí)行多個(gè)針對馬達(dá)的指令值。在該例中,說明了以第一控制程序的執(zhí)行周期的3倍的執(zhí)行周期來并行執(zhí)行第二控制程序的情況,但也可以以與第一控制程序相同的周期來執(zhí)行第二控制程序。也可以以第一控制程序的執(zhí)行周期的多倍周期來執(zhí)行第二控制程序。通過對包括多個(gè)馬達(dá)的控制在內(nèi)的控制程序進(jìn)行分割,進(jìn)而將第一控制程序中的包括計(jì)算用于向馬達(dá)發(fā)送的指令值的處理在內(nèi)的動(dòng)作程序分到第二控制程序中,從而能夠縮短第一執(zhí)行周期的周期。
[0122]在本實(shí)施例中,每當(dāng)執(zhí)行第一控制程序以及第二控制程序時(shí),從用于控制1的程序所含的輸出處理程序開始執(zhí)行,但也可以如圖所示那樣,從輸入處理程序開始執(zhí)行,周期性地執(zhí)行按順序執(zhí)行用戶程序、動(dòng)作計(jì)算程序、輸出處理程序。
[0123]進(jìn)而在本實(shí)施例中,說明了第一以及第二控制程序包括動(dòng)作控制程序的例子,但也可以使任何控制程序都不包括動(dòng)作計(jì)算程序的執(zhí)行。
[0124]<第二實(shí)施例>
[0125]接下來說明使用了多內(nèi)核處理器的第一、第二以及第三控制程序的執(zhí)行開始的時(shí)機(jī)。
[0126]圖9是表示第一?第三控制程序的執(zhí)行時(shí)機(jī)的圖。時(shí)序管理程序如果檢測出規(guī)定時(shí)刻的到來,則開始執(zhí)行第一控制程序、第二控制程序。使第三控制程序?yàn)榈却龍?zhí)行的狀
??τ O
[0127]如圖中所示,第一控制程序的1表示按照1控制程序的命令進(jìn)行的動(dòng)作。處理器的第一核心按照第一 1控制程序的命令,進(jìn)行輸出數(shù)據(jù)的發(fā)送、輸入數(shù)據(jù)的讀入。(由于是與所述的說明相同的處理,省略說明)
[0128]如圖中所示,第一控制程序的UPG,表示按照第一用戶程序的命令進(jìn)行的動(dòng)作。按照第一用戶程序的命令,微處理器的第一核心利用存儲(chǔ)在第一用戶程序的工作區(qū)域中的輸入數(shù)據(jù),來進(jìn)行順序計(jì)算,將輸出數(shù)據(jù)存儲(chǔ)至通信緩存,并且將其存儲(chǔ)至第一動(dòng)作計(jì)算程序進(jìn)行計(jì)算的區(qū)域。
[0129]如圖中所示,第一控制程序的MC表示按照第一動(dòng)作計(jì)算程序的命令進(jìn)行的動(dòng)作。微處理器的第一核心計(jì)算與第一控制程序的執(zhí)行周期對應(yīng)的用于向馬達(dá)發(fā)送的指令值,計(jì)算輸出數(shù)據(jù),將輸出數(shù)據(jù)存儲(chǔ)在用于向通信控制器傳送的緩存。每當(dāng)?shù)谝豢刂瞥绦蚪Y(jié)束時(shí),雖未圖示,但按照系統(tǒng)程序的命令,針對由第一控制程序使用的輸入數(shù)據(jù)、輸出數(shù)據(jù)、中間數(shù)據(jù),將用于第三控制程序的計(jì)算中的數(shù)據(jù)傳送至第三控制程序的工作區(qū)域。
[0130]如圖中所示,第二控制程序的1表示按照第二 1控制程序的命令進(jìn)行的動(dòng)作。處理器的第二核心按照第二 1控制程序的命令,進(jìn)行輸出數(shù)據(jù)的發(fā)送、輸入數(shù)據(jù)的讀入。(由于是與所述的說明相同的處理,省略說明)
[0131]如圖中所示,第二控制程序的UPG,表示按照第二用戶程序的命令進(jìn)行的動(dòng)作。按照第二用戶程序的命令,微處理器的第二核心利用存儲(chǔ)在第二用戶程序的工作區(qū)域中的輸入數(shù)據(jù),來進(jìn)行順序計(jì)算,將輸出數(shù)據(jù)存儲(chǔ)至通信緩存,并且將其存儲(chǔ)至第二動(dòng)作計(jì)算程序進(jìn)行計(jì)算的區(qū)域。
[0132]如圖中所示,第二控制程序的MC表示按照第二動(dòng)作計(jì)算程序的命令進(jìn)行的動(dòng)作。微處理器的第二核心計(jì)算與第二控制程序的執(zhí)行周期對應(yīng)的用于向馬達(dá)發(fā)送的指令值,計(jì)算輸出數(shù)據(jù),將輸出數(shù)據(jù)存儲(chǔ)在用于向通信控制器傳送的緩存。
[0133]時(shí)序管理程序,如果第一控制程序如上述那樣執(zhí)行結(jié)束,則使微處理器的核心3開始執(zhí)行第三控制程序。
[0134]圖中所示的控制程序的UPG,表示按照第三控制程序所含的第三用戶程序的命令進(jìn)行的動(dòng)作。按照第三用戶程序的命令,利用存儲(chǔ)在第三控制程序的執(zhí)行區(qū)域中的數(shù)據(jù),執(zhí)行第三用戶程序的計(jì)算而計(jì)算出輸出數(shù)據(jù),將第三控制程序的輸出數(shù)據(jù)存儲(chǔ)至第三控制程序的輸出緩存。
[0135]雖未圖示,時(shí)序管理程序與系統(tǒng)程序,在第一控制程序以及第三控制程序的執(zhí)行周期一致的時(shí)機(jī)之前,在第一控制程序開始前,將輸出數(shù)據(jù)從第三控制程序的輸出緩存復(fù)制到用于向通信控制器傳送的緩存。
[0136]通過該處理,如圖中的(A)所示,第三控制程序的輸出數(shù)據(jù),按照第一控制程序的執(zhí)行周期的第四個(gè)周期的第一輸出處理程序的命令,被傳送至通信控制器。
[0137]在該例子中,說明了使用三個(gè)處理器核心(第一核心?第三核心)來執(zhí)行第一控制程序、第二控制程序、第三控制程序的例子,但也能夠使用兩個(gè)處理器核心執(zhí)行。在利用兩個(gè)處理器核心執(zhí)行這些程序時(shí),時(shí)序管理程序在第一控制程序及第二控制程序的空閑時(shí)間,并且在執(zhí)行完第一控制程序后,開始執(zhí)行第三控制程序。在第三控制程序的執(zhí)行過程中,如果第一控制程序或第二控制程序開始執(zhí)行的時(shí)機(jī)到來,則時(shí)序管理程序停止執(zhí)行第三控制程序,在第一控制程序或第三控制程序的空閑時(shí)間重新開始執(zhí)行第三控制程序。
[0138]如果規(guī)定的控制程序開始執(zhí)行的開始時(shí)機(jī)(執(zhí)行周期開始的時(shí)機(jī))到來,則將第三控制程序的執(zhí)行設(shè)為等待狀態(tài),將第三控制程序開始執(zhí)行的時(shí)機(jī)設(shè)為第一控制程序結(jié)束執(zhí)行的時(shí)機(jī),從第一控制程序向第三控制程序的工作區(qū)域復(fù)制。
[0139]由此,用戶在研究由第一控制程序執(zhí)行的程序時(shí),能夠?qū)⒖梢曰ㄙM(fèi)比較長時(shí)間的程序分配給第三控制程序。由此,能夠進(jìn)一步縮短第一控制程序的執(zhí)行周期。
【主權(quán)項(xiàng)】
1.一種控制裝置,經(jīng)由網(wǎng)絡(luò)而與控制對象設(shè)備連接,對來自所述控制對象設(shè)備的輸入數(shù)據(jù)進(jìn)行計(jì)算,輸出計(jì)算結(jié)果,從而對控制對象設(shè)備進(jìn)行控制,所述控制裝置的特征在于,具有微處理器、通信回路和存儲(chǔ)器, 所述微處理器具有第一核以及第二核; 所述通信回路用于在所連接的所述控制對象設(shè)備之間進(jìn)行通信; 所述存儲(chǔ)器用于存儲(chǔ)如下程序: 應(yīng)該由所述第一核執(zhí)行的第一用戶程序和應(yīng)該由所述第二核執(zhí)行的第二用戶程序,它們用于針對所述控制對象設(shè)備規(guī)定控制內(nèi)容, 應(yīng)該由所述第一核執(zhí)行的第一動(dòng)作計(jì)算程序,其用于按照來自所述用戶程序的指示以及第一周期,來計(jì)算針對所述控制對象設(shè)備的指令值, 應(yīng)該由所述第二核執(zhí)行的第二動(dòng)作計(jì)算程序,其用于按照來自所述用戶程序的指示以及第二周期,來計(jì)算針對所述控制對象設(shè)備的指令值, 應(yīng)該由所述第一核執(zhí)行的第一輸入程序和應(yīng)該由所述第二核執(zhí)行的第二輸入程序,它們的狀態(tài)為,能夠針對經(jīng)由所述通信回路而被存儲(chǔ)至存儲(chǔ)器中的來自所述控制對象設(shè)備的輸入數(shù)據(jù)進(jìn)行計(jì)算, 應(yīng)該由所述第一核執(zhí)行的第一輸出程序和應(yīng)該由所述第二核執(zhí)行的第二輸出程序,它們生成能夠經(jīng)由通信回路發(fā)送的輸出數(shù)據(jù),所述輸出數(shù)據(jù)包括所述指令值, 時(shí)序管理程序; 所述時(shí)序管理程序,使所述第一核以第一周期來反復(fù)執(zhí)行所述第一輸入程序、所述第一輸出程序、所述第一用戶程序、所述第一動(dòng)作計(jì)算程序,使所述第二核以第二周期來反復(fù)執(zhí)行所述第二輸入程序、所述第二輸出程序、所述第二用戶程序、所述第二動(dòng)作計(jì)算程序。
【文檔編號】G05B19/042GK106020009SQ201510812446
【公開日】2016年10月12日
【申請日】2015年11月20日
【發(fā)明人】江口重行, 前川典弘, 田村嘉英, 西山佳秀
【申請人】歐姆龍株式會(huì)社