JP2023049531A - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- JP2023049531A JP2023049531A JP2021159319A JP2021159319A JP2023049531A JP 2023049531 A JP2023049531 A JP 2023049531A JP 2021159319 A JP2021159319 A JP 2021159319A JP 2021159319 A JP2021159319 A JP 2021159319A JP 2023049531 A JP2023049531 A JP 2023049531A
- Authority
- JP
- Japan
- Prior art keywords
- execution unit
- execution
- function
- control device
- communication
- 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.)
- Pending
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】PLC機能とPLC機能とは別の機能とを有し、かつ、PLC機能の停止の頻度を抑制できる制御装置を提供する。【解決手段】制御装置は、PLC機能に関する第1プログラムと別の機能に関する第2プログラムとを実行するためのプロセッサと、スケジューラと、を備える。スケジューラは、第1プログラムおよび第2プログラムを第1実行単位および第2実行単位にそれぞれ割り当て、第1実行単位および第2実行単位の各々に対してプロセッサリソースを割り振る。スケジューラは、第2実行単位の実行状況が異常条件を満たすと、第2実行単位に対するプロセッサリソースの割り振りを停止し、第1実行単位に対するプロセッサリソースの割り振りを維持する。【選択図】図1
Description
本開示は、制御装置に関する。
様々な生産現場において、PLC(プログラマブルロジックコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。近年、これまで複数の専用装置を用いて実現されていた制御システムを、より少ない数の制御装置に統合したいというニーズも生じている。このようなニーズに対応するため、特開2021-77219号公報(特許文献1)は、PLC機能に関するIEC(International Electrotechnical Commission)プログラムと、ロボット制御機能に関するアプリケーションプログラムとを実行する制御装置を開示している。PLC機能とロボット制御機能とが1つの制御装置に統合されることにより、アプリケーションの構築が容易となり、さらにアプリケーション自体の性能が向上する。
特許文献1に記載の制御装置では、ロボット制御機能に異常が発生した場合、ロボット制御機能だけでなくPLC機能まで停止する可能性がある。一般に、PLC機能は生産ライン全体の制御を行ない、ロボット制御機能は生産ラインに配置されたロボットの制御を行なう。そのため、ロボット制御機能の異常に起因して、生産ライン全体が停止することは望ましくない。
本開示は、上記の問題に鑑みてなされたものであり、その目的は、PLC機能とPLC機能とは別の機能とを有し、かつ、PLC機能の停止の頻度を抑制できる制御装置を提供することである。
本開示の一例によれば、制御装置は、プロセッサと、スケジューラと、を備える。プロセッサは、PLC機能に関する第1プログラムと、PLC機能とは別の機能に関する第2プログラムと、を実行する。スケジューラは、第1プログラムおよび第2プログラムを第1実行単位および第2実行単位にそれぞれ割り当て、第1実行単位および第2実行単位の各々に対してプロセッサリソースを割り振る。スケジューラは、第2実行単位の実行状況が異常条件を満たすと、第2実行単位に対するプロセッサリソースの割り振りを停止し、第1実行単位に対するプロセッサリソースの割り振りを維持する。
この開示によれば、第2実行単位の実行状況が異常条件を満たしたときに、別の機能だけが停止し、PLC機能は維持される。その結果、制御装置は、PLC機能とPLC機能とは別の機能とを有し、かつ、PLC機能の停止の頻度を抑制できる。
上述の開示において、スケジューラは、オペレーティングシステムを含む。第1実行単位および第2実行単位の各々は、オペレーティングシステムが管理するプロセスである。
オペレーティングシステムが管理する複数のプロセスは、独立して動作する。そのため、この開示によれば、第2実行単位の実行状況が異常条件を満たしたときに、PLC機能は維持される。
上述の開示において、スケジューラは、ハイパーバイザを含む。第1実行単位および第2実行単位の各々は、ハイパーバイザ上で動作するオペレーティングシステムである。
ハイパーバイザ上で動作するオペレーティングシステムは、独立して動作する。そのため、この開示によれば、第2実行単位の実行状況が異常条件を満たしたときに、PLC機能は維持される。
上述の開示において、オペレーティングシステムは、第1実行単位と第2実行単位との間でデータを共有するためのプロセス間通信を提供する。この開示によれば、PLC機能と別の機能とは、同じデータを共有することができる。
上述の開示において、制御装置は、2以上の実行単位の中から第1実行単位および第2実行単位の指定を受け付けるインターフェイスをさらに備える。
この開示によれば、ユーザは、機能の内容に応じて、実行単位を指定することができる。
上述の開示において、制御装置は、第1実行単位の実行に応じた外部通信を行なうための第1通信ポートと、第2実行単位の実行に応じた外部通信を行なうための第2通信ポートと、をさらに備える。
この開示によれば、第2通信ポートにおいてネットワークの輻輳が発生したとしても、第1実行単位の実行に応じた外部通信は、第1通信ポートを用いて維持される。これにより、PLC機能を動作し続けることができる。
上述の開示において、制御装置は、2以上の通信ポートと、2以上の通信ポートの中からPLC機能のための第1通信ポートと別の機能のための第2通信ポートとの指定を受け付けるインターフェイスと、をさらに備える。第1通信ポートは、第1実行単位の実行に応じた外部通信を行なう。第2通信ポートは、第2実行単位の実行に応じた外部通信を行なう。
この開示によれば、第2通信ポートにおいてネットワークの輻輳が発生したとしても、第1実行単位の実行に応じた外部通信は、第1通信ポートを用いて維持される。これにより、PLC機能を動作し続けることができる。
本開示によれば、制御装置は、PLC機能とPLC機能とは別の機能とを有し、かつ、PLC機能の停止の頻度を抑制できる。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。以下で説明される各変形例は、適宜選択的に組み合わされてもよい。
§1 適用例
本実施の形態にかかる制御装置の概略について、参考形態に係る制御装置と比較しながら説明する。図1は、実施の形態に係る制御装置の概略構成を示す図である。図2は、参考形態に係る制御装置の概略構成を示す図である。図1に示される制御装置100および図2に示される制御装置900は、例えば生産ラインを制御する。
本実施の形態にかかる制御装置の概略について、参考形態に係る制御装置と比較しながら説明する。図1は、実施の形態に係る制御装置の概略構成を示す図である。図2は、参考形態に係る制御装置の概略構成を示す図である。図1に示される制御装置100および図2に示される制御装置900は、例えば生産ラインを制御する。
図1に示されるように、制御装置100は、プロセッサ102と、スケジューラ140と、を備える。同様に、制御装置900は、プロセッサ902と、スケジューラ940と、を備える。
プロセッサ102,902は、PLC機能に関するプログラムと、PLC機能とは別のロボット制御機能に関するプログラムと、を実行する。
スケジューラ140,940は、プログラムの実行を管理し、処理の実行単位に対するプロセッサ102の処理時間(以下、「プロセッサリソース」と称する。)の割り振りを管理する。
制御装置100,900は、悪意のあるユーザのPC800から異常パケットによる攻撃を受ける可能性がある。このような攻撃を受けると、実行単位から異常な命令が発せられたり、実行単位から膨大な量の命令が発せられたりする。そのため、スケジューラ140,940は、実行単位の実行状況が異常条件を満たすと、当該実行単位に対するプロセッサリソースの割り振りを停止する。これにより、攻撃による被害が抑制される。異常条件は、予め定められる。例えばUNIX(登録商標)系のオペレーティングシステムの場合、異常条件は、イベントの発生を伝えるシグナルが送出されたという条件である。シグナルには、例えば、SIGBUS(未定義メモリ領域へのアクセスによるバスエラー)、SIGFPE(浮動小数点例外(不正な算術操作))、SIGILL(不正命令)、SIGSEGV(セグメンテーション違反)、SIGSYS(不正システムコール)、SIGABRT(プロセスが中断された)が含まれる。
図2に示されるように、参考形態に係る制御装置900では、スケジューラ940は、PLC機能に関するプログラムおよびロボット制御機能に関するプログラムを、同一の実行単位950に割り当てる。そのため、PC800からロボット制御機能への攻撃を受けた場合であっても、実行単位950に対するプロセッサリソースの割り振りが停止される。その結果、ロボット制御機能だけでなくPLC機能も停止する。
これに対し、図1に示されるように、実施の形態に係る制御装置100では、スケジューラ140は、PLC機能に関するプログラムを第1実行単位152に割り当て、ロボット制御機能に関するプログラムを第2実行単位154に割り当てる。スケジューラ140は、第1実行単位152および第2実行単位154の各々に対してプロセッサリソースを割り振る。
PC800からロボット制御機能への攻撃を受け、第2実行単位154の実行状況が異常条件を満たすと、スケジューラ140は、第2実行単位154に対するプロセッサリソースの割り振りを停止する。ただし、スケジューラ140は、第2実行単位154とは別の第1実行単位152に対するプロセッサリソースの割り振りを維持する。これにより、ロボット制御機能だけが停止し、PLC機能は維持される。その結果、制御装置100は、PLC機能とPLC機能とは別のロボット制御機能とを有し、かつ、PLC機能の停止の頻度を抑制できる。
§2 具体例
<システムの全体構成>
図3は、実施の形態に係る制御装置が適用されるシステムの全体構成を示す模式図である。図3に示されるように、システム1は、制御装置100と、サポート装置200と、フィールド機器と、サーバ装置400と、を含む。
<システムの全体構成>
図3は、実施の形態に係る制御装置が適用されるシステムの全体構成を示す模式図である。図3に示されるように、システム1は、制御装置100と、サポート装置200と、フィールド機器と、サーバ装置400と、を含む。
制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当し、制御演算を実行する一種のコンピュータである。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器と接続される。
フィールド機器は、製造装置や生産ラインなどに対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報をやり取りする入出力装置などを含む。図3において、フィールド機器として、生産ライン3の第1工程3aに配置されたロボット300と、生産ラインの第2工程3bおよび第3工程3cの各々に配置されたサーボドライバ310およびモータ320とが例示されている。ロボット300は、例えばパラレルロボット、スカラロボット、多関節ロボットであり、制御装置100からの指令に従った動作を行なう。サーボドライバ310は、制御装置100からの指令値(例えば、位置指令や速度指令など)に従って、モータ320を駆動する。このように制御装置100は、生産ライン3に配置されるロボット300、サーボドライバ310及びモータ320を統合的に制御し得るように構成される。
制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器との間でデータをやり取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、本願においては、「フィールドネットワーク」と総称する。制御装置100は、各種のフィールド機器において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、フィールド機器に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のフィールド機器へ送信する処理(出力処理)等を行う。
ここで、フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)等が知られている。そして、フィールドネットワーク2を介して、制御装置100とフィールド機器との間でやり取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このようなやり取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
また、制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置400が接続される。サーバ装置400としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。
サポート装置200は、制御装置100において実行されるプログラムの開発等をサポートする。サポート装置200は、汎用のコンピュータ装置(例えば、ノート型パソコン)によって構成される。
<制御装置のハードウェア構成>
図4は、制御装置のハードウェア構成の一例を示す図である。図4に示されるように、制御装置100は、プロセッサ102と、システムコントローラ104と、RAM(Random Access Memory)108と、HDD(Hard Disk Drive)110と、上位ネットワークインターフェイス(Interface:以下「I/F」とも記す。)122と、下位ネットワークI/F124と、ローカル通信I/F126とを含む。
図4は、制御装置のハードウェア構成の一例を示す図である。図4に示されるように、制御装置100は、プロセッサ102と、システムコントローラ104と、RAM(Random Access Memory)108と、HDD(Hard Disk Drive)110と、上位ネットワークインターフェイス(Interface:以下「I/F」とも記す。)122と、下位ネットワークI/F124と、ローカル通信I/F126とを含む。
プロセッサ102は、各種プログラムを実行する算術論理演算装置であり、典型的には、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などを含み得る。プロセッサ102は、例えば、複数のコアが実装されるマルチコアプロセッサである。
システムコントローラ104は、プロセッサ102と周辺装置との間の内部コマンドやデータの遣り取りなどを制御および仲介する回路であり、典型的には、LSI(Large Scale Integration)などによって実装される。
RAM108は、プロセッサ102においてプログラムを実行するために必要なワークデータや外部との遣り取りによって取得されたデータなどを一時的に格納する。RAM108は、典型的には、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といった揮発性記憶装置によって実装される。
HDD110は、プロセッサ102によって実行されるプログラムやプロセッサ102によるプログラムの実行により生成されたデータを不揮発的に格納するストレージデバイスである。HDD110に代えて、あるいは、それに加えて、SSD(Solid State Drive)や光学ディスクなどのストレージデバイスを用いるようにしてもよい。
HDD110には、OS(Operating System)112と、IECプログラム114と、アプリケーションプログラム116とが格納される。OS112は、リアルタイムOSである。さらに、HDD110には、OS112とは独立して動作する汎用OS、各OS上で動作する様々なプログラムなどが格納されてもよい。
OS112は、指定された実行単位を指定された優先度に基づいて実行することで、所定の時間内に指定された処理を完了できる環境を提供する。図1に示すスケジューラ140は、OS112を含む。
IECプログラム114は、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が演算されるプログラムである。IECプログラム114は、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。IECプログラム114には、シーケンス制御およびモーション制御の命令が含まれる。このようなIECプログラム114は、制御周期毎にすべてのプログラムが実行(スキャン)される実行形式に対応するものであり、即時性および高速性が要求される制御に好適である。
アプリケーションプログラム116は、ロボット300を用いて特定の加工や動作を行うための制御プログラムである。アプリケーションプログラム116は、IECプログラム114とは区別され、ロボット300による制御アプリケーションを実現するための1または複数の命令からなるプログラムを包含する。ロボット制御に関するアプリケーションプログラム116は、一例として、ロボット言語を用いて記述され、1行ずつ逐次実行されるインタプリタ方式が採用される。
IECプログラム114およびアプリケーションプログラム116は、サポート装置200を用いて開発され、サポート装置200から制御装置100にインストールされる。
上位ネットワークI/F122は、上位ネットワーク6を介して、サーバ装置400または他の制御装置との間でデータを遣り取りする。
下位ネットワークI/F124は、フィールドネットワーク2を介して、各種フィールド機器との間でデータを遣り取りする。
ローカル通信I/F126は、任意の通信インターフェイスを包含する。典型的には、ローカル通信I/F126は、USB(Universal Serial Bus)、パラレル通信、RS-232Cなどのシリアル通信などを含み、サポート装置200などの各種の周辺装置との間でデータを遣り取りする。
<実行単位と各機能との関係>
図5は、実施の形態に係る制御装置における、実行単位と各機能との関係を示す図である。
図5は、実施の形態に係る制御装置における、実行単位と各機能との関係を示す図である。
OS112は、図1に示すスケジューラ140として動作し、各種プログラムの処理を実行単位に分割する。具体的には、OS112は、実行単位として複数のプロセス12_1,12_2,・・・を管理する。以下、プロセス12_1,12_2,・・・を特に区別しない場合、プロセス12_1,12_2,・・・の各々を「プロセス12」と称する。制御装置100の動作の安定性および安全性の観点から、プロセス12ごとに、メモリ空間が分離される。すなわち、複数のプロセス12は、独立して動作し、互いに影響を与えない。
1つのプロセス12は、1以上のスレッド14から構成される。同一のプロセス12に属する1以上のスレッド14は、メモリ空間を共有する。そのため、同一のプロセス12に属する1以上のスレッド14は、データを共有できる。
OS112は、PLC機能に関するプログラムをプロセス12_1に割り当て、ロボット制御機能に関するプログラムをプロセス12_2に割り当てる。PLC機能に関するプログラムは、IECプログラム114を含み、さらに、その他の関連プログラムを含んでもよい。ロボット制御機能に関するプログラムは、アプリケーションプログラム116を含み、さらに、その他の関連プログラムを含んでもよい。
OS112は、各プロセス12に対してプロセッサリソースを割り振る。なお、各プロセス12が複数のスレッド14から構成される場合、OS112は、スレッドごとにプロセッサリソースを割り振る。プロセッサ102がマルチコアプロセッサである場合、プロセッサリソースは、プロセッサ102に実装される複数のコア10の各々の処理時間である。そのため、複数のスレッド14は、複数のコア10のプロセッサリソースにそれぞれ割り振られることにより、同時に実行され得る。
OS112は、あるプロセス12の実行状況が異常条件を満たすと、当該プロセス12に対するプロセッサリソースの割り振りを停止し、他のプロセス12に対するプロセッサリソースの割り振りを維持する。そのため、ロボット制御機能に関するプログラムに割り当てられたプロセス12_2の実行状況が異常条件を満たすと、OS112は、プロセス12_2に対するプロセッサリソースの割り振りを停止し、プロセス12_1に対するプロセッサリソースの割り振りを維持する。これにより、ロボット制御機能が外部からの攻撃を受けた場合であっても、PLC機能に関するプログラムが割り当てられるプロセス12_1の実行が継続される。その結果、図3に示す生産ライン3全体は、動作し続けることができる。
<プロセス間通信>
上述したように、プロセス12ごとにメモリ空間が分離される。すなわち、複数のプロセス12は、独立して動作し、互いに影響を与えない。しかしながら、PLC機能とロボット制御機能とを1つの装置に統合したいというニーズに関連して、両機能でデータを共有したいというニーズがある。そのため、OS112は、プロセス12間でデータを共有するためのプロセス間通信を提供することが好ましい。
上述したように、プロセス12ごとにメモリ空間が分離される。すなわち、複数のプロセス12は、独立して動作し、互いに影響を与えない。しかしながら、PLC機能とロボット制御機能とを1つの装置に統合したいというニーズに関連して、両機能でデータを共有したいというニーズがある。そのため、OS112は、プロセス12間でデータを共有するためのプロセス間通信を提供することが好ましい。
図6は、プロセス間通信の一例を示す図である。図6に示されるように、公知のプロセス間通信の技術を用いて、データ16は、プロセス12_1,12_2の間で共有される。例えば、公知のプロセス間通信の技術として、RAM108(図4参照)上の共有領域を用いてデータ16をプロセス間で受け渡しする手法、外部記憶装置上の特定のファイルを介してデータ16をプロセス間で受け渡しする手法などが採用され得る。
<変形例>
(変形例1)
上記の説明では、プロセッサ102は、PLC機能に関するプログラムと、PLC機能とは別のロボット制御機能に関するプログラムと、を実行するものとした。しかしながら、プロセッサ102は、ロボット制御機能に関するプログラムに代えて、あるいは、ロボット制御機能に関するプログラムに加えて、さらに別の機能に関するプログラムを実行してもよい。このような機能には、例えば、NC(Numerical Control)工作機械を制御するためのNC機能、AI(Artificial Intelligence)機能などが含まれる。
(変形例1)
上記の説明では、プロセッサ102は、PLC機能に関するプログラムと、PLC機能とは別のロボット制御機能に関するプログラムと、を実行するものとした。しかしながら、プロセッサ102は、ロボット制御機能に関するプログラムに代えて、あるいは、ロボット制御機能に関するプログラムに加えて、さらに別の機能に関するプログラムを実行してもよい。このような機能には、例えば、NC(Numerical Control)工作機械を制御するためのNC機能、AI(Artificial Intelligence)機能などが含まれる。
AI機能は、例えば、生産ライン3の状態を示す状態データを入力データとして受け、異常および正常の区別を出力する学習モデルの生成と、学習モデルを用いた生産ライン3の監視と、を含む。状態データは、PLC機能の実行によって収集される。
このような場合であっても、OS112は、機能ごとのプログラムを異なる実行単位(プロセス)に割り当てればよい。これにより、PLC機能とは別の機能が外部から攻撃を受け、当該別の機能に関するプログラムに割り当てた実行単位の実行状況が異常条件を満たしたとしても、PLC機能の動作は継続される。これにより、生産ライン3全体の停止の頻度が抑制される。
(変形例2)
制御装置100は、2以上の実行単位(プロセス)の中から、機能ごとに実行単位の指定を受け付けてもよい。例えば、ローカル通信I/F126(図4参照)は、サポート装置200から当該指定を受け付ける。
制御装置100は、2以上の実行単位(プロセス)の中から、機能ごとに実行単位の指定を受け付けてもよい。例えば、ローカル通信I/F126(図4参照)は、サポート装置200から当該指定を受け付ける。
図7は、機能ごとに実行単位を指定するための画面の一例を示す図である。図7に示す画面20は、サポート装置200に表示される。図7に示されるように、画面20は、ラジオボタン22,24,26を含む。ラジオボタン22は、PLC機能に関するプログラムに対して割り当てられる実行単位を選択するために用いられる。ラジオボタン24は、PLC機能とは別の機能(X機能)に関するプログラムに対して割り当てられる実行単位を選択するために用いられる。ラジオボタン26は、PLC機能とはさらに別の機能(Y機能)に関するプログラムに対して割り当てられる実行単位を選択するために用いられる。
ローカル通信I/F126は、サポート装置200から、図7に示す画面への入力に応じた指定を受け付ける。OS112は、ローカル通信I/F126が受け付けた指定に従って、各機能に関するプログラムに対して実行単位を割り当てる。
変形例2によれば、ユーザは、機能の内容に応じて、複数の機能に関するプログラムに対して同一の実行単位が割り当てられるように指定してもよいし、機能ごとに異なる実行単位が割り当てられるように指定してもよい。
(変形例3)
外部のPC800からの攻撃には、大量のパケットの送信による、ネットワークの輻輳が考えられる。このようなネットワークの輻輳を考慮して、機能ごとに通信ポートを分けてもよい。
外部のPC800からの攻撃には、大量のパケットの送信による、ネットワークの輻輳が考えられる。このようなネットワークの輻輳を考慮して、機能ごとに通信ポートを分けてもよい。
図8は、変形例3に係る制御装置の概略構成を示す図である。図8に示されるように、制御装置100Aは、制御装置100と同様に、プロセッサ102とスケジューラ140とを備える。スケジューラ140の動作は、実施の形態と同じであるため、詳細な説明を省略する。さらに、制御装置100Aは、第1実行単位152の実行に応じた外部通信を行なうための通信ポート162と、第2実行単位154の実行に応じた外部通信を行なうための通信ポート164と、を備える。通信ポート162,164は、例えばEthernet(登録商標)ポートである。
変形例3によれば、悪意のあるユーザが使用するPC800から大量のパケットが通信ポート164に送信された場合、通信ポート164において、ネットワークの輻輳が発生する。これにより、第2実行単位154の実行に障害が生じ、ロボット制御機能が正常に動作しなくなり得る。しかしながら、PLC機能に関するプログラムに割り当てられた第1実行単位152の実行に応じた外部通信は、別の通信ポート162を介して、外部機器(例えば、正当なユーザが使用するPC810)との間で行なわれる。そのため、PLC機能は、正常に動作し続ける。その結果、生産ライン3の動作が継続される。
(変形例4)
制御装置100Aは、複数の通信ポートの中から、機能ごとの通信ポートの指定を受け付けてもよい。例えば、ローカル通信I/F126(図4参照)は、サポート装置200から当該指定を受け付ける。具体的には、制御装置100Aは、上位ネットワークI/F122(図4参照)を複数備え、当該複数の上位ネットワークI/F122(通信ポート)の中から、機能ごとに使用する上位ネットワークI/F122(通信ポート)の指定を受け付けてもよい。あるいは、制御装置100Aは、上位ネットワークI/F122、下位ネットワークI/F124、ローカル通信I/F126(図4参照)の中から、機能ごとに使用するインターフェイス(通信ポート)の指定を受け付けてもよい。
制御装置100Aは、複数の通信ポートの中から、機能ごとの通信ポートの指定を受け付けてもよい。例えば、ローカル通信I/F126(図4参照)は、サポート装置200から当該指定を受け付ける。具体的には、制御装置100Aは、上位ネットワークI/F122(図4参照)を複数備え、当該複数の上位ネットワークI/F122(通信ポート)の中から、機能ごとに使用する上位ネットワークI/F122(通信ポート)の指定を受け付けてもよい。あるいは、制御装置100Aは、上位ネットワークI/F122、下位ネットワークI/F124、ローカル通信I/F126(図4参照)の中から、機能ごとに使用するインターフェイス(通信ポート)の指定を受け付けてもよい。
図9は、機能ごとに通信ポートを指定するための画面の一例を示す図である。図9に示す画面30は、サポート装置200に表示される。図9に示されるように、画面30は、ラジオボタン32,34,36を含む。ラジオボタン32は、PLC機能に割り当てられた実行単位の実行に応じた外部通信を行なうための通信ポートを選択するために用いられる。ラジオボタン24は、PLC機能とは別の機能(X機能)に割り当てられた実行単位の実行に応じた外部通信を行なうための通信ポートを選択するために用いられる。ラジオボタン26は、PLC機能とはさらに別の機能(Y機能)に割り当てられた実行単位の実行に応じた外部通信を行なうための通信ポートを選択するために用いられる。
ローカル通信I/F126は、図9に示す画面への入力に応じた指定を受け付ける。制御装置100Aは、ローカル通信I/F126が受け付けた指定に従って、各機能に応じて通信ポートを異ならせる。
変形例4によれば、ユーザは、機能の内容に応じて、複数の機能に対して同一の通信ポートを指定してもよいし、機能ごとに異なる通信ポートを指定してもよい。
(変形例5)
上記の実施の形態では、機能ごとに、OS112によって管理されるプロセス12が分けられる。すなわち、実行単位はプロセスである。しかしながら、機能ごとに分けられる実行単位は、オペレーティングシステム(OS)であってもよい。
上記の実施の形態では、機能ごとに、OS112によって管理されるプロセス12が分けられる。すなわち、実行単位はプロセスである。しかしながら、機能ごとに分けられる実行単位は、オペレーティングシステム(OS)であってもよい。
図10は、変形例5に係る制御装置における、実行単位と各機能との関係を示す図である。図10に示されるように、制御装置は、ハイパーバイザ118を備える。ハイパーバイザ118は、図4に示すHDD110に格納され、図1に示すスケジューラ140に含まれる。
ハイパーバイザ118は、図1に示すスケジューラ140として動作し、各種プログラムの処理を実行単位に分割する。具体的には、ハイパーバイザ118は、実行単位として、ハイパーバイザ118上で動作する複数のOS120_1,120_2,・・・を提供する。以下、OS120_1,120_2,・・・を特に区別しない場合、OS120_1,120_2,・・・の各々を「OS120」と称する。OS120は、リアルタイムOSである。各OS120は、1以上のプロセス12を管理する。各プロセス12は、1以上のスレッド14から構成される。
ハイパーバイザ118は、PLC機能に関するプログラムをOS120_1に割り当て、ロボット制御機能に関するプログラムをOS120_2に割り当てる。OS120_1は、管理する1以上のプロセス12のうちの1つに対して、PLC機能に関するプログラムを割り当てる。OS120_2は、管理する1以上のプロセス12のうちの1つに対して、ロボット制御機能に関するプログラムを割り当てる。
ハイパーバイザ118は、各OS120に対してプロセッサリソースを割り振る。ハイパーバイザ118は、あるOS120の実行状況が異常条件を満たすと、当該OS120に対するプロセッサリソースの割り振りを停止し、他のOS120に対するプロセッサリソースの割り振りを維持する。異常条件には、例えば、OS120からハイパーバイザ118に対する定期的なハートビートが停止したという条件、OS120がハイパーバイザ118からのリクエストに対してレスポンスしないという条件などが含まれる。例えば、ロボット制御機能に関するプログラムに割り当てられたOS120_2が管理するプロセス12の実行状況が異常条件を満たすと、ハイパーバイザ118は、OS120_2に対するプロセッサリソースの割り振りを停止し、OS120_1に対するプロセッサリソースの割り振りを維持する。これにより、ロボット制御機能が外部からの攻撃を受けた場合であっても、PLC機能に関するプログラムが割り当てられるOS120_1が管理するプロセス12の実行が継続される。その結果、図3に示す生産ライン3全体は、動作し続けることができる。
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
制御装置(100,100A)であって、
PLC機能に関する第1プログラム(114)と、前記PLC機能とは別の機能に関する第2プログラム(116)と、を実行するためのプロセッサ(102)と、
前記第1プログラム(114)および前記第2プログラム(116)を第1実行単位(152,12_1,120_1)および第2実行単位(154,12_2,120_2)にそれぞれ割り当て、前記第1実行単位(152,12_1,120_1)および前記第2実行単位(154,12_2,120_2)の各々に対してプロセッサリソースを割り振るスケジューラ(140,112,118)と、を備え、
前記スケジューラ(140,112,118)は、前記第2実行単位(154,12_2,120_2)の実行状況が異常条件を満たすと、前記第2実行単位(154,12_2,120_2)に対する前記プロセッサリソースの割り振りを停止し、前記第1実行単位(152,12_1,120_1)に対する前記プロセッサリソースの割り振りを維持する、制御装置(100,100A)。
制御装置(100,100A)であって、
PLC機能に関する第1プログラム(114)と、前記PLC機能とは別の機能に関する第2プログラム(116)と、を実行するためのプロセッサ(102)と、
前記第1プログラム(114)および前記第2プログラム(116)を第1実行単位(152,12_1,120_1)および第2実行単位(154,12_2,120_2)にそれぞれ割り当て、前記第1実行単位(152,12_1,120_1)および前記第2実行単位(154,12_2,120_2)の各々に対してプロセッサリソースを割り振るスケジューラ(140,112,118)と、を備え、
前記スケジューラ(140,112,118)は、前記第2実行単位(154,12_2,120_2)の実行状況が異常条件を満たすと、前記第2実行単位(154,12_2,120_2)に対する前記プロセッサリソースの割り振りを停止し、前記第1実行単位(152,12_1,120_1)に対する前記プロセッサリソースの割り振りを維持する、制御装置(100,100A)。
(構成2)
前記スケジューラ(140,112)は、オペレーティングシステム(112)を含み、
前記第1実行単位(152,12_1)および前記第2実行単位(154,12_2)の各々は、前記オペレーティングシステム(112)が管理するプロセス(12)である、構成1に記載の制御装置(100、100A)。
前記スケジューラ(140,112)は、オペレーティングシステム(112)を含み、
前記第1実行単位(152,12_1)および前記第2実行単位(154,12_2)の各々は、前記オペレーティングシステム(112)が管理するプロセス(12)である、構成1に記載の制御装置(100、100A)。
(構成3)
前記スケジューラ(140,118)は、ハイパーバイザ(118)を含み、
前記第1実行単位(152,120_1)および前記第2実行単位(154,120_2)の各々は、前記ハイパーバイザ(118)上で動作するオペレーティングシステム(120)である、構成1に記載の制御装置(100、100A)。
前記スケジューラ(140,118)は、ハイパーバイザ(118)を含み、
前記第1実行単位(152,120_1)および前記第2実行単位(154,120_2)の各々は、前記ハイパーバイザ(118)上で動作するオペレーティングシステム(120)である、構成1に記載の制御装置(100、100A)。
(構成4)
前記オペレーティングシステム(112)は、前記第1実行単位(152,12_1)と前記第2実行単位(154,12_2)との間でデータを共有するためのプロセス間通信を提供する、構成2に記載の制御装置(100,100A)。
前記オペレーティングシステム(112)は、前記第1実行単位(152,12_1)と前記第2実行単位(154,12_2)との間でデータを共有するためのプロセス間通信を提供する、構成2に記載の制御装置(100,100A)。
(構成5)
2以上の実行単位の中から前記第1実行単位(152,12_1,120_1)および前記第2実行単位(154,12_2,120_2)の指定を受け付けるインターフェイス(126)をさらに備える、構成1から4のいずれかに記載の制御装置(100,100A)。
2以上の実行単位の中から前記第1実行単位(152,12_1,120_1)および前記第2実行単位(154,12_2,120_2)の指定を受け付けるインターフェイス(126)をさらに備える、構成1から4のいずれかに記載の制御装置(100,100A)。
(構成6)
前記第1実行単位(152,12_1,120_1)の実行に応じた外部通信を行なうための第1通信ポート(162)と、
前記第2実行単位(154,12_2,120_2)の実行に応じた外部通信を行なうための第2通信ポート(164)と、をさらに備える、構成1から5のいずれかに記載の制御装置(100A)。
前記第1実行単位(152,12_1,120_1)の実行に応じた外部通信を行なうための第1通信ポート(162)と、
前記第2実行単位(154,12_2,120_2)の実行に応じた外部通信を行なうための第2通信ポート(164)と、をさらに備える、構成1から5のいずれかに記載の制御装置(100A)。
(構成7)
2以上の通信ポート(162,164)と、
前記2以上の通信ポート(162,164)の中から前記PLC機能のための第1通信ポート(162)と前記別の機能のための第2通信ポート(164)との指定を受け付けるインターフェイスと、をさらに備え、
前記第1通信ポート(162)は、前記第1実行単位(152,12_1,120_1)の実行に応じた外部通信を行ない、
前記第2通信ポート(164)は、前記第2実行単位(154,12_2,120_2)の実行に応じた外部通信を行なう、構成1から4のいずれかに記載の制御装置(100A)。
2以上の通信ポート(162,164)と、
前記2以上の通信ポート(162,164)の中から前記PLC機能のための第1通信ポート(162)と前記別の機能のための第2通信ポート(164)との指定を受け付けるインターフェイスと、をさらに備え、
前記第1通信ポート(162)は、前記第1実行単位(152,12_1,120_1)の実行に応じた外部通信を行ない、
前記第2通信ポート(164)は、前記第2実行単位(154,12_2,120_2)の実行に応じた外部通信を行なう、構成1から4のいずれかに記載の制御装置(100A)。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 システム、2 フィールドネットワーク、3 生産ライン、3a 第1工程、3b 第2工程、3c 第3工程、6 上位ネットワーク、10 コア、12 プロセス、14 スレッド、16 データ、20,30 画面、22,24,26,32,34,36 ラジオボタン、100,100A,900 制御装置、102,902 プロセッサ、104 システムコントローラ、108 RAM、112 OS、114 IECプログラム、116 アプリケーションプログラム、118 ハイパーバイザ、120 OS、122 上位ネットワークI/F、124 下位ネットワークI/F、126 ローカル通信I/F、140,940 スケジューラ、152 第1実行単位、154 第2実行単位、162,164 通信ポート、200 サポート装置、300 ロボット、310 サーボドライバ、320 モータ、400 サーバ装置、950 実行単位。
Claims (7)
- 制御装置であって、
PLC機能に関する第1プログラムと、前記PLC機能とは別の機能に関する第2プログラムと、を実行するためのプロセッサと、
前記第1プログラムおよび前記第2プログラムを第1実行単位および第2実行単位にそれぞれ割り当て、前記第1実行単位および前記第2実行単位の各々に対してプロセッサリソースを割り振るスケジューラと、を備え、
前記スケジューラは、前記第2実行単位の実行状況が異常条件を満たすと、前記第2実行単位に対する前記プロセッサリソースの割り振りを停止し、前記第1実行単位に対する前記プロセッサリソースの割り振りを維持する、制御装置。 - 前記スケジューラは、オペレーティングシステムを含み、
前記第1実行単位および前記第2実行単位の各々は、前記オペレーティングシステムが管理するプロセスである、請求項1に記載の制御装置。 - 前記スケジューラは、ハイパーバイザを含み、
前記第1実行単位および前記第2実行単位の各々は、前記ハイパーバイザ上で動作するオペレーティングシステムである、請求項1に記載の制御装置。 - 前記オペレーティングシステムは、前記第1実行単位と前記第2実行単位との間でデータを共有するためのプロセス間通信を提供する、請求項2に記載の制御装置。
- 2以上の実行単位の中から前記第1実行単位および前記第2実行単位の指定を受け付けるインターフェイスをさらに備える、請求項1から4のいずれか1項に記載の制御装置。
- 前記第1実行単位の実行に応じた外部通信を行なうための第1通信ポートと、
前記第2実行単位の実行に応じた外部通信を行なうための第2通信ポートと、をさらに備える、請求項1から5のいずれか1項に記載の制御装置。 - 2以上の通信ポートと、
前記2以上の通信ポートの中から前記PLC機能のための第1通信ポートと前記別の機能のための第2通信ポートとの指定を受け付けるインターフェイスと、をさらに備え、
前記第1通信ポートは、前記第1実行単位の実行に応じた外部通信を行ない、
前記第2通信ポートは、前記第2実行単位の実行に応じた外部通信を行なう、請求項1から4のいずれか1項に記載の制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021159319A JP2023049531A (ja) | 2021-09-29 | 2021-09-29 | 制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021159319A JP2023049531A (ja) | 2021-09-29 | 2021-09-29 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023049531A true JP2023049531A (ja) | 2023-04-10 |
Family
ID=85801939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021159319A Pending JP2023049531A (ja) | 2021-09-29 | 2021-09-29 | 制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023049531A (ja) |
-
2021
- 2021-09-29 JP JP2021159319A patent/JP2023049531A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Goldschmidt et al. | Container-based architecture for flexible industrial control applications | |
US10761884B2 (en) | Control device for operating multiple types of programs in different execution formats | |
CN109388107B (zh) | 控制装置 | |
CN109507980B (zh) | 控制装置及控制方法 | |
JP6705266B2 (ja) | 制御装置、制御方法およびプログラム | |
WO2018186358A1 (ja) | 制御装置、制御方法および制御プログラム | |
JP6406466B1 (ja) | 制御装置、制御方法および制御プログラム | |
US11307550B2 (en) | Sequence control of program modules | |
WO2017177695A1 (zh) | 一种数控系统中应用的开发与集成方法及系统 | |
JP7048638B2 (ja) | コントロール装置 | |
EP3582036B1 (en) | Control device | |
JP2019061467A (ja) | サポート装置およびサポートプログラム | |
US20190056970A1 (en) | Method for computer-aided coupling a processing module into a modular technical system and modular technical system | |
US20220113709A1 (en) | Runtime server for simultaneous execution of a plurality of runtime systems of an automation system | |
JP2007221364A (ja) | コントローラ、制御システム及び制御装置の拡張方法 | |
JP7327225B2 (ja) | ロボット制御システムおよび制御方法 | |
JP2023049531A (ja) | 制御装置 | |
WO2020075351A1 (ja) | コントロール装置 | |
CN109491324B (zh) | 控制装置及控制方法 | |
JP7020198B2 (ja) | 制御装置および制御システム | |
WO2021199519A1 (ja) | 制御装置、プログラムおよび制御方法 | |
JP2015215669A (ja) | 数値制御装置および制御システム | |
WO2020255486A1 (ja) | 制御装置 | |
Hace et al. | Control system for the waterjet cutting machine | |
EP3779622B1 (en) | Control device |