IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 新日鉄住金エンジニアリング株式会社の特許一覧

特許7625128作成システムの制御方法、制御装置、及びプログラム
<図1>
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図1
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図2
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図3
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図4
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図5
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図6
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図7
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図8
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図9
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図10
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図11
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図12
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図13
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図14
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図15
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図16
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図17
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図18
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図19
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図20
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図21
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図22
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図23
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図24
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図25
  • 特許-作成システムの制御方法、制御装置、及びプログラム 図26
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-01-23
(45)【発行日】2025-01-31
(54)【発明の名称】作成システムの制御方法、制御装置、及びプログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20250124BHJP
   G05B 23/02 20060101ALI20250124BHJP
   G06F 8/34 20180101ALI20250124BHJP
【FI】
G05B19/05 A
G05B23/02 G
G06F8/34
【請求項の数】 12
(21)【出願番号】P 2024188288
(22)【出願日】2024-10-25
【審査請求日】2024-11-25
【早期審査対象出願】
(73)【特許権者】
【識別番号】306022513
【氏名又は名称】日鉄エンジニアリング株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100140774
【弁理士】
【氏名又は名称】大浪 一徳
(74)【代理人】
【識別番号】100134359
【弁理士】
【氏名又は名称】勝俣 智夫
(74)【代理人】
【識別番号】100188592
【弁理士】
【氏名又は名称】山口 洋
(74)【代理人】
【識別番号】100217249
【弁理士】
【氏名又は名称】堀田 耕一郎
(74)【代理人】
【識別番号】100221279
【弁理士】
【氏名又は名称】山口 健吾
(74)【代理人】
【識別番号】100207686
【弁理士】
【氏名又は名称】飯田 恭宏
(74)【代理人】
【識別番号】100224812
【弁理士】
【氏名又は名称】井口 翔太
(72)【発明者】
【氏名】宮崎 聡志
(72)【発明者】
【氏名】野間田 裕昭
(72)【発明者】
【氏名】中尾 泰三
【審査官】牧 初
(56)【参考文献】
【文献】特開2023-162562(JP,A)
【文献】特開2022-118310(JP,A)
【文献】米国特許出願公開第2020/0272662(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04-19/05
G05B 23/00-23/02
G06F 8/34
(57)【特許請求の範囲】
【請求項1】
コンピュータが、第1関数及び第2関数それぞれのメタデータを言語モデルに送信する送信ステップと、
コンピュータが、ユーザの所望の機能、を示すプロンプトを前記言語モデルに通知する通知ステップと、
コンピュータが、前記第1関数に対応する第1ノードと、前記第2関数に対応する第2ノードと、前記第1ノードと前記第2ノードとを接続するエッジと、を、前記送信ステップにて送信される前記メタデータと前記通知ステップにて通知される前記プロンプトとに基づき、前記言語モデルに作成させる作成制御ステップと、
を備え、
前記第1関数及び前記第2関数それぞれは、プラントを制御するための関数である、
ことを特徴とする作成システムの制御方法。
【請求項2】
前記送信ステップにて、前記第1関数及び前記第2関数それぞれの前記メタデータは、外部サーバから前記言語モデルへ送信される、
ことを特徴とする請求項1に記載の作成システムの制御方法。
【請求項3】
前記送信ステップにて前記プラントの機能仕様書が前記言語モデルに送信される、
ことを特徴とする請求項1に記載の作成システムの制御方法。
【請求項4】
前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記プラントのインターロック条件を示す条件情報を含む、
ことを特徴とする請求項1に記載の作成システムの制御方法。
【請求項5】
前記通知ステップにて通知される前記条件情報を用い、前記第1関数及び前記第2関数のいずれか一方を前記言語モデルに選択させる、
ことを特徴とする請求項4に記載の作成システムの制御方法。
【請求項6】
コンピュータが、前記作成制御ステップにて作成される前記第1ノード、前記第2ノード、及び、前記エッジが、インターロック条件を満足するか否かを判定する判定ステップ、
を更に備えることを特徴とする請求項1に記載の作成システムの制御方法。
【請求項7】
前記第1関数は、ごみピットの煙又は火災を検知するための関数であり、
前記第2関数は、アラームを発報するための関数であり、
前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記ごみピットの煙又は火災が検知される場合に前記アラームを発報させること、を示す、
ことを特徴とする請求項1乃至6のいずれか1項に記載の作成システムの制御方法。
【請求項8】
前記第1関数は、タンクの水位を検知するための関数であり、
前記第2関数は、ポンプを動作させるための関数であり、
前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記タンクの水位が所定水位より低くなった場合に前記ポンプの動作を停止させること、を示す、
ことを特徴とする請求項1乃至6のいずれか1項に記載の作成システムの制御方法。
【請求項9】
前記第1関数は、移動機械を移動させるための関数であり、
前記第2関数は、前記移動のルート上に物体があるか否かを判定するための関数であり、
前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記ルート上に前記物体がある場合に前記移動機械の前記移動を停止させること、を示す、
ことを特徴とする請求項1乃至6のいずれか1項に記載の作成システムの制御方法。
【請求項10】
コンピュータが、前記作成制御ステップにて作成される前記第1ノード、前記第2ノード、及び、前記エッジをともに、表示部に表示させる表示制御ステップ、
を更に備えることを特徴とする請求項1乃至6のいずれか1項に記載の作成システムの制御方法。
【請求項11】
第1関数及び第2関数それぞれのメタデータを言語モデルに送信する送信手段と、
ユーザの所望の機能、を示すプロンプトを前記言語モデルに通知する通知手段と、
前記第1関数に対応する第1ノードと、前記第2関数に対応する第2ノードと、前記第1ノードと前記第2ノードとを接続するエッジと、を、前記送信手段によって送信される前記メタデータと前記通知手段によって通知される前記プロンプトとに基づき、前記言語モデルに作成させる作成制御手段と、
を備え、
前記第1関数及び前記第2関数それぞれは、プラントを制御するための関数である、
ことを特徴とする制御装置。
【請求項12】
コンピュータを、請求項11に記載の制御装置として機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、作成システムの制御方法、制御装置、及びプログラムに関する。
【背景技術】
【0002】
従来、ワークスペース上にノードとエッジとを自由に作成できる開発支援システム、がある。
特許文献1は、大規模言語モデル選択欄、プロンプト受付欄、およびプロンプトに対する出力を表示する出力結果表示欄を含むプロンプトノードを開示する。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第7506957号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、ノードとエッジをユーザが作成する必要があり、煩雑であった。
【0005】
本開示は、前述した事情に鑑みてなされたものであって、ノードとエッジを自動で作成することができる作成システムの制御方法、制御装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様に係る作成システムの制御方法は、コンピュータが、第1関数及び第2関数それぞれのメタデータを言語モデルに送信する送信ステップと、コンピュータが、ユーザの所望の機能、を示すプロンプトを前記言語モデルに通知する通知ステップと、コンピュータが、前記第1関数に対応する第1ノードと、前記第2関数に対応する第2ノードと、前記第1ノードと前記第2ノードとを接続するエッジと、を、前記送信ステップにて送信される前記メタデータと前記通知ステップにて通知される前記プロンプトとに基づき、前記言語モデルに作成させる作成制御ステップと、を備え、前記第1関数及び前記第2関数それぞれは、プラントを制御するための関数である、ことを特徴とする。
【発明の効果】
【0007】
本開示によれば、ノードとエッジを自動で作成することができる作成システムの制御方法、制御装置、及びプログラムを提供することができる。
【図面の簡単な説明】
【0008】
図1】画面に表示されるノード及びエッジの例である。
図2】実施形態に係る作成システムのシステム構成を示す概略ブロック図である。
図3】実施形態に係る制御装置の機能構成の具体例を示す概略ブロック図である。
図4】関数の第1例に係るプロンプトの例である。
図5】言語モデルが作成する、関数の第1例に係るノード及びエッジを示す図である。
図6】関数の第2例に係るプロンプトの例である。
図7】関数の第2例に係る機能仕様書の第1図である。
図8】関数の第2例に係る機能仕様書の第2図である。
図9】関数の第2例に係る機能仕様書の第3図である。
図10】関数の第2例に係る機能仕様書を半構造化した例の第1図である。
図11】関数の第2例に係る機能仕様書を半構造化した例の第2図である。
図12】関数の第2例に係る機能仕様書を半構造化した例の第3図である。
図13】関数の第2例における、プラントから情報を収集する関数に与える入力のスキーマの例の第1図である。
図14】関数の第2例における、プラントから情報を収集する関数に与える入力のスキーマの例の第2図である。
図15図13及び図14に示すスキーマによって取得される各種情報を含むデータ配列の第1図である。
図16図13及び図14に示すスキーマによって取得される各種情報を含むデータ配列の第2図である。
図17】関数の第2例に係るAPIに入力する情報の定義の例である。
図18】言語モデルによって作成される、関数の第2例に係る言語である。
図19】言語モデルが作成する、関数の第2例に係るノード及びエッジを示す図である。
図20】関数の第2例に係るインターロック条件が入力されるスキーマの例の第1図である。
図21】関数の第2例に係るインターロック条件が入力されるスキーマの例の第2図である。
図22図20及び図21に示すインターロック条件が入力されるスキーマによって取得される各種情報を含むデータ配列の第1図である。
図23図20及び図21に示すインターロック条件が入力されるスキーマによって取得される各種情報を含むデータ配列の第2図である。
図24】言語モデルが作成する、関数の第2例に係るインターロック条件を示すノード及びエッジを示す図である。
図25】実施形態に係る作成システムの制御方法のフローである。
図26】実施形態に適用される情報処理装置のハードウェア構成例の概略を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照し、本開示の一実施形態に係る作成システムを説明する。
本実施形態に係る作成システムは、例えば、制御対象を監視又は制御するための関数や、前記関数に基づくノードやエッジを作成する。本実施形態において、制御対象は、例えば、ごみ処理場等をはじめとするプラントである。本実施形態において、関数は、プラントに含まれる各種センサやアクチュエータを監視又は制御するために用いられる。
【0010】
本実施形態において、作成システムが作成する関数は、第1関数と、第2関数と、を含む。本実施形態において、第1関数及び第2関数それぞれは、制御対象であるプラントを監視又は制御するための関数であってよい。
第1関数と第2関数とは、制御対象を監視又は制御するために、互いに関連付けられてよい。具体的には、例えば、第1関数によってセンサを監視又は制御し、第2関数によってアクチュエータを監視又は制御してよい。このことで、例えば、第1関数によって監視又は制御されるセンサが検出した各種情報に基づき、第2関数によってアクチュエータが動作するように監視又は制御されてよい。
【0011】
本実施形態において、ノードやエッジは、例えば、ユーザが関数の構造を直感的に把握可能とするために、画面に表示される図形をいう。また、ノードやエッジとは、前述のように画面に表示される図形の元となるプログラムのことであってよい。以下、特に記載する場合を除き、ノードやエッジは、画面に表示される図形のことであるとする。
【0012】
図1は、画面に表示されるノードN及びエッジEの例である。
図1に示すように、ノードNは、例えば、第1ノードN1と、第2ノードN2と、を含む。第1ノードN1は第1関数に対応し、第2ノードN2は第2関数に対応する。第1ノードN1及び第2ノードN2は、例えば、多角形や円等をはじめとする平面図形であってよい。
エッジEは、複数のノードNを互いに接続する線である。図1に示す例では、エッジEは、第1ノードN1と第2ノードN2とを接続している。エッジEは、画面上において、図1に示すように直線で表示されてもよいし、曲線で表示されてもよい。なお、エッジEの元になるプログラムは、例えば、コンパイルレスのテキストファイルであってよい。
例えば、上述のように第1関数によってセンサを監視又は制御し、その結果に基づき第2関数によってアクチュエータを監視又は制御する場合、図1に示すように、画面上に第1ノードN1と第2ノードN2とが隣り合って表示され、エッジEによって第1ノードN1と第2ノードN2とが接続されるように表示されてよい。このことで、第1関数と第2関数とが互いに関連付けられたように表示されてよい。
【0013】
本実施形態において、画面に表示されるノードNやエッジEは、ユーザによるビジュアルプログラミングに用いられてよい。すなわち、ユーザは、ノードNやエッジEのような図形として表示された関数を、画面上で適宜操作することによって、制御対象を適宜監視又は制御するためのプログラムを作成してもよい。
【0014】
上記のようなビジュアルプログラミングを可能とするために、本実施形態において、第1関数及び第2関数を含むプログラムは、例えば、第1関数及び第2関数が個別にコンパイルされた後に、互いに関連付けられるようにして構成されてよい。この場合、図1に示すような画面上においては、例えば、第1ノードN1と第2ノードN2とが個別に表示された状態から、ユーザが、エッジEによって第1ノードN1と第2ノードN2とを接続することで、第1関数及び第2関数を含むプログラムが構成されてよい。
上述のような方法によるプログラミングによっては、例えば、プログラムの安定した稼働を担保しつつ、新たな機能を追加する際の柔軟性を高くすることができる。
【0015】
例えば、上述のような方法によるプログラミングによって、次のようなことが可能となる。すなわち、第1関数及び第2関数を備えるプログラムの稼働中に、第1関数及び第2関数とは異なる関数を追加することができる。例えば、第1関数及び第2関数を備えるプログラムの稼働中に、ユーザが、第3関数に対応する第3ノード(不図示)を図1に示す画面に追加で表示させ、エッジEによって第3ノードを第1ノードN1又は第2ノードN2に接続するようにして、稼働中のプログラムに第3関数を追加してもよい。なお、第3関数は、プログラムに追加される前に、予めコンパイル済であってよい。
このことで、例えば、稼働中のプログラムを停止させることを不要にすることができる。また、第3関数をプログラムに追加する際、第1関数、第2関数及び第3関数を備えるプログラムとして改めてコンパイルを行うことを不要とすることができる。よって、プログラムの改良等を柔軟に行いやすくすることができる。更に、プログラムの改良に必要なリソースを削減することができる。
【0016】
(作成システムの構成について)
図2は、実施形態に係る作成システム1のシステム構成を示す概略ブロック図である。
作成システム1は、制御装置10と、言語モデル20と、を備える。図1に示すように、制御装置10と言語モデル20とは、ネットワーク70を介して通信可能に接続される。また、作成システム1と制御対象2とは、ネットワーク70を介して通信可能に接続される。具体的には、作成システム1の制御装置10と制御対象2とが、ネットワーク70を介して通信可能に接続される。また、作成システム1の制御装置10及び制御対象2には、外部サーバ3が、ネットワーク70を介して通信可能に接続されてもよい。
本実施形態において、外部サーバ3は、例えば、OPCサーバであってよい。制御装置10は、例えば、外部サーバ3によって監視又は制御が可能であってもよい。また、外部サーバ3には、制御対象2の設備(例えば、センサやアクチュエータ)に関する各種情報が、一覧形式で複数保存されていてよい。
【0017】
なお、本実施形態において、外部サーバ3、制御装置10、及び言語モデル20は、例えば、単一の装置に全て含まれていてよいし、これらの一部のみが単一の装置に含まれていてもよいし、それぞれが個別の装置に含まれていてもよい。本実施形態では、例えば、外部サーバ3と制御装置10とが単一の装置に含まれ、言語モデル20が別の装置に含まれている。
また、作成システムが作成する関数によっては、例えば、プラントが制御されてもよいし、プラントコントローラ(不図示)が制御されてもよい。なお、本実施形態において、プラントコントローラとは、PLC(Programmable Logic Controller)等をはじめとする、プラントを監視又は制御する装置を示す。具体的には、プラントコントローラとは、例えば、制御装置10と、モータを監視又は制御する装置と、を介してポンプに電源を供給して運転する際に用いられる装置であってよい。
【0018】
本実施形態において、ネットワーク70は、無線通信を用いたネットワークであってもよいし、有線通信を用いたネットワークであってもよい。ネットワーク70は、例えばインターネットを用いて構成されてもよいし、ローカルエリアネットワーク(LAN)を用いて構成されてもよい。ネットワーク70は、複数のネットワークが組み合わされて構成されてもよい。
【0019】
図3は、実施形態に係る制御装置10の機能構成の具体例を示す概略ブロック図である。
制御装置10は、例えば、制御対象2を監視又は制御する。また、制御装置10は、言語モデル20に、制御対象2を監視又は制御するためのプログラムを作成させる。制御装置10は、例えばスマートフォン、タブレット、パーソナルコンピュータ、専用機器などの情報機器を用いて構成される。図3に示すように、制御装置10は、通信部11、入力部12、表示部13、記憶部14及び制御部15を備える。
【0020】
通信部11は、通信機器である。通信部11は、例えばネットワークインターフェースとして構成されてもよい。通信部11は、制御部15の制御に応じて、ネットワーク70を介して他の装置とデータ通信する。通信部11は、無線通信を行う装置であってもよいし、有線通信を行う装置であってもよい。
【0021】
入力部12は、キーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置を用いて構成される。入力部12は、ユーザの指示を制御装置10に入力する際にユーザによって操作される。入力部12は、入力装置を制御装置10に接続するためのインターフェースであっても良い。この場合、入力部12は、入力装置においてユーザの入力に応じ生成された入力信号を制御装置10に入力する。入力部12は、マイク及び音声認識装置を用いて構成されてもよい。この場合、入力部12はユーザの発話によって生じた音響信号を取得し、ユーザによって発話された文言を音声認識し、認識結果の文字列情報を制御装置10に入力する。音声認識処理は制御部15によって実行されてもよい。入力部12は、ユーザの指示を制御装置10に入力可能な構成であればどのように構成されてもよい。
【0022】
表示部13は、情報をユーザが認知可能な形で出力する。表示部13は、例えば液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置であってもよい。表示部13は、画像表示装置を制御装置10に接続するためのインターフェースであっても良い。この場合、表示部13は、画像データを表示するための映像信号を生成し、自身に接続されている画像表示装置に映像信号を出力する。表示部13は、スピーカー等の音響を出力する装置であってもよい。表示部13は、スピーカーやヘッドホン等の音響出力装置を制御装置10に接続するためのインターフェースであってもよい。この場合、表示部13は、音響データを再生するための音響信号を生成し、自身に接続されている音響出力装置に音響信号を出力する。なお、表示部13は、入力部12と一体のタッチパネルとして構成されてもよい。
【0023】
記憶部14は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。記憶部14は、制御部15によって使用されるデータを記憶する。記憶部14は、制御部15が処理を行う際に必要となるデータを記憶する。また、記憶部14は、制御対象2の制御プログラムを作成するためのプロンプトやメタデータ等をはじめとする各種データを記憶してもよい。なお、本実施形態において、記憶部14に保存される各種情報は、外部サーバ3に保存されてもよい。
【0024】
制御部15は、CPU(Central Processing Unit)等のプロセッサーとメモリー(主記憶装置)とを用いて構成される。制御部15は、プロセッサーがプログラムを実行することによって、通知手段151、送信手段152、作成制御手段153、判定手段154、表示制御手段155、システム制御手段156、として機能する。なお、制御部15の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やPLCやFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。上記のプログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM、半導体記憶装置(例えばSSD:Solid State Drive)等の可搬媒体、コンピュータシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。上記のプログラムは、電気通信回線を介して送信されてもよい。
【0025】
制御部15は、例えば自装置(制御装置10)にインストールされたアプリケーションプログラムを実行してもよい。制御装置10にインストールされたプログラムは、制御装置10(コンピュータ)を、本実施形態に係る作成システム1として機能させてよい。このようなアプリケーションの具体例として、作成システム1の専用アプリケーションとして制御装置10に提供されるアプリケーションがある。このようなアプリケーションの他の具体例として、WEBブラウザのアプリケーションがある。このようなアプリケーションは、予め制御装置10にインストールされていてもよいし、判定処理を実行する際にその都度ダウンロードされてもよい。例えばWEBブラウザのアプリケーションとして実装される場合には、特定のWEBサーバに制御装置10が接続することに応じてWEBサーバによって指定された装置(例えばWEBサーバそのものでもよいし他のサーバでもよい)から制御装置10がアプリケーションをダウンロードして実行してもよい。制御部15は、実行中のアプリケーションのプログラムにしたがって動作する。
【0026】
通知手段151は、制御対象2におけるユーザの所望の機能、を示すプロンプトを言語モデル20に通知する。プロンプトは、例えば、制御対象2がユーザの所望の機能を具備するための指示に関する情報である。プロンプトは、例えば、入力部12を介してユーザによって入力される。本実施形態において、プロンプトは、自然言語等からなるテキストを含む。テキストは、例えば、日本語や英語をはじめとする任意の言語であってよい。換言すれば、本実施形態において、制御対象2を監視又は制御するためのプロンプトは、ユーザが通常用いる自然言語からなる。
通知手段151が言語モデル20に通知するプロンプトは、例えば、ユーザによって都度入力されてよい。この場合、通知手段151は、プロンプトを言語モデル20に通知する際に、ユーザが入力したプロンプトを言語モデル20に送信してよい。なお、このようにユーザによって入力されたプロンプトは、例えば、記憶部14又は外部サーバ3に記憶されてもよい。
また、通知手段151が言語モデル20に通知するプロンプトは、例えば、記憶部14又は外部サーバ3に記憶されたものが用いられてよい。この場合、通知手段151は、プロンプトを言語モデル20に通知する際に、記憶部14又は外部サーバ3から読み出されたプロンプトを言語モデル20に通知してよい。この態様は、例えば、ユーザが過去に入力したプロンプトを用いて関数の作成を行いたい場合に好適である。
【0027】
送信手段152は、関数のメタデータを言語モデル20に送信する。本実施形態において、関数のメタデータは、例えば、通知手段151によって言語モデル20に通知されたプロンプトに基づき、言語モデル20が関数を作成する際に必要な各種情報を含む。
本実施形態において、送信手段152が言語モデル20に送信するメタデータは、例えば、プロンプトと同時にユーザによって都度入力されてよい。この場合、送信手段152は、メタデータを言語モデル20に送信する際に、ユーザが入力したメタデータを言語モデル20に送信してよい。なお、このようにユーザによって入力されたメタデータは、例えば、記憶部14又は外部サーバ3に記憶されてよい。
また、送信手段152が言語モデル20に送信するメタデータは、例えば、記憶部14又は外部サーバ3に記憶されたものが用いられてよい。この場合、送信手段152は、メタデータを言語モデル20に送信する際に、記憶部14又は外部サーバ3から読み出されたメタデータを言語モデル20に送信してよい。この態様は、例えば、ユーザが過去に入力したメタデータを用いて関数の作成を行いたい場合に好適である。
【0028】
作成制御手段153は、言語モデル20に、関数や、前記関数に基づくノードNやエッジEを作成させる。作成制御手段153は、例えば、通信部11を介して言語モデル20と通信することで、まず、言語モデル20に関数を作成するための指示を送信してよい。言語モデル20が関数を作成した後、作成制御手段153は、第1関数に対応する第1ノードN1と、第2関数に対応する第2ノードN2と、第1ノードN1と第2ノードN2とを接続するエッジEと、言語モデル20に作成させてよい。作成制御手段153は、例えば、これらの関数や、ノードN及びエッジEを、送信ステップにて送信されるメタデータと通知ステップにて通知されるプロンプトとに基づき、言語モデル20に作成させてよい。送信ステップ及び通知ステップの詳細については後述する。
【0029】
判定手段154は、言語モデル20によって作成された第1ノードN1、第2ノードN2、及び、エッジEが、インターロック条件を満足するか否かを判定する手段である。インターロック条件とは、例えば、制御対象2の有する設備の安全性を担保するために設定される条件をいう。インターロック条件は、例えば、複数設定されてよい。制御対象2のアクチュエータは、制御対象2の有するセンサの検出結果がインターロック条件を全て満たす場合に、動作が停止するように制御されてもよい。
判定手段154は、例えば、言語モデル20によって作成された、第1ノードN1に対応する第1関数及び第2ノードN2に対応する第2関数を含むプログラムが、制御対象2におけるユーザの所望の機能を具備しつつ、インターロック条件による制御が適切に動作するか、を判定する。このことで、判定手段154は、作成システム1によって作成されるプログラムの信頼性を担保することに寄与する。
【0030】
表示制御手段155は、各種情報を表示部13に表示する手段である。具体的には、例えば、表示制御手段155は、言語モデル20によって作成される第1ノードN1、第2ノードN2、及び、エッジEをともに、表示部13に表示させる。表示制御手段155は、例えば、ユーザによるビジュアルプログラミングを可能とすることに寄与してもよい。すなわち、表示制御手段155は、例えば、ユーザが、表示部13に表示された第1ノードN1、第2ノードN2、及び、エッジEを、入力部12を介して選択又は操作することに伴い、これらの表示態様を適宜変化させてもよい。
【0031】
システム制御手段156は、第1関数及び第2関数を実行し、制御対象2を監視又は制御する手段である。本実施形態において、制御対象2であるセンサやアクチュエータは、システム制御手段156によって監視又は制御される。システム制御手段156は、複数のセンサ及び複数のアクチュエータを同時に監視又は制御してもよい。システム制御手段156は、例えば、通信部11を介してセンサやアクチュエータと通信することで、これらを監視又は制御してよい。
【0032】
言語モデル20は、第1関数及び第2関数と、第1ノードN1及び第2ノードN2と、第1ノードN1と第2ノードN2とを接続するエッジEと、を、送信手段152によって送信されるメタデータと通知手段151によって通知されるプロンプトとに基づき作成する。なお、言語モデル20による第1関数及び第2関数の作成は、記憶部14に予め記憶されているメタデータ及びプロンプトを読み出すことによって実現されても良い。
言語モデル20は、例えば、学習済みモデルである。この学習済みモデルは、例えば、インターネットサイト等の情報源にアクセスし、「常識知」などのワードを使って、様々なテキスト情報(含むソースコード)や画像情報を事前に学習させられることで、汎用的な知識を習得させられたものである。より詳細には、言語モデル20は、例えば、大規模言語モデルを含む。大規模言語モデルは、例えば、GPT-4(登録商標)、GPT-3.5-turbo、PaLM2、LaMDA2、LLaMa2、Claude 2.1、OpenCALM、Alpaca 7Bを含んでよい。言語モデル20は、例えば、WEBサーバ上に記憶されたものを用いてもよいし、制御装置10の記憶部14又は外部サーバ3に記憶されたものを用いてもよい。言語モデル20は、例えば、情報処理装置に記憶されていて、その情報処理装置によって動作させられてもよい。
以上の各構成により、本実施形態に係る作成システム1は構成される。
【0033】
(関数の詳細について)
次に、本実施形態に係る作成システム1によって作成される関数の詳細について説明する。上述のように、作成システム1が作成する関数は、第1関数と、第2関数と、を含む。また、本実施形態において、第1関数と第2関数とは、互いに関連付けられてよい。
本実施形態に係る作成システム1において、第1関数及び第2関数は、次のように作成される。すなわち、ユーザが、制御対象2における所望の機能を示すプロンプトやメタデータ、及び、制御対象2におけるインターロック条件を、制御装置10に入力する。制御装置10は、ユーザによって入力されたこれらの情報を、言語モデル20に送信する。すると、言語モデル20が、ユーザによって入力された各種情報から、必要な情報を適宜選択して、プログラムを作成する。
【0034】
このことで、言語モデル20によって、ユーザによって入力されていないロジックを適宜作成することができる。換言すれば、本実施形態において、制御装置10は、例えば、通知ステップ及び送信ステップにて通知される、プロンプトやインターロック条件に関する情報を用いて、第1関数、第2関数、及び関数の接続(組み合わせ)や、第1関数、第2関数とは異なる新規の関数を、言語モデル20に作成させてよい。
【0035】
本実施形態において、作成システム1によって作成されたプログラムは、例えば、制御装置10の記憶部14に保存されてもよいし、外部サーバ3に保存されてもよい。プログラムが外部サーバ3に保存される場合、作成されたプログラムは、複数の制御対象2の間で共有されてもよい。このことで、例えば、制御対象2であるプラントが複数の拠点を備える場合に、同様の監視又は制御を複数の拠点で行うことができる。
以下、本実施形態における第1関数及び第2関数について3例説明する。
【0036】
(関数の第1例)
関数の第1例において、第1関数は、ごみピットの煙又は火災を検知するための関数であり、第2関数は、アラームを発報するための関数である。この場合、第1関数と第2関数との関係は、次のようになる。すなわち、第1関数によって、制御対象2であるごみ処理場のごみピットから煙又は火災を検知するためのセンサから信号を取得する。そして、第1関数によって監視又は制御されるセンサが、煙又は火災を検知した場合には、第2関数によってアラームを発報するための設備を監視又は制御する。本実施形態において、アラームは、例えば、画像又は音声によるものであってもよいし、回転灯等によるものであってもよい。また、アラームは、ユーザに煙又は火災が検知された旨を伝えるものであれば任意のものであってよい。例えば、アラームとして、ユーザが使用する端末にメールが送信されてもよい。
【0037】
図4は、関数の第1例に係るプロンプトの例である。
図4に示すプロンプトは、「エリア1のカメラ映像から煙を検出したらポンプ1を停止させて、管理者にメールを送信せよ。」といったものである。エリア1とは、例えば、制御対象2であるごみ処理場のごみピットであってもよい。また、アラームを発報するとは、管理者(ユーザ)にメールを送ることであってもよい。
このように入力されたプロンプトは、後述する通知ステップにおいて、通知手段151によって言語モデル20に通知される。換言すれば、関数の第1例において、通知ステップにて言語モデル20に通知されるプロンプトは、ごみピットの煙又は火災が検知される場合にアラームを発報させること、を示す。
【0038】
図5は、言語モデル20が作成する、関数の第1例に係るノードN及びエッジEを示す図である。
図5に示す例では、複数のノードNは、第1設定用テキスト入力ノードNa1と、カメラストリームノードNa2と、コード入力ノードNa3と、第2設定用テキスト入力ノードNa4と、制御出力ノードNa5と、制御処理実行ノードNa6と、第3設定用テキスト入力ノードNa7と、メール生成ノードNa8と、メール送信ノードNa9と、を含む。
【0039】
第1設定用テキスト入力ノードNa1は、映像を取得する対象となるカメラのURLを入力するためのAPIに対応したノードである。ユーザは、例えば、第1設定用テキスト入力ノードNa1内のテキストボックスにURLを入力することで、映像を取得する対象となるカメラを指定してよい。
【0040】
カメラストリームノードNa2は、第1設定用テキスト入力ノードNa1からカメラのURLを取得し、該当するカメラからストリーム画像を取得するためのAPIに対応したノードである。カメラストリームノードNa2によって取得されたストリーム画像は、制御処理実行ノードNa6に送られてよい。
【0041】
コード入力ノードNa3は、第1例に係る第1関数及び第2関数に係るソースコードを出力するためのAPIに対応したノードである。コード入力ノードNa3によって出力されたソースコードは、制御処理実行ノードNa6に送られてよい。
【0042】
第2設定用テキスト入力ノードNa4は、制御するアクチュエータに対応するテキストを入力するためのAPIに対応したノードである。ユーザは、例えば、第2設定用テキスト入力ノードNa4内のテキストボックスに、アクチュエータのIDを入力することで、制御するアクチュエータを指定してよい。本実施形態では、第2設定用テキスト入力ノードNa4には、例えば、ポンプのIDや、ブザーのIDが入力されてよい。
【0043】
制御出力ノードNa5は、第2設定用テキスト入力ノードNa4から制御するアクチュエータのIDを取得し、該当するアクチュエータを制御するためのAPIに対応したノードである。
制御出力ノードNa5は、例えば、制御処理実行ノードNa6から、煙を検知した旨を受信してよい。制御出力ノードNa5は、煙が検知された旨を受信した際に、適宜アクチュエータを制御してよい。
例えば、第2設定用テキスト入力ノードNa4にポンプのIDが入力された場合、制御出力ノードNa5は、煙が検知された旨を受信した際に、入力されたIDに対応するポンプを制御してよい。具体的には、制御出力ノードNa5によってポンプから放水されることで、消火が行われてもよい。
また、例えば、第2設定用テキスト入力ノードNa4にブザーのIDが入力された場合、制御出力ノードNa5は、煙が検知された旨を受信した際にブザーを制御してよい。具体的には、制御出力ノードNa5によってブザーが鳴動されることで、ユーザに煙が発生した旨が通知されてもよい。
【0044】
制御処理実行ノードNa6は、第1例に係る第1関数及び第2関数を実行するためのAPIに対応したノードである。制御処理実行ノードNa6は、コード入力ノードNa3によって出力されたソースコードを取得し、取得したソースコードに係るプログラムを実行する。このことで、第1例においては、カメラ画像から煙を検知する処理が実行される。
上述の処理によってカメラ画像から煙が検知された場合、制御処理実行ノードNa6は、例えば、煙が検知された旨を、制御出力ノードNa5やメール生成ノードNa8に送信してよい。
【0045】
第3設定用テキスト入力ノードNa7は、メール生成ノードNa8への指示を入力するためのAPIに対応したノードである。ユーザは、例えば、第3設定用テキスト入力ノードNa7内のテキストボックスに、「エリア1内の発煙状況について状況を詳細に説明するメールを書いてください。」等といった自然言語を入力することで、メール生成ノードNa8への指示を入力してよい。
【0046】
メール生成ノードNa8は、第3設定用テキスト入力ノードNa7から、ユーザが入力した指示を取得し、管理者に送信するためのメールの文章を出力するためのAPIに対応したノードである。メール生成ノードNa8は、例えば、制御処理実行ノードNa6から煙が検知された旨を受信した際に、メールの文章を出力する。メール生成ノードNa8は、出力したメールの文章を、メール送信ノードNa9に送信してよい。
【0047】
メール送信ノードNa9は、メール生成ノードNa8からメールの文章を取得し、管理者に送信するためのAPIに対応したノードである。メール送信ノードNa9は、メール生成ノードNa8からメールの文章が送信されたことを受けて、管理者にメールを送信してよい。
【0048】
(関数の第2例)
関数の第2例において、第1関数は、タンクの水位を検知するための関数であり、第2関数は、ポンプを動作させるための関数である。以下の説明において、タンクは、反応器に送水する冷却水を貯蔵するための一次貯蔵タンクであるとする。タンクの水位とは、タンク中に貯蔵される冷却水の水位であるとする。
このような関数の第2例において、第1関数と第2関数との関係は、次のようになる。すなわち、第1関数によって、制御対象2であるプラントが備えるタンクの水位を検知するためのセンサを監視する。そして、第1関数によって制御されるセンサが検知するタンクの水位に応じて、第2関数によって適宜ポンプを制御する。本実施形態において、ポンプは、第2関数による制御によって次のように動作する。
すなわち、例えば、ポンプは、タンクの水位が高くなった場合に動作を開始し、反応器に冷却水を送水させる。ポンプは、タンクの水位が所定水位より低くなった場合には、ポンプの故障を抑えるために動作を停止してもよい。
【0049】
図6は、関数の第2例に係るプロンプトの例である。
図6に示すプロンプトは、「ポンプ1をON/OFFする機能を実現せよ」といったものである。ポンプ1とは、例えば、第2関数によって制御されるポンプのことであってよい。このようなプロンプトは、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて文章を入力してもよいし、音声認識装置である入力部12を用いて、口頭で文章を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって文章が生成されてもよい。
このように入力されたプロンプトは、通知ステップにおいて、通知手段151によって言語モデル20に通知される。換言すれば、関数の第2例において、通知ステップにて言語モデル20に通知されるプロンプトは、タンクの水位が高くなった場合にポンプの動作を開始させることや、タンクの水位が所定水位より低くなった場合にポンプの動作を停止させること、を示してよい。
【0050】
図7は、関数の第2例に係る機能仕様書の第1図である。
図8は、関数の第2例に係る機能仕様書の第2図である。
図9は、関数の第2例に係る機能仕様書の第3図である。
図7図9に示す機能仕様書は、通知ステップにおいて、上述のプロンプトとともに言語モデル20に通知される。換言すれば、通知ステップにて言語モデル20に通知されるプロンプトは、制御対象2を監視又は制御するための機能仕様書を含んでもよい。
言語モデル20は、図6に示すプロンプトに加えて、図7図9に示す機能仕様書に基づき第1関数及び第2関数を作成してよい。このことで、よりユーザの意図に沿った第1関数及び第2関数を作成することに寄与できるようにしてもよい。
図7図9に示す機能仕様書は、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて文章を入力してもよいし、音声認識装置である入力部12を用いて、口頭で文章を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって文章が生成されてもよい。
【0051】
図7図9に示す機能仕様書は、冒頭に「# Functional Description for Pump 1」と記載されている。当該記載は、図7図9に示す機能仕様書が、ポンプに関する機能仕様書であることを示している。
図7図9に示すように、関数の第2例に係る機能仕様書は、「## Overview」「## Control Modes」「### Manual Control」「### Automatic Control」「## Detailed Functional Description」「### Automatic Operation Sequence」「### Manual Operation」「### Safety Interlocks」「## Maintenance and Diagnostics」の見出しが設けられている。なお、これらの見出しにおいて、「#(シャープ)」は見出しの階層を示している。例えば、#が3つの見出しは、#が2つの見出しの章より1階層下であることを示している。#が3つの見出しに係る記載は、直前に位置する#が2つの見出しの章に含まれる記載である。
【0052】
「## Overview」には、ポンプに関する機能仕様書の概要が示されている。図7に示す例では、「## Overview」には、例えば、ポンプが設けられたプラントの概要、プラントにおけるポンプの機能、ポンプの動作の形態等についての説明がなされている。
【0053】
「## Control Modes」には、プラントにおけるポンプの動作の形態についての詳細が示されている。図7に示す例では、「## Control Modes」は、「### Manual Control」と、「### Automatic Control」と、を含む。
【0054】
「### Manual Control」には、ポンプをユーザが手動で動作させることについての詳細が示されている。本実施形態において、ユーザがポンプを手動で動作させるとは、ユーザが、ポンプが動作するためのスイッチを手動で切り替えることであってよい。
図7に示す例では、「### Manual Control」に係るスイッチとして、「Manual/Automatic Mode Switch」と、「Manual ON/OFF Buttons」と、「Emergency Stop Button」と、が設けられている。なお、図7に示す例では、これらのスイッチはトグルスイッチであるが、これに限らず、スイッチの形態は任意のものであってよい。
「Manual/Automatic Mode Switch」は、ポンプが手動又は自動のいずれで動作するかを切り替えるためのスイッチである。
「Manual ON/OFF Buttons」は、ポンプが手動で動作する場合に、ポンプの始動又は停止を指示するためのスイッチである。
「Emergency Stop Button」は、動作中のポンプを緊急停止させるためのボタンである。
【0055】
「### Automatic Control」には、ポンプが自動で動作することについての詳細が示されている。本実施形態において、ポンプが自動で動作するとは、ポンプが、ユーザによる指示を介さず、関数による制御によって動作することであってよい。ポンプが自動で動作する際、ポンプは、以下のシーケンスによって、上述のように、タンクの水位が高くなった場合に動作を開始し、また、タンクの水位が低くなった場合にポンプの動作を停止してよい。
すなわち、図7に示す例では、「### Automatic Control」に係るシーケンスは、「Level Sensors」と、「Automatic ON/OFF Sequence」と、「Interlock Function」と、を含む。
「Level Sensors」は、タンクの水位をセンサによって検知するためのシーケンスである。
「Automatic ON/OFF Sequence」は、「Level Sensors」によって検知されるタンクの水位が下限の閾値(L)を下回った場合にポンプの動作を停止させ、上限の閾値(H)に至った場合にポンプの動作を開始させるためのシーケンスである。
「Interlock Function」は、「Level Sensors」によって検知されるタンクの水位が極めて低い水位(LL)、すなわち所定水位、になった場合にポンプを停止させることで、ポンプの故障を抑えて安全性を確保するためのシーケンスである。
【0056】
「## Detailed Functional Description」には、ポンプの制御に関するより詳細な内容が示されている。図8に示す例では、「## Detailed Functional Description」は、「### Automatic Operation Sequence」と、「### Manual Operation」と、を含む。
【0057】
「### Automatic Operation Sequence」には、ポンプが自動で動作するように制御することに関する各種シーケンスが示されている。図8に示す例では、「### Automatic Operation Sequence」は、「Initialization」と、「Level Monitoring」と、「Pump Stop」と、「Pump Operation」と、「Pump Start」と、を含む。
【0058】
「Initialization」は、システム制御手段156が、センサとポンプの状態を確認するシーケンスである。このことで、センサによる検出が適切に行えるか判定するとともに、ポンプを制御可能な状態にあるかを判定する。このことで、ポンプの自動での動作が継続可能か否かを判定した上で、ポンプの制御を実行できるようにする。
「Level Monitoring」は、センサによってタンクの水位を継続的に計測するためのシーケンスである。
「Pump Stop」は、タンクの水位が低くなった場合に、ポンプの動作を停止させるためのシーケンスである。システム制御手段156は、タンクの水位が下限の閾値(L)を下回った場合に、「Pump Stop」シーケンスを開始する。具体的には、ポンプを動作するためのモータへの通電を停止する。すると、ポンプからシステム制御手段156への、ポンプが動作中であることを確認するための信号の送信が停止される。
「Pump Operation」は、ポンプによってタンク内の冷却水を反応器に移動させるためのシーケンスである。
「Pump Start」は、タンクの水位が高くなった場合に、ポンプの動作を開始させるためのシーケンスである。システム制御手段156は、タンクの水位が上限の閾値(H)に至った場合に、「Pump Start」シーケンスを開始する。具体的には、ポンプを動作するためのモータへの通電を開始する。すると、ポンプから、ポンプが動作中であることを確認するための信号がシステム制御手段156に送信される。
【0059】
「### Manual Operation」には、ポンプをユーザが手動で動作させることについてのより詳細な内容が示されている。図8に示す例では、「### Manual Operation」は、「Mode Selection」と、「Pump Start」と、「PUMP Operation」と、「Pump Stop」と、を含む。
【0060】
「Mode Selection」には、ユーザが、ポンプを手動で動作させることを選択することについて示されている。図8に示す例では、ユーザが、上述の「Manual/Automatic Mode Switch」を用いて、ポンプを手動で動作させることを選択することが示されている。
「Pump Start」には、ユーザがポンプの動作を開始させることについて示されている。ユーザは、ポンプの動作を開始させるためのスイッチを押すことで、ポンプの動作を開始させる。スイッチが押されると、ポンプを動作するためのモータへの通電が開始される。すると、ポンプから、ポンプが動作中であることを確認するための信号がシステム制御手段156に送信される。
「PUMP Operation」には、ポンプによってタンク内の冷却水を反応器に移動させることについて示されている。ユーザは、手動による操作によって、ポンプを用いてタンク内の冷却水を反応器に移動させる。
「Pump Stop」には、ユーザがポンプの動作を停止させることについて示されている。ユーザは、ポンプの動作を停止させるためのスイッチを押すことで、ポンプの動作を停止させる。スイッチが押されると、ポンプを動作するためのモータへの通電が停止される。すると、ポンプからシステム制御手段156への、ポンプが動作中であることを確認するための信号の送信が停止される。
【0061】
「### Safety Interlocks」には、ポンプのインターロック条件についての内容が示されている。関数の第2例において、ポンプは、「### Safety Interlocks」に示されるインターロック条件に基づき、動作を停止する。図8に示す例では、「### Safety Interlocks」は、「Low-Level Interlock (LL)」と、「Emergency Stop」と、を含む。
【0062】
「Low-Level Interlock (LL)」は、タンクの水位が極めて低い水位(LL)、すなわち所定水位を下回った場合にポンプを自動で停止させ、ポンプの故障を抑えて安全性を確保するためのシーケンスである。システム制御手段156は、タンクの水位が所定水位を下回った場合に、「Low-Level Interlock (LL)」シーケンスを開始する。具体的には、ポンプを動作するためのモータへの通電を直ちに停止する。そして、作業者(ユーザ)に水位の低下を知らせるためのアラームを発報する。
「Emergency Stop」は、ポンプを非常停止させるためのシーケンスである。ユーザは、非常停止ボタンを押すことで、常にポンプを非常停止させることが可能である。ユーザによって非常停止ボタンが押されると、ポンプを動作するためのモータへの通電が直ちに停止される。この制御は、ポンプを動作させるためのいずれの制御よりも優先される。ポンプが非常停止される際、ポンプを停止させるための制御信号は、その他の全ての制御信号に上書きされてよい。また、ユーザによって非常停止ボタンが押されると、作業者(ユーザ)にその旨を知らせるためのアラームが発報される。
【0063】
「## Maintenance and Diagnostics」には、ポンプ及びシステム制御手段156の、メンテナンス及び診断に関する内容が示されている。図9に示す例では、「## Maintenance and Diagnostics」は、「Routine Checks」と、「Diagnostics」と、「Alarm System」と、を含む。
【0064】
「Routine Checks」には、ポンプ及びシステム制御手段156の確実な動作を保証するために、定期的な点検及び保守を行うことが示されている。
「Diagnostics」には、システム制御手段156が、ポンプやシステム制御手段156の故障を検出し、作業者(ユーザ)に状態に関する情報を提供するための診断機能を含むことが示されている。
「Alarm System」には、タンクの水位低下やポンプの故障といった異常を、作業者(ユーザ)に通知するためのアラーム機能が備えられることが示されている。
図7図9に示す機能仕様書には、上述の内容が記載されている。また、図7図9に示す機能仕様書の末尾には、第1関数及び第2関数が上述の制御機能を実装することによる効果が記載されていてよい。例えば、図7図9に示す例では、第1関数及び第2関数が上述の制御機能を実装することで、制御対象2であるプラントがポンプの安全かつ効率的な動作を保証するといった事等が記載されていてよい。
【0065】
図10は、関数の第2例に係る機能仕様書を半構造化した例の第1図である。
図11は、関数の第2例に係る機能仕様書を半構造化した例の第2図である。
図12は、関数の第2例に係る機能仕様書を半構造化した例の第3図である。
図10図12に示す半構造化された機能仕様書は、図7図9に示す機能仕様書の内容に基づき、言語モデル20が第1関数及び第2関数を作成できるようにするために用いられる。図10図12に示すように、半構造化された機能仕様書は、プログラム言語の関数として記載されてよい。
このように半構造化された機能仕様書は、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて言語を入力してもよいし、音声認識装置である入力部12を用いて、口頭で言語を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって言語が生成されてもよい。
【0066】
図10図12に示す例では、冒頭に“pump_1”と記載されており、半構造化された機能仕様書がポンプの監視又は制御に関するものであることを示している。
また、図10図12に示す例では、冒頭の記載に続き、“id”: “pump_1”, “deviceName”: “Pump 1”,と記載されている。これらの記載は、それぞれ、言語モデル20によって第1関数及び第2関数が作成される際に、関数において認識されるポンプの識別子が“pump_1”であることと、及び、第1関数及び第2関数において、ポンプの名称が“Pump 1”として認識されること、を示している。
【0067】
図10図12に示す例では、前述の内容に続き、“controlModes”, “safetyInterlocks”, “maintenanceAndDiagnostics”の関数が設けられている。これらの関数は、以下に述べるように、図7図9に示す機能仕様書の内容に対応していてよい。
【0068】
“controlModes”は、ポンプを手動又は自動のいずれで動作させるかを決定するための関数である。図10及び図11に示す例では、“controlModes”は、“manual”と、“automatic”と、を含む。
【0069】
“manual”は、ポンプをユーザが手動で動作させる場合についての関数である。“manual”は、例えば、上述した図7図9に示す機能仕様書の「♯♯♯ Manual Operation」に対応していてよい。図10に示す例では、“manual”は、“modeSwitch”と、“buttons”と、“emergencyStop”と、を含む。
【0070】
“modeSwitch”は、“type”: “toggle”とあるように、toggle型の関数である。また、“modeSwitch”は、“description”: “Selects between manual and automatic operation modes”とあるように、手動又は自動のいずれかを選択するための関数である。
すなわち、“modeSwitch”は、トグル処理によって、ポンプを手動又は自動のいずれで動作させるかを切り替える。
【0071】
“buttons”は、“manualOn”と、“manualOff”と、を含む。“manualOn”及び“manualOff”は、それぞれ“type”: “button”とあるように、button型の関数である。また、“manualOn”は、“description”: “Manually starts the pump”とあるように、手動の操作によってポンプの動作を開始させるための関数である。“manualOff”は、“description”: “Manually stops the pump”とあるように、手動の操作によってポンプの動作を停止させるための関数である。
すなわち、“manualOn”と“manualOff”とを含む“buttons”は、ユーザがボタンを押すことによって、ポンプの動作を開始又は停止する。なお、ユーザが押すボタンは、制御対象2であるプラントに設けられたスイッチボタンであってもよいし、制御装置10の表示部13に表示された画像であってもよい。ボタンが画像である場合、ボタンを押すとは、ユーザが、ボタンをクリック又はタップすることによって選択することであってよい。
【0072】
“emergencyStop”は、“type”: “button”とあるように、button型の関数である。また、“emergencyStop”は、“description”: “Immediately stops the pump when pressed”とあるように、ボタンが押された場合に直ちにポンプを停止させるための関数である。
すなわち、“emergencyStop”は、ユーザがボタンを押すことによって、ポンプの動作を直ちに停止する。なお、ユーザが押すボタンの形態は、上述の“buttons”において説明したものと同様であってよい。
【0073】
“automatic”は、ポンプを自動で動作させる場合についての関数である。“automatic”は、例えば、上述した図7図9に示す機能仕様書の「♯♯♯ Automatic Operation Sequence」に対応していてよい。図11に示す例では、“automatic”は、“sequence”を含む。
【0074】
“sequence”は、ポンプを自動で動作させるための各種シーケンスを含む。図11に示す例では、“sequence”は、“Initialization”と、“Level Monitoring”と、“Pump Start”と、“Pump Operation”と、“Pump Stop”と、を含む。
【0075】
“Initialization”は、上述した図7図9に示す機能仕様書の「Initialization」に対応する。“Initialization”は、“description”: “Checks the status of all sensors and the pump”とあるように、センサとポンプの状態を確認するシーケンスである。
【0076】
“Level Monitoring”は、上述した図7図9に示す機能仕様書の「Level Monitoring」に対応する。“Level Monitoring”は、“description”: “Continuously monitors the fluid level in the primary storage tank using level sensors”とあるように、センサによってタンクの水位を継続的に計測するためのシーケンスである。
“Level Monitoring”においては、“sensors”: [“level_sensor_1”]とあるように、level_sensor_1と称される水位センサから、タンクの水位の検知結果を取得する。
【0077】
“Pump Start”は、上述した図7図9に示す機能仕様書の「Pump Start」に対応する。“Pump Start”は、“description”: “Starts the pump when the fluid level reaches the upper threshold(H)”とあるように、タンクの水位が上限の閾値(H)に至った場合に、ポンプの動作を開始させるためのシーケンスである。
“Pump Start”においては、“threshold”: “H”とあるように、閾値として“H”が設定されている。そして、“actions”: [“Energize pump motor”, “Send confirmation signal”]とあるように、“Pump Start”のシーケンスが開始されると、ポンプに通電されるとともに、ポンプが動作中であることを確認するための信号がシステム制御手段156に送信される。
【0078】
“Pump Operation”は、上述した図7図9に示す機能仕様書の「Pump Operation」に対応する。“Pump Operation”は、“description”: “Transfers coolant fluid from the primary storage tank to the reactor unit“とあるように、ポンプによってタンク内の冷却水を反応器に移動させるためのシーケンスである。
【0079】
“Pump Stop”は、上述した図7図9に示す機能仕様書の「Pump Stop」に対応する。“Pump Stop”は、“description”: “Stops the pump when the fluid level falls below the lower threshold (L)”とあるように、タンクの水位が下限の閾値(L)を下回った場合に、ポンプの動作を停止させるためのシーケンスである。
“Pump Stop”においては、“threshold”: “L”とあるように、閾値として“L”が設定されている。そして、“actions”: [“De-energize pump motor”, “Send confirmation signal”とあるように、“Pump Stop”のシーケンスが開始されると、ポンプへの通電が停止されるとともに、ポンプが動作を停止したことを確認するための信号がシステム制御手段156に送信されてよい。なお、ポンプが動作を停止したことを確認するための信号が送信されることに代えて、ポンプが動作中であることを確認するための信号の送信が停止されてもよい。
【0080】
“safetyInterlocks”は、上述した図7図9に示す機能仕様書の「### Safety Interlocks」に対応する。“safetyInterlocks”は、“Low-Level Interlock (LL)”と、“Emergency Stop”と、を含む。
【0081】
“Low-Level Interlock (LL)”は、上述した図7図9に示す機能仕様書の「Low-Level Interlock (LL)」に対応する。“Low-Level Interlock (LL)”は、“description”: “Automatically stops the pump if the fluid level falls below the critically low level (LL)”とあるように、タンクの水位が所定水位を下回った場合に、ポンプを自動で停止させるためのシーケンスである。
“Low-Level Interlock (LL)”においては、“threshold”: “LL”とあるように、閾値として“LL”が設定されている。そして、“actions”: [“De-energize pump motor”, “Trigger alarm”]とあるように、“Low-Level Interlock (LL)”のシーケンスが開始されると、ポンプへの通電が停止されるとともに、アラームが発報される。
【0082】
“Emergency Stop”は、上述した図7図9に示す機能仕様書の「Emergency Stop」に対応する。“Emergency Stop”は、“description”: “Stops the pump immediately when the emergency stop button is pressed”とあるように、非常停止ボタンが押された場合に、ポンプを非常停止させるためのシーケンスである。
“Emergency Stop”は、“actions”: [“De-energize pump motor”, “Override all control signals”, “Trigger alarm”]とあるように、非常停止ボタンが押されると、ポンプへの通電が停止され、ポンプを停止させるための制御信号がその他の全ての制御信号に上書きされるとともに、アラームが発報される。
【0083】
“maintenanceAndDiagnostics”は、上述した図7図9に示す機能仕様書の「## Maintenance and Diagnostics」に対応する。“maintenanceAndDiagnostics”は、“routineChecks”と、“diagnostics”と、“alarmSystem”と、を含む。
【0084】
“routineChecks”は、上述した図7図9に示す機能仕様書の「Routine Checks」に対応する。“routineChecks”は、“description”: “Regular inspections and maintenance of the pump and control system”とあるように、ポンプ及びシステム制御手段156の定期的な点検及び保守を行うことが示されている。
【0085】
“diagnostics”は、上述した図7図9に示す機能仕様書の「Diagnostics」に対応する。“diagnostics”は、“description”: “Detects faults and provides status information to the operator”とあるように、ポンプやシステム制御手段156の故障を検出し、作業者(ユーザ)に状態に関する情報を提供することが示されている。
【0086】
“alarmSystem”は、上述した図7図9に示す機能仕様書の「Alarm System」に対応する。“alarmSystem”は、“description”: “Notifies the operator of abnormal conditions, such as low fluid levels or pump malfunctions”とあるように、タンクの水位低下やポンプの故障といった異常を、作業者(ユーザ)に通知することが示されている。
図10図12に示す半構造化された機能仕様書には、上述の内容が記載されている。
【0087】
図13は、関数の第2例における、プラントから情報を収集する関数に与える入力のスキーマの例の第1図である。
図14は、関数の第2例における、プラントから情報を収集する関数に与える入力のスキーマの例の第2図である。
図13及び図14に示すスキーマは、上述した図7図9に示す機能仕様書に係るポンプの監視又は制御に必要な各種情報を、プラントから収集する関数に与える入力のスキーマである。図13及び図14に示すスキーマは、第1関数及び第2関数それぞれのメタデータである。図13及び図14に示すスキーマは、後述する送信ステップにおいて、送信手段152によって言語モデル20に送信される。
図13及び図14に示すスキーマは、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて言語を入力してもよいし、音声認識装置である入力部12を用いて、口頭で言語を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって言語が生成されてもよい。
【0088】
図13及び図14に示す例では、冒頭に“$schema”: “http://json-schema.org/draft-07/schema♯”と記載されており、スキーマの形式を示している。
また、図13及び図14に示す例では、冒頭の記載に続き“type”: “object”と記載されている。この記載は、図13及び図14に示すスキーマが、object型の関数であることを示している。
【0089】
図13及び図14に示すスキーマは、前述の内容に続き、“properties”, “required”の関数が設けられている。
“properties”は、第1関数及び第2関数の作成に必要な各種情報を取得する。“properties”は、“sensors”と、“actuators”と、を含む。
【0090】
“sensors”は、第1関数及び第2関数の作成に必要な、センサの情報を取得するための関数である。“sensors”は、“type”: “array”とあるように、array型の関数である。“sensors”は、“items”を含む。
【0091】
“items”は、情報を取得するためのセンサを特定するための識別情報や、特定されたセンサが検知した各種情報を、データ配列として出力するための関数である。“items”は、“type”: “object”とあるように、object型の関数である。“items”は、“properties”と、“required”と、を含む。
【0092】
“properties”は、情報を取得するためのセンサを特定するための識別情報や、特定されたセンサが検知した各種情報を取得する関数である。“properties”は、“id”, “deviceName”, “type”, “value”, “unit”, “timestamp”, “description”,を含む。
【0093】
“id”は、センサの識別子を取得する部分である。“id”は、“type”: “string”とあるようにstring型であり、センサの識別子を文字列として取得する。
“deviceName”は、センサの名称を取得する部分である。“deviceName”は、“type”: “string”とあるようにstring型であり、センサの名称を文字列として取得する。
【0094】
“type”は、センサが検知する値の内容についての情報を取得する部分である。センサが検知する値の内容とは、例えば、「温度」「圧力」等といった情報である。“type”は、“type”: “string”とあるようにstring型であり、センサが検知する値の内容についての情報を文字列として取得する。
“value”は、センサが検知する値を取得する部分である。“value”は、“type”: “number”とあるようにnumber型であり、センサが検知する値を数値として取得する。
【0095】
“unit”は、センサが検知する値の単位を取得する部分である。センサが検知する値の単位とは、例えば、「℃」「kPa」等といった情報である。“unit”は、“type”: “string”とあるようにstring型であり、センサが検知する値の単位を文字列として取得する。
“timestamp”は、センサが値を検知した時刻に関する情報を取得する部分である。“timestamp”は、“type”: “string”,“format”: “date-time”とあるように、string型の関数であり、センサが値を検知した時刻に関する情報を文字列として取得する。
【0096】
“description”は、センサの機能についての情報を取得する部分である。センサの機能についての情報とは、例えば、上述した図7図9に示す半構造化された機能仕様書に含まれる、「description」の内容である。具体的には、例えば、センサがタンクの水位を計測する機能についての情報は、上述した“Level Monitoring”シーケンスにおける“description”: “Continuously monitors the fluid level in the primary storage tank using level sensors”である。
“description”は、“type”: “string”とあるようにstring型であり、センサの機能についての情報を文字列として取得する。
【0097】
“required”は、[“id”, “deviceName”, “type”, “value”, “unit”, “timestamp”,“description”]とあるように、上述した“properties”によって取得された各種情報を、データ配列として出力する部分である。
以上の内容により、“sensors”関数が構成される。
【0098】
“actuators”は、第1関数及び第2関数の作成に必要な、アクチュエータの情報を出力するための関数である。“actuators”は、“type”: “array”とあるように、array型の関数である。“actuators”は、“items”を含む。
【0099】
“items”は、情報を出力する対象となるアクチュエータを特定するための識別情報や、特定されたアクチュエータを動作させるために必要な各種情報を、データ配列として出力するための関数である。“items”は、“type”: “object”とあるように、object型の関数である。“items”は、“properties”と、“required”と、を含む。
【0100】
“properties”は、情報を出力する対象となるアクチュエータを特定するための識別情報や、特定されたアクチュエータを動作させるために必要な各種情報を取得する関数である。“properties”は、“id”, “deviceName”, “type”, “status”, “timestamp”, “description”,を含む。
【0101】
“id”は、アクチュエータの識別子を取得する部分である。“id”は、“type”: “string”とあるようにstring型であり、アクチュエータの識別子を文字列として取得する。
“deviceName”は、アクチュエータの名称を取得する部分である。“deviceName”は、“type”: “string”とあるようにstring型であり、アクチュエータの名称を文字列として取得する。
【0102】
“type”は、アクチュエータの種類についての情報を取得する部分である。アクチュエータの種類についての情報とは、例えば、「ポンプ」「バルブ」「コンベア」といった情報である。“type”は、“type”: “string”とあるようにstring型であり、アクチュエータの種類についての情報を文字列として取得する。
【0103】
“status”は、アクチュエータの状態についての情報を取得する部分である。アクチュエータの状態についての情報とは、例えば、アクチュエータが動作又は停止していることを示す「ON」「OFF」や、アクチュエータが備える弁の開閉状態を示す「OPENED」「CLOSED」や、アクチュエータの制御状態を示す「AUTO」「MANUAL」といった情報である。“status”は、“type”: “string”とあるようにstring型であり、アクチュエータの状態についての情報を文字列として取得する。
【0104】
“timestamp”は、アクチュエータの状態を検知した時刻に関する情報を取得する部分である。“timestamp”は、“type”: “string”,“format”: “date-time”とあるように、string型の関数であり、アクチュエータの状態を検知した時刻に関する情報を文字列として取得する。
【0105】
“description”は、アクチュエータの機能についての情報を取得する部分である。アクチュエータの機能についての情報とは、例えば、上述した図7図9に示す半構造化された機能仕様書に含まれる、「description」の内容である。具体的には、例えば、ポンプがタンク内の冷却水を反応器に移動させる機能についての情報は、上述した“Pump Operation”シーケンスにおける“description”: “Transfers coolant fluid from the primary storage tank to the reactor unit“である。
“description”は、“type”: “string”とあるようにstring型であり、アクチュエータの機能についての情報を文字列として取得する。
【0106】
“required”は、[“id”, “deviceName”, “type”, “status”, “timestamp”, “description”]とあるように、上述した“properties”によって取得された各種情報を、データ配列として出力する部分である。
以上の内容により、“actuators”関数が構成される。
【0107】
“required”は、図13及び図14に示すスキーマによって取得される、上述したセンサ及びアクチュエータに関する情報を、データ配列としてまとめて出力する関数である。“required”は、[“sensors”, “actuators”]とあるように、上述した“sensors”関数及び“actuators”関数によって取得された情報のそれぞれを、データ配列として出力する。
【0108】
図15は、図13及び図14に示すスキーマによって取得される各種情報を含むデータ配列の第1図である。
図16は、図13及び図14に示すスキーマによって取得される各種情報を含むデータ配列の第2図である。
図15及び図16に示すデータ配列は、図13及び図14に示すスキーマに各種情報を格納するための関数である。図15及び図16に示すデータ配列は、第1関数及び第2関数それぞれのメタデータである。図15及び図16に示すデータ配列は、後述する送信ステップにおいて、送信手段152によって言語モデル20に送信される。
図15及び図16に示すデータ配列は、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて言語を入力してもよいし、音声認識装置である入力部12を用いて、口頭で言語を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって言語が生成されてもよい。
【0109】
図15及び図16に示すデータ配列は、“sensors”と、“actuators”と、を含む。図15及び図16に示すデータ配列における“sensors”及び“actuators”は、それぞれ、図13及び図14に示すスキーマにおける“properties”に含まれる“sensors”及び“actuators”に対応する。
【0110】
“sensors”は、センサの情報を格納する。図15に示す例では、“sensors”は、“id”, “deviceName”, “type”, “value”, “unit”, “timestamp”, “description”,を含む配列を4つ含む。
制御対象2を監視又は制御するために必要な“sensors”の数に応じて、配列の数を変更してもよい。
【0111】
図15に示す“sensors”における上から1番目の配列は、“id”: “temp_sensor_1”,“deviceName”: “Temperature Sensor 1”,とあるように、温度センサについての情報が格納されている。また、“type”: “temperature”,“value”: 25.3,“unit”: “C”, “timestamp”: “2024-07-30T12:00:00Z”とあるように、当該温度センサは温度を測定するものであり、“timestamp”に示される時刻において温度センサが測定した温度が25.3℃であることを示している。そして、“description”: “Measures the temperature in the main reactor”とあるように、当該温度センサは、主反応器(main reactor)内の温度を測定する。
【0112】
図15に示す“sensors”における上から2番目の配列は、“id”: “pressure_sensor_1”,“deviceName”: “Pressure Sensor 1”,とあるように、圧力センサについての情報が格納されている。また、“type”: “pressure”,“value”: 101.5,“unit”: “kPa”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、当該圧力センサは圧力を測定するものであり、“timestamp”に示される時刻において圧力センサが測定した圧力が101.5kPaであることを示している。そして、 “description”: “Monitors the pressure in the primary pipeline”とあるように、当該圧力センサは、一次パイプライン(primary pipeline)内の圧力を測定する。
【0113】
図15に示す“sensors”における上から3番目の配列は、“id”: “flow_meter_3”,“deviceName”: “Flow Meter 3”,とあるように、流量計についての情報が格納されている。また、“type”: “flow”,“value”: 500,“unit”: “L/min”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、当該流量計は流量を測定するものであり、“timestamp”に示される時刻において流量計が測定した流量が500L/minであることを示している。そして、“description”: “Measures the flow rate of the coolant”とあるように、当該流量計は、冷却水(coolant)の流量を測定する。
【0114】
図15に示す“sensors”における上から4番目の配列は、“id”: “liquid_level_sensor_4”,“deviceName”: “Liquid Level Sensor 4”,とあるように、水位センサについての情報が格納されている。また、“type”: “liquid_level”,“value”: 75.5,“unit”: “%”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、当該水位センサは水位を測定するものであり、“timestamp”に示される時刻において水位センサが測定した水位が満水時の75.5%であることを示している。そして、 “description”: “Indicates the liquid level in the storage tank”とあるように、当該水位センサは、タンク(storage tank)の水位を測定する。
【0115】
“actuators”は、アクチュエータの情報を格納する。図16に示す例では、“actuators”は、“id”, “deviceName”, “type”, “status”, “timestamp”, “description”,を含む配列を6つ含む。制御対象2を監視又は制御するために必要な“actuators”の数に応じて、配列の数を変更してもよい。
【0116】
図16に示す“actuators”における上から1番目の配列は、“id”: “pump_1”,“deviceName”: “Pump 1”,“type”: “pump”,とあるように、ポンプについての情報が格納されている。また、 “status”: “ON”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、“timestamp”に示される時刻においてポンプが動作中(ON)であることを示している。そして、“description”: “Transfers the liquid from the main tank to the processing unit”とあるように、当該ポンプは、タンク(main tank)から処理ユニット(processing unit)に液体を移動させることを示している。
【0117】
図16に示す“actuators”における上から2番目の配列は、“id”: “valve_2”,“deviceName”: “Valve 2”,“type”: “valve”,とあるように、バルブについての情報が格納されている。また、“status”: “CLOSED”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、“timestamp”に示される時刻においてバルブが閉じている(CLOSED)であることを示している。そして、“description”: “Controls the flow of gas in the auxiliary pipeline”とあるように、当該バルブは、補助パイプライン(auxiliary pipeline)内のガスの流れを制御することを示している。
【0118】
図16に示す“actuators”における上から3番目の配列は、“id”: “conveyor_1”,“deviceName”: “Conveyor 1”,“type”: “conveyor”,とあるように、コンベアについての情報が格納されている。また、“status”: “AUTO”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、“timestamp”に示される時刻においてコンベアが自動運転(AUTO)の状態であることを示している。そして、“description”: “Automatically conveys products from the assembly line to the packaging area”とあるように、当該コンベアは、製品を組立ラインから梱包エリアに移動させることを示している。
【0119】
図16に示す“actuators”における上から4番目の配列は、“id”: “agitator_1”,“deviceName”: “Agitator 1”,“type”: “agitator”,とあるように、撹拌機についての情報が格納されている。また、“status”: “ON”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、“timestamp”に示される時刻において撹拌機が動作中(ON)であることを示している。そして、“description”: “Mixes the contents of the mixing tank”とあるように、当該撹拌機は、タンクの内容物を攪拌することを示している。
【0120】
図16に示す“actuators”における上から5番目の配列は、“id”: “heater_1”,“deviceName”: “Heater 1”,“type”: “heater”,とあるように、ヒータについての情報が格納されている。また、“status”: “OFF”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、“timestamp”に示される時刻においてヒータが停止中(OFF)であることを示している。そして、“description”: “Heats the reactor to maintain the required process temperature”とあるように、当該ヒータは、要求された処理温度(process temperature)を保つために反応器(reactor)を加熱することを示している。
【0121】
図16に示す“actuators”における上から6番目の配列は、“id”: “alarm_system”,“deviceName”: “Alarm System”,“type”: “alarm”,とあるように、警報システムについての情報が格納されている。また、“status”: “ON”,“timestamp”: “2024-07-30T12:00:00Z”,とあるように、“timestamp”に示される時刻において警報システムが動作中(ON)であることを示している。そして、“description”: “Alerts operators to any anomalies in the system”とあるように、当該警報システムは、作業者(operators)にシステムの異常を知らせることを示している。
【0122】
以上の内容により、関数の第2例に係るスキーマ及びデータ配列が構成される。
上述のように、関数の第2例において、ポンプはタンク内の水位に対応して動作する。このため、関数の第2例においては、第1関数及び第2関数は、上述した“sensors”のデータ配列から、水位のデータを読み込むように作成されてよい。また、第1関数及び第2関数は、上述した“actuators”から、ポンプの動作を読み込むように作成されてよい。
【0123】
図17は、関数の第2例に係るAPIに入力する情報の定義の例である。
図17に示す、APIに入力する情報の定義は、言語モデル20によって作成されるノードN及びエッジEの定義が記載されたものである。図17に示すAPIは、上述した関数等のそれぞれが言語モデル20に送信又は通知された後、言語モデル20によってノードN及びエッジEが生成される際、言語モデル20によって作成されるノードNの具体的な内容について記載されている。換言すれば、図17に示すAPIは、関数の第2例に係る第1関数及び第2関数の構成について示している。
図17に示すAPIは、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて言語を入力してもよいし、音声認識装置である入力部12を用いて、口頭で言語を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって言語が生成されてもよい。
図17に示すAPIは、記憶部14又は外部サーバ3に構造データとして保存されてもよい。このことで、図17に示すAPIは、言語モデル20によって新たな機能に関する関数を作成する際、参照可能とされてもよい。
【0124】
図17に示すスキーマは、冒頭に「“title”: “OPCServerWriteInput”」と記載されている。当該記載は、図17に示すスキーマが、制御装置10に情報を書き込む機能(例えば、OPCサーバ)に各種情報を書き込む構造を示している。
図17に示すスキーマは、冒頭の記載に続き、“type”: “object”とあるように、object型の関数である。
また、図17に示すAPIは、“properties”と、“required”と、を含む。
【0125】
“properties”は、ノードNの作成に用いられる各種情報の詳細を管理するための関数である。図17に示すAPIにおいて、“properties”は、“node_id”と、“value”と、“type”と、を含む。
【0126】
“node_id”は、“title”: “Node Id”とあるように、ノードNの識別子を取得する部分である。以下、ノードNの識別子をノードIDという。“node_id”は、“type”: “string”とあるようにstring型であり、ノードIDについての情報を文字列として取得する。
また、“description”: “The node id of the OPC server to which the value will be written. The specified value will be written to the address of the plant controller linked with the node id.“とあるように、“node_id”は、関数に関する値が書き込まれるOPCサーバのノードIDを取得する。また、ノードNが作成される際、関数に関する値は、ノードIDに関連付けられたプラントコントローラ(例えば、PLC)のアドレスに書き込まれる。
【0127】
“value”は、“title”: “Value”とあるように、作成されるノードNに係る関数に関する値を取得する部分である。“value”は、“type”: “string” とあるようにstring型であり、関数に関する値についての情報を文字列として取得する。
また、“description”: “The value to be written to the OPC server. This value will directly be written to the address of the plant controller linked with the node id.”とあるように、“value”は、OPCサーバに書き込まれる値を取得する。また、ノードNが作成される際、関数に関する値は、ノードIDに関連付けられたプラントコントローラ(例えば、PLC)のアドレスに直接書き込まれる。
【0128】
“type”は、“title”: “Type ”とあるように、関数に係る値のデータ型に関するデータを取得する部分である。図17に示すスキーマにおいて、“type”は、“type”と称される関数を更に含む。“type”の中に含まれる“type”は、“type”: “string”, “enum”: [“int”, “float”, “string”, “bool”]とあるようにstring型であり、int型、float型、string型、bool型のいずれかの形式のデータを列挙子として取得する。
また、“description”: “The data type of the value to be written to the OPC server. The data type should be the same as the data type of the address of the plant controller linked with the node id.”とあるように、“type”は、OPCサーバに書き込まれる値のデータ型を取得する。また、値のデータ型は、ノードIDに関連付けられたプラントコントローラ(例えば、PLC)のアドレスのデータ型と同じであるべきことが示されている。
【0129】
図18は、言語モデル20によって作成される、関数の第2例に係る言語である。
図18に示される言語は、図18に示す、関数の第2例に係るプロンプトに対応する内容である。すなわち、上述した「ポンプ1をON/OFFする機能を実現せよ」とのプロンプトに対応し、言語モデル20は、“node_id”: “pump_1”, “value”: true, “type”: “bool”との言語を作成する。これは、関数の第2例によって制御されるポンプの識別子が“pump_1”であり、ポンプのON/OFFが、bool型の関数において、“value”として示されるtrue(又はfalse)との値によって指示されることが示されている。
図18に示される言語は、画面に表示されるノードNの基礎となる言語である。本実施形態において、ノードNは、言語モデル20によって作成される、図18に示されるような言語に基づき作成され、画面に表示されてよい。
【0130】
図19は、言語モデル20が作成する、関数の第2例に係るノードN及びエッジEを示す図である。
図19に示す例では、複数のノードNは、アクチュエータ信号ノードNb1と、センサ信号ノードNb2と、インターロック情報ノードNb3と、情報マージノードNb4と、OPC入力ノードNb5と、コード入力ノードNb6と、制御処理実行ノードNb7と、制御出力先設定ノードNb8と、OPC出力ノードNb9と、を含む。
【0131】
アクチュエータ信号ノードNb1は、制御対象2の備えるポンプの各種情報(信号)を取得するためのノードである。具体的には、アクチュエータ信号ノードNb1は、例えば、アクチュエータの識別子、アクチュエータの名称、アクチュエータの種類、アクチュエータの状態、アクチュエータの状態を検知した時刻、等を取得する。アクチュエータ信号ノードNb1は、例えば、図13及び図14を用いて上述した入力のスキーマによって情報を取得してよい。アクチュエータ信号ノードNb1においてポンプに関する情報が取得されることで、第2例に係る処理が実行される。
【0132】
センサ信号ノードNb2は、制御対象2の備えるセンサの各種情報(信号)を取得するためのノードである。具体的には、センサ信号ノードNb2は、例えば、センサの識別子、センサの名称、センサが検知する値の内容、センサが検知する値、センサが検知する値の単位、センサが値を検知した時刻、等を取得する。センサ信号ノードNb2は、例えば、図13及び図14を用いて上述した入力のスキーマによって情報を取得してよい。
【0133】
インターロック情報ノードNb3は、制御対象2におけるインターロック条件を取得するためのノードである。インターロック情報ノードNb3は、例えば、図20及び図21を用いて後述する入力のスキーマから、インターロック条件に関する情報を取得してよい。
【0134】
情報マージノードNb4は、アクチュエータ信号ノードNb1、センサ信号ノードNb2、及びインターロック情報ノードNb3が取得した各種情報をマージする(合併する)ためのノードである。情報マージノードNb4は、例えば、上述した各種ノードが取得した情報を、array型の配列としてマージしてよい。
【0135】
OPC入力ノードNb5は、情報マージノードNb4によってマージした各種情報(信号)を取得するためのAPIに対応したノードである。OPC入力ノードNb5が上述のように各種情報(信号)を取得することで、外部サーバ3(例えば、OPCサーバ)から、ユーザによって指定された各種情報(信号)を取得することができる。
【0136】
コード入力ノードNb6は、第2例に係る第1関数及び第2関数に係るソースコードを出力するためのAPIに対応したノードである。コード入力ノードNb6によって出力されたソースコードは、制御処理実行ノードNb7に送られてよい。コード入力ノードNb6においては、例えば、上述した各関数における“description”で記載した機能が入力されてよい。このことで、上述した各機能が実装されてよい。
【0137】
制御処理実行ノードNb7は、第2例に係る第1関数及び第2関数を実行するためのAPIに対応したノードである。制御処理実行ノードNb7は、コード入力ノードNb6によって出力されたソースコードを取得し、取得したソースコードに係るプログラムを実行する。このことで、第2例においては、タンクの水位に応じて、ポンプの動作を開始又は停止する処理が実行される。
上述の処理によって、例えば、タンクの水位が上昇したことを検知した場合、制御処理実行ノードNb7は、ポンプの動作を開始する旨をOPC出力ノードNb9に送信してよい。
【0138】
制御出力先設定ノードNb8は、制御処理実行ノードNb7によって送信される、アクチュエータを動作させる旨の信号の出力先を設定するためのAPIに対応したノードである。ユーザは、例えば、制御出力先設定ノードNb8に「Pump Order」等といった自然言語を入力することで、信号の出力先をポンプに設定してよい。
【0139】
OPC出力ノードNb9は、アクチュエータを動作させる旨を、アクチュエータに送信するためのAPIに対応したノードである。OPC出力ノードNb9は、制御処理実行ノードNb7から、アクチュエータの動作を開始する旨を受信することで、制御出力先設定ノードNb8によって設定されたアクチュエータ(本実施形態においては、ポンプ)の動作を開始させてよい。
【0140】
図20は、関数の第2例に係るインターロック条件が入力されるスキーマの例の第1図である。
図21は、関数の第2例に係るインターロック条件が入力されるスキーマの例の第2図である。
図20及び図21に示すスキーマは、上述した機能仕様書に係るポンプのインターロック条件を定めるのに必要な各種情報を取得するためのデータ構造を示している。図20及び図21に示すスキーマは、プロンプトとして、通知ステップにおいて通知手段151によって言語モデル20に通知されてよい。
図20及び図21に示すスキーマは、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて言語を入力してもよいし、音声認識装置である入力部12を用いて、口頭で言語を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって言語が生成されてもよい。
【0141】
図20及び図21に示すスキーマは、例えば、制御対象2の安全性を担保するためのインターロック条件として、記憶部14又は外部サーバ3に構造データとして保存されてもよい。このことで、図20及び図21に示すスキーマは、言語モデル20によって新たな機能に関する関数を作成する際、参照可能とされてもよい。また、言語モデル20は、図20及び図21に示すスキーマを用いて、プログラムを作成する際、プログラムがインターロック条件を満たすか否かを検討の上、プログラムを作成してもよい。
【0142】
図20及び図21に示す例では、冒頭に“title”: “Running Condition schema”, “description”: “This schema is used to define the conditions that need to operate plant functions”と記載されており、図20及び図21に示すスキーマが、制御対象2となるプラントの設備(例えば、ポンプ)を動作させるために必要な条件を定義するために用いられることを示している。
また、図20及び図21に示す例では、冒頭の記載に続き“type”: “object”と記載されている。この記載は、図20及び図21に示すスキーマが、object型の関数であることを示している。
【0143】
図20及び図21に示すスキーマは、前述の内容に続き、“properties”の関数が設けられている。
“properties”は、インターロック条件の作成に必要な各種情報を取得するための関数である。“properties”は、“conditions”を含む。
“conditions”は、“type”: “array”とあるように、array型の関数である。また、“title”: “List of Conditions”とあるように、“conditions”は、インターロック条件の一覧として機能する。図20及び図21に示すスキーマにおいて、“conditions”は、“items”を含む。
【0144】
“items”は、インターロック条件の一覧に係る各種情報を取得するための関数である。“items”は、“type”: “object”とあるように、object型の関数である。“items”は、“properties”と、“dependencies”と、“required”と、“if”と、“then”と、を含む。
【0145】
“properties”は、インターロック条件に係る各種情報の具体的な内容を取得する関数である。“properties”は、“type”, “key”, “value”, “operation”, “subConditions”,を含む。
【0146】
“type”は、インターロック条件の形式についての情報を取得する部分である。また、“type”: “string”, “title”: “Condition Type”とあるように、“type”はstring型の関数であり、インターロック条件の形式を文字列として取得する。また、“enum”: [“AND”, “OR”, “NOT”, “CONDITION”]とあるように、“type”においては、AND(論理積)、OR(論理和)、NOT(否定)、CONDITION(その他の条件)のいずれかが取得される。
【0147】
“key”は、インターロック条件の対象となるセンサを特定するための関数である。“type”: “string”, “title”: “Key”とあるように、“key”はstring型の関数であり、インターロック条件の対象となるセンサに関する情報を文字列として取得する。
【0148】
“value”は、インターロック条件の対象となるセンサが検知する値の内容についての情報を取得する部分である。“type”: “string”, “title”: “Value”とあるように、“value”はstring型の関数であり、インターロック条件の対象となるセンサが検知する値の内容についての情報を文字列として取得する。
【0149】
“operation”は、インターロック条件に係る演算子を取得するための関数である。“operation”は、例えば、センサが検知した値と、インターロック条件に係る数値とを比較する際の条件を特定する。“type”: “string”, “title”: “Operator”とあるように、“operation”はstring型の関数であり、インターロック条件に係る等号又は不等号に関する情報を文字列として取得する。また、“enum”: [“=”, “!=”, “<”, “>”, “<=”, “>=”]とあるように、“operation”においては、このように列挙されたもののいずれかが取得される。なお、“!=”は、否定等号を示すものである。
【0150】
“subConditions”は、インターロック条件に係る具体的な条件を示す関数であり“subConditions”は、インターロック条件の形式が、“type”において上述したものを用いて記述される。
図20に示す例では、“type”: “array”, “title”: “Sub Conditions”とあるように、“subConditions”は、インターロック条件に係る具体的な情報を、配列データとして与えることで所望のインターロック条件を設定する。
【0151】
“dependencies”は、上述した“properties”関数が取得した情報に基づき、インターロック条件を定義するための関数である。図21に示す例では、“dependencies”は、“type”を含む。
“type”は、インターロック条件の形式を定義するための関数である。“type”は、“oneOf”を含む。
【0152】
“oneOf”は、インターロック条件の形式を、AND(論理積)、OR(論理和)、NOT(否定)のいずれか、又は、CONDITION(その他の条件)のいずれであるかを決定するための関数である。
図21に示すように、“oneOf”は、2つの“properties”を含む。
【0153】
1つ目の“properties”は、“type”: {“enum”: [“AND”, “OR”, “NOT”]}とあるように、インターロック条件の形式が、AND(論理積)、OR(論理和)、NOT(否定)のいずれかである場合の関数である。
図21に示すように、インターロック条件の形式が、AND(論理積)、OR(論理和)、NOT(否定)のいずれかである場合、“key”: {“type”: “string”},“value”: {“type”: “string”},“operation”: {“type”: “string”}とあるように、上述した“key”関数、“value”関数、“operation”関数によって、上述した各種情報が出力される。
【0154】
2つ目の“properties”は、“type”: { “enum”: [“CONDITION”]}とあるように、インターロック条件の形式が、CONDITION(その他の条件)である場合の関数である。
図21に示すように、インターロック条件の形式が、CONDITION(その他の条件)である場合、“subConditions”: {“type”: “array”}とあるように、上述した“subConditions” 関数によって、上述した各種情報が出力される。
【0155】
“required”は、[“type”]とあるように、上述した“type”関数を実行し、インターロック条件の形式を読み込む。そして、次に述べる“if”を実行し、必要に応じて“then”を実行する。
“if”は、“properties”: {“type”: { “enum”: [“CONDITION”]}}とあるように、読み込まれたインターロック条件の形式が、CONDITION(その他の条件)であるか否かを判断する。そして、読み込まれたインターロック条件の形式がCONDITION(その他の条件)である場合、“then”: {“required”: [“key”, “value”, “operation”]}とあるように、“key”関数、“value”関数、及び“operation”の情報を入力することが必須であることを示す。このことで、上述した“subConditions”関数において上述した各種情報が出力されるようにする。
【0156】
図22は、図20及び図21に示すインターロック条件が入力されるスキーマによって取得される各種情報を含むデータ配列の第1図である。
図23は、図20及び図21に示すインターロック条件が入力されるスキーマによって取得される各種情報を含むデータ配列の第2図である。
図22及び図23に示すデータ配列は、図20及び図21に示すスキーマに各種情報を格納するための関数である。図22及び図23に示すデータ配列は、通知ステップにおいて、通知手段151によって言語モデル20に通知されてよい。
図22及び図23に示すデータ配列は、例えば、ユーザが入力部12を介して入力してよい。この時、ユーザは、キーボードである入力部12を用いて言語を入力してもよいし、音声認識装置である入力部12を用いて、口頭で言語を発話して入力してもよい。あるいは、ユーザが口頭で発話した内容に基づき、人工知能等によって言語が生成されてもよい。
【0157】
図22及び図23に示すデータ配列は、“conditions”を含む。図22及び図23に示す例では、“type”: “AND”とあるように、インターロック条件の形式がAND(論理積)である場合と、“type”: “NOT”とあるように、インターロック条件の形式がNOT(否定)である場合と、が例示されている。
インターロック条件の形式がAND(論理積)である場合において、図22に示す例では、以下のように“subConditions”関数の引数が3種類設けられる。
【0158】
図22に示す1つ目の引数は、{“type”: “CONDITION”, “key”: “level_sensor_1”, “value”: “LL”, “operation”: “>”}とあるように、インターロック条件の形式がCONDITION(その他の条件)であり、インターロック条件の対象となるセンサが水位センサであり、水位センサが検知する値が“LL”であり、インターロック条件に係る演算子が“>”である。すなわち、1つ目の引数によっては、水位センサが検知する水位が“LL”未満であるか、という条件が定義される。
【0159】
図22に示す2つ目の引数は、{“type”: “CONDITION”, “key”: “temperature_sensor_1”, “value”: “50”, “operation”: “<”}とあるように、インターロック条件の形式がCONDITION(その他の条件)であり、インターロック条件の対象となるセンサが温度センサであり、温度センサが検知する値が“50”であり、演算子が“<”である。すなわち、2つ目の引数によっては、温度センサが検知する温度が50℃を上回っているか、という条件が定義される。
【0160】
図22に示す3つ目の引数は、{“type”: “CONDITION”, “key”: “pressure_sensor_1”, “value”: “100”, “operation”: “<=”}とあるように、インターロック条件の形式がCONDITION(その他の条件)であり、インターロック条件の対象となるセンサが圧力センサであり、圧力センサが検知する値が“100”であり、演算子が“<=”である。すなわち、3つ目の引数によっては、圧力センサが検知する圧力が100kPa以上であるか、という条件が定義される。
【0161】
インターロック条件の形式がNOT(否定)である場合において、図23に示す例では、以下のように“subConditions”関数の引数が1種類設けられる。
すなわち、図23に示す例において{“type”: “CONDITION”, “key”: “emergency_stop”, “value”: “true”, “operation”: “=”}とあるように、インターロック条件の形式がCONDITION(その他の条件)であり、インターロック条件の対象が非常停止ボタンであり、検知される値が“true”であり、演算子が“=”である。すなわち、この引数によっては、非常停止ボタンが押されたか、という条件が定義される。
なお、形式がNOT(否定)であるインターロック条件の複数存在する場合、前記複数のインターロック条件は、適宜OR(論理和)と組み合わされてよい。
【0162】
図24は、言語モデル20が作成する、関数の第2例に係るインターロック条件を示すノードN及びエッジEを示す図である。
図24に示す例では、上述したインターロック条件を示す複数のノードNが、エッジEによって適宜接続されている。ユーザは、この図を目視することで、関数の第2例に係るインターロック条件を直感的に把握する。
【0163】
(関数の第3例)
関数の第3例において、第1関数は、移動機械を移動させるための関数であり、第2関数は、移動のルート上に物体があるか否かを判定するための関数である。
通知ステップにて言語モデル20に通知されるプロンプトは、ルート上に物体がある場合に移動機械の移動を停止させること、を示す。
【0164】
本実施形態においては、上述した関数の3例のいずれかが、言語モデル20によって作成される。
【0165】
(作成システムの制御方法)
次に、本実施形態に係る作成システム1の制御方法について説明する。作成システム1の制御方法とは、例えば、上述した作成システム1によって、プラントを監視又は制御するための関数や、プラントを監視又は制御するための関数に基づく、画面に表示されるノードNやエッジEを作成する方法をいう。
図25は、実施形態に係る作成システム1の制御方法のフローである。
図25に示すように、本実施形態の制御方法は、送信ステップS1と、通知ステップS2と、作成制御ステップS3と、判定ステップS4と、表示制御ステップS5と、を含む。
【0166】
送信ステップS1は、コンピュータ(例えば、制御装置10)が、第1関数及び第2関数それぞれのメタデータを言語モデル20に送信するステップである。送信ステップS1では、例えば、送信手段152が、第1関数及び第2関数それぞれのメタデータを言語モデル20に送信する。なお、上述のように、第1関数及び第2関数それぞれは、プラントを監視又は制御するための関数である。
本実施形態では、送信ステップS1にて、第1関数及び第2関数それぞれのメタデータは、外部サーバ3から言語モデル20へ送信されてよい。また、送信ステップS1にてプラントの機能仕様書が言語モデル20に送信されてもよい。
【0167】
通知ステップS2は、コンピュータ(例えば、制御装置10)が、ユーザの所望の機能、を示すプロンプトを言語モデル20に通知するステップである。本実施形態において、通知ステップS2にて言語モデル20に通知されるプロンプトは、プラントのインターロック条件を示す条件情報を含んでよい。
【0168】
作成制御ステップS3は、コンピュータ(例えば、制御装置10)が、第1関数に対応する第1ノードN1と、第2関数に対応する第2ノードN2と、第1ノードN1と第2ノードN2とを接続するエッジEと、を、送信ステップS1にて送信されるメタデータと通知ステップS2にて通知されるプロンプトとに基づき、言語モデル20に作成させるステップである。作成制御ステップS3において、作成制御手段153は、通知ステップS2にて通知される条件情報を用い、第1関数及び第2関数のいずれか一方を言語モデル20に選択させてもよい。
【0169】
判定ステップS4は、コンピュータ(例えば、制御装置10)が、作成制御ステップS3にて作成される第1ノードN1、第2ノードN2、及び、エッジEが、インターロック条件を満足するか否かを判定するステップである。判定ステップS4において、判定手段154が上記判定を行うことで、作成された第1ノードN1、第2ノードN2、及び、エッジEによって、より確実に制御対象2の安全性を確保できるようにすることに寄与する。
【0170】
表示制御ステップS5は、コンピュータ(例えば、制御装置10)が、作成制御ステップS3にて作成される第1ノードN1、第2ノードN2、及び、エッジEをともに、表示部13に表示させるステップである。表示制御手段155において、表示制御手段155が上述の各種情報を表示部13に表示させることで、ユーザが、各種情報を容易に把握できるようにすることに寄与する。また、ユーザが、表示部13に表示された第1ノードN1、第2ノードN2、及び、エッジEを、入力部12を介して適宜操作することで、ユーザによるビジュアルプログラミングを可能とする。
以上の各ステップにより、本実施形態に係る作成システム1の制御方法が行われる。
【0171】
図26は、実施形態に適用される情報処理装置90のハードウェア構成例の概略を示す図である。情報処理装置90は、プロセッサー91、主記憶装置92、通信インターフェース93、補助記憶装置94、入出力インターフェース95及び内部バス96を備える。プロセッサー91、主記憶装置92、通信インターフェース93、補助記憶装置94及び入出力インターフェース95は、内部バス96を介して互いに通信可能に接続される。情報処理装置90は、例えば制御装置10に適用されてもよい。この場合、例えば通信部11は通信インターフェース93を用いて構成されてもよい。例えば記憶部14は補助記憶装置94を用いて構成されてもよい。また、制御部15は、プロセッサー91及び主記憶装置92を用いて構成されてもよい。
【0172】
以上説明したように、本実施形態に係る作成システム1及び作成システム1の制御方法によれば、作成制御ステップS3において、第1関数に対応する第1ノードN1と、第2関数に対応する第2ノードN2と、第1ノードN1と第2ノードN2とを接続するエッジEと、を、送信ステップS1にて送信されるメタデータと通知ステップS2にて通知されるプロンプトとに基づき、言語モデル20に作成させる。これにより、ノードNとエッジEをユーザが作成することを不要にすることができる。よって、プログラミングの煩雑さを抑えることができる。
また、第1関数及び第2関数それぞれは、プラントを制御するための関数である。これにより、例えば、プラントの制御プログラムの作成を行いやすくすることができる。
【0173】
また、送信ステップS1にて、第1関数及び第2関数それぞれのメタデータは、外部サーバ3から言語モデル20へ送信される。これにより、例えば、プラントにおけるネットワーク通信の負荷を抑えやすくすることができる。また、例えば、第1関数及び第2関数それぞれのメタデータを、プラントにおける複数の拠点で共有しやすくすることができる。よって、プラントの制御プログラムの作成を、拠点を問わずに行うことができる。
【0174】
また、送信ステップS1にてプラントの機能仕様書が言語モデル20に送信される。これにより、言語モデル20に、プラントの機能仕様を正確に把握させることができる。よって、言語モデル20による制御プログラムの作成を、より正確に行いやすくすることができる。
【0175】
また、通知ステップS2にて言語モデル20に通知されるプロンプトは、プラントのインターロック条件を示す条件情報を含む。これにより、例えば、言語モデル20によって作成される制御プログラムを、インターロック条件を含むものとすることができる。よって、通知ステップS2にて言語モデル20に通知されるプロンプトを、設備の維持を考慮したものにすることができる。
【0176】
また、通知ステップS2にて通知される条件情報を用い、第1関数及び第2関数のいずれか一方を言語モデル20に選択させる。これにより、言語モデル20は、プラントのインターロック条件を示す条件情報に基づき、送信ステップS1で言語モデル20に送信された複数の関数それぞれのメタデータから、ユーザの所望の機能を満たすことができる関数を適切に選択することができる。よって、言語モデル20は、プラントのインターロック条件を含む制御プログラムを適切に作成することができる。
【0177】
また、判定ステップS4において、作成制御ステップS3にて作成される第1ノードN1、第2ノードN2、及び、エッジEが、インターロック条件を満足するか否かを判定する。これにより、例えば、プラントの制御における正確性を高めることができる。
【0178】
また、例えば、第1関数は、ごみピットの煙又は火災を検知するための関数であり、第2関数は、アラームを発報するための関数である。そして、通知ステップS2にて言語モデル20に通知されるプロンプトは、ごみピットの煙又は火災が検知される場合にアラームを発報させること、を示す。これにより、例えば、制御対象2であるプラントがごみ処理場である場合に、第1関数及び第2関数によって、ごみピットにおいて発生した火災を迅速にユーザに報知することができる。よって、プラントの安全性を確保しやすくすることができる。
【0179】
また、例えば、第1関数は、タンクの水位を検知するための関数であり、第2関数は、ポンプを動作させるための関数であってもよい。そして、通知ステップS2にて言語モデル20に通知されるプロンプトは、タンクの水位が所定水位より低くなった場合にポンプの動作を停止させること、を示してもよい。これにより、例えば、第1関数及び第2関数によって、タンクの水位に応じたポンプの動作を適切に制御することができる。よって、タンク及びポンプを備えるプラントの安全性を確保しやすくすることができる。
【0180】
また、例えば、第1関数は、移動機械を移動させるための関数であり、第2関数は、移動機械の移動のルート上に物体があるか否かを判定するための関数であってもよい。そして、通知ステップS2にて言語モデル20に通知されるプロンプトは、移動機械の移動のルート上に物体がある場合に移動機械の移動を停止させること、を示してもよい。これにより、例えば、第1関数及び第2関数によって、移動機械と物体とが接触等することを抑えることができる。
【0181】
また、表示制御ステップS5において、作成制御ステップS3にて作成される第1ノードN1、第2ノードN2、及び、エッジEをともに、表示部13に表示させる。これにより、ユーザは、作成された制御プログラムの内容を把握しやすくすることができる。
【0182】
なお、本開示の技術的範囲は前記実施形態に限定されるものではなく、本開示の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
例えば、本実施形態に係る作成システムの制御方法は、制御装置10に代えて、外部サーバ3によって実施されてもよい。
また、送信ステップS1にて、第1関数及び第2関数それぞれのメタデータは、外部サーバ3から言語モデル20へ送信されず、例えば、制御装置10の記憶部14から読み出されて言語モデル20へ送信されてよい。
また、通知ステップS2にて言語モデル20に通知されるプロンプトは、制御対象2であるプラントのインターロック条件を示す条件情報を含まなくてよい。
また、制御装置10は、通知ステップS2にて通知されるインターロック条件に関する情報を用い、第1関数及び第2関数のいずれか一方を言語モデルに選択させなくてもよい。
また、判定手段154による、作成されたプログラムがインターロック条件を満足するか否かを判定するためのプログラムが、別途設けられて用いられてもよい。
【0183】
その他、本開示の趣旨に逸脱しない範囲で、前記実施形態における構成要素を周知の構成要素に置き換えることは適宜可能であり、また、前記した変形例を適宜組み合わせてもよい。
【0184】
(付記)
前記実施形態に係る作成システムの制御方法、作成システム、及びプログラムは、例えば以下のように把握される。
【0185】
<1>本開示の一態様に係る作成システムの制御方法は、コンピュータが、第1関数及び第2関数それぞれのメタデータを言語モデルに送信する送信ステップと、コンピュータが、ユーザの所望の機能、を示すプロンプトを前記言語モデルに通知する通知ステップと、コンピュータが、前記第1関数に対応する第1ノードと、前記第2関数に対応する第2ノードと、前記第1ノードと前記第2ノードとを接続するエッジと、を、前記送信ステップにて送信される前記メタデータと前記通知ステップにて通知される前記プロンプトとに基づき、前記言語モデルに作成させる作成制御ステップと、を備え、前記第1関数及び前記第2関数それぞれは、プラントを制御するための関数である、ことを特徴とする。
【0186】
上記の作成システムの制御方法によれば、作成制御ステップにおいて、第1関数に対応する第1ノードと、第2関数に対応する第2ノードと、第1ノードと第2ノードとを接続するエッジと、を、送信ステップにて送信されるメタデータと通知ステップにて通知されるプロンプトとに基づき、言語モデルに作成させる。これにより、ノードとエッジをユーザが作成することを不要にすることができる。よって、プログラミングの煩雑さを抑えることができる。
また、第1関数及び第2関数それぞれは、プラントを制御するための関数である。これにより、例えば、プラントの制御プログラムの作成を行いやすくすることができる。
【0187】
<2>上記<1>に係る作成システムの制御方法では、前記送信ステップにて、前記第1関数及び前記第2関数それぞれの前記メタデータは、外部サーバから前記言語モデルへ送信される、ことを特徴とする構成を採用してもよい。
【0188】
また、送信ステップにて、第1関数及び第2関数それぞれのメタデータは、外部サーバから言語モデルへ送信される。これにより、例えば、プラントにおけるネットワーク通信の負荷を抑えやすくすることができる。また、例えば、第1関数及び第2関数それぞれのメタデータを、プラントにおける複数の拠点で共有しやすくすることができる。よって、プラントの制御プログラムの作成を、拠点を問わずに行うことができる。
【0189】
<3>上記<1>または<2>に係る作成システムの制御方法では、前記送信ステップにて前記プラントの機能仕様書が前記言語モデルに送信される、ことを特徴とする構成を採用してもよい。
【0190】
また、送信ステップにてプラントの機能仕様書が言語モデルに送信される。これにより、言語モデルに、プラントの機能仕様を正確に把握させることができる。よって、言語モデルによる制御プログラムの作成を、より正確に行いやすくすることができる。
【0191】
<4>上記<1>から<3>のいずれか一態様に係る作成システムの制御方法では、前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記プラントのインターロック条件を示す条件情報を含む、ことを特徴とする構成を採用してもよい。
【0192】
また、通知ステップにて言語モデルに通知されるプロンプトは、プラントのインターロック条件を示す条件情報を含む。これにより、例えば、言語モデルによって作成される制御プログラムを、インターロック条件を含むものとすることができる。よって、通知ステップにて言語モデルに通知されるプロンプトを、設備の維持を考慮したものにすることができる。
【0193】
<5>上記<4>に係る作成システムの制御方法では、前記通知ステップにて通知される前記条件情報を用い、前記第1関数及び前記第2関数のいずれか一方を前記言語モデルに選択させる、ことを特徴とする構成を採用してもよい。
【0194】
また、通知ステップにて通知される条件情報を用い、第1関数及び第2関数のいずれか一方を言語モデルに選択させる。これにより、言語モデルは、プラントのインターロック条件を示す条件情報に基づき、送信ステップで言語モデルに送信された複数の関数それぞれのメタデータから、ユーザの所望の機能を満たすことができる関数を適切に選択することができる。よって、言語モデルは、プラントのインターロック条件を含む制御プログラムを適切に作成することができる。
【0195】
<6>上記<1>から<5>のいずれか一態様に係る作成システムの制御方法では、コンピュータが、前記作成制御ステップにて作成される前記第1ノード、前記第2ノード、及び、前記エッジが、インターロック条件を満足するか否かを判定する判定ステップ、を更に備えることを特徴とする構成を採用してもよい。
【0196】
また、判定ステップにおいて、作成制御ステップにて作成される第1ノード、第2ノード、及び、エッジが、インターロック条件を満足するか否かを判定する。これにより、例えば、プラントの制御における正確性を高めることができる。
【0197】
<7>上記<1>から<6>のいずれか一態様に係る作成システムの制御方法では、前記第1関数は、ごみピットの煙又は火災を検知するための関数であり、前記第2関数は、アラームを発報するための関数であり、前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記ごみピットの煙又は火災が検知される場合に前記アラームを発報させること、を示す、ことを特徴とする構成を採用してもよい。
【0198】
また、例えば、第1関数は、ごみピットの煙又は火災を検知するための関数であり、第2関数は、アラームを発報するための関数である。そして、通知ステップにて言語モデルに通知されるプロンプトは、ごみピットの煙又は火災が検知される場合にアラームを発報させること、を示す。これにより、例えば、制御対象であるプラントがごみ処理場である場合に、第1関数及び第2関数によって、ごみピットにおいて発生した火災を迅速にユーザに報知することができる。よって、プラントの安全性を確保しやすくすることができる。
【0199】
<8>上記<1>から<6>のいずれか一態様に係る作成システムの制御方法では、前記第1関数は、タンクの水位を検知するための関数であり、前記第2関数は、ポンプを動作させるための関数であり、前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記タンクの水位が所定水位より低くなった場合に前記ポンプの動作を停止させること、を示す、ことを特徴とする構成を採用してもよい。
【0200】
また、例えば、第1関数は、タンクの水位を検知するための関数であり、第2関数は、ポンプを動作させるための関数であってもよい。そして、通知ステップにて言語モデルに通知されるプロンプトは、タンクの水位が所定水位より低くなった場合にポンプの動作を停止させること、を示してもよい。これにより、例えば、第1関数及び第2関数によって、タンクの水位に応じたポンプの動作を適切に制御することができる。よって、タンク及びポンプを備えるプラントの安全性を確保しやすくすることができる。
【0201】
<9>上記<1>から<6>のいずれか一態様に係る作成システムの制御方法では、前記第1関数は、移動機械を移動させるための関数であり、前記第2関数は、前記移動のルート上に物体があるか否かを判定するための関数であり、前記通知ステップにて前記言語モデルに通知される前記プロンプトは、前記ルート上に前記物体がある場合に前記移動機械の前記移動を停止させること、を示す、ことを特徴とする構成を採用してもよい。
【0202】
また、例えば、第1関数は、移動機械を移動させるための関数であり、第2関数は、移動機械の移動のルート上に物体があるか否かを判定するための関数であってもよい。そして、通知ステップにて言語モデルに通知されるプロンプトは、移動機械の移動のルート上に物体がある場合に移動機械の移動を停止させること、を示してもよい。これにより、例えば、第1関数及び第2関数によって、移動機械と物体とが接触等することを抑えることができる。
【0203】
<10>上記<1>から<6>のいずれか一態様に係る作成システムの制御方法では、コンピュータが、前記作成制御ステップにて作成される前記第1ノード、前記第2ノード、及び、前記エッジをともに、表示部に表示させる表示制御ステップ、を更に備えることを特徴とする構成を採用してもよい。
【0204】
また、表示制御ステップにおいて、作成制御ステップにて作成される第1ノード、第2ノード、及び、エッジをともに、表示部に表示させる。これにより、ユーザは、作成された制御プログラムの内容を把握しやすくすることができる。
【0205】
<11>本開示の一態様に係る制御装置は、第1関数及び第2関数それぞれのメタデータを言語モデルに送信する送信手段と、ユーザの所望の機能、を示すプロンプトを前記言語モデルに通知する通知手段と、前記第1関数に対応する第1ノードと、前記第2関数に対応する第2ノードと、前記第1ノードと前記第2ノードとを接続するエッジと、を、前記送信手段によって送信される前記メタデータと前記通知手段によって通知される前記プロンプトとに基づき、前記言語モデルに作成させる作成制御手段と、を備え、前記第1関数及び前記第2関数それぞれは、プラントを制御するための関数である、ことを特徴とする。
【0206】
<12>本開示の一態様に係るプログラムは、コンピュータを、上記<11>に記載の制御装置として機能させる、ことを特徴とする。
【符号の説明】
【0207】
1 作成システム
2 制御対象
3 外部サーバ
10 制御装置
11 通信部
12 入力部
13 表示部
14 記憶部
15 制御部
151 通知手段
152 送信手段
153 作成制御手段
154 判定手段
155 表示制御手段
156 システム制御手段
20 言語モデル
E エッジ
N ノード
N1 第1ノード
N2 第2ノード
S1 送信ステップ
S2 通知ステップ
S3 作成制御ステップ
S4 判定ステップ
S5 表示制御ステップ
【要約】
【課題】ノードとエッジを自動で作成することができる作成システムの制御方法、制御装置、及びプログラムを提供することを目的とする。
【解決手段】第1関数及び第2関数それぞれのメタデータを言語モデルに送信する送信ステップS1と、ユーザの所望の機能、を示すプロンプトを言語モデルに通知する通知ステップS2と、第1関数に対応する第1ノードと、第2関数に対応する第2ノードと、第1ノードと第2ノードとを接続するエッジと、を、送信ステップS1にて送信されるメタデータと通知ステップS2にて通知されるプロンプトとに基づき、言語モデルに作成させる作成制御ステップS3と、を備え、第1関数及び第2関数それぞれは、プラントを制御するための関数である、ことを特徴とする。
【選択図】図25
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26