JP5962088B2 - Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体 - Google Patents

Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体 Download PDF

Info

Publication number
JP5962088B2
JP5962088B2 JP2012058502A JP2012058502A JP5962088B2 JP 5962088 B2 JP5962088 B2 JP 5962088B2 JP 2012058502 A JP2012058502 A JP 2012058502A JP 2012058502 A JP2012058502 A JP 2012058502A JP 5962088 B2 JP5962088 B2 JP 5962088B2
Authority
JP
Japan
Prior art keywords
simulator
plc
program
execution
unit
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
JP2012058502A
Other languages
English (en)
Other versions
JP2013191151A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2012058502A priority Critical patent/JP5962088B2/ja
Priority to US14/383,920 priority patent/US9317397B2/en
Priority to CN201380013097.3A priority patent/CN104169819B/zh
Priority to EP13761527.4A priority patent/EP2816427B1/en
Priority to PCT/JP2013/054164 priority patent/WO2013136931A1/ja
Publication of JP2013191151A publication Critical patent/JP2013191151A/ja
Application granted granted Critical
Publication of JP5962088B2 publication Critical patent/JP5962088B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/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
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13174Pc, computer connected to plc to simulate machine
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller、以下「PLC」とも称する)およびPLCと通信する各デバイスとをシミュレータによりシミュレーションするPLCシミュレーションシステム、および、PLCシミュレータに関し、特に、PLCと各デバイスによるデータのアクセスを制御する技術に関する。
PLCのプログラムの開発において、開発の生産性を高めるために、PC(Personal computer)でPLCシミュレータを動作させ、プログラムをデバッグすることが行われている。
PLCでは、プログラムとデータがメモリに格納されている。メモリの内容は、PLCと通信する各デバイスによっても書き換えられる。このようなPLCシミュレーションシステムは、例えば、下記の特許文献1に開示されている。
特開2009−223471号公報(下記の特許文献1)には、PLCおよびPLCの表示器となるプログラマブルターミナル(PT)が協働するPLCシステム全体をシミュレーションしつつ、プログラムおよびPTの表示プログラムのデバッグを行うため、PLCシミュレータとPTシミュレータとを備えるPLCシミュレーションシステムが開示されている。
特許文献1によると、PTシミュレータ側でのユーザ操作がPLCシミュレータへも通知される。そのため、PTの表示プログラムやPLCのプログラムのデバッグを行うことができ、ユーザは、例えば、PTのタッチパネルを操作した際のシミュレーションなどをPCで実行することができる。
特開2009−223471号公報
上記のように、PLCのメモリの内容は、PLCのみならず、PLCと通信する外部のデバイス等からのアクセスにより読み込み、書き込みがなされる。そのため、PLCと外部のデバイスとで、PLCメモリへのアクセスが競合しうる。その結果、意図しない動作が引き起こされるおそれがある。
そこで、本発明は、PLCシミュレーションシステムにおけるPLCメモリへのデータのアクセス制御によりアクセスの競合を回避して、PLCシミュレーションシステムの信頼性を向上させることを目的とする。
一実地形態に従うPLCシミュレーションシステムは、第1の周期により周期的に処理を繰り返すPLCシミュレータと、第2の周期により周期的に処理を繰り返す外部シミュレータとを含み、PLCシミュレータは、プログラム実行のためのデータを保持し、PLCシミュレータおよび外部シミュレータによるアクセスが可能な記憶部と、記憶部へのデータ入出力処理を伴うプログラムを実行する第1の実行部とを備え、外部シミュレータは、記憶部へのデータ入出力処理を伴うプログラムを実行する第2の実行部を備え、第1の実行部または第2の実行部の少なくともいずれか一方は、他方におけるプログラムの実行が完了したことを検知する検知部を含み、第1の実行部または第2の実行部は、プログラムを実行後、検知がなされるまで記憶部へのアクセスを伴うプログラム実行を抑止する。
好ましくは、PLCシミュレータは、外部シミュレータと通信するためのソケットインターフェースを備え、PLCシミュレータに所定の処理を実行させるコマンドを外部シミュレータから受け付けるものであり、第1の実行部は、ソケットインターフェースにより受け付けたコマンドに応じた処理を実行し、コマンドは、第1の実行部によるプログラムの実行状態を外部シミュレータに通知する通知コマンドを含み、第2の実行部は、検知部を含み、通知コマンドの使用により検知を行うこととしてもよい。
好ましくは、記憶部は、カウンタを含み、第1の実行部または第2の実行部の少なくともいずれか一方は、プログラムの実行を完了するとカウンタ値を更新し、検知部は、カウンタ値の更新を検知することにより、検知を行うこととしてもよい。
好ましくは、記憶部は、フラグを記憶し、第1の実行部または第2の実行部の少なくともいずれか一方は、プログラムの実行を完了すると、フラグの値を、実行完了を示す値に変更し、検知部は、フラグの値に基づいて検知を行うこととしてもよい。
一実施形態に従うPLCシミュレータは、第1の周期により周期的に処理を繰り返すPLCシミュレータであって、プログラム実行のためのデータを保持し、PLCシミュレータ、および、第2の周期により周期的に処理を繰り返す外部シミュレータによるアクセスが可能な記憶部と、記憶部へのデータ入出力処理を伴うプログラムを実行する実行部とを備え、実行部は、外部シミュレータにおけるプログラムの実行が完了したことを検知する検知部を含み、プログラムを実行後、検知部による検知がなされるまで記憶部へのアクセスを伴うプログラム実行を抑止する。
一実施形態に従うPLCシミュレータは、第1の周期により周期的に処理を繰り返すPLCシミュレータであって、第2の周期により周期的に処理を繰り返す外部シミュレータと情報を送受信するためのインターフェースと、プログラム実行のためのデータを保持し、PLCシミュレータおよび外部シミュレータによるアクセスが可能な記憶部と、記憶部へのデータ入出力処理を伴うプログラムを実行する実行部とを備え、実行部は、プログラムの実行状態を、インターフェースにより外部シミュレータに通知する。
他の実施形態に従うと、第2の周期により周期的に処理を繰り返す外部シミュレータによるアクセスが可能な記憶部を含み、第1の周期により周期的に処理を繰り返すPLCシミュレータの動作を制御する制御プログラムが提供される。この制御プログラムは、記憶部へのデータ入出力処理を伴うユーザプログラムをPLCシミュレータに実行させるステップと、外部シミュレータにおけるプログラムの実行が完了したことをPLCシミュレータに検知させるステップと、ユーザプログラムを実行後、検知がなされるまで記憶部へのアクセスを伴うユーザプログラムの実行をPLCシミュレータに抑止させるステップと、をPLCシミュレータに実行させる。
他の実施形態に従うと、第2の周期により周期的に処理を繰り返す外部シミュレータによるアクセスが可能な記憶部を含み、第1の周期により周期的に処理を繰り返すPLCシミュレータの動作を制御する制御プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。この記録媒体に記録される制御プログラムは、記憶部へのデータ入出力処理を伴うユーザプログラムをPLCシミュレータに実行させるステップと、外部シミュレータにおけるプログラムの実行が完了したことをPLCシミュレータに検知させるステップと、ユーザプログラムを実行後、検知がなされるまで記憶部へのアクセスを伴うユーザプログラムの実行をPLCシミュレータに抑止させるステップとをPLCシミュレータに実行させる。
このような構成によると、PLCシミュレーションシステムの信頼性を向上させることができる。
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
本発明の実施の形態に係るPLCシミュレーションシステム10を示す機能ブロック図である。 PC11の構成を示す図である。 PLCシミュレータ2のソケットインターフェースにおけるコマンドシーケンスの一例を示す図である。 関連技術におけるPLCシミュレータの動作を示すフローチャートである。
関連技術における外部シミュレータの動作を示すフローチャートである。 関連技術におけるシミュレーションシステムの動作例を示す図である。 本実施形態のPLCシミュレータ2および外部シミュレータ4の動作を示すフローチャートである。 外部シミュレータ4とPLCシミュレータ2のタイミングチャートを示す図である。 PLCシミュレータ2において動作するプログラムの実行が完了したことをカウンタを用いて通知する場合のタイミングチャートである。 変形例2におけるPLCシミュレータ2の動作を示すフローチャートである。 変形例2における外部シミュレータ4の動作を示すフローチャートである
以下、本発明にかかるPLCシミュレータ2と、外部シミュレータ4と、PLCシミュレータ2および外部シミュレータ4が含まれるPLCシミュレーションシステム10とについて説明する。
<1 PLCシミュレーションシステム10の構成>
図1は本発明の実施の形態に係るPLCシミュレーションシステム10の構成を示す機能ブロック図である。
同図に示されるように、このシミュレーションシステム10は、PLCプログラミングツール1と、PLCシミュレータ2と、設定ツール3と、外部シミュレータ4とを含んで構成される。それらのシステム構成要素1〜4は、それぞれ専用のコンピュータプログラム(PLCプログラミングツールソフト、PLCシミュレータソフト、設定ツールソフト、外部シミュレータソフト)をコンピュータ(例えば、パーソナルコンピュータ(PC))に組み込むことにより、ソフトウェア的に実現される。
本実施形態では、1台のPCにおいて上記システム構成要素1〜4が動作するものとして説明する。
<1.1 PLCプログラミングツール1の構成>
PLCプログラミングツール1は、PLCシミュレータ2をデバッグするためのツールであり、ユーザ5の操作を受け付けてPLCシミュレータ2の実行を制御する。
PLCプログラミングツール1は、グラフィカルユーザインタフェース(GUI)部101と、プログラム管理部102と、ミドルウェアとして構成される通信部103と、シミュレーションインタフェース(I/F)部104とを含んでいる。
GUI部101は、GUI画面を表示して、ユーザ5の操作等を介して、PLCシミュレーションやデバック等に関する種々の情報(例えば、PLCシミュレーションの開始、停止等)をユーザ5とやり取りする機能を有する。
プログラム管理部102は、プログラムの作成や編集をする機能を有する。プログラム管理部102は、GUI部101を介してユーザから与えられる指示に従った処理を行う。具体的には、プログラム管理部102は、通信部103を介しての記憶部205からのプログラムの読み込み又はプログラムの書き込み等の機能を有する。
通信部103は、PLCシミュレータ2の通信部202との通信インターフェースを有する。
シミュレーションインタフェース(I/F)部104は、PLCシミュレータ2との間で、PLCシミュレーションやデバック等に関する種々の情報(例えば、PLCシミュレータ2の起動、停止、プログラム実行部203におけるプログラムの起動、停止)をやり取りする機能を有する。
<1.2 PLCシミュレータ2の構成>
PLCシミュレータ2は、PLCのシミュレーション機能を有し、ユーザ5の操作に基づいて動作し、外部シミュレータ4と協働してシミュレーション結果を出力する。
PLCシミュレータ2は、外部シミュレータ4に対し、外部シミュレータ4と通信するためのソケットインターフェースを提供している。PLCシミュレータ2と外部シミュレータ4とが同一のPCにおいて動作する場合に、PLCシミュレータ2のソケットインターフェースによって外部シミュレータ4がPLCシミュレータ2へ指示をすることにより、外部シミュレータ4はPLCシミュレータ2を操作することができる。このソケットインターフェースについては後述する。
PLCシミュレータ2は、PLCプログラミングツール1からのPLCシミュレータ起動停止指令を受けて、起動および停止する。PLCシミュレータ2は、プログラム制御部201と、通信部202と、プログラム実行部203と、停止条件保持部204と、記憶部205を含んでいる。
記憶部205は、RAM(Random Access Memory)等における所定の記憶領域であり、ユーザが任意に作成したプログラム205aと、プログラム205aが参照するPLCメモリ205b(入出力メモリ、データメモリ等々)とを有する。
プログラム実行部203は、所定の起動停止指令が与えられるのに応答して、記憶部205よりプログラム205aを読み出して実行する。
記憶部205に保持されるプログラム205aとPLCメモリ205bの内容とは、通信部202を介して、PLCプログラミングツール1からモニタ可能とされている。さらに、PLCメモリ205bの内容は、通信部202を介して、外部シミュレータ4からも読み込み又は書き込み可能とされている。
通信部202は、データの読み込みや書き込みをする機能を有する。また、通信部202は、外部シミュレータ4に対してソケットインターフェースを提供している。ソケットインターフェースを用いることにより、外部シミュレータ4はPLCシミュレータ2を容易に操作することができる。
プログラム制御部201は、PLCプログラミングツール1から与えられる起動停止指令に応答して、プログラム実行部203によるプログラム205aの実行の起動、停止を制御する機能を有する。
また、プログラム制御部201は、PLCプログラミングツール1から与えられる停止条件設定に応答して、その停止条件設定に含まれる「停止条件」を停止条件保持部204に設定保持させる機能を有する。
プログラム制御部201は、停止条件保持部204に設定保持される「停止条件」の成立を常時監視し、「停止条件」の成立が確認されたならば、プログラム実行部203におけるプログラム205aの実行を直ちに停止させる機能を有する。したがって、停止条件保持部204に所望の「停止条件」を設定保持させることで、プログラムの実行を任意のタイミングで停止させる。これによりプログラムのデバッグが可能とされている。
停止条件保持部204は、上述の通り、プログラム205aの実行を停止させる条件を保持している。
<1.3 設定ツール3の構成>
設定ツール3は、外部シミュレータ4のデバッグのためのツールであり、ユーザ5の操作を受け付けて外部シミュレータ4の起動や停止を制御する。
設定ツール3は、グラフィカルユーザインタフェース(GUI)部301と、シミュレーションインタフェース(I/F)部303とを含んでいる。
GUI部301は、ユーザ5との間で、画面表示、キーボード操作、マウス操作等々を介して、デバック等に関する種々の情報(例えば、PLCと通信するデバイスのシミュレーションの開始、停止等)をやり取りする機能を有する。
シミュレーションインタフェース(I/F)部303は、外部シミュレータ4との間で、デバック等に関する種々の情報(例えば、外部シミュレータ4の起動、停止等)をやり取りする機能を有する。
<1.4 外部シミュレータ4の構成>
外部シミュレータ4は、PLCシミュレータ2と協働して動作するデバイスのシミュレーション機能を発揮するプログラムである。本実施形態では、外部シミュレータ4は、PLCシミュレータ2のソケットインターフェースを用いて外部シミュレータ4が主導的にPLCシミュレータ2に所定の指示をしてPLCシミュレータ2を操作する。
外部シミュレータ4は、画面表示部401と、ミドルウェアとして構成される通信部402と、実行部403とを含んでいる。
画面表示部401は、シミュレーション対象のデバイスの実機の操作画面に対応する。実行部403における実行動作が開始されると、マウスやキーボードを介して仮想的に行われるユーザ5の操作等を受け付けて、その操作内容を実行部403へと受け渡す機能を有する。
実行部403は、所定のプログラムに従って動作し、通信部402を介してPLCシミュレータ2のPLCメモリ205bの該当するアドレスへの書き込み、読み出しを行う。実行部403は、検知部404を含む。
検知部404は、PLCシミュレータ2においてプログラム実行部203が所定のプログラムを実行しているか検知する。本実施形態では、後述するソケットインターフェースを用いて検知する。
<1.5 PLCシミュレーションシステム10の動作環境>
上記の構成を備えるPLCシミュレーションシステム10は、PCにおいてソフトウェア的に実現される。ここで、PC11の構成を図2に示す。
図2に示すように、PC11は、演算部12と、ROM13と、RAM14と、入力部15と、出力部16とを含む。
演算部12は、CPU(Central Processing Unit)を備え、OS(Operating System)やPLCシミュレータ2や外部シミュレータ4など各プログラムの実行を制御する。
ROM13は、ROM(Read Only Memory)であり、各種プログラムを記憶している。
RAM14は、ソフトウェアを実行するための記憶領域であり、PLCシミュレータ2などプログラムがRAM14に読み込まれて各プログラムが動作する。
入力部15は、ユーザ5の操作を受け付ける。具体的には入力部15はキーボードやタッチパネル等により構成される。
出力部16は、シミュレーションの結果などを出力する。具体的にはモニタなどの表示部により構成される。
<2 ソケットインターフェース>
次に、PLCシミュレータ2が提供するソケットインターフェースについて説明する。
図3は、PLCシミュレータ2のソケットインターフェースにおけるコマンドシーケンスの一例を示す図である。
外部シミュレータ4は、ソケットインターフェースにより、各コマンドを使用してPLCシミュレータ2を操作することができる。
例えば、図示するように「GoOneScan」は、PLCシミュレータ2において動作するプログラムを1周期実行させるためのコマンドである。コマンドの引数の指定により、PLCシミュレータ2において動作するプログラムを1周期実行させて一定時間待機させるか、待機を解除するかを制御することができる。待機させてから一定時間経過後は、PLCシミュレータ2に通常の連続実行を開始させることとしてもよい。
また、例えば、「CheckPLCState」は、PLCシミュレータ2において動作するプログラムの実行状態を取得するためのコマンドである。このコマンドにより、PLCシミュレータ2において動作するプログラムの実行状態として、PLCシミュレータ2が1周期実行を終えて待機中であるか、1周期実行中であるかが外部シミュレータ4に通知される。
したがって、外部シミュレータ4は、「GoOneScan」コマンドによりPLCシミュレータ2にプログラムの1周期実行を指示した後、「CheckPLCState」によりPLCシミュレータ2におけるプログラムの実行状態を取得することで、PLCシミュレータ2が処理を終えたか検知することができる。
<3 動作>
次に、PLCシミュレーションシステム10のPLCシミュレータ2、外部シミュレータ4の動作について説明する。
本実施形態では、外部シミュレータ4とPLCシミュレータ2の一方が制御の主導権を握り、もう一方へ処理の開始を指示して処理が実行されたことを確認する。
この実施形態の例では、PLCシミュレータ2がソケットインターフェースを用意し、外部シミュレータ4において動作するプログラムは、主導的にPLCシミュレータ2を操作する。外部シミュレータ4において動作するプログラムは、PLCシミュレータ2におけるプログラムの動作が完了したことを、ソケットインターフェースを用いた所定のコマンドにより検知する。検知してから外部シミュレータ4のプログラムが動作する。
これにより、PLCメモリ205bへのアクセスが競合しないようプログラムが実行される。そのため、PLCメモリ205bのデータが意図しないまま改変され、想定外の動作をすることが防止される。
<3.1 関連技術の動作>
ここで、本発明との比較のため、PLCメモリへのアクセスの競合が起こりうるシミュレーションシステムの構成について説明する。
図4は、関連技術におけるPLCシミュレータの動作を示すフローチャートである。
同図に示すように、関連技術におけるPLCシミュレータは、周期的に処理を繰り返し実行する。すなわち、関連技術におけるPLCシミュレータは、所定周期が経過する都度(S21)、PLCメモリへのデータの入出力処理を行い(S23)、プログラムを実行する(S25)。
図5は、関連技術における外部シミュレータの動作を示すフローチャートである。
同図に示すように、関連技術における外部シミュレータ(例えば、PLCにより動作制御される検査用のベルトコンベアのシミュレータ)は、所定のモニタ周期が経過する都度(S31)、PLCメモリへのデータのアクセスを伴うモニタ処理を行い(S33)、所定の演算処理を実行する(S35)。このように、外部シミュレータは、周期的に所定の動作を実行する。
このようにして動作する関連技術におけるシミュレーションシステムの動作例を、図6に示す。図6では、外部シミュレータよりもPLCシミュレータの動作周期が短いものとして図示している。
同図のように、関連技術では、PLCシミュレータと外部シミュレータとがそれぞれ独立に動作するため、同時にPLCメモリへアクセスしうる。外部シミュレータは、所定周期ごとに、PLCメモリへアクセスして所定の動作を行う。外部シミュレータがPLCメモリのデータの読み出しと書き出しをしている間、外部シミュレータよりも動作周期が短いPLCシミュレータがタスクを実行することにより、PLCメモリのデータが書き換えられる(同図中では、「A」「B」「C」と書き換えられている)。
関連技術では、外部シミュレータとPLCシミュレータとでPLCメモリへのアクセスが同時になされるおそれがあり、ユーザが意図しない動作をし得ることとなる。
<3.2 PLCシミュレータの動作>
次に、本実施形態におけるPLCシミュレータ2および外部シミュレータ4の動作について説明する。
図7は、本実施形態のPLCシミュレータ2および外部シミュレータ4の動作を示すフローチャートである。同図に示すように、PLCシミュレータ2は、ソケットインターフェースにより外部シミュレータ4からの操作を受け付ける。同図では、ソケットの初期化等の処理を経て、外部シミュレータ4がコマンドシーケンスによりPLCシミュレータ2の操作を開始する処理を示している。
外部シミュレータ4は、「GoOneScan」コマンドによりPLCシミュレータ2において動作するプログラムに1周期の実行をさせる(S62)。PLCシミュレータ2では、「GoOneScan」コマンドの受信によりプログラムの1周期の実行後、待機する(S68)。
外部シミュレータ4は、「CheckPLCState」コマンド使用により、PLCシミュレータ2において1周期の実行がされたか確認する(S63)。PLCシミュレータ2において1周期の実行中であれば(S63:NO)、外部シミュレータ4は、PLCシミュレータ2より「待機中」を示す応答があるまで「CheckPLCState」コマンドを使用する。
PLCシミュレータ2より1周期の実行が完了して「待機中」を示す応答があると(S63:YES)、外部シミュレータ4は、取得したアドレスに基づくPLCメモリ205bへの書き込みなど所定の書込処理を実行する(S64)。
書込処理が完了すると、外部シミュレータ4は、「GoOneScan」コマンド使用によりPLCシミュレータ2において動作するプログラムに1周期の実行をさせる(S65)。PLCシミュレータ2では、「GoOneScan」コマンドを受信してプログラムの1周期の実行後、待機する(S68)。
外部シミュレータ4は、「CheckPLCState」コマンド使用により、PLCシミュレータ2において1周期の実行がされたか確認する(S66)。
PLCシミュレータ2より1周期の実行が完了して「待機中」を示す応答があると(S66:YES)、外部シミュレータ4は、取得したアドレスに基づくPLCメモリ205bからの読み出しなど所定の読出処理を実行する(S67)。その後、外部シミュレータ4は、ステップS64以降の処理を繰り返す。
上記のように、外部シミュレータ4は、ステップS65等によりPLCシミュレータ2におけるプログラムの実行を主導し、ステップS66等により、PLCシミュレータ2の実行が完了したか(BUSY状態かIDLE状態か)確認してから処理(ステップS67等)を行う。
このように動作する外部シミュレータ4とPLCシミュレータ2のタイミングチャートを図8に示す。
図8に示すように、外部シミュレータ4とPLCシミュレータ2とが交互にプログラムを動作させている。外部シミュレータ4がPLCシミュレータ2において動作するプログラムに1周期の実行をさせると、PLCシミュレータ2は所定の演算を行い、この間BUSY状態となる。外部シミュレータ4は、ソケットインターフェースを用いたコマンドによりPLCシミュレータ2の実行状態を確認し、PLCシミュレータ2が待機中の状態(IDLE状態)になってから処理を開始する。
<3.3 変形例>
上記の他にも、外部シミュレータ4とPLCシミュレータ2とが交互にプログラムを動作させるために、一方の実行が完了したことを検知する方法は様々ある。すなわち、検知部404の機能を発揮させる具体的な方法は以下のようにしてもよい。
(変形例1)
上記の例では、外部シミュレータ4がPLCシミュレータ2の実行状態を逐次確認する(「CheckPLCState」コマンドの使用)こととしていたが、この他に、実行状態が完了したことを、所定の記憶領域を用いて一方から他方へと通知することとしてもよい。
図9は、PLCシミュレータ2において動作するプログラムの実行が完了したことをカウンタを用いて通知する場合のタイミングチャートである。
図9の例では、外部シミュレータ4は、主導的にPLCシミュレータ2のプログラムを動作させる。PLCシミュレータ2は、動作を完了するとカウンタ値を更新する。外部シミュレータ4は、カウンタ値の更新がされることによりPLCシミュレータ2におけるプログラムの動作完了を検知している。
図9に示すように、PLCシミュレータ2は、処理を開始すると、所定の読み出し処理時にカウンタ値を取得し、演算を実行して所定の書き込み処理時にカウンタ値を更新する。外部シミュレータ4は、カウンタ値を監視しており、カウンタ値の更新があると、処理を開始する。
(変形例2)
また、所定の記憶領域に、外部シミュレータ4とPLCシミュレータ2のうち一方の実行が完了したことを示すフラグを記憶部205において記憶することにより、実行状態を一方から他方へと通知することとしてもよい。
例えば、PLCシミュレータ2において動作するプログラムは、外部シミュレータ4よりも短い動作周期で動作するとする。すなわち、外部シミュレータ4の動作の間、PLCシミュレータ2により複数回PLCメモリ205bにアクセスされうるとする。
この場合、外部シミュレータ4は、動作を完了すると、上記のフラグをオンにすることでPLCシミュレータ2に動作の完了を通知する。動作周期が比較的短いPLCシミュレータ2は、周期が到来した際に、フラグがオフであれば外部シミュレータ4のプログラムの動作が完了していないとみなして処理を実行せず待機する。PLCシミュレータ2は、フラグがオンである場合は、外部シミュレータ4のプログラムの動作が完了したと検知して処理を実行する。
図10は、変形例2におけるPLCシミュレータ2の動作を示すフローチャートである。
PLCシミュレータ2は、所定の動作周期が到来するタイミングで、フラグがONでなければ待機してプログラム203aを実行せず、これによりPLCメモリ205bへのアクセスを停止する(S91:NO)。
所定周期が到来し、かつ、フラグがONであると、PLCシミュレータ2は、フラグをオフにする(S93)。
PLCシミュレータ2は、PLCメモリ205bへアクセスしてPLCメモリ205bのデータの入出力処理(S95)や、PLCメモリ205bのデータ等を用いてプログラム203aを実行する(S97)など所定の処理を実行する。
図11は、変形例2における外部シミュレータ4の動作を示すフローチャートである。
外部シミュレータ4において動作するプログラムは、所定の動作周期(モニタ周期)が到来するまで待機する(S101:NO)。周期が到来すると(S101:YES)、外部シミュレータ4において動作するプログラムは、モニタ処理(S103)や演算処理(S105)などPLCメモリ205bの読み出しおよび書き込みを伴う所定の処理を実行する。外部シミュレータ4において動作するプログラムは、これら処理が完了すると、フラグをオンにする(S107)。フラグとオンすることにより、外部シミュレータ4において動作するプログラムにおける処理が実行されたことをPLCシミュレータ2に通知する。
上記の通りPLCシミュレータ2の動作周期は外部シミュレータ4のものよりも短いため、外部シミュレータ4の周期的な処理の実行タイミングが再度、到来する前に、PLCシミュレータ2によるPLCメモリ205bへのアクセスが完了している。したがって、PLCシミュレータ2と外部シミュレータ4との間で、PLCメモリ205bへのアクセスが同時になされることはなく、外部シミュレータ4においてユーザプログラムが意図しないデータに基づいて誤って動作するのを防ぐことができる。
実施形態の説明では、外部シミュレータ4は、検知部404によりPLCシミュレータ2のプログラムの実行完了を検知するものとして説明した。上記変形例の説明からも明らかなように、PLCシミュレータ2側により外部シミュレータ4におけるプログラムの実行状態を検知して、PLCシミュレータ2におけるプログラムの実行抑止等の制御をすることとしてもよい。すなわち、検知部404の機能は、PLCシミュレータ2も発揮することができる。
また、外部シミュレータ4およびPLCシミュレータ2の双方が、互いに検知部404の機能を発揮して、他方のプログラムの実行完了を検知することとしてもよい。
上記のPLCシミュレータ2の動作を制御する制御プログラムを、コンピュータ読み取り可能な記録媒体に記録し、記録媒体を流通させることにより、この制御プログラムを頒布することもできる。今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明は、PLCシミュレーションシステムに用いることができる。
1 PLCプログラミングツール、2 PLCシミュレータ、3 設定ツール、4 外部シミュレータ、5 ユーザ、10 PLCシミュレーションシステム、11 PC、12 演算部、13 ROM、14 RAM、15 入力部、16 出力部、101 GUI部、102 管理部、103 通信部、104 シミュレーションI/F部、201 制御部、202 通信部、203 プログラム実行部、204 停止条件保持部、205 記憶部、205a プログラム、205b PLCメモリ、301 GUI部、303 シミュレーションI/F部、401 画面表示部、402 通信部、403 実行部。

