本發明涉及用于對控制對象進行控制的控制系統以及適合該控制系統的開發支持裝置、控制裝置和控制方法。
背景技術:
多數生產現場中使用的機械和設備由控制系統控制,該控制系統代表性地由可編程控制器(Programmable Logic Controller,以下也稱為“PLC”)等構成。在這樣的控制系統中,在現場的各處配置遠程裝置,對各個遠程裝置發出指令值,并且從各個遠程裝置收集現場信息。這樣的指令值和現場信息的傳送是通過現場網絡進行的。
優選的是,在控制系統內存在提供彼此不同的功能的遠程裝置,使用于更新指令值的周期等也適合于各種功能。
已公開了如下的技術:在這樣經由網絡的數據的傳遞中,與頻帶寬度對應地,按照其優先度優化數據的數組等(例如,日本特開2012-094944號公報(專利文獻1))。
現有技術文獻
專利文獻
專利文獻1:日本特開2012-094944號公報
技術實現要素:
發明要解決的問題
在上述日本特開2012-094944號公報(專利文獻1)所公開的通信頻帶控制裝置中,在通信驅動器(driver)和任務(task)這樣一對多關系的數據傳遞中,根據發送請求的重要度實現極其細致的頻帶的指定。與此相對,在如上所述的控制系統中,采用預先設定了控制周期和頻帶的網絡。因此,無法應用按照每個數據動態地指定頻帶的現有技術的技術思想。
本發明正是鑒于這樣的問題而完成的,其目的在于提供如下的結構:在包括通過 網絡而連接的主裝置及多個從裝置的控制系統中,能夠以適合各個從裝置的周期來發送數據。
用于解決問題的手段
本發明的某個方面的用于對控制對象進行控制的控制系統包括主裝置、和通過網絡與主裝置連接的多個從裝置。主裝置構成為按照每一個或多個預先設定的控制周期在所述網絡上發送分組,并且多個從裝置中的各個從裝置依次轉發來自主裝置的分組。主裝置包括執行單元,該執行單元反復執行包括與從裝置的輸入輸出相關聯的處理的程序,所述執行單元通過執行程序而計算第1數據和第2數據。主裝置包括分配單元,該分配單元根據第1發送周期的設定和第2發送周期的設定,按照每個第1發送周期將第1數據分配到分組中,并且按照每個第2發送周期將第2數據分配到分組中,其中所述第1發送周期針對第1數據,是控制周期的整數倍,所述第2發送周期針對第2數據,是控制周期的整數倍,且比第1發送周期長。主裝置將第1數據和第2數據分別與表示發送目的地的從裝置的信息一起存儲在分組中,多個從裝置各自僅提取來自主裝置的分組所包含的數據中的、以本裝置為收信方的數據。
優選的是,分配單元以不超過對各個分組所允許的最大數據尺寸的方式,決定將第1數據和第2數據分別分配到哪個分組中。
優選的是,分配單元從被設定了發送周期的作為發送對象的多個數據中的、發送周期短的數據開始順序地決定分配至分組的分配方法。
優選的是,第2數據包括多個數據要素。分配單元以如下方式決定把第2數據分配至分組的分配方法:在對第2數據設定了同步發送的情況下,將第2數據中包含的多個數據要素分配在同一個分組中,在沒有對第2數據設定同步發送的情況下,將第2數據中包含的多個數據要素分配在同一個分組中。
更優選的是,分配單元將作為發送對象的多個數據中被設定了同步發送的數據優先于其它數據而決定分配至分組的分配方法。
優選的是,分配單元包括通知各個分組中的所分配的數據的占有狀態的單元。
優選的是,分配單元包括如下的單元:在無法按照包括控制周期、第1發送周期、第2發送周期在內的預先設定的通信參數,對第1數據和第2數據決定分配方法的情況下,該單元進行催促該通信參數的變更的通知。
根據本發明的另一個方面提供面向用于對控制對象進行控制的控制系統的開發支持裝置。控制系統包括主裝置、和經由網絡與主裝置連接的多個從裝置。主裝置構成為按照每個預先設定的控制周期在網絡上發送分組,并且多個從裝置中的各個從裝置依次轉發來自主裝置的分組。開發支持裝置包括:接收單元,在主裝置被設定成通過反復執行包括與從裝置的輸入輸出相關聯的處理的程序來計算第1數據和第2數據的情況下,該接收單元接收通信參數,該通信參數包括第1發送周期的設定和第2發送周期的設定,其中所述第1發送周期針對第1數據,是控制周期的整數倍,所述第2發送周期針對第2數據,是控制周期的整數倍,且比第1發送周期長;以及分配決定單元,其以如下方式決定分配方法:按照每個第1發送周期將第1數據分配到分組中、并且按照每個第2發送周期將第2數據分配到分組中的方式決定分配方法。
根據本發明的另一個方面提供經由網絡與多個從裝置連接的控制裝置,該控制裝置構成為按照每一個或者多個預先設定的控制周期在所述網絡上發送分組,并且多個從裝置中的各個從裝置依次轉發來自控制裝置的分組。控制裝置包括執行單元,該執行單元反復執行包括與從裝置的輸入輸出相關聯的處理的程序。執行單元通過執行程序而計算第1數據和第2數據。控制裝置包括分配單元,該分配單元根據第1發送周期的設定和第2發送周期的設定,按照每個第1發送周期將第1數據分配到分組中,并且按照每個第2發送周期將第2數據分配到分組中,其中所述第1發送周期針對第1數據,是控制周期的整數倍,所述第2發送周期針對第2數據,是控制周期的整數倍,且比第1發送周期長。控制裝置將第1數據和第2數據分別與表示發送目的地的從裝置的信息一起存儲在分組中,多個從裝置各自僅提取來自控制裝置的分組所包含的數據中的、以本裝置為收信方的數據。
根據本發明的又另一個方面提供面向用于對控制對象進行控制的控制系統的開發支持裝置。控制系統包括主裝置、和經由網絡與主裝置連接的多個從裝置。主裝置構成為按照每一個或者多個預先設定的控制周期在所述網絡上發送分組,并且多個從裝置中的各個從裝置依次轉發來自主裝置的分組。主裝置包括執行單元,該執行單元反復執行包括與從裝置的輸入輸出相關聯的處理的程序。執行單元通過執行程序而計算第1數據和第2數據。開發支持裝置根據第1發送周期的設定和第2發送周期的設定,以如下的方式決定分配方法:按照每個第1發送周期將第1數據分配到分組中,并且按照每個第2發送周期將第2數據分配到分組中,其中所述第1發送周期針對第 1數據,是控制周期的整數倍,所述第2發送周期針對第2數據,是控制周期的整數倍,且比第1發送周期長。
根據本發明的又另一個方面提供對控制對象進行控制的控制系統的控制方法。控制系統包括主裝置、和經由網絡與主裝置連接的多個從裝置。控制方法包括以下步驟:主裝置按照每一個或者多個預先設定的控制周期在網絡上發送分組,并且多個從裝置中的各個從裝置依次轉發來自主裝置的分組;主裝置反復執行包括與從裝置的輸入輸出相關聯的處理的程序。通過程序的執行,計算第1數據和第2數據。控制方法包括以下步驟:根據第1發送周期的設定和第2發送周期的設定,按照每個第1發送周期將第1數據分配到分組中,并且按照每個第2發送周期將第2數據分配到分組中,其中所述第1發送周期針對第1數據,是控制周期的整數倍,所述第2發送周期針對第2數據,是控制周期的整數倍,且比第1發送周期長;主裝置將第1數據和第2數據分別與表示發送目的地的從裝置的信息一起存儲在分組中;多個從裝置各自僅提取來自主裝置的分組所包含的數據中的、以本裝置為收信方的數據。
發明效果
根據本發明的某個方面的控制系統,能夠以適合各個從裝置的周期發送數據。
附圖說明
圖1是示出本實施方式的PLC系統的整體結構的示意圖。
圖2是示出本實施方式的PLC系統中包含的CPU單元的裝置結構的示意圖。
圖3是示出本實施方式的PLC系統中包含的遠程裝置的裝置結構的一例的示意圖。
圖4是用于說明本實施方式的PLC系統的處理的概要的圖。
圖5是用于說明本實施方式的PLC系統中包含的分組生成的處理的圖。
圖6是示出在本實施方式的PLC系統中使用的通信參數的一例的圖。
圖7是用于說明按照圖6所示的通信參數進行的分組的生成處理的一例的圖。
圖8是示出將圖7(c)所示的輸出信息分配到分組中的狀態下的分組占有時間的合計及占有率的圖。
圖9是示出本實施方式的PLC系統的處理步驟的流程圖。
圖10是示出本實施方式的PLC系統的分組的數據結構例的圖。
圖11是示出本實施方式的變形例的PLC系統的整體結構的示意圖。
具體實施方式
參照附圖詳細說明本發明的實施方式。另外,對于附圖中相同或者相當的部分標注相同的標號,不重復其說明。
在本實施方式中,作為控制系統的一例,示例以PLC為中心的系統。但是,作為這樣的控制系統,不僅能夠采用PLC,而且也能夠采用以各種產業用計算機為中心的結構。另外,隨著技術的發展,在開發出了新的處理裝置(運算裝置)的情況下,也能夠采用這樣新的處理裝置。
<A.PLC系統的整體結構>
首先,對控制系統的一種方式即本實施方式的PLC系統1的整體結構進行說明。圖1是示出本實施方式的PLC系統1的整體結構的示意圖。
參照圖1,PLC系統1是用于對控制對象進行控制的控制系統,包括主處理裝置2和多個遠程裝置40_1、40_2、40_3、…、40_N(以下,也存在統稱為“遠程裝置40”的情況)。主處理裝置2和遠程裝置40是構成PLC系統1的至少一部分的控制裝置,經由現場網絡4相連接。
經由現場網絡4的通信由主處理裝置2主體進行控制。具體而言,主處理裝置2按照預先設定的定時或者規則,發送在現場網絡4上依次傳輸的數據。在下面的說明中,將在現場網絡4上依次傳輸的數據也稱為“分組”。從這種意義上講,將主處理裝置2稱為“主裝置”,將各個遠程裝置40_1、40_2、40_3、…、40_N稱為“從裝置”。即,作為控制系統的PLC系統1包括主處理裝置2(主裝置)、和經由現場網絡4與主處理裝置2(主裝置)連接的多個遠程裝置40(從裝置)。
主處理裝置2通過執行對控制對象進行控制所需要的程序(如后面所述,包括用戶程序和系統程序等),實現收集來自遠程裝置40的輸入信號(以下也稱為“現場信息”)的處理、根據所收集的現場信息進行控制運算的處理、將通過控制運算而計算出的指令值輸出給遠程裝置40的處理等。
主處理裝置2包括作為其裝置結構的CPU單元10、一個以上的IO單元20、電源單元30。CPU單元10和IO單元20經由未圖示的內部總線以能夠進行數據通信的 方式相互連接。電源單元30向CPU單元10和IO單元20供給合適的電壓的電力。
CPU單元10包括:運算部,其執行對控制對象進行控制所需要的程序;通信處理部110,其控制通過現場網絡4進行的與遠程裝置40的通信。
CPU單元10也可以與開發支持裝置500連接,開發支持裝置500進行各種程序的安裝、調試、程序執行狀態的監視等。開發支持裝置500典型地講通過在通用計算機上執行支持程序而實現。有時支持程序中也包含模仿CPU單元10而能夠模擬地執行各種程序的功能等的情況。
遠程裝置40接收來自外部的開關或傳感器的現場信息,將接收到的現場信息經由現場網絡4發送給主處理裝置2。并且,遠程裝置40將從主處理裝置2經由現場網絡4接收到的指令值,向外部的繼電器和致動器輸出。或者,遠程裝置40也可以按照經由現場網絡4接收到的指令值自己進行動作。例如,假定遠程裝置40是包括不具備運算功能的單純的IO單元、具有運算功能的IO單元、如伺服驅動器那樣的致動器的裝置等。
在圖1中示出了遠程裝置40是伺服驅動器的情況,遠程裝置40_1、40_2、40_3、…、40_N分別與伺服電機42_1、42_2、42_3、…、42_N(以下,有時也統稱為“伺服電機42”)連接,按照來自主處理裝置2的指令,通過各個遠程裝置控制對應的伺服電機。
CPU單元10的通信處理部110構成為管理包括由主處理裝置2(主裝置)及多個遠程裝置40(從裝置)處理的數據的數據串(分組)在現場網絡4上的循環傳輸。該分組以預先設定的一個控制周期或者多個控制周期中的各個控制周期進行發送。即構成為,主處理裝置2(主裝置)以預先設定的一個控制周期或者多個控制周期中的各個控制周期在現場網絡4上發送分組,并且多個遠程裝置40(從裝置)中的各個遠程裝置40(從裝置)依次轉發來自主處理裝置2(主裝置)的分組。
在本說明書中,“控制周期”是指用戶程序的處理時間,有時指預先設定的固定周期,有時根據執行的用戶程序的量等動態地變化。
在圖1中示意地示出了所謂環形式的現場網絡,但也可以是雛菊鏈(daisy chain)連接的現場網絡。即,作為本實施方式的現場網絡,只要是能夠以預先設定的一個控制周期或者多個控制周期中的各個控制周期傳輸數據串(分組)的結構,則可以采用任何結構。
<B.CPU單元10的裝置結構>
下面,對本實施方式的PLC系統1中包含的CPU單元10的裝置結構進行說明。圖2是示出本實施方式的PLC系統1中包含的CPU單元10的裝置結構的示意圖。
參照圖2,CPU單元10除通信處理部110外,還包括作為運算部的處理器100、主存儲器102、非易失性存儲器104、和內部總線控制器108。這些部件構成為能夠經由內部總線109相互進行數據通信。
處理器100執行與控制有關的程序。處理器100從非易失性存儲器104等讀出必要的程序,并且展開到主存儲器102中進行執行。非易失性存儲器104存儲用戶程序105和系統程序106作為與控制有關的程序。與處理器100的程序的執行有關的數據被存儲在主存儲器102內的工作區域103中。
內部總線控制器108經由未圖示的內部總線與IO單元20連接,對處理器100和IO單元20之間的數據(現場信息和指令值)交換進行中介(仲介する)。
通信處理部110經由現場網絡4與遠程裝置40連接,對CPU單元10和遠程裝置40之間的數據(現場信息和指令值)交換進行中介。更具體地講,通信處理部110包括通信控制器112、共用存儲器114、發送緩沖器120、發送電路122、接收緩沖器130、接收電路132。
發送緩沖器120及發送電路122實現與從通信處理部110向外部裝置的幀發送有關的處理,接收緩沖器130及接收電路132實現與從外部裝置向通信處理部110的幀發送有關的處理。通信處理部110具有共用存儲器114,處理器100將計算出的指定值寫入共用存儲器114中,并且從共用存儲器114讀出現場信息。即,被寫入共用存儲器114的指定值被轉發至發送緩沖器120,從發送緩沖器120被發送至遠程裝置40。并且,從遠程裝置40取得的現場信息由接收緩沖器130接收后,被轉發至共用存儲器114。
通信處理部110中的一系列的處理由通信控制器112執行。更具體地講,通信控制器112按照來自處理器100等的指令生成分組并發送,并且從接收到的分組中提取需要的信息。
通信處理部110的一部分或者全部也可以使用軟件實現。或者,其中一部分或者全部也可以使用ASIC(Application Specific Integrated Circuit:專用集成電路)、FPGA(Field Programmable Gate Array:現場可編程門陣列)等硬件電路實現。
<C.遠程裝置40的裝置結構>
下面,對本實施方式的PLC系統1中包含的遠程裝置40的裝置結構進行說明。圖3是示出本實施方式的PLC系統1中包含的遠程裝置40的裝置結構的一例的示意圖。
作為本實施方式的遠程裝置40,可以采用各種結構,但在圖3中示出具有運算功能及IO功能的結構例。參照圖3,遠程裝置40包括運算處理部400、輸入電路402、輸出電路404、通信處理部410。
運算處理部400根據經由現場網絡4發送的分組執行預先設定的處理,并且經由現場網絡4發送處理的結果所得到的分組。
輸入電路402將從現場側輸入的信號(現場信息)輸出至運算處理部400。輸出電路將與運算處理部400提供的指令值對應的信號輸出至現場側。
通信處理部410經由現場網絡4與CPU單元10連接,對遠程裝置40和CPU單元10之間的數據(現場信息和指令值)的交換進行中介。更具體地講,通信處理部410包括通信控制器412、共用存儲器414、發送緩沖器420、發送電路422、接收緩沖器430、接收電路432。這些部件具有與上述的通信控制器112、共用存儲器114、發送緩沖器120、發送電路122、接收緩沖器130及接收電路132(均參見圖2)相同的功能,因而不重復詳細的說明。但是,在作為從裝置的一部分的通信處理部410中接收到分組時的處理以及發送分組時的處理,與在作為主裝置的一部分的CPU單元10的通信處理部110中的處理不同。
關于遠程裝置40(運算處理部400、輸入電路402、輸出電路404及通信處理部410)的功能,也可以使用軟件實現其全部或者一部分的功能,但優選使用ASIC和FPGA等硬件電路實現其一部分或者全部功能。
<D.現場網絡4>
下面,對現場網絡4中的通信處理進行說明。
作為現場網絡4中的通信方式,優選能夠以預先設定的一個控制周期或者多個控制周期中的各個控制周期進行分組傳輸(即,能夠實時通信)的方式。作為一例,現場網絡4能夠使用各種的產業用以太網(注冊商標)。作為產業用以太網(注冊商標)的具體例,例如有EtherCAT(注冊商標)、PROFINET IRT、MECHATRO LINK(注冊商標)-III、Powerlink、SERCOS(注冊商標)-III、CIP Motion等。另外,也可以 使用產業用以太網(注冊商標)以外的現場網絡。例如,也可以使用DeviceNet、CompoNet(注冊商標)等。
<E.概要>
下面,對本實施方式的PLC系統1的處理的概要進行說明。圖4是用于說明本實施方式的PLC系統1的處理的概要的圖。圖4(a)是示出關聯技術的分組的數據結構的圖,圖4(b)是示出本實施方式的分組的數據結構的圖。
在一般的現場網絡中,如圖4(a)所示,在各個分組中存儲的數據類型是一樣的。即,各個分組具有相同的數據結構,以預先設定的一個控制周期或者多個控制周期中的各個控制周期發送同一類型的數據集。在圖4(a)所示的例子中,各個分組都包含適合于各個從機1~從機6的數據。
例如,如果使用如圖1所示的多個伺服電機42進行多軸控制,則需要將有關各個軸的指令值存儲在各個分組中,其數據長度變長。即,控制對象的軸數越多,控制周期T1(即遠程裝置40的控制周期)與其軸數成比例地變長。
但是,實際上往往是需要高速響應的軸和不需要高速響應的軸混合存在的。在這樣的軸數較多的系統中,即使是對不需高速響應的軸,也以與需要高速響應的軸大致相同的控制周期發送指令值,反而對需要高速響應的軸產生制約。
在如圖4(a)所示的軸數比較多的結構中,由針對所有軸的指令值的集構成一個分組進行轉發,因而與軸數成比例地控制周期為T1。換言之,在各伺服電機42中,不能實現比控制周期T1更高速的響應。
與此相對,在本實施方式中,按照各遠程裝置40的速度請求,使控制周期實質上可以變化。即,在控制多個伺服電機42的結構中,對每個軸設定與所請求的響應時間對應的控制周期,生成與該設定的控制周期對應的分組。因此,實現所設定的各個控制周期。
例如,在圖4(b)的例子中,在將各個分組的控制周期設為T2的情況下,將針對從機1和從機2的控制周期設定為T2,將針對從機3~從機6的控制周期設定為T2×2。各個分組均包含針對從機1和從機2的指令值,但針對從機3~從機6的指令值僅包含在兩次中的一次的分組中。即,針對從機3和從機4的指令值僅包含在奇數號的分組中,針對從機5和從機6的指令值僅包含在偶數號的分組中。
通過生成這樣的分組,在從機1和從機2能夠實現與控制周期T2相同的控制周 期,在從機3~從機6能夠實現控制周期T2的2倍的控制周期。即,在圖4(b)所示的例子中,需要高速響應的軸按照每控制周期T進行通信,不需要高速響應的軸多次中進行一次通信,由此能夠減小每一次的分組的數據尺寸,由此能夠縮短控制周期,實現高速的響應。
如以下說明的那樣,在本實施方式中,按照控制系統內的從裝置的數量和各個從裝置的控制周期的請求,使在各個分組中存儲的數據結構在每周期動態地變化,由此實現滿足要求的控制。
<F.分組生成處理>
下面,對本實施方式的PLC系統1的分組生成的處理進行說明。圖5是用于說明本實施方式的PLC系統1中包含的分組生成的處理的圖。
參照圖5,用戶程序105包括多個處理A、B、C、D,各個處理彼此獨立地以預先設定的控制周期反復執行。在此,假設多個處理A、B、C、D的發送周期分別是As、Bs、Cs、Ds。各個處理A、B、C、D使用從遠程裝置40等收集的現場信息作為輸入,并且通過執行計算出輸出信息A(n)、B(n)、C(n)、D(n)(其中,n為1以上的整數)。另外,為了便于說明,以數組形式定義輸出信息,但不一定需要以數組形式進行存儲,也可以按照任意的配置及形式進行存儲。輸出信息A(n)、B(n)、C(n)、D(n)被存儲在主存儲器102內的工作區域103中,并以對應的處理的控制周期被逐次更新。即,主處理裝置2(主裝置)包括反復執行用戶程序105的處理器100(執行單元),用戶程序105包含與遠程裝置40(從裝置)的輸入輸出有關的處理。處理器100(執行單元)通過執行用戶程序105,計算多種類型的數據。
按照預先設定的分配設定150選擇被存儲在工作區域103中的輸出信息,并依次生成分組Nt1、Nt2、Nt3、Nt4、…。在圖5所示的例子中,將通過處理A計算出的輸出信息A(n)分配到所生成的各個分組中。即,按照分組的控制周期發送輸出信息A(n)。與此相對,將輸出信息B(n)、C(n)、D(n)的通信頻度(控制周期/發送周期)設定為輸出信息A(n)的1/3。即,按照每3次中1次的比率發送輸出信息B(n)、C(n)、D(n)。換言之,輸出信息B(n)、C(n)、D(n)以相當于分組的控制周期的3倍的周期被更新。
這樣,通過按照處理的類別及/或輸出信息的內容優化提供給遠程裝置40的數據的通信頻度(周期),能夠避免各個分組的數據尺寸過度增大而不能縮短控制周期的 情況。即,現場網絡4有效利用預先準備的通信頻帶,即使是遠程裝置40的數量較多的情況下,也能夠以較短的控制周期向需要高速響應的遠程裝置40提供指令值。
在上述的說明中,對于從主處理裝置2向多個遠程裝置40發送通過用戶程序105中包含的處理而計算出的輸出信息A(n)、B(n)、C(n)、D(n)的處理例進行了說明,該處理例同樣能夠適用于主處理裝置2從各個遠程裝置40收集現場信息的處理。在從遠程裝置40收集現場信息的情況下,向對象的遠程裝置40發送用于取得現場信息的命令(以下也稱為“數據更新命令”)。因此,按照以上所述的處理的類別及/或所需要的現場信息等,以合適的控制周期發送該數據更新命令,由此現場網絡4能夠有效利用預先準備的通信頻帶,實現也能應對高速響應的數據通信。
<G.向分組進行分配的處理的具體例>
下面,使用具體例說明向分組進行分配的處理的一例。將發送對象的輸出信息分配給分組的分配處理、即決定分配設定150的處理,典型地講由CPU單元10的處理器100執行。但是,也可以在與CPU單元10連接的開發支持裝置500等的離線環境下執行。
(g1:通信參數)
圖6是示出在本實施方式的PLC系統1中使用的通信參數的一例的圖。參照圖6,例如假設反復執行多個處理A、B、C、D,各個處理的執行周期即發送周期As、Bs、Cs、Ds分別是250μsec、500μsec、1000μsec、1000μsec。
假設處理A、B、C、D分別輸出輸出信息A(n)、B(n)、C(n)、D(n)。假設各輸出信息中包含的數據數Ac、Bc、Cc、Dc分別是3、4、4、1。即,輸出信息A(n)包括3個數據要素A(1)、A(2)、A(3),輸出信息B(n)及C(n)均分別包括4個數據要素B(1)、B(2)、B(3)、B(4)及數據要素C(1)、C(2)、C(3)、C(4),輸出信息D(n)包括1個數據要素D(1)。
與輸出信息A(n)、B(n)、C(n)、D(n)分別對應的分組占有時間Ap、Bp、Cp、Dp表示將對應的數據要素分配到分組中時所需要的占有時間,能夠與各個數據要素的長度和類型對應地變化。即,分組占有時間是指對應的數據要素的數據尺寸,控制周期Tc是指每1個分組能夠發送的最大數據尺寸。
另外,也可以直接使用數據要素的數據尺寸替代分組占有時間進行評價。即,也可以使用控制周期Tc先決定能夠對各個分組分配的數據尺寸(最大數據尺寸),并且 使用分配對象的各個數據要素的數據尺寸決定分配方法。
在圖6所示的例子中,有關輸出信息A(n)及D(n)的分組占有時間Ap及Dp均是30μsec,有關輸出信息B(n)及C(n)的分組占有時間Bp及Cp均是35μsec。
控制周期Tc表示分組的生成周期。有關各個處理A、B、C、D的通信頻度Af、Bf、Cf、Df是表示以控制周期Tc為基準、對分組分配何種程度對應的輸出信息的值。例如,有關處理A的通信頻度Af是0.5,表示每當發送兩次分組時復制與任意一次的分組對應的輸出信息A(n)。并且,有關處理B的通信頻度Bf是0.25,表示每當發送四次分組時復制與任意一次的分組對應的輸出信息B(n)。并且,有關處理C及D的通信頻度Cf及Df均是0.125,表示每當發送八次分組時分別復制與任意一次的分組對應的輸出信息C(n)及D(n)。因此,需要以如下方式將數據要素分配給分組,即,輸出信息A(n)的發送周期是控制周期Tc×2,輸出信息B(n)的發送周期是控制周期Tc×4,輸出信息C(n)及D(n)的發送周期是控制周期Tc×8。
圖6所示的通信參數中的欄目“同步”表示是否需要在同一個分組中發送對應的輸出信息內的數據集。例如,對于輸出信息A(n)及D(n),將“同步”指定為“需要”,將這些輸出信息內的數據集分配給同一個分組。即,設定成同步發送這些輸出信息內的數據集。與此相對,對于輸出信息B(n)及C(n),將“同步”指定為“不需要”,對于這些輸出信息內的數據集,允許將一部分數據和剩余數據分配給不同的分組。例如,在3軸的運動控制等中,需要同時更新針對各軸的指令,對于在這樣的應用中使用的輸出信息,設定成需要同步。與此相對,如果是在彼此獨立的控制中使用的輸出信息,不需要在相同的定時進行更新,在這樣的情況下設定成不需要同步。
(g2:分組的生成處理)
圖7是用于說明按照圖6所示的通信參數進行的分組的生成處理的一例的圖。參照圖7(a)~(c)說明按照圖6所示的通信參數怎樣決定分配設定。
另外,在最高的通信頻度(控制周期/最短的發送周期)>1的情況下,以現狀的控制周期不能滿足要求,因而需要重新審視發送周期、分組占有時間、控制周期等。
首先,根據圖6所示的通信參數,對于所要求的通信頻度較高(即,所要求的發送周期較短)的輸出信息優先決定分配方法。但是,在包含需要同步的輸出信息的情況下,這些輸出信息優先。
在圖6所示的通信參數中,對輸出信息A(n)及D(n)設定成需要同步,對這些需要同步的輸出信息中的輸出信息A(n)設定更高的通信頻度。因此,第一,是以如下的方式決定分配方法:以通信頻度Af(=控制周期Tc/發送周期)的倒數進行一次的頻度,分配需要同步而且通信頻度最高的輸出信息A(n)的整個數據集。在圖6所示的例子中,輸出信息A(n)的通信頻度是0.5,因而以兩個控制周期Tc進行一次的頻度將輸出信息A(n)分配到分組中。即,將輸出信息A(n)中包含的3個數據要素A(1)、A(2)、A(3)分配在一個數據分組中。
并且,在對各個分組分配數據要素時進行優化,使得該分組中的分組占有時間的合計不超過控制周期Tc。
在圖7(a)中示出了將輸出信息A(n)中包含的3個數據要素A(1)、A(2)、A(3)分配到奇數號的分組即各個分組Nt1、Nt3、Nt5、Nt7、Nt9、Nt11、Nt13、…中的示例。
在圖7(a)所示的狀態下,有關奇數號的各個分組中的輸出信息A(n)的分組占有時間的合計達到分組占有時間Ap×數據數Ac=90μsec,滿足分組占有時間Ap×數據數Ac<控制周期Tc(125μsec)的條件。
第二,對于另一個需要同步的輸出信息D(n)的整個數據集,以通信頻度Df的倒數進行一次的頻度進行分配的方式決定分配方法。由于輸出信息D(n)的通信頻度為0.125,因而以每八個控制周期Tc進行一次的頻度將輸出信息D(n)分配到分組中。在圖7(a)所示的狀態下,奇數號的分組尚有富余,因而示出了將輸出信息D(n)中包含的一個數據要素D(1)分配到各個分組Nt1、Nt9、…中的示例。
在該狀態下,第1、9、17、…號的各個分組中的分組占有時間的合計達到分組占有時間Ap×數據數Ac+分組占有時間Dp×數據數Dc=120μsec,滿足控制周期Tc(125μsec)的條件。
在如上所述分配需要同步的輸出信息的時刻,在有關分組占有時間的合計的條件不成立的情況下,需要重新考慮發送周期、分組占有時間、控制周期等。
這樣,主處理裝置2(主裝置)具有以如下方式決定分配方法的功能:根據第1發送周期的設定和第2發送周期的設定,以使不超過各個分組所允許的最大數據尺寸(控制周期Tc)的方式,按照每個第1發送周期將輸出信息D(n)(第1數據)分配到以每控制周期發送的分組的任意一個中,并且按照每個第2發送周期將輸出信息 D(n)(第2數據)分配到以每控制周期Tc1發送的分組的任意一個中,其中,所述第1發送周期針對輸出信息A(n)(第1數據),是控制周期Tc的整數倍(×2),所述第2發送周期是針對輸出信息D(n)(第2數據),是控制周期Tc的整數倍(×8)且比第1發送周期長。此時,分配功能是在被設定了發送周期的發送對象的多個數據中,從該發送周期較短的數據開始順序地進行向分組中的分配。
然后,在不需要同步的輸出信息中按照通信頻度從高到低的順序依次分配到分組中。在圖6所示的通信參數中,第三是決定用于分配不需要同步且通信頻度最高的輸出信息B(n)中包含的數據要素B(1)、B(2)、B(3)、B(4)的分配方法。在此,決定以通信頻度Bf(=控制周期Tc/發送周期)的倒數進行一次的頻度來分配各個數據要素B(1)、B(2)、B(3)、B(4)的分配方法。但是,也可以將各個數據要素分配到不同的分組中。此時,以滿足以下兩個條件的方式進行分配:使可分配的頻度達到所指定的值,以及各個分組的分組占有時間的合計不超過控制周期。即,以使各個分組的占有率(分組占有時間的合計/控制周期Tc)不超過1的方式,依次分配輸出信息B。另外,由于輸出信息B不需要同步,因而只要能夠確保所要求的通信頻度即可,不需要將所有的數據要素配置在同一個分組中。
例如,在圖7(a)所示的狀態下,在將數據要素B(1)分配到分組Nt1中時,分組占有時間的合計為分組占有時間Ap×數據數Ac+分組占有時間Dp×數據數Dc+分組占有時間Bp×(數據數Bc-3)=155μsec>控制周期Tc,不滿足條件。因此,數據要素B(1)被分配到下一個分組Nt2中。
圖7(b)示出了輸出信息B(n)中包含的數據要素B(1)、B(2)、B(3)、B(4)全部被分配的狀態。在該狀態下,數據要素B(1)、B(2)、B(3)被分配到各個分組Nt2、Nt6、Nt10、…中。
在圖7(b)所示的狀態下,第2、6、10、…個分組各自的分組占有時間的合計達到分組占有時間Bp×(數據數Bc-1)=105μsec,滿足分組占有時間Bp×(數據數Bc-1)<控制周期Tc(125μsec)的條件。
其中,分組占有時間Bp×數據數Bc=140>控制周期Tc(125μsec),因而不能將數據要素B(4)分配給與數據要素B(1)、B(2)、B(3)相同的分組Nt2。另外,關于奇數號的分組Nt3,其分組占有時間的合計接近限制值,因而數據要素B(4)必然被分配在分組Nt4中。以后同樣地,將數據要素B(4)分配在各個分組Nt4、 Nt8、Nt12、…中。
然后,決定輸出信息C(n)中包含的數據要素C(1)、C(2)、C(3)、C(4)的分配方法。在此,決定以通信頻度Cf(=控制周期Tc/發送周期)的倒數作為一次的頻度分配各個數據要素C(1)、C(2)、C(3)、C(4)的分配方法。但是,也可以將各個數據要素分配到不同的分組中。此時,以滿足以下兩個條件的方式進行分配:使可分配的頻度達到所指定的值,以及各個分組的分組占有時間的合計不超過控制周期。即,以使各個分組的占有率(分組占有時間的合計/控制周期Tc)不超過1的方式,依次分配輸出信息C。另外,由于輸出信息C不需要同步,因而只要能夠確保所要求的通信頻度即可,不需要將所有的數據要素配置在同一個分組中。
在圖7(b)所示的狀態下,關于分組Nt1、Nt2、Nt3,其分組占有時間的合計接近限制值,因而輸出信息C(n)必然被分配給分組Nt4。此時,如果輸出信息C(n)的可分配的數據要素是兩個,則分組占有時間Bp×(數據數Bc-3)+分組占有時間Cp×(數據數Cc-2)=105<控制周期Tc成立,但在輸出信息C(n)的可分配的數據要素達到三個時,分組占有時間Bp×數據數Bc+分組占有時間Cp×(數據數Cc-1)=140>控制周期Tc,因而只能分配兩個數據要素。
關于分組Nt5、Nt6、Nt7,其分組占有時間的合計接近限制值,因而輸出信息C(n)的剩余數據要素被分配給分組Nt8。在分組Nt8中,分組占有時間Bp×(數據數Bc-3)+分組占有時間Cp×(數據數Cc-2)=105<控制周期Tc成立。
圖7(c)示出了輸出信息A(n)、輸出信息B(n)、輸出信息C(n)、輸出信息D(n)中包含的數據要素全部被分配的狀態。分配設定150(圖5)定義該分配狀態。
另外,在如上所述分配不需要同步的任意一個輸出信息的時刻,在有關分組占有時間的合計的條件不成立的情況下,需要重新考慮發送周期、分組占有時間、控制周期等。
圖8是示出將圖7(c)所示的輸出信息分配給分組的狀態下的分組占有時間的合計及占有率的圖。如圖8所示,無論在哪個分組中,分組占有時間的合計都是合計未超過控制周期Tc(125μsec),其結果是,可知占有率都小于1。
如上所述,優選根據應用對輸出信息中包含的多個數據要素設定是否需要同步。即,在輸出信息包括多個數據要素的情況下,分配功能以如下方式決定分配方法:在對該輸出信息設定了同步發送的情況下,將該輸出信息中包含的多個數據要素分配在 同一分組(即一個分組或者共同的分組)中。另一方面,分配功能以如下方式決定分配方法:在對該輸出信息沒有設定同步發送的情況下,在不能將該輸出信息中包含的多個數據要素分配在同一分組中時,將多個數據要素分配在多個分組中。在此,分配功能使發送對象的多個輸出信息中被設定了同步發送的輸出信息優先于其它數據,進行向分組的分配。
根據如上所述的步驟,以所指定的通信頻度發送各個輸出信息,并且以滿足分組占有時間的合計等條件的方式適當分配各個輸出信息。
<H.處理步驟>
下面,對本實施方式的PLC系統1的處理步驟進行說明。圖9是示出本實施方式的PLC系統1的處理步驟的流程圖。另外,在圖9中僅示例地示出與如上所述的數據發送相關聯的處理。圖9所示的各步驟典型地講是由主處理裝置2的CPU單元10的處理器100執行。但是,在開發支持裝置500中也能夠假想地離線執行以下各個步驟。即,開發支持裝置500具有與主處理裝置2的CPU單元10基本相同的功能。
首先,處理器100接收用戶程序105和各種設定,并存儲在非易失性存儲器104中(步驟S2)。然后,處理器100執行用于以所指定的通信頻度來發送通過用戶程序105中包含的各個處理而計算出的輸出信息的分配處理(以下說明的步驟S10~S34)。
更具體地講,處理器100讀出由用戶等指定的通信參數(參照圖6等),確定發送對象的輸出信息(步驟S10)。然后,處理器100參照所讀出的通信參數,判定在發送對象的輸出信息中是否存在被設定為需要同步的輸出信息(步驟S12)。當存在被設定為需要同步的輸出信息的情況下(步驟S12:是),處理器100在被設定為需要同步的輸出信息中選擇通信頻度最高的輸出信息(步驟S14)。并且,處理器100以滿足如下兩個條件的方式嘗試將所選擇的輸出信息中的任意一個分配至分組:可分配的頻度與所指定的通信頻度一致,以及各個分組中的分組占有時間的合計不超過控制周期(步驟S16)。處理器100判定是否所選擇的輸出信息向分組的分配全部成功(步驟S18)。
在不能將所選擇的輸出信息全部分配到分組中的情況下(步驟S18:否),通知用戶不能實現所指定的通信參數、以及需要重新考慮發送周期、分組占有時間、控制周期等(步驟S32)。然后,處理結束。
與此相對,在所選擇的輸出信息向分組中的分配全部成功的情況下(步驟S18: 是),處理器100判定在被設定為需要同步的輸出信息中是否存在尚未完成向分組中的分配的輸出信息(步驟S20)。當在被設定為需要同步的輸出信息中存在尚未完成向分組中的分配的輸出信息的情況下(步驟S20:是),在尚未完成向分組中的分配的輸出信息選擇通信頻度最高的輸出信息(步驟S22)。并且,處理器100反復自步驟S16以后的處理。
與此相對,在對于被設定為需要同步的輸出信息全部完成了向分組中的分配的情況下(步驟S20:否)、或者不存在被設定為需要同步的輸出信息的情況下(步驟S12:否),處理器100判定是否存在尚未完成向分組中的分配的輸出信息(步驟S24)。
當存在尚未完成向分組中的分配的輸出信息的情況下(步驟S24:是),處理器100選擇尚未完成向分組中的分配的輸出信息中通信頻度最高的輸出信息(步驟S26)。并且,處理器100以滿足如下兩個條件的方式嘗試所選擇的輸出信息中的任意一個輸出信息向分組中的分配:可分配的頻度與所指定的通信頻度一致,以及各個分組中的分組占有時間的合計不超過控制周期(步驟S28)。處理器100判定是否所選擇的輸出信息向分組中的分配全部成功(步驟S30)。
在所選擇的輸出信息向分組中的分配尚未全部成功的情況下(步驟S30:否),處理進入步驟S32。
與此相對,在不能將所選擇的輸出信息全部向分組中分配的情況下(步驟S30:是),處理器100反復自步驟S24以后的處理。
最后,在對輸出信息全部完成了向分組中的分配的情況下(步驟S24:否),處理器100生成表示分配完成的狀態的分配設定150并進行存儲(步驟S34)。
然后,響應任意明確的或者隱含的指示,處理器100開始執行對控制對象進行控制所需的程序(包括用戶程序105和系統程序106)(步驟S40)。并且,處理器100按照在步驟S34存儲的分配設定150,對通過程序的執行而計算出的信息決定分配方法,由此按照每個控制周期生成分組(步驟S42)。以后,反復步驟S40及S42的處理。
<I.用戶支持功能>
在上述的向分組中的分配處理中,說明了基本上按照所設定的通信參數自動將各個輸出信息分配到各個分組中的處理。對在此基礎上對分配后的結果支持進一步優化的功能進行說明。具體而言,說明當利用預先設定的通信參數不能進行設定的情況下 引導如何進行修正的功能。并且,說明對用戶通知是否能夠對預先設定的通信參數進一步縮短控制周期這樣的功能。優選根據用戶支持和用戶安全方面安裝這些功能。
例如,對于暫且分配的結果,計算如圖8所示的各個分組的分組占有時間的合計。也可以將如圖8所示的各個分組的分組占有時間的合計以任意形式(列表形式和曲線圖顯示)提示給用戶。即,本實施方式的分配處理包括用于通知各個分組中的所分配的數據的占有狀態(例如占有率和占有時間)的處理。
在使輸出信息同步而決定向分組中的分配方法的情況下,當在任意一個分組中其分組占有時間的合計超過控制周期時,判定為錯誤。即,本實施方式的分配處理包括在不能按照包括控制周期和發送周期在內的預先設定的通信參數對分配對象的數據要素進行分配的情況下,進行用于催促該通信參數的變更的通知的處理。
在這樣的情況下,也可以利用如下所述的方法以不產生錯誤的方式進行調整。
(1)以適合于各個分組的分組占有時間的合計的方式延長控制周期。在這種情況下,也可以向用戶通知將控制周期延長何種程度可消除錯誤的消息。即,提示所計算出的各個分組的分組占有時間的合計的最大值,并進行引導使控制周期比該最大值長。或者,也可以自動延長控制周期。
(2)以適合控制周期的方式縮短各個分組的分組占有時間的合計。在這種情況下,減少分配到各個分組中的輸出信息,縮短分組占有時間的合計。或者,能夠采取變更成為同步的對象的輸出信息的設定的措施。
并且,在考慮到有效利用現場網絡4時,能夠參照圖8所示的結果并采取如下的近似處理,該結果表示輸出信息被分配到分組中的狀態下的分組占有時間的合計及占有率。
·能夠使被分配了被設定為需要同步的輸出信息的奇數號的分組Nt1、Nt3、Nt5、Nt7…的分組占有率中最高的值接近1。
·能夠延長各輸出信息的分組占有時間和縮短控制周期。
·能夠追加輸出信息(例如輸出信息E),直到分組占有率接近1為止。
·能夠延長分組占有時間使要發送的信息量增加,直到分組占有率接近1為止。
<J.從裝置中的數據接收處理>
如上所述在本實施方式的PLC系統1中,在以每控制周期發送的分組中存儲的數據的結構并非一樣,而是動態地變化的。因此,各個分組中包含的各個數據的收信 方也不一樣。為此,對接收這種其存儲的數據隨時間而變化的分組的各個從裝置的數據接收處理進行說明。
圖10是示出本實施方式的PLC系統1中的分組的數據結構例的圖。圖10(a)示出了一般的數據結構的一例。圖10(a)所示的數據結構的分組包括報頭(header)302、數據區域組304、和報尾(footer)306。數據區域組304按照收信方的從裝置進行區分地存儲有發送對象的數據。接收到圖10(a)所示的分組的各個從裝置已經知道數據區域組304中分配給本站的數據區域,因而從該分配的數據區域中提取發給本站的數據。
圖10(b)示出了在本實施方式的PLC系統1中使用的分組的數據結構。如上所述,在本實施方式中,各個分組所存儲的數據的收信方隨著時間一起變化,因而在各個分組的報頭302中存儲有用于指定有效的從裝置作為收信方的識別信息303。
接收到圖10(b)所示的分組的各個從裝置參照報頭302中的識別信息303,判定在數據區域組304中是否存在分配給本站的數據區域,并且確定哪里是分配給本站的數據區域。在圖10(b)所示的例子中,識別信息303采用由“0”和“1”構成的標志,表示存儲有發給位于從開頭起第1個及第2個位置的從裝置即從機1及從機2的數據。與此相對,第3個及第4個的標志都被設定為“0”,因而表示存儲有發給位于第3個及第4個位置的從裝置即從機3及從機4的數據。因此,從機3及從機4即使接收到如圖10(b)所示的分組,也不提取任何數據,而直接向下一段的從裝置轉發。
另一方面,位于第5個及第6個位置的從裝置即從機5及從機6確定存儲有發給本站的數據的情況,從對應的數據區域中提取發給本站的數據。
這樣,通過使用識別信息303,即使是各個分組中包含的數據的收信方與時間一起變化的情況下,也能夠可靠地向目標從裝置發送對象的數據。即,主處理裝置2(主裝置)將各個數據與表示發送目的地的遠程裝置40(從裝置)的識別信息303一起存儲在分組中。而且,各個遠程裝置40(從裝置)從來自主處理裝置2(主裝置)的分組中包含的數據中僅提取以本裝置為收信方的數據。
圖10(c)示出了在本實施方式的PLC系統1中使用的分組的另一數據結構。圖10(c)所示的數據結構與圖10(a)所示的數據結構相似,然而能夠動態地變更數據區域組304的各個數據區域的尺寸。即,對于沒有應該發送的數據的從裝置,在其 對應的數據區域中輸入表示無效的數據(例如空(null)碼)。各個從裝置如果在分配給本站的數據區域中輸入了null碼,則判定為不存在發給本站的數據,也不提取任何數據,而直接向下一段的從裝置進行轉發。
另外,也可以將數據的收信方存儲在數據區域組304的各個數據區域中,而不是各個分組的報頭302中。
通過采用這樣的數據結構,能夠在維持數據區域組304的框架結構的狀態下動態地變化分組尺寸,實現符合要求的控制周期。
<K.變形例>
在上述的實施方式中示例了所謂環形式的現場網絡,但也能夠適用于雛菊鏈形式的現場網絡。關于這樣的雛菊鏈形式的現場網絡,參照圖11進行示例。
圖11是示出本實施方式的變形例的PLC系統1A的整體結構的示意圖。參照圖11,PLC系統1A包括主處理裝置2(主裝置)和一個以上的遠程裝置40(從裝置),它們通過雛菊鏈形式的現場網絡相連接。在現場網絡中,從主裝置向各個從裝置依次轉發分組(下行分組),在末端部折返,然后從各個從裝置向主裝置依次轉發分組(上行分組)。
在采用這樣的雛菊鏈形式的情況下,CPU單元10具有適合雛菊鏈形式的通信處理部110A。關于其它的結構和處理等,與上述的實施方式相同,因而不重復詳細的說明。
并且,在上述實施方式及其變形例中,示例了現場網絡中的數據傳輸,但也能夠適用于PLC內的連接CPU單元10和IO單元20的內部總線。
<L.其它方式>
關于本發明的分配功能的安裝方式,不限于上述的結構例,能夠實現各種結構。也可以在作為控制裝置的主處理裝置2(主裝置)安裝分配功能的全部功能,也可以在開發支持裝置500安裝分配功能的幾乎全部功能。或者,也可以構成為,主處理裝置2(主裝置)和開發支持裝置500相互通信而實現分配功能。根據應用對象的系統結構和成本因素等,采用合適的安裝方式。
<M.優點>
根據本實施方式,能夠以與各個從裝置擔當的功能或處理對應的更新頻度,從主裝置向與同一網絡連接的多個從裝置分別發送所需要的數據,因而能夠有效利用預先 設定的網絡的頻帶。并且,不需要在網絡上發送不必要的數據,因而能夠縮短控制周期,實現更高速的通信。
應該理解到此次公開的實施方式在所有方面都是示例性的而非限制性。本發明的范圍不在于上述的說明,而是通過權利要求書進行公開,且包含與權利要求書均等的意義及范圍內的所有變更。
標號說明
1、1A PLC系統;2主處理裝置;4現場網絡;10 CPU單元;20 IO單元;30電源單元;40遠程裝置;42伺服電機;100處理器;102主存儲器;103工作區域;104非易失性存儲器;105用戶程序;106系統程序;108內部總線控制器;109內部總線;110、110A、410通信處理部;112、412通信控制器;114、414共用存儲器;120、420發送緩沖器;122、422發送電路;130、430接收緩沖器;132、432接收電路;150分配設定;400運算處理部;402輸入電路;404輸出電路;500開發支持裝置。