JP6433635B1 - シミュレーション装置およびシミュレーション方法 - Google Patents

シミュレーション装置およびシミュレーション方法 Download PDF

Info

Publication number
JP6433635B1
JP6433635B1 JP2018541453A JP2018541453A JP6433635B1 JP 6433635 B1 JP6433635 B1 JP 6433635B1 JP 2018541453 A JP2018541453 A JP 2018541453A JP 2018541453 A JP2018541453 A JP 2018541453A JP 6433635 B1 JP6433635 B1 JP 6433635B1
Authority
JP
Japan
Prior art keywords
virtual
plc
unit
network
simulation
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.)
Active
Application number
JP2018541453A
Other languages
English (en)
Other versions
JPWO2019049195A1 (ja
Inventor
諒 久家
諒 久家
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 Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6433635B1 publication Critical patent/JP6433635B1/ja
Publication of JPWO2019049195A1 publication Critical patent/JPWO2019049195A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13186Simulation, also of test inputs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32355Simulate control process using virtual bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Manufacturing & Machinery (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)

Abstract

シミュレーション装置において、PLCシステムを動作させるPLCプログラムを記憶する記憶部と、PLCシステムを備えたネットワークシステムの構成を模擬した仮想ネットワークシステム(1)を構築し、仮想ネットワークシステム(1)およびPLCプログラムを用いてネットワークシステムの動作を模擬するシミュレーション部と、を備え、ネットワークシステムは、PLCシステムを複数有し、仮想ネットワークシステム(1)は、PLCシステムの動作を模擬する仮想PLCシステム(10A,10B)を複数有し、シミュレーション部は、仮想ネットワークシステム(1)内で時刻を同期させながら仮想PLCシステム(10A,10B)にPLCプログラムを実行させる。

Description

本発明は、プログラマブルロジックコントローラを備えたネットワークシステムのシミュレーションを実行するシミュレーション装置およびシミュレーション方法に関する。
工場の生産工程の自動化を図るFA(Factory Automation)の分野では、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)を用いた自動制御機器が利用されている。このようなFAの分野では、FAシステム内にPLCが配置されることによって、FAシステムが構築される。このため、大規模なFAシステムが構築される際には、複数のPLCがネットワークで接続されることとなる。
ネットワークを用いてPLCシステムが接続される場合、ネットワークに接続するためのネットワークユニットが用いられる。このネットワークユニットには、通信プロトコルまたはネットワーク構成に適した様々な種類のものがあるので、ユーザは、構築するFAシステムに適切なネットワークユニットを選択して用いることができる。
PLCシステムが構築される際には、PLCが実行するPLCプログラムの動作を確認するためにシミュレーションが実行される。このシミュレーションでは、実機のPLCの動作を模擬する仮想PLCがコンピュータ上に構築され、仮想PLCの動作が所望のものとなるか否かが確認される。これにより、PLCシステム自体を構築すること無く、PLCプログラムの不具合を修正することができるので、FAシステムを構築するコストを低減することが可能となる。
特許文献1に記載のシミュレーション方法では、1台のPC(Personal Computer)が1つの仮想PLCを動作させ、PC用ネットワークを用いて、仮想PLC同士のネットワーク上での動作を模擬して検証している。
特開2003−162304号公報
しかしながら、上記従来の技術である特許文献1では、ネットワーク接続されているPLC毎にPLCの動作を模擬するPCが必要となる。このため、大規模なPLCネットワークを検証する場合、高いコストをかけて複雑な検証環境を構築する必要があった。
本発明は、上記に鑑みてなされたものであって、プログラマブルロジックコントローラを備えたネットワークシステムのシミュレーションを簡易な構成で実行することができるシミュレーション装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、シミュレーション装置において、第1のPLCシステムを動作させる第1のPLCプログラムおよび第2のPLCシステムを動作させる第2のPLCプログラムを記憶する記憶部と、第1のPLCシステムおよび第2のPLCシステムを備えたネットワークシステムの構成を模擬した仮想ネットワークシステムを構築し、仮想ネットワークシステム、第1のPLCプログラムおよび第2のPLCプログラムを用いてネットワークシステムの動作を模擬するシミュレーション部と、を備える。また、本発明のシミュレーション装置は、仮想ネットワークシステムが、第1のPLCシステムの動作を模擬する第1の仮想PLCシステムおよび第2のPLCシステムの動作を模擬する第2の仮想PLCシステムを含む。また、本発明のシミュレーション装置は、シミュレーション部が、第1の仮想PLCシステム内で第1の周期で第1の時刻同期を実行させるとともに、第2の仮想PLCシステム内で第1の周期で第2の時刻同期を実行させ、第1の時刻同期によって設定された第1の時刻と、第2の時刻同期によって設定された第2の時刻と、を第2の周期で同期させながら、第1の仮想PLCシステムに第1のPLCプログラムを実行させ且つ第2の仮想PLCシステムに第2のPLCプログラムを実行させる。
本発明にかかるシミュレーション装置は、プログラマブルロジックコントローラを備えたネットワークシステムのシミュレーションを簡易な構成で実行することができるという効果を奏する。
本発明の実施の形態にかかるシミュレーション装置の構成を示す図 実施の形態にかかる仮想ネットワークシステムの接続構成を説明するための図 実施の形態にかかる仮想ネットワークシステムの構成を示す図 実施の形態にかかるシステム設定データの構成例を示す図 実施の形態にかかるNWU設定データの構成例を示す図 実施の形態にかかる第1の組情報の構成例を示す図 実施の形態にかかる第2の組情報の構成例を示す図 実施の形態にかかる仮想ネットワークシステムの動作処理手順を示すフローチャート 実施の形態にかかるバッファメモリの構成例を示す図 実施の形態にかかるシミュレーション装置のハードウェア構成例を示す図
以下に、本発明の実施の形態にかかるシミュレーション装置およびシミュレーション方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、本発明の実施の形態にかかるシミュレーション装置の構成を示す図である。シミュレーション装置50は、複数のPLCシステムを備えたネットワークシステムのシミュレーションを実行するコンピュータである。シミュレーション装置50は、仮想的なネットワークシステム内に配置された仮想的なPLCシステムを、シミュレーションである模擬動作させることによって、実際のネットワークシステムの動作を検証する。ネットワークシステムの一例は、FAシステムである。
PLCシステムは、PLCシステムの全体を制御するPLCと、PLCシステムに電源供給を行う電源ユニットと、生産装置または設備装置に取り付けられたスイッチまたはセンサの信号を受付ける入力ユニットと、アクチュエータといった外部装置に制御指示を出力する出力ユニットと、ネットワークに接続するための通信ユニットであるネットワークユニットと、複数のユニットが装着されるベースユニットと、を備えている。PLCシステムでは、PLCと、電源ユニットと、入力ユニットと、出力ユニットと、ネットワークユニットと、がベースユニットに接続されている。なお、PLCは、PLCユニットとも呼ばれる。
PLCシステムは、ネットワークユニットを介して他のPLCシステムに接続されている。具体的には、PLCシステムのネットワークユニットと、他のPLCシステムのネットワークユニットとが接続されている。
各PLCシステムは、ネットワークユニットを介して他のPLCシステムからデータを読み出す。このように、ネットワークシステムは、PLCシステム間でデータ通信を実行しながら、各PLCシステムを動作させる。
各PLCシステムは、入力ユニットまたはネットワークユニットがデータを受付けると、受付けたデータに対応する制御指示をPLCが生成し、生成された制御指示を出力ユニットが外部装置に出力する。これにより、各PLCシステムは、PLCシステム間でデータを送受信しながらアクチュエータといった外部装置を制御する。
実施の形態では、シミュレーション装置50が、仮想的なネットワークシステムである仮想ネットワークシステムをシミュレーション装置50内に構築し、この仮想ネットワークシステムを模擬動作させる。仮想ネットワークシステムは、PLCシステムを備えたネットワークシステムの構成を模擬したシステムである。仮想ネットワークシステムは、仮想的なPLCシステムである仮想PLCシステムを複数有しており、各仮想PLCシステムは、仮想的なPLCである仮想PLCと、仮想的なネットワークユニット(NWU:NetWork Unit)である仮想NWUとを備えている。
図2は、実施の形態にかかる仮想ネットワークシステムの接続構成を説明するための図である。ここでは、仮想ネットワークシステム1Xに配置される仮想PLCシステムが仮想PLCシステム10P,10Q,10R,10Sの4つである場合について説明する。仮想ネットワークシステム1Xは、後述する仮想ネットワークシステム1の一例である。したがって、ここでの仮想PLCシステム10P,10Q,10R,10Sは、後述する仮想PLCシステム10A,10Bと同様の機能を有している。
仮想PLCシステム10Pは、仮想PLC20Pと、仮想NWU30P−1と、仮想NWU30P−2と、を備えている。また、仮想PLCシステム10Qは、仮想PLC20Qと、仮想NWU30Qとを備えており、仮想PLCシステム10Rは、仮想PLC20Rと、仮想NWU30Rとを備えており、仮想PLCシステム10Sは、仮想PLC20Sと、仮想NWU30Sとを備えている。
そして、仮想NWU30P−2は、仮想PLCシステム10Pとは異なる別の仮想PLCシステム10Qが備える仮想NWU30Qに接続されている。また、仮想NWU30P−2は、仮想PLCシステム10P,10Qとは異なる別の仮想PLCシステム10Rが備える仮想NWU30Rに接続されている。また、仮想NWU30P−1は、仮想PLCシステム10P,10Q,10Rとは異なる別の仮想PLCシステム10Sが備える仮想NWU30Sに接続されている。このように、仮想ネットワークシステム1Xは、仮想PLCシステム10Pが、複数の仮想NWUである仮想NWU30P−1,30P−2を備えている。そして、仮想NWU30P−1と仮想NWU30P−2とは、異なるネットワークの異なる仮想NWUに接続されている。
実施の形態のシミュレーション装置50は、仮想ネットワークシステム内で、仮想PLCシステム間の時刻同期を実行しながら各仮想PLCシステムを模擬動作させることによって、実際のネットワークシステムの動作を検証する。具体的には、シミュレーション装置50は、仮想PLCシステム間での時刻同期と、仮想PLCシステム間でのデータ通信と、各仮想PLCシステムでのPLCプログラムを用いた動作とを実行する。これにより、シミュレーション装置50は、実際のネットワークシステムの振る舞いを模擬的に確認することができる。
シミュレーション装置50は、シミュレーションを実行する際に用いられる種々のデータを外部装置から受付ける入力部51を備えている。また、シミュレーション装置50は、種々のデータを記憶しておく記憶部52を備えている。記憶部52が記憶するデータの例は、PLC設定データ、シミュレーションプログラム、PLCプログラム、および構成情報である。
PLCプログラムは、PLCが動作する際に用いられるプログラムである。構成情報は、ネットワークシステムの構成を示す情報であり、仮想ネットワークシステムを構築する際に用いられる。構成情報には、ネットワークシステムに配置される構成要素のリストと、構成要素間の接続関係、各構成要素の機能といった、構成要素の情報が含まれている。また、PLC設定データは、PLCが動作する際に用いられるデータである。PLC設定データは、PLCが動作する際の動作条件といった種々の情報を含んでいる。シミュレーションプログラムは、PLCを仮想的に動作せるための仮想PLCシステムをシミュレーション装置50内に構築し、仮想PLCシステムを用いてPLCのシミュレーションを実行するプログラムである。シミュレーションプログラムは、構成情報を用いて仮想ネットワークシステムを構築し、構築した仮想ネットワークシステム、PLC設定データおよびPLCプログラムを用いてシミュレーションを実行する。
また、シミュレーション装置50は、仮想ネットワークシステムを構築し、仮想ネットワークシステムを動作させることによってネットワークシステムの動作をシミュレーションするシミュレーション部53を備えている。シミュレーション部53は、シミュレーションプログラム、PLC設定データおよびPLCプログラムを用いて仮想ネットワークシステムを動作させる。換言すると、シミュレーション部53は、シミュレーションプログラム、PLC設定データおよびPLCプログラムを用いて、ネットワークシステムのシミュレーションを実行する。また、シミュレーション装置50は、シミュレーション結果を外部装置に出力する出力部55を備えている。
このように、シミュレーション部53は、種々のデータを用いて仮想ネットワークシステムを動作させる。仮想ネットワークシステムの動作が、実際のネットワークシステムの仮想的な動作である。したがって、仮想PLCシステムの動作が、実際のPLCシステムの仮想的な動作である。
図3は、実施の形態にかかる仮想ネットワークシステムの構成を示す図である。図3では、シミュレーション装置50が構築する仮想ネットワークシステム1の機能ブロック図を示している。なお、以下では、仮想ネットワークシステム1に配置される仮想PLCシステムが仮想PLCシステム10A,10Bの2つである場合について説明するが、仮想ネットワークシステム1に配置される仮想PLCシステムは3つ以上であってもよい。なお、仮想ネットワークシステム1内における動作は、シミュレーション部53が実行するものである。換言すると、シミュレーション部53が、仮想ネットワークシステム1を用いてシミュレーションを実行する。
仮想ネットワークシステム1は、実際のネットワークシステムを模擬するシステムであり、実際のネットワークシステムと同様の動作を仮想的に実行する。仮想ネットワークシステム1は、仮想PLCシステム10A,10Bと、仮想PLCシステム10A,10Bに接続された宛先解決部45と、を備えている。仮想PLCシステム10A,10Bは、実際のPLCシステムを模擬するシステムである。
シミュレーション装置50は、第1の仮想PLCシステムである仮想PLCシステム10Aと第2の仮想PLCシステムである仮想PLCシステム10Bとを時刻同期させながら、仮想PLCシステム10A,10Bを模擬動作させる。これにより、シミュレーション装置50は、実際のPLCシステムの動作を検証する。したがって、シミュレーション装置50が仮想PLCシステム10A,10Bに動作させる内容は、実際のPLCシステムが動作する内容に対応している。
また、実際の各PLCシステムは、PLCプログラムを用いて動作する。したがって、シミュレーション装置50は、仮想PLCシステム10A,10Bを、PLCプログラムを用いて模擬動作させる。
仮想PLCシステム10Aは、仮想PLCシステム10Aが記憶しているPLCプログラムを用いて演算を実行し、仮想PLCシステム10Bは、仮想PLCシステム10Bが記憶しているPLCプログラムを用いて演算を実行する。このとき、仮想PLCシステム10AのPLCプログラムは、仮想PLCシステム10Bによる演算結果を用いて、さらなる演算を実行する。また、仮想PLCシステム10BのPLCプログラムは、仮想PLCシステム10Aによる演算結果を用いて、さらなる演算を実行する。
仮想PLCシステム10Aは、第1の識別情報である後述の局番号と、第2の識別情報である後述のシステム番号と、第3の識別情報である後述のユニット識別子と、第4の識別情報である後述のネットワーク番号と、後述のバッファアドレスとに基づいて、仮想PLCシステム10Bからデータを読み出す。この場合において、仮想PLCシステム10Aは、宛先解決部45を介して、仮想PLCシステム10Bとの間でデータ通信を行なう。なお、仮想PLCシステム10Aが、1つのネットワークだけに接続されている場合は、ネットワーク番号を不要とすることも可能である。
仮想PLCシステム10Aの具体的な構成について説明する。仮想PLCシステム10Aは、仮想的なPLCである仮想PLC20Aと、仮想的なネットワークユニットである仮想NWU30Aと、システム設定データを格納するシステム設定データ格納部40Aとを備えている。仮想PLC20Aは、PLCの動作を模擬したものであり、仮想NWU30Aは、ネットワークユニットを模擬したものである。
仮想PLCシステム10Aは、仮想PLC20Aおよび仮想NWU30Aを含むユニットの集合であり、ユニットの組み合わせによって仮想PLCシステム10Aで実行できる機能が決まる。
仮想PLC20Aは、仮想PLCシステム10Aを制御するユニットであり、仮想NWU30Aは、他の仮想PLCシステムである仮想PLCシステム10Bと通信を行なうユニットである。仮想PLC20Aは、実際のPLCに対応する動作を実行し、仮想NWU30Aは、実際のNWUに対応する動作を実行する。
なお、仮想PLCシステム10Aが模擬する実際のPLCシステムは、電源ユニット、入力ユニット、または出力ユニットを備えている。したがって、仮想PLCシステム10Aは、仮想的な電源ユニットである仮想電源ユニット、仮想的な入力ユニットである仮想入力ユニット、または仮想的な出力ユニットである仮想出力ユニットを備えている。また、仮想NWU30Aが模擬する実際のネットワークユニットは、実際のPLC以外の他のユニットと接続可能な構成であってもよい。したがって、仮想NWU30Aは、仮想PLC20A以外の他の仮想ユニットに接続可能な構成であってもよい。この場合の仮想ユニットは、実際のPLC以外の他のユニットの動作を模擬するユニットであれば何れのユニットであってもよい。
システム設定データ格納部40Aは、システム設定データを格納するメモリである。システム設定データ格納部40A内のシステム設定データは、仮想PLCシステム10Aの情報であり、仮想PLCシステム10A,10Bで用いられる。ここで、システム設定データの構成について説明する。
図4は、実施の形態にかかるシステム設定データの構成例を示す図である。ここでは、システム設定データ格納部40A内のシステム設定データ61について説明する。システム設定データ61は、仮想PLCシステム10Aが備える各ユニットのユニット識別子と、仮想PLCシステム10Aのシステム番号とを含んでいる。そして、システム設定データ61では、ユニット識別子とシステム番号とが対応付けされている。
システム番号は、仮想ネットワークシステム1内の仮想PLCシステム10A,10Bに与えられる識別子であり、仮想PLCシステム10A,10B毎に固有の情報である。仮想PLCシステム10Aのシステム番号の例は「1」であり、仮想PLCシステム10Bのシステム番号の例は「2」である。ユニット識別子は、仮想PLCシステム10A内の各ユニットに固有の情報である。
仮想PLC20Aは、PLC設定データ格納部21Aと、PLCプログラム格納部22Aと、プログラム実行部23Aと、仮想時計24Aと、ユニット間交信部25Aと、ツール通信部26Aとを備えている。
なお、システム設定データ格納部40B内のシステム設定データ61もシステム設定データ格納部40A内のシステム設定データ61と同様の構成を有している。システム設定データ格納部40B内のシステム設定データ61は、仮想PLC20Bの情報を有しており、仮想PLCシステム10A,10Bで用いられる。
PLC設定データ格納部21Aは、前述のPLC設定データを格納するメモリである。PLC設定データ格納部21A内のPLC設定データは、仮想PLC20Aに対応する実際のPLCに設定されるデータであり、ユーザによって作成される。
PLC設定データの例は、仮想PLC20Aと仮想NWU30Aとの間の交信周期であるユニット間交信周期、またはPLCプログラムの処理条件である。PLCプログラムの処理条件の例は、PLCプログラムを実行する周期である。この場合、PLCプログラムの処理条件には、何れのプログラムを何れの周期で実行するかを指定した情報が含まれている。
PLCプログラム格納部22Aは、PLCプログラムを格納するメモリである。PLCプログラム格納部22A内のPLCプログラムは、仮想PLCシステム10Aに対応するPLCシステムを動作させる際に用いられるプログラムである。PLCプログラムの例は、ラダープログラムといったシーケンスプログラムである。
ツール通信部26Aは、図示しないエンジニアリングツールとの間でデータ通信を実行する。エンジニアリングツールは、仮想PLCシステム10Aを動作させる際の種々の設定を行うためのツールである。ユーザからの指示に従ってエンジニアリングツールが種々の設定を行うと、この設定に対応する設定情報が、仮想PLCシステム10Aに送信される。そして、ツール通信部26Aが、エンジニアリングツールで設定された設定情報を受信し、PLC設定データ格納部21A、PLCプログラム格納部22Aおよびプログラム実行部23Aの何れかに転送する。
ツール通信部26Aは、PLC設定データへの設定情報をPLC設定データ格納部21Aに転送し、PLCプログラムへの設定情報をPLCプログラム格納部22Aに転送する。また、ツール通信部26Aは、PLCプログラムの実行処理に対応する設定情報をプログラム実行部23Aに転送する。また、ツール通信部26Aは、エンジニアリングツールから取得要求のあったデータをプログラム実行部23Aから取得してエンジニアリングツールに転送する。
プログラム実行部23Aは、PLCプログラム格納部22A内からPLCプログラムを読み出して実行する。このとき、プログラム実行部23Aは、PLC設定データ格納部21A内のPLC設定データに基づいて、PLCプログラムを実行する。また、プログラム実行部23Aは、ツール通信部26Aから設定情報が送信されてきた場合には、設定情報を用いてPLCプログラムを実行する。
また、プログラム実行部23Aは、PLCプログラムの実行状況に沿って仮想時計24Aの時刻を進行させる。換言すると、プログラム実行部23Aは、PLCプログラムの進行に沿って、仮想時計24Aの時刻データである仮想時刻を進行させる。プログラム実行部23Aは、PLCプログラムの実行を開始すると、実行済みの命令に対応する消費時間を仮想時計24Aに送信する。
仮想時計24Aは、プログラム実行部23AによるPLCプログラムの実行状況に基づいて時刻が進められる仮想的な時計である。仮想時計24Aでは、仮想PLC20Aがリセットされた時刻が0である。仮想時計24Aは、PLCプログラムの実行が開始されると、PLCプログラム内の命令ごとに決められた消費時間を累算していく。これにより、仮想時計24Aは、実行済みの命令に対応する時刻データを保持する。したがって、仮想時計24Aの時刻データは、リセット時刻からの時間経過を表している。実施の形態で用いる時刻データは、仮想ネットワークシステム1を動作させる際に用いられる仮想的な時刻である。
ユニット間交信部25Aは、プログラム実行部23AがPLCプログラムを実行する際に、仮想PLCシステム10A内の他のユニットとの間でデータ通信を実行する。ここでのユニット間交信部25Aは、仮想NWU30Aとの間でデータ通信を実行する。
ユニット間交信部25Aは、PLC設定データ格納部21A内のPLC設定データと、仮想時計24Aから読み出した時刻データとに基づいて、仮想NWU30Aとの間で時刻同期を実行する。具体的には、ユニット間交信部25Aは、時刻データと、PLC設定データに含まれるユニット間交信周期とに基づいて、仮想NWU30Aとの間で時刻同期を実行するタイミングである後述のユニット間交信タイミングを検出する。そして、ユニット間交信部25Aは、ユニット間交信タイミングになると、仮想NWU30Aとの間で時刻同期を実行する。このとき、ユニット間交信部25Aは、仮想NWU30Aに仮想時計24Aの時刻データを送信し、時刻データが示す時刻を仮想NWU30Aに設定させることによって時刻同期を実行する。
このように、仮想PLC20Aは、時刻データとユニット間交信周期とに従って、ユニット間交信部25Aを周期的に動作させ、他のユニットである仮想NWU30Aとの間で時刻同期を実行する。
なお、本実施の形態における時刻同期は、時分秒といった文字通りの時間に基づく同期だけでなく、カウンタのカウント値に基づく同期でも良く、仮想PLC20Aと仮想NWU30Aとの間で同期を取ることができるとともに、仮想PLC20Bと仮想NWU30Bとの間で同期を取ることができるものであれば良い。
また、ユニット間交信部25Aは、PLCプログラムから、他ユニットのデータの読み出し指示であるユニット読み出し要求、または他のユニットへのデータの書き込み指示であるユニット書き込み要求があると、仮想NWU30Aとの間でデータ通信を実行する。これにより、ユニット間交信部25Aは、プログラム実行部23Aから送られてくる後述の自局データを仮想NWU30Aに書き込む。また、ユニット間交信部25Aは、仮想NWU30Aから読み出した後述の他局データをプログラム実行部23Aに送信する。
このように、プログラム実行部23Aは、PLCプログラムを実行する際に、ユニット間交信部25Aを介して、仮想PLCシステム10A内の他のユニットに自局データを書き込む。また、プログラム実行部23Aは、PLCプログラムを実行する際に、ユニット間交信部25Aを介して、仮想PLCシステム10A内の他のユニットから他局データを読み出す。
この場合において、ユニット間交信部25Aは、システム設定データ格納部40A内のシステム設定データ61に基づいて、仮想NWU30Aとの間でデータ通信を実行する。具体的には、ユニット間交信部25Aは、システム設定データ61内のシステム番号とユニット識別子との対に基づいて、仮想NWU30A内の後述するバッファメモリ33Aにアクセスする。そして、ユニット間交信部25Aは、バッファメモリ33Aに自局データを書き込み、バッファメモリ33Aから他局データを読み出す。ユニット間交信部25Aは、読み出した他局データをプログラム実行部23Aに送信する。これにより、PLCプログラムは、他局データを用いた種々の処理を実行する。
自局データは、自局が生成したデータであり、他局データは、他局が生成したデータである。したがって、バッファメモリ33Aに格納される自局データは、仮想PLCシステム10Aが生成したデータであり、バッファメモリ33Aに格納される他局データは、仮想PLCシステム10Bが生成したデータである。すなわち、バッファメモリ33Bに格納される自局データは、仮想PLCシステム10Bのデータであるが、仮想PLCシステム10Aから見ると他局データである。
仮想NWU30Aは、仮想NWU30Bと同一のネットワークに接続されている。仮想NWU30Aは、NWU設定データ格納部31Aと、ユニット間交信部32Aと、バッファメモリ33Aと、仮想時計34Aと、ネットワーク内交信部35Aとを備えている。
NWU設定データ格納部31Aは、NWU設定データを格納するメモリである。ここで、NWU設定データの構成について説明する。図5は、実施の形態にかかるNWU設定データの構成例を示す図である。ここでは、NWU設定データ格納部31A内のNWU設定データ62について説明する。
NWU設定データ62は、ネットワーク番号と、局番号と、バッファアドレスとを含んでいる。そして、NWU設定データ62では、ネットワーク番号と局番号とバッファアドレスとが対応付けされている。ここでのネットワーク番号は、仮想NWU30A,30Bが接続するネットワークに付与された識別子である。ネットワーク番号は、仮想ネットワークシステム1内の各ネットワークに固有の番号である。局番号は、各ネットワーク内における仮想NWU30A,30Bの識別子であり、ネットワークに接続する仮想NWU30A,30B毎に付与される。局番号は、1つのネットワーク内では各仮想NWU30A,30Bに固有の情報である。バッファアドレスは、バッファメモリ33A内のデータ格納領域を示すアドレスである。バッファメモリ33Aは、局番号毎にデータ格納領域が割り当てられるので、NWU設定データ62によってバッファアドレスと局番号とが対応付けされている。
また、NWU設定データ62は、ネットワーク内での交信周期であるシステム間交信周期を含んでいる。このシステム間交信周期は、仮想NWU30A,30Bとの間で行われる時刻同期に用いられる。
なお、NWU設定データ格納部31B内のNWU設定データ62もNWU設定データ格納部31A内のNWU設定データ62と同様の構成を有している。NWU設定データ格納部31A内のNWU設定データ62は、仮想NWU30Aの情報を有しており、NWU設定データ格納部31B内のNWU設定データ62は、仮想NWU30Bの情報を有している。
ユニット間交信部32Aは、ユニット間交信部25Aとの間でデータ通信を実行する。ユニット間交信部32Aは、ユニット間交信部25Aから読み出し要求のあった他局データをバッファメモリ33Aから読み出してユニット間交信部25Aに送信する。また、ユニット間交信部32Aは、ユニット間交信部25Aから書き込み要求のあった自局データをバッファメモリ33Aに書き込む。
ユニット間交信部32Aは、システム設定データ格納部40A内のシステム設定データ61に基づいて、バッファメモリ33Aにアクセスする。具体的には、ユニット間交信部32Aは、ユニット間交信部25Aと同様に、システム設定データ61内のシステム番号とユニット識別子との対に基づいてバッファメモリ33Aにアクセスする。この場合において、ユニット間交信部32Aは、NWU設定データ62に含まれるバッファアドレスに基づいて、バッファメモリ33A内の領域にアクセスする。
また、ユニット間交信部32Aは、ユニット間交信部25Aから時刻データが送られてくると、この時刻データを仮想時計34Aに設定する。これにより、仮想時計34Aは、ユニット間交信周期で仮想時計24Aに同期する。換言すると、ユニット間交信部25A,32Aは、仮想時計34Aの時刻を仮想時計24Aの時刻に合わせる。
また、ユニット間交信部32Aは、他の仮想PLCシステムからのデータの読み出し指示であるシステム読み出し要求を、ユニット間交信部25Aから受信すると、このシステム読み出し要求をネットワーク内交信部35Aに転送する。
バッファメモリ33Aは、仮想PLC20A内で生成されたデータを格納する仮想記憶部である。バッファメモリ33Aは、ユニット間交信部32Aおよびネットワーク内交信部35Aからアクセス可能なよう構成されている。バッファメモリ33Aは、仮想PLC20Aによって書き込まれる自局データと、仮想PLCシステム10Bから読み出した他局データとを格納する。
ネットワーク内交信部35Aは、仮想NWU30Aの接続されているネットワーク内で時刻同期およびデータ通信を実行する。ここでのネットワーク内交信部35Aは、仮想NWU30Bとの間で時刻同期およびデータ通信を実行する。ネットワーク内交信部35Aは、NWU設定データ62内のシステム間交信周期と、仮想時計34Aの時刻データとに基づいて、仮想NWU30Bとの間で時刻同期を実行する。ネットワーク内交信部35Aは、仮想時計34Aの時刻と後述する仮想時計34Bの時刻とを合わせることによって、仮想NWU30Bとの間で時刻同期を実行する。仮想NWU30A,30Bは、先に進行している方の仮想時計を特定の時刻で停止させ、遅れている方の仮想時計が特定の時刻になると、停止させていた方の仮想時計を再始動させることによって時刻同期を実行する。
また、ネットワーク内交信部35Aは、仮想PLC20Aからシステム読み出し要求を受信すると、仮想NWU30B内のメモリであるバッファメモリ33Bからシステム読み出し要求に対応する他局データを読み出す。
宛先解決部45は、ネットワーク番号と、局番号と、システム番号と、ユニット識別子との組である第1の組情報を構築する。また、宛先解決部45は、ネットワーク番号と、バッファメモリ33A内のバッファアドレスと、局番号との組である第2の組情報を構築する。
宛先解決部45は、システム設定データ格納部40A内のシステム設定データ61と、NWU設定データ格納部31A内のNWU設定データ62とに基づいて、第1の組情報および第2の組情報を構築する。
ここで、第1の組情報および第2の組情報の構成について説明する。図6は、実施の形態にかかる第1の組情報の構成例を示す図である。第1の組情報71は、ネットワーク番号と、局番号と、システム番号と、ユニット識別子とが対応付けされた情報である。
第1の組情報71のネットワークのネットワーク番号は、仮想NWU30A,30Bが接続されているネットワークのネットワーク番号である。また、第1の組情報71の局番号は、仮想NWU30A,30Bの局番号である。また、第1の組情報71のシステム番号は、仮想PLCシステム10A,10Bのシステム番号である。また、第1の組情報71のユニット識別子は、仮想PLCシステム10A,10Bが備えるユニットのユニット識別子である。
図6では、仮想NWU30Bが接続されているネットワークのネットワーク番号「101」と、仮想NWU30Bの局番号「601」と、仮想NWU30Bを有した仮想PLCシステム10Bのシステム番号「2」と、仮想NWU30Bのユニット識別子「010」とが対応付けされている場合を示している。
図7は、実施の形態にかかる第2の組情報の構成例を示す図である。第2の組情報72は、ネットワーク番号と、バッファアドレスと、局番号とが対応付けされた情報である。第2の組情報72のネットワーク番号は、仮想NWU30A,30Bが接続されているネットワークのネットワーク番号である。また、第2の組情報72の局番号は、仮想NWU30A,30Bの局番号である。また、第2の組情報72のバッファアドレスは、仮想NWU30A,30Bが備えるバッファメモリ33A,33Bのバッファアドレスである。
図7では、仮想NWU30Bが接続されているネットワークのネットワーク番号「101」と、仮想NWU30Bの局番号「601」と、仮想NWU30Bが備えるバッファメモリ33Bのバッファアドレス「100〜119」とが対応付けされている場合を示している。
宛先解決部45は、システム設定データ格納部40A,40B内のシステム設定データ61、NWU設定データ格納部31A,31B内のNWU設定データ62に基づいて、第1の組情報71を構築する。また、宛先解決部45は、NWU設定データ格納部31A,31BのNWU設定データ62に基づいて、第2の組情報72を構築する。この場合において、宛先解決部45は、NWU設定データ格納部31A,31Bが格納しているNWU設定データ62のそれぞれから、ネットワーク番号、局番号およびバッファアドレスを抽出する。また、宛先解決部45は、システム設定データ格納部40A,40Bが格納しているシステム設定データ61のそれぞれから、システム番号およびユニット識別子を抽出する。
そして、宛先解決部45は、抽出したネットワーク番号、局番号、システム番号、およびユニット識別子を用いて、第1の組情報71を構築する。また、宛先解決部45は、抽出したネットワーク番号、局番号、およびバッファアドレスを用いて、第2の組情報72を構築する。
仮想PLCシステム10Bは、仮想PLCシステム10Aと同様の機能を有している。すなわち、仮想PLCシステム10Bは、仮想PLC20Aと同様の機能を有した仮想PLC20Bと、仮想NWU30Aと同様の機能を有した仮想NWU30Bと、システム設定データ格納部40Aと同様の機能を有したシステム設定データ格納部40Bとを有している。
仮想PLC20Bは、PLC設定データ格納部21Aと同様の機能を有したPLC設定データ格納部21Bと、PLCプログラム格納部22Aと同様の機能を有したPLCプログラム格納部22Bとを備えている。また、仮想PLC20Bは、プログラム実行部23Aと同様の機能を有したプログラム実行部23Bと、仮想時計24Aと同様の機能を有した仮想時計24Bとを備えている。また、仮想PLC20Bは、ユニット間交信部25Aと同様の機能を有したユニット間交信部25Bと、ツール通信部26Aと同様の機能を有したツール通信部26Bとを備えている。
仮想NWU30Bは、NWU設定データ格納部31Aと同様の機能を有したNWU設定データ格納部31Bと、ユニット間交信部32Aと同様の機能を備えたユニット間交信部32Bとを備えている。また、仮想NWU30Bは、バッファメモリ33Aと同様の機能を備えたバッファメモリ33Bと、仮想時計34Aと同様の機能を備えた仮想時計34Bと、ネットワーク内交信部35Aと同様の機能を備えたネットワーク内交信部35Bとを備えている。仮想PLCシステム10Bは、仮想PLCシステム10Aと同様の動作を実行する。
実施の形態では、シミュレーション装置50が、複数の仮想PLCシステム10A,10Bを有した仮想ネットワークシステム1をコンピュータであるシミュレーション装置50に構築する。そして、シミュレーション装置50が、仮想PLCシステム10A,10Bを動作させ、これにより、仮想NWU30A,30B間での時刻同期およびデータのやり取りを模擬する。これにより、シミュレーション装置50は、仮想PLCシステム10A,10Bを連動させる。
図8は、実施の形態にかかる仮想ネットワークシステムの動作処理手順を示すフローチャートである。仮想ネットワークシステム1では、仮想PLCシステム10Aが、仮想PLCシステム10Bからデータを取得して動作し、仮想PLCシステム10Bが、仮想PLCシステム10Aからデータを取得して動作する。この場合において、仮想PLCシステム10A,10Bは、仮想時計34A,34Bに基づいた同期処理を実行する。なお、仮想PLCシステム10A,10Bは、同様の動作を実行するので、以下では、仮想PLCシステム10Aが、仮想PLCシステム10Bからデータを取得して動作する場合について説明する。すなわち、自局の例が仮想PLCシステム10Aであり、他局の例が仮想PLCシステム10Bである場合について説明する。
シミュレーション装置50によって構築された仮想ネットワークシステム1の仮想PLCシステム10Aは、ステップS10において、シミュレーション装置50からの指示に従ってPLCプログラムを実行する。具体的には、プログラム実行部23Aが、PLCプログラム格納部22AからPLCプログラムを読み出してPLCプログラムを実行する。このとき、プログラム実行部23Aは、PLC設定データ格納部21Aから取得したPLC設定データと、ツール通信部26Aから取得した設定情報とを用いてPLCプログラムを実行する。
プログラム実行部23Aは、PLCプログラムの実行中に生成した自局データであって仮想PLCシステム10Bに送信するものがあれば、この自局データをユニット間交信部25Aに送信する。自局データは、自局である仮想PLCシステム10Aが生成したデータである。
また、ステップS20において、プログラム実行部23Aは、PLCプログラムの進行状態に基づいて仮想時計24Aを進める。ユニット間交信部25Aは、仮想時計24Aが保持している時刻データと、PLC設定データ内に設定されているユニット間交信周期とに従って動作する。また、ユニット間交信部32Aは、仮想時計34Aが保持している時刻データに従って動作する。
ユニット間交信部25Aは、仮想時計24A内の時刻データおよびユニット間交信周期に基づいて、時刻データが、仮想PLC20Aと仮想NWU30Aとの間に設定されているユニット間交信タイミングを検出する。そして、ユニット間交信部25Aは、ユニット間交信タイミングを検出すると、仮想NWU30Aとの間で時刻同期を実行する。
ユニット間交信タイミングでは、ユニット間交信部25Aが、ユニット間交信部32Aに時刻データを送信する。ユニット間交信部32Aは、ユニット間交信部25Aから時刻データを受信すると、この時刻データを仮想時計34Aに設定する。すなわち、仮想PLC20Aは、ユニット間交信タイミングになると、仮想PLC20A内の時刻データを仮想NWU30Aに設定する。このように、ステップS30において、仮想PLCシステム10Aは、仮想PLCシステム10A内での時刻データを同期させる。
また、ユニット間交信部25Aは、PLCプログラムからの指示にしたがって、仮想NWU30Aとの間でデータ通信を実行する。ユニット間交信部25Aは、PLCプログラムからデータの読み出し要求を受信すると、ステップS40において、仮想NWU30Aのバッファメモリ33Aから他局データの読出しを行う。このとき、ユニット間交信部25Aは、ユニット間交信部32Aを介してバッファメモリ33Aから他局データを読み出す。また、ユニット間交信部25Aは、PLCプログラムからデータの書き込み要求を受信すると、ステップS50において、仮想NWU30Aへの自局データの書き込みを行う。このとき、ユニット間交信部25Aは、ユニット間交信部32Aを介してバッファメモリ33Aに自局データを書き込む。
ここでバッファメモリ33Aの構成について説明する。図9は、実施の形態にかかるバッファメモリの構成例を示す図である。ここでは、バッファメモリ33Aの構成について説明するが、バッファメモリ33Bもバッファメモリ33Aと同様の構成を有している。
バッファメモリ33Aのデータ格納領域は、自局データを格納する自局データ格納ブロック331Aと、他局データを格納する他局データ格納ブロック332Aとに分割されている。自局データ格納ブロック331Aは、自局データである仮想PLCシステム10Aのデータを格納する領域であり、他局データ格納ブロック332Aは、他局データである仮想PLCシステム10Bのデータを格納する領域である。自局データ格納ブロック331Aおよび他局データ格納ブロック332Aは、それぞれバッファメモリ33A内で固有のバッファアドレスを有している。このバッファアドレスは、NWU設定データ62に含まれている。
バッファメモリ33A,33Bでは、仮想PLCシステム10A,10Bが、共通のバッファアドレスを用いる。また、バッファメモリ33A,33Bでは、仮想PLCシステム10A,10Bが、バッファアドレス毎に同一のデータを格納する。したがって、バッファメモリ33A内の第1のバッファアドレスに格納されるデータと、バッファメモリ33B内の第1のバッファアドレスに格納されるデータとは同じデータである。換言すると、バッファメモリ33A内で第1のバッファアドレスが割り当てられたデータ格納領域と、バッファメモリ33B内で第1のバッファアドレスが割り当てられたデータ格納領域と、には同一のデータが格納される。仮想NWU30Aのデータが、バッファメモリ33Aのバッファアドレス100〜119のデータ格納領域に格納される場合、バッファメモリ33Bでもバッファアドレス100〜119のデータ格納領域は、仮想NWU30Aのデータが格納される。別言すれば、バッファメモリ33Aのバッファアドレス100〜119に局番号「X」が割り当てられると、バッファメモリ33Bのバッファアドレス100〜119にも局番号「X」が割り当てられる。
バッファメモリ33A,33Bは、システム番号とユニット識別子との対からなるバッファメモリ識別子で管理されており、仮想PLCシステム10A,10Bの共有メモリの形で用いられる。この構成により、仮想ネットワークシステム1では、バッファメモリ識別子を用いることにより、仮想ネットワークシステム1内の何れの構成要素からでもバッファメモリ33A,33Bにアクセスできる。
前述したように、システム設定データ61は、仮想PLCシステム10Aが備える各ユニットのユニット識別子と、仮想PLCシステム10Aのシステム番号とを含んでいる。したがって、仮想PLCシステム10Aのユニット間交信部25Aおよび仮想NWU30Aのユニット間交信部32Aは、それぞれ仮想PLCシステム10A内で唯一の識別子が割り当てられている。具体的には、ユニット間交信部25A,32Aは、ユニット識別子とシステム番号との対からなるバッファメモリ識別子が割り当てられている。このように、ユニット間交信部25Aおよびバッファメモリ33Aは、システム番号とユニット識別子との対からなるバッファメモリ識別子で特定することができる。
仮想PLCシステム10A内では、仮想PLC20Aが、仮想NWU30Aへの交信処理である書き込み処理と読み込み処理の2種類を行う。仮想PLC20Aは、書き込み処理の際には、バッファメモリ識別子とバッファアドレスとの対によって書き込み対象を特定することができる。また、仮想PLC20Aは、読み込み処理の際には、バッファメモリ識別子とバッファアドレスとの対によって読み込み対象を特定することができる。
ネットワーク内交信部35Aは、仮想時計34A内の時刻データおよびシステム間交信周期に基づいて、時刻データが、ネットワーク内に設定されている交信タイミングになると仮想NWU30Bとの間で時刻同期を実行する。以下の説明では、ネットワーク内に設定されている交信タイミングをシステム間交信タイミングという。ここでのネットワーク内には、仮想PLCシステム10A,10Bが配置されているので、ここでのシステム間交信タイミングは、仮想PLCシステム10A,10B間に設定されている交信タイミングともいえる。
仮想PLCシステム10Aが用いている時刻データと、仮想PLCシステム10Bが用いている時刻データとには、ずれが生じる場合がある。このため、ネットワーク内交信部35A,35Bは、ネットワーク内交信部35Aの時刻データおよびネットワーク内交信部35Bの時刻データに基づいて時刻同期を実行する。
仮想PLCシステム10Aの時刻が仮想PLCシステム10Bの時刻よりも先に進行している場合、ネットワーク内交信部35Aは、システム間交信タイミングを検出すると、システム間交信タイミングになったことを示すタイミング情報をネットワーク内交信部35Bに通知する。そして、仮想PLC20Aは、PLCプログラムの実行を停止する。
そして、ネットワーク内交信部35Bは、ネットワーク内交信部35Aからタイミング情報を受信した後に、自局でシステム間交信タイミングを検出すると、時刻同期の確認を示す同期確認情報をネットワーク内交信部35Aに送る。これにより、仮想PLC20Aは、PLCプログラムの実行を再開し、次のシステム間交信タイミングまでPLCプログラムの実行を続ける。
また、仮想PLCシステム10Bの時刻が仮想PLCシステム10Aの時刻よりも先に進行している場合、ネットワーク内交信部35Bは、システム間交信タイミングを検出すると、システム間交信タイミングになったことを示すタイミング情報をネットワーク内交信部35Aに通知する。そして、仮想PLC20Bは、PLCプログラムの実行を停止する。
そして、ネットワーク内交信部35Aは、ネットワーク内交信部35Bからタイミング情報を受信した後に、自局でシステム間交信タイミングを検出すると、時刻同期の確認を示す同期確認情報をネットワーク内交信部35Bに送る。これにより、仮想PLC20Bは、PLCプログラムの実行を再開し、次のシステム間交信タイミングまでPLCプログラムの実行を続ける。
このように、仮想PLCシステム10A,10Bは、ステップS60において、他局との間で時刻データを同期させる。換言すると、仮想PLCシステム10A,10Bは、時刻データのすり合わせを実行する。なお、ネットワーク上に3つ以上の仮想NWUが接続されている場合、自局のシステム間交信タイミングを最後に検出した仮想NWUが同期確認情報を他局に送信する。
上述したように、仮想PLC20Aは、ユニット間交信タイミングになると、仮想NWU30Aとの間で時刻同期を実行する。同様に、仮想PLC20Bは、ユニット間交信タイミングになると、仮想NWU30Bとの間で時刻同期を実行する。また、仮想NWU30Aは、システム間交信タイミングになると、仮想NWU30Bとの間で時刻同期を実行する。
また、ネットワーク内交信部35Aは、仮想PLC20Aからデータ取得要求があると、仮想PLCシステム10Bとの間でデータ通信を実行する。これにより、ネットワーク内交信部35Aは、ステップS70において、バッファメモリ33Bから他局データを読み出す。このとき、ネットワーク内交信部35Aは、ネットワーク内交信部35Bを介してバッファメモリ33Bから他局データを読み出す。そして、ネットワーク内交信部35Aは、読み出した他局データをバッファメモリ33Aに格納する。この場合において、ネットワーク内交信部35Aは、NWU設定データ格納部31Aに格納されたNWU設定データ62に基づいて、仮想PLC20Bから他局データを読み出す。ここでの他局データは、仮想PLCシステム10Bといった他局が生成したデータである。
このように、仮想PLC20Aは、仮想NWU30Aとの間で時刻同期およびデータ通信を実行しながらPLCプログラムを実行する。また、仮想PLC20Bは、仮想NWU30Bとの間で時刻同期およびデータ通信を実行しながらPLCプログラムを実行する。そして、仮想PLCシステム10Aは、仮想PLCシステム10Bとの間で時刻同期およびデータ通信を実行しながら動作する。このとき、仮想NWU30A,30B間で時刻同期が行われる。
すなわち、シミュレーション部53は、第1の仮想PLCシステムである仮想PLCシステム10A内で、仮想時計24A,34A間の時刻同期である第1の時刻同期を実行させる。また、シミュレーション部53は、第2の仮想PLCシステムである仮想PLCシステム10B内で、仮想時計24B,34B間の時刻同期である第2の時刻同期を実行させる。そして、シミュレーション部53は、第1の時刻同期によって設定された第1の時刻と、第2の時刻同期によって設定された第2の時刻と、を同期させることによって、時刻同期を実行する。
ここで他局データを読み出す方法について説明する。ここでは、仮想PLCシステム10Aのネットワーク内交信部35Aが、仮想PLCシステム10Bのバッファメモリ33Bから他局データを読み出す場合の読み出し処理について説明する。なお、バッファメモリ33Bに格納されている他局データは、仮想PLCシステム10Aから見た他局データであり、仮想PLCシステム10Bから見ると自局データである。
前述したように、宛先解決部45は、ネットワーク番号と、局番号と、システム番号と、ユニット識別子との組である第1の組情報71を構築しておく。また、宛先解決部45は、ネットワーク番号と、バッファメモリ33A内のバッファアドレスと、局番号との組である第2の組情報72を構築しておく。
仮想PLC20Aが、ネットワーク内交信部35Aに、他局データの読み出し要求を送信すると、ネットワーク内交信部35Aは、読み出し要求に含まれているバッファアドレスを抽出する。このバッファアドレスは、読み出し対象が格納されている領域のアドレスであり、バッファメモリ33A,33Bで共通である。
ネットワーク内交信部35Aは、抽出したバッファアドレスを宛先解決部45に送る。また、宛先解決部45は、NWU設定データ格納部31AからNWU設定データ62を読み出す。そして、宛先解決部45は、NWU設定データ62からネットワーク番号を抽出する。このネットワーク番号は、仮想PLC20A,20Bが接続されているネットワークのネットワーク番号である。
宛先解決部45は、ネットワーク番号およびバッファアドレスに基づいて、バッファメモリ33Bから読み出し対象の他局データを読み出す。具体的には、宛先解決部45は、ネットワーク番号とバッファアドレスとの対に基づいて、第2の組情報72から局番号を抽出する。これにより、宛先解決部45は、ネットワーク番号とバッファアドレスとの対を、ネットワーク番号と局番号との対に変換する。
さらに、宛先解決部45は、ネットワーク番号と局番号との対に基づいて、第1の組情報71からシステム番号およびユニット識別子を抽出する。これにより、宛先解決部45は、ネットワーク番号と局番号との対を、システム番号とユニット識別子との対に変換する。このように、宛先解決部45は、ネットワーク番号とバッファアドレスとの対を、第1の組情報71および第2の組情報72を用いてシステム番号とユニット識別子との対に変換する。
そして、宛先解決部45は、システム番号とユニット識別子との対に基づいて、バッファメモリ33Bを特定する。この後、宛先解決部45は、特定したバッファメモリ33Bのバッファアドレスにアクセスして、読み出し対象の他局データを読み出す。そして、宛先解決部45は、読み出した他局データをネットワーク内交信部35Aに送信する。これにより、ネットワーク内交信部35Aは、他局データを、バッファメモリ33Aに格納する。このとき、ネットワーク内交信部35Aは、読み出し要求に含まれていたバッファアドレスに他局データを格納する。
ここで、シミュレーション装置50のハードウェア構成について説明する。図10は、実施の形態にかかるシミュレーション装置のハードウェア構成例を示す図である。シミュレーション装置50は、図10に示した制御回路300、すなわちプロセッサ301およびメモリ302により実現することができる。プロセッサ301の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSPともいう)またはシステムLSI(Large Scale Integration)である。メモリ302の例は、RAM(Random Access Memory)、ROM(Read Only Memory)である。
シミュレーション装置50は、プロセッサ301が、メモリ302で記憶されている、シミュレーション装置50の動作を実行するためのシミュレーションプログラムを読み出して実行することにより実現される。また、このシミュレーションプログラムは、シミュレーション装置50の手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリにも使用される。
このように、プロセッサ301が実行するシミュレーションプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトである。プロセッサ301が実行するシミュレーションプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。なお、シミュレーション装置50の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
ところで、仮想PLCシステム10Aのように、仮想PLCシステム10Bによる演算結果を用いて自局の演算を実行する場合、発生しうる演算結果を格納したデータ領域を事前に準備したうえでシミュレーションを実行する方法がある。この方法では、使用するデータ領域を変更しながらシミュレーションが実行される。しかしながら、この方法では、シミュレーション対象となるPLCプログラムを、複数のデータ領域を参照するように改変する必要があるので、シミュレーションのためのコストが高くなる。一方、シミュレーション装置50による、実施の形態のシミュレーション方法では、PLCプログラムを改変する必要がないので、シミュレーションを用いた検証環境を低コストで実現することが可能となる。換言すると、実施の形態のシミュレーション装置50は、PLCプログラムを改変する必要がないので、シミュレーションを用いた検証環境を簡易な構成で実現することが可能となる。
このように、シミュレーション装置50は、仮想ネットワークシステム1を構築し、仮想ネットワークシステム1内で時刻を同期させながら仮想PLCシステム10A,10BにPLCプログラムを実行させている。これにより、シミュレーション装置50は、仮想ネットワークシステム1を動作させることができるので、実際にネットワークシステムを構築することなく、実際のネットワークシステムを模擬的に動作させることができる。したがって、シミュレーション装置50は、実際にネットワークシステムを構築してPLCプログラムの動作確認を確認する場合よりも低コストで動作を確認することができる。
なお、ユーザは、構築するネットワークシステムに適したネットワークユニットを選択して使用することができる。この場合のネットワークユニットは、パラメータで個別にネットワーク構成を設定できるものであってもよい。また、複数のネットワークユニットを単一のPLCシステムに用いることで、異なる設定の複数のネットワークにPLCシステムを接続してもよい。ユーザによって決定されるネットワークシステムが、何れの構成であっても、シミュレーション装置50は、仮想ネットワークシステム1のような仮想ネットワークシステムを構築してシミュレーションを実行することができる。
このように実施の形態では、シミュレーション装置50のシミュレーション部53が、仮想ネットワークシステム1を構築し、仮想ネットワークシステム1が仮想ネットワークシステム1内で時刻を同期させながら仮想PLC20A,20BにPLCプログラムを実行させている。これにより、仮想PLC20Aは、仮想PLC20Bが生成したデータを用いて、PLCプログラムを実行することができる。したがって、PLCシステムを備えたネットワークシステムのシミュレーションを簡易な構成で実行することが可能となる。
また、仮想PLC20Aが、仮想NWU30Aとの間で時刻同期を実行し、仮想PLC20Bが、仮想NWU30Bとの間で時刻同期を実行している。そして、仮想ネットワークシステム1は、仮想NWU30A,30B間で時刻同期を実行している。これにより、仮想ネットワークシステム1内で正確に時刻同期を実行することが可能となる。
また、仮想PLCシステム10Aが、局番号と、システム番号と、ユニット識別子と、ネットワーク番号と、バッファアドレスとに基づいて、仮想PLCシステム10Bからデータを読み出すので、仮想PLCシステム10Aは、仮想PLCシステム10Bから容易にデータを読み出すことができる。
また、シミュレーション部53が、構成情報を用いて仮想ネットワークシステム1を構築するので、シミュレーション部53は、容易に仮想ネットワークシステム1を構築することが可能となる。
また、仮想PLC20Aが、PLCプログラムの実行状況に沿って仮想時計24Aの時刻を進行させるので、仮想ネットワークシステム1は、正確な時刻同期を実行することが可能となる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1 仮想ネットワークシステム、10A,10B 仮想PLCシステム、20A,20B 仮想PLC、21A,21B PLC設定データ格納部、22A,22B PLCプログラム格納部、23A,23B プログラム実行部、24A,24B,34A,34B 仮想時計、25A,25B,32A,32B ユニット間交信部、26A,26B ツール通信部、30A,30B 仮想NWU、31A,31B NWU設定データ格納部、33A,33B バッファメモリ、35A,35B ネットワーク内交信部、40A,40B システム設定データ格納部、45 宛先解決部、50 シミュレーション装置、53 シミュレーション部、61 システム設定データ、62 NWU設定データ、71 第1の組情報、72 第2の組情報。