Claims (8)

  1. PLCシミュレーションシステムであって、
    前記PLCシミュレーションシステムは、第1の周期により周期的に処理を繰り返すPLCシミュレータと、前記第1の周期とは異なる第2の周期により周期的に処理を繰り返す外部シミュレータとを含み、
    前記PLCシミュレータは、
    プログラム実行のためのデータを保持し、前記PLCシミュレータおよび前記外部シミュレータによるアクセスが可能な記憶部と、
    前記記憶部へのデータ入出力処理を伴うプログラムを実行する第1の実行部とを備え、
    前記外部シミュレータは、
    前記記憶部へのデータ入出力処理を伴うプログラムを実行する第2の実行部を備え、
    前記第1の実行部または前記第2の実行部の少なくともいずれか一方は、他方におけるプログラムの実行が完了したことを検知する検知部を含み、
    前記第1の実行部または前記第2の実行部は、プログラムを実行後、前記検知がなされるまで前記記憶部へのアクセスを伴うプログラム実行を抑止する、
    PLCシミュレーションシステム。
  2. 前記PLCシミュレータは、前記外部シミュレータと通信するためのソケットインターフェースを備え、前記PLCシミュレータに所定の処理を実行させるコマンドを前記外部シミュレータから受け付けるものであり、
    前記第1の実行部は、前記ソケットインターフェースにより受け付けたコマンドに応じた処理を実行し、
    前記コマンドは、前記第1の実行部によるプログラムの実行状態を前記外部シミュレータに通知する通知コマンドを含み、
    前記第2の実行部は、前記検知部を含み、前記通知コマンドの使用により前記検知を行う、
    請求項1記載のPLCシミュレーションシステム。
  3. 前記記憶部は、カウンタを含み、
    前記第1の実行部または前記第2の実行部の少なくともいずれか一方は、プログラムの実行を完了するとカウンタ値を更新し、
    前記検知部は、前記カウンタ値の更新を検知することにより、前記検知を行う、
    請求項1記載のPLCシミュレーションシステム。
  4. 前記記憶部は、フラグを記憶し、
    前記第1の実行部または前記第2の実行部の少なくともいずれか一方は、プログラムの実行を完了すると、前記フラグの値を、実行完了を示す値に変更し、
    前記検知部は、前記フラグの値に基づいて前記検知を行う、
    請求項1記載のPLCシミュレーションシステム。
  5. 第1の周期により周期的に処理を繰り返すPLCシミュレータであって、
    プログラム実行のためのデータを保持し、前記PLCシミュレータ、および、前記第1の周期とは異なる第2の周期により周期的に処理を繰り返す外部シミュレータによるアクセスが可能な記憶部と、
    前記記憶部へのデータ入出力処理を伴うプログラムを実行する実行部とを備え、
    前記実行部は、前記外部シミュレータにおけるプログラムの実行が完了したことを検知する検知部を含み、プログラムを実行後、前記検知部による検知がなされるまで前記記憶部へのアクセスを伴うプログラム実行を抑止する、
    PLCシミュレータ。
  6. 第1の周期により周期的に処理を繰り返すPLCシミュレータであって、
    前記第1の周期とは異なる第2の周期により周期的に処理を繰り返す外部シミュレータと情報を送受信するためのインターフェースと、
    プログラム実行のためのデータを保持し、前記PLCシミュレータおよび前記外部シミュレータによるアクセスが可能な記憶部と、
    前記記憶部へのデータ入出力処理を伴うプログラムを実行する実行部とを備え、
    前記実行部は、プログラムの実行状態を、前記インターフェースにより前記外部シミュレータに通知する、
    PLCシミュレータ。
  7. 第2の周期により周期的に処理を繰り返す外部シミュレータによるアクセスが可能な記憶部を含み、前記第2の周期とは異なる第1の周期により周期的に処理を繰り返すPLCシミュレータの動作を制御する制御プログラムであって、
    前記記憶部へのデータ入出力処理を伴うユーザプログラムを前記PLCシミュレータに実行させるステップと、
    前記外部シミュレータにおけるプログラムの実行が完了したことを前記PLCシミュレータに検知させるステップと、
    前記ユーザプログラムを実行後、前記検知がなされるまで前記記憶部へのアクセスを伴うユーザプログラムの実行を前記PLCシミュレータに抑止させるステップと、
    を含む制御プログラム。
  8. 第2の周期により周期的に処理を繰り返す外部シミュレータによるアクセスが可能な記憶部を含み、前記第2の周期とは異なる第1の周期により周期的に処理を繰り返すPLCシミュレータの動作を制御する制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記制御プログラムは、
    前記記憶部へのデータ入出力処理を伴うユーザプログラムを前記PLCシミュレータに実行させるステップと、
    前記外部シミュレータにおけるプログラムの実行が完了したことを前記PLCシミュレータに検知させるステップと、
    前記ユーザプログラムを実行後、前記検知がなされるまで前記記憶部へのアクセスを伴うユーザプログラムの実行を前記PLCシミュレータに抑止させるステップとを含む、
    記録媒体。
