JP2020030690A - シミュレーション方法、シミュレーションシステム、およびプログラム - Google Patents

シミュレーション方法、シミュレーションシステム、およびプログラム Download PDF

Info

Publication number
JP2020030690A
JP2020030690A JP2018156604A JP2018156604A JP2020030690A JP 2020030690 A JP2020030690 A JP 2020030690A JP 2018156604 A JP2018156604 A JP 2018156604A JP 2018156604 A JP2018156604 A JP 2018156604A JP 2020030690 A JP2020030690 A JP 2020030690A
Authority
JP
Japan
Prior art keywords
devices
simulation
abnormality
time table
control system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018156604A
Other languages
English (en)
Other versions
JP7137994B2 (ja
Inventor
文弥 塚越
Fumiya Tsukakoshi
文弥 塚越
博史 大▲崎▼
Hirofumi Osaki
博史 大▲崎▼
遼嗣 岡田
Ryoji Okada
遼嗣 岡田
信明 立岩
Nobuaki Tateiwa
信明 立岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP2018156604A priority Critical patent/JP7137994B2/ja
Publication of JP2020030690A publication Critical patent/JP2020030690A/ja
Application granted granted Critical
Publication of JP7137994B2 publication Critical patent/JP7137994B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】制御システムを構成する各機器に発生する異常を予測すること。【解決手段】シミュレーション方法は、複数の機器と、複数の機器を接続する通信ネットワークとを含むシステムの動作をシミュレーションする方法であって、複数の機器の動作および複数の機器間の通信ネットワーク上における動作をそれぞれ規定した論理プロセスを設定するステップと、複数の機器に応じてタイムテーブルを設定するステップと、複数の機器に規定された論理プロセスをタイムテーブルに従って並列実行させるステップと、を含む。【選択図】図6

Description

本発明は、シミュレーション方法、シミュレーションシステム、およびプログラムに関する。
ロボット、飛行機などを制御する制御システムは種々の機器で構成されており、各機器はそれぞれに実装されるソフトウェアに基づいて動作する。新規の制御システムを構築する際に、MATLAB(登録商標)などを用いて、制御システムを複数の機能ブロックにモデル化し、制御システムの動作をシミュレーションする技術が知られている(例えば、特許文献1)。
特許第5651251号公報
制御システムを構成する各機器は、異なる事業者が個々に制作することが多く、制御システム全体として動作させたときに、不具合が散見される。そのため、メーカ間の調整、機器のソフトウェアの再実装など膨大な時間と手間を要することがあった。しかしながら、特許文献1は、論理プロセスの並列実行の速度を向上する技術を提供するのみであり、制御システム全体とし動作したときに、各機器に発生する異常を予測することができないという問題がある。
そこで、本発明は、制御システムを構成する各機器に発生する異常を予測することのできるシミュレーション方法、シミュレーションシステム、およびプログラムを提供することを課題とする。
本発明のシミュレーション方法は、複数の機器と、複数の前記機器を接続する通信ネットワークとを含むシステムの動作をシミュレーションする方法であって、前記複数の機器の動作および複数の前記機器間の前記通信ネットワーク上における動作をそれぞれ規定した論理プロセスを設定するステップと、前記複数の機器に応じてタイムテーブルを設定するステップと、前記複数の機器に規定された前記論理プロセスを前記タイムテーブルに従って並列実行させるステップと、を含む。
この方法によれば、複数の機器の動作および複数の機器間のネットワーク動作をシミュレーションで模擬することができる。したがって、実際にシステムを構築し、システム全体として動作させることなく、システムの動作を確認することができる。
また、前記論理プロセスの実行結果に基づいて、前記複数の機器の異常および前記複数の機器の間の通信異常を検出するステップをさらに含むことが好ましい。
この方法によれば、複数の機器の動作および複数の機器間のネットワーク動作で発生する異常をシミュレーションで模擬することができる。したがって、実際にシステムを構築し、システム全体として動作させることなく、システムで発生する異常を予測することができる。
また、前記通信異常を検出するステップでは、前記複数の機器の仕様情報に基づいて、前記通信異常を検出することが好ましい。
この方法によれば、複数の機器の動作および複数の機器間のネットワーク動作で発生する異常を仕様情報との差異に基づいて検出することができる。したがって、システムで発生する異常をより精度よく予測することができる。
また、前記システムは、稼働系と、待機系とを含む冗長システムで構成されており、前記通信異常が検出された場合に、前記稼働系から前記待機系に切り替えるステップをさらに含むことが好ましい。
この方法によれば、冗長系を備えるシステムにおける複数の機器の動作および複数の機器間のネットワーク動作をシミュレーションで模擬することができる。したがって、実際にシステムを構築し、システム全体として動作させることなく、システムの動作をより精度よく確認することができる。
また、前記通信異常を検出するステップでは、前記通信異常が連続して検出された場合において前記稼働系から前記待機系に切り替わらない場合に異常であることを検出し、前記通信異常が連続して検出されない場合において前記稼働系から前記待機系に切り替わった場合に異常であることを検出することが好ましい。
この方法によれば、冗長系を備えたシステムで発生する複数の機器の動作および複数の機器間のネットワーク動作で発生する異常をシミュレーションで模擬することができる。したがって、実際にシステムを構築し、システム全体として動作させることなく、冗長系を備えたシステムで発生する異常を予測することができる。
本発明のシミュレーションシステムは、複数の機器と、複数の前記機器を接続する通信ネットワークとを含むシステムを模擬したシステムモデルを生成し、前記複数の機器の動作および複数の前記機器間の前記通信ネットワーク上における動作をそれぞれ規定した論理プロセスを設定する論理プロセス設定部と、前記複数の機器に応じてタイムテーブルを設定するタイムテーブル設定部と、前記複数の機器に設定された前記論理プロセスを前記タイムテーブルに従って並列実行させる論理プロセス実行部と、を備える。
この構成によれば、複数の機器の動作および複数の機器間のネットワーク動作で発生する異常をシミュレーションで模擬することができる。したがって、実際にシステムを構築し、システム全体として動作させることなく、システムで発生する異常を予測することができる。
本発明のプログラムは、コンピュータに、複数の機器と、複数の前記機器を接続する通信ネットワークとを含むシステムの動作をシミュレーションさせるためのプログラムであって、前記コンピュータに、前記複数の機器の動作および複数の前記機器間の前記通信ネットワーク上における動作をそれぞれ規定した論理プロセスを設定するステップと、前記複数の機器に応じてタイムテーブルを設定するステップと、前記複数の機器に規定された前記論理プロセスを前記タイムテーブルに従って並列実行させるステップと、を実行させる。
このプログラムによれば、複数の機器の動作および複数の機器間のネットワーク動作で発生する異常をシミュレーションで模擬することができる。したがって、実際にシステムを構築し、システム全体として動作させることなく、システムで発生する異常を予測することができる。
図1は、本発明の実施形態において制御システムモデルを構築する実際の制御システムの構成の一例を示す概略図である。 図2は、本発明の実施形態に係る制御システムをモデル化した制御システムモデルの一例を示すブロック図である。 図3は、本発明の実施形態に係る制御システムモデルの機器モデルの構成の一例を示すブロック図である。 図4は、本発明の実施形態に係る制御システムモデルに設定されたタイムチャートの一例である。 図5は、本発明の実施形態に係るシミュレーションシステムの構成を示すブロック図である。 図6は、本発明の実施形態に係るシミュレーション装置の動作の流れの一例を示すフローチャートである。 図7は、本発明の実施形態に係る冗長系の制御システムモデルの一例を示すブロック図である。 図8は、本発明の実施形態に係る冗長系の制御システムモデルの動作の流れの一例を示すシーケンス図である。 図9は、本発明の実施形態に係る冗長系の制御システムモデルの動作の流れの一例を示すシーケンス図である。 図10は、本発明の実施形態に係る冗長系の制御システムモデルの動作の流れの一例を示すシーケンス図である。 図11は、本発明の実施形態に係る冗長系の制御システムモデルの異常があった場合の動作の流れの一例を示すシーケンス図である。 図12は、本発明の実施形態に係る冗長系の制御システムモデルの異常があった場合の動作の流れの一例を示すシーケンス図である。
以下に添付図面を参照して、本発明に係る実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含む。
図1を用いて、本発明の実施形態でモデル化するシステムの構成について説明する。図1は、モデル化する制御システムの構成の一例を示す概略図である。
図1に示すように、制御システム1は、第1の機器2−1と、第2の機器2−2と、・・・、第Nの機器2−N(Nは3以上の整数)とを含む。第1の機器2−1から第Nの機器2−Nは、それぞれ、通信ネットワーク3を介して、互いに通信可能に接続されている。制御システム1は、例えば、飛行機やロケットなどを制御する制御システムである。
第1の機器2−1から第Nの機器2−Nは、それぞれ、アプリケーションと、ミドルウェアと、OS(Operating System)と、ハードウェアとから構成されている。ここで、OSは、例えば、TOPPERS(Toyohashi Open Platform for Embedded Real-Time Systems)などの組み込み用のOSである。第1の機器2−1から第Nの機器2−Nにおいて、ミドルウェアと、OSと、ハードウェアとは共通であり、アプリケーションのみが異なっている。第1の機器2−1から第Nの機器2−Nは、飛行機やロケットなどを制御するために、それぞれ、アプリケーションに従った物理量を測定している。第1の機器2−1から第Nの機器2−Nが測定する物理量に特に制限はないが、例えば、機体の角度や加速度である。本実施形態では、アプリケーションは、例えば、C言語で記述されているものとする。第1の機器2−1から第Nの機器2−Nは、それぞれが独立して動作する機器である。具体的には、第1の機器2−1から第Nの機器2−Nは同期をとるために、第1の機器2−1から第Nの機器2−Nのうちの一台が、例えば、32ミリ秒間隔で他の機器に同期信号を出力する。各機器は、同期信号を基準として、アプリケーションに応じた動作を実行する。
通信ネットワーク3は、第1の機器2−1から第Nの機器2−Nのそれぞれを互いに通信可能に接続するネットワークである。通信ネットワーク3に特に制限はないが、MIL−STD−1553Bや、Ethernet(登録商標)などの通信規格が用いられる。
次に、図2を用いて、実際のシステムを模擬して生成したシステムモデルについて説明する。図2は、図1に示す制御システム1を模擬した制御システムモデルを示すブロック図である。本実施形態では、制御システム1を模擬したシステムモデルをソフトウェアで構築し、シミュレーションによって制御システム1の動作を模擬する。
図2に示すように、制御システムモデル10は、第1の機器モデル11−1と、第2の機器モデル11−2と、・・・、第Nの機器モデル11−Nと、仮想通信ネットワーク12とを含む。制御システムモデル10は、モデルエディタ上において、複数のブロックと、各ブロック間の信号の送受信を表す結線によって構成される。
本実施形態において、制御システムモデル10は、例えば、MATLAB上で動作するSimulink(登録商標)によって生成される。具体的には、本実施形態では、Simulink機能によって機器に相当する制御ブロックを配置することで制御システムモデル10を生成し、閉ループシミュレーションを実行する。
図3を用いて、各機器モデルの構成について説明する。図3は、第1の機器モデル11−1の構成を示すブロック図である。第2の機器モデル11−2から第Nの機器モデル11−Nの構成については、第1の機器モデル11−1と同様なので説明は省略する。
図3に示すように、第1の機器モデル11−1は、模擬アプリケーション13と、模擬ミドルウェア14と、模擬OS15とを有している。
模擬アプリケーション13は、図1に図示の第1の機器2−1に搭載されているアプリケーションの仕様書や、冗長性に関する仕様書などに基づいて生成された、第1の機器2−1のアプリケーションを模擬したモデルである。この場合、模擬アプリケーション13は、第1の機器2−1が持つアプリケーションと同じ言語で記述されていることが好ましい。具体的には、第1の機器2−1のアプリケーションがC言語で記述されている場合には、模擬アプリケーション13は、C言語で記述されていることが好ましい。
模擬ミドルウェア14は、図1に図示の第1の機器2−1のミドルウェアの仕様書に基づいて生成された、第1の機器2−1のミドルウェアを模擬したモデルである。
模擬OS15は、図1に図示の第1の機器2−1のOSの仕様書に基づいて生成された、第1の機器2−1のOSを模擬したモデルである。模擬OS15は、例えば、ソースコードで構成されており、あらかじめ定められた所定の時間にのみ模擬アプリケーション13が動作するように構成されている。このため、制御システムモデル10を構成する第1の機器モデル11−1から第Nの機器モデル11−Nは、あらかじめ定められたタイムテーブルに従って対応する機器の動作を模擬する。タイムテーブルは、第1の機器モデル11−1から第Nの機器モデル11−Nの設計に応じて変更することができる。
再び図2を参照する。仮想通信ネットワーク12は、図1に図示の第1の機器2−1の通信ネットワーク3の仕様書に基づいて生成された、第1の機器2−1の通信ネットワーク3を模擬したモデルである。ここで、仮想通信ネットワーク12は、通信ネットワーク3を完全に模擬したモデルである必要はなく、簡易的に模擬したモデルであってもよい。すなわち、仮想通信ネットワーク12は、例えば、1553B通信や、Ethernetなどを仮想的に実現している。仮想通信ネットワーク12には、第1の機器モデル11−1から第Nの機器モデル11−Nが接続されている。これにより、第1の機器モデル11−1から第Nの機器モデル11−Nは、それぞれ、仮想通信ネットワーク12を介してデータを送受信できるようになっている。この際、仮想通信ネットワーク12は、負荷の違いによる処理時間のバラツキや、動作の違いによる実行時間のバラツキを模擬することができる。
本実施形態では、第1の機器モデル11−1から第Nの機器モデル11−Nは、それぞれ、第1の機器2−1から第Nの機器2−Nの仕様書に基づいて生成されている。仮想通信ネットワーク12は、通信ネットワーク3の仕様書に基づいて生成されている。そのため、本実施形態は、各機器と、モデル化された各機器のインターフェースは一致しているので、各機器の仕様書に従って、所望の動作を模擬して実行できるようなタイムテーブルを生成することができる。また、本実施形態では、各機器に接続されている通信ネットワーク3だけでなく、各機器に接続された電源もモデル化されており、電源の動作も模擬して動作させることができる。したがって、本実施形態は、例えば、後述するシミュレーションシステムにおいて、ネットワーク上における制御システム1のタイムテーブルに従った挙動をシミュレーションすることができる。
図4を用いて、タイムテーブルの一例について説明する。図4は、タイムテーブルの一例を示す図である。
図4では、第1の機器モデル11−1と、第2の機器モデル11−2と、第3の機器モデル11−3と、第4の機器モデル11−4との4台の機器モデルを動作させるためのタイムテーブルを示している。タイムテーブル中の「1」から「24」までの数字は、それぞれの機器モデルが対応する機器の動作を模擬する順番を示している。図4に図示のタイムテーブルは、T1からT16の16個の時間間隔を有しており、第1の機器モデル11−1から第4の機器モデル11−4は、分割された区間内で動作するように構成されている。区間T1からT16は、同一の時間間隔を有しており、例えば、200マイクロ秒から300マイクロ秒である。このように、同期信号を出力する間隔である32ミリ秒を短い時間に分割したうえで、第1の機器モデル11−1から第4の機器モデル11−4を周期的に動作させる。これにより、分割した区間において、複数の機器が同時に動作しているようなシミュレーションを実行することができる。図4に示すタイムテーブルは、例示であり、本発明を限定するものではない。各機器モデルに対応する機器の動作を模擬させる順番や、時間間隔は設計に応じて任意に変更可能である。
図4のタイムテーブルを具体的に説明すると、区間T1では、第1の機器モデル11−1、第2の機器モデル11−2、第3の機器モデル11−3、第4の機器モデル11−4の順に、それぞれに対応する機器の動作を模擬することを意味している。区間T1では、例えば、第1の機器モデル11−1が同期信号を出力し、第2の機器モデル11−2から第4の機器モデル11−4と同期する動作を模擬している。
区間T2と、区間T3とでは、第1の機器モデル11−1のみが対応する機器の動作を模擬する。ここでは、例えば、第1の機器2−1が、特定の物理量をセンサによって検出する動作を模擬している。
区間T4と、区間T5とでは、第1の機器モデル11−1と、第2の機器モデル11−2とが、対応する機器の動作を模擬する。ここでは、例えば、第1の機器2−1が検出した検出結果を、第2の機器2−2へ送信する動作を模擬している。
区間T6と、区間T7とでは、第1の機器モデル11−1と、第3の機器モデル11−3とが対応する機器の動作を模擬する。ここでは、例えば、第1の機器2−1が検出した検出結果を、第3の機器へ送信する動作を模擬している。
区間T8では、第1の機器モデル11−1と、第4の機器モデル11−4とが対応する機器の動作を模擬する。ここでは、例えば、第1の機器2−1が検出した検出結果を第4の機器へ送信する動作を模擬している。
区間T9から区間T11では、第1の機器モデル11−1から第4の機器モデル11−4は、それぞれ、対応する機器の動作を模擬しない。
区間T12と、区間T13とでは、第1の機器モデル11−1と、第2の機器モデル11−2とが対応する機器の動作を模擬する。ここでは、例えば、第2の機器2−2が、第1の機器2−1から受信した検出結果に対するフィードバックを第1の機器2−1へ送信する動作を模擬している。
区間T14と、区間T15とでは、第1の機器モデル11−1と、第3の機器モデル11−3とが対応する機器の動作を模擬する。ここでは、例えば、第3の機器が、第1の機器2−1から受信した検出結果に対するフィードバックを第1の機器2−1に送信する動作を模擬している。
区間T16では、それぞれ、対応する機器の動作を模擬しない。
上述のとおり、本実施形態では、タイムテーブルに従って、通常であればそれぞれが独立して動作する各機器を、1つの区間で2以上の機器が同時に動作しているようなシミュレーションを実行することができる。本実施形態では、タイムテーブルに従ってシミュレーションさせた結果、タイムテーブルと異なる結果が出力された場合に異常であると判定する。
次に、図5を用いて、本発明の実施形態に係るシミュレーションシステムの構成について説明する。図5は、本発明の実施形態に係るシミュレーションシステムの構成を示すブロック図である。
図3に示すように、シミュレーションシステム100は、操作部110と、表示部120と、シミュレーション装置130とを備える。
操作部110は、例えば、タッチパネルや、キーボードで構成された入力装置である。ユーザは、操作部110を操作することによって、シミュレーション装置130に対して各種の機能を発揮させることができる。ユーザは、例えば、操作部110を操作して、制御システム1を構成する各機器のスペックなどを含む製品情報をソースコードで入力する。ユーザがソースコードで入力した製品情報は、仕様情報153として、後述するシミュレーション装置130の記憶部150に格納される。また、ユーザは、操作部110を操作して、仕様情報153のソースコードを書き換えることで、各機器の仕様をアップデートすることができる。
表示部120は、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)または有機EL(Organic Electro-Luminescence)ディスプレイなどを含むディスプレイである。表示部120は、例えば、シミュレーション結果などをユーザに対して提供する。
シミュレーション装置130は、制御システム1のシミュレーションを実行する装置であり、制御部140と、記憶部150とを備えている。
制御部140は、シミュレーションシステム100を制御する。具体的には、制御部140は、記憶部150に記憶されているプログラムを展開して実行することによってシミュレーションシステム100を制御する。制御部140は、例えば、記憶部150が記憶しているシミュレーションプログラム151を展開して実行することによって制御システムモデル10を生成することができる。制御部140は、例えば、CPU(Central Processing Unit)を含む電子的な回路などで実現することができる。
記憶部150は、制御部140がシミュレーション装置130を制御するためのプログラムを記憶している。記憶部150は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、ソリッドステートドライブ、光ディスクなどの記憶装置である。記憶部150は、例えば、シミュレーションプログラム151と、シミュレーション結果情報152と、仕様情報153とを記憶している。
次に、制御部140について具体的に説明する。制御部140は、論理プロセス設定部141と、タイムテーブル設定部142と、論理プロセス実行部143と、異常検出部144とを有する。
論理プロセス設定部141は、複数の機器の動作および複数の機器間のネットワーク動作をそれぞれ規定した論理プロセスを設定する。具体的には、論理プロセス設定部141は、記憶部150が記憶するシミュレーションプログラム151を展開して実行することによって制御システムモデル10を生成する。そして、論理プロセス設定部141は、制御システムモデル10を構成する第1の機器モデル11−1から第Nの機器モデル11−Nと、仮想通信ネットワーク12とに対してユーザが所望する動作を実行させるための論理プロセスを設定する。ここで、「論理プロセス」とは、制御システム1の動作を模擬した動作を実行させるためのプログラムのことを意味する。また、論理プロセスを設定するとは、制御システムモデル10にユーザが所望する動作を実行させるための、プログラムを設定することを意味する。
タイムテーブル設定部142は、制御システムモデル10を構成する第1の機器モデル11−1から第Nの機器モデル11−Nと、仮想通信ネットワーク12とに応じたタイムテーブルを設定する。具体的には、タイムテーブル設定部142は、記憶部150が記憶する各機器の製品情報を示す仕様情報153に基づいて、各機器に応じたタイムテーブルを設定する。タイムテーブル設定部142は、仕様情報153に基づいているので、最適な動作をするようにタイムテーブルを設定することができる。最適な動作とは、例えば、各機器を動作させるために必要な時間を最小にすることのできる動作である。
論理プロセス実行部143は、制御システムモデル10において、論理プロセス設定部141によって規定された論理プロセスを、タイムテーブル設定部142によって設定されたタイムテーブルに従って実行する。すなわち、論理プロセス実行部143は、制御システム1の動作を模擬したシミュレーションを実行する。論理プロセス実行部143は、シミュレーション結果を表示部120に出力する。これにより、シミュレーション結果がユーザに提供される。論理プロセス実行部143は、シミュレーション結果を記憶部150にシミュレーション結果情報152として記憶する。
異常検出部144は、論理プロセス実行部143が実行したシミュレーション結果と、予め設定した動作の実行結果の期待値とを比較する。これにより、異常検出部144は、シミュレーション結果と、期待値との差異を検出する。
具体的には、異常検出部144は、タイムテーブルと、仕様情報153とに基づいて、設定された論理プロセスの所望のシミュレーション結果を算出する。異常検出部144は、シミュレーション結果情報152と、所望のシミュレーション結果を比較することによって、所望のシミュレーション結果との差異を検出する。具体的には、異常検出部144によるシミュレーション結果情報152と、所望のシミュレーション結果とが一致する場合、ユーザは、制御システム1は正常に動作すると判定することができる。一方、シミュレーション結果情報152と、所望のシミュレーション結果とが一致しない場合、ユーザは、予め設定した期待値が間違っているか、実行したプログラムが間違っているか、制御システム1の構成が間違っているかのいずれかであることを判定することができる。
図6を用いて、シミュレーション装置130の制御部140の動作の流れについて説明する。図6は、制御部140の動作の流れを示すフローチャートである。
まず、制御部140は、複数の機器の動作および複数の機器間のネットワーク動作をそれぞれ規定した論理プロセスを設定する(ステップS11)。そして、制御部140は、ステップS12に進む。
制御部140は、論理プロセスに対して複数の機器に応じたタイムテーブルを設定する(ステップS12)。そして、制御部140は、ステップS13に進む。
制御部140は、設定された論理プロセスを、複数の機器に応じて設定されたタイムテーブルに従って、並列実行する(ステップS13)。そして、制御部140は、ステップS14に進む。
制御部140は、ステップS13で実行したシミュレーション結果と、あらかじめ定められている所望の結果とを比較する(ステップS14)。そして、制御部140は、ステップS15に進む。
シミュレーション結果と、所望の結果とが一致する場合(ステップS15の「Yes」)、制御部140は、ステップS16に進み、制御システム1は正常に動作すると判定する(ステップS16)。そして、制御部140は、図6の動作を終了する。
一方、シミュレーション結果と、所望の結果とが一致しない場合(ステップS15の「No」)、制御部140は、ステップS17に進み、制御システム1には異常があると判定する(ステップS17)。そして、制御部140は、図6の動作を終了する。
図7を用いて、本実施形態において、制御システムに異常が発生した場合の動作を実行させるシステムの一例について説明する。図7は、冗長系を備えた制御システムの一例を示す図である。
図7に示すように、制御システム1Aは、アクチュエータ20と、稼働系システム30と、待機系システム40とを備える。
稼働系システム30は、第1のコントローラ31と、第1のセンサ32とを備える。第1のコントローラ31は、例えば、CPUを含む電子的な回路で実現することができる。第1のセンサ32は、特定の物理量を測定する。制御システム1Aでは、第1のコントローラ31が第1のセンサ32を制御して、特定の物理量を測定させる。そして、第1のコントローラ31は、第1のセンサ32に測定させた物理量に応じて、アクチュエータ20を制御する。
待機系システム40は、第2のコントローラ41と、第2のセンサ42とを備える。待機系システム40は、稼働系システム30の冗長系のシステムである。第2のコントローラ41と、第2のセンサ42とは、それぞれ、第1のコントローラ31と、第1のセンサ32と同様の動作を実行する。
図8と、図9と、図10とを用いて、制御システム1Aにおける、所望の動作の流れについて説明する。図8は、通信異常が発生しない場合の制御システム1Aの動作の一例を示すシーケンス図である。図9は、通信異常が一回発生した場合の制御システム1Aの動作の一例を示すシーケンス図である。図10は、通信異常が連続して発生した場合の制御システム1Aの動作の一例を示すシーケンス図である。図8と、図9と、図10との動作の流れは、シミュレーションシステム100で実行される論理プロセスの所望の流れであるものとする。
図8を参照して、通信異常が発生しない場合の制御システム1Aの所望の動作の流れを説明する。
第1のコントローラ31は、第1のセンサ32に対して問い合わせを送信することで、センサデータを要求する(ステップS101)。第1のセンサ32は、問い合わせに従って、物理量を測定したセンサデータを第1のコントローラ31に送信する(ステップS102)。第1のコントローラ31は、受けたセンサデータに応じた動作をアクチュエータ20に実行させるために、コマンドAをアクチュエータ20に送信する(ステップS103)。
ステップS101からステップS103と並行して、第2のコントローラ41は、第2のセンサ42に対して問い合わせを送信することで、センサデータを要求する(ステップS104)。第2のセンサ42は、問い合わせに従って、物理量を測定したセンサデータを第2のコントローラ41に送信する(ステップS105)。ここで、第2のセンサ42が送信するセンサデータは、ステップS102で第1のセンサ32が第1のコントローラ31に送信したセンサデータと同一である。第2のコントローラ41は、受けたセンサデータに応じた動作をアクチュエータ20に実行させるために、コマンドBをアクチュエータ20に送信する(ステップS106)。
アクチュエータ20は、通常、稼働系である第1のコントローラ31から受けたコマンドAを採用する(ステップS107)。アクチュエータ20は、コマンドAに従った動作を実行する。
以降、ステップS108からステップS114に示すように、ステップS101からステップS107の動作を繰り返す。
図9を参照して、通信異常が一回発生した場合の制御システム1Aの所望の動作の流れを説明する。
ステップS201からステップS207は、ステップS101からステップS107と同様なので、説明は省略する。
第1のコントローラ31は、第1のセンサ32に対して問い合わせを送信する(ステップS208)。第1のコントローラ31は、通信の異常などが発生しセンサデータを第1のセンサ32から受けることができなかった場合、ステップS203で送信したコマンドAをアクチュエータ20に送信する(ステップS209)。
ステップS210からステップS212は、ステップS204からステップS206の動作の繰り返しなので、説明は省略する。
アクチュエータ20は、通信異常が一回目の場合は、稼働系である第1のコントローラ31から受けたコマンドAを採用する(ステップS213)。この場合、アクチュエータ20は、ステップS207で実行した動作と同様の動作を実行する。
以降、ステップS214からステップS220に示すように、ステップS101からステップS107の動作を繰り返す。
図10を参照して、通信異常が連続して発生した場合の制御システム1Aの所望の動作の流れを説明する。
ステップS301からステップS313は、ステップS201からステップS213と同様なので、説明は省略する。
第1のコントローラ31は、第1のセンサ32に対して問い合わせを送信する(ステップS314)。第1のコントローラ31は、通信の異常などにより連続してセンサデータを受けることができなかった場合、異常があったことを示すコマンドAをアクチュエータ20に送信する(ステップS315)。
ステップS316からステップS318は、ステップS304からステップS306の動作の繰り返しなので、説明は省略する。
アクチュエータ20は、異常があったことを示すコマンドAを受けた場合には、コマンドBを採用する(ステップS319)。この場合、アクチュエータ20は、コマンドBに従った動作を実行する。
以降、ステップS320からステップS323に示すように、ステップS316からステップS319の動作を繰り返す。
図11と、図12とを参照して、シミュレーションシステム100が機器の異常又は通信異常を検出する方法について説明する。図11は、通信異常が発生しない場合の制御システム1Aの動作の異常の一例を示すシーケンス図である。図12は、通信異常が一回発生した場合の制御システム1Aの動作の異常の一例を示すシーケンス図である。
図11を参照して、通信異常が発生していない場合の制御システム1Aにおいて、シミュレーションシステム100が異常を検出する方法の一例について説明する。
ステップS401からステップS414は、ステップS101からステップS114と同様なので、説明は省略する。また、ステップS415からステップS420は、ステップS101からステップS106の繰り返しなので説明は省略する。
アクチュエータ20は、コマンドBを採用する(ステップS421)。この場合、アクチュエータ20は、コマンドBに従った動作を実行する。しかしながら、通信異常が発生していない場合には、図8に示すように、アクチュエータ20は、コマンドAを採用することが所望されている。シミュレーションシステム100の制御部140は、図8に図示の通信異常が発生していない場合の所望の動作の流れと、図11に図示の実際のシミュレーション結果とを比較することによって、制御システム1Aで発生する異常を予測することができる。これにより、シミュレーションシステム100の制御部140は、図11の動作の流れが異常であると判定する。
図12を参照して、通信異常が一回発生した場合の制御システム1Aにおいて、シミュレーションシステム100が異常を検出する方法の一例について説明する。
ステップS501からステップS508は、ステップS201からステップS208と同様なので、説明は省略する。
第1のコントローラ31は、異常があったことを示すコマンドAを送信する(ステップS509)。ステップS510からステップS512は、ステップS210からステップS212と同様なので説明は省略する。
アクチュエータ20は、異常があったことを示すコマンドAを受けているのでコマンドBを採用する(ステップS513)。この場合、アクチュエータ20は、コマンドBに従った動作を実行する。ステップS514からステップS519は、ステップS201からステップS206の繰り返しなので説明は省略する。この場合、アクチュエータ20は、コマンドAを受けているにも関わらず、コマンドBを採用する(ステップS520)。
しかしながら、通信異常の発生が一回目である場合には、図9に示すように、ステップS503のコマンドAを送信し、アクチュエータ20は、ステップS503のコマンドAを採用することが所望されている。シミュレーションシステム100は、図9に図示の通信異常が一回発生した場合の所望の動作の流れと、図12に図示の実際のシミュレーション結果とを比較することによって、制御システム1Aで発生する異常を予測することができる。これにより、シミュレーションシステム100の制御部140は、図12の動作の流れが異常であると判定する。
上述のとおり、本実施形態は、複数の機器が通信ネットワークを介して接続されている制御システムにおいて、実際に制御システムを構築することなく、制御システムの動作を確認することができる。これにより、本実施形態は、制御システムに発生する異常を予測することができる。
本実施形態では、機器間の通信異常を予測する場合について説明したが、これは例示であり、本発明を限定するものではない。本実施形態は、誤った信号を出力するなどの機器に発生する異常も検出することができる。
1,1A 制御システム
2−1 第1の機器
2−2 第2の機器
2−N 第Nの機器
3 通信ネットワーク
10 制御システムモデル
11−1 第1の機器モデル
11−2 第2の機器モデル
11−N 第Nの機器モデル
12 仮想通信ネットワーク
13 模擬アプリケーション
14 模擬ミドルウェア
15 模擬OS
20 アクチュエータ
30 稼働系システム
31 第1のコントローラ
32 第1のセンサ
40 待機系システム
41 第2のコントローラ
42 第2のセンサ
100 シミュレーションシステム
110 操作部
120 表示部
130 シミュレーション装置
140 制御部
141 論理プロセス設定部
142 タイムテーブル設定部
143 論理プロセス実行部
144 異常検出部
150 記憶部
151 シミュレーションプログラム
152 シミュレーション結果情報
153 仕様情報

