JP7423920B2 - 制御システム、設定装置およびコンピュータプログラム - Google Patents

制御システム、設定装置およびコンピュータプログラム Download PDF

Info

Publication number
JP7423920B2
JP7423920B2 JP2019124437A JP2019124437A JP7423920B2 JP 7423920 B2 JP7423920 B2 JP 7423920B2 JP 2019124437 A JP2019124437 A JP 2019124437A JP 2019124437 A JP2019124437 A JP 2019124437A JP 7423920 B2 JP7423920 B2 JP 7423920B2
Authority
JP
Japan
Prior art keywords
control
program
upg
devices
control program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019124437A
Other languages
English (en)
Other versions
JP2021012405A (ja
Inventor
亮太 赤井
光宏 米田
太雅 新實
信幸 阪谷
成憲 澤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2019124437A priority Critical patent/JP7423920B2/ja
Priority to CN202080046667.9A priority patent/CN114072737B/zh
Priority to US17/597,124 priority patent/US20220244697A1/en
Priority to PCT/JP2020/010343 priority patent/WO2021002059A1/ja
Priority to EP20834459.8A priority patent/EP3995912A4/en
Publication of JP2021012405A publication Critical patent/JP2021012405A/ja
Application granted granted Critical
Publication of JP7423920B2 publication Critical patent/JP7423920B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13063Synchronization between modules

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Description

本開示は、対象を制御する制御システム、設定装置およびコンピュータプログラムに関する。
様々な生産現場において、PLC(プログラマブルロジックコントローラ)などの制御装置を用いたFA(Factory Automation)システムが広く普及している。PLCは、ロボットを含むフィールド機器などの制御対象の制御プログラムを実行する。近年は、FAシステムの規模が大きくなる傾向にあり、それに伴って、FAシステムが備えるPLCは増加する。
複数のPLCを備えるシステムとして、たとえば特開平10-164167号公報(特許文献1)は、通信装置を介して他のプログラマブルコントローラとの間でサイクリック型通信を行うプログラマブルコントローラを開示する。
特開平10-164167号公報
従来は、複数のPLCを備えるシステムであっても、各制御プログラムを動作させるPLCは固定である。その一方で、ユーザからは、FAシステムにおいて、複数のPLCの間で制御プログラムを自由に配置したいとのニーズがある。
本開示は、上記のニーズに対応することができる制御システム、設定装置およびプログラムを提供することである。
本開示にかかる制御システムは、ネットワーク接続される制御対象および複数の装置を備える制御システムであって、制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するための各装置に備えられるプログラム記憶手段と、各装置に備えられて、配置される制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、複数の制御プログラムを、複数の装置のうちの1つ以上に配置する配置手段と、を備え、配置手段は、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定する。
上述の開示によれば、複数の装置の間で制御プログラムを自由に配置する際に、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、各装置の制御プログラムの実行に使用可能なリソースの情報は、プログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズを含む。
上述の開示によれば、各制御プログラムについて、各装置間の通信遅延時間と、各装置のプログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズに基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示おいて、配置手段は、各装置に、制御プログラムの実行に使用可能な記憶領域のサイズを問い合わせる。
上述の開示によれば、配置手段は、問い合わせることで、各装置から、制御プログラムの実行に使用可能な記憶領域のサイズを受信できる。
上述の開示において、各装置の制御プログラムの実行に使用可能なリソースの情報は、プロセッサを制御プログラムの実行に使用可能な時間を含む。
上述の開示によれば、各制御プログラムについて、各装置間の通信遅延時間と、各装置のプロセッサを制御プログラムの実行に使用可能な時間に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、配置手段は、各装置に、プロセッサによる制御プログラムの実行に使用可能な時間を問い合わせる。
上述の開示によれば、配置手段は、問い合わせることで、各装置から、プロセッサによる制御プログラムの実行に使用可能な時間を受信できる。
上述の開示において、装置間の通信遅延時間を測定する手段を、さらに備える。
上述の開示によれば、装置間の通信遅延時間を測定することができる。
上述の開示において、各装置間の通信遅延時間は、制御対象と遣り取りするデータの通信にかかる通信遅延時間を含む。
上述の開示によれば、各制御プログラムについて、当該制御プログラムが使用するデータの通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、複数の装置は、互いに時刻同期された情報処理装置と1以上の制御装置とを含み、情報処理装置の実行手段は、各1以上の制御装置から受信するデータを用いて制御プログラムをプロセッサに実行させ、各制御装置の実行手段は、制御対象と遣り取りするデータを情報処理装置へ転送し、情報処理装置から受信する制御データを制御対象に出力する入出力プログラムを、プロセッサに実行させ、制御プログラムおよび入出力プログラムは、時刻同期に基づく時間であって各制御装置と情報処理装置との間で共有される時間内で実行される。
上述の開示によれば、互いに時刻同期される情報処理装置と制御装置を備える制御システムにおいて、情報処理装置の制御プログラム実行と、制御装置の入出力プログラムの実行とを共有される時間内で協調して実行する環境を提供することができる。ここでは、情報処理装置は自装置に配置された制御プログラムを実行するから、制御装置は制御プログラムの実行環境が要求されないので、制御装置を安価に構成することができる。
上述の開示において、配置手段は、制御システムの故障モード毎に、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定する。
上述の開示によれば、配置手段は、制御システムの故障モード毎に、制御プログラムの配置先の装置を再度決定できる。すなわち、配置手段は、故障モード時に取得される各装置間の通信遅延時間と、各装置の制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、配置手段は、制御プログラムの配置が決定された装置のうちから、当該制御プログラムを実行するべき装置を決定する。
上述の開示によれば、配置手段は、制御プログラムの配置先として決定した装置のうちから、当該制御プログラムを実行するべき装置を決定することができる。
この開示にかかる設定装置は、ネットワーク接続される制御対象および複数の装置を備える制御システムに対する設定を実施する設定装置である。
各装置は、制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するためのプログラム記憶手段と、制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、を備える。設定装置は、複数の制御プログラムを、複数の装置のうちの1つ以上に配置する配置手段を備え、配置手段は、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定する。
上述の開示によれば、複数の装置の間で制御プログラムを自由に配置する際に、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
この開示にかかるコンピュータプログラムは、ネットワーク接続される制御対象および複数の装置を備える制御システムに対する設定を実施するためのプログラムである。
各装置は、制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するためのプログラム記憶手段と、制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、を備える。コンピュータプログラムは、コンピュータに、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報を取得するステップと、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定するステップと、を実行させる。
上述の開示によれば、複数の装置の間で制御プログラムを自由に配置する際に、コンピュータプログラムが実行されることで、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
本開示によれば、制御システムにおいて、複数の装置の間で制御プログラムを自由に配置する際に、制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
本実施の形態にかかる制御システム1の構成の一例を模式的に示す図である。 本実施の形態にかかるPLC100の要部構成を示す模式図である。 本発明の実施の形態に係るフィールド装置90の要部構成を模式的に示す図である。 本実施の形態にかかる上位装置600の構成例を示す図である。 本実施の形態にかかるサポート装置500の構成を概略的に示す図である。 本実施の形態にかかる通信フレーム20の構成の一例を模式的に示す図である。 本実施の形態にかかるストリームID29を説明するための図である。 本実施の形態にかかる装置のソフトウェア構成の一例を模式的に示すブロック図である。 本実施の形態にかかるサポート装置500のソフトウェア構成の一例を模式的に示すブロック図である。 本実施の形態にかかる協調制御を説明するための制御システム1の構成を模式的に示す図である。 図10の制御システム1のタイミングチャートの一例を模式的に示す図である。 本実施に形態にかかる配置決定のパターンを表形式で模式的に示す図である。 本実施の形態にかかるUPG必要リソース算出処理部524の処理の一例を示すフローチャートである。 本実施の形態にかかるUPG付属情報310の一例を模式的に示す図である。 本実施の形態にかかるリソース確認情報320の一例を模式的に示す図である。 本実施の形態にかかる実行時間と実行制限時間の関係を模式的に示す図である。 本実施の形態にかかる装置間の通信遅延時間を測定する処理の一例を示すフローチャートである。 本実施の形態にかかる装置間の通信遅延時間を測定する際のテストデータの伝送経路を模式的に示す図である。 本実施の形態にかかる決定処理部523が配置決定のために参照する情報の一例を示す図である。 本実施の形態にかかるパターン1に従うUPGの配置の一例を模式的に示す図である。 本実施の形態にかかるパターン1に従う配置決定の処理の一例を示すフローチャートである。 本実施の形態にかかるパターン2に従うUPGの配置の一例を模式的に示す図である。 本実施の形態にかかるパターン2に従う配置決定の処理の一例を示すフローチャートである。 本実施の形態にかかるパターン3に従うUPGの配置の一例を模式的に示す図である。 本実施の形態にかかるパターン4に従うUPGの配置の一例を模式的に示す図である。 本実施の形態にかかるパターン5に従うUPGの配置の一例を模式的に示す図である。 本実施の形態にかかるパターン6に従うUPGの配置の一例を模式的に示す図である。
以下、図面を参照しつつ、本発明に従う実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<A.適用例>
図1は、本実施の形態にかかる制御システム1の構成の一例を模式的に示す図である。図1を参照して、FAに適用され得る制御システム1では、例えば「制御装置」の一実施例であるPLC100A,100B、100Cおよび100D、「情報処理装置」の一実施例である上位装置600、「制御対象」の一実施例である複数のフィールド装置90を備える。制御装置および情報処理装置は、制御対象を制御するための制御プログラムを実行する装置の一実施例である。PLC100A,100B、100Cおよび100Dは同様の機能を備えており、これらを区別しない場合はPLC100と総称する。上位装置600には、有線または無線のネットワーク11を介してPLC100が接続されている。PLC100には、有線または無線のネットワーク11を介して1または複数のフィールド装置90が接続されている。なお、制御システム1には、フィールド装置90を接続しないPLC100が備えられてもよい。
上位装置600は、制御システム1内のサーバ、またはクラウドサーバ等のような外部サーバ、またはPLC100に比較して高い性能を備えたPLC、または産業用のコンピュータ(所謂IPC:Industrial Personal Computer)として構成されてもよい。
ネットワーク11には、さらに、例えば、汎用のコンピュータで構成されるサポート装置500を接続することができる。サポート装置500は、制御システム1に対する設定を実施する「設定装置」の一実施例である。制御システム1では、サポート装置500は、PLC100および上位装置600から独立した装置として提供されているが、提供の態様はこれに限定されない。例えば、PLC100または上位装置600は、サポート装置500の機能を内蔵してもよい。PLC100が、サポート装置500の機能を内蔵する場合、PLC100はIPCなどの産業用のコンピュータとして構成されてもよい。
サポート装置500は、PLC100が制御対象を制御するために必要な準備を支援するための支援ツールを提供する装置である。支援ツールは、例えばUI(User Interface)によりユーザに提供される。具体的には、サポート装置500は、PLC100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、PLC100およびPLC100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムをPLC100へ送信する機能、PLC100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。サポート装置500で生成されたユーザプログラムは、PLC100または上位装置600にネットワーク11を介して転送、または記録媒体を介して転送されることで、PLC100または上位装置600に提供される。
このようなユーザプログラムは、制御対象を制御するための制御演算の命令コードを有した制御プログラムを含み、演算命令は制御対象と遣り取りするデータを用いて制御データを算出する命令を含む。ユーザプログラムは、制御対象に応じて任意に作成されるものであり、IEC61131-3に規定される言語を用いて記述されるシーケンスプログラムなどを含む。以下では、制御プログラムを含むユーザプログラムを、UPG(User Program)69と称する。
PLC100には、センサ、アクチュエータといった各種のフィールド装置90が接続される。これらのフィールド装置90は、PLC100に装着される入出力ユニットを介してPLC100に直接接続される場合もあるが、フィールド側のネットワーク11を介してPLC100に接続されることもある。フィールド装置90の各々は、製造装置または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。
フィールド装置90は、フィールドにおける制御対象または制御に関連する製造装置または生産ラインなどの状態を含むフィールド値を入力データとして収集する装置を含む。このようなフィールド値を収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置90は、さらに、PLC100にて生成される制御指令(指令値、制御量など)を含む制御データ、制御プログラムが算出または更新したデータなどを含むデータ(以下、「出力データ」とも称す。)に基づき、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置90は、ネットワーク11を介してPLC100との間で、入力データおよび出力データを含むデータを遣り取り(通信)する。
制御システム1では各装置は、上記の入力データおよび出力データを含む各種データを他の装置と高速に遣り取りすることができる。具体的には、PLC100と上位装置600との間のネットワークには、高速データ通信を可能にするプロトコルが適用される。また、ネットワーク11には、例えばTSN(Time-Sensitive Networking)規格に従いデータの到達時間が保証される、定周期通信を行なうバスまたはネットワークを採用され得る。例えば、ネットワーク11にはTSNの上位プロトコルとしてEtherNet/IP(登録商標)などの公知のプロトコルに係るネットワークを採用してもよい。EtherNet/IPは、汎用的なEthernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークである。このように、ネットワーク11を介した装置間のデータの遣り取りに、統一した通信プロトコルとして、例えばTSNが採用されることで、装置間でデータを遣り取りする場合、通信プロトコルが異なるケースに比較して、通信プロトコルの変換を省略できて、その分、高速にデータ通信することができる。したがって、制御周期毎に、全装置間でデータを共有することが可能となる。
ネットワーク11を介して、PLC100とフィールド装置90との間で遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、IOリフレッシュ72により実現される。
PLC100は、制御周期に同期してIOリフレッシュ72とUPG実行とを周期的に繰り返し実施する。IOリフレッシュ72は、フィールドとの間で、入力データおよび出力データを制御周期に同期して周期的に更新する処理である。本実施の形態にかかるPLC100においては、制御プログラムなどのUPG69によって参照される値は変数の形で管理されるので、IOリフレッシュ72は、UPG69が参照する対応する変数の値を周期的に更新する処理を意味する。
制御システム1では時刻同期が実施される。具体的には、上位装置600が備えるグランドマスタのタイマ601に、PLC100Aのタイマ101A、PLC100Bのタイマ101B、PLC100Cのタイマ101CおよびPLC100Dのタイマ101Dのそれぞれが同期する。さらに、図1では、PLC100Aに接続されるフィールド装置群3Aの各フィールド装置90はPLC100Aのタイマ101Aに時刻同期する。また、PLC100Bに接続されるフィールド装置群3Bの各フィールド装置90はPLC100Bのタイマ101Bに時刻同期する。また、PLC100Cに接続されるフィールド装置群3Cの各フィールド装置90はPLC100Cのタイマ101Cに時刻同期する。また、PLC100Dに接続されるフィールド装置群3Dの各フィールド装置90はPLC100Dのタイマ101Dに時刻同期する。これにより、ネットワーク11に接続される各装置は互いに時刻同期する。
制御システム1では、制御周期毎に全装置間でデータを共有することが可能となるデータ通信環境が提供されるので、従来のようにUPG69を装置固定で配置するのに代えて、UPG69を自由に配置することが可能となる。本実施の形態では、「UPG配置」とは、UPG69をPLC100または上位装置600にUPGをダウンロードすること、および「配置決定」とは、UPG69のダウンロード先の装置を決定する、より特定的には最適な装置を決定することを、それぞれ意味する。
サポート装置500が提供する支援ツールは、複数の制御プログラム(UPG69)を、PLC100および上位装置600を含む複数の装置のうちの1つ以上に配置するのを支援する配置ツール630を含む。配置ツール630は、UPG69を最適な装置に配置するために、UPG69について、装置間の通信遅延時間631と、各装置の当該UPG69の実行に使用可能なリソースを示すリソース量632とを取得し、取得した情報に基づき、複数の装置のうちから当該UPG69が配置されるべき最適な装置を決定する。
本実施の形態では、「通信遅延時間」は、制御プログラムが制御対象と遣り取りするデータの通信にかかる時間を含む。例えば、IOリフレッシュ72が、処理を開始してから、UPG69が参照する全ての変数に対応のデータをフィールド装置90と通信し当該変数に設定が完了するまでに要する時間を示す。本実施の形態では、UPG69は例えば製造工程毎に作成されて、各工程のUPG69が参照する変数は一般的に相違することから、配置ツール630は、各UPG69について通信遅延時間631を測定する。
また、本実施の形態では、リソース量632は、例えば「UPG69の実行に使用可能な記憶領域」のサイズを含み、この記憶領域は、装置が備えるプログラム記憶装置(記憶媒体を含む)が有する記憶領域であって、UPG69の実行に提供可能な記憶領域を意味する。この種の記憶領域は、装置が備える主記憶(内部記憶、一次記憶)装置または補助記憶(外部記憶、二次記憶)装置が有する記憶領域を含む概念であるが、本実施の形態では、「UPGの実行に使用可能な記憶領域」は、プロセッサがUPG69を実行する際に、UPG69の命令コードが展開される主記憶装置の記憶領域に対応する。主記憶装置の記憶領域のうち、UPG69を実行するための他のプログラム(OS(Operating System)を含むシステムプログラムおよびデータなど)が展開される記憶領域を除いた領域が、UPG69の実行(UPG69の展開)に使用可能な記憶領域となる。本実施の形態では、主記憶装置が有する記憶領域のサイズまたはシステムプログラム等のサイズは、装置毎に異なる可能性があることから、配置ツール630は、各UPG69について、装置毎に、当該UPG69の実行に使用可能な記憶領域サイズ633(以下、記憶領域サイズ633と呼ぶ)を測定する。
このように配置ツール630は、UPG69について、「通信遅延時間631」および各装置のUPG69の実行に使用可能なリソース量632に基づき、UPG69の配置先の装置を最適となるように決定することができる。
以下、本実施の形態のより具体的な応用例について説明する。
<B.各装置の構成>
制御システム1が備える各装置の構成を説明する。
(b1.PLC100の構成)
図2は、本実施の形態にかかるPLC100の要部構成を示す模式図である。図2を参照して、PLC100は、演算処理部110、通信回路130、DMA(Direct Memory Access)コントローラ140、高精度のタイマ160、通信コントローラ107、ネットワーク11を接続する通信ポート136および137、およびメモリカードインターフェイス108を含む。タイマ160は、タイマ101A、101B、101Cおよび101Dに対応する。
演算処理部110は、プロセッサ112、主記憶装置の一例である記憶部114および補助記憶装置の一例であるストレージ119を含む。主記憶装置は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。補助記憶装置は、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
説明の便宜上、PLC100には、1つのプロセッサ112のみを備えるが、複数のプロセッサが実装されてもよい。なお、各プロセッサは、複数のコアを有していてもよい。演算処理部110においては、プロセッサ112が1または複数のタスクを周期的に実行する。演算処理部110で複数のタスクが実行される場合には、それらの複数のタスクに対して、互いに異なる優先度が設定されてもよい。
プロセッサ112は、通信回路130の後述するバッファ132に格納された後述する通信フレーム20(例えば、入力データ134、出力データ135)を記憶部114に転送する。記憶部114は、プロセッサ112でのプログラムの実行に必要なワーク領域を提供する。
ストレージ119は、周辺処理プログラム120、IOリフレッシュプログラム125、システムプログラム122、スケジューラ123、測定プログラム126、1または複数のUPG69を含むUPGライブラリ170、および時刻同期を実施するための時刻同期プログラム121を含む通信プログラム127などを格納する。
システムプログラム122は、OS(Operating System)および関数などのライブラリを含む。IOリフレッシュプログラム125は、実行されるとIOリフレッシュ72を実施する。IOリフレッシュ72では、通信回路130を介して受信する通信フレーム20に含まれるフィールド値(入力データ)を演算処理部110に送信する。また、IOリフレッシュプログラム125は、PLC100で算出される制御データ(出力データ)をネットワーク11上に送信する。このように、IOリフレッシュプログラム125は、入力データおよび出力データの少なくともいずれかを転送するIOリフレッシュ72を実現する。
UPG69は、制御対象を制御するために、記憶部114の入力データ134に基づく演算を実施するための制御演算プログラムを含む。制御演算は、シーケンス制御および例えばロボットの挙動を制御するモーション制御の演算を含む。UPG69の制御演算処理による制御データなどの算出値は、出力データ135として記憶部114に格納される。
通信プログラム127は、記憶部114の出力データ135を用いて通信フレーム20を生成するとともに、通信フレーム20を送受信するように通信回路130を制御する。周辺処理プログラム120は、UPG69により実施される制御演算処理などとは異なる処理であって、制御演算処理の周辺で実施される処理であり、例えばネットワーク11を介して遣り取りされる通信フレーム20のロギング処理などを含む。
スケジューラ123は、UPG69を含む複数のプログラムをプロセッサ112に実行させる「実行手段」の一実施例である。スケジューラ123は、PLC100のプロセスまたはタスクなどに対して、優先度に従いプロセッサ112の使用時間などリソース割当てや実行タイミングなどを管理するプログラムである。このような、プロセスまたはタスクは、周辺処理プログラム120、UPG69、IOリフレッシュプログラム125、時刻同期プログラム121、通信プログラム127などが、プロセッサ112により実行されることにより生成され得るプロセスまたはタスクが含まれる。スケジューラ123は、時刻同期したタイマ160に従い、例えば予め定められた制御周期に基づく周期で各プログラムのプロセッサ112による実行タイミングを調整する。これにより、PLC100は、UPG69の制御演算処理およびIOリフレッシュ72を、他の装置との間で同期した時刻に基づく周期でサイクリックに実施することができる。
測定プログラム126は、主に、配置決定のための各種ファクタを測定(算出)するためのプログラムを含む。具体的には、測定プログラム126は、通信遅延時間631を測定するための遅延時間測定プログラム86およびUPG69の実行に使用可能なリソース量632を測定(算出)するリソース測定プログラム89を含む。リソース測定プログラム89は、記憶領域サイズ633を算出するメモリサイズ算出プログラム87およびプロセッサ112がUPG69を実行開始してから完了するまでに要する時間634(以下、UPG実行時間634とも称する)を測定する実行時間測定プログラム88を含む。
通信コントローラ107は、ネットワーク11または別の通信路を介してUPG69を受信する。メモリカードインターフェイス108は、メモリカード116を脱着可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムまたはデータなど)を読出すことが可能になっている。UPG69は、メモリカード116からストレージ119にロードされてもよい。
通信回路130は、ネットワーク11を物理的に接続する通信ポート136および137を接続する。限定されないが、例えば通信ポート136は、他のPLC100側に繋がるネットワーク11が接続され、通信ポート137はフィールド装置90側に繋がるネットワーク11が接続される。通信回路130は、通信ポート136,137を介して他の装置と通信フレーム20を遣り取りする。通信回路130は、ネットワーク11を介して送受信される通信フレーム20を一時的に格納するバッファ132を備える。バッファ132に一時的に格納される通信フレーム20は、例えば、入力データ134および出力データ135を含む。
通信回路130は通信フレーム20の送受信を例えば次のように実施する。通信回路130は、プロセッサ112の指令に従い、DMAコントローラ140を介した記憶部114からの出力データ135に基づく通信フレーム20をコピーして、コピーを出力データ135としてバッファ132に格納するとともに、通信フレーム20をネットワーク11上に送信する。
また、通信回路130は、プロセッサ112の指令に従い、ネットワーク11から到来(受信)する通信フレーム20をコピーして、コピーを入力データ134としてバッファ132に格納するとともに、通信フレーム20を演算処理部110へ出力する。この通信フレーム20は、入力データとして記憶部114に格納される。
記憶部114には、送受信される通信フレーム20のデータが、制御周期よりも長い期間に亘り蓄積されてもよく、直近の制御周期の通信フレーム20のデータのみが蓄積されるとしてもよい。
本実施の形態において、PLC100による「IOリフレッシュ72」は、出力データ135(通信フレーム20)の他の装置への送信、および他の装置からの入力データ134の受信のうちの少なくとも一方を含む。「IOリフレッシュ72」では、入力データ134はフィールド装置90により収集されて転送されるフィールド値の通信フレーム20に対応し、出力データ135は、PLC100のUPG69の制御演算処理により算出された制御データの通信フレーム20に対応する。
DMAコントローラ140は、演算処理部110および通信回路130に接続され、演算処理部110と通信回路130との間で、データアクセスを高速化する機能を備える。これにより、IOリフレッシュ処理時間の短縮と送信タイミングのジッタの低減が可能となる。
図2に示す構成においては、説明の便宜上、演算処理部110、通信回路130およびDMAコントローラ140を区別した構成を描いているが、これに限られることなく任意の実装形態を採用できる。例えば、演算処理部110の全部または一部と通信回路130の全部または一部とを同一のチップ上に実装したSoC(System on Chip)で構成してもよい。あるいは、演算処理部110のプロセッサ112とDMAコントローラ140の主要機能とを同一のチップ上に実装したSoCを用いてもよい。これらの実装形態については、適宜選択可能である。
(b2.フィールド装置90のハードウェア構成)
図3は、本発明の実施の形態に係るフィールド装置90の要部構成を模式的に示す図である。図3を参照して、フィールド装置90は、プロセッサ91、メモリ92、サーボモータなどを接続する通信I/F(Interface)93、ネットワーク11を接続する通信回路94、PLC100のタイマ160と同様の構成を備えるタイマ99、およびメモリカード96が脱着可能に装着されるメモリカードインターフェイス95を備える。このような機器はメモリカード96を取り扱う機能および回路を備えないこともあり得る。したがって、フィールド装置90は、メモリカード96に関連した機能および回路を備えない装置も含み得る。
通信I/F93は、プロセッサ91からの指令に従い、制御対象からのフィールド値を受信するとともに、プロセッサ91からの制御データを制御対象に送信する。これにより、制御対象は、指令値,制御量に従い制御されて、その結果であるフィールド値を出力する。
通信回路94は、ネットワーク11を物理的に接続する通信ポート971および972を備える。通信回路94は、通信ポート971,972を介して他の装置とデータを遣り取りする。限定されないが、通信ポート971はPLC100側に繋がるネットワーク11を接続し、通信ポート972はフィールド装置90側に繋がるネットワーク11を接続する。
また、通信回路94は、ネットワーク11を介して送受信されるデータを一時的に格納するバッファ941を備える。バッファ941には、送受信されるデータが例えば、入力データ944または出力データ943として一時的に格納される。
メモリ92は、フラッシュメモリ、ハードディスク、DRAMまたはSRAMなどを備えて構成され、プロセッサ91でのプログラムの実行に必要なワーク領域を提供する。メモリ92は、システムプログラム81、フィールド装置90に接続される制御対象(サーボモータ、ロボット)などを動作させるためのプログラムを含むアプリケーションプログラム82、通信プログラム83、プログラムを周期的に実行させるためのスケジューラ84、出力データ943および入力データ944などを格納する。メモリ92には、PLC100を経由してサポート装置500から、またはメモリカードインターフェイス95を介してメモリカード96からプログラムまたはデータが格納され得る。
通信プログラム83は、通信I/F93および通信回路94を制御するプログラムである。通信プログラム83は、時刻同期を実施するための時刻同期プログラム831を含む。
通信回路94は、プロセッサ91の指令に従い、メモリ92の出力データ943をコピーして、コピーを出力データ943としてバッファ941に格納するとともに、当該出力データ943をネットワーク11上に送信する。また、通信回路94は、プロセッサ91の指令に従い、ネットワーク11から到来するデータを受信し、当該受信データをコピーし、コピーを入力データ944としてバッファ941に格納する。また、プロセッサ91は、当該入力データ944をメモリ92に格納する。
(b3.上位装置600のハードウェア構成)
図4は、本実施の形態にかかる上位装置600の構成例を示す図である。上位装置600は、汎用のコンピュータの構成を備える。図4を参照して、上位装置600は、タイマ601、CPUまたはMPUなどのプロセッサ603、記憶装置、PLC100を含む他の装置との間でデータを遣り取りするためのネットワークコントローラ620を備える。上位装置600は、さらに、メモリカード622が着脱自在に装着されて、装着されたメモリカード622を読み書きするメモリカードインターフェイス621を備える。
ネットワークコントローラ620は、例えばNICを備えて構成されてもよい。これらのコンポーネントは、内部バス602を介して互いにデータ通信可能に接続されている。記憶装置は、ROM(Read Only Memory)604、RAM(Random Access Memory)605およびHDD(Hard Disk Drive)606を含む。これら記憶装置は、補助記憶装置および主記憶装置を構成する。補助記憶装置は、例えば、HDD606またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。主記憶装置は、RAM605に含まれるDRAMまたはSRAMなどの揮発性記憶装置などで構成される。プロセッサ603は、マルチプロセッサを備えて、UPG69を並列に実行できるよう構成されてもよい。
HDD606は、OS(Operating System)を含むシステムプログラム701、サーバプログラム68、1つ以上のUPG69を格納するUPGライブラリ171、時刻同期を実施するための時刻同期プログラム67を含む通信プログラム64、スケジューラ63、およびUPG69の制御演算とは異なる他の処理を実施するための他のプログラムを格納する。さらに、HDD606は、図2のPLC100と同様に、遅延時間測定プログラム86およびリソース測定プログラム89を含む測定プログラム126を格納する。リソース測定プログラム89は、メモリサイズ算出プログラム87および実行時間測定プログラム88を含む。プロセッサ603は、HDD606のプログラムをRAM605に読出し(展開して)実行する。
スケジューラ63は、UPG69を含む複数のプログラムをプロセッサ603に実行させる「実行手段」の一実施例である。スケジューラ63は、上位装置600のプロセスまたはタスクなどに対して、優先度に従いプロセッサ603の使用時間などリソース割当てや実行タイミングなどを管理するプログラムである。このような、プロセスまたはタスクは、HDD605の各種プログラムが、プロセッサ603により実行されることにより生成され得るプロセスまたはタスクが含まれる。スケジューラ63は、時刻同期したタイマ601に従い、例えば予め定められた制御周期に基づく周期で各プログラムのプロセッサ603による実行タイミングを調整することができる。これにより、上位装置600は、UPG69の制御演算処理を、他の装置との間で同期した時刻に基づく周期でサイクリックに実施することができる。
RAM605は、後述する入力データ(送信)182を格納する受信用データ領域661と、後述する出力データ(受信)183を格納する送信用データ領域662を含む。入力データ(送信)182と出力データ(受信)183は、データの送信元または宛先であるPLC100の識別子、変数名および当該変数に対応するデータとからなる。プロセッサ603は、ネットワークコントローラ620を介してPLC100から受信する入力データ(送信)182を受信用データ領域661に格納する。また、プロセッサ603は、受信用データ領域661の入力データ(送信)182を用いた制御演算処理を実行し、算出値である出力データ(受信)183を、送信用データ領域662に格納する。入力データ(送信)182の受信と出力データ(受信)183の送信は、プロセッサ603が、通信プログラム64を実行することにより実現される。
(b4.サポート装置500の構成)
図5は、本実施の形態にかかるサポート装置500の構成を概略的に示す図である。図5を参照して、サポート装置500は、CPU(Central Processing Unit)502とプログラムおよびデータを格納する格納部を備えて、プログラムに従って動作するコンピュータシステムである。格納部は、ROM(Read Only Memory)503、RAM(Random Access Memory)504およびHDD(Hard Disk Drive)505を含む。サポート装置500は、さらに、通信コントローラ507およびI/O(Input/Output)インターフェイス508を含む。サポート装置500は、さらに、キーボード509およびディスプレイ510を含む。キーボード509は、ユーザからのサポート装置500に対する指示を含む入力を受付ける。当該入力を受付けるために、サポート装置500は、マウス等の他のデバイスを含んでもよい。ディスプレイ510は、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)を含み、サポート装置500から出力される映像信号または画像信号に従う映像または画像を表示する。サポート装置500は、外部の記憶媒体501を脱着自在に装着し、装着された記憶媒体501にプログラムおよび/またはデータを読み書きするR/W(リーダライタ)デバイス506を備える。
通信コントローラ507は、ネットワーク11を介したサポート装置500と外部デバイスとの通信を制御する。通信コントローラ507は、例えばNIC(Network Interface Card)を含んで構成される。I/Oインターフェイス508は、CPU502とキーボード509およびディスプレイ510との間のデータの遣り取りを制御する。
HDD505は、OSを含むシステムプログラム70、UPG69を生成するためのUPG生成プログラム71、生成された1または複数のUPG69を格納するUPGライブラリ172、配置ツール630を実現するための配置プログラム61、他の装置と通信するための通信プログラム611、および配置ツール630が決定したUPG配置を示すUPG配置情報627を含む。配置プログラム61は、UPG69を配置するための必要なリソース量632を取得するための必要リソース取得プログラム629および通信遅延時間631を取得するための遅延時間取得プログラム163を含む。必要リソース取得プログラム629は、各装置から記憶領域サイズ633を取得するためのメモリサイズ取得プログラム162および各装置からUPG実行時間634を取得するための実行時間取得プログラム262を含む。配置ツール630は、UPG配置情報627をI/Oインターフェイス508を介してディスプレイ510に表示させる。
UPG生成プログラム71は、キーボード509から受け付けるユーザ操作に従いUPG69を編集(生成)するエディタ、編集されたUPG69をコンパイルするコンパイラ、UPG69を実行可能な形式に変換するビルダなどを含む。なお、ビルダが、コンパイルの機能を含んでもよい。
<C.通信フレーム20の構成>
本実施の形態では、ネットワーク11上のデータ転送は、例えば通信フレームを利用して実施される。図6は、本実施の形態にかかる通信フレーム20の構成の一例を模式的に示す図である。図6は、基本的な通信フレーム20の一例を示す。
図6を参照して、基本的な通信フレーム20は、プリアンブル21を格納する領域、フレームの宛先22を格納する領域、フレームの送信元23を格納する領域、タグ24の領域、ネットワークのタイプ25を格納する領域、および誤り訂正情報27のための領域を含み、さらに、転送されるべきデータ本体であるペイロード26を格納する領域を含む。通信フレーム20の宛先22および送信元23は、各装置を一意に識別する情報、例えばMAC(Media Access Control address)を含む。図6の基本的な通信フレーム20の場合は、ペイロード26は、例えばフィールド値に相当する入力データ134,944または出力データ135,943を含む。
宛先22の領域は、通信フレーム20の転送を管理するためのストリームID(Identifier)29を含む。図7は、本実施の形態にかかるストリームID29を説明するための図である。本実施の形態では、ネットワーク11上を転送される通信フレーム20はフロー42の単位で管理される。図7に示すように、ネットワーク11に接続される装置は、通信フレーム20の送信元(TALKER)または送信先(LISTENER)となり得る。各フロー42は、TALKERの識別子とLISTENERの識別子の組で規定されるストリームID29が割当てられる。
本実施の形態では、ペイロード26が出力データの制御データである場合は、TALKERは、ペイロード26(制御データ)の送信元となる装置の識別子が割り当てられて、LISTENERには送信先装置(フィールド装置90)のMACアドレスが割り当てられる。本実施の形態では、ペイロード26が入力データのフィールド値である場合は、TALKERは、送信元の装置のMACアドレスが割り当てられて、LISTENERには送信先装置のMACアドレスが割り当てられる。したがって、各装置は、遣り取りする各通信フレーム20を、そのストリームID29に基き一意に識別することが可能となる。
(c1.通信フレーム20のペイロード)
例えば、図6の通信フレーム20には、ペイロード26として、例えば制御系データが格納され得る。ペイロード26の領域は、制御系データのうちのフィールド値を格納する領域と、制御系データのうちの制御データを格納する領域とを備える。
各フィールド装置90は、ペイロード26の領域を読み書きする場合、例えば、当該装置に個別に割当てられているオフセット(例えば、通信フレーム20の先頭からのオフセット)に基づいたペイロード26の領域内の位置を特定し、特定した位置でデータを読み書きする。具体的には、通信プログラム83は、到来した通信フレーム20のペイロード26の領域の自装置のオフセットに基く位置から、制御データ(入力データ944または出力データ135)を読出し、また、送信すべき通信フレーム20のペイロード26の領域のオフセットに基づく位置にフィールド値(出力データ943または入力データ134)を書込む。
一方、PLC100は各フィールド装置90に割当てられたオフセット情報を記憶している。したがって、PLC100は、このオフセット情報に基き、到来する通信フレーム20のペイロード26の領域内から各フィールド装置90のフィールド値(出力データ943または入力データ134)を読出し、また、このオフセット情報に基き、送信すべき通信フレーム20のペイロード26の領域内の各フィールド装置90のオフセット位置に、制御データ(入力データ944または出力データ135)を書込むことができる。
これにより、PLC100は、通信フレーム20のペイロード26の領域に各フィールド装置90の制御系データを読み書きでき、また、各フィールド装置90は通信フレーム20のペイロード26の領域に自装置の制御系データを読み書きすることができる。
<D.装置のソフトウェア構成>
本発明の実施の形態にかかる各装置におけるソフトウェア構成を説明する。
(d1.PLC100または上位装置600の構成)
図8は、本実施の形態にかかる装置のソフトウェア構成の一例を模式的に示すブロック図である。図8の構成は、PLC100および上位装置600に共通であるので、ここでは、代表してPLC100について説明し、上位装置600の構成の説明は繰返さない。
図8を参照して、PLC100は、図2に示す各プログラムが実行されることで、当該プログラムに対応した処理部が実現される。具体的には、PLC100は、サポート装置500で生成されたUPG69を格納するためのUPGライブラリ170(上位装置600のUPGライブラリ171に対応)、スケジューラ123(上位装置600のスケジューラ63に対応)に対応するスケジューリング処理部610および通信プログラム127(上位装置600の通信プログラム64に対応)の通信処理部615を含む。PLC100は、さらに、メモリサイズ算出プログラム87に対応する確保メモリ算出処理部612、遅延時間測定プログラム86に対応の遅延測定処理部613および実行時間測定プログラム88に対応のUPG実行時間計測処理部614を含む。
スケジューリング処理部610は、プロセッサにプログラムを実行させるために、プロセッサの空き時間を、UPG69を含む各種アプリケーションプログラムに周期的に割当てることで、各プログラムの実行タイミングを調整する。
通信処理部615は、通信フレーム20を送受信する送信処理部616および受信処理部617、ならびに時刻同期プログラム121(上位装置600に時刻同期プログラム67に対応)の時刻同期処理部618を含む。
(d2.サポート装置500の構成)
図9は、本実施の形態にかかるサポート装置500のソフトウェア構成の一例を模式的に示すブロック図である。
図9を参照して、サポート装置500は、図5に示す各プログラムが実行されることで、当該プログラムに対応した処理部が実現される。具体的には、サポート装置500は、UI520、UPGライブラリ172、通信プログラム611に対応の通信処理部526、および配置ツール630を提供するための各種プログラムおよびデータを含む。通信処理部526は、外部装置と情報を送受信する送信処理部527および受信処理部528を含む。
UI520は、UPG生成プログラム71が実行されることで提供されるUPGプログラム生成ツール、および配置プログラム61が実行されることで提供される配置ツール630を含む支援ツールに対するユーザ操作を受付ける。UPGプログラム生成ツールにより生成されたUPG69はUPGライブラリ172に格納される。
サポート装置500は、さらに、配置ツール630を提供するために、必要リソース取得プログラム629に対応のUPG必要リソース算出処理部524、メモリサイズ取得プログラム162に対応のUPG実行メモリ確認処理部522、実行時間取得プログラム262に対応の実行時間処理部529、遅延時間取得プログラム163に対応の遅延算出処理部525、およびこれら処理部により算出(測定)された情報に基き配置決定を実施し、UPG配置情報627を出力する決定処理部523を含む。
さらに、サポート装置500は、配置ツール630の各処理部により取得される情報をRAM504の記憶部に格納する。取得される情報は、各UPG69について取得される情報であって、UPG必要リソース算出処理部524により算出されるUPG必要メモリ530、各装置から受信する当該装置の確保メモリ531、遅延算出処理部525により算出される全通信経路の遅延時間532、および各UPGの実行時間533を含む。各UPGの実行時間533は、実行時間処理部529が各装置から受信する時間であって、各装置がUPGを実行するためにプロセッサを使用可能な時間を示す。UPG必要メモリ530、各装置の確保メモリ531、全通信経路の遅延時間532、および各UPGの実行時間533の詳細は後述する。
<E.協調制御>
本実施の形態にかかる制御システム1は、上位装置600とPLC100とが、協調しながらフィールド装置90を制御する環境を提供する。この協調制御を図10と図11を参照して説明する。
図10は、本実施の形態にかかる協調制御を説明するための制御システム1の構成を模式的に示す図である。図10を参照して、制御システム1では上位装置600には2台のPLC100(例えばPLC100AとPLC100B)が接続されている。なお、上位装置600に接続されるPLC100の台数は、2台に限定されず、3台以上であってもよい。
図11は、図10の制御システム1のタイミングチャートの一例を模式的に示す図である。なお、図11では、フィールド装置90の処理は略されている。図11の上位装置600は、PLC100Aからの入力データ(送信)182に基づく制御演算処理のためのUPG(1)と、PLC100Bからの入力データ(送信)182に基づく制御演算処理のためのUPG(2)とを実行する。UPG(1)とUPG(2)は、同期した時刻に基づく共通のトリガ8に応じて同時に実行開始可能とされる。IOリフレッシュ72は、PLC100が制御対象のフィールド装置90からの入力データ(フィールド値)を上位装置600へ転送し、上位装置から受信する制御データを制御対象のフィールド装置90に出力する入出力プログラムとしての機能を提供する。
図11を参照して、制御周期10の開始に同期してPLC100A,100BはIOリフレッシュ72を開始するが、各PLC100に接続されるフィールド装置90の台数、または収集するべき入力変数の数、またはネットワーク11の負荷等の差異に起因して、上位通信73を開始できる時間(すなわち、IOリフレッシュ72によりフィールド値である入力データ(送信)182の収集を完了する時間)に差が生じ得る。このように、上位通信73を開始できる時間に差が生じることに伴い、上位装置600では、PLC100Aから入力データ(送信)182を受信し領域661に格納するデータ格納時間12と、PLC100Bから入力データ(送信)182を受信し領域661に格納するためのデータ格納時間12とは一致せず、ずれることになる。上位装置600では、この「ずれ」は待ち時間14で調整される。例えば、上位装置600は、PLC100Bの入力データ(送信)182のデータ格納完了後の待ち時間14が経過したときの時間15において、上位装置600はUPG(1)とUPG(2)を同時(並列)に実行開始する。
UPG(1)とUPG(2)の並列実行においては、UPG(2)は、UPG(1)の算出値を用いて実行されてもよい。これにより、例えば、PLC100Aに接続されたサーボ装置(フィールド装置90)からの位置データ(出力データ)に基づく算出値を、UPG(2)の制御演算(例えば、PLC100Bに接続されたサーボ装置(フィールド装置90)の指令値を決定するために用いることができる。
並列実行されたUPG(1)とUPG(2)の実行結果である制御演算の算出値である制御データ(出力データ(受信)183)は領域662にデータ格納時間13で格納される。領域662の出力データ(受信)183は、PLC100A,100Bにそれぞれ送信される。PLC100A,100Bは、それぞれ、次の制御周期10が開始される前に、上位装置600から出力データ(受信)183を受信完了する。
図10と図11で示されるように、制御システム1では、互いに時刻同期される上位装置600とPLC100を備える制御システム1において、上位装置600のUPG69の制御演算処理と、PLC100の入出力処理(IOリフレッシュ72)とを共有される時間内で協調して実行する環境が提供される。ここでは、PLC100は制御演算処理の実行環境を備える必要はないので、PLC100は制御演算処理に要求される処理量または処理時間の制約を受けずに(独立に)フィールド装置90を制御することができる。
<F.配置決定>
図12は、本実施に形態にかかる配置決定のパターンを表形式で模式的に示す図である。配置決定のパターンは、全通信経路の遅延時間532および各装置においてUPG実行のために使用可能なリソースに基づく条件と、制御システム1の正常時または異常時のユースケースの組合せにより分類された、例えば、パターン1~6を示す。図12の条件は、上位装置600のリソース(記憶領域サイズ633およびUPG実行時間634)がUPG69を実行するのに十分であるとした場合に、PLC100で使用可能なリソースと通信遅延時間631に基づく条件を示す。
図12を参照して、上記の組合せは、分類(1)~分類(3)に大別される。分類(1)は、各PLC100がUPG69の実行に使用可能なリソースを有し、且つ制御システム1に上位装置600が接続される場合にあたる。分類(2)は、各PLC100はUPG69の実行に使用可能なリソースはなく、且つ制御システム1に上位装置600が接続される場合にあたる。分類(3)は、各PLC100はUPG69の実行に使用可能なリソースはなく、且つ制御システム1に上位装置600が接続されない場合にあたる。
分類(1)は、上位装置600の通信遅延時間631が各PLC100の通信遅延時間631よりも小さい場合において、正常時のパターン2と異常時のパターン3を有し、各PLC100の通信遅延時間631が上位装置600の通信遅延時間631がより小さい場合において、異常時のパターン4とパターン5を有する。また、分類(2)は、異常時のパターン6を有し、分類(3)は正常時のパターン1を有する。
代表してパターン1~6のそれぞれにおける配置決定を説明するが、本実施の形態では上位装置600はPLC100と通信可能であり、フィールド装置90とは通信しない。また、制御システム1はPLC100間の通信経路は直接通信する経路と上位装置600を経由する経路を含み、両方の経路が正常である場合は、PLC100は直接通信する経路で他のPLC100と通信する。なお、各パターンでは、配置決定の対象となる複数のUPG69が有る場合は、全てのUPG69について同一パターンのもとで配置決定が実施される。
各パターンを説明するために、まず、各UPG69について、各装置の当該UPG69の実行に使用可能なリソースを確認する処理と、装置間の通信遅延時間を確認する処理とを説明する。
(f1.リソース確認処理)
図13は、本実施の形態にかかるUPG必要リソース算出処理部524の処理の一例を示すフローチャートである。図14は、本実施の形態にかかるUPG付属情報310の一例を模式的に示す図である。図15は、本実施の形態にかかるリソース確認情報320の一例を模式的に示す図である。図16は、本実施の形態にかかる実行時間と実行制限時間の関係を模式的に示す図である。
図13を参照して、配置ツール630は、UI520を介して、全工程で実施されるべきUPG69を指定する情報、各UPG69に対して設定される実行制限時間313、および全てのUPG69の実行制限時間315を受付ける(ステップT1)。
本実施の形態では、UPG69の実行制限時間313は、当該UPG69の実行にかかる実行時間と通信遅延時間との合計に対応する上限値である。また、全てのUPG69の実行制限時間315は、各UPG69の上記の合計の総和の上限値であって、例えば制御周期に基づいた値である。図16では、図14のUPG付属情報310を有するUPG(1)、UPG(2)およびUPG(3)がPLC(3)で実行された場合に、各UPG69について計測されたUPG実行時間(図16の実線矢印で示す時間)と当該UPGの実行制限時間313(図16の破線矢印で示す時間)とが関連付けて示される。また、図16の最下段では、UPG(1)、UPG(2)およびUPG(3)についての上記の総和は、ステップT1でユーザが設定した全てのUPGの実行制限時間315を超えていないことが示されている。
UPG必要リソース算出処理部524は、ステップT1で指定されたUPG69をUPGライブラリ172において特定し、特定したUPG69を実行するのに必要なメモリサイズであるUPG必要メモリ530を算出する(ステップT3)。UPG必要リソース算出処理部524は、例えば、UPG69の実行時にUPG69のオブジェクトコードが主記憶装置に展開されるとした場合、このオブジェクトコードのサイズからUPG必要メモリ530を算出することができる。なお、必要なメモリサイズの算出方法は、これに限定されない。
配置ツール630は、ステップT1で受付けた情報およびステップT3で算出されたUPG必要メモリ530から、図14のUPG付属情報310を作成し、RAM504に格納する。本実施の形態では、図14に示すように、UPG69として、各工程に対応したUPG(1)、UPG(2)およびUPG(3)が指定されている。
UPG実行メモリ確認処理部522は、各装置に対してUPG69を実行するために確保できるメモリサイズ、すなわち使用可能な記憶領域のサイズを問合せる(ステップT5)。UPG実行メモリ確認処理部522は、問合せを、通信処理部526を介して各装置(PLC100および上位装置600)に送信する。
各装置では、確保メモリ算出処理部612は、通信処理部615を介して、サポート装置500からの問合せを受信し、問合せに従い、主記憶装置においてUPG69を実行するために確保できるメモリサイズを算出し、算出したメモリサイズを応答としてサポート装置500に送信する。ステップT5の問合わせおよびステップT7の応答は、UPG(1)~(3)のそれぞれについて実施されて、UPG実行メモリ確認処理部522は、各装置から受信した応答である確保できるメモリサイズを、装置の確保メモリ531と決定する。
UPG実行メモリ確認処理部522は、各装置から受信した確保メモリ531が示すメモリサイズに基き、UPG(1)~UPG(3)の全てを実行できる装置があるかを判定する(ステップT9)。具体的には、UPG実行メモリ確認処理部522は、UPG付属情報310のUPG(1)~(3)のUPG必要メモリ530が示すメモリサイズのトータル値を装置の確保メモリ531が示すメモリサイズと比較し、比較結果に基き、(トータル値<確保メモリ531が示すメモリサイズ)の条件を満たす装置があるかを判定する。
UPG実行メモリ確認処理部522は、上記の条件を満たす装置はないと判定すると(ステップT9でNO)、UI520を介してメモリ不足のエラー通知を出力する(ステップT11)が、上記の条件を満たす装置があると判定すると(ステップT9でYES)、ステップT13に移行する。
ステップT13以降では、実行時間処理部529は、各装置におけるUPG69の実行時間を問い合わせて取得する。具体的には、実行時間処理部529は、UPGライブラリ172のUPG(1)~(3)を、通信処理部526を介して、上記の条件を満たすと判定された各装置にダウンロード(図中は、DLと略されている)して実行時間を問い合わせる(ステップT13)。
装置では、問合せに応じて、UPG実行時間計測処理部614は、サポート装置500からダウンロードされたUPG(1)~(3)を実行し、その実行時間であるUPG実行時間533を測定し、測定したUPG実行時間533をサポート装置500に送信する(ステップT15)。その後、UPG実行時間計測処理部614は、主記憶装置からUPG(1)~(3)を消去する。
実行時間処理部529は、通信処理部526を介して、各装置からUPG(1)~(3)それぞれのUPG実行時間533を受信し、受信したUPG実行時間533に基き、UPG(1)~(3)の全てを実行制限時間313内で実行完了可能な装置があるかを判定する(ステップT17)。実行時間処理部529は、UPG(1)~(3)の全てを実行制限時間313内で実行完了可能な装置はないと判定すると(ステップT17でNO)、UI520を介して制限時間エラー通知を出力する(ステップT19)。
配置ツール630は、ステップT9~T17で各装置から受信した装置の確保メモリ531およびUPG実行時間533を用いて、図15のリソース確認情報320を生成し、RAM504に格納する。図15のリソース確認情報320は、PLC100A~100Dのそれぞれに対応するPLC(1)~(4)および上位装置600について、装置の確保メモリ531およびUPG実行時間533を有する。
図14のUPG付属情報310および図15のリソース確認情報320によれば、上記の条件(トータル値<確保メモリ531が示すメモリサイズ)を満たす装置は、PLC(1)~(3)および上位装置600であるから、ステップT13では、UPG(1)~(3)はPLC(1)~(3)および上位装置600のそれぞれにダウンロードされる。ステップT17の判定は、各装置から受信した図15のUPG実行時間533が、図14のUPG付属情報310のUPG実行制限時間313と比較されて、比較の結果に基き実施される。図15によれば、PLC(1)、PLC(3)および上位装置600はUPG(1)~(3)の全てを実行制限時間313内で実行完了可能な装置と判定される(ステップT17でYES)。なお、図15では、参考までに、PLC(4)にUPG(1)~(3)をダウンロードした場合のUPG実行時間533も示されている。
ユーザは、ステップT11のエラー通知が出力されたときは、例えばUPG生成プログラム71を起動してUPG(1)~(3)を編集し直し、サイズを変更することができる。また、ステップT19のエラー通知が出力されたときは、例えばユーザはステップT1でサポート装置500に対して入力するUPG実行制限時間313を変更することができる。
(f2.通信遅延時間の確認処理と配置決定)
図17は、本実施の形態にかかる装置間の通信遅延時間を測定する処理の一例を示すフローチャートである。図18は、本実施の形態にかかる装置間の通信遅延時間を測定する際のテストデータの伝送経路を模式的に示す図である。図17を参照して、遅延算出処理部525が、装置間の通信遅延時間を測定する処理を説明する。
遅延算出処理部525は、各PLC100および上位装置600に対し、時刻同期の実施を要求する要求データを、通信処理部526を介して送信する(ステップT23)。
上位装置600および各PLC100では、遅延測定処理部613は、通信処理部615を介して受信する要求データに従い時刻同期処理部618に時刻同期処理を実施させる(ステップT25)。これにより、装置(上位装置600、PLC100およびフィールド装置90)は互いに時刻同期する。
本実施の形態では、サポート装置500(遅延算出処理部525)からの時刻同期の要求に応答して時刻同期が実施されるが、時刻同期の方法はこれに限定されない。例えば、時刻同期プロトコルによっては、当該要求なしに、装置は互いに時刻同期することが可能であり、本実施の形態では、このような要求なしの時刻同期が実施されてもよい。
遅延算出処理部525は、時刻同期の要求データを送信後、通信処理部526を介して各PLC100および上位装置600に対しテストデータを送信する(ステップT27)。各PLC100および上位装置600の遅延測定処理部613は、サポート装置500の遅延算出処理部525から受信するテストデータを用いてネットワーク11上の各装置から、当該装置のタイマが出力する時間であるタイムスタンプを収集する(ステップT29)。各PLC100および上位装置600の遅延測定処理部613は、収集したタイムスタンプをサポート装置500に送信する。タイムスタンプ収集の詳細は後述する。
遅延算出処理部525は、各PLC100および上位装置600から受信したタイムスタンプから、各装置間の通信遅延時間である全通信経路の遅延時間532を算出し、算出した全通信経路の遅延時間532をRAM504に格納する(ステップT31)。
決定処理部523は、UPG必要メモリ530、各装置の確保メモリ531、全通信経路の遅延時間532、および各UPGの実行時間533に基き、各UPG69が配置されるべき装置(PLC100または上位装置600)を決定する(ステップT33)。サポート装置500は、このとき、各UPG69を、決定された装置にダウンロードしてもよい。ステップT33の処理は、図12のパターン1~6のそれぞれについて実施することができ、詳細は後述する。
配置ツール630は、ステップT33で取得した配置決定を示すUPG配置情報627を、UI520を介して出力し(ステップT35)、または格納する。
上記のステップT33およびT35では、配置ツール630は、後述する正常および異常の各パターンについて、各UPG69が配置されるべき装置およびUPG69を実行するべき装置の情報を算出し、算出された情報をUPG配置情報627として格納しておくことができる。ステップT35では、配置ツール630は、UPG配置情報627を、UI520を介してディスプレイ510に出力させる。ユーザは、制御システム1の状態(正常または異常)に対応したパターンの情報を、予め格納されたUPG配置情報627から検索し、検索された情報に基づく装置にUPG69を配置(ダウンロード)し、または検索された情報に基づく装置にUPG69を実行させることができる。
(f3.遅延測定処理部613のタイムスタンプ収集)
図18を参照して、遅延測定処理部613が実施するタイムスタンプ(時間データ)の収集処理を説明する。図18では、PLC(1)のフィールド装置群3Aのフィールド装置90を、フィールド装置90A、90Bおよび90Cと区別して説明する。遅延測定処理部613は、サポート装置500から受信するテストデータに従い、タイムスタンプ収集のために、例えばエンドツーエンド(E2E)によるデータ通信を実施する。なお、タイムスタンプ収集のための通信方法はE2Eに限定されない。
まず、図18のPLC(1)の遅延測定処理部613は、ペイロード26に自装置のタイマ16の時間データを格納した複数の通信フレーム20を生成する。複数の通信フレーム20は、フィールド装置群3Aの各フィールド装置90A,90Bおよび90Cそれぞれ宛の通信フレーム20と、PLC(2)、PLC(3)、PLC(4)および上位装置600それぞれ宛の通信フレーム20とを含む。これら各通信フレーム20は、ペイロード26にPLC(1)のタイマ160が出力する時間データを格納するとともに、ストリームID29の送信元(TALKER)および送信先(LISTENER)に、それぞれ、PLC(1)および宛先装置の識別子が割当てられる。
PLC(1)は、これら通信フレーム20をネットワーク11上に送信する。各装置は、通信フレーム20のストリームID29に基き自装置宛の通信フレーム20かを判定する。通信フレーム20は自装置宛と判定すると、自装置のタイマの時間データをペイロード26に格納し、通信フレーム20を送信元(PLC(1))に送信し、通信フレーム20は自装置宛と判定しないときは、通信フレーム20を通過させる。これにより、PLC(1)は、各PLC100の間、PLC(1)とフィールド装置90Aの間、フィールド装置90A,90Bおよび90Cの各装置間、およびPLC(1)と上位装置600の間を転送された通信フレーム20を受信できる。PLC(1)は、各装置から受信する通信フレーム20をサポート装置500に送信する。
PLC(2)の遅延測定処理部613は、ペイロード26に自装置のタイマ16の時間データを格納した複数の通信フレーム20、すなわち、フィールド装置群3Bの各フィールド装置90宛の通信フレーム20と上位装置600それぞれ宛の通信フレーム20と生成し送信する。各装置は自装置の通信フレーム20にタイマの時間データをペイロード26に格納し、通信フレーム20を送信元(PLC(2))に送信する。これにより、PLC(2)は、PLC(2)とフィールド装置90の間、フィールド装置群3Bのフィールド装置90間、およびPLC(2)と上位装置600の間を転送された通信フレーム20を受信できる。PLC(2)は、各装置から受信する通信フレーム20をサポート装置500に送信する。
PLC(3)およびPLC(4)の遅延測定処理部613も、PLC(2)と同様に、フィールド装置群3Cの各フィールド装置90と上位装置600それぞれ宛の通信フレーム20を用いて、各装置から時間データを格納した通信フレーム20をサポート装置500に送信する。これにより、PLC(3)は、PLC(3)とフィールド装置90の間、フィールド装置間、およびPLC(3)と上位装置600の間を転送された通信フレーム20を受信し、サポート装置500に転送できる。また、PLC(4)は、PLC(4)とフィールド装置90の間、各フィールド装置間、およびPLC(4)と上位装置600の間を転送された通信フレーム20を受信し、サポート装置500に転送できる。
サポート装置500の遅延算出処理部525は、PLC(1)~PLC(4)から受信する通信フレーム20のペイロード26の時間データから、タイムスタンプを収集し、収集したタイムスタンプから各装置間の通信遅延時間を算出し、全通信経路の遅延時間532としてRAM504に格納する。なお、このタイムスタンプの収集方法は一例であり、これに限定されない。
(f4.パターン1の配置決定)
まず、配置決定の処理で参照される情報を説明する。図19は、本実施の形態にかかる決定処理部523が配置決定のために参照する情報の一例を示す図である。図20は、本実施の形態にかかるパターン1に従うUPGの配置の一例を模式的に示す図である。図19を参照して、情報は、配置対象のUPG(1)~(3)のそれぞれに対応して、UPG実行時間533、当該UPG69内で参照される1つ以上の変数314を含む。変数314は、対応のUPG69内で使用される入力変数であり、例えば当該UPG69のプログラムコードから抽出することができる。図20は、図19の各UPG69が使用する変数に設定されるフィールド値を出力するフィールド装置90と特定して示している。
図21は、本実施の形態にかかるパターン1に従う配置決定の処理の一例を示すフローチャートである。決定処理部523は、UPGライブラリ172のUPG(1)~(3)のうちUPG実行時間533が最大のUPG(ここではUPG-maxという)を選択する(ステップS3)。
決定処理部523は、例えば図19のUPG実行時間533の場合、(t1<t2<t3)に従い、UPG-maxとしてUPG(3)を選択する(ステップS3)。
決定処理部523は、PLC(1)~(4)それぞれにおけるUPG-maxの変数314の通信遅延時間とUPG実行時間533の合計のうちの最大値を決定する(ステップS7)。この変数314の通信遅延時間は、当該PLC100でUPG-maxが実行される場合のIOリフレッシュ72の所要時間に相当する。全通信路の遅延時間532によれば、例えば、PLC100をデータが透過(スルー)する時間、すなわちPLC100間の通信遅延時間は0.3msec、PLC100とフィールド装置90の間またはフィールド装置90間の通信遅延時間は0.1msecであるとする。また、PLC(1)~(4)それぞれにおけるUPG実行時間533は、例えば一律0.5msecであるとする。本実施の形態では、各装置間の通信遅延時間は、UPG69が使用する入力データ(変数314のデータ)の通信遅延時間を含む。したがって、UPG-maxの変数314の通信遅延時間とUPG実行時間533の合計は、当該UPG-maxを実行する場合のIOリフレッシュ72とUPG実行にかかる時間となる。各装置間の通信遅延時間は、制御プログラムが使用する入力データの通信遅延時間を含む。
PLC(1)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:0.8msec、b3:1.4msec、c3:1.7msecであるので、そのうちの最大値1.7msecが抽出される。
PLC(2)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:1.1msec、b3:1.1msec、c3:1.7msecであるので、そのうちの最大値1.7msecが抽出される。
PLC(3)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:1.7msec、b3:0.8msec、c3:1.4msecであるので、そのうちの最大値1.7msecが抽出される。
PLC(4)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:2.0msec、b3:1.4msec、c3:0.8msecであるので、そのうちの最大値2.0msecが抽出される。
決定処理部523は、ステップS7で抽出された各PLC100に対応の合計の最大値のうち、その値が最小である対応のPLC100を決定する(ステップS9)。決定処理部523は、決定したPLC100にUPG-maxをダウンロードする(ステップS11)。
なお、ステップS9において、決定したPLC100が複数個ある場合は、決定処理部523は、確保メモリ531のサイズがより大きい方を、UPG-maxのダウンロード先に選択する。
決定処理部523は、UPG(1)~(3)のうち、ステップS3~S11の処理が実施されていない、いわゆる残りのUPG69があるか否かを判定する(ステップS13)。決定処理部523は、残りのUPG69があると判定すると(ステップS13でYES)、ステップS3に戻り、残りのUPG69についてステップS3以降の処理を実施する。決定処理部523は、残りのUPG69はないと判定すると(ステップS13でNO)、ステップS15に移行する。
決定処理部523は、UPG(1)~(3)のそれぞれについて、決定されたPLC100における当該UPGの実行時間と変数の通信遅延時間(IOリフレッシュ時間)との合計を算出し、合計の総和を算出する(ステップS15)。
決定処理部523は、ステップT1でユーザが設定した実行制限時間315と、ステップS15で算出されたUPG(1)~(3)それぞれの合計の総和とを比較し、比較の結果に基き(合計の総和≦実行制限時間315)の条件が満たされるか否かを判定する(ステップS17)。
決定処理部523は、(合計の総和≦実行制限時間315)の条件が満たされると判定すると(ステップS17でYES)、正常に配置決定できた旨の通知を、また、当該条件が満たされないと判定すると(ステップS17でNO)、実行制限時間のエラーの通知を、それぞれUI520を介して出力する(ステップS19、S21)。例えば、図20では、UPG(1)~(3)は、それぞれPLC(1)~PLC(3)に配置決定されたことが示される。
このようにパターン1では、配置ツール630は、制御システム1が上位装置600によるUPG69の実行環境を提供できない場合において、UPG(1)~(3)のそれぞれについて、通信遅延時間と、PLC(1)~(4)の当該UPG69の実行に使用可能な記憶領域サイズおよび実行時間を含むリソースとに基づき、PLC(1)~(4)のうちから当該UPG69が配置されるべきPLC100を決定することができる。
(f5.パターン2の配置決定)
図22は、本実施の形態にかかるパターン2に従うUPGの配置の一例を模式的に示す図である。パターン2では、UPG69の配置先の候補として上位装置600を含めることが可能である。
パターン1では、決定処理部523によってUPG69の配置が決定された装置が、UPG69を実行するべき装置として自動的に決定された。これに対して、パターン2では、PLC100に比較して、確保メモリ531が大きく且つUPG実行時間533が短い、すなわち高速にUPG69を実行可能な環境を提供する上位装置600を配置先の装置、またはUPG69を実行する装置と決定することができて、制御システム1を高いパフォーマンスで運用することができる。
図22では、上位装置600は、確保メモリ531のサイズがPLC(1)~(4)に比較して極めて大きいことから、UPG(1)~(3)が配置され得る。UPG(1)~(3)についてのPLC(1)~(4)への配置決定は図21と同様に実施することができる。図23は、本実施の形態にかかるパターン2に従う配置決定の処理の一例を示すフローチャートである。図23の処理では、図23のステップS3~S12において、上位装置600およびPLC(1)~(4)のうちからUPG69を実行する装置を決定する処理が行われる。なお、全通信路の遅延時間532によれば、例えば、PLC100間の通信遅延時間は0.3msec、PLC100とフィールド装置90の間またはフィールド装置90間の通信遅延時間は0.1msec、および各PLC100と上位装置600と間は0.4msecであるとする。また、PLC(1)~(4)それぞれにおけるUPG実行時間533は、例えば一律0.5msecであり、上位装置600のUPG実行時間533は、例えば0.3msecとする。
まず、決定処理部523は、UPG-maxを選択して(ステップS3)、PLC(1)~PLC(4)それぞれについて、UPG-maxを実行した場合の実行時間と通信遅延時間の合計を算出する(ステップS7)。合計の最大値は、パターン1と同様に、PLC(1)~PLC(4)それぞれについて、1.7msec、1.7msec、1.7msecおよび2.0msecが算出される。
決定処理部523は、上位装置600でUPG-maxを実行した場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:1.3msec、b3:1.3msec、c3:1.3msecであるので、そのうちの最大値1.3msecを算出する(ステップS8)。
さらに、パターン2では、決定処理部523は、各PLC100が上位装置600を経由して変数の通信をする場合の合計の最大値も算出する(ステップS8a)。すなわち、通信遅延時間に(各PLC100と上位装置600と間の往復通信時間(0.4×2)msec)を追加することで、例えばUPG-max(UPG(3))をPLC(1)にダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:0.8msec、b3:1.9msec、c3:1.9msecであるので、そのうちの最大値1.9msecが抽出される。PLC(2)およびPLC(3)の場合も同様に計算すると、いずれも最大値は1.9msecとなる。
決定処理部523は、ステップS7とステップS8aで算出された各PLC100に対応の合計の最大値のうち、その値が最小である対応のPLC100を決定する(ステップS9)。決定処理部523は、パターン1と同様に、決定されたPLC100にUPG-maxをダウンロードする(ステップS11)。
決定処理部523は、上位装置600およびPLC(1)~(4)のうち、合計の最大値が最小である装置を、UPG-maxを実行する実行装置として決定する(ステップS12)。決定処理部523は、ステップS13以降の処理をパターン1と同様に実施する。
パターン2では、決定処理部523は、UPG(1)~(3)の配置先として、PLC100または上位装置600に決定することができるが、そのうち、UPG(1)~(3)の実行装置を上位装置600に決定する。すなわち、パターン2のようにPLC(1)~(4)それぞれと上位装置600の間の通信遅延時間(0.4msec)が十分に小さい場合は、上位装置600における実行時間(0.3msec)はPLC100の実行時間(0.5msec)よりも短いこと、および上位装置600の確保メモリ531のサイズはPLC(1)~(4)に比較して極めて大きいことから、ステップS12では、例えば、UPG(1)~(3)の配置先である上位装置600およびPLC(1)~(4)のうちから、上位装置600を実行装置として決定することができる。
このように、上位装置600においてUPG69が実行されることで、PLC100で実行される場合に比較して制御システム1を高いパフォーマンスで稼働させることができる。
(f6.パターン3の配置決定)
図24は、本実施の形態にかかるパターン3に従うUPGの配置の一例を模式的に示す図である。パターン3は、パターン2でUPG(1)~(3)の配置決定がなされた場合(図24の(A))において、上位装置600とPLC100の間の通信が断絶などの異常が検知された故障モードを示す。この故障モードは、PLC100(1)~(4)が、例えば、図11に示す上位装置600で実行されるUPG(1)~UPG(3)の実行結果である制御データ(図11に示す出力データ(受信)183)を受信できない状態にあたる。
配置ツール630は、故障モードのパターン3に対応したUPGの配置決定を実施しUPG配置情報627を算出する(図24の(B))。パターン3で実施される配置決定の処理は、変数の通信に関し、上位装置600を経由しない通信経路における通信遅延時間を用いた処理であり、パターン1で示した図21の処理と同様であるので、説明は繰返さない。
このように、パターン2の配置決定状態からPLC100が上位装置600からUPG69の実行結果(制御データ)を受信できない状態となった場合は、パターン3のUPG配置情報627に従い、上位装置600とは独立してPLC100側で制御データを算出可能なようにUPG69の実行装置を決定する再配置が実施されることで、制御システム1の稼働を継続することができる。
(f7.パターン4の配置決定)
図25は、本実施の形態にかかるパターン4に従うUPGの配置の一例を模式的に示す図である。パターン4は、UPG(1)~(3)が上位装置600に配置されるとともに、PLC(1)~(3)にも配置された状態において、上位装置600を経由する通信経路の通信遅延時間よりも、上位装置600を経由する通信経路を用いない通信遅延時間が小さい場合である。したがって、図25の(A)に示すようにUPG(1)~(3)は、それぞれの実行装置は、PLC(1)~(3)に決定されている。図25の(A)において、PLC(1)とPLC(2)との間のネットワーク11に異常が発生し通信が断絶した状態について、配置ツール630は、故障モードのパターン4に対応したUPG配置情報627を算出する。
配置ツール630の決定処理部523は、故障モードのパターン4について、PLC(1)とPLC(2)との間の通信経路を用いない、すなわち上位装置600を経由する通信経路を用いた通信遅延時間を算出する。例えば、パターン2に従う配置決定処理を実施する。これにより、決定処理部523は、例えばUPG(1)とUPG(3)の実行装置を上位装置600に決定し、UPG(2)をPLC(2)に配置して実行することを示すUPG配置情報627を算出する(図25の(B))。
このように、上位装置600にUPG69が配置された状態でPLC100がUPG69の実行装置に決定されている場合において、PLC100間の通信経路に異常が生じた場合は、パターン4のUPG配置情報627に従い、実行装置をPLC100から上位装置600に切替えることで、制御システム1の稼働を継続することができる。
(f8.パターン5の配置決定)
図26は、本実施の形態にかかるパターン5に従うUPGの配置の一例を模式的に示す図である。パターン5は、図26の(A)のUPG(1)~(3)の実行装置がPLC(1)~(3)に決定された状態において、図26の(B)に示すように、例えばPLC(3)がUPG69を実行不可能になった状態(例えば故障)を示す。
配置ツール630は、上記の異常が検知された故障モードのパターン5に対応のUPG配置情報627を算出する。
配置ツール630の決定処理部523は、故障のPLC(3)を除いたPLC(1)、PLC(2)およびPLC(4)および上位装置600を対象にして、パターン2の処理と同様に配置決定の処理を実施する。これにより、例えば、図26の(B)に示すように、UPG(3)の実行装置をPLC(3)から上位装置600に切替えるようなUPG配置情報627を算出することができる。
このように、LC100がUPG69の実行装置に決定されている場合において、PLC100に異常(故障など)が生じて実行不可能になった場合は、パターン5に対応のUPG配置情報627に従い、実行装置をPLC100から上位装置600に切替えて、制御システム1の稼働を継続することができる。
(f9.パターン6の配置決定)
図27は、本実施の形態にかかるパターン6に従うUPGの配置の一例を模式的に示す図である。パターン6は、図27の(A)のようにUPG(1)~(3)の実行装置が上位装置600である場合に、図27の(B)のようにPLC(3)と上位装置600の間の通信経路が断絶した異常状態の故障モードを示す。図27の(A)は、例えばパターン2の配置決定処理において、上位装置600がUPG(1)~(3)の実行装置に再度決定されたケースである。
配置ツール630の決定処理部523は、パターン6の通知に従い、PLC(3)と上位装置600との間の通信経路を経由しない通信遅延時間を用いて、パターン2の処理と同様の手順でUPG(1)~(3)の配置決定を実施することで、パターン6に対応のUPG配置情報627を算出する。例えば、パターン6に対応のUPG配置情報627に従えば、UPG(1)~(3)の実行装置を上位装置600に再度決定することができる。
<G.プログラム>
図2と図4と図5には、それぞれ、プロセッサ112とプロセッサ603とCPU502がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、マルチプロセッサを備えて並列実行可能な環境が提供される。また、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
プロセッサ112またはプロセッサ603が必要なプログラムを実行することによって、図8の各部は上記の処理を実行してもよい。当該プログラムは、記憶ユニット(ストレージ119またはHDD606)に記憶されていてもよい。プロセッサ112またはプロセッサ603が必要なプログラムを実行する際は、記憶ユニットに記憶された対象となるプログラムをRAMに展開する。そして、プロセッサ112またはプロセッサ603は、RAMに展開された当該プログラムを解釈および実行して、各構成要素を制御する。
また、CPU502が必要なプログラムを実行することによって、図9の各部は上記の処理を実行してもよい。当該プログラムは、記憶ユニット(HDD505)に記憶されていてもよい。CPU502が必要なプログラムを実行する際は、記憶ユニットに記憶された対象となるプログラムをRAMに展開する。そして、CPU502は、RAMに展開された当該プログラムを解釈および実行して、各構成要素を制御する。
上記の記憶ユニットは、例えば、HDD、SSD等の補助記憶装置であり、プロセッサまたはCPUで実行される図2、図4および図5に示すプログラムおよびデータ等を記憶する。
メモリカード116、621および記憶媒体501は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。PLC100、上位装置600およびサポート装置500は、これらメモリカード116、621および記憶媒体501から、上記の記憶ユニットに格納されるプログラムおよび/またはデータを取得してもよい。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)であって、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するための各装置に備えられるプログラム記憶手段(119,606)と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段(630)と、を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、制御システム。
[構成2]
前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズ(633)を含む、構成1に記載の制御システム。
[構成3]
前記配置手段は、
各装置に、前記制御プログラムの実行に使用可能な記憶領域のサイズを問い合わせる、構成2に記載の制御システム。
[構成4]
前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プロセッサを前記制御プログラムの実行に使用可能な時間(533)を含む、構成1または2に記載の制御システム。
[構成5]
前記配置手段は、
各装置に、前記プロセッサによる前記制御プログラムの実行に使用可能な時間を問い合わせる、構成4に記載の制御システム。
[構成6]
前記装置間の通信遅延時間を測定する手段(613)を、さらに備える、構成1から5のいずれか1に記載の制御システム。
[構成7]
前記各装置間の通信遅延時間は、前記制御対象と遣り取りするデータの通信にかかる通信遅延時間を含む、構成1から6のいずれか1に記載の制御システム。
[構成8]
前記複数の装置は、互いに時刻同期された情報処理装置(600)と1以上の制御装置(100)とを含み、
前記情報処理装置の前記実行手段は、
各前記1以上の制御装置から受信するデータを用いて前記制御プログラムをプロセッサに実行させ、
前記各制御装置の前記実行手段は、
前記制御対象と遣り取りするデータを前記情報処理装置へ転送し、前記情報処理装置から受信する前記制御データを前記制御対象に出力する入出力プログラムを、プロセッサに実行させ、
前記制御プログラムおよび前記入出力プログラムは、前記時刻同期に基づく時間であって前記各制御装置と前記情報処理装置との間で共有される時間(10)内で実行される、構成1から3のいずれか1に記載の制御システム。
[構成9]
前記配置手段は、
前記制御システムの故障モード毎に、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、構成1から8のいずれか1に記載の制御システム。
[構成10]
前記配置手段は、
前記制御プログラムの配置が決定された装置のうちから、当該制御プログラムを実行するべき装置を決定する(S12)、構成1から9のいずれか1に記載の制御システム。
[構成11]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)に対する設定を実施する設定装置(500)であって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するためのプログラム記憶手段(119,606)と、
配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、を備え、
前記設定装置は、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段(630)を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、設定装置。
[構成12]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)に対する設定を実施するためのコンピュータプログラム(61)であって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するための各装置に備えられるプログラム記憶手段(119,606)と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、を備え、
前記コンピュータプログラムは、コンピュータに、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報を取得するステップと、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定するステップと、を実行させる、コンピュータプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、3A,3B,3C,3D フィールド装置群、8 トリガ、10 制御周期、11 ネットワーク、12,13 データ格納時間、14 待ち時間、16,99,101A,101B,101C,101D,160,601 タイマ、20 通信フレーム、21 プリアンブル、22 宛先、23 送信元、24 タグ、25 タイプ、26 ペイロード、27 誤り訂正情報、42 フロー、61 配置プログラム、62,96,116,622 メモリカード、63,84,123 スケジューラ、64,83,127,611 通信プログラム、67,121,831 時刻同期プログラム、68 サーバプログラム、70,81,122,701 システムプログラム、71 UPG生成プログラム、72 IOリフレッシュ、73 上位通信、82 アプリケーションプログラム、86 遅延時間測定プログラム、87 メモリサイズ算出プログラム、88 実行時間測定プログラム、89 リソース測定プログラム、90,90A,90B,9090 フィールド装置、91,112,603 プロセッサ、110 演算処理部、114 記憶部、119 ストレージ、120 周辺処理プログラム、125 リフレッシュプログラム、126 測定プログラム、134,944 入力データ、135,943 出力データ、162 メモリサイズ取得プログラム、163 遅延時間取得プログラム、170,171,172 ライブラリ、262 実行時間取得プログラム、310 付属情報、313 各UPGの実行制限時間、314 変数、315 全UPGの実行制限時間、320 リソース確認情報、500 サポート装置、522 実行メモリ確認処理部、523 決定処理部、524 必要リソース算出処理部、525 遅延算出処理部、526,615 通信処理部、529 実行時間処理部、530 UPG必要メモリ、531 確保メモリ、532 遅延時間、533,634 実行時間、600 上位装置、610 スケジューリング処理部、612 確保メモリ算出処理部、613 遅延測定処理部、614 実行時間計測処理部、618 時刻同期処理部、627 配置情報、629 必要リソース取得プログラム、630 配置ツール、631 通信遅延時間、632 リソース量、633 記憶領域サイズ。

