JP6395967B1 - プログラム検証システム、制御装置およびプログラム検証方法 - Google Patents

プログラム検証システム、制御装置およびプログラム検証方法 Download PDF

Info

Publication number
JP6395967B1
JP6395967B1 JP2018502432A JP2018502432A JP6395967B1 JP 6395967 B1 JP6395967 B1 JP 6395967B1 JP 2018502432 A JP2018502432 A JP 2018502432A JP 2018502432 A JP2018502432 A JP 2018502432A JP 6395967 B1 JP6395967 B1 JP 6395967B1
Authority
JP
Japan
Prior art keywords
control
input
input data
data
output data
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.)
Expired - Fee Related
Application number
JP2018502432A
Other languages
English (en)
Other versions
JPWO2018235250A1 (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 JP6395967B1 publication Critical patent/JP6395967B1/ja
Publication of JPWO2018235250A1 publication Critical patent/JPWO2018235250A1/ja
Expired - Fee Related 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
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0256Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults injecting test signals and analyzing monitored process response, e.g. injecting the test signal while interrupting the normal operation of the monitored system; superimposing the test signal onto a control signal during normal operation of the monitored system
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • 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/20Pc systems
    • G05B2219/23Pc programming
    • 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/31From computer integrated manufacturing till monitoring
    • G05B2219/31362Verify correct configuration of system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

プログラム検証システム(10)において、装置(14)を制御するための制御プログラムを用いて制御入力データに対応する制御出力データを算出して入出力装置(16)に出力するPLC(15)と、装置の動作仕様を満たすテスト入力データとテスト出力データとの組み合わせであって時間的変化を示すテストパターンに含まれるテスト出力データと、PLC(15)が算出した制御出力データと、を照合することによって制御プログラムの動作検証を行う照合部(13)と、を備え、PLC(15)は、制御プログラムの動作検証が行われる際には、制御プログラムで制御入力データを参照する命令があるとPLC(15)内の第1の時間情報を生成するとともにテストパターン内から第1の時間情報に対応するテスト入力データを抽出し、抽出したテスト入力データおよび制御プログラムを用いて出力データを算出する制御部(18)と、を有する。

Description

本発明は、装置の制御に用いられる制御プログラムを検証するプログラム検証システム、制御装置およびプログラム検証方法に関する。
プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)といった制御装置は、種々のデータを保持しており、保持しているデータを用いて、装置を制御するための制御プログラムを動作させる。これにより、PLCは、PLCが組み込まれた装置または設備を特定の周期で制御する。
このような制御プログラムは、PLCが組み込まれる装置の動作仕様に基づいて設計されており、装置または設備といった実機を用いて動作検証が行なわれている。特許文献1に記載の動作検証装置は、制御プログラムであるロボット動作用プログラムの中から、PLCであるシーケンサとの間での制御信号の入力または出力の機能を有するプログラム部分を検出している。そして、特許文献1に記載の動作検証装置は、検出したプログラム部分を逐次シーケンサに入力することによってシーケンサの内部状態を変化させ、この変化に基づいてシーケンサの動作検証を行っている。
特開平10−97307号公報
しかしながら、上記従来の技術である特許文献1では、動作検証の際に時間の情報を考慮していないので、精度よく装置を動作させることができない。このため、上記従来の技術である特許文献1では、制御プログラムの正確な動作検証を行うことができないという問題があった。
本発明は、上記に鑑みてなされたものであって、制御プログラムの正確な動作検証を行うことができるプログラム検証システムを得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、プログラム検証システムにおいて、データの入出力を行う入出力装置からの制御入力データが入力されるとともに、装置を制御するための制御プログラムを用いて制御入力データに対応する制御出力データを算出して入出力装置に出力する制御装置と、装置の動作仕様を満たすテスト入力データとテスト出力データとの組み合わせであって制御装置内の時間と同じ時間を用いた時間的変化を示すテストパターンに含まれるテスト出力データと、制御装置が算出した制御出力データとを照合することによって制御プログラムの動作検証を行う照合部と、を備える。また、本発明のプログラム検証システムにおいて、制御装置は、テストパターンを記憶する記憶部と、制御プログラムの動作検証が行われる際には、制御プログラムで制御入力データを参照する命令があると制御装置内の時間の情報である第1の時間情報を取得するとともにテストパターン内から第1の時間情報に対応するテスト入力データを抽出し、抽出したテスト入力データおよび制御プログラムを用いて制御出力データを算出する制御部と、を有する。
本発明にかかるプログラム検証システムは、制御プログラムの正確な動作検証を行うことができるという効果を奏する。
本発明の実施の形態にかかるプログラム検証システムの構成を示す図 実施の形態にかかるPLCが備える記憶部の構成を示す図 実施の形態にかかる装置の動作仕様例を示す図 実施の形態にかかるテストパターンの一例を示す図 実施の形態にかかるPLCの動作処理手順を示すフローチャート 実機を用いた動作検証と、実施の形態にかかる動作検証との相違点を説明するための図 実施の形態にかかるPLCが備える制御部のハードウェア構成例を示す図
以下に、本発明の実施の形態にかかるプログラム検証システム、制御装置およびプログラム検証方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態
図1は、本発明の実施の形態にかかるプログラム検証システムの構成を示す図である。プログラム検証システム10は、工作機械または半導体製造装置といった装置14と、装置14の制御に用いられる制御プログラムの検証を行う検証装置11とを備えている。
装置14は、装置14を制御する制御装置であるPLC15と、PLC15との間でデータの入出力が行われる入出力装置16とを備えている。PLC15は、種々の情報を記憶する記憶部17と、記憶部17内の情報を用いて装置14を制御する制御部18とを備えている。また、PLC15は、検証装置11との間でデータ通信を行なう通信インタフェース(IF:InterFace)部31と、入出力装置16との間でデータ通信を行なう通信IF部32とを備えている。
第1の通信部である通信IF部31は、制御部18からの指示に従って、検証装置11との間でデータ通信を実行する。通信IF部31は、検証装置11から送られてくるテストパターンを受付けて記憶部17に送る。テストパターンは、制御プログラムの検証に用いられるデータである。テストパターンは、装置14の動作仕様を満たしており、後述の入力データと、後述の出力データとの組み合わせであり、装置14の動作仕様で規定された範囲内で発生しうるものの時間的変化を示している。すなわち、テストパターンは、PLC15が組み込まれる装置14またはPLC15が配置される設備の動作仕様に基づいて定義される入力データおよび出力データの時間的な変化を示している。具体的には、テストパターンは、テスト入力データである入力データと、テスト出力データである出力データと、時間の情報である後述の時間情報T2とが対応付けされたものである。
入力データの一例は、入出力装置16がPLC15に入力するデータである。出力データは、PLC15内の制御プログラムが算出するデータであり、PLC15によって入出力装置16に出力される。プログラム検証システム10が用いる入力データには、2種類の入力データがある。2種類の入力データのうち、テストパターンに含まれる入力データは、制御プログラムの検証に用いられるテスト入力データである。また、2種類の入力データのうち、入出力装置16から入力される入力データは、入出力装置16の制御に用いられる制御入力データである。また、プログラム検証システム10が用いる出力データには、2種類の出力データがある。2種類の出力データのうち、テストパターンに含まれる出力データは、制御プログラムの検証に用いられるテスト出力データである。また、2種類の出力データのうち、制御部18が算出する出力データは制御出力データである。プログラム検証システム10が、後述する動的解析を実行する場合には、制御部18が算出した制御出力データを、テスト出力データとの照合に用いる。また、プログラム検証システム10が、後述する動的解析を実行ない場合には、制御部18が算出した制御出力データを、入出力装置16の制御に用いる。
通信IF部31は、制御部18が用いた入力データと、制御部18が制御プログラムを用いて算出した出力データとの組み合わせを検証装置11に送る。第2の通信部である通信IF部32は、制御部18からの指示に従って、入出力装置16との間でデータ通信を実行する。通信IF部32は、入出力装置16から送られてくる入力データを受信して記憶部17に送る。また、通信IF部32は、制御部18が算出した出力データであって記憶部17に格納されているものを入出力装置16に送る。
記憶部17は、入力データと、出力データと、制御プログラムと、制御部18の動作設定を示す動作設定パラメータと、テストパターンとを記憶する。制御プログラムの一例は、ラダープログラムといったシーケンスプログラムである。制御部18の動作設定を示す動作設定パラメータの例は、制御プログラムの動的解析を実行するか否かが指定されたパラメータ、または動作検証の際の入力データの取得方法が指定されたパラメータである。動作検証の際の入力データの取得方法には、入力データの全てをテストパターンから取得する方法と、入力データの一部をテストパターンから取得し、残りの部分を入出力装置16から取得する方法とがある。
制御部18は、通信IF部31,32および記憶部17を制御する。また、制御部18は、PLC15が管理する時間の情報である時間情報を生成する時間情報生成部19を備えている。時間情報生成部19は、時計機能を有しており、時計機能を用いて時間情報を生成する。なお、時間情報生成部19は、制御部18の外部に配置されてもよい。
以下の説明では、時間情報生成部19が生成するPLC15内の時間情報を時間情報T1という。また、以下の説明では、テストパターン内の時間の情報を時間情報T2という。第1の時間情報である時間情報T1は、PLC15の電源がオンにされてからの経過時間であってもよいし、時計で計測される時刻または日時の情報であってもよい。第2の時間情報である時間情報T2は、時間情報T1に対応する時間の情報である。したがって、時間情報T2は、時間情報T1がPLC15の電源がオンにされてからの経過時間である場合、この経過時間を示す情報であり、時間情報T1が時計で計測される時刻または日時である場合、時刻または日時を示す情報である。
制御部18は、制御プログラムを実行することによって、入出力装置16に出力する出力データを算出する。制御部18は、制御プログラムに入力データを適用することによって、出力データを算出する。換言すると、制御部18は、制御プログラムを用いて、入力データに対応する出力データを算出する。制御部18は記憶部17に格納されている入力データまたは入出力装置16の入力データを参照して制御プログラムを実行することで出力データを算出する。制御部18は、入力データと、制御プログラムを用いて算出した出力データと、の組み合わせを記憶部17に記憶させる。
制御部18は、入出力装置16の通常動作を制御する際には、入出力装置16から送られてきた入力データに対応する出力データを算出する。換言すると、制御部18は、通常動作を制御する際には、制御入力データに基づいて、制御入力データに対応する制御出力データを算出する。また、制御部18は、制御プログラムの動作を確認する際には、時間情報生成部19が生成した時間情報T1に基づいて、テストパターン内から入力データを抽出する。具体的には、制御部18は、時間情報T1と同一の時間情報T2をテストパターン内から抽出し、抽出した時間情報T2に対応付けされた入力データをテストパターン内から抽出する。制御部18は、制御プログラムの動作を確認する際には、テストパターン内から抽出した入力データに対応する出力データを算出する。換言すると、制御部18は、制御プログラムの動作を確認する際には、テスト入力データに基づいて、テスト入力データに対応する制御出力データを算出する。
入出力装置16は、データの入力および出力を行う装置であり、PLC15に接続されている。入出力装置16は、PLC15に入力データを送る入力装置と、PLC15から出力データを受け取る出力装置とを含んでいる。
入力装置の例は、入力ボタン、またはセンサである。入力装置が入力ボタンである場合、入力ボタンは、ユーザに押下されると、押下されたことを示す入力データをPLC15に送る。また、入力装置がセンサである場合、センサは、検出した、温度または位置といった情報である入力データをPLC15に送る。
出力装置の例は、開閉バルブ、またはLED(Light Emitting Diode)である。出力装置が開閉バルブの場合、開閉バルブは、バルブを開状態にするための出力データまたはバルブを閉状態にするための出力データをPLC15から受信する。また、出力装置がLEDの場合、LEDは、LEDを点灯するための出力データまたはLEDを消灯するための出力データをPLC15から受信する。
PLC15は、入力装置によって入力データが入力されると、入力装置からの入力データに対応する出力データを、制御プログラムを用いて算出し、算出した出力データを出力装置に出力する。PLC15が、出力装置に送る出力データが、制御プログラムによる出力データの算出結果である。
検証装置11は、テストパターンを生成するテストパターン生成部12と、制御プログラムの動作とテストパターンとを照合する照合部13とを備えている。テストパターン生成部12は、装置14の動作仕様に基づいて、テストパターンを生成する。テストパターン生成部12は、生成したテストパターンをPLC15および照合部13に送る。
テストパターン生成部12は、生成したテストパターンの全体をPLC15に送ってもよいが、生成したテストパターンのうち、入力データおよび時間情報T2の部分をPLC15に送ってもよい。すなわち、PLC15が用いるのは、テストパターン内の入力データであるので、テストパターン生成部12は、出力データ部分を除外したテストパターンをPLC15に送信してもよい。テストパターン生成部12は、生成したテストパターンの全体を照合部13に送る。
照合部13は、テストパターンから抽出された入力データと、抽出された入力データに対応する出力データと、の組み合わせをPLC15から受信する。照合部13は、PLC15の出力データと装置14の動作仕様とを照合する。このとき、照合部13は、PLC15から受信した入力データおよび出力データの組合せである第1の組合せと、テストパターン内の入力データおよび出力データの組合せである第2の組合せとを照合する。具体的には、照合部13は、第1の組合せに対応付けされた時間情報T1と同じ時間情報T2をテストパターン内から抽出し、抽出した時間情報T2に対応する第2の組合せをテストパターン内から抽出する。そして、照合部13は、受信した第1の組合せと抽出した第2の組合せとを比較する。照合部13は、この比較結果に基づいて、制御プログラムの動作を検証する。照合部13は、受信した第1の組合せと抽出した第2の組合せとが同一である場合には、制御プログラムは装置14の動作仕様に従って作成されていると判定する。テストパターン内の入力データおよび出力データは、装置14の動作仕様を満たしている。したがって、実施の形態の照合部13は、PLC15から受信した出力データとテストパターン内の出力データとを照合することによって、制御プログラムの動作を検証する。この場合において、照合部13は、PLC15から受信した入力データに対応する出力データをテストパターンから抽出し、抽出した出力データと、PLC15から受信した出力データとを比較する。一方、照合部13は、受信した第1の組合せと抽出した第2の組合せとが異なる場合には、制御プログラムは装置14の動作仕様に従って作成されていないと判定する。実施の形態の照合部13は、PLC15から受信した出力データとテストパターン内の出力データとが異なる場合には、制御プログラムは装置14の動作仕様に従って作成されていないと判定する。
なお、PLC15は、装置14の外部に配置されてもよい。また、検証装置11は、装置14内に配置されてもよい。この場合、テストパターン生成部12は、装置14の外部に配置されてもよい。また、検証装置11は、PLC15内に配置されてもよい。換言すると、PLC15が、PLC15の入出力データと装置14の動作仕様との照合である動作検証を実行してもよい。この場合、テストパターン生成部12は、PLC15の外部に配置されてもよい。
つぎに、記憶部17の構成について説明する。図2は、実施の形態にかかるPLCが備える記憶部の構成を示す図である。記憶部17は、テストパターンを格納するテストパターン格納領域21と、動作設定パラメータを格納するパラメータ格納領域22とを備えている。また、記憶部17は、入力データを格納する入力データ格納領域23と、出力データを格納する出力データ格納領域24とを備えている。また、記憶部17は、制御プログラムを格納する制御プログラム格納領域25を備えている。
第1の記憶部であるテストパターン格納領域21は、検証装置11から送られてくるテストパターンを格納する領域である。パラメータ格納領域22は、装置14のユーザによって設定される動作設定パラメータを格納する領域である。
第2の記憶部である入力データ格納領域23は、制御プログラムの実行に用いられる入力データを格納する領域である。プログラム検証システム10が制御プログラムの動作を検証する際には、制御部18が、テストパターンから抽出した入力データを入力データ格納領域23に格納する。換言すると、制御プログラムの動作を検証する際には、制御部18が、入力データの一部または全部の値を、テストパターン内の入力データに書き換える。この場合において、制御部18は、テストパターンに含まれている時間情報T2と、時間情報生成部19が生成した時間情報T1とを照合し、入力データ格納領域23内の入力データを書き換えるための、入力データの値をテストパターンから抽出する。一方、PLC15が、入出力装置16を用いて、通常動作を実行する際には、制御部18が、入出力装置16によってPLC15に入力された入力データを入力データ格納領域23に格納する。このように、入力データ格納領域23は、プログラム検証システム10が制御プログラムの動作を検証する際には、テスト入力データである入力データを格納し、通常動作を実行する際には、制御入力データである入力データを格納する。
第3の記憶部である出力データ格納領域24は、出力データを格納する領域である。制御部18は、入力データ格納領域23に格納されている入力データに対応する出力データを算出すると、算出した出力データを出力データ格納領域24に格納する。入力データ格納領域23に格納されている入力データがテストパターンの入力データである場合、制御部18は、テストパターンの入力データに対応する出力データを出力データ格納領域24に格納する。一方、入力データ格納領域23に格納されている入力データが入出力装置16からの入力データである場合、制御部18は、入出力装置16からの入力データに対応する出力データを出力データ格納領域24に格納する。入力データ格納領域23および出力データ格納領域24の一例は、レジスタである。このように、出力データ格納領域24は、プログラム検証システム10が制御プログラムの動作を検証する際と通常動作を実行する際との何れの場合にも、入力データを用いて算出された制御出力データである出力データを格納する。
制御プログラム格納領域25は、図示しないプログラム作成装置といった外部装置から送られてくる制御プログラムを格納する領域である。なお、記憶部17は、複数の記憶装置で構成されてもよい。以下の説明では、入力データおよび出力データを入出力データという場合がある。
つぎに、装置14の動作仕様例について説明する。図3は、実施の形態にかかる装置の動作仕様例を示す図である。図3では、装置14の動作仕様に記載される入出力データのタイミング図を示している。図3に示す横軸は時間であり、縦軸は、入力データX0,X1および出力データY0,Y1である。
装置14の動作仕様は、入出力データの更新と、制御プログラムの実行とを含んでいる。そして、装置14の動作仕様における制御プログラムは、2つの命令を含んでいる。PLC15が用いる制御プログラムは、この装置14の動作仕様に従って作成されたものである。ここでの動作仕様に含まれる命令の第1例は、入出力データの更新時に取り込んだ入力データX0がオン(ON)であれば出力データY0をオンとする命令である。また、ここでの動作仕様に含まれる命令の第2例は、制御プログラムの命令を実行した際に、入出力装置16の入力データX1がオンであれば出力データY1をオンとする命令である。PLC15が用いる制御プログラムには、上述した第1例および第2例の命令が含まれている。これにより、制御プログラムで装置14の動作仕様を達成することが可能となる。
制御プログラムが実行されると、入力データX0は、時間t1でオンなので、出力データY0はオンになる。また、制御プログラムが実行されると、入力データX1は時間t1ではオフ(OFF)なので、出力データY1はオフのままである。そして、時間t2で入力データX1がオンになると、出力データY1がオンになる。
PLC15の制御部18は、時間t0から時間t1で入出力装置16からの入力データX0を記憶部17に格納し、記憶部17に格納されている出力データを入出力装置16へ送信する。これにより、制御部18は、時間t0から時間t1で入出力データの更新を行う。また、制御部18は、時間t1から時間t3で記憶部17内の入出力データを参照して制御プログラムを実行し、実行結果である出力データを逐次記憶部17に格納する。
図4は、実施の形態にかかるテストパターンの一例を示す図である。図4では、図3に示した動作仕様に対応するテストパターン101を示している。テストパターン101は、入出力データの値および時間情報を要素とする情報である。検証装置11のテストパターン生成部12は、図3に示した動作仕様に基づいて、テストパターン101を生成する。
テストパターン101の一例は、入出力データと、時間情報T2とが対応付けされた情報テーブルである。テストパターン101では、パラメータに、入力データおよび時間情報T2が与えられている。これにより、テストパターン101は、入力データの時間的変化で定義されている。
図3に示すように、入力データX0は、時間t0から時間t3までオンのままである。したがって、テストパターン101の入力データX0は、時間t0、時間t1、時間t2、および時間t3の全てでオンが設定されている。
また、図3に示すように、入力データX1は、時間t0から時間t2の直前までオフであり、時間t2でオンとなってそのまま時間t3までオンである。したがって、テストパターン101の入力データX1は、時間t0および時間t1でオフが設定され、時間t2および時間t3でオンが設定されている。
実施の形態の制御部18は、制御プログラムの動作検証を実行する際に、時間情報生成部19が生成した時間情報T1とテストパターン101内の時間情報T2とを照合し、参照する入力データX0,X1の値を決定する。具体的には、制御部18は、テストパターン101内から、時間情報T1に合致する時間情報T2または時間情報T1に最も近い時間情報T2を抽出する。そして、制御部18は、抽出した時間情報T2に対応する入力データX0,X1の値を、テストパターン101内から抽出して入力データ格納領域23に格納する。
図5は、実施の形態にかかるPLCの動作処理手順を示すフローチャートである。ここでは、入力データX0,X1の値に従って出力データY0,Y1の値を決定する制御プログラムが、PLC15に格納されている場合のPLC15の動作例について説明する。
プログラム検証システム10が、制御プログラムの動作検証である動的解析を実施する際には、制御プログラムの動的解析を実行する指示がユーザによってPLC15に入力される。PLC15の制御部18は、この指示を受付けると、制御プログラムの動的解析を実行することを示す動作設定パラメータをパラメータ格納領域22に格納する。一方、プログラム検証システム10が、制御プログラムの通常動作を実行する際には、制御プログラムの通常動作を実行する指示がユーザによってPLC15に入力される。PLC15の制御部18は、この指示を受付けると、制御プログラムの通常動作を実行することを示す動作設定パラメータをパラメータ格納領域22に格納する。
PLC15は、検証装置11のテストパターン生成部12からテストパターン101が送られてくると、ステップS10において、制御部18が、テストパターン101を記憶部17のテストパターン格納領域21に格納する。なお、PLC15は、テストパターン101の格納処理と、動作設定パラメータの格納処理との何れを先に実行してもよい。
ステップS20において、PLC15が、動作を開始すると、ステップS30において、制御部18が、制御プログラムの動的解析を行うか否かを判断する。具体的には、制御部18が、パラメータ格納領域22に格納されている動作設定パラメータを参照し、動作設定パラメータに基づいて、動的解析を実行するか否かを判定する。
動的解析を実行する場合、すなわちステップS30においてYesの場合、制御部18は、入出力データの更新と、制御プログラムの実行とを行う。制御部18は、入出力データを更新する際には、ステップS40において、テストパターン101の中から参照する入力データX0を決定する。そして、ステップS50において、制御部18は、決定した入力データX0を記憶部17のテストパターン格納領域21に格納する。換言すると、制御部18は、記憶部17に格納されている入力データの値を、テストパターン101内の入力データX0の値に書き換える。具体的には、制御部18が、時間情報生成部19で生成された時間情報T1とテストパターン101内の時間情報T2とを照合して、制御プログラムに適用する入力データX0を決定する。このとき、制御部18は、時間情報T1と同一の時間情報T2をテストパターン101内から抽出し、抽出した時間情報T2に対応付けされた入力データX0をテストパターン101内から抽出する。そして、制御部18は、抽出した入力データX0を、記憶部17に格納する入力データX0に決定する。
制御部18は、入力データX0を格納した後、ステップS60において、記憶部17の出力データ格納領域24に格納されている出力データを、検証装置11の照合部13に送信する。ここでの制御部18は、制御プログラムの命令のうち、これから実行する命令よりも1つ前の命令で実行された実行結果である出力データを照合部13に送信する。この場合において、制御部18は、記憶部17に格納されている出力データを、記憶部17に格納されている1つ前の命令で用いた入力データに対応付けして、出力データおよび入力データを照合部13に送信する。すなわち、制御部18は、出力データと、出力データの算出に用いた入力データとを対応付けして照合部13に送る。具体的には、制御部18は、入力データ格納領域23内の1つ前の入力データと出力データ格納領域24内の最新の出力データとの組を送る。上述したステップS40からS60の処理が、動的解析が実行される際の入出力データの更新処理である。
なお、動的解析を行う場合の入出力データの更新処理では、制御部18は、入力データの全てをテストパターン101から抽出してもよいし、入力データの一部をテストパターン101から抽出し、その他の入力データを入出力装置16から取得してもよい。何れの入力データをテストパターン101から抽出するかは、ユーザによる動作設定パラメータの設定によって決定される。
制御部18は、入出力データの更新を実行した後、記憶部17の制御プログラム格納領域25に格納された制御プログラムを実行する。制御プログラムは、複数の命令を含んで構成されており、制御部18は、制御プログラム内の命令の読込みと実行とを順次行っていく。制御プログラム内の命令には、記憶部17に格納されている入力データX0を参照するものと、入出力装置16の入力データX1を参照するものとがある。動的解析を行っている場合、制御部18は、時間情報生成部19が生成した時間情報T1と、テストパターン101とを照合し、参照する入力データX0,X1の決定および読込みを行う。
制御部18は、入力データX0の読込み後、制御プログラム内の命令を実行し、実行によって得られた出力データを記憶部17の出力データ格納領域24に格納する。ここでは、制御部18が、図3で示した動作仕様に対応する制御プログラムを動的解析する場合について説明する。
ステップS70において、制御部18が、記憶部17内の入力データX0を参照する命令を制御プログラムから読込むと、制御部18は、記憶部17の入力データ格納領域23に格納されている入力データX0を読込む。制御部18は、読込んだ入力データX0を参照して、制御プログラムを実行する。これにより、制御プログラムは、入力データX0に対応する出力データY0を算出する。
ここでの制御部18は、ステップS80において、入力データX0がオンであるか否かを判定する。入力データX0がオンである場合、すなわち、ステップS80でYesの場合、ステップS90において、制御部18は、制御プログラムを用いて出力データY0をオンに決定する。一方、入力データX0がオフである場合、すなわち、ステップS80でNoの場合、ステップS100において、制御部18は、制御プログラムを用いて出力データY0をオフに決定する。このように、制御部18は、制御プログラムを実行することによって、入力データX0に対応する出力データY0を算出する。この後、ステップS110において、制御部18は、実行結果である出力データY0の値を、記憶部17の出力データ格納領域24に格納する。
また、ステップS120において、制御部18が、入出力装置16内の入力データX1を参照する命令を制御プログラムから読込むと、制御部18は、時間情報生成部19が生成した時間情報T1と同一の時間情報T2をテストパターン101内から抽出することによって時間情報T2を取得する。すなわち、制御部18は、入力データX1を参照する命令があると、このタイミングで時間情報T1を取得するとともに、時間情報T1に対応する時間情報T2を取得する。そして、ステップS130において、制御部18は、時間情報T2に基づいて、テストパターン101の中から参照する入力データX1を決定する。そして、制御部18は、テストパターン101に登録されている入力データX1を読込む。このように、実施の形態では、制御部18は、動的解析を行う場合に、入出力装置16内の入力データX1を参照する命令があると、テストパターン101に登録されている入力データX1を読込む。そして、制御部18は、読込んだ入力データX1を参照して、制御プログラムを実行する。これにより、制御プログラムは、入力データX1に対応する出力データY1を算出する。
ここでの制御部18は、ステップS140において、入力データX1がオンであるか否かを判定する。入力データX1がオンである場合、すなわち、ステップS140でYesの場合、ステップS150において、制御部18は、制御プログラムを用いて出力データY1をオンに決定する。一方、入力データX1がオフである場合、すなわち、ステップS140でNoの場合、ステップS160において、制御部18は、制御プログラムを用いて出力データY1をオフに決定する。このように、制御部18は、制御プログラムを実行することによって、入力データX1に対応する出力データY1を算出する。
この後、ステップS170において、制御部18は、実行結果である出力データY1の値を、記憶部17の出力データ格納領域24に格納する。上述したステップS70からS170の処理が、動的解析が実行される際の制御プログラムの実行処理である。
ステップS180において、制御部18は、ユーザからの指示に基づいて、PLC15の動作を停止するか否かを判定する。制御部18は、ユーザによって動作停止の指示がPLC15に入力されていなければ、PLC15の動作を停止しない。PLC15の動作を停止しない場合、すなわち、ステップS180においてNoの場合、制御部18は、ステップS30に戻って、制御プログラムの動的解析を行うか否かを判断する。制御部18は、動的解析を実行する場合、すなわちステップS30においてYesの場合、ステップS40からS180の処理を実行する。
制御部18は、ステップS180において、PLC15の動作を停止すると判定するまで、ステップS30からS170の処理を繰り返す。そして、ステップS180において、制御部18が、PLC15の動作を停止すると判定した場合、すなわち、ステップS180においてYesの場合、制御部18は、PLC15の動作を停止する。このように、制御部18は、制御プログラムの実行を完了した後、動作停止の指示を受けるまで、入出力データの更新と、制御プログラムの実行とを繰り返す。
動的解析を実行しない場合、すなわちステップS30においてNoの場合、制御部18は、動的解析を実行する場合と同様に、入出力データの更新と、制御プログラムの実行とを行う。制御部18は、動的解析を実行しない場合、通常の制御動作を入出力装置16に実行する。この場合、制御部18は、ステップS190において、入出力装置16から読み出した入力データX0を記憶部17の入力データ格納領域23に格納する。
制御部18は、入力データX0を格納した後、ステップS200において、記憶部17の出力データ格納領域24に格納されている出力データを、入出力装置16に送信する。ここでの制御部18は、制御プログラムの命令のうち、これから実行する命令よりも1つ前の命令で実行された実行結果である出力データを入出力装置16に送信する。上述したステップS190からS200の処理が、通常動作が実行される場合の入出力データの更新処理である。
制御部18は、入出力データの更新を実行した後、記憶部17の制御プログラム格納領域25に格納された制御プログラムを実行する。制御部18は、入出力装置16から入力データX0を読込んだ後、制御プログラム内の命令を実行し、実行によって得られた出力データを記憶部17の出力データ格納領域24に格納する。ここでは、制御部18が、図3で示した動作仕様に対応する制御プログラムを実行する場合について説明する。なお、以下の説明では、通常動作を実行する場合の処理のうち、動的解析を実行する場合と同様の処理については、その説明を省略する場合がある。
制御部18は、制御プログラムを用いて通常動作を実行する場合、ステップS70からS110と同様の処理である、ステップS210からS250の処理を実行する。そして、ステップS260において、制御部18が、入出力装置16内の入力データX1を参照する命令を制御プログラムから読込むと、ステップS270において、制御部18は、入出力装置16内の入力データX1を参照する。この後、制御部18は、ステップS140からS170と同様の処理である、ステップS280からS310の処理を実行する。
そして、ステップS180において、制御部18は、ユーザからの指示に基づいて、PLC15の動作を停止するか否かを判定する。制御部18は、ユーザによって動作停止の指示がPLC15に入力されていなければ、PLC15の動作を停止しない。PLC15の動作を停止しない場合、すなわち、ステップS180においてNoの場合、制御部18は、ステップS30に戻って、制御プログラムの動的解析を行うか否かを判断する。制御部18は、動的解析を実行しない場合、すなわちステップS30においてNoの場合、ステップS190からS310およびステップS180の処理を実行する。
制御部18は、ステップS180において、PLC15の動作を停止すると判定するまで、ステップS190からS310およびステップS180の処理を繰り返す。そして、ステップS180において、制御部18が、PLC15の動作を停止すると判定した場合、すなわち、ステップS180においてYesの場合、制御部18は、PLC15の動作を停止する。このように、制御部18は、制御プログラムの実行を完了した後、動作停止の指示を受けるまで、入出力データの更新と、制御プログラムの実行とを繰り返す。
なお、制御部18は、動的解析を実行する際に、照合部13への入出力データの送信を逐次実行してもよいし、記憶部17に入出力データを貯めてから一定周期で入出力データを送信してもよい。
照合部13は、PLC15から送られてきた入力データX0,X1、出力データY0,Y1と、装置14の動作仕様とを照合することで、制御プログラムが動作仕様に従って設計されているか否かを検証する。この場合において、照合部13は、PLC15から送られてきた入出力データと、図3で示した装置14の動作仕様とを照合してもよいし、PLC15から送られてきた入出力データと、図4で示したテストパターン101とを照合してもよい。
ここで、装置14または設備といった実機を用いて制御プログラムの動作検証が行なわれる場合と、プログラム検証システム10による制御プログラムの動作検証との相違点について説明する。
図6は、実機を用いた動作検証と、実施の形態にかかる動作検証との相違点を説明するための図である。図6では、装置14といった実機を用いた比較例の検証処理と、プログラム検証システム10による検証処理とを示している。なお、ここでは、説明の便宜上、実施の形態にかかるPLCをPLC15といい、実機を用いた動作検証を行うPLCを比較例のPLCという。また、比較例のPLCが備える記憶部を比較例の記憶部という。この比較例の記憶部は、PLC15が備える記憶部17に対応するものである。
PLC15および比較例のPLCによる装置14の制御は、入出力データを更新する工程と、制御プログラムを実行する工程との2つの工程を含んでいる。また、PLC15および比較例のPLCが装置14の制御に用いる制御プログラムは、複数の命令を含んだ命令群を有している。
PLC15および比較例のPLCは、時間t0から時間t1までの間、入出力データを更新する処理を実行する。また、PLC15および比較例のPLCは、時間t1から時間t3までの間、制御プログラムを実行する。この場合において、PLC15および比較例のPLCは、時間t1から時間t2までの間、記憶部17の入力データX0を参照する命令の実行を試み、時間t2から時間t3までの間、入出力装置16の入力データX1を参照する命令の実行を試みる。
そして、入出力装置16が保持する入力データX1は、時間とともに変化する。一方、記憶部17に格納されている入力データX1は、入出力データの更新処理のタイミングで変化し、制御プログラムの実行時には変化しない。したがって、入出力データの更新処理の際に、記憶部17および比較例の記憶部が入力データX1の「0」を格納すると、制御プログラムの実行時も記憶部17および比較例の記憶部が格納する入力データX1は「0」のままである。
このような入力データX1に対して、実施の形態のPLC15は、時間t0から時間t3までの時間情報を用いて動作検証を実行するのに対して、比較例のPLCは、時間t0の時間情報を用いて動作検証を実行する。
実施の形態では、入出力装置16の入力データX1を参照する命令があるタイミングについては、テストパターン生成部12が、入出力装置16の保持する入力データX1と同じ入力データX1をテストパターン101に設定している。すなわち、テストパターン101に設定されている入力データX1は、入出力装置16が保持する入力データX1と同様に時間とともに変化している。したがって、時間t2から時間t3までの間の入出力装置16の入力データX1が「1」である場合、時間t2から時間t3までの間のテストパターン101の入力データX1も「1」である。一方、比較例のPLCは、比較例の記憶部内の入力データX1しか参照できない。以下、実施の形態のPLC15が実行する処理P1からP3と、比較例のPLCが実行する処理P11からP13について説明する。処理P1,P11は、時間t0から時間t1までの処理であり、処理P2,P12は、時間t1から時間t2までの処理であり、処理P3,P13は、時間t2から時間t3までの処理である。
(処理P1)
実施の形態のPLC15は、入出力データを更新する工程において、時間情報生成部19を用いて時間情報T2を取得する。そして、PLC15は、時間情報T2に基づいてテストパターン101を参照することにより、時間情報T2に対応する入力データX0を抽出する。さらに、PLC15は、テストパターン101から抽出した入力データX0を記憶部17に格納する。
(処理P2)
また、PLC15は、制御プログラムを実行する工程で記憶部17の入力データX0を参照する命令があると、記憶部17内の入力データX0を参照し、この入力データX0に従って命令を実行する。
(処理P3)
また、PLC15は、制御プログラムを実行する工程で入出力装置16の入力データX1を参照する命令があると、時間情報生成部19を用いて時間情報T2を取得する。そして、PLC15は、時間情報T2に基づいてテストパターン101を参照することにより、時間情報T2に対応する入力データX1を抽出する。さらに、PLC15は、テストパターン101から抽出した入力データX1に従って命令を実行する。これにより、処理P3の処理が完了する。
テストパターン101内の入力データX1は、入出力装置16が保持している入力データX1と同じ値であるので、PLC15は、入出力装置16を用いた動作時と同様の動作を実行することができる。このように、PLC15は、記憶部17にテストパターン101が格納されているので、時間t2の正しい入力データを参照することができる。また、PLC15は、記憶部17内のテストパターン101から入力データX1を読み出して記憶部17内に格納するので、動作検証時には、PLC15と検証装置11との間の通信時間が不要である。
(処理P11)
比較例のPLCは、入出力データを更新する工程において、時間t0の時間情報を取得する。この後、比較例のPLCは、時間t0の時間情報に基づいてテストパターンを参照することにより時間t0の時間情報に対応する入力データX0を抽出する。さらに、比較例のPLCは、テストパターンから抽出した入力データX0を比較例の記憶部に格納する。この場合において、比較例のPLCが参照するテストパターンは、時間t0の時間情報に対応するものである。比較例のPLCが用いるテストパターン内の時間t0での入力データX0と、実施の形態にかかるPLC15が用いるテストパターン101内の時間t0での入力データX0とは同じである。したがって、PLC15および比較例のPLCは、処理P1と処理P11とで同様の検証結果を得ることができる。
(処理P12)
また、比較例のPLCは、制御プログラムを実行する工程で比較例の記憶部の入力データX0を参照する命令があると、比較例の記憶部内の入力データX0を参照し、この入力データX0に従って命令を実行する。この場合において、時間t1から時間t3までの間は、記憶部17および比較例の記憶部の入力データが更新されていない。したがって、比較例のPLCが用いるテストパターン内の時間t1での入力データX0と、実施の形態にかかるPLC15が用いるテストパターン101内の時間t1での入力データX0とは同じである。したがって、PLC15および比較例のPLCは、処理P2と処理P12とで同様の検証結果を得ることができる。
(処理P13)
上述したように、入出力データの更新処理である時間t0で、比較例のPLCが入力データX1の「0」を比較例の記憶部に格納すると、制御プログラムの実行時も比較例の記憶部が格納する入力データX1は「0」のままである。このため、比較例のPLCは、制御プログラムを実行する工程で入出力装置16の入力データX1を参照する命令があっても、比較例の記憶部の入力データX0しか取得できない。したがって、比較例のPLCは、入出力装置16の実際の入力データである入力データX1を用いることができない。すなわち、比較例のPLCが、入出力装置16の入力データX1を参照するような命令を実行する場合、比較例のPLCは、検証装置11と通信した時間t0の入力データX0しか持たないので、正しい入力データX1を参照することができない。このように、比較例のPLCは、時間t0の時点での入力データX0,X1を記憶部に格納させたままであるので、時間t2の時点で検証を行う場合であっても時間t0の時点での入力データX0,X1を用いることしかできない。このため、比較例のPLCは、実機と同様の精度で動作検証を行うことができない。なお、入出力装置16は動作していないので、比較例のPLCが入出力装置16から入力データX1を読み出すことはできない。
また、検証装置11が、動作検証の際に比較例のPLCに検証用のデータである入力データX1を送信した場合、検証装置11と比較例のPLCとの間で通信処理が発生する。このため、比較例のPLCは、動作検証の際に実際の動作と同様のタイミングで動作することができない。この結果、検証装置11は、比較例のPLCが用いる入出力データを正しく検証できない。
また、コンピュータが、シミュレーションによって制御プログラムの動作検証を行う場合、シミュレーションに用いる仮想環境を構築するための工数が増えるとともに、実時間上での検証が行えないので検証に長時間を要する。また、コンピュータが、シミュレーションによって制御プログラムの動作検証を行う場合、前述の実機を用いた動作検証と同様に、実機と同様のタイミングで入出力データが遷移するか否かを確認できない。
一方、PLC15は、動作検証用のデータであるテストパターン101を記憶部17内に格納しておき、テストパターン101内の入力データX0,X1を参照してPLC15が動作した結果得ることができる出力データY0,Y1を算出している。そして、検証装置11が、装置14の動作仕様と、算出された出力データY0,Y1とを照合している。換言すると、検証装置11は、テストパターン101内の出力データと、算出された出力データY0,Y1とを照合している。これにより、実際の装置14と同様のタイミングで入力データX0,X1および出力データY0,Y1が遷移するか否かが検証可能となる。
ここで、制御部18のハードウェア構成について説明する。図7は、実施の形態にかかるPLCが備える制御部のハードウェア構成例を示す図である。制御部18は、図7に示した制御回路300、すなわちプロセッサ301およびメモリ302により実現することができる。プロセッサ301の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSPともいう)またはシステムLSI(Large Scale Integration)である。メモリ302の例は、RAM(Random Access Memory)、ROM(Read Only Memory)またはフラッシュメモリである。
制御部18は、プロセッサ301が、メモリ302で記憶されている、制御部18の動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御部18の手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリにも使用される。
このように、プロセッサ301が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトである。プロセッサ301が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
また、制御部18を専用のハードウェアで実現してもよい。また、制御部18の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
なお、検証装置11のテストパターン生成部12および照合部13も、制御部18と同様に、図7に示した制御回路300、すなわちプロセッサ301およびメモリ302により実現することができる。
このように、実施の形態では、PLC15が、時間情報T2を含んだテストパターン101を記憶しておき、生成した時間情報T1に基づいて、テストパターン101から入力データX0,X1を抽出している。そして、PLC15は、制御プログラムおよび抽出した入力データX0,X1を用いて出力データY0,Y1を算出している。さらに、検証装置11が、テストパターン101内の、入力データX0,X1に対応する出力データと、PLC15が算出した出力データとを照合している。これにより、プログラム検証システム10は、実際の装置14と同様のタイミングで入出力データが遷移するか否かの検証を実行することができる。したがって、プログラム検証システム10は、制御プログラムの正確な動作検証を容易に行うことが可能となる。
また、PLC15は、テストパターン101を、PLC15内の記憶部17に格納しているので、PLC15内の入出力データの値を高速で書き換えることができる。また、PLC15は、テストパターン101を、PLC15内の記憶部17に格納しているので、動作検証の際に、検証装置11から入力データX0,X1を受信する必要がなくなる。これにより、プログラム検証システム10は、短時間かつ少ない工数で制御プログラムの動作検証を実行することが可能となる。したがって、装置14またはPLC15を含んだ設備を開発する際の立ち上げ期間を短縮することが可能となる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
10 プログラム検証システム、11 検証装置、12 テストパターン生成部、13 照合部、14 装置、15 PLC、16 入出力装置、17 記憶部、18 制御部、19 時間情報生成部、21 テストパターン格納領域、22 パラメータ格納領域、23 入力データ格納領域、24 出力データ格納領域、25 制御プログラム格納領域、31,32 通信IF部、101 テストパターン。

