、ΝΕΤ_??ΜΕ96、F_SEQ97、STA98構(gòu)成。另外,也可以將它們視作幀頭文件的數(shù)據(jù)結(jié)構(gòu)。
[0216]H_TYPE91表示幀頭文件類型,SIZE92表示幀整體的大小。FC93表示幀種類,這里保存有TC幀的幀種類。S_ADDR94、R_ADDR95表示發(fā)送站點(diǎn)編號、接收站點(diǎn)編號。
[0217]F_SEQ97是幀編號,是無論幀種類如何,每次發(fā)送幀時(shí)均進(jìn)行遞增并附加的通用編號。這是用于在接收側(cè)中與ΝΕΤ_??ΜΕ96等進(jìn)行匹配以檢查幀接收遺漏的信息。
[0218]并且,ΝΕΤ_??ΜΕ96例如表示該TC幀90的發(fā)送時(shí)間,例如使用未圖示的計(jì)時(shí)器的當(dāng)前值,但并不限于該示例。本示例中,使用“計(jì)時(shí)器值”(ΝΕΤ_??ΜΕ)作為唯一表示數(shù)據(jù)采集定時(shí)的信息,但也可以使用表示控制器級網(wǎng)絡(luò)的周期的計(jì)數(shù)器值(掃描順序編號)等。另外,上述計(jì)時(shí)器值是TC幀的發(fā)送源裝置(例如主站點(diǎn))內(nèi)置的計(jì)時(shí)器的值。
[0219]另一方面,圖示的示例中,數(shù)據(jù)幀10(^H_TYPE101、SIZE102、FC103、S_ADDR104、R_ADDR105、NET_HME106、F_SEQ107、STA108、控制數(shù)據(jù) 109、采集數(shù)據(jù) 110 等構(gòu)成。
[0220]可以將上述H_TYPE101?STA108視作為與上述H_TYPE91?STA98大致相同,此處省略說明。然而,F(xiàn)Cl 03中保存有數(shù)據(jù)幀的幀種類。
[0221 ]這里,控制數(shù)據(jù)109中保存有例如通過上述MC幀輸出到各1模塊的輸出數(shù)據(jù)。
[0222]采集數(shù)據(jù)110中包含有例如通過上述TF幀從各1模塊采集到的數(shù)據(jù)(上述“輸入”)即圖示的數(shù)據(jù)115,除此以外還包含圖示的D_TYPE111、數(shù)據(jù)部大小(DT_SIZE)112、NET_??ΜΕ113、本站點(diǎn)編號(S_ADDR) 114等。另外,D_TYPE111是表示該數(shù)據(jù)為采集數(shù)據(jù)的識別信息。
[0223]這里,ΝΕΤ_??ΜΕ113通過復(fù)制上述TC幀90的ΝΕΤ_??ΜΕ96而得到。由此,在獲取到該采集數(shù)據(jù)110等的裝置側(cè)(主站點(diǎn)、服務(wù)器裝置2等)中,能判別各采集數(shù)據(jù)110是涉及哪一個(gè)控制器周期的數(shù)據(jù)。由此,根據(jù)上述情況,能判別各采集數(shù)據(jù)110的采集定時(shí)。
[0224]此處,上述實(shí)施例2中,在控制器周期為節(jié)拍周期的N倍(N= 2,3,4,5,……;2倍以上的整數(shù)倍)的情況下,僅采集最接近控制器周期開始定時(shí)的數(shù)據(jù)。
[0225]因此,在各控制器(從站點(diǎn))內(nèi)設(shè)置暫時(shí)儲(chǔ)存來自上述1模塊的采集數(shù)據(jù)等的中間緩沖器(未圖示),將各節(jié)拍周期的每一個(gè)的采集數(shù)據(jù)等依次儲(chǔ)存于該中間緩沖器。在每個(gè)控制器周期開始定時(shí),將儲(chǔ)存在中間緩沖器的所有數(shù)據(jù)打包發(fā)送至控制器級網(wǎng)絡(luò)的發(fā)送目的地(主站點(diǎn)等),并且刪除中間緩沖器的儲(chǔ)存數(shù)據(jù)。將該方式作為實(shí)施例2的變形例。
[0226]這里,在任意的控制器周期接收到數(shù)據(jù)包的主站點(diǎn)等中雖然了解到該數(shù)據(jù)包是該控制器周期之前等的規(guī)定期間內(nèi)的采集數(shù)據(jù)組等,但不知道該各個(gè)數(shù)據(jù)是涉及哪個(gè)節(jié)拍周期的數(shù)據(jù)。因此,如圖15所示,優(yōu)選為對各數(shù)據(jù)附加用于識別是涉及哪個(gè)節(jié)拍周期的數(shù)據(jù)的識別信息。該識別信息例如在儲(chǔ)存于中間緩沖器時(shí)進(jìn)行附加。由此,該示例中,在生成并發(fā)送數(shù)據(jù)包時(shí),只要簡單地將中間緩沖器的儲(chǔ)存數(shù)據(jù)保存到數(shù)據(jù)包。
[0227]圖15是上述實(shí)施例2的變形例所使用的數(shù)據(jù)幀100的數(shù)據(jù)結(jié)構(gòu)例。
[0228]圖15中對與圖14所示的數(shù)據(jù)幀100的數(shù)據(jù)結(jié)構(gòu)大致相同的數(shù)據(jù)標(biāo)注相同標(biāo)號,并省略其說明。
[0229]圖15所示的示例中,相對于圖14所示的示例,在采集數(shù)據(jù)110中進(jìn)一步追加圖示的10_SIZE121、采集數(shù)(10_NUM)122,并且對多個(gè)各采集數(shù)據(jù)124的每一個(gè)附加表示設(shè)備級中的采集周期的10_SEQ123 (識別信息)。
[0230]圖16表示實(shí)施例2的變形例中的數(shù)據(jù)采集動(dòng)作例的圖。
[0231 ]在圖16所示的示例中,控制器周期的長度是節(jié)拍周期的3倍。
[0232]因此,在各控制器周期的每一個(gè)中,將3個(gè)節(jié)拍周期的采集數(shù)據(jù)發(fā)送至控制器級網(wǎng)絡(luò)上的發(fā)送目的地。
[0233]該示例中,相對于一次控制器周期,在3次節(jié)拍周期開始定時(shí)的每一次將采集數(shù)據(jù)保存并儲(chǔ)存于中間緩沖器。此時(shí),將上述識別信息(相當(dāng)于10_SEQ123)附加到各采集數(shù)據(jù)。
[0234]在圖16所示的示例中,首先在上述3次節(jié)拍周期中的最初的節(jié)拍周期中,將此時(shí)的采集數(shù)據(jù)等保存于中間緩沖器。此時(shí),在圖中,附加“I”來作為上述識別信息。對此時(shí)所有的采集數(shù)據(jù)等附加“I”。由此,成為在中間緩沖器中保存有圖示的儲(chǔ)存數(shù)據(jù)133的狀態(tài)。
[0235]同樣,在第2次的節(jié)拍周期中,將此時(shí)的采集數(shù)據(jù)等追加保存到中間緩沖器,并且對該采集數(shù)據(jù)等附加“2”以作為上述識別信息。由此,成為在中間緩沖器中保存有圖示的儲(chǔ)存數(shù)據(jù)134的狀態(tài)。
[0236]同樣,在第3次的節(jié)拍周期中,將此時(shí)的采集數(shù)據(jù)等追加保存到中間緩沖器,并且對該采集數(shù)據(jù)等附加“3”以作為上述識別信息。由此,成為在中間緩沖器中保存有圖示的儲(chǔ)存數(shù)據(jù)135的狀態(tài)。
[0237]由此,對任意控制器周期內(nèi)的采集數(shù)據(jù)附加識別信息,并儲(chǔ)存于中間緩沖器。然后,在下一個(gè)控制器周期的規(guī)定定時(shí)(例如在圖示的控制器CTLl的情況下為圖示的“D1”的定時(shí)),將中間緩沖器的所有儲(chǔ)存數(shù)據(jù)打包發(fā)送到控制器級網(wǎng)絡(luò)的發(fā)送目的地(主站點(diǎn)等)。在上述示例中,將儲(chǔ)存數(shù)據(jù)135發(fā)送到規(guī)定的發(fā)送目的地。
[0238]在發(fā)送目的地側(cè),基于上述各數(shù)據(jù)的識別信息,能判別各數(shù)據(jù)是上述控制器周期內(nèi)的哪一個(gè)定時(shí)(第一次的節(jié)拍周期、第二次的節(jié)拍周期、第三次的節(jié)拍周期)的采集數(shù)據(jù)。
[0239]根據(jù)上述實(shí)施例2,首先能解決圖26所說明的問題。即,能在所有的控制器中,使設(shè)備級網(wǎng)絡(luò)所涉及的數(shù)據(jù)的輸入、輸出定時(shí)同步。并且,例如能在保證集中于發(fā)送目的地裝置等的各I/O數(shù)據(jù)的同時(shí)性的同時(shí),提高時(shí)間序列的判別精度。也就是說,能高精度地判別哪個(gè)數(shù)據(jù)是與哪個(gè)數(shù)據(jù)同時(shí)采集的數(shù)據(jù)、或各數(shù)據(jù)中的每一個(gè)與其他數(shù)據(jù)在時(shí)間序列上的前后關(guān)系等。高精度意味著與節(jié)拍周期的長度(此處為lms)相對應(yīng)。
[0240]以往,如圖26說明的那樣,即使是在同一控制器周期從各控制器采集而來的數(shù)據(jù),也不一定是同一定時(shí)采集到的數(shù)據(jù)。以往,只能獲得與控制器周期的長度(此處為5ms)相對應(yīng)的精度。實(shí)施例2中能解決上述問題。
[0241 ]圖17是本示例的可編程控制器系統(tǒng)的功能框圖。
[0242]本示例的可編程控制器系統(tǒng)基本具有多個(gè)由控制器和各輸入輸出對象與第2網(wǎng)絡(luò)相連接而構(gòu)成的控制單元,該多個(gè)控制器還與第I網(wǎng)絡(luò)相連接,各控制器根據(jù)所述第I網(wǎng)絡(luò)所涉及的第I周期和所述第2網(wǎng)絡(luò)所涉及的第2周期來進(jìn)行運(yùn)算/通信動(dòng)作。
[0243]上述第I網(wǎng)絡(luò)的一個(gè)示例是上述控制器級網(wǎng)絡(luò)I,因此,上述第I周期的一個(gè)示例是上述控制器周期。上述第2網(wǎng)絡(luò)的一個(gè)示例是上述設(shè)備級網(wǎng)絡(luò)13,因此,上述第2周期的一個(gè)示例是上述節(jié)拍周期。
[0244]上述多個(gè)控制器是特定控制器150、以及該特定控制器150以外的各控制器160(下面記為其他控制器160)等。另外,特定控制器150的一個(gè)示例是上述主站點(diǎn)的控制器(CPU模塊等)。其他控制器160的一個(gè)示例是上述各從站點(diǎn)的控制器。
[0245]上述特定控制器150包括第I周期生成部151,該第I周期生成部151基于自己的所述第2周期開始定時(shí)來決定自己的所述第I周期開始定時(shí)。
[0246]上述其他控制器160分別具有第I周期同步部161、第2周期校正部162等。
[0247]第I周期同步部161使自己的上述第I周期開始定時(shí)與特定控制器150的第I周期開始定時(shí)同步。作為一個(gè)示例,上述功能可通過上述在先申請(PCT/JP2013/050121)的控制器級網(wǎng)絡(luò)上的各控制器的控制器周期的同步處理來實(shí)現(xiàn),但并不限于該示例。
[0248]第2周期校正部162基于自己的第I周期開始定時(shí)對自己的第2周期開始定時(shí)進(jìn)行校正。另外,如上所述,自己的第I周期開始定時(shí)與特定控制器150的第I周期開始定時(shí)同步。并且,利用上述第I周期生成部151,在特定控制器150中使其第I周期開始定時(shí)與第2周期開始定時(shí)同步。因而,通過進(jìn)行上述第2周期校正部162的校正,所有的其他控制器160中的第2周期開始定時(shí)與特定控制器150中的第2周期開始定時(shí)同步。
[0249]例如在上述第2周期開始定時(shí)的校正量超過規(guī)定的上限值的情況下,上述第2周期校正部162利用該上限值以下的校正值分多次來進(jìn)行所述第2周期開始定時(shí)的校正。上述校正量的一個(gè)示例是上述偏移量P或“節(jié)拍周期-P”等,上述上限值的一個(gè)示例是上述AJST_UNIT 等。
[0250]上述上限值例如基于第2周期內(nèi)的預(yù)先分配的各頻帶以外的空閑時(shí)間段來決定。
[0251]或者,例如上述第2周期內(nèi)由控制器160等經(jīng)由第2網(wǎng)絡(luò)從各輸入輸出對象采集數(shù)據(jù)的頻帶即TF頻帶、控制器160等向各輸入輸出對象進(jìn)行輸出的頻帶即MC頻帶、任意的一對一的消息收發(fā)頻帶即MSG頻帶構(gòu)成。上述上限值基于上述MSG頻帶后的空閑時(shí)間來決定。
[0252]或者,例如上述第2周期內(nèi)由控制器160等經(jīng)由第2網(wǎng)絡(luò)從各輸入輸出對象采集數(shù)據(jù)的頻帶即TF頻帶、通過控制器160等使包括向各輸入輸出對象的輸出的MC幀在第2網(wǎng)絡(luò)上進(jìn)行巡回的頻帶即MC頻帶、任意的一對一的消息收發(fā)頻帶即MSG頻帶構(gòu)成。各輸入輸出對象根據(jù)基于第2周期的1周期進(jìn)行動(dòng)作。即使由于上述校正而導(dǎo)致第2周期開始定時(shí)改變校正值的量,也將上述上限值決定為使得在最后接收上述MC幀的輸入輸出對象接收該MC幀之前不會(huì)成為下一個(gè)1周期。
[0253]另外,上述上限值的決定方法例如以上述AJST_UNIT的值的決定方法為基準(zhǔn)。由此,上述1周期相當(dāng)于例如圖24的標(biāo)號223所示各1模塊A、B、C的節(jié)拍周期。
[0254]上述第2周期校正部162例如決定校正方向?yàn)?方向還是+方向,在將校正方向設(shè)為-方向的情況下,通過暫時(shí)性地縮短自己的第2周期的長度,來進(jìn)行該第2周期開始定時(shí)的校正。另一方面,在將校正方向設(shè)為+方向的情況下,通過暫時(shí)性地延長自己的第2周期的長度,來進(jìn)行該第2周期開始定時(shí)的校正。如上述圖4(a)、(b)所示那樣對該處理的一個(gè)示例進(jìn)行了說明,但并不限于該示例。
[0255]例如,上述第2周期校正部162例如在從自己的第I周期開始定時(shí)起到緊接其之后的第2周期開始定時(shí)為止的偏移量小于該第2周期的長度的一半的情況下,將所述校正方向設(shè)為所述-方向,在該偏移量為該第2周期的長度的一半以上的情況下,將所述校正方向設(shè)為所述+方向。利用上述圖3對該處理的一個(gè)示例進(jìn)行了說明。上述偏移量的一個(gè)示例是圖3的說明中的偏移量P,但并不限于該示例。
[0256]上述第2周期校正部162例如在將上述校正方向設(shè)為上述-方向的情況下,將上述偏移量作為第2周期的校正量,在將上述校正方向設(shè)為上述+方向的情況下,將“第2周期的長度-偏移量”作為第2周期的校正量。利用上述圖3對該處理的一個(gè)示例進(jìn)行了說明。上述校正方向的一個(gè)示例是圖3的說明中的AJST_VEC,上述第2周期的校正量的一個(gè)示例是圖3的說明中的AJST_HME,但并不限于這些示例。
[0257]例如,所述各控制器160還具有在每個(gè)上述第I周期將經(jīng)由上述第2網(wǎng)絡(luò)獲得的來自各輸入輸出對象的最近的采集數(shù)據(jù)經(jīng)由上述第I網(wǎng)絡(luò)發(fā)送到規(guī)定的發(fā)送目的地裝置的發(fā)送部163。
[0258]關(guān)于此,例如上述發(fā)送目的地裝置在各第I周期開始時(shí)將包含此時(shí)的時(shí)間信息的特定數(shù)據(jù)包發(fā)送至各控制器160。然后,各控制器160的上述發(fā)送部163在各第I周期的每一個(gè)周期,將接收到的特定數(shù)據(jù)包所包含的上述時(shí)間信息附加到上述最近的采集數(shù)據(jù)的發(fā)送數(shù)據(jù)包,并發(fā)送到上述發(fā)送目的地裝置。并且,利用上述圖13、圖14等對該處理的一個(gè)示例進(jìn)行了說明。
[0259]上述第I周期例如是上述第2周期的整數(shù)倍的長度。尤其是2倍以上的長度。例如,圖3的示例中,控制器周期是節(jié)拍周期的5倍的長度。
[0260]在這樣的示例中,例如上述發(fā)送部163在每個(gè)上述第I周期,將在該第I周期內(nèi)的每個(gè)第2周期中從各輸入輸出對象獲取到的采集數(shù)據(jù)與表示是哪個(gè)第2周期時(shí)的采集數(shù)據(jù)的識別信息一起進(jìn)行儲(chǔ)存,并在最后匯總該儲(chǔ)存數(shù)據(jù)并發(fā)送到所述發(fā)送目的地裝置。另外,利用上述圖15、圖16等說明該處理的一個(gè)示例。
[0261]另外,上述發(fā)送目的地裝置例如是控制器150(主站點(diǎn)等),但并不限于該示例,例如也可以是服務(wù)器裝置2等。
[0262]最后,對在先申請(PCT/JP2013/050121)的控制器級網(wǎng)絡(luò)上的各控制器的控制器周期的同步處理進(jìn)行說明。參照圖18、圖19、圖20對一個(gè)示例進(jìn)行說明。
[0263]另外,作為一個(gè)示例,上述CPU模塊11可以視作具有以下說明的在先申請的CPU模塊180的功能的一部分(尤其是同步校正處理),但并不限于該示例。
[0264]圖18是用于說明在先申請的CPU模塊180的各功能部的功能框圖。
[0265]CPU模塊180包括延遲時(shí)間測量部181、同步化幀發(fā)送部182、延遲時(shí)間接收部184、同步校正部186、應(yīng)用程序執(zhí)行部188、數(shù)據(jù)更新部190、數(shù)據(jù)發(fā)送部192等各種功能部。
[0266]這些各功能部有時(shí)根據(jù)該可編程控制器作為主設(shè)備進(jìn)行動(dòng)作還是作為從設(shè)備進(jìn)行動(dòng)作來起作用,有時(shí)不根據(jù)此起作用。這里,圖上左側(cè)表示作為主設(shè)備進(jìn)行動(dòng)作時(shí)的CPU模塊180即主(PU模塊180a的結(jié)構(gòu)例。同樣,圖上右側(cè)表示作為從設(shè)備進(jìn)行動(dòng)作的CPU模塊180即從CPU模塊180b的結(jié)構(gòu)例。虛線表示不根據(jù)是主設(shè)備還是從設(shè)備來起作用的功能部。
另外,本實(shí)施方式并不限于上述結(jié)構(gòu),也可以具有相同結(jié)構(gòu),以使得一個(gè)CHJ模塊122可以成為主CPU模塊180a也可以成為從CPU模塊180b。
[0267]延遲時(shí)間測量部181在CPU模塊180作為主CPU模塊180a起作用的情況下,將用于測量主CPU模塊180a和從CPU模塊180b間的傳輸延遲時(shí)間的傳輸延遲時(shí)間請求幀發(fā)送到任意的從CPU模塊180b。該傳輸延遲時(shí)間請求幀的格式實(shí)質(zhì)上與同步化幀相同,是同步化幀內(nèi)的規(guī)定部分(例如命令部)的數(shù)據(jù)不同的幀。該傳輸延遲時(shí)間請求幀與主CPU模塊180a內(nèi)生成的基準(zhǔn)信號同步發(fā)送。
[0268]延遲時(shí)間測量部181在發(fā)送傳輸延遲時(shí)間請求幀后,若從任意的從CPU模塊180b接收到接收完成幀,則獲取接收到接收完成幀時(shí)的時(shí)刻。然后,延遲時(shí)間測量部181根據(jù)發(fā)送傳輸延遲時(shí)間請求幀時(shí)的時(shí)刻和接收到接收完成幀時(shí)的時(shí)刻的差分來計(jì)算主CPU模塊180a和任意的從CPU模塊180b間的來回傳輸延遲時(shí)間。延遲時(shí)間測量部181將計(jì)算得到的來回傳輸延遲時(shí)間除以2,并將包含該結(jié)果即傳輸延遲時(shí)間的傳輸延遲時(shí)間通知幀與下一個(gè)基準(zhǔn)信號同步地發(fā)送至任意的從CPU模塊180b。于是,能將網(wǎng)絡(luò)194的傳輸延遲時(shí)間通知給任意的從CPU模塊180b。另外,可以將網(wǎng)絡(luò)194視作相當(dāng)于上述控制器級網(wǎng)絡(luò)I,但并不限于該示例。
[0269]在CPU模塊180作為主CPU模塊122a起作用的情況下,同步化幀發(fā)送部182與基準(zhǔn)信號同步地將預(yù)先準(zhǔn)備的同步化幀發(fā)送到多個(gè)從CHJ模塊180b。該同步化幀是用于使從CPU模塊180b的基準(zhǔn)信號生成部的計(jì)數(shù)值與主CPU模塊180a的基準(zhǔn)信號生成部的計(jì)數(shù)值相匹配的信號。
[0270]在CPU模塊180作為從CPU模塊180b起作用的情況下,延遲時(shí)間接收部184從主CPU模塊180a接收傳輸延遲時(shí)間請求幀,并根據(jù)該傳輸延遲時(shí)間請求幀,向主CPU模塊180a發(fā)送接收完成幀。若延遲時(shí)間接收部184從主CPU模塊180a接收傳輸延遲時(shí)間通知幀,則將該幀中包含的傳輸延遲時(shí)間存儲(chǔ)到RAM164等中。由此,從CPU模塊180b能獲得主CPU模塊180a和從CPU模塊180b間的傳輸延遲時(shí)間。
[0271 ]在CPU模塊180作為從CPU模塊180b起作用的情況下,同步校正部186使由從CPU模塊1