Claims (11)

  1. ネットワーク接続され、且つ互いに時刻同期される制御対象、情報処理装置および1つ以上の制御装置を備える制御システムであって、
    前記制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するためのプログラム記憶手段であって、前記情報処理装置および前記1つ以上の制御装置を含む複数の装置それぞれに備えられるプログラム記憶手段と、
    前記複数の装置に備えられて、当該装置に配置される前記制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、
    複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段と、を備え、
    前記情報処理装置の前記実行手段は、
    各前記1以上の制御装置から受信するデータを用いて前記制御プログラムを、当該情報処理装置のプロセッサに実行させ、
    前記各制御装置の前記実行手段は、
    前記制御対象と遣り取りするデータを前記情報処理装置へ転送し、前記情報処理装置から受信する前記制御データを前記制御対象に出力する入出力プログラムを、当該制御装置のプロセッサに実行させ、
    前記制御プログラムおよび前記入出力プログラムは、前記時刻同期に基づく時間であって前記制御対象と前記各装置との間で共有される時間内で実行され、
    前記配置手段は、
    各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、制御システム。
  2. 前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズを含む、請求項1に記載の制御システム。
  3. 前記配置手段は、
    前記各装置に、前記制御プログラムの実行に使用可能な記憶領域のサイズを問い合わせる、請求項2に記載の制御システム。
  4. 前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プロセッサを前記制御プログラムの実行に使用可能な時間を含む、請求項1または2に記載の制御システム。
  5. 前記配置手段は、
    前記各装置に、前記プロセッサによる前記制御プログラムの実行に使用可能な時間を問い合わせる、請求項4に記載の制御システム。
  6. 前記装置間の通信遅延時間を測定する手段を、さらに備える、請求項1から5のいずれか1項に記載の制御システム。
  7. 前記各装置間の通信遅延時間は、前記制御対象と遣り取りするデータの通信にかかる通信遅延時間を含む、請求項1から6のいずれか1項に記載の制御システム。
  8. 前記配置手段は、
    前記制御システムの故障モード毎に、
    各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、請求項1からのいずれか1項に記載の制御システム。
  9. 前記配置手段は、
    前記制御プログラムの配置が決定された装置のうちから、当該制御プログラムを実行するべき装置を決定する、請求項1からのいずれか1項に記載の制御システム。
  10. ネットワーク接続され、且つ互いに時刻同期される制御対象、情報処理装置および1つ以上の制御装置を備える制御システムに対する設定を実施する設定装置であって、
    前記情報処理装置および前記1つ以上の制御装置を含む複数の装置のそれぞれは、
    制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するためのプログラム記憶手段と、
    前記制御プログラムを含む複数のプログラムを当該装置のプロセッサに実行させる実行手段と、を備え、
    前記情報処理装置の前記実行手段は、
    各前記1以上の制御装置から受信するデータを用いて前記制御プログラムを、当該情報処理装置のプロセッサに実行させ、
    前記各制御装置の前記実行手段は、
    前記制御対象と遣り取りするデータを前記情報処理装置へ転送し、前記情報処理装置から受信する前記制御データを前記制御対象に出力する入出力プログラムを、当該制御装置のプロセッサに実行させ、
    前記制御プログラムおよび前記入出力プログラムは、前記時刻同期に基づく時間であって前記制御対象と前記各装置との間で共有される時間内で実行され、
    前記設定装置は、
    複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段を備え、
    前記配置手段は、
    各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、設定装置。
  11. ネットワーク接続され、且つ互いに時刻同期される制御対象、情報処理装置および1つ以上の制御装置を備える制御システムに対する設定を実施するためのコンピュータプログラムであって、
    前記情報処理装置および前記1つ以上の制御装置を含む複数装置の各装置は、
    前記制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するための各装置に備えられるプログラム記憶手段と、
    各装置に備えられて、当該装置に配置される前記制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、を備え、
    前記情報処理装置の前記実行手段は、
    各前記1以上の制御装置から受信するデータを用いて前記制御プログラムを、当該情報処理装置のプロセッサに実行させ、
    前記各制御装置の前記実行手段は、
    前記制御対象と遣り取りするデータを前記情報処理装置へ転送し、前記情報処理装置から受信する前記制御データを前記制御対象に出力する入出力プログラムを、当該制御装置のプロセッサに実行させ、
    前記制御プログラムおよび前記入出力プログラムは、前記時刻同期に基づく時間であって前記制御対象と前記各装置との間で共有される時間内で実行され、
    前記コンピュータプログラムは、コンピュータに、
    各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報を取得するステップと、
    各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数装置のうちから当該制御プログラムが配置される装置を決定するステップと、を実行させる、コンピュータプログラム。