JP2012058502A 2012-03-15 2012-03-15 Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体 Active JP5962088B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012058502A JP5962088B2 (ja) 2012-03-15 2012-03-15 Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体
US14/383,920 US9317397B2 (en) 2012-03-15 2013-02-20 Programmable logic controller (PLC) simulation system, PLC simulator, recording medium, and simulation method
CN201380013097.3A CN104169819B (zh) 2012-03-15 2013-02-20 Plc模拟系统、plc模拟器、记录介质以及模拟方法
EP13761527.4A EP2816427B1 (en) 2012-03-15 2013-02-20 Plc simulation system, plc simulator, recording medium, and simulation method
PCT/JP2013/054164 WO2013136931A1 (ja) 2012-03-15 2013-02-20 Plcシミュレーションシステム、plcシミュレータ、記録媒体およびシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012058502A JP5962088B2 (ja) 2012-03-15 2012-03-15 Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2013191151A JP2013191151A (ja) 2013-09-26
JP5962088B2 true JP5962088B2 (ja) 2016-08-03

Family

ID=49160849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012058502A Active JP5962088B2 (ja) 2012-03-15 2012-03-15 Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体

Country Status (5)

Country Link
US (1) US9317397B2 (ja)
EP (1) EP2816427B1 (ja)
JP (1) JP5962088B2 (ja)
CN (1) CN104169819B (ja)
WO (1) WO2013136931A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765279B (zh) * 2014-01-07 2019-02-19 基伊埃冷冻技术(苏州)有限公司 工业制冷机组仿真测试系统及应用其的测试方法
JP5784263B1 (ja) * 2014-04-30 2015-09-24 三菱電機株式会社 シミュレーションシステム、プログラマブルコントローラ、シミュレーション装置、エンジニアリングツール
JP6588344B2 (ja) * 2016-01-15 2019-10-09 株式会社ジャパンディスプレイ トランジスタ基板及び表示装置
US10459773B2 (en) * 2016-05-19 2019-10-29 Hitachi, Ltd. PLD management method and PLD management system
JP6827340B2 (ja) * 2017-02-17 2021-02-10 三菱重工エンジニアリング株式会社 ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム
KR102480595B1 (ko) * 2020-01-20 2022-12-22 엘에스일렉트릭(주) Plc 시스템의 파라미터 설정 방법
CN114285599B (zh) * 2021-11-23 2023-08-01 中国人民解放军战略支援部队信息工程大学 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐
WO2023184554A1 (zh) * 2022-04-02 2023-10-05 宁德时代新能源科技股份有限公司 一种plc测试系统及方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3846540B2 (ja) * 2000-01-25 2006-11-15 オムロン株式会社 Plc用制御プログラムの実行シミュレーション装置、並びに、制御プログラム実行シミュレーション機能を有するplc
JP3876959B2 (ja) * 2000-01-25 2007-02-07 オムロン株式会社 シーケンスプログラムのシミュレーション装置
JP2004258926A (ja) * 2003-02-25 2004-09-16 Matsushita Electric Works Ltd プログラマブルコントローラのプログラムのシミュレーション装置、及び方法
US20070271450A1 (en) 2006-05-17 2007-11-22 Doshi Kshitij A Method and system for enhanced thread synchronization and coordination
JP4941674B2 (ja) * 2008-03-14 2012-05-30 オムロン株式会社 シミュレーション・システム
CN201444254U (zh) * 2009-07-14 2010-04-28 大连顶金通用设备制造有限公司 基于plc控制的球缺封头压鼓操作机控制系统
KR101053104B1 (ko) * 2009-10-28 2011-08-02 엘에스산전 주식회사 전산기기 소프트웨어 테스트 방법 및 시스템
US9361212B2 (en) * 2010-06-09 2016-06-07 Siemens Aktiengesellschaft Computation apparatus with coordination of the access to an internal memory and operating method