Claims (8)

  1. データの入出力を行う入出力装置からの制御入力データが入力されるとともに、装置を制御するための制御プログラムを用いて前記制御入力データに対応する制御出力データを算出して前記入出力装置に出力する制御装置と、
    前記装置の動作仕様を満たすテスト入力データとテスト出力データとの組み合わせであって前記制御装置内の時間と同じ時間を用いた時間的変化を示すテストパターンに含まれる前記テスト出力データと、前記制御装置が算出した前記制御出力データと、を照合することによって前記制御プログラムの動作検証を行う照合部と、
    を備え、
    前記制御装置は、
    前記テストパターンを記憶する記憶部と、
    前記制御プログラムの動作検証が行われる際には、前記制御プログラムで前記制御入力データを参照する命令があると前記制御装置内の時間の情報である第1の時間情報を取得するとともに前記テストパターン内から前記第1の時間情報に対応する前記テスト入力データを抽出し、抽出した前記テスト入力データおよび前記制御プログラムを用いて前記制御出力データを算出する制御部と、
    を有することを特徴とするプログラム検証システム。
  2. 前記テストパターンを生成して前記制御装置に送るテストパターン生成部をさらに備えることを特徴とする請求項1に記載のプログラム検証システム。
  3. 前記記憶部は、
    前記テストパターンを記憶する第1の記憶部と、
    前記入出力装置からの前記制御入力データを記憶する第2の記憶部と、
    前記入出力装置への前記制御出力データを記憶する第3の記憶部と、
    を含み、
    前記制御部は、
    前記制御プログラムの動作検証が行われる際に前記制御プログラムにおいて前記入出力装置から入力された前記制御入力データを参照する命令があると、前記第1の時間情報に基づいて前記テストパターン内から前記テスト入力データを抽出して前記第2の記憶部に格納し、かつ抽出した前記テスト入力データおよび前記制御プログラムを用いて前記制御出力データを算出して前記第3の記憶部に格納し、かつ前記第2の記憶部内の前記テスト入力データおよび前記第3の記憶部内の前記制御出力データを前記照合部に送信し、
    前記照合部は、前記制御部からの前記テスト入力データに対応する前記テスト出力データを用いて前記動作検証を行うことを特徴とする請求項1または2に記載のプログラム検証システム。
  4. 前記制御装置は、前記第1の時間情報を生成する時間情報生成部をさらに備え、
    前記テストパターンは、前記テスト入力データと、前記テスト出力データと、前記第1の時間情報に対応する時間の情報である第2の時間情報とが対応付けされたものであり、
    前記照合部は、前記第1の時間情報および前記第2の時間情報に基づいて、前記制御装置が算出した前記制御出力データと、前記テストパターン内の前記テスト出力データとを照合する、
    ことを特徴とする請求項1から3のいずれか1つに記載のプログラム検証システム。
  5. 前記テストパターン生成部は、前記装置の動作仕様に基づいて、前記テストパターンを生成することを特徴とする請求項2に記載のプログラム検証システム。
  6. データの入出力を行う入出力装置からの制御入力データが入力される第1の通信部と、
    装置を制御するための制御プログラムを用いて前記制御入力データに対応する制御出力データを算出する制御部と、
    前記制御出力データを前記入出力装置に出力する第2の通信部と、
    前記装置の動作仕様を満たすテスト入力データとテスト出力データとの組み合わせであって自装置内の時間と同じ時間を用いた時間的変化を示すテストパターンを記憶する記憶部と、
    を備え、
    前記制御部は、
    前記制御プログラムの動作検証が行われる際には、前記制御プログラムで前記制御入力データを参照する命令があると前記自装置内の時間の情報である第1の時間情報を生成するとともに前記テストパターン内から前記第1の時間情報に対応する前記テスト入力データを抽出し、抽出した前記テスト入力データおよび前記制御プログラムを用いて前記制御出力データを算出する、
    ことを特徴とする制御装置。
  7. 前記制御部が算出した前記制御出力データと、前記テストパターンとを照合することによって前記制御プログラムの動作検証を行う照合部をさらに備え、
    前記照合部は、前記制御装置が算出した前記制御出力データと、前記テストパターン内の前記テスト出力データとを照合する、
    ことを特徴とする請求項6に記載の制御装置。
  8. データの入出力を行う入出力装置からの制御入力データが入力されるとともに、装置を制御するための制御プログラムを用いて前記制御入力データに対応する制御出力データを算出して前記入出力装置に出力する制御装置が、前記装置の動作仕様を満たすテスト入力データとテスト出力データとの組み合わせであって前記制御装置内の時間と同じ時間を用いた時間的変化を示すテストパターンを記憶する記憶ステップと、
    前記制御プログラムの動作検証が行われる際に、前記制御プログラムで前記制御入力データを参照する命令があると、前記制御装置が、前記制御装置内の時間の情報である第1の時間情報を生成するとともに前記テストパターン内から前記第1の時間情報に対応する前記テスト入力データを抽出し、抽出した前記テスト入力データおよび前記制御プログラムを用いて前記制御出力データを算出する算出ステップと、
    前記制御プログラムの動作検証を行う検証装置が、前記制御装置が算出した前記制御出力データと、前記テストパターン内の前記テスト出力データとを照合することによって前記制御プログラムの動作検証を行う検証ステップと、
    を含むことを特徴とするプログラム検証方法。