Claims (7)

  1. 複数の機器と、複数の前記機器を接続する通信ネットワークとを含むシステムの動作をシミュレーションする方法であって、
    前記複数の機器の動作および複数の前記機器間の前記通信ネットワーク上における動作をそれぞれ規定した論理プロセスを設定するステップと、
    前記複数の機器に応じてタイムテーブルを設定するステップと、
    前記複数の機器に規定された前記論理プロセスを前記タイムテーブルに従って並列実行させるステップと、を含む、
    シミュレーション方法。
  2. 前記論理プロセスの実行結果に基づいて、前記複数の機器の異常および前記複数の機器の間の通信異常を検出するステップをさらに含む、
    請求項1に記載のシミュレーション方法。
  3. 前記通信異常を検出するステップでは、前記複数の機器の仕様情報に基づいて、前記通信異常を検出する
    請求項2に記載のシミュレーション方法。
  4. 前記システムは、稼働系と、待機系とを含む冗長システムで構成されており、
    前記通信異常が検出された場合に、前記稼働系から前記待機系に切り替えるステップをさらに含む、
    請求項2または3に記載のシミュレーション方法。
  5. 前記通信異常を検出するステップでは、前記通信異常が連続して検出された場合において前記稼働系から前記待機系に切り替わらない場合に異常であることを検出し、前記通信異常が連続して検出されない場合において前記稼働系から前記待機系に切り替わった場合に異常であることを検出する、
    請求項4に記載のシミュレーション方法。
  6. 複数の機器と、複数の前記機器を接続する通信ネットワークとを含むシステムを模擬したシステムモデルを生成し、前記複数の機器の動作および複数の前記機器間の前記通信ネットワーク上における動作をそれぞれ規定した論理プロセスを設定する論理プロセス設定部と、
    前記複数の機器に応じてタイムテーブルを設定するタイムテーブル設定部と、
    前記複数の機器に設定された前記論理プロセスを前記タイムテーブルに従って並列実行させる論理プロセス実行部と、を備える、
    シミュレーションシステム。
  7. コンピュータに、複数の機器と、複数の前記機器を接続する通信ネットワークとを含むシステムの動作をシミュレーションさせるためのプログラムであって、
    前記コンピュータに、
    前記複数の機器の動作および複数の前記機器間の前記通信ネットワーク上における動作をそれぞれ規定した論理プロセスを設定するステップと、
    前記複数の機器に応じてタイムテーブルを設定するステップと、
    前記複数の機器に規定された前記論理プロセスを前記タイムテーブルに従って並列実行させるステップと、を実行させる、
    プログラム。
