>[0059]另外,本示例的可編程控制器系統(tǒng)是具有多個(gè)將控制器(CPU模塊)和各I/O機(jī)器連接到設(shè)備級(jí)網(wǎng)絡(luò)而構(gòu)成的上述“配置”,且具有各控制器與控制器級(jí)網(wǎng)絡(luò)相連接的結(jié)構(gòu)的可編程控制器系統(tǒng)。本手法涉及例如在上述多重配置結(jié)構(gòu)的系統(tǒng)中的各配置的周期開始定時(shí)的同步。
[0060]圖1是本示例的可編程控制器系統(tǒng)的結(jié)構(gòu)圖。
[0061]圖示的結(jié)構(gòu)本身簡(jiǎn)要來(lái)說(shuō)可以是與上述現(xiàn)有的圖22等的結(jié)構(gòu)大致相同的結(jié)構(gòu),但本示例的情況下,現(xiàn)有的通信模塊的功能被組合到(PU模塊中。
[0062 ] S卩,圖示的各配置1 (由虛線包圍的部分)由CPU模塊11、I /0模塊12等構(gòu)成。各模塊
11、12與設(shè)備級(jí)網(wǎng)絡(luò)13相連接。另外,配置10也可以被稱為控制單元10等??刂茊卧?0也可以視作通過(guò)將CPU模塊11(控制器)和I/O模塊12(輸入輸出對(duì)象的一個(gè)示例)連接到設(shè)備級(jí)網(wǎng)絡(luò)13來(lái)構(gòu)成的結(jié)構(gòu)。
[0063]CPU模塊11經(jīng)由設(shè)備級(jí)網(wǎng)絡(luò)13與各I/0模塊12進(jìn)行通信。此外,CPU模塊11也與控制器級(jí)網(wǎng)絡(luò)I相連接。CPU模塊11也具有上述現(xiàn)有的通信模塊的功能,經(jīng)由控制器級(jí)網(wǎng)絡(luò)I與其他的配置10的CPU模塊11進(jìn)行通信。另外,現(xiàn)有的通信模塊的功能是控制器級(jí)網(wǎng)絡(luò)I上的通信功能。
[0064]此外,與以往相同,控制器級(jí)網(wǎng)絡(luò)I還可以連接有用于進(jìn)行系統(tǒng)整體的監(jiān)視控制、生產(chǎn)管理的服務(wù)器裝置2等。各CPU模塊11也可經(jīng)由控制器級(jí)網(wǎng)絡(luò)I與服務(wù)器裝置2進(jìn)行通信
[0065]這里,CPU模塊11例如使用在先申請(qǐng)(PCT/JP2013/050121)中的內(nèi)置控制器級(jí)網(wǎng)絡(luò)功能的控制器,但并不限于該示例。例如也可以是具有從上述現(xiàn)有的通信模塊獲取與處理周期相對(duì)應(yīng)的中斷信號(hào)的結(jié)構(gòu)的CPU模塊等。也就是說(shuō),并不一定要有通信模塊的功能。
[0066]圖2是上述CPU模塊11的結(jié)構(gòu)圖。如上所述,CPU模塊11不僅具有設(shè)備級(jí)網(wǎng)絡(luò)13上的通信功能,也具有控制器級(jí)網(wǎng)絡(luò)I上的通信功能,因此也具有與此對(duì)應(yīng)的結(jié)構(gòu)。
[0067]圖示的示例中的CPU模塊11以CPU21、控制器級(jí)網(wǎng)絡(luò)控制LSI (NET LSI) 22、設(shè)備級(jí)網(wǎng)絡(luò)控制LSI (DEV LSI )24等作為主要的結(jié)構(gòu)。并且,具有快閃存儲(chǔ)器(FLASH MEM)23、SRAM25、DDR SDRAM26、信號(hào)線27、PC I/F28等。
[0068]CPU21對(duì)控制器應(yīng)用程序的執(zhí)行(控制運(yùn)算)、上述NET LSI22、DEV LSI24等進(jìn)行控制。另外,用于在CPU21中執(zhí)行上述各種功能的程序(系統(tǒng)軟件、控制器應(yīng)用程序等)預(yù)先存儲(chǔ)在非易失性存儲(chǔ)器即上述FLASH MEM23中XPU21通過(guò)執(zhí)行該程序來(lái)實(shí)現(xiàn)包含上述控制等的各種功能。另外,執(zhí)行時(shí),程序被展開到高速的存儲(chǔ)器設(shè)備即上述DDR SDRAM26等來(lái)進(jìn)行執(zhí)行。
[0069]CPU21可以由一個(gè)CPU構(gòu)成,也可以由多個(gè)CPU構(gòu)成。關(guān)于后者,多個(gè)CPU可以分別對(duì)應(yīng)各功能。
[0070]本示例中,對(duì)DEV LSI24設(shè)置用于保存控制數(shù)據(jù)等的SRAM25ARAM25中暫時(shí)性地保存有例如后述的TF幀及MC幀等。CPU21也能經(jīng)由DEV LSI24訪問(wèn)SRAM25。
[0071]DEV LSI24內(nèi)置有計(jì)時(shí)器(??ΜΕΚ)24&<3??ΜΕΚ24&用于使設(shè)備級(jí)網(wǎng)絡(luò)13上的各連接機(jī)器(I/O模塊12等)的數(shù)據(jù)輸出定時(shí)同步。也可以將TMER24a的一個(gè)示例視作為后述的節(jié)拍計(jì)數(shù)器41。也就是說(shuō),IlMER24a在本示例中基本制作出l(ms)周期的節(jié)拍周期。當(dāng)然,并不限于該示例。
[0072]同樣,NETLSI22也內(nèi)置有計(jì)數(shù)器(IlMER)22a。關(guān)于控制器級(jí)網(wǎng)絡(luò)I上的通信,利用TMER22a來(lái)實(shí)現(xiàn)各控制器(CPU模塊11)間的同步。本示例中,基本制作出5 (ms)周期的控制周期。
[0073]另外,本說(shuō)明中,將設(shè)備級(jí)網(wǎng)絡(luò)13所涉及的周期稱為節(jié)拍周期,將控制器級(jí)網(wǎng)絡(luò)I所涉及的周期稱為控制器周期。由此,上述具體例中,節(jié)拍周期為l(ms)周期,控制器周期為5(ms)周期。周期開始定時(shí)是各周期的開始定時(shí),例如在節(jié)拍周期的情況下,從任意的節(jié)拍周期開始定時(shí)起的I (ms)后是下一個(gè)節(jié)拍周期開始定時(shí)。
[0074]另外,NET LSI22經(jīng)由圖示的NET連接器與控制器級(jí)網(wǎng)絡(luò)I相連接。同樣,DEV LSI24經(jīng)由圖示的DEV NET連接器與設(shè)備級(jí)網(wǎng)絡(luò)13相連接。
[0075]此外,設(shè)有連接NET LSI22和DEV LSI24之間的上述信號(hào)線27 JET LSI22和DEVLSI24能經(jīng)由信號(hào)線27直接收發(fā)信號(hào)。
[0076]作為一個(gè)示例,可以將信號(hào)線27視作為來(lái)自NET LSI22和DEV LSI24雙方的中斷信號(hào)線。這里,本示例的控制器級(jí)網(wǎng)絡(luò)1、設(shè)備級(jí)網(wǎng)絡(luò)13上的通信均以各自的規(guī)定周期來(lái)執(zhí)行,基本而言,控制器級(jí)網(wǎng)絡(luò)I的周期比設(shè)備級(jí)網(wǎng)絡(luò)13的周期要長(zhǎng)。這里,作為具體例,如上所述,控制器級(jí)網(wǎng)絡(luò)I為5(ms)周期,設(shè)備級(jí)網(wǎng)絡(luò)13為l(ms)周期。并且,NET LSI22和DEV LSI24彼此可以經(jīng)由上述信號(hào)線27來(lái)通知表示自己的周期開始定時(shí)的中斷。
[0077]這里,本手法中,關(guān)于上述多個(gè)CPU模塊11,將其中一臺(tái)設(shè)為主站點(diǎn),將剩余CPU模塊11設(shè)為從站點(diǎn)。然后,關(guān)于控制器級(jí)網(wǎng)絡(luò)I,以主站點(diǎn)的控制器周期開始定時(shí)作為基準(zhǔn),使各從站點(diǎn)的控制器周期開始定時(shí)同步。然而,在此之前,主站點(diǎn)例如如下所示那樣決定自己的控制器周期開始定時(shí)。
[0078]S卩,本手法中,主站點(diǎn)中,基于自己的上述節(jié)拍周期開始定時(shí)生成自己的上述控制器周期開始定時(shí)。此時(shí),利用經(jīng)由上述圖2的信號(hào)線27的LSI彼此的中斷通知。也就是說(shuō),上述具體例的情況下,NET LSI22經(jīng)由信號(hào)線27每隔5(ms)向DEV LSI24發(fā)送中斷通知。另一方面,DEV LSI24經(jīng)由信號(hào)線27每隔l(ms)向NET LSI22發(fā)送中斷通知。
[0079]利用這些,NET LSI22基于來(lái)自上述DEV LSI24的每隔l(ms)的中斷通知,來(lái)決定控制器周期開始定時(shí)。上述示例中,來(lái)自DEV LSI24的中斷通知達(dá)到5次成為控制器級(jí)網(wǎng)絡(luò)I的I周期。
[0080]然后,基于上述決定(調(diào)整)后的主站點(diǎn)的控制器周期開始定時(shí)來(lái)調(diào)整(校正)各從站點(diǎn)的控制器周期開始定時(shí)。也就是說(shuō),使各從站點(diǎn)的控制器周期與主站點(diǎn)的控制器周期同步。這使用例如上述在先申請(qǐng)(PCT/JP2013/050121)的方法。
[0081]并且,各從站點(diǎn)的每一個(gè)基于調(diào)整(校正)后的控制器周期開始定時(shí),調(diào)整自己的設(shè)備級(jí)網(wǎng)絡(luò)13的節(jié)拍周期開始定時(shí)。也就是說(shuō),對(duì)于各從站點(diǎn)的每一個(gè),在上述圖2的結(jié)構(gòu)中,DEV LSI24基于來(lái)自NET LSI22的經(jīng)由信號(hào)線27的中斷通知(每5ms—次的通知)來(lái)調(diào)整自己的設(shè)備級(jí)網(wǎng)絡(luò)13的節(jié)拍周期開始定時(shí)。對(duì)于該調(diào)整處理將在后文進(jìn)行闡述。
[0082]另外,圖2所示的結(jié)構(gòu)是一個(gè)示例,但并不限于該示例。例如,作為其他示例,也可以在CPU21中包含NET LSI22的功能。例如控制器級(jí)網(wǎng)絡(luò)I可以采用基于Ethernet(注冊(cè)商標(biāo))的網(wǎng)絡(luò),也可以是在CPU21中搭載有Ethernet (注冊(cè)商標(biāo))功能的形式等。該示例中,信號(hào)線27當(dāng)然設(shè)置在CPU21和DEV LSI24之間。例如,從DEV LSI24經(jīng)由信號(hào)線27向CPU21發(fā)送中斷信號(hào)。由CPU21利用例如用于DEV LSI24的寄存器讀/寫的接口來(lái)進(jìn)行中斷。然而,并不限于該示例,例如可以將信號(hào)線27視作雙方的寄存器讀/寫的接口。
[0083]或者,本示例中,示出了NET LSI22和DEV LSI24作為不同芯片的情況,但也可以利用大規(guī)模LSI,在同一LSI上實(shí)現(xiàn)NET LSI22及DEV LSI24的功能。
[0084]無(wú)論如何,本示例的各CPU模塊11中,能經(jīng)由例如上述信號(hào)線27在NET LSI22和DEVLSI24之間向?qū)Ψ酵ㄖ髯缘闹袛喽〞r(shí)。由此,在CPU模塊11內(nèi),能進(jìn)行校正,使得自己的控制器周期開始定時(shí)與自己的節(jié)拍周期開始定時(shí)相匹配。相反地,也能進(jìn)行校正,使得自己的節(jié)拍周期開始定時(shí)與自己的控制器周期開始定時(shí)相匹配。
[0085]由此,能使例如所有的配置的控制器周期開始定時(shí)及節(jié)拍周期開始定時(shí)同步。圖3示出其具體圖像。
[0086]圖3的示例也與上述相同,將控制器級(jí)網(wǎng)絡(luò)I的周期(控制器周期)設(shè)為5ms,將節(jié)拍中斷定時(shí)的周期(節(jié)拍周期)設(shè)為lms。
[0087]圖3示出在主站點(diǎn)中已經(jīng)使自己的控制器周期開始定時(shí)與自己的節(jié)拍周期開始定時(shí)同步后的狀態(tài)。
[0088]主站點(diǎn)例如若在上升沿時(shí)識(shí)別到本站點(diǎn)是主站,則將本站點(diǎn)的節(jié)拍周期開始定時(shí)作為控制器周期開始定時(shí)生成的基準(zhǔn)計(jì)時(shí)器。也就是說(shuō),本示例中,將每5次節(jié)拍周期開始定時(shí)作為控制器周期開始定時(shí)。由此,主站點(diǎn)中,自己的節(jié)拍周期開始定時(shí)與控制器周期開始定時(shí)處于同步。
[0089]之后,使各從站點(diǎn)的控制器周期開始定時(shí)與主站點(diǎn)的控制器周期開始定時(shí)同步。由此,雖未圖示,但從站點(diǎn)的控制器周期開始定時(shí)變?yōu)榕c主站點(diǎn)相同。如圖所示,對(duì)于任意的從站點(diǎn),設(shè)為自己的控制器周期開始定時(shí)與自己的節(jié)拍周期開始定時(shí)會(huì)產(chǎn)生偏移。該偏移量為圖3、圖4所示“P”。
[0090]由此,本手法中,從站點(diǎn)中,基于自己的控制器周期開始定時(shí)修正自己的節(jié)拍周期開始定時(shí)的上述偏移P。由此,使自己的節(jié)拍周期開始定時(shí)與自己的控制器周期開始定時(shí)同步。這意味著使自己的節(jié)拍周期開始定時(shí)與主站點(diǎn)的節(jié)拍周期開始定時(shí)同步。
[0091]由此,各從站點(diǎn)經(jīng)由控制器周期間接地檢測(cè)出自己的節(jié)拍周期開始定時(shí)與主站點(diǎn)的節(jié)拍周期開始定時(shí)間的偏移量P,通過(guò)對(duì)該偏移進(jìn)行校正,使自己的節(jié)拍周期開始定時(shí)與主站點(diǎn)的節(jié)拍周期開始定時(shí)同步。
[0092]然而,如后文利用圖4所說(shuō)明的那樣,若存在有直接將檢測(cè)到的偏移量P作為校正量的情況,則也有除此以外的情況。此外,并不限于一次性對(duì)校正量部分進(jìn)行校正,也可以設(shè)置每一次能校正的上限值。作為一個(gè)示例,這里將校正的上限值(校正值)設(shè)為0.05ms。由此,在校正量>上限值的情況下,分多次來(lái)對(duì)偏移進(jìn)行校正。例如在假設(shè)校正量為0.15ms的情況下,以每次0.05ms進(jìn)行3次校正。圖4(a)、圖4(b)中示出這樣的偏移量.校正量的檢測(cè).計(jì)算的圖像和校正的圖像。
[0093]圖4(a)、圖4(b)中根據(jù)上述情況示出主站點(diǎn)和任意的從站點(diǎn)各自的節(jié)拍周期開始定時(shí),且示出偏移量的一個(gè)示例。這里,如上所述,檢測(cè)出的偏移量“P”是從任意的控制器周期開始定時(shí)起到緊接其之后的從站點(diǎn)的節(jié)拍周期開始定時(shí)為止的時(shí)間。然而,并不限于將檢測(cè)出的偏移量“P”直接作為校正量的情況。另外,后述的AJUST_HME表示校正量。
[0094]例如,本示例中,在圖4(a)所示的示例的情況下,將檢測(cè)出的偏移量“P”直接作為校正量“AJUST_HME”,并且將后述的校正方向“AJST_VE(r’設(shè)為“+”。另一方面,在圖4(b)所示的示例的情況下,根據(jù)檢測(cè)出的偏移量“P”計(jì)算出“節(jié)拍周期-P”,將計(jì)算結(jié)果作為后述的校正量“AJUST_HME”,并且將后述的校正方向“AJST_VEC”設(shè)為。另外,后述的AJUST_??ΜΕ是從站點(diǎn)應(yīng)調(diào)整的相位偏移時(shí)間(校正量)。
[0095]作為一個(gè)示例,根據(jù)上述偏移量“P”是在“節(jié)拍周期/2”(本示例中為0.5ms)以上還是小于“節(jié)拍周期/2”來(lái)改變校正量和校正方向。在偏移量“P”為“節(jié)拍周期/2”以上的情況下,將校正量設(shè)為“節(jié)拍周期-P”,并向+方向進(jìn)行修正。在偏移量“P”小于“節(jié)拍周期/2”的情況下,將偏移量P直接作為校正量,并向-方向進(jìn)行修正。
[0096]圖4(a)是表示偏移量“P”小于“節(jié)拍周期/2”的情況的一個(gè)示例。圖4(b)是表示偏移量“P”在“節(jié)拍周期/2”以上的情況的一個(gè)示例。
[0097]本示例中,對(duì)校正值(每一次的校正量)設(shè)置上限,將該上限值設(shè)定作為后述的“調(diào)整的單位時(shí)間ajstjjnit”。本示例中,ajst_unit=0.05ms。
[0098]并且,在向上述-方向進(jìn)行修正的情況下,節(jié)拍周期=“節(jié)拍周期-AJST_UNIT”。本示例中,節(jié)拍周期=1-0.05 = 0.95ms。由此,如圖4(a)所示,校正期間中節(jié)拍周期==
0.95ms ο
[0099]另一方面,在向上述+方向進(jìn)行修正的情況下,節(jié)拍周期=“節(jié)拍周期+AJST_UNIT”。本示例中,節(jié)拍周期= 1+0.05 = 1.05ms。由此,如圖4(b)所示,校正期間中節(jié)拍周期==1.05ms ο
[0100]由此,本示例中,通過(guò)暫時(shí)性地改變節(jié)拍周期的長(zhǎng)度來(lái)校正偏移。尤其,通過(guò)在設(shè)備級(jí)網(wǎng)絡(luò)的多個(gè)周期中進(jìn)行校正,即對(duì)每一次的校正量設(shè)置上限,能在不發(fā)生設(shè)備級(jí)網(wǎng)絡(luò)的數(shù)據(jù)破損、處理遺漏的情況下實(shí)現(xiàn)系統(tǒng)整體的同步。
[0101]另外,偏移的校正在處理上是在各從站點(diǎn)的每一個(gè)中對(duì)自己的控制器周期開始定時(shí)與節(jié)拍周期開始定時(shí)間的偏移的校正,但本質(zhì)上,如圖4(a)、(b)所示那樣是對(duì)主站點(diǎn)的節(jié)拍周期開始定時(shí)與各從站點(diǎn)的節(jié)拍周期開始定時(shí)間的偏移的校正。
[0102]如上所述,本手法中,通過(guò)將“主站點(diǎn)的節(jié)拍周期開始定時(shí)”作為基準(zhǔn),由此開始以“主站點(diǎn)的控制器周期開始定時(shí)各從站點(diǎn)的控制器周期開始定時(shí)各從站點(diǎn)的節(jié)拍周期開始定時(shí)”的順序進(jìn)行周期開始定時(shí)校正,從而能使整體同步化。
[0103]例如,如上述圖3、圖4說(shuō)明的那樣,各從站點(diǎn)中的自己的節(jié)拍周期開始定時(shí)的校正功能(計(jì)時(shí)器控制部)例如搭載于DEV_LSI 24。
[0104]圖5表示DEV_LSI24的計(jì)時(shí)器控制部的結(jié)構(gòu)例。
[0105]本示例中,采用將計(jì)時(shí)器校正功能搭載于DEVLSI24的硬件功能,但并不限于該示例,例如也能作為在CPU21上進(jìn)行動(dòng)作的軟件來(lái)實(shí)現(xiàn)。
圖6示出圖5的計(jì)時(shí)器控制部所涉及的各種信號(hào)的寄存器接口例。
[0106]首先,參照?qǐng)D6,對(duì)各種信號(hào)進(jìn)行說(shuō)明。
[0107]如圖6所示,本示例的計(jì)時(shí)器控制部中利用AJUST_EN31、AJUST_VEC32、AJUST_HME33、AJUST_UNIT34、AJUST_STA35及REMAIN_HME36等各種信號(hào)。另外,不僅如此,計(jì)時(shí)器控制部?jī)?nèi)還生成圖5所示的“takt_ajust”、“is_updated”信號(hào)等。
[0108]AJUST_EN31、AJUST_I1ME33、AJUST_UNIT34 輸入至圖 5 所示的校正值生成部 42。另夕卜,關(guān)于圖5,在下文中進(jìn)行說(shuō)明。校正值生成部42基于這些輸入等生成AJUST_STA35、REMAIN_TME36 等。AJUST_EN31、AJUST_TME33、AJUST_UNIT34、AJUST_VEC32 在外部(例如NET LSI22)生成。
[0109]另外,AJUST_VEC32輸入至圖5所示的加法減法器43。另外,圖6所示的寄存器可以視作內(nèi)置于校正值生成部42的裝置,但并不限于此。
[0110]AJUST_UNIT34如已說(shuō)明的那樣是預(yù)先設(shè)定的上限值(調(diào)整的單位時(shí)間),這里設(shè)為ajust_unit=0.05ms。如上所述,ajust_iime33是基于檢測(cè)到的上述偏移量“P”來(lái)計(jì)算并決定的,是從站點(diǎn)應(yīng)調(diào)整的相位偏移時(shí)間(校正量)。如上所述,AJUST_VEC32也是基于上述偏移量“P”而決定的表示調(diào)整方向(+或-)的參數(shù)。
[0111]AJUST_EN31是表示調(diào)整請(qǐng)求的位,在其上升沿處被識(shí)別為調(diào)整開始。AJUST_EN31是由上位軟件或控制器級(jí)網(wǎng)絡(luò)發(fā)送的校正請(qǐng)求接受位。
[0112]AJUST_EN31例如如上所述那樣由NET LSI22生成并輸入至校正值生成部42 JETLSI22基于自己生成的控制器周期開始定時(shí)(5ms周期)和從DEV LSI24經(jīng)由信號(hào)線27通知的每隔上述I (ms)的中斷通知,來(lái)求出上述偏移量“P”。然后,據(jù)此生成上述AJUST_TME33及AJST_VEC32。另外,AJUST_HME33表示校正量。AJ