JP2019124437A 2019-07-03 2019-07-03 制御システム、設定装置およびコンピュータプログラム Active JP7423920B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019124437A JP7423920B2 (ja) 2019-07-03 2019-07-03 制御システム、設定装置およびコンピュータプログラム
CN202080046667.9A CN114072737B (zh) 2019-07-03 2020-03-10 控制系统、设定装置以及机器可读取存储介质
US17/597,124 US20220244697A1 (en) 2019-07-03 2020-03-10 Control system, setting device, and computer-readable storage medium
PCT/JP2020/010343 WO2021002059A1 (ja) 2019-07-03 2020-03-10 制御システム、設定装置およびコンピュータプログラム
EP20834459.8A EP3995912A4 (en) 2019-07-03 2020-03-10 CONTROL SYSTEM, CONTROL DEVICE AND COMPUTER PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019124437A JP7423920B2 (ja) 2019-07-03 2019-07-03 制御システム、設定装置およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2021012405A JP2021012405A (ja) 2021-02-04
JP7423920B2 true JP7423920B2 (ja) 2024-01-30

Family

ID=74101271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019124437A Active JP7423920B2 (ja) 2019-07-03 2019-07-03 制御システム、設定装置およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US20220244697A1 (ja)
EP (1) EP3995912A4 (ja)
JP (1) JP7423920B2 (ja)
CN (1) CN114072737B (ja)
WO (1) WO2021002059A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022137663A (ja) * 2021-03-09 2022-09-22 オムロン株式会社 制御システムおよびデータ送信方法
CN115047819B (zh) * 2022-05-17 2023-05-09 南京昇榕智能科技有限公司 一种plc系统、plc数据传输方法及装置
CN115048206B (zh) * 2022-08-15 2022-12-27 阿里巴巴(中国)有限公司 资源调度方法及服务器
WO2024089881A1 (ja) * 2022-10-28 2024-05-02 ファナック株式会社 ロボット制御装置、工作機械及び連携システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012090291A1 (ja) 2010-12-28 2012-07-05 株式会社日立製作所 モーションコントローラ
US20120265322A1 (en) 2011-04-11 2012-10-18 Hildebran Bret S Input Module For An Industrial Controller
JP2016151892A (ja) 2015-02-17 2016-08-22 株式会社リコー 情報処理装置、インストール方法、及びインストールプログラム
JP2019106225A (ja) 2019-04-08 2019-06-27 オムロン株式会社 制御装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3487486B2 (ja) 1996-11-29 2004-01-19 オムロン株式会社 プログラマブルコントローラおよびプログラマブルコントローラにおける受信データ取り込み方法
JP3172829B2 (ja) * 1997-03-07 2001-06-04 日精樹脂工業株式会社 射出成形システム
US20040100982A1 (en) * 1999-09-30 2004-05-27 Sivaram Balasubramanian Distributed real-time operating system
US7275236B1 (en) * 2000-11-24 2007-09-25 Mitsubishi Denki Kabushiki Kaisha Method for programming a multiple device control system using object sharing
US7836168B1 (en) * 2002-06-04 2010-11-16 Rockwell Automation Technologies, Inc. System and methodology providing flexible and distributed processing in an industrial controller environment
US8230408B2 (en) * 2004-06-30 2012-07-24 Coherent Logix, Incorporated Execution of hardware description language (HDL) programs
JP2007034359A (ja) * 2005-07-22 2007-02-08 Hitachi Ltd 分散制御装置
JP4877423B1 (ja) * 2011-03-15 2012-02-15 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
WO2012176017A1 (en) * 2011-06-20 2012-12-27 Abb Research Ltd A method and a system for online and dynamic schedule configuration of control applications in a distributed control system
JP6442131B2 (ja) * 2012-11-14 2018-12-19 オムロン株式会社 制御システムおよび制御装置
JP6171385B2 (ja) * 2013-02-15 2017-08-02 オムロン株式会社 コントローラおよび情報処理装置
CN105745585B (zh) * 2013-11-26 2018-05-08 西门子公司 卸载人机交互任务
JP6926539B2 (ja) * 2017-03-10 2021-08-25 オムロン株式会社 制御装置およびプログラム
JP6399136B1 (ja) * 2017-03-31 2018-10-03 オムロン株式会社 制御装置、制御プログラム、および制御システム
CN109218048A (zh) * 2017-06-30 2019-01-15 西门子公司 对部署在云上的一个工业系统的性能测试方法和装置
JP6962099B2 (ja) * 2017-09-25 2021-11-05 オムロン株式会社 制御システムおよび制御装置
EP3611579A1 (de) * 2018-08-13 2020-02-19 Siemens Aktiengesellschaft Echtzeit-automatisierungseinrichtung mit einem echtzeit-datenbus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012090291A1 (ja) 2010-12-28 2012-07-05 株式会社日立製作所 モーションコントローラ
US20120265322A1 (en) 2011-04-11 2012-10-18 Hildebran Bret S Input Module For An Industrial Controller
JP2016151892A (ja) 2015-02-17 2016-08-22 株式会社リコー 情報処理装置、インストール方法、及びインストールプログラム
JP2019106225A (ja) 2019-04-08 2019-06-27 オムロン株式会社 制御装置