JP2018156604A 2018-08-23 2018-08-23 シミュレーション方法、シミュレーションシステム、およびプログラム Active JP7137994B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018156604A JP7137994B2 (ja) 2018-08-23 2018-08-23 シミュレーション方法、シミュレーションシステム、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018156604A JP7137994B2 (ja) 2018-08-23 2018-08-23 シミュレーション方法、シミュレーションシステム、およびプログラム

Publications (2)

Publication Number Publication Date
JP2020030690A true JP2020030690A (ja) 2020-02-27
JP7137994B2 JP7137994B2 (ja) 2022-09-15

Family

ID=69622914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018156604A Active JP7137994B2 (ja) 2018-08-23 2018-08-23 シミュレーション方法、シミュレーションシステム、およびプログラム

Country Status (1)

Country Link
JP (1) JP7137994B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024105747A1 (ja) * 2022-11-14 2024-05-23 日本電信電話株式会社 検査装置、検査方法、および検査プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195306A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 生産設備のシミュレーション装置
WO2013084654A1 (ja) * 2011-12-05 2013-06-13 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション実行方法、プログラム及びシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195306A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 生産設備のシミュレーション装置
WO2013084654A1 (ja) * 2011-12-05 2013-06-13 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション実行方法、プログラム及びシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024105747A1 (ja) * 2022-11-14 2024-05-23 日本電信電話株式会社 検査装置、検査方法、および検査プログラム

