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

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

▶ 株式会社東芝の特許一覧 ▶ 東芝電機サービス株式会社の特許一覧

<>
  • 特開-エンジニアリングツール装置 図1
  • 特開-エンジニアリングツール装置 図2
  • 特開-エンジニアリングツール装置 図3
  • 特開-エンジニアリングツール装置 図4
  • 特開-エンジニアリングツール装置 図5
  • 特開-エンジニアリングツール装置 図6
  • 特開-エンジニアリングツール装置 図7
  • 特開-エンジニアリングツール装置 図8
  • 特開-エンジニアリングツール装置 図9
  • 特開-エンジニアリングツール装置 図10
  • 特開-エンジニアリングツール装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024062823
(43)【公開日】2024-05-10
(54)【発明の名称】エンジニアリングツール装置
(51)【国際特許分類】
   G06F 8/60 20180101AFI20240501BHJP
   H04L 43/55 20220101ALI20240501BHJP
【FI】
G06F8/60
H04L43/55
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022170921
(22)【出願日】2022-10-25
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100125151
【弁理士】
【氏名又は名称】新畠 弘之
(72)【発明者】
【氏名】松山 拓紀
(72)【発明者】
【氏名】大西 直哉
(72)【発明者】
【氏名】中谷 博司
(72)【発明者】
【氏名】平野 竜馬
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376AB12
5B376AC11
5B376GA13
(57)【要約】
【課題】本実施形態における課題は、ネットワークを介したプログラム開発をより安定的に行えるエンジニアリングツール装置を提供する。
【解決手段】本実施形態によれば、エンジニアリングツール装置は、第1保持部と、第2保持部と、判定処理部と、を備える。第1保持部は、制御プログラムを保持する。第2保持部は、制御機器の制御を行う実行モジュールの性能に関する情報を保持する。判定処理部は、性能に関する情報を用いて、制御プログラムに設定された処理時間を実行モジュールが達成できるか否かを判定する。判定処理部は、達成できると判定する場合に、実行モジュールに制御プログラムを、ネットワークを介して送信する。
【選択図】図2
【特許請求の範囲】
【請求項1】
制御プログラムを保持する第1保持部と、
制御機器の制御を行う実行モジュールの性能に関する情報を保持する第2保持部と、
前記性能に関する情報を用いて、前記制御プログラムに設定された第1処理時間を前記実行モジュールが達成できるか否かを判定する判定処理部と、を備え、
前記判定処理部は、達成できると判定する場合に、前記実行モジュールに前記制御プログラムを、ネットワークを介して送信する、エンジニアリングツール装置。
【請求項2】
前記実行モジュールの性能に関する情報は、前記制御プログラムの所定単位を実行する演算時間であり、
前記判定処理部は、前記制御プログラムが含む所定単位の数に前記演算時間を乗算した第2処理時間と、前記制御プログラムに設定された第1処理時間とに基づき、前記実行モジュールが達成できるか否かを判定する、請求項1に記載のエンジニアリングツール装置。
【請求項3】
前記判定処理部は、前記第2処理時間と、前記第1処理時間とを比較し、前記第2処理時間が前記第1処理時間以下である場合に、前記実行モジュールが達成できると判定する、請求項2に記載のエンジニアリングツール装置。
【請求項4】
前記エンジニアリングツール装置は、前記実行モジュールとネットワークを介して通信を行う通信部を更に備え、
前記判定処理部は、前記通信部を用いて、前記制御プログラムを前記実行モジュールに送信する、請求項1に記載のエンジニアリングツール装置。
【請求項5】
前記実行モジュールが制御する入出力装置の処理動作を含め、前記制御プログラムを前記実行モジュールに対して模擬実行する制御プログラム模擬実行部を更に備え、
前記判定処理部は、前記制御プログラム模擬実行部で制御プログラムを模擬実行させることにより、前記第1処理時間を前記実行モジュールが達成できるか否かを判定する、請求項1に記載のエンジニアリングツール装置。
【請求項6】
前記制御プログラム模擬実行部では、ネットワークを介した通信時間を含めて制御プログラムを模擬実行する、請求項5に記載のエンジニアリングツール装置。
【請求項7】
前記制御プログラム模擬実行部は、前記実行モジュールが制御する入出力装置の処理動作を模擬する模擬入出力部と、前記ネットワークを介して模擬入出力信号を通信して、前記制御プログラムを模擬実行する、請求項5に記載のエンジニアリングツール装置。
【請求項8】
制御プログラム模擬実行部は、前記実行モジュールのCPUと、前記実行モジュールが有するメモリ容量とに対応させた実行環境において、前記制御プログラムを模擬実行する、請求項5に記載のエンジニアリングツール装置。
【請求項9】
前記判定処理部は、前記ネットワークを介した開発装置からの操作入力にしたがい、前記制御プログラムを生成する、請求項2に記載のエンジニアリングツール装置。
【請求項10】
前記制御プログラムは、前記制御機器の動作を演算ステップ毎に記述するプログラムであり、前記制御プログラムの前記所定単位は、前記演算ステップに対応する、請求項2に記載のエンジニアリングツール装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、エンジニアリングツール装置に関する。
【背景技術】
【0002】
一般に制御対象となる機器が現場に設置されている場合に、制御対象となる現場機器を制御する実行モジュールの制御プログラムも現場内の機器に保管されている。また、このような場合に、ユーザは、制御プログラムの改良や更新を、現場機器の動作確認を行いながら実行することが一般的であった。
【0003】
一方で、ネットワークを介して、制御対象となる現場機器の遠隔制御や遠隔管理が進められている。このような場合に、エンジニアリングツール装置を用いて、ネットワークを介して実行モジュールを対象としたバージョンアップなどのプログラム開発が行われることがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9-34534号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところが、遠隔制御では、実行モジュールの処理性能を遠隔にいる開発者が把握することが困難となってしまう。このため、実行モジュールによれば、プログラムの目的とする処理速度を達成できずに、制御対象となる現場機器の制御処理に障害が生じる恐れがある。
【0006】
このような課題を解決するため、本実施形態における課題は、ネットワークを介したプログラム開発をより安定的に行えるエンジニアリングツール装置を提供することである。
【課題を解決するための手段】
【0007】
本実施形態によれば、エンジニアリングツール装置は、第1保持部と、第2保持部と、判定処理部と、を備える。第1保持部は、制御プログラムを保持する。第2保持部は、制御機器の制御を行う実行モジュールの性能に関する情報を保持する。判定処理部は、性能に関する情報を用いて、制御プログラムに設定された処理時間を実行モジュールが達成できるか否かを判定する。判定処理部は、達成できると判定する場合に、実行モジュールに制御プログラムを、ネットワークを介して送信する。
【発明の効果】
【0008】
ネットワークを介したプログラム開発をより安定的に行える。
【図面の簡単な説明】
【0009】
図1】第1実施形態に係る制御システムの構成例を示す図。
図2】各装置の構成例を示すブロック図。
図3】本実施形態に係る処理シーケンス例を説明する図。
図4】周期性が守られないと判断した場合の処理シーケンスを示す図。
図5】第2実施形態に係る制御システムの各装置の構成例を示すブロック図。
図6】第2実施形態に係る制御システムでの処理シーケンス例を示す図。
図7】周期性が守られない場合の第2実施形態に係る処理シーケンスを示す図。
図8】第2実施形態の変形例に係る制御システムの構成例を示すブロック図。
図9】第2実施形態の変形例に係る処理シーケンスを示す図。
図10】第3実施形態に係る制御システムの構成例を示すブロック図。
図11】第3実施形態に係る処理シーケンス例を示す図。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態に係るエンジニアリングツール装置について、図面を参照しながら詳細に説明する。なお、以下に示す実施形態は、本発明の実施形態の一例であって、本発明はこれらの実施形態に限定して解釈されるものではない。また、本実施形態で参照する図面において、同一部分又は同様な機能を有する部分には同一の符号又は類似の符号を付し、その繰り返しの説明は省略する場合がある。また、図面の寸法比率は説明の都合上実際の比率とは異なる場合や、構成の一部が図面から省略される場合がある。
【0011】
(第1実施形態)
(構成)
図1は、第1実施形態に係る制御システムの構成例を示す図である。図1に示すように、制御システム100は、エンジニアリングツール装置1と、複数の実行モジュール3と、開発装置4とを備える。なお、実行モジュール3は、通信モジュールと称する場合がある。
【0012】
例えばエンジニアリングツール装置1と実行モジュール3、エンジニアリングツール装置1と開発装置4となどは、例えばネットワーク2により通信可能に構成されている。エンジニアリングツール装置1は、例えばサーバであり、複数の実行モジュール3の性能に基づき、開発プログラムの配布が可能であるか否かを判定することが可能な装置である。また、エンジニアリングツール装置1は、ネットワーク2を介したクラウド上で開発環境を提供することも可能である。
【0013】
実行モジュール3は、例えば産業用のコントローラであり、現場に配置された産業用の現場機器などを制御する。この実行モジュール3は、エンジニアリングツール装置1からネットワーク2を介して配布されるプログラム(コントローラソフトウェア)を実行することが可能である。実行モジュール3は、配布されたプログラムを実行することにより、例えば、センサ5の測定データを用いて、現場機器を駆動させるアクチュエータ6を制御する。なお、実行モジュール3は、単数でもよい。また、複数存在する実行モジュール3は、同一の現場に配置されてもよいし、別の現場に配置されてもよい。複数存在する実行モジュール3の性能は、それぞれ異なっていてもよいし、或いは、統一されていてもよい。
【0014】
開発装置4は、例えばパソコンであり、制御プログラムを開発するために開発者が操作する装置である。例えば、開発装置4は、ネットワーク2を介して、エンジニアリングツール装置1が提供するヒューマンマシンインターフェース(HMI:Human Machin Interface)を用いて、制御プログラムを開発することが可能である。このように、開発者は、ネットワーク2を介したクラウド環境上で、制御プログラムを開発することも可能である。
【0015】
図2は、各装置の構成例を示すブロック図である。図2に示すように、エンジニアリングツール装置1は、通信部11と、制御プログラム保持部12と、制御プログラム管理部13と、制御実行情報保持部14とを備える。通信部11は、ネットワーク2を介して、複数の実行モジュール3と、開発装置4と、通信する。通信部11は、例えば、有線又は無線回線を用いたインターネット等の種々の通信手法を介して他の装置と通信を実現できるインタフェースである。例えば、通信部11は、WAN(Wide Area Network)、LAN(Local Area Network)又はPAN(Personal Area Network)を用いてもよい。
【0016】
制御プログラム保持部12は、開発装置4を用いて開発した制御プログラムを保持する。制御プログラム保持部12は、例えば各種RAM(Random Access Memory)を備えていてもよいし、HDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶媒体を備えていてもよい。なお、本実施形態に係る制御プログラム保持部12が第1保持部に対応する。
【0017】
制御プログラム管理部13は、制御プログラムの周期性を判断し実行モジュール3に配布することが可能か否かを判定する。この周期性とは、例えば繰り返し実行する制御プログラムの制御周期時間に対応する。より詳細な例では、制御周期時間は、制御プログラムが含む所定単位の数に、所定単位を実行する演算時間を乗算した時間である。この場合、制御プログラム管理部13は、制御プログラムが含む所定単位の数に、所定単位を実行する演算時間を乗算した時間と、制御プログラムに設定された処理時間とを比較することにより、実行モジュール3が設定された処理時間内の処理を達成できるか否かを判定する。なお、本実施形態に係る制御プログラム管理部13が判定処理部に対応する。
【0018】
例えば制御プログラムが、ラダープログラムの場合、複数の演算ステップにより、制御動作が記述される。開発者は、複数の演算ステップが記述されたプログラムの実行時間を制御周期時間として定めて、開発を行う。この場合、ラダープログラムの1演算ステップ数あたりの処理時間×ラダープログラムの演算ステップ数が制御周期時間となる。この場合、制御プログラム管理部13は、ラダープログラムの1演算ステップ数あたりの処理時間×ラダープログラムの演算ステップ数と、ラダープログラムに設定された制御周期時間とを比較することにより、実行モジュール3が設定された制御周期時間内の処理を達成できるか否かを判定する。
【0019】
制御プログラム保持部12は、ネットワーク2を介した開発装置4からの操作入力にしたがい、制御プログラムを生成することも可能である。上述のように、例えば、制御プログラム保持部12は、ネットワーク2を介して、開発装置4にヒューマンマシンインターフェース(HMI:Human Machin Interface)を提供し、開発装置4の開発者は、ヒューマンマシンインターフェースを用いて、制御プログラムを開発することが可能である。
【0020】
制御実行情報保持部14は、制御機器の制御を行う実行モジュール3の性能に関する情報を保持する。例えば、制御実行情報保持部14は、制御プログラムの所定単位を実行する演算時間を、実行モジュール3の性能に関する情報として保持する。より具体的には、制御プログラムが、ラダープログラムの場合、実行モジュール3が1演算ステップ(単位演算ステップ)を実行する時間を、周期性を判断するために必要な実行情報として保持する。制御実行情報保持部14は、例えば各種RAM(Random Access Memory)を備えていてもよいし、HDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶媒体を備えていてもよい。なお、本実施形態に係る制御実行情報保持部14が第2保持部に対応する。
【0021】
実行モジュール3は、例えばCPU(Central Processing Unit)を含んで構成される。実行モジュール3は、通信部31と、制御プログラム保持部32と、制御プログラム実行部33と、制御プログラムコンパイル部34とを有する。通信部31は、ネットワーク2を介して、エンジニアリングツール装置1と、通信する。通信部31は、例えば、有線又は無線回線を用いたインターネット等の種々の通信手法を介して他の装置と通信を実現できるインタフェースである。例えば、通信部11は、WAN(Wide Area Network)、LAN(Local Area Network)又はPAN(Personal Area Network)を用いてもよい。
【0022】
制御プログラム保持部32は、ネットワーク2を介して、エンジニアリングツール装置1から配布された制御プログラム(ソースコード)を保持する。制御プログラム実行部33は、実行形式のプログラム(オブジェクトコード)を実行して、センサ5の測定データを用いて、現場機器を駆動させるアクチュエータ6を制御する。
【0023】
制御プログラムコンパイル部34は、制御プログラム保持部32に保持されるプログラム言語で書かれた制御プログラム(ソースコード)を解析し、制御プログラム実行部33が実行可能な形式の制御プログラム(オブジェクト)に変換する。なお、制御プログラムコンパイル部34は、実行形式の制御プログラム(オブジェクト)を制御プログラム保持部32に記憶させることが可能である。この場合、制御プログラムコンパイル部34は、制御プログラム保持部32から読み込んだ、実行形式の制御プログラム(オブジェクト)を実行する。
【0024】
開発装置4は、通信部41と、表示部42と、操作部43と、を備える。通信部41は、ネットワーク2を介して、エンジニアリングツール装置1と、通信する。通信部41は、例えば、有線又は無線回線を用いたインターネット等の種々の通信手法を介して他の装置と通信を実現できるインタフェースである。表示部42は、モニターである。操作部43は、キーボード、マウスなどを含んで構成される。
【0025】
開発装置4は、例えばネットワーク2を介して、エンジニアリングツール装置1から提供される編集ソフトをインストールする。開発者は、例えば編集ソフトを用いて機械の動作を記述するプログラムを記述する。このプログラムは、例えばラダープログラムである。上述のように、ラダープログラムは、複数の演算ステップにより、制御動作が記述される。開発者は、複数の演算ステップが記述されたプログラムの実行時間を制御周期時間として定めて、開発を行う。本実施形態では、開発装置4は、開発した制御プログラム(ソースコード)のメタ情報として、ラダープログラムの演算ステップ数、及び制御周期時間を付帯する。
【0026】
(作用)
図3を用いて、本実施形態に係る処理シーケンス例を説明する。図3は、本実施形態に係る処理シーケンス例を説明する図である。ここでは、実行モジュール3で制御プログラムを実行するまでの処理シーケンス例を説明する。全体の処理の流れは、実行情報を保存する一連の処理である処理ブロックT1と、制御プログラムを保存する一連の処理である処理ブロックT2と、制御プログラムを配布する一連のである処理ブロックT3と、から構成される。
【0027】
処理ブロックT1では、制御プログラム管理部13の制御に従い、通信部11、ネットワーク2、通信部31を介して、実行モジュール3から、実行モジュール3の1演算ステップ数あたりの処理時間に関する実行情報と実行モジュールIDとを取得する(t10)。続けて、制御プログラム管理部13は、取得した実行モジュール3の実行情報と実行モジュールIDとを関連づけて制御実行情報保持部14に保持する(t11)。
【0028】
処理ブロックT2では、制御プログラム管理部13の制御に従い、通信部11、ネットワーク2、通信部41を介して、開発装置4から、制御プログラム(ソースコード)、制御プログラムID、及びメタ情報を取得する(t20)。メタ情報には、上述のように、ラダープログラムの演算ステップ数、及び第1制御周期時間の情報が含まれる。続けて、制御プログラム管理部13は、取得した制御プログラム(ソースコード)、及びメタ情報と制御プログラムIDとを関連づけて制御プログラム保持部12に保持する(t21)。
【0029】
処理ブロックT3では、先ず、開発装置4の通信部41は、操作部43の入力情報に従い、配布したい制御プログラムの制御プログラムIDと配布先の実行モジュールIDを、エンジニアリングツール装置1に送付する(t30)。続けて、制御プログラム管理部13は、配布先の実行モジュールIDの実行モジュール3における1演算ステップ数あたりの処理時間に、ラダープログラムの演算ステップ数を演算し、実行モジュール3の第2制御周期時間を演算する。
【0030】
次に、制御プログラム管理部13は、実行モジュール3の第2制御周期時間と制御プログラム(ソースコード)に付帯される第1制御周期時間とを、比較する。そして、制御プログラム管理部13は、実行モジュール3の第2制御周期時間が付帯される第1制御周期時間以下であれば、周期性が守られるので、実行モジュール3にこの制御プログラム(ソースコード)を配布可能と判断する。一方で、第2制御周期時間が付帯される第1制御周期時間よりも大きければ、周期性が守られないので、実行モジュール3にこの制御プログラム(ソースコード)を配布不可と判断する(t31)。続けて、制御プログラム管理部13は、周期性確認で周期性が守られると判断した場合に、制御プログラムを配布先の実行モジュールIDの実行モジュール3に送付する(t32)。
【0031】
次に、実行モジュール3の制御プログラム実行部33は、受信した制御プログラムを制御プログラム保持部32に保持させる(t33)。続けて、制御プログラムコンパイル部34は、制御プログラム保持部32に保持した制御プログラム(ソースコード)をコンパイルする(t34)。なお、ここでは、制御プログラム(ソースコード)を送信しているが、これに限定されない。例えば、エンジニアリングツール装置1の制御プログラム管理部13にコンパイル機能をもたせて、コンパイルした実行形式の制御プログラム(オブジェクト)を送信してもよい。
【0032】
次に、実行モジュール3の制御プログラム実行部33は、制御プログラムを実行し(t35)、実行したことをエンジニアリングツール装置1に通知する(t36)。次にエンジニアリングツール装置1の制御プログラム管理部13は開発装置4に実行通知を実施し、開発者が表示部42で実行を確認できるようにする(t37)。また、エンジニアリングツール装置1は制御プログラムを送付した時点で、開発装置4に通知し、プログラムが送付されたことを開発者に通知してもよい。
【0033】
図4は、周期性確認で周期性が守られないと判断した場合の処理シーケンスを示す図である。図4に示す様に処理ブロックT3aは、周期性が守られないと判断した場合の処理シーケンスを示す。処理ステップt31では、処理ブロックT3と同等の処理が行われる。そして、制御プログラム管理部13は、周期性確認で周期性が守られないと判断した場合に、制御プログラムが実行できないことを示す実行不可通知を開発装置4に送信し、開発者が表示部42で確認できるようにする(t38)。
【0034】
以上説明したように、本実施形態によれば、エンジニアリングツール装置1の制御プログラム管理部13が、実行モジュール3の第2制御周期時間と制御プログラムに付帯される第1制御周期時間とを、比較することとした。これにより、制御プログラム管理部13が、制御プログラムの周期性が実行モジュール3において、守られるか否かの検証を行うことが可能となる。このため、配布予定の制御プログラムは、実行モジュール3での実行前に制御周期時間内での実行が可能であることが予め検証済みの状態となる。これにより、実行モジュール3には、周期的に実行可能な制御プログラムのみを配布することができる。
【0035】
(第2実施形態)
第1実施形態に係る制御システム100では、制御プログラムの周期性判断として実行情報を使用したのに対し、第2実施形態係る制御システム100では、センサ5、及びアクチュエータ6などの入出力装置の性能も含めて模擬実行することが可能である点で、第1実施形態に係る制御システム100と相違する。以下では、第1実施形態に係る制御システム100と相違する点を説明する。
【0036】
(構成)
図5は、第2実施形態に係る制御システム100の各装置の構成例を示すブロック図である。図5に示す様に、エンジニアリングツール装置1は、制御プログラム模擬実行部15、及び模擬入出力部16を更に備える点で、第1実施形態に係る制御システム100と相違する。
【0037】
制御プログラム模擬実行部15は、実行モジュール3のCPU情報、メモリ量を含む機器情報にしたがい、実行モジュール3の機器性能を模擬した実行環境を構成する。この制御プログラム模擬実行部15は、例えば実行モジュール3と同等のCPUを用いて模擬実行環境を構成する。この場合、制御プログラム模擬実行部15は、例えばコンテナ仮想化技術を用いて、エンジニアリングツール装置1が有するCPUの使用割合やメモリ量の使用割合を制限することにより模擬実行環境を構成することが可能である。
【0038】
模擬入出力部16は、センサ5、及びアクチュエータ6などの入出力装置の性能情報にしたがい、模擬入出力環境を構成する。例えば、模擬入出力環境は、センサ5、及びアクチュエータ6などを実際に動作させることなく、センサ5、及びアクチュエータ6などの動作と同等の模擬入出力信号を生成可能な環境である。
【0039】
(作用)
図6は、第2実施形態に係る制御システム100での処理シーケンス例を示す図である。図6に示すように、第2実施形態に係る制御システム100での処理シーケンスは、第1実施形態に係る制御システム100と同様に、実行情報を保存する一連の処理である処理ブロックT1a、制御プログラムを保存する一連の処理である処理ブロックT2、及び制御プログラムを配布する一連の処理である処理ブロックT3bと、処理ブロックT3cを有する。より具体的には、処理ブロックT1aでは、取得する実行情報に実行モジュール3のCPU情報、メモリ量、センサ5の性能情報、及びアクチュエータ6の性能情報が含まれる。また、第2実施形態に係る処理ブロックT2は、第1実施形態に係る処理ブロックT2と同等の処理である。
【0040】
周期性確認の処理ブロックt31aでは、制御プログラム管理部13は、制御プログラム模擬実行部15の模擬動作の処理結果に基づき、周期性が守られるか否かを判定する。制御プログラム模擬実行部15は、制御プログラム(ソース)を模擬実行環境に合わせてコンパイルし、制御プログラムを実行する。この場合、制御プログラム模擬実行部15は、模擬入出力部16と連動することにより、実行モジュール3の実環境と同等の模擬実行を行うことが可能である。
【0041】
制御プログラム管理部13は、メタ情報の第1制御周期時間と、制御プログラム模擬実行部15の模擬動作による第2制御周期時間との比較により、第1制御周期時間が守られるか否かを判定する。以降の処理は第1実施形態に係る処理ブロックT3と同等である。
【0042】
図7は、第2実施形態に係る周期性確認で周期性が守られないと判断した場合の処理シーケンスを示す図である。処理ブロックT3cでは、周期性確認の処理ブロックt31aが行われる点が、第1実施形態に係る処理ブロックT3aと相違する。すなわち、処理ブロックT3cでは、制御プログラム模擬実行部15は、周期性の評価として、模擬入出力部16と連動することにより、実行モジュール3の実環境と同等の模擬実行を行うものである。周期性確認後の処理シーケンスは第1実施形態に係る処理シーケンスと同様である。
【0043】
このように、第2実施形態に係る制御システム100の制御プログラム模擬実行部15は、実行モジュール3のCPU情報、メモリ量、センサ5の性能情報、及びアクチュエータ6の性能情報を用いた模擬実行環境を構築することが可能である。これにより、実環境の実行モジュール3の周期性の性能評価をより高精度に行うことが可能となる。このため、開発者は、実行モジュール3の性能により適合させることが可能な、制御プログラムの開発が可能となる。これにより、実行モジュール3では、実行モジュール3の計算機リソースをより有効に活用することが可能な制御プログラムの配布をうけることが可能となる。
【0044】
(第2実施形態の変形例)
第2実施形態の変形例に係る制御システム100は、エンジニアリングツール装置1の構成した実行環境を実行モジュール3に送付する点で第2実施形態に係る制御システム100と相違する。以下では、第2実施形態に係る制御システム100と相違する点を説明する。
(構成)
図8は、第2実施形態の変形例に係る制御システム100の構成例を示すブロック図である。図8に示すように、第2実施形態の変形例に係る実行モジュール3は、制御プログラム実行環境動作部35、を更に有する点で第2実施形態に係る実行モジュール3と相違する。一方で、第2実施形態の変形例に係る実行モジュール3は、制御プログラム保持部32、制御プログラム実行部33、及び制御プログラムコンパイル部34を有さない構成とすることも可能である。
【0045】
制御プログラム実行環境動作部35は、制御プログラム模擬実行部15が構成した実行環境を動作させる。この実行環境は、制御プログラム(オブジェクト)と制御プログラム実行部33とを組合わせた構成と同等である。実行環境は、コントローラとして動作するために必要なミドルウェアやソフトウェアを内包することも可能である。なお、実行環境は、仮想マシンを用いて構築してもよいし、コンテナ仮想化技術を用いて構築してもよい。また、実行環境である仮想マシンやコンテナ内に、複数の制御プログラムを内包してもよい。
【0046】
(作用)
図9は、第2実施形態の変形例に係る処理シーケンスを示す図である。図9に示すようように、処理ブロックT1a、T2、T3cは、第2実施形態に係る処理シーケンスと同等である。一方で、第2実施形態の変形例に係る処理ブロックT3dでは、周期性確認処理(t31a)の後に、周期性を満たす場合に、エンジニアリングツール装置1の制御プログラム模擬実行部15が、模擬実行に用いた実行環境に対応する実行環境を実行モジュール3に提供する(t40)。
【0047】
また、実行モジュール3は、提供された実行環境に従った処理動作を行う(t41)。この後の処理(t36、t37)は、第2実施形態の変形例に係る処理ブロックT3bと同等である。
【0048】
以上説明したように、第2実施形態の変形例に係る制御システム100では、エンジニアリングツール装置1の制御プログラム模擬実行部15が、模擬実行に用いた実行環境に対応する実行環境を実行モジュール3に提供することとした。これにより、評価に用いた実行環境を実行モジュール3で動作させることが可能となり、開発者は、実行モジュール3の性能により適合させた制御プログラムの開発が可能となる。また、実行モジュール3で動作させることで実行モジュール3の機能数を削減させることも可能となる。さらに、実行モジュール3の個別の情報に適合させて実行環境を構成しているので、実行モジュール3のコンパイル環境を統一することなく、周期性の評価を行うことが可能となる。
【0049】
(第3実施形態)
第1実施形態に係る制御システム100では、広域ネットワークの通信も含めて模擬実行することが可能である点で、第2実施形態の変形例に係る制御システム100と相違する。以下では、第2実施形態の変形例に係る制御システム100と相違する点を説明する。
【0050】
(構成)
図10は、第3実施形態に係る制御システム100の構成例を示すブロック図である。図10に示すように、第3実施形態に係る制御システム100は、遠隔実行モジュール7を更に備える点で第2実施形態に係る制御システム100と相違する。
【0051】
遠隔実行モジュール7は、実行モジュール3の遠隔制御、及び遠隔管理に用いられる。このため、実行モジュール3の遠隔制御には、ネットワーク2を介した通信時間も考慮することが必要となる。
【0052】
この遠隔実行モジュール7は、通信部71と、制御プログラム実行環境動作部72とを備える。通信部71は、例えば、有線又は無線回線を用いたインターネット等の種々の通信手法を介して他の装置と通信を実現できるインタフェースである。制御プログラム実行環境動作部72は、制御プログラム模擬実行部15が構成した実行環境を動作させる。なお、遠隔実行モジュール7は複数存在してもよい。
【0053】
また、実行モジュール3は、模擬入出力部36と、制御入出力適用部37とを備える。一方で、制御プログラム実行環境動作部35を有さない構成とすることが可能である。模擬入出力部36は、センサ5、及びアクチュエータ6などの入出力装置の性能情報にしたがい、模擬入出力環境を構成する。すなわち、模擬入出力環境は、センサ5、及びアクチュエータ6などを実際に動作させることなく、センサ5、及びアクチュエータ6などの動作と同等の模擬入出力信号を生成可能な環境である。また、模擬入出力部36は、模擬入出力信号を、ネットワーク2を介して、エンジニアリングツール装置1の制御プログラム模擬実行部と通信することが可能である。
【0054】
制御入出力適用部37は、ネットワーク2を介した制御信号に従い、センサ5、及びアクチュエータ6などの入出力装置の制御を行うことが可能である。また、センサ5、及びアクチュエータ6などの入出力装置の出力信号を、ネットワーク2を介して、遠隔実行モジュール7の制御プログラム実行環境動作部72と通信する。
【0055】
なお、エンジニアリングツール装置1と実行モジュール3との間の通信時間と、遠隔実行モジュール7と実行モジュール3との間の通信時間を近づけるために、例えばエンジニアリングツール装置1と遠隔実行モジュール7は同じローカルエリアネットワーク上に設置して評価可能である。或いは、同じ現場内に設置してもよい。
【0056】
(作用)
図11は、第3実施形態に係る処理シーケンス例を示す図である。図11に示すように、処理ブロックT1a、T2は、第2実施形態の変形例に係る処理シーケンスと同等である。一方で、第3実施形態に係る処理ブロックT3eでは、先ず、開発装置4の通信部41は、操作部41の入力情報に従い、配布したい制御プログラムの制御プログラムIDと配布先の実行モジュールID、使用する遠隔実行モジュール7の遠隔実行モジュールIDを、エンジニアリングツール装置1に送付する(t50)。
【0057】
制御プログラム模擬実行部15は、実行モジュール3のCPU情報、メモリ量を含む機器情報にしたがい、実行モジュール3の機器性能を模擬した実行環境を構成する。続けて、制御プログラム模擬実行部15は、実行モジュール3の模擬入出力部36に模擬入出力信号を要求する。模擬入出力部36は、制御プログラム模擬実行部15の要求に応じた模擬入出力信号を、制御プログラム模擬実行部15との間でやりとりする(t52)。
【0058】
周期性確認の処理ブロックt53では、制御プログラム管理部13は、制御プログラム模擬実行部15の模擬動作の処理結果に基づき、周期性が守られるか否かを判定する。制御プログラム管理部13は、メタ情報の第1制御周期時間と、模擬実行部15の模擬動作による第2制御周期時間との比較により、第1制御周期時間が守られるか否かを判定する。続けて、制御プログラム管理部13は、周期性確認処理(t53)の後に、周期性を満たす場合に、制御プログラム模擬実行部15が、模擬実行に用いた実行環境に対応する実行環境と実行モジュール3の実行モジュールIDを遠隔実行モジュール7に提供する(t54)。
【0059】
次に、遠隔実行モジュール7の制御プログラム実行環境動作部72は、提供された実行環境に従った処理動作を行う(t55)。制御プログラム実行環境動作部72は、実行モジュール3の制御入出力適用部37に、入出力信号を要求する(t56)。制御入出力適用部37は、要求に答える場合に、入出力信号通信を開始する(t57)。
【0060】
次に、遠隔実行モジュール7の制御プログラム実行環境動作部72は、制御プログラムを実行したことをエンジニアリングツール装置1に通知する(t58)。次に、エンジニアリングツール装置1の制御プログラム管理部13は開発装置4に実行通知を実施し、開発者が表示部42で実行を確認できるようにする(t59)。
【0061】
一方で、制御プログラム管理部13は、周期性確認で周期性が守られないと判断した場合は、第2実施形態の変形例における処理ブロックT3cと同様に実行不可通知を開発装置4に実行通知を実施し、開発者が表示部42で実行不可を確認できるようにする。
【0062】
以上説明したように、本実施形態によれば、模擬入出力部36を実行モジュール3に配置することとした。これにより、エンジニアリングツール装置1の制御プログラム模擬実行部15は、ネットワーク2を介した通信時間を含めて制御プログラムを模擬実行することが可能となる。このため、開発者は、遠隔制御においても実行モジュール3の性能により適合させた制御プログラムの開発が可能となる。
【0063】
以上、いくつかの実施形態を説明したが、これらの実施形態は、例としてのみ提示したものであり、発明の範囲を限定することを意図したものではない。本明細書で説明した新規な装置、方法及びプログラムは、その他の様々な形態で実施することができる。また、本明細書で説明した装置、方法及びプログラムの形態に対し、発明の要旨を逸脱しない範囲内で、種々の省略、置換、変更を行うことができる。
【符号の説明】
【0064】
1:エンジニアリングツール装置、2:ネットワーク、3:実行モジュール、4:開発装置、11:通信部、12:制御プログラム保持部、13:制御プログラム管理部、14:制御実行情報保持部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11