Claims (7)

  1. 第1のPLCシステムを動作させる第1のPLCプログラムおよび第2のPLCシステムを動作させる第2のPLCプログラムを記憶する記憶部と、
    前記第1のPLCシステムおよび前記第2のPLCシステムを備えたネットワークシステムの構成を模擬した仮想ネットワークシステムを構築し、前記仮想ネットワークシステム、前記第1のPLCプログラムおよび前記第2のPLCプログラムを用いて前記ネットワークシステムの動作を模擬するシミュレーション部と、
    を備え
    前記仮想ネットワークシステムは、前記第1のPLCシステムの動作を模擬する第1の仮想PLCシステムおよび前記第2のPLCシステムの動作を模擬する第2の仮想PLCシステムを含み、
    前記シミュレーション部は、前記第1の仮想PLCシステム内で第1の周期で第1の時刻同期を実行させるとともに、前記第2の仮想PLCシステム内で前記第1の周期で第2の時刻同期を実行させ、前記第1の時刻同期によって設定された第1の時刻と、前記第2の時刻同期によって設定された第2の時刻と、を第2の周期で同期させながら、前記第1の仮想PLCシステムに前記第1のPLCプログラムを実行させ且つ前記第2の仮想PLCシステムに前記第2のPLCプログラムを実行させる、
    ことを特徴とするシミュレーション装置。
  2. 前記第1のPLCシステムは、
    制御対象の第1の装置を制御する第1のPLCと、
    前記第2のPLCシステムとの間でデータ通信を行なう第1の通信ユニットと、
    を含み、
    前記第2のPLCシステムは、
    制御対象の第2の装置を制御する第2のPLCと、
    前記第1のPLCシステムとの間でデータ通信を行なう第2の通信ユニットと、
    を含み、
    前記第1の仮想PLCシステムは、
    前記第1のPLCの動作を模擬した第1の仮想PLCと、
    前記第1の通信ユニットの動作を模擬した第1の仮想通信ユニットと、
    を含み、
    前記第2の仮想PLCシステムは、
    前記第2のPLCの動作を模擬した第2の仮想PLCと、
    前記第2の通信ユニットの動作を模擬した第2の仮想通信ユニットと、
    を含み、
    前記シミュレーション部は、前記第1の仮想PLCシステム内で前記第1のPLCと前記第1の通信ユニットとの間で前記第1の時刻同期を実行させるとともに、前記第2の仮想PLCシステム内で前記第2のPLCと前記第2の通信ユニットとの間で前記第2の時刻同期を実行させる
    ことを特徴とする請求項1に記載のシミュレーション装置。
  3. 前記シミュレーション部は、前記第1の通信ユニットと前記第2の通信ユニットとの間で、前記第1の時刻と前記第2の時刻とを同期させることを特徴とする請求項に記載のシミュレーション装置。
  4. 前記第1の仮想通信ユニットは、前記第1の仮想PLC内で生成されたデータを格納する仮想記憶部を有し、
    前記シミュレーション部は、
    前記第1の仮想通信ユニットおよび前記第2の仮想通信ユニットが接続されているネットワーク内で前記第1の仮想通信ユニットを識別する第1の識別情報と、
    前記第1の仮想PLCシステムを識別する第2の識別情報と、
    前記第1の仮想PLCシステム内で前記第1の仮想通信ユニットを識別する第3の識別情報と、
    前記仮想記憶部内のデータ格納領域を示すアドレスと、
    に基づいて、前記第の仮想PLCシステムに、前記第の仮想PLCシステム内のデータを読み出させる、
    ことを特徴とする請求項に記載のシミュレーション装置。
  5. 前記記憶部は、前記ネットワークシステムの構成を示す構成情報をさらに記憶し、
    前記シミュレーション部は、前記構成情報に基づいて前記仮想ネットワークシステムを構築する、
    ことを特徴とする請求項1からのいずれか1つに記載のシミュレーション装置。
  6. 前記シミュレーション部は、
    前記第1のPLCプログラムの実行状況に沿って前記第1の時刻を進行させ、前記第2のPLCプログラムの実行状況に沿って前記第2の時刻を進行させる
    ことを特徴とする請求項1からのいずれか1つに記載のシミュレーション装置。
  7. 第1のPLCシステムおよび第2のPLCシステムを備えたネットワークシステムの構成を模擬した仮想ネットワークシステムを構築する構築ステップと、
    前記第1のPLCシステムを動作させる第1のPLCプログラムと、前記第2のPLCシステムを動作させる第2のPLCプログラムと、前記仮想ネットワークシステムとを用いて前記ネットワークシステムの動作を模擬する模擬ステップと、
    を含み
    前記仮想ネットワークシステムは、前記第1のPLCシステムの動作を模擬する第1の仮想PLCシステムおよび前記第2のPLCシステムの動作を模擬する第2の仮想PLCシステムを含み、
    前記模擬ステップでは、前記第1の仮想PLCシステム内で第1の周期で第1の時刻同期を実行させるとともに、前記第2の仮想PLCシステム内で前記第1の周期で第2の時刻同期を実行させ、前記第1の時刻同期によって設定された第1の時刻と、前記第2の時刻同期によって設定された第2の時刻と、を第2の周期で同期させながら、前記第1の仮想PLCシステムに前記第1のPLCプログラムを実行させ且つ前記第2の仮想PLCシステムに前記第2のPLCプログラムを実行させる、
    ことを特徴とするシミュレーション方法。