Also Published As

Publication number Publication date
US9317397B2 (en) 2016-04-19
EP2816427A4 (en) 2015-11-25
CN104169819A (zh) 2014-11-26
CN104169819B (zh) 2017-05-03
JP2013191151A (ja) 2013-09-26
EP2816427B1 (en) 2021-07-28
US20150058828A1 (en) 2015-02-26
EP2816427A1 (en) 2014-12-24
WO2013136931A1 (ja) 2013-09-19

Similar Documents

Publication Publication Date Title
JP5962088B2 (ja) Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体
WO2011108026A1 (ja) プログラマブル表示器を備えた制御システム及びプログラマブル表示器並びにその作画データ作成手段
JP6790686B2 (ja) 制御装置、制御方法およびプログラム
JP2016110460A (ja) プログラマブルコントローラ、プログラマブルコントローラの制御方法およびプログラム
US20140136570A1 (en) Controller and program
JP2009251936A (ja) プログラマブル表示器の画面プログラム自動試験システム
CN113703818B (zh) 设备升级方法和装置、计算机设备和计算机可读存储介质
JP5365875B2 (ja) 産業用コントローラ
JP4439235B2 (ja) 動作試験装置および動作試験方法
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
TWI739853B (zh) 運算裝置與運作方法
JP5687171B2 (ja) コントローラ、監視ユニット、およびシーケンスプログラム更新方法
JP2012208932A (ja) Plcシステム、状態表示方法、plc、およびプログラマブル表示器
JP4892406B2 (ja) 情報処理装置のトランザクション管理方法及び情報処理装置
JP5384306B2 (ja) 表示/制御・シミュレートシステム、そのプログラマブル表示器、シミュレータ装置
JP2002244883A (ja) デバッグ支援装置、デバッグ支援方法及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5921449B2 (ja) コントローラ
JP2020107206A (ja) マイクロコンピュータ、デバッグ情報出力方法、およびデバッグシステム
JP2007041887A (ja) デバッグ装置、そのメモリアクセス方法およびメモリアクセス方法を実現するプログラム
JP2012038013A (ja) 情報処理装置およびコンピュータープログラム
JP5484641B1 (ja) プログラマブル表示器
JP4527419B2 (ja) プログラムトレース方法およびトレース処理システム
JP2008242592A (ja) メモリ監視回路、情報処理装置、及びメモリ監視方法
JP2013050761A (ja) シミュレーション装置、シミュレーション方法、及びプログラム
JP2007128413A (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160303

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160613

R150 Certificate of patent or registration of utility model

Ref document number: 5962088

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