JP2018502432A 2017-06-23 2017-06-23 プログラム検証システム、制御装置およびプログラム検証方法 Expired - Fee Related JP6395967B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/023134 WO2018235250A1 (ja) 2017-06-23 2017-06-23 プログラム検証システム、制御装置およびプログラム検証方法

Publications (2)

Publication Number Publication Date
JP6395967B1 true JP6395967B1 (ja) 2018-09-26
JPWO2018235250A1 JPWO2018235250A1 (ja) 2019-06-27

Family

ID=63668419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018502432A Expired - Fee Related JP6395967B1 (ja) 2017-06-23 2017-06-23 プログラム検証システム、制御装置およびプログラム検証方法

Country Status (6)

Country Link
US (1) US20190302739A1 (ja)
JP (1) JP6395967B1 (ja)
CN (1) CN109643095A (ja)
DE (1) DE112017003607T5 (ja)
TW (1) TWI673582B (ja)
WO (1) WO2018235250A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020119153A (ja) * 2019-01-22 2020-08-06 ファナック株式会社 テストパターン生成装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS643748A (en) * 1987-06-26 1989-01-09 Hitachi Ltd Test device for software logical device
JPH10161906A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JP2005044316A (ja) * 2003-07-25 2005-02-17 Omron Corp シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1097307A (ja) 1996-09-20 1998-04-14 Toyota Motor Corp シーケンサ動作検証装置およびシーケンサ動作検証プログラムを記録した媒体
CN1120395C (zh) * 1998-12-03 2003-09-03 三菱电机株式会社 伺服系统控制器
CA2397372C (en) * 2000-01-24 2013-08-27 Fluor Corporation Control system simulation, testing, and operator training
JP4465920B2 (ja) * 2001-06-04 2010-05-26 マツダ株式会社 シミュレーション装置及びシミュレーション方法
CN101689959A (zh) * 2007-07-10 2010-03-31 三菱电机株式会社 发送装置及通信系统
US20120246612A1 (en) * 2011-03-23 2012-09-27 Siemens Corporation System and method for verification and validation of redundancy software in plc systems
KR101252358B1 (ko) * 2011-04-01 2013-04-08 엘에스산전 주식회사 Plc 명령어 테스트 장치 및 방법
CN102565747A (zh) * 2012-01-10 2012-07-11 深圳市科陆电子科技股份有限公司 一种单相智能电能表自动化检定系统及方法
CN104272205B (zh) * 2012-05-09 2016-06-29 三菱电机株式会社 数控装置
WO2017037901A1 (ja) * 2015-09-02 2017-03-09 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS643748A (en) * 1987-06-26 1989-01-09 Hitachi Ltd Test device for software logical device
JPH10161906A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JP2005044316A (ja) * 2003-07-25 2005-02-17 Omron Corp シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020119153A (ja) * 2019-01-22 2020-08-06 ファナック株式会社 テストパターン生成装置