JP2018541453A 2017-09-05 2017-09-05 シミュレーション装置およびシミュレーション方法 Active JP6433635B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/031901 WO2019049195A1 (ja) 2017-09-05 2017-09-05 シミュレーション装置およびシミュレーション方法

Publications (2)

Publication Number Publication Date
JP6433635B1 true JP6433635B1 (ja) 2018-12-05
JPWO2019049195A1 JPWO2019049195A1 (ja) 2019-11-07

Family

ID=64560666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018541453A Active JP6433635B1 (ja) 2017-09-05 2017-09-05 シミュレーション装置およびシミュレーション方法

Country Status (5)

Country Link
US (1) US10635071B2 (ja)
JP (1) JP6433635B1 (ja)
KR (1) KR102025129B1 (ja)
CN (1) CN109923483B (ja)
WO (1) WO2019049195A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110658740A (zh) * 2019-10-11 2020-01-07 焦作大学 一种基于plc的半实物虚拟过程控制实训平台
CN111025933A (zh) * 2019-11-12 2020-04-17 哈尔滨安天科技集团股份有限公司 工控系统中的plc仿真装置、方法、电子设备及存储介质
KR102441960B1 (ko) 2021-07-23 2022-09-08 정윤석 가상 훈련을 위한 3d 시뮬레이션 시스템 및 방법
JP7047965B1 (ja) * 2021-08-03 2022-04-05 株式会社安川電機 コントローラ、及びシステム構築方法
JPWO2023119524A1 (ja) * 2021-12-22 2023-06-29
JP7297178B1 (ja) * 2022-08-01 2023-06-23 三菱電機株式会社 シミュレーションプログラム、シミュレーション装置、シミュレーションシステム及びシミュレーション方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209407A (ja) * 2000-01-25 2001-08-03 Omron Corp Plc用プログラムの実行シミュレーション装置
JP2001282328A (ja) * 2000-03-31 2001-10-12 Omron Corp シミュレーションシステム及びシミュレータ並びに管理装置及び記録媒体
JP2017041201A (ja) * 2015-08-21 2017-02-23 三菱重工業株式会社 分散シミュレーションシステム、シミュレーション実行方法及び制御システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330970A (ja) * 1999-05-18 2000-11-30 Mitsubishi Electric Corp シミュレーション装置及びシミュレーション方法
JP3901417B2 (ja) * 2000-01-25 2007-04-04 オムロン株式会社 Plcシミュレータ
JP2003162304A (ja) 2001-11-27 2003-06-06 Mazda Motor Corp 設備制御のシミュレーション方法及びその装置
US7974828B2 (en) 2007-04-27 2011-07-05 Omron Corporation Simulation device for programmable controller
CN102033993B (zh) * 2010-12-07 2013-04-10 中国电力科学研究院 大规模电力系统动态仿真中继电保护模型的构建方法
EP2508954A1 (en) * 2011-04-06 2012-10-10 ABB Technology AG System and method for the configuration of a clustered simulation network
EP2901335A1 (en) * 2012-09-27 2015-08-05 Siemens Aktiengesellschaft Simulation of programmable logic controller inputs and outputs
KR101514879B1 (ko) * 2012-12-31 2015-07-03 주식회사 포스코아이씨티 제조설비 시뮬레이션 시스템 및 방법
US9954733B2 (en) * 2013-09-03 2018-04-24 Siemens Aktiengesellschaft Systems and methods for virtualizing a programmable logic controller
JP5784263B1 (ja) * 2014-04-30 2015-09-24 三菱電機株式会社 シミュレーションシステム、プログラマブルコントローラ、シミュレーション装置、エンジニアリングツール
NO336192B1 (no) * 2014-06-13 2015-06-08 Mhwirth As Fremgangsmåte for forbedret redundans og oppetid i SCADA nettverk
CN104699476A (zh) * 2014-07-01 2015-06-10 北京邮电大学 仿真方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209407A (ja) * 2000-01-25 2001-08-03 Omron Corp Plc用プログラムの実行シミュレーション装置
JP2001282328A (ja) * 2000-03-31 2001-10-12 Omron Corp シミュレーションシステム及びシミュレータ並びに管理装置及び記録媒体
JP2017041201A (ja) * 2015-08-21 2017-02-23 三菱重工業株式会社 分散シミュレーションシステム、シミュレーション実行方法及び制御システム

Also Published As

Publication number Publication date
WO2019049195A1 (ja) 2019-03-14
JPWO2019049195A1 (ja) 2019-11-07
CN109923483B (zh) 2020-01-03
KR102025129B1 (ko) 2019-09-25
KR20190047125A (ko) 2019-05-07
CN109923483A (zh) 2019-06-21
US10635071B2 (en) 2020-04-28
US20190265668A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
JP6433635B1 (ja) シミュレーション装置およびシミュレーション方法
CN111034128B (zh) 控制系统以及控制装置
US10025286B2 (en) Simulation system, programmable controller, simulation device, and engineering tool
US9753447B2 (en) Control unit, output control method and program
JP2015176340A (ja) プログラマブルコントローラおよびプログラマブルコントローラによるデバイス制御方法
JP2016194830A (ja) 制御装置
WO2021002059A1 (ja) 制御システム、設定装置およびコンピュータプログラム
TWI661358B (zh) 模擬裝置
JP6626313B2 (ja) プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム
US11287793B2 (en) Control device, control method for control device, information processing program, and recording medium
EP3196718A1 (en) Embedded emulation modules in industrial control devices
US20180059649A1 (en) Simulator linkage device, control method of simulator linkage device, information processing program and recording medium
JP2008165324A (ja) プログラム作成支援装置
JP4427734B2 (ja) ループコントローラ
JP6626314B2 (ja) プログラマブル・ロジック・コントローラ
WO2021145124A1 (ja) 制御装置
WO2023119524A1 (ja) シミュレーションプログラム、シミュレーション方法及びシミュレーション装置
KR20170111109A (ko) 고정주기 운전 plc 시스템의 출력 동기화 방법
JP5921449B2 (ja) コントローラ
WO2018109949A1 (ja) 模擬装置、模擬方法及び模擬プログラム
JPH10133734A (ja) 離散系シミュレータ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180808

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180808

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180928

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: 20181009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181106

R150 Certificate of patent or registration of utility model

Ref document number: 6433635

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250