(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024018790
(43)【公開日】2024-02-08
(54)【発明の名称】コントロールシステム及び方法
(51)【国際特許分類】
G05B 19/05 20060101AFI20240201BHJP
G06F 9/445 20180101ALI20240201BHJP
【FI】
G05B19/05 Z
G06F9/445
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022122331
(22)【出願日】2022-07-29
(71)【出願人】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】矢崎 徹
(72)【発明者】
【氏名】若菜 裕紀
(72)【発明者】
【氏名】尾島 正禎
(72)【発明者】
【氏名】山崎 正裕
(72)【発明者】
【氏名】下田 賢二
(72)【発明者】
【氏名】須藤 正義
(72)【発明者】
【氏名】前野 裕樹
(72)【発明者】
【氏名】曽我 満
【テーマコード(参考)】
5B376
5H220
【Fターム(参考)】
5B376AA21
5B376AC11
5B376AE21
5B376CA68
5H220AA04
5H220BB03
5H220CC09
5H220CX01
5H220EE06
5H220JJ12
5H220JJ16
(57)【要約】
【課題】制御周期において情報プログラムの動作が必要であっても、制御プログラムのスキャン処理の量の増加を抑える。
【解決手段】制御プログラムと情報プログラムを有するコントロールシステムが、管理プログラムと、情報プログラムのパラメータセットとを有する。制御プログラムは、スキャン処理(制御対象装置を制御する処理でありリアルタイム性を有する処理)を制御周期内に行うプログラムである。制御プログラムは、制御周期において、起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信する。管理プログラムは、制御指令を受信し、当該受信した制御指令が表す符号に対応した起動対象の情報プログラムを特定し、当該起動対象の情報プログラムのパラメータセットを読み出し、当該読み出されたパラメータセットを関連付けた起動信号を生成し、当該生成された起動信号を、起動対象の情報プログラムへ出力する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
一つ又は複数の制御対象装置を制御するコントロールシステムであって、
一つ又は複数の演算装置を備え、
前記一つ又は複数の演算装置が、制御プログラムと、一つ又は複数の情報プログラムと、管理プログラムと、前記一つ又は複数の情報プログラムの各々のパラメータセットとを有し、
前記一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムに必要な一つ以上のパラメータであり、
前記制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、
前記一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムであり、
前記制御プログラムは、前記制御周期において、前記一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信し、
前記管理プログラムは、
前記制御指令を受信し、
当該受信した制御指令が表す符号に対応した前記起動対象の情報プログラムを特定し、
当該起動対象の情報プログラムのパラメータセットを読み出し、
当該読み出されたパラメータセットを関連付けた起動信号を生成し、
当該生成された起動信号を、前記起動対象の情報プログラムへ出力する、
コントロールシステム。
【請求項2】
前記複数の演算装置が、第1の演算装置と第2の演算装置とを含み、
前記第1の演算装置が、前記制御プログラムを有し、
前記第2の演算装置が、前記一つ又は複数の情報プログラム、前記管理プログラム、及び、前記一つ又は複数の情報プログラムの各々のパラメータセットを有する、
請求項1に記載のコントロールシステム。
【請求項3】
前記一つ又は複数の演算装置のうちの少なくとも一つの演算装置に接続された出力装置を有し、
前記管理プログラムが、下記のうちの少なくとも一つを知らしめるための出力を前記出力装置に実行させる、
・いずれかの情報プログラムが動作しているか、
・いずれの情報プログラムが起動されたか、
・起動された情報プログラムが正常に動作しているか、
請求項1に記載のコントロールシステム。
【請求項4】
前記管理プログラムが、
起動された情報プログラムの処理結果を当該情報プログラムから受け付け、
当該処理結果を、前記制御プログラム、又は、前記制御プログラムを有する演算装置における情報プログラムに通知する、
請求項1に記載のコントロールシステム。
【請求項5】
記憶装置及びそれに接続されたプロセッサを有し、
前記プロセッサが、管理プログラムを実行し、
前記記憶装置に、一つ又は複数の情報プログラムの各々のパラメータセットが格納され、
前記一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムの起動に必要な一つ以上のパラメータであり、
前記一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムであり、
前記管理プログラムは、
制御指令を制御プログラムから受信し、
当該受信した制御指令が表す符号に対応した情報プログラムを特定し、
当該特定された情報プログラムのパラメータセットを読み出し、
当該読み出されたパラメータセットを関連付けた起動信号を生成し、
当該生成された起動信号を、前記特定された情報プログラムへ出力し、
前記制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、前記制御周期において、前記一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信するようになっている、
演算装置。
【請求項6】
制御指令を制御プログラムから受信し、
当該受信した制御指令が表す符号に対応した情報プログラムを特定し、
当該特定された情報プログラムのパラメータセットを読み出し、
当該読み出されたパラメータセットを関連付けた起動信号を生成し、
当該生成された起動信号を、前記特定された情報プログラムへ出力する、
ことをコンピュータに実行させ、
前記制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、前記制御周期において、一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信するようになっており、
前記一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムの起動に必要な一つ以上のパラメータであり、
前記一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムである、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、コントロール技術に関する。
【背景技術】
【0002】
例えば、特許文献1に開示のコントロールシステムが知られている。このコントロールシステムは、コントロール装置を有し、コントロール装置において、制御プログラムと情報プログラムが実行される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
コントロールシステムにおいて、コントロール装置は、産業用のコントロール装置でよく、コントロール装置の制御対象装置は、例えば、産業用モータやコンプレッサのような産業機器でよい。コントロール装置における制御プログラムは、そのような制御対象装置を制御する。具体的には、例えば、制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行う。情報プログラムは、当該情報プログラムについて定められた情報処理を行う。
【0005】
コントロール装置は、シーケンス制御装置、モーション制御装置、又はプログラマブル・ロジック・コントローラ(PLC)と呼ばれてよい。コントロール装置における制御プログラムは、典型的には、ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御特有のプログラミング言語で制御内容が記述される。
【0006】
一つ又は複数の情報プログラムのうちの少なくとも一つの情報プログラムを制御周期内に動作させるような制御プログラムを記述することができる。
【0007】
しかし、情報プログラムを動作させるためには、当該情報プログラムの起動信号を生成し当該起動信号を当該情報プログラムへ出力する必要がある。また、出力される起動信号には、典型的には、起動対象の情報プログラムが使用するパラメータセット(一つ以上のパラメータ)が関連付けられていなければならず、起動信号のためのパラメータセットを制御プログラムが読み出す必要がある。これらの理由から、スキャン処理の量が増加し、故に、制御周期が長くなり、また、制御プログラムの記述量が増加する。
【課題を解決するための手段】
【0008】
一つ又は複数の制御対象装置を制御するコントロールシステムが、一つ又は複数の演算装置を備える。一つ又は複数の演算装置が、制御プログラムと、一つ又は複数の情報プログラムと、管理プログラムと、一つ又は複数の情報プログラムの各々のパラメータセットとを有する。一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムに必要な一つ以上のパラメータである。制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムである。一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムである。制御プログラムは、制御周期において、一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信する。管理プログラムは、制御指令を受信し、当該受信した制御指令が表す符号に対応した起動対象の情報プログラムを特定する。管理プログラムは、当該起動対象の情報プログラムのパラメータセットを読み出し、当該読み出されたパラメータセットを関連付けた起動信号を生成し、当該生成された起動信号を、起動対象の情報プログラムへ出力する。
【発明の効果】
【0009】
本発明によれば、制御周期において情報プログラムの動作が必要であっても、制御プログラムのスキャン処理の量の増加を抑えることができる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施形態に係るコントロールシステムを含むシステムの物理構成の一例を示す。
【
図2】第1の実施形態に係るコントロールシステムの論理構成の一例を示す。
【
図3】第2の実施形態に係るコントロールシステムの論理構成の一例を示す。
【
図4】第3の実施形態に係るコントロールシステムの論理構成の一例を示す。
【発明を実施するための形態】
【0011】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイスであるI/Oインターフェース装置。I/Oインターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイスである通信インターフェース装置。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0012】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0013】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
【0014】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【0015】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサモジュールである。少なくとも一つのプロセッサモジュールは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサモジュールは、プロセッサコアでもよい。
【0016】
また、以下の説明では、プログラムを主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
【0017】
また、以下の説明では、機能(例えば「yyy」部と表現された機能)を主語として処理を説明する場合があるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0018】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別して説明する場合には、参照符号を使用することがある。
[第1の実施形態]
【0019】
図1は、第1の実施形態に係るコントロールシステムを含むシステムの物理構成の一例を示す。
【0020】
コントロールシステム109が、制御対象装置12がある工場10に設置される。制御対象装置12は、例えば、産業用モータやコンプレッサのような産業機器である。工場10は、制御対象装置12のある現場の一例である。
【0021】
管理システム101及びコントロールシステム109が、通信ネットワーク108(例えば、インターネット又はWAN(Wide Area Network))に接続されている。コントロールシステム109は、例えば、工場10内の通信ネットワーク19(例えば、LAN(Local Area Network))に接続されている。コントロールシステム109が、通信ネットワーク19及び108経由で管理システム101と通信できる。通信ネットワーク108及び19は、情報プログラムが行う情報通信処理(制御プログラムがスキャン処理において制御対象装置12に制御データを送信する処理とは異なる通信処理)の際に使用される通信ネットワークである。
【0022】
コントロールシステム109及び一つ以上のI/Oモジュール119(I/Oポートの一例)が通信ネットワーク118(例えば、イーサネット(登録商標))に接続されている。通信ネットワーク118は、制御プログラムが行う制御処理において制御データを制御対象装置12に送信するために使用される通信ネットワークである。
【0023】
通信ネットワーク19、108及び118は、それぞれ異なるネットワークでもよいし、通信ネットワーク19、108及び118のうちの二つ以上の通信ネットワークが同一のネットワークでもよい。
【0024】
一つ以上のI/Oモジュール119に一つ以上の周辺機器120が接続されている。周辺機器120は、センサやメディアドライブ(例えば、HDDやSSD)のような機器でよい。I/Oモジュール119は、周辺機器120が必要に応じて着脱可能に装着されるバススロットとして機能する。制御対象装置12は、周辺機器120経由又は非経由でI/Oモジュール119に接続される。制御対象装置12とI/Oモジュール119は、1:1、1:多、多:1及び多:多のいずれでもよい。また、一部のI/Oモジュール119は、通信ネットワーク118に加えて通信ネットワーク108に接続されてもよい、すなわち、当該一部のI/Oモジュール119は、制御プログラムと情報プログラムに共有のデバイスであってもよい。また、少なくとも一つのI/Oモジュール119は、少なくとも一つの演算装置40のネットワークI/F装置及びI/O制御装置の少なくとも一部でもよい。
【0025】
管理システム101は、コントロールシステム109の上位システムの一例である。管理システム101は、EPROM201、CPU202、メインメモリ203、周辺制御装置205、不揮発性記憶装置206及びネットワークI/F装置207を備える。管理システム101は、ネットワークI/F装置207を介して通信ネットワーク108に接続されている。
【0026】
コントロールシステム109は、一つ又は複数の演算装置40を備える。各演算装置40が、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを備える。全ての演算装置40は、ハードウェア構成が同じでも異なっていてもよい。いずれの演算装置40も、制御プログラムの配置先にも情報プログラムの配置先にもなり得てよい。本実施形態では、演算装置40Mは、メインの演算装置であり、制御プログラムの配置先であり、且つ、情報プログラムの配置先となり得る演算装置である。演算装置40E1及び40E2の各々が、増設された演算装置であり、制御プログラムの配置先となり得ず、情報プログラムの配置先となり得る演算装置である。演算装置40Eは、減設されてもよい。言い換えれば、演算装置40M単体が、コントロールシステム109になることがあってもよい。以下、演算装置40Mを「コントロール装置40M」と言い、演算装置40Eを「拡張装置40E」と言うことがある。
【0027】
拡張装置40Eが有るか否か、拡張装置40Eがいずれの種類の通信媒体に接続されるか、及び、制御プログラムと通信する情報プログラムがいずれの演算装置40に配置されるかによって、コントロールシステム109のシステム構成が異なる。つまり、システム構成は、拡張装置40Eの有無、コントロール装置40M及び拡張装置40Eの各々が接続される通信媒体の種類、及び、各アプリの配置先の演算装置40に依存する。
図1の例では、拡張装置40E1は、通信ネットワーク118に接続される。拡張装置40E2は、PIOバス28(バスの一例)に接続される(「PIO」は、Programmed I/Oの略である)。PIOバス28は、ベースボードにプリントされたバスでよく、ベースボードにコントロール装置40Mと拡張装置40E2が接続されていることで、コントロール装置40Mで実行される制御プログラムと拡張装置40E2で実行される情報プログラムがPIOバス28経由でデータを通信(共有)してよい。
【0028】
コントロール装置40Mを例に取り演算装置40のハードウェア構成を説明すると、例えば次の通りである。すなわち、コントロール装置40Mは、メモリ169(例えば、EPROM208及びメインメモリ210)、周辺制御装置212、I/O制御装置214、不揮発性記憶装置215、ネットワークI/F装置213、及び、それらに接続されたCPU209を備えている。I/O制御装置214及びネットワークI/F装置213が、インターフェース装置の一例である。メモリ169及び不揮発性記憶装置215が、記憶装置の一例である。CPU209がプロセッサの一例である。
【0029】
周辺制御装置212は、ネットワークI/F装置213、I/O制御装置214、不揮発性記憶装置215及びバス211に接続されている。このバス211には、その他にもメモリ169及びCPU209が接続されている。周辺制御装置212を通じて、装置213、215及び214が制御される。
【0030】
EPROM208には、予め制御プログラム及び情報プログラムの少なくとも一つが格納されていてもよいし、プログラム配布サーバ(図示せず)のようなプログラムソースからダウンロードされたプログラムが格納されてもよい。コントロールシステム109に搭載される制御プログラムと情報プログラムはそれぞれひとつずつだけでなく、コントロールシステム109が使用できるリソースをプログラムごとに設定することにより、複数の制御プログラム及び/又は複数の情報プログラムを搭載することができる。
【0031】
CPU209は、EPROM208に格納されている制御プログラム(及び情報プログラム)をメインメモリ210に読み出して実行し、制御プログラム(及び情報プログラム)の動作を制御する。例えば、CPU209は、制御プログラムを実行することで、周辺制御装置212、I/O制御装置214及び複数のI/Oモジュール119を介して複数の周辺機器120を制御する。周辺機器120は、I/Oモジュール119に1:1で対応付けられていてよい。また、CPU209は、シングルコアとマルチコアのいずれでもよい。一つのコアが、一つ以上の制御プログラムと一つ以上の情報プログラムとのうちの少なくとも一つのアプリを実行してよい。典型的には、一つのコアは、一つの制御プログラム、一つの制御プログラムと一つ以上の情報プログラム、又は、一つ以上の情報プログラムを実行してよい。
【0032】
設定端末29が、通信ネットワーク19を介して(又は通信ネットワーク19を介さずに)、コントロールシステム109(例えば、コントロール装置40M)に接続されている。設定端末29は、例えば、入力デバイス、表示デバイス、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを有する計算機(例えば、デスクトップ型、ラップトップ型又はタブレット型のパーソナルコンピュータ、或いは、スマートフォン)である。設定端末29は、コントロールシステム109に対する指示や設定を行ってよい。設定端末29は、管理システム101の一部であってもよい。
【0033】
以上のように、各演算装置40が、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを備える。コントロール装置40Mは、第1の演算装置の一例である。拡張装置40Eは、第2の演算装置の一例である。コントロール装置40Mのインターフェース装置と拡張装置40Eのインターフェース装置が互いに通信可能に接続されており、それらのインターフェース装置を通じて、信号が送受信される。
【0034】
図2は、コントロールシステム109の論理構成の一例を示す。
【0035】
制御プログラム317は、コントロール装置40MのCPUにより実行される。コントロール装置40Mは、シーケンス制御装置、モーション制御装置、又はプログラマブル・ロジック・コントローラ(PLC)と呼ばれてよい。制御プログラム317は、典型的には、ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御特有のプログラミング言語で制御内容が記述される。制御プログラム317は、例えば、シーケンス制御を行うプログラムでよい。制御プログラム317は、当該制御プログラム317について定められた制御周期毎に、制御対象装置12を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムである。
【0036】
情報プログラム312は、拡張装置40EのCPUにより実行される。情報プログラム312は、当該情報プログラム312について定められた情報処理を行うプログラムである。情報プログラム312は、起動信号(呼出し信号)により起動し、動作する(定められた情報処理を実行する)。拡張装置40Eは、複数(又は一つ)の情報プログラム312を有する。
【0037】
コントロールシステム109において、制御プログラム317は、制御周期において、起動対象の情報プログラム312があれば当該情報プログラム312を指定した信号を出力する必要はあるが、情報プログラム312に必要なパラメータセットを読み出したり、当該パラメータセットを関連付けた起動信号(情報プログラム312の起動信号)を生成したりする必要が無い。このため、制御周期において情報プログラム312の動作が必要であっても、制御プログラム317のスキャン処理の量の増加を抑えることができる。
【0038】
具体的には、制御プログラム317は、制御周期において、複数(又は一つ)の情報プログラム312のうちの起動対象の情報プログラム312に関連付けられた符号を指定した制御指令を送信するようになっている。例えば、制御プログラム317は、情報プログラム312Aが起動対象の情報プログラムであれば、符号“100”を指定した制御信号を送信し、情報プログラム312Bが起動対象の情報プログラムであれば符号“101”を指定した制御信号を送信するようになっている。制御プログラム317は、図示しないテーブルを参照して、起動対象の情報プログラムの符号を特定してもよいし、情報プログラム毎の符号が制御プログラム317に記述されていてもよい。
【0039】
情報プログラム312が、制御プログラム317が実行されるコントロール装置40Mではなく、制御プログラム317が実行されない拡張装置40Eで実行されるようになっており、当該拡張装置40Eに、管理プログラム311が備えられる。管理プログラム311は、(a)制御指令を制御プログラム317から受信し、(b)当該受信した制御指令に関連付けられている符号に対応した情報プログラム312を特定し、(c)当該特定された情報プログラム312のパラメータセットを読み出し、(d)当該読み出されたパラメータセットを関連付けた起動信号を生成し、(e)当該生成された起動信号を、(b)で特定された情報プログラム312へ出力する。
【0040】
情報プログラム312は、アプリケーションプログラムとそのアプリケーションプログラムのコンテナ(プログラムの実行環境の一例)とで構成されていてよい。情報プログラム312の起動信号は、パラメータセットが関連付けられたコンテナ起動用の信号でよく、管理プログラム311は、コンテナ起動用のプログラム(例えばスクリプト)でよい。管理プログラム311がコンテナを起動するので、一例として下記が不要になることが期待される。
・ユーザ定義の専用ネットワークの事前に作成すること。
・コンテナポートをコンテナホストのIPアドレス上に公開すること。
・制御プログラム317が、情報プログラム312へのパラメータセットの他に、コンテナポート番号を送付すること。
【0041】
管理プログラム311は、I/F部(インターフェース部)316、読出し部315、生成部314及び管理部301といった機能を有する。
【0042】
I/F部316は、制御指令を制御プログラム317から受信し、受信した制御指令に関連付けられている符号に対応した情報プログラム312を、ルックアップテーブル309から特定する。ルックアップテーブル309は、拡張装置40Eの記憶装置(メモリ169又は不揮発性記憶装置215)に格納される。ルックアップテーブル309は、起動され得る情報プログラム312毎に(言い換えれば、制御指令に関連付けられ得る符号毎に)、符号と、その符号に対応した情報プログラム312のID(識別データ)とを表す。情報プログラム312のIDは、生成される起動信号の要素となるデータ(例えば、情報プログラム312の名前)でもよいし、読出し対象のパラメータセットをパラメータセット群313から特定するために用いられるキーとしてのデータでもよい。なお、管理プログラム311は、ルックアップテーブル309を用いる方法以外の方法により、制御指令に関連付けられている符号に対応した情報プログラム312を特定してよい(例えば、符号を用いた所定の演算を管理プログラム311が行うことにより得られた値が、情報プログラム312のIDでよい)。また、情報プログラム312の「符号」は、制御プログラム317から送信される制御指令(信号)でよく、情報プログラム312の「ID」は、情報プログラム312の名称でよい。例えば、符号が“0x0100”であり、この符号に対応する情報プログラム312が、情報プログラム312Aであるとし、そのID(名前)が、“Info.A”であるとする。管理プログラム311が、符号“0x0100”を表す制御指令(信号)を受信した場合、ルックアップテーブル309から、符号“0x0100”に対応するID“Info.A”を特定し、情報プログラム312Aの起動信号に、特定されたID“Info.A”、及び、情報プログラム312Aについて取得されたパラメータセットを含める。
【0043】
読出し部315は、特定された情報プログラム312のIDに対応したパラメータセットをパラメータセット群313から読み出す。パラメータセットは、一つ以上のパラメータである。パラメータセット群313は、一つ以上のパラメータセットであり、例えば、情報プログラム312毎の設定ファイルでよい。設定ファイルに、パラメータセットが記述されていてよい。設定ファイルの特定に、特定された情報プログラム312のIDがキーとして用いられてよい。パラメータセット群313は、管理プログラム311(例えば管理部301)経由又は非経由で拡張装置40Eの記憶装置に格納される。
【0044】
生成部314は、読み出されたパラメータセットを関連付けた起動信号を生成する。起動信号の生成では、特定された情報プログラム312のIDが使用されてよい。生成部314は、当該生成された起動信号を、当該特定された情報プログラム312へ出力する。
図2が示す例では、特定された情報プログラムは、情報プログラム312Aであるため、起動信号が、情報プログラム312Aに出力される。当該起動信号に応答して、情報プログラム312Aが起動し、動作する。この動作において、情報プログラム312に記述された情報処理が実行される。
【0045】
管理部301は必ずしも無くてもよい。管理部301は、情報プログラム312のインストール、アンインストール及びアップデートを行ってよい。例えば、下記が管理部301により行われてよい。なお、情報プログラム312のソースは、いずれの装置でもよく、例えば、可搬型の記憶媒体でもよいし、
図1に示した管理システム101(例えばサーバ)でもよいし、コントロール装置40Mでもよい。
・管理部301が、拡張装置40Eに追加起動対象の情報プログラム312Tのインストール指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tを拡張装置40Eにインストールする。情報プログラム312Tの追加に伴い、管理部301は、情報プログラム312Tのパラメータセットを受け付け、当該パラメータセットをパラメータセット群313に追加する。また、情報プログラム312Tの追加に伴い、管理部301は、情報プログラム312Tの符号及びIDを受け付け、当該符号及びIDをルックアップテーブル309に追加する。
・管理部301が、情報プログラム312Tのアップデート指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tをアップデートする。また、当該アップデートに伴いパラメータセットの構成が変わる場合、管理部301は、パラメータセット群313のうち、情報プログラム312Tに対応したパラメータセットもアップデートする(例えば、パラメータセットを差し替える)。
・管理部301が、拡張装置40Eに削除起動対象の情報プログラム312Tのアンインストール指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tを拡張装置40Eからアンインストールする。情報プログラム312Tの削除に伴い、管理部301は、情報プログラム312Tのパラメータセットをパラメータセット群313から削除する。また、情報プログラム312Tの削除に伴い、管理部301は、情報プログラム312Tの符号及びIDをルックアップテーブル309から削除してよい。
【0046】
このように、情報プログラム312の追加や削除が可能であるが、本実施形態では、情報プログラム312が追加、更新又は削除されても、制御プログラム317の変更は実質的に不要である。このため、コントロールシステム109の機能の拡張や変更等が容易である。
【0047】
制御プログラム317と情報プログラム312がコントロール装置40Mのような同一のプラットフォーム(同一のCPU(及びメモリ))において実行されてもよいが、本実施形態では、情報プログラム312が、コントロール装置40M(制御プログラム317のプラットフォーム)とは別の演算装置である拡張装置40E(別のプラットフォーム)で実行される。また、管理プログラム311は、情報プログラム312が実行される装置と同じ装置(情報プログラム312を有する装置)において実行される。本実施形態では、情報プログラム312が拡張装置40Eで実行されるため管理プログラム311も拡張装置40Eで実行される。これにより、コントロール装置40Mの制約が少なくなり、故に、コントロールシステム109における装置の入れ替えが容易となる。また、制御プログラム317が使用可能なリソース量をより多く確保することが期待できる。
[第2の実施形態]
【0048】
第2の実施形態を説明する。その際、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については説明を省略又は簡略する。
【0049】
図3は、第2の実施形態に係るコントロールシステムの論理構成の一例を示す。
【0050】
複数(又は一つ)の演算装置40のうちの少なくとも一つの演算装置40に出力装置320が接続されている。出力装置320は、表示装置(例えば液晶ディスプレイ)でもよいが、本実施形態では、一つ以上のLED(Light Emitting Diode)313である。LED313が情報プログラム312に対応していてよい。例えば、情報プログラム312毎に、一又は複数色のLEDが備えられてよい。
【0051】
管理プログラム311の生成部314が、下記のうちの少なくとも一つを知らしめるための出力を出力装置320に実行させる。
(a)いずれかの情報プログラム312が動作しているか。
(b)いずれの情報プログラム312が起動されたか。
(c)起動された情報プログラムが正常に動作しているか。
【0052】
例えば、(a)は、少なくとも一つのLED313を点灯させることでよい。(b)は、起動された情報プログラム312に対応のLED313を点灯させることでよい。(c)は、起動された情報プログラム312が正常動作していれば第1の色のLED313を点灯させ、起動された情報プログラム312に異常があれば第2の色のLED313を点灯させることでよい。
【0053】
これにより、コントロールシステム109における情報プログラム312の状態をユーザに知らしめることができる。また、拡張装置40Eがフリーズして動作していない場合などにユーザが容易にそのような状態を知ることができる。
[第3の実施形態]
【0054】
第3の実施形態を説明する。その際、第1及び第2の実施形態との相違点を主に説明し、第1及び第2の実施形態との共通点については説明を省略又は簡略する。
【0055】
図4は、第3の実施形態に係るコントロールシステムの論理構成の一例を示す。
【0056】
管理プログラム311のI/F部316が、起動された情報プログラム312Bの処理結果を当該情報プログラム312Bから受け付け、当該処理結果を、制御プログラム317に通知する。当該処理結果を受けた制御プログラム317は、当該処理結果に応じて、制御対象装置12を制御する。このように、情報プログラム312の処理結果を管理プログラム311を通じて制御プログラム317に伝えることができ、以って、当該処理結果を基に制御プログラム317により制御を行うことができる。
【0057】
制御プログラム317の他に情報プログラムがコントロール装置40Mにある場合、処理結果の通知先は、制御プログラム317でもよいし、制御プログラム317に代えて、コントロール装置40Mにおける情報プログラムでもよい。コントロール装置40Mにおける情報プログラムが処理結果を受けた場合、コントロール装置40Mにおける共有メモリ(制御プログラム317と情報プログラムがやり取りする情報が格納される共有メモリ)を通じて(又は別の媒体を通じて)、処理結果を制御プログラム317が受けてもよい。また、LED313の表示態様から、情報プログラムやその他の動作が正常であるかユーザが判断することができる。
【0058】
なお、
図4では、コントロールシステム109は、検査対象の検査を行うようになっており、拡張装置40Eが、検査装置として機能する。様々な物又はサービスを「検査対象」とすることができ、「検査対象」のデータは、例えば、画像データ、センサデータ(例えば、振動データや電流データ)、又は、音データである。本実施形態では、検査対象は、物の一例としての製品であり、「検査対象のデータ」は、製品の画像データ、特に、製品の外観の画像データであり、このため、検査装置は、外観検査装置である。カメラ401及びセンサ402がある。カメラ401は、製品を撮影する。センサ402は、コンベアを流れ所定の位置を通過する製品を検出する。
【0059】
すなわち、例えば、情報プログラム312Aが、カメラ401により撮影をさせるプログラムであり、情報プログラム312Cが、検査のための機械学習モデル(例えば深層学習モデルの一例であるニューラルネットワーク)の学習を行うプログラムであり、情報プログラム312Bが、学習済の機械学習モデルを用いて推論(すなわち、製品の外観検査)を行うプログラムである。ルックアップテーブル309には、情報プログラム312Bに対応の符号として“100”が記録されており、情報プログラム312Cに対応の符号として“101”が記録されており、情報プログラム312Aに対応の符号として“102”が記録されている。また、例えば、パラメータセット群313において、情報プログラム312C(学習を実行させるプログラム)のパラメータセットは、学習画像枚数、機械学習モデルのID、及びエポック数を含んでいてよい。本実施形態では、下記の制御が行われてよい。
【0060】
制御プログラム317が、外観検査の開始前に、符号“101”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“101”に対応した情報プログラム312Cを特定し、当該情報プログラム312のパラメータセットを読み出す。管理プログラム311が、当該パラメータセットを関連付けた起動信号(情報プログラム312Cの起動信号)を生成し、当該起動信号を情報プログラム312Cへ出力することで、情報プログラム312Cを起動させる。起動した情報プログラム312Cが、学習部として、起動信号に関連付けられているパラメータセットの少なくとも一部のパラメータを用いて、機械学習モデルの学習を行う。
【0061】
学習後、制御周期毎の制御が行われる。すなわち、制御周期毎に、下記の(x)及び(y)が行われる。
(x)制御プログラム317が、センサ402により製品が検出された場合、符号“102”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“102”に対応した情報プログラム312Aを特定し、当該情報プログラム312Aのパラメータセットを読み出し、当該パラメータセットを関連付けた起動信号(情報プログラム312Aの起動信号)を生成して出力する。これにより、情報プログラム312Aが、カメラ401により製品を撮影させ、撮影された製品の画像データを取得する。
(y)次に、制御プログラム317が、符号“100”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“100”に対応した情報プログラム312Bを特定し、当該情報プログラム312Bのパラメータセットを読み出し、当該パラメータセットを関連付けた起動信号(情報プログラム312Bの起動信号)を生成して出力する。これにより、情報プログラム312Bが、学習済の機械学習モデルを用いて、(x)において取得された画像データが表す製品の外観検査を行う。情報プログラム312Bが、当該外観検査の結果を管理プログラム311に返し、管理プログラム311が、その結果を制御プログラム317に送信する。制御プログラム317は、当該結果が異常を意味する結果であれば(つまり、製品が異常品であれば)、製品をコンベアから除外する除外装置(制御対象装置の一例)に、製品をコンベアから除外させる。
【0062】
以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、第3の実施形態において、学習後の推論では、推論のプログラムが、撮像の機能も有していて、撮像と推論が同時に実行されるようになっていてよい。推論のプログラムは、情報プログラムの一例でもよいし、情報プログラムとして分類されないプログラムでもよい。
【符号の説明】
【0063】
109…コントロールシステム