Also Published As

Publication number Publication date
US20220244697A1 (en) 2022-08-04
JP2021012405A (ja) 2021-02-04
EP3995912A4 (en) 2023-07-19
CN114072737B (zh) 2024-07-19
WO2021002059A1 (ja) 2021-01-07
EP3995912A1 (en) 2022-05-11
CN114072737A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
JP7423920B2 (ja) 制御システム、設定装置およびコンピュータプログラム
EP2711798B1 (en) Cpu unit for plc, plc-use system program, recording medium in which plc-use system program is stored, plc system, plc support device, plc support program, and recording medium in which plc support program is stored
US9618924B2 (en) CPU of PLC, system program for PLC, and recording medium storing system program for PLC
JP5553910B2 (ja) モーションコントローラ
Yao et al. Design of a machine tool control system for function reconfiguration and reuse in network environment
JP7059673B2 (ja) 制御装置、制御システム、制御方法、および、制御プログラム
JP6866663B2 (ja) プログラマブルコントローラシステム、プログラマブルコントローラ、支援装置、hci装置、二重化プログラマブルコントローラシステム
Pajic et al. Embedded virtual machines for robust wireless control and actuation
JP5680466B2 (ja) 並列処理システム及び並列処理システムの動作方法
JP2011186607A (ja) フィールドデバイス、フィールドデバイスの設定方法、フィールドデバイス管理装置及びプログラム
CN113031461B (zh) 超精密运动台半实物仿真系统及方法
Mayrhofer et al. Assessing adaptability of software architectures for cyber physical production systems
WO2019171845A1 (ja) 制御装置および制御システム
JP7066080B1 (ja) 通信制御装置、通信制御方法及びプログラム
JP2021033437A (ja) 制御システム、制御装置およびプログラム
WO2022030402A1 (ja) 制御装置およびプログラム
CN114072739B (zh) 控制系统、支持装置以及机器可读取存储介质
CN115470012A (zh) 创建工业应用程序的事件驱动执行模型的运行时环境和方法
JP3024345B2 (ja) データリンク方法
JP5951025B2 (ja) 入出力応答制御設定装置
JP7231073B2 (ja) 制御装置および制御システム
JP4479131B2 (ja) 制御装置
JP2023125352A (ja) シミュレーションシステム、方法およびシミュレーションプログラム
KR20240083288A (ko) 로봇 제어용 코어엔진을 이용한 모션 제어 시스템
JP2009043073A (ja) プログラム連携システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240101

R150 Certificate of patent or registration of utility model

Ref document number: 7423920

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150