Also Published As

Publication number Publication date
JP7137994B2 (ja) 2022-09-15

Similar Documents

Publication Publication Date Title
EP2804058B1 (en) System and method for emulation of an automation control system
CN107957712B (zh) 测试过程控制系统的工程工具和方法
US11175895B2 (en) Code generation and simulation for graphical programming
KR101132358B1 (ko) 다중 피엘씨 시뮬레이션 시스템
US10520935B2 (en) Distributed control system, control device, control method, and computer program product
US3702011A (en) Apparatus and method for simulating logic faults
EP3196717B1 (en) Emulated industrial control
KR20020055599A (ko) 병렬적인 시스템 실행 소프트웨어 시뮬레이터의보안감시장치
CN103150451A (zh) 一种仿真系统及仿真系统数据通讯方法
JP2015176340A (ja) プログラマブルコントローラおよびプログラマブルコントローラによるデバイス制御方法
JP2016012172A (ja) 通信システム、プログラマブル表示器、情報処理装置、動作制御方法、情報処理方法、およびプログラム
JP7137994B2 (ja) シミュレーション方法、シミュレーションシステム、およびプログラム
Chiu Existence and global exponential stability of equilibrium for impulsive cellular neural network models with piecewise alternately advanced and retarded argument
CN111308974A (zh) 一种dcs仿真系统控制的方法、系统及设备
Xuejun et al. Real-time digital simulation of control system with LabVIEW simulation interface toolkit
US10042335B2 (en) Embedded emulation modules in industrial control devices
KR20210031846A (ko) 유체 유량 제어용 밸브 조립체 및 시스템
EP3206101B1 (en) Test device for monitoring control device
CN102292704A (zh) 具有用于实施离线仪器用户设置的内嵌固件的配置器
KR101762994B1 (ko) Plc 시스템에서 입출력 모듈의 이중화 장치 및 방법
JP2019179284A (ja) シミュレーションシステム、及びシミュレーションプログラム
JP2016024798A (ja) 冗長化コントローラシステム、その待機系コントローラ
EP4193225B1 (en) Method and system for providing engineering of an industrial device in a cloud computing environment
US20150312095A1 (en) Information processing device and program
KR20160127608A (ko) 블록 다이어그램과 plc 시뮬레이터를 이용한 가상 플랜트 시뮬레이터 및 이를 이용한 시뮬레이터 실행 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220602

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220905

R150 Certificate of patent or registration of utility model

Ref document number: 7137994

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150