Also Published As

Publication number Publication date
JPWO2018235250A1 (ja) 2019-06-27
CN109643095A (zh) 2019-04-16
TWI673582B (zh) 2019-10-01
US20190302739A1 (en) 2019-10-03
TW201905613A (zh) 2019-02-01
WO2018235250A1 (ja) 2018-12-27
DE112017003607T5 (de) 2019-05-02

Similar Documents

Publication Publication Date Title
US11520571B2 (en) Software defined manufacturing/assembly system
JP4442524B2 (ja) 安全plc
JP6433635B1 (ja) シミュレーション装置およびシミュレーション方法
US9250873B2 (en) Method for the computer-aided generation of at least one part of an executable control program
JP6139386B2 (ja) プログラマブルコントローラ
JP6623856B2 (ja) スレーブ装置、スレーブ装置の制御方法、情報処理プログラム、および記録媒体
US10452389B2 (en) Computer-implemented method for editing data object variants
JP6395967B1 (ja) プログラム検証システム、制御装置およびプログラム検証方法
JP2017049627A (ja) 検証システム、検証装置、及び、車両制御装置
US10126726B2 (en) Apparatus and method for generating program
US11287793B2 (en) Control device, control method for control device, information processing program, and recording medium
US10042335B2 (en) Embedded emulation modules in industrial control devices
CN117744548A (zh) 一种芯片验证方法、装置和存储介质
JP7184710B2 (ja) 模擬プロセス制御装置
JP7065969B2 (ja) 実生産プロセスを制御するための方法および制御システム
JP3598732B2 (ja) 分散制御システムの構成管理方法およびこれに用いるデータ
US20220365864A1 (en) Program development device, and program for providing program development device
Lee et al. Synthesis of Quality Configurable Systems
KR20230107953A (ko) 논리연산제어장치에 신규 모듈을 추가하는 방법
JPH06295295A (ja) シミュレータ
Zheng Model-based Online Testing: A Case Study on SKOV Feeding System
JP2001188822A (ja) 機能合成方法および機能合成装置
JP2006215943A (ja) 制御システムのシミュレーション装置および方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180118

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180118

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180501

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180828

R150 Certificate of patent or registration of utility model

Ref document number: 6395967

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees