JP2007004273A - プログラム実行システム、プログラム実行システムのためのプログラミングシステム、プログラム解析システムおよびプログラム管理システム、ならびに、プログラム実行システムを備えた検査装置、検査装置用プログラム作成システムおよび検査装置システム - Google Patents

プログラム実行システム、プログラム実行システムのためのプログラミングシステム、プログラム解析システムおよびプログラム管理システム、ならびに、プログラム実行システムを備えた検査装置、検査装置用プログラム作成システムおよび検査装置システム Download PDF

Info

Publication number
JP2007004273A
JP2007004273A JP2005180777A JP2005180777A JP2007004273A JP 2007004273 A JP2007004273 A JP 2007004273A JP 2005180777 A JP2005180777 A JP 2005180777A JP 2005180777 A JP2005180777 A JP 2005180777A JP 2007004273 A JP2007004273 A JP 2007004273A
Authority
JP
Japan
Prior art keywords
program
program execution
configuration information
inspection apparatus
coded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005180777A
Other languages
English (en)
Other versions
JP4110557B2 (ja
Inventor
Kan Nakai
勘 仲井
Hideaki Minamide
英明 南出
Yuzo Iwai
裕三 岩井
Shoji Tomita
将司 冨田
Fumihiko Maeda
文彦 前田
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
Priority to JP2005180777A priority Critical patent/JP4110557B2/ja
Priority to TW094129457A priority patent/TWI277867B/zh
Priority to KR1020050089156A priority patent/KR100787323B1/ko
Priority to CNB2005101361489A priority patent/CN100485618C/zh
Publication of JP2007004273A publication Critical patent/JP2007004273A/ja
Application granted granted Critical
Publication of JP4110557B2 publication Critical patent/JP4110557B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】個々のプログラムの巨大化を回避して、分散開発および並列開発を可能にし、検査対象機種を効率的に且つ容易に追加することのできるプログラム実行システムを得る。
【解決手段】プログラム10a、10bを作成するためのプログラミングソフトウェア9と、コード化されたプログラム10aを保持するコード保持手段2と、プログラム10bのコード化ファイル7bを格納する蓄積手段6と、実行対象となるプログラムが展開されるメモリ領域3と、プログラムを実行するためのプログラム実行手段4と、コード保持手段2、メモリ領域3およびプログラム実行手段4を搭載する検査装置1とを備え、プログラム実行手段4は、プログラムロード手段5を含む。プログラムロード手段5は、プログラム10aの動作中に、プログラム10bに対する呼び出し命令に応答して蓄積手段6からメモリ領域3にプログラム10bをロードする。
【選択図】図1

Description

この発明は、プログラム作成手段により作成されてコード化されたプログラムをメモリ領域に展開してプログラムを実行するプログラム実行システムに関し、特に、第1のプログラムの動作中に、第1のプログラムから第2のプログラムを呼び出し、第2のプログラムを蓄積手段からロードして実行するプログラム実行システムに関するものである。
また、この発明は、プログラム実行システムで動作するプログラムのためのプログラミングシステム、プログラム解析システムおよびプログラム管理システムに関するものである。
さらに、この発明は、プログラム実行システムを備えた検査装置(インテリジェント検査ユニット)や制御装置(シーケンサ、モーションコントローラ、数値制御装置、ロボットなどのFA機器)、検査装置用プログラム作成システムおよび検査装置システムに関するものである。
一般に、検査処理用のプログラムを検査装置(インテリジェント検査ユニット)にダウンロードして動作させるためには、あらかじめパソコン上のプログラミングソフトウェアでユーザがプログラムを作成し、プログラミングソフトウェアがインストールされているパソコンと検査装置とをケーブルなどで接続した後、プログラミングソフトウェアからのダウンロード命令により、ユーザが作成したプログラムをコード化し、コード化されたデータを検査装置にダウンロードしている。
従来の検査装置におけるプログラム実行システムおよびプログラミングシステムの一例として、インテリジェント検査ユニットにおけるプログラムダウンロード装置が提案されている(たとえば、非特許文献1参照)。
上記非特許文献1に記載の従来装置においては、プログラミングソフトウェア(プログラム:IU Developer)を備えたパソコンにより、以下のようにプログラムロード処理が実行される。
まず、検査装置に対し、Ethernet(登録商標)/USB/RS232Cケーブルを介して、パソコン内のプログラミングソフトウェアを接続する。
続いて、プログラミングソフトウェアにより、通常の「実行メニュー」または「リビルド実行メニュー」を実行する。
このとき、「実行メニュー」においては、更新されたプログラムによって決定される項目のみをコード化して検査装置に転送し、検査装置内のフラッシュメモリにプログラムを書込む。また、「リビルド実行メニュー」においては、すべてのプログラムをコード化して検査装置に転送し、検査装置内のフラッシュメモリにプログラムを書込む。
検査装置内のフラッシュメモリに書込まれたプログラムは、検査装置の起動時にメモリ領域(RAM)上に展開され、検査装置内のプログラム実行手段上で実行される。なお、プログラム実行手段は、表示/操作手段に接続されている。
このように、従来装置においては、パソコンにインストールされたプログラミングソフトウェアでプログラム(IU Developer)を作成し、パソコンと検査装置(インテリジェント検査ユニット本体)とを接続した後、ソフトウェアの「実行」または「リビルド実行」のメニューにより、作成したプログラムをコード化して検査装置(インテリジェント検査ユニット本体)にダウンロードして動作させるようになっている。
しかしながら、上記従来装置では、プログラムが1つのファイルに統括されているので、検査対象となる機種の追加などが頻繁に発生すると、各機種に対応した固有のプログラムが必要となるため、作成すべきプログラムが巨大化してしまう。
また、機種別にプログラムを記述することができないので、分散開発や並列開発を実現することができない。たとえば、AプログラムにBプログラムを追加するためには、Aプログラムの後にBプログラムを追記すればよいが、AプログラムとBプログラムとを独立して開発した場合には、AプログラムおよびBプログラムを新たに1つのプログラムに構築するため作業が必要となる。
また、上記技術的背景からメンテナンス性も悪くなるうえ、たとえば、A機種を検査する検査装置に対してB機種の検査機能を追加するためには、AプログラムにBプログラムを追加する必要がある。
また、機種別にプログラムを記述することができないことから、複数のユーザによる分散開発や並列開発が困難となるうえ、機種追加などを行う場合には、既に動作している既存部分に対する影響も十分に考慮しつつ新規プログラムを作成する必要があるので、実質的に機種追加時の開発が困難になる。
また、ユーザが作成するプログラムの容量が検査装置内のフラッシュメモリによって制限されており、フラッシュメモリの最大メモリ容量を超えるプログラムを作成することができないので、任意数の機種に対応することができない。
さらに、機種追加時に、必ずパソコンと検査装置とをケーブルなどで接続してから追加分を含めたすべてのプログラムを再度プログラミングソフトウェアよりダウンロードする必要がある。
IU2シリーズ「IU Developer オペレーションマニュアル」B−206頁
以上のように、従来のプログラム実行システムにおいては、プログラムが1つのファイルに統括されているので、機種追加などが頻繁に発生するとプログラムが巨大化してしまい、検査対象機種を容易に追加することができないという課題があった。
また、機種別にプログラムを記述することができないので、分散開発や並列開発を実現することができないうえ、メンテナンス性も悪いという課題があった。
また、機種別にプログラムを記述することができず、分散開発や並列開発が困難なことから、実質的に機種追加時の開発が困難になるという課題があった。
さらに、装置の最大メモリ容量を超えるプログラムの作成が困難なうえ、機種追加時には、パソコンと検査装置とを再接続して、追加分を含めたすべてのプログラムを再度プログラミングソフトウェアよりダウンロードする必要があるという課題があった。
この発明は、上記のような課題を解決するためになされたものであり、個々のプログラムの巨大化を回避して、分散開発および並列開発を可能にし、検査対象機種を効率的に且つ容易に追加することのできるプログラム実行システムを得ることを目的とする。
また、上記プログラム実行システムのためのプログラミングシステム、プログラム解析システムおよびプログラム管理システム、ならびに、プログラム実行システムを備えた検査装置、検査装置用プログラム作成システムおよび検査装置システムを得ることを目的とする。
この発明によるプログラム実行システムは、コード化された第1のプログラムを保持するコード保持手段と、コード保持手段に保持されている第1のプログラムが展開されるメモリ領域と、メモリ領域に展開された第1のプログラムを実行するプログラム実行手段とを備えたプログラム実行システムにおいて、コード化された第2のプログラムをコード化ファイルとして格納する蓄積手段をさらに備え、プログラム実行手段は、蓄積手段にコード化ファイルとして格納されている第2のプログラムをメモリ領域にロードするためのプログラムロード手段を含み、プログラム実行手段は、メモリ領域に展開された第1のプログラムを実行している動作中に、蓄積手段内の第2のプログラムに対する呼び出し命令に応答して、蓄積手段内の第2のプログラムをメモリ領域にロードして、第2のプログラムを実行するものである。
この発明によれば、あらかじめプログラミングソフトウェアで生成されたオブジェクトであるコード化ファイル(第2のプログラム)を蓄積手段から読み出してメモリ領域にロードし、動作中の第1のプログラムと入れ替えて動作させることにより、各プログラムの巨大化を回避して分散開発および並列開発を可能にし、検査対象機種を効率的に且つ容易に追加することができる。
実施の形態1.
図1および図2はこの発明の実施の形態1に係るプログラム実行システムをプログラミングシステムとともに示すブロック図であり、前述と同様に検査装置1に適用した場合を示している。
図1および図2において、検査装置1は、インテリジェント検査ユニットを構成しており、CPU、I/Fおよび各種メモリなどを含む。
検査装置1は、パソコン8内のプログラミングソフトウェア9(図1参照)またはプログラミングソフトウェア9a、9b(図2参照)で、ユーザが作成した第1または第2のプログラム(以下、それぞれ、単に「プログラム」という)10a、10bにより動作する。
この場合、プログラム10a、10bは、検査処理プログラムからなる。
プログラミングソフトウェア9、9a、9bは、具体的には、プログラム10a、10bを作成する手段(開発環境など)である。
プログラム10a、10bは、具体的には、ユーザが作成したプログラムコード(ソースコードなど)からなる。
図1において、プログラム10aは、たとえば機種選択プログラム(後述する)からなり、プログラム10bは、たとえばコード化ファイル「work1.up」の処理プログラムからなる。
なお、図2では、プログラム10a、10bを作成するためのプログラミングソフトウェアとして、1台のパソコン8内に複数のプログラミングソフトウェア9a、9bを示しているが、各プログラム10a、10bは、図1のように、同一のプログラミングソフトウェア9を用いて作成されてもよく、複数のパソコン(図示せず)内の個別のプログラミングソフトウェアを用いて作成されてもよい。
検査装置1は、必要に応じてパソコン8に接続されるコード保持手段2と、コード保持手段2に接続されたメモリ領域3と、メモリ領域3に接続されたプログラム実行手段4と、プログラム実行手段4内に設けられたプログラムロード手段5と、プログラム実行手段4に接続された表示/操作手段12とを備えている。
コード保持手段2は、装置電源がOFFされてもデータ保持が可能なメモリ(フラッシュROMなど)からなり、プログラミングソフトウェア9、9aにより作成されたメイン動作プログラムとなるプログラム10aを格納する。
メモリ領域3は、通常のデータ保持手段(RAMメモリなど)により構成されている。
プログラム実行手段4には、ハードディスクまたはメモリカードなどの大容量デジタルデータ記録媒体により構成された蓄積手段6が接続される。
蓄積手段6には、プログラミングソフトウェア9、9bにより作成された対象機種ごとの検出処理用のプログラム10bが必要に応じて格納されている。
プログラム10bは、プログラミングソフトウェア9(図1参照)内のコード化ファイル生成手段11、またはプログラミングソフトウェア9b(図2参照)内のコード化ファイル生成手段11bによりコード化される。
すなわち、ユーザが作成したプログラム10bは、プログラミングソフトウェア9、9b内の開発環境(コード化ファイル生成手段11、11bを含む)でコード化され、コード化ファイル7bとなって、パソコン8から蓄積手段6にあらかじめ記録される。
コード化ファイル7bは、具体的には、ユーザが作成したプログラム10bを開発環境でコード化したファイルである。
なお、ここでは、便宜的に1つのコード化ファイル7bのみを示しているが、検査対象の機種数などに応じて、必要に応じた任意数のコード化ファイル7bが記録され得る。
また、個別化された複数のコード化ファイル7b(プログラム10b)は、必要に応じて外部から追加または変更され得る。
さらに、蓄積手段6は、検査装置1に内蔵されてもよい。
検査装置1内において、プログラム実行手段4は、CPU上で動作するプログラム(F/W:ファームウェア)からなり、ユーザが作成したプログラム10aまたは10bを解釈して実行する。
プログラム実行手段4内のプログラムロード手段5は、必要に応じて、蓄積手段6からコード化ファイル7bを取得してメモリ領域3に展開する。
すなわち、プログラム実行手段4は、コード保持手段2内のプログラム10aをメモリ領域3にロードして動作させるとともに、プログラム実行手段4内のプログラムロード手段5は、プログラム10a中の呼び出し命令に応答して、プログラム10aの動作中に、蓄積手段6からメモリ領域3にプログラム10bをロードして動作させる。
表示/操作手段12は、マン・マシンインターフェースを構成しており、具体的には、LCDおよびキーボードなどを有し、ユーザに対して画面表示やキー入力の受け付けなどを行う。
パソコン8内のプログラミングソフトウェア9、9a、9bは、ユーザの操作により動作して、検査装置1で動作するプログラム10a、10bを作成する。
パソコン8は、プログラム10aを読み込んで実行コードを生成するための開発環境を有しており、実行コードを検査装置1内のコード保持手段2に転送するようになっている。
ユーザが作成したプログラム10aのソースコードは、パソコン8内の開発環境により、検査装置1で実行可能な形式にコンパイルされ、コンパイルされたコードは、検査装置1に転送されて動作するようになっている。
なお、実行コードは、検査装置1に転送される直前に生成され、転送後には削除されるので、実行コードがユーザにより直接扱われることはない。
同様に、パソコン8内の開発環境は、プログラム10bを読み込んで、実行コードを生成するが、プログラム10bの実行コードは、コード化ファイル7bにより、ユーザが扱うことのできるコード化ファイル7bに変換される。
すなわち、コード化ファイル生成手段11、11bは、開発環境内のプログラム10bをコード化ファイル7bに変換する。
次に、図2に示したこの発明の実施の形態1に係るパソコン8および検査装置1の概略的な動作について説明する。
まず、検査装置1にパソコン8をケーブル接続し、プログラミングソフトウェア9、9aで作成したプログラム10aを、検査装置1内のコード保持手段2にダウンロードする。
一方、プログラミングソフトウェア9、9bで作成したプログラム10bは、コード化ファイル生成手段11、11bによりコード化され、コード化ファイル7bとして蓄積手段6内にコピーされる。
検査装置1は、パソコン8でユーザが作成した検査処理動作に関連する複数のプログラム10a、10bをコード化してあらかじめ保持しており、使用時に検査装置1に接続される。
検査装置1内のプログラム実行手段4は、電源投入時にコード保持手段2内のプログラム10aをメモリ領域に展開して、プログラム10aの処理を実行する。
また、プログラム実行手段4内のプログラムロード手段5は、検査装置1上においてプログラム10aが実行されている間に、対象機種の検査処理に必要なプログラム10bを蓄積手段6から検査装置1にロードし、メモリ領域3に展開して実行する。
このように、プログラム実行手段4は、1つのプログラム10aの実行中に、蓄積手段6内の別のプログラム10bをロードして実行する。
すなわち、現在動作中のプログラム10aから、プログラム10bのコード化ファイル7bに対する呼び出し命令が発行されると、蓄積手段6内の指定されたコード化ファイル7bが検査装置1内のメモリ領域3(RAM)上に展開される。
この結果、検査装置1上で現在動作しているプログラム10aは、プログラム10bに入れ替えられて、プログラム10bの処理が実行されることになる。
図3はコード保持手段2に格納されるプログラム10aの具体例を図式的に示す説明図であり、機種選択プログラムの場合を一例として示している。
図3において、プログラム10a(機種選択プログラム)は、「START」からコードが始まり、選択ゲートで指定されるデバイス(メモリ)の値「DS0」によって、蓄積手段6からロードすべきコード化ファイルDS0(「1」〜「4」、または「Def(その他)」)を指定する。
ここでは、5機種に対応した5種類のコード化ファイル(「work1.iup」〜「work5.iup」)が蓄積手段6に記録されているものとする。
たとえば、指定デバイスが「DS0=1」の場合には、プログラム実行手段4においてコマンド「IUP LOAD」が実行され、プログラムロード手段5により、ファイル名「work1.iup」のコード化ファイルが蓄積手段6からロードされる。
また、指定デバイスが「DS0=2」の場合には、プログラム実行手段4において、コマンド「IUP LOAD」が実行され、プログラムロード手段5により、ファイル名「work2.iup」のコード化ファイルが蓄積手段6からロードされる。
さらに、指定デバイスが「DS0=Def」の場合には、プログラム実行手段4においてコマンド「IUP LOAD」が実行され、プログラムロード手段5により、ファイル名「work5.iup」のコード化ファイルが蓄積手段6からロードされる。
次に、図4のフローチャートを参照しながら、この発明の実施の形態1に係る処理動作について具体的に説明する。
図4において、まず、プログラミングソフトウェア9、9bで生成したプログラム10bのコード化ファイル7b(1つまたは複数のファイル)を蓄積手段6に格納し、蓄積手段6を検査装置1に装着する(ステップS1)。
続いて、パソコン8を検査装置1に接続し、蓄積手段6内のコード化ファイル7bへの呼び出し命令を記述したプログラム10aに対して、プログラミングソフトウェア9、9aからのダウンロード命令を与え、ダウンロード命令により、プログラム10aをコード化し、プログラム10aのコード化データをコード保持手段2にダウンロードする(ステップS2)。
次に、検査装置1の次回起動時に、プログラム実行手段4は、コード保持手段2に書き込まれたデータをメモリ領域3に展開し、ユーザによる表示/操作手段12の操作に応答してプログラム10aの動作を開始する(ステップS3)。
続いて、動作中のプログラム10aからコード化ファイル7bへの呼び出し命令が発行したか否かを判定し(ステップS4)、呼び出し命令が発行していない(すなわち、NO)と判定されれば、続いて、動作中のプログラム10aから動作終了命令が発行したか否かを判定する(ステップS5)。
ステップS5において、動作終了命令が発行した(すなわち、YES)と判定されれば動作を終了し(ステップS7)、一方、動作終了命令が発行していない(すなわち、NO)と判定されれば、プログラム実行手段4は、動作中のプログラムから発行された命令を継続実行し(ステップS6)、ステップS4に戻る。
一方、ステップS4において、コード化ファイル7bへの呼び出し命令が発行している(すなわち、YES)と判定されれば、プログラムロード手段5は、蓄積手段6内のコード化ファイル7bをメモリ領域3に展開し、検査装置1上で現在動作しているプログラムと入れ替える(ステップS8)。
最後に、プログラム実行手段4は、検査装置1内の表示/操作手段12の操作に応答して、入れ替え後のプログラム10bの動作を開始する(ステップS9)。
なお、ロード入れ替え後のプログラム10bは、自動的に起動するようになっていてもよい。
このように、この発明の実施の形態1に係るプログラム実行システムは、コード化されたプログラム10aを保持するコード保持手段2と、プログラム10aに関連したプログラム10bをコード化ファイル7bとして格納する蓄積手段6と、実行対象となるプログラムが展開されるメモリ領域3と、プログラム10a、10bを実行するためのプログラム実行手段4と、必要に応じてプログラム10bをメモリ領域3にロードするためのプログラムロード手段5を備え、プログラムロード手段5は、プログラム10aの動作中に、プログラム10bに対する呼び出し命令に応答して、蓄積手段6からメモリ領域3にプログラム10bをロードする。
これにより、プログラムを単一ファイルに統括せずに、たとえば機種別のコード化ファイル7bを複数生成した後に、それらを蓄積媒体6に格納しておき、必要なときに必要なコード化ファイル7bを自由に呼び出して動作させることができる。
したがって、プログラム10aの巨大化を回避し、プログラム10bの分散開発および並列開発を可能にするとともに、各プログラム10a、10bの実行コードの独立性を高めることができる。
また、従来システムにおいて単一ファイルに統括していたことによるプログラムの巨大化を回避することができる。
さらに、検査装置1とは別のパソコン8上で機種別にプログラム10bを記述することができるので、分散開発および並列開発が可能となり、プログラム10bを機種別に独立記述することができ、既に動作している部分への影響も最小限に抑制することができる。
ここで、この発明の実施の形態1による効果について、具体的に補足説明する。
この発明の実施の形態1によれば、たとえば、製品Aの検査項目が200項目だった場合に、2人のユーザが100項目ずつに分けてプログラムを開発することができる。
この場合、開発対象となるプログラムは、あらかじめ前半の100項目と後半の100項目とに分散され、前半100項目の検査処理は、プログラム10aとしてコード保持手段2内に格納され、後半100項目の検査処理は、プログラム10bとして蓄積手段6に格納される。
この結果、前半100項目の検査処理が終了した時点で、後半100項目の検査処理を実行するプログラム10bが実行され、トータル200項目の検査処理を実行することができる。
また、コード保持手段2の容量が少ない場合であっても、200項目のプログラムを、100項目ずつの2つのプログラムに分割することによって、動作させることが可能となる。
また、必要なときに必要なコード化ファイル7bをその都度呼び出して、検査装置1内のメモリ領域3(RAM)上に展開し、検査装置1上で現在動作中のプログラム10aと入れ替えて動作させることができるので、単一ファイルに統括するとコード保持手段2の最大メモリ容量を超える程度のプログラムであっても、たとえば機種別のコード化ファイル7b(プログラム10b)に分割することにより、プログラムを検査装置1上で動作させることができる。
また、従来システムでは、たとえば製品Aの検査プログラムに製品Bを検査する機能を追加する場合、製品Aの検査プログラムに製品Bの検査プログラムを追加してコンパイルを行い、検査装置1に転送しているが、このとき、元々動作していた製品Aのプログラムも、製品Bのプログラムを追加するための修正が追加されているので、動作確認を実行しなければならず、手間がかかっていた。
しかし、この発明の実施の形態1(図1、図2参照)によるプログラム実行システムによれば、コード化されたプログラム10aを保持するコード保持手段2と、コード保持手段2に保持されているプログラム10aが展開されるメモリ領域3と、メモリ領域3に展開されたプログラム10aを実行するプログラム実行手段4と、コード化されたプログラム10bをコード化ファイル7bとして格納する蓄積手段6(ハードディスクまたはメモリカードなど)とを備え、プログラム実行手段4は、蓄積手段6にコード化ファイル7bとして格納されているプログラム10bをメモリ領域3にロードするためのプログラムロード手段5を有している。
これにより、プログラム実行手段4は、メモリ領域3に展開されたプログラム10aを実行している動作中に、蓄積手段6内のプログラム10bに対する呼び出し命令に応答して、蓄積手段6内のコード化ファイル7b(プログラム10b)をメモリ領域3にロードして、プログラム10bを実行することができる。
したがって、図3に示したように、どの機種の検査処理を実行するかを選択するための機種選択プログラムを記述しているので、利便性を高めることができる。
たとえば、検査装置1が製品Aに対応していた場合には、コード保持手段2内に図3の機種選択プログラムが格納されており、蓄積手段6に製品Aの検査プログラムが格納されている。この検査装置1に、製品Bの検査機能を追加する場合の変更操作は、図3の機種選択プログラムに製品Bの分岐を追加することと、蓄積手段6に製品Bの検査プログラムのコード化ファイル7bを格納することである。
したがって、以上の2つの変更操作のみで機種追加を実現することができるので、製品Aの検査プログラムを修正する必要がなく、動作をチェックする必要もない。
実施の形態2.
なお、上記実施の形態1では、機種ごとに対応したプログラム10bのコード化ファイル7bのみを蓄積手段6に格納したが、プログラム10bの実行後に検査装置1を再起動しない限り、メイン処理用のプログラム10aに戻ることができない。
そこで、プログラム10aへの呼び出し命令をプログラム10bに記述しておくとともに、プログラム10aのコード化ファイル7aを蓄積手段6に追加格納してもよい。
図5はプログラム10aのコード化ファイル7aを蓄積手段6に追加格納したこの発明の実施の形態2に係るプログラム実行システムを示すブロック図である。
図5において、前述(図1、図2参照)と同様のものについては、前述と同一符号を付して、または符号の後に「A」を付して詳述を省略する。
この場合、パソコン8内のプログラミングソフトウェア9、9aは、検査装置1Aにダウンロードされるプログラム10aを、コード化ファイル生成手段11、11aによりコード化し、プログラム10aのコード化ファイル7aを蓄積手段6にあらかじめコピーする。
一方、プログラム10bの最後には、プログラム10aのコード化ファイル7aを蓄積手段6からロードするための呼び出し命令が記述されている。
次に、図6のフローチャートを参照しながら、図5に示したこの発明の実施の形態2による動作について説明する。
図6において、ステップS1A、S2、S3A〜S9は、前述(図4参照)のステップS1〜S9にそれぞれ対応している。
まず、プログラム10bへの呼び出し命令を記述したプログラム10aのコード化ファイル7aと、プログラム10aへの呼び出し命令を記述したプログラム10bのコード化ファイル7bとを生成して蓄積手段6に格納し、蓄積手段6を検査装置1Aに装着する(ステップS1A)。
続いて、プログラム10aに対して、プログラミングソフトウェア9、9aからのダウンロード命令を与え、ダウンロード命令により、プログラム10aをコード化したデータをコード保持手段2にダウンロードする(ステップS2)。
次に、検査装置1Aの起動時に、コード保持手段2に書き込まれたデータ(プログラム10a)をメモリ領域3に展開し、表示/操作手段12の操作に応答して、プログラム10aの動作を開始する(ステップS3A)。
以下、動作中のプログラム(最初はプログラム10a)からコード化ファイル(最初はコード化ファイル7b)の呼び出し命令が発行したか否かを判定し(ステップS4A)、呼び出し命令が発行していない(すなわち、NO)と判定されれば、続いて、動作中のプログラムから動作終了命令が発行したか否かを判定する(ステップS5A)。
ステップS5Aにおいて、動作終了命令が発行した(すなわち、YES)と判定されれば、現在実行中のプログラムの動作を終了し(ステップS7A)、動作終了命令が発行していない(すなわち、NO)と判定されれば、プログラム実行手段4Aは、動作中のプログラムから発行された命令を継続実行し(ステップS6A)、ステップS4Aに戻る。
一方、ステップS4Aにおいて、動作中のプログラム(最初はプログラム10a)からコード化ファイル(最初はコード化ファイル7b)の呼び出し命令が発行した(すなわち、YES)と判定されれば、プログラムロード手段5Aは、蓄積手段6内のコード化ファイル7b(プログラム10b)をメモリ領域3に展開し、検査装置1A上で現在動作中のプログラム10aと入れ替える(ステップS8A)。
また、検査装置1A内の表示/操作手段12の操作に応じて、入れ替え後のプログラム10bの動作を開始し(ステップS9A)、ステップS4Aに戻る。
なお、プログラム10bは、自動的に起動するように構成してもよい。
以下、入れ替え後のプログラム10bの動作中に、前述と同様の処理(ステップS4A〜S9A)を実行する。
すなわち、動作中のプログラム10bの最後でコード化ファイル7aへの呼び出し命令が発行したか否かを判定し(ステップS4A)、呼び出し命令が発行していれば、蓄積手段6からコード化ファイル7a(プログラム10a)をロードし(ステップS8A)、プログラム10aの処理動作を実行し(ステップS9A)、ステップS4Aに戻る。
このように、この発明の実施の形態2(図5、図6参照)によるプログラム実行手段4Aは、各プログラム10a、10bの呼び出し関係を常に把握しており、プログラム10bの動作中に、プログラム10b内の最後に記述されたプログラム10aに対する呼び出し命令に応答して、蓄積手段6からメモリ領域3にプログラム10aをロードする。
前述の実施の形態1(図1〜図4参照)では、コード保持手段2に保存されているプログラム10aから、蓄積手段6に保存されているコード化ファイル7bが呼び出されると、検査装置1を再起動させない限り、コード保持手段2に保存されているプログラム10aに戻ることができなかった。
しかし、この発明の実施の形態2による蓄積手段6は、プログラム10bに加えて、プログラム10a(または、その他のプログラム)をコード化ファイル7aとして格納している。
したがって、プログラム実行手段4Aは、メモリ領域3に展開されたプログラム10aを実行している動作中に、蓄積手段6内のプログラム10bに対する呼び出し命令に応答して、蓄積手段6内のコード化ファイル7b(プログラム10b)をメモリ領域3にロードして、プログラム10bを実行し、プログラム10bを実行している動作中に、蓄積手段6内のプログラム10a(または、他のプログラム)に対する呼び出し命令に応答して、蓄積手段6内のコード化ファイル7a(プログラム10a)をメモリ領域3にロードして、プログラム10a(または、他のプログラム)を実行することができる。
この場合、プログラム実行手段4Aは、プログラム10a、10bの呼び出し関係を常に把握しており、プログラム10aをコード保持手段2に保存するのみならず、コード化ファイル生成手段11、11aにより変換されたコード化ファイル7aを蓄積手段6に保存することにより、検査装置1Aが起動してプログラム10aが動作し、さらにプログラム10bが動作した後、元のプログラム10aを実行することができる。
すなわち、プログラム実行手段4Aは、プログラム10bの動作中に、プログラム10b内のプログラム10aに対する呼び出し命令に応答して、蓄積手段6からメモリ領域3にプログラム10aをロードする。
これにより、検査装置1Aの起動後に、プログラム10aからプログラム10bのコード化ファイル7bが呼び出されて、プログラム10bが実行されている場合に、プログラム10bの最後にプログラム10aのコード化ファイル7bへの呼び出し命令が記述されていれば、プログラム10bの終了時に、自動的にプログラム10aに再復帰することができる。
たとえば、前述(図3参照)のように、プログラム10aを、機種選択(指定されたコード化ファイル7bの呼び出し)実行用のみのプログラムとすることにより、機種追加などを行うためにプログラム10bを追加するような場合、追加分のプログラム10bのコード化ファイル7bを生成して蓄積手段6に格納するとともに、プログラム10aの変更操作として追加分のコード化ファイル7bを指定可能な記述を追加することのみで、容易に機種を追加することができる。
また、プログラム10aが機種選択用の場合に、プログラム10aで記述されている機種選択(コード化ファイル7bの指定)がプログラム10a中で直接指定されているのではなく、間接的に指定されているような場合には、機種追加時にプログラム10aを変更する必要が全くない。
したがって、機種追加ごとにパソコン8と検査装置1Aとをケーブル接続してプログラミングソフトウェア9、9aから再度プログラム10aを検査装置1Aにダウンロードする必要がない。
また、プログラム10aが図3のように構成された場合、DS0デバイスの値(「1」〜「4」、「Def」)に応じて処理が分岐し、あらかじめ指定されたファイル(「work1.iup」〜「work5.iup」)を起動するが、所望プログラムに応じて表示/操作手段12からファイル名を入力し、対象ファイルをロードすることができる。
このようなプログラム記述を実行した場合、機種選択プログラムを修正する必要がなくなるので、より利便性が高くなる。
さらに、プログラム10a、10bの呼び出し関係を容易に取得することができ、ロード時間を短縮することができ、プログラム10a、10bの読み出し処理を確実に実行することができる。
上述の例において、プログラム10bの最後には、プログラム10aのコード化ファイル7aを蓄積手段6からロードするための呼び出し命令が記述されているものとする。
これにより、プログラム実行手段4Aは、プログラム10bの動作中に、プログラム10b内の最後に記述されたプログラム10aに対する呼び出し命令に応答して、蓄積手段6からメモリ領域3にプログラム10aをロードすることができる。
また、同様にして、プログラム10bの最後に、プログラム10aをコード保持手段2からロードするための呼び出し命令が記述されていてもよい。
この場合、プログラム実行手段4Aは、プログラム10bの動作中に、プログラム10b内の最後に記述されたプログラム10aに対する呼び出し命令に応答して、コード保持手段2からメモリ領域3にプログラム10aをロードすることができる。
実施の形態3.
なお、上記実施の形態1、2では、コード化ファイル7b(プログラム10b)のメモリ領域3へのロード処理を一括的に実行したが、コード化ファイル7b内のメインフロー単位(プログラム実行単位)でロード処理を実行してもよい。
図7はメインフロー単位でロード処理を実行したこの発明の実施の形態3に係るプログラム実行システムの要部を示すブロック図である。
図7において、前述(図2参照)と同様のものについては、前述と同一符号を付して、または符号の後に「B」を付して詳述を省略する。
この場合、プログラム実行手段4B内のプログラムロード手段5Bは、コード化ファイル7b(プログラム10b)のロード処理を、コード化ファイル7b内のプログラム実行単位13(メインフロー単位)で行うようになっている。
プログラム実行単位13は、コード化ファイル7b(プログラム10b)に含まれる実行プログラム部であり、具体的には、IU Developer内のフローチャートからなる。
ここでは、代表的に1つのプログラム実行単位13を示しているが、1つのプログラム10bには、複数の実行プログラム部(フローチャート)すなわちプログラム実行単位13が含まれている。
次に、図8のフローチャートを参照しながら、図7に示したこの発明の実施の形態3による動作について説明する。
図8において、まず、プログラムロード手段5Bは、プログラムのロードを開始する(ステップS10)。
このとき、ロード対象となるプログラム実行単位13(指定フローチャート)のみの読み出しを指定する。
続いて、コード化ファイル7b内の指定フローチャートのみを読み込みを行う(ステップS11)。
このように、プログラムロード手段5Bは、プログラム10bのロード処理時に、プログラム10bのすべてを読み込むのではなく、プログラム10b内の実行したいプログラム実行単位13(メインフロー単位)で読み込む。
これにより、読み込むデータ量が少なくなるため、検査機種の切替えに要する時間を短縮することができる。
すなわち、この発明の実施の形態3(図7、図8参照)によるプログラム実行手段4Bは、メモリ領域3に展開されたプログラムを実行している動作中に、蓄積手段6にコード化ファイル7b(または、その他のコード化ファイル)として格納されているプログラム中のプログラム実行単位13(該当する実行部分)に対する呼び出し命令に応答して、蓄積手段6に格納されたプログラムの中から該当する実行部分に対応するプログラム実行単位13をメモリ領域3にロードして、プログラム実行単位13を実行する。
したがって、プログラムの巨大化を回避して、分散開発および並列開発を可能にし、実行コードの独立性を高めるという前述の効果に加えて、ロード時間を短縮することができる。
実施の形態4.
なお、上記実施の形態1では、検査装置1内のデバイス(メモリ)に対する初期化情報について考慮しなかったが、プログラム10b中にデバイス初期化情報を含めることにより、プログラム10bのロード時に、デバイス初期化情報に基づき、必要に応じて自動的にデバイスを初期化するように構成してもよい。
図9はコード化ファイル7b(プログラム10b)内にデバイス初期化情報14を設けたこの発明の実施の形態4に係るプログラム実行システムの要部を示すブロック図である。
図9において、前述(図1、図2参照)と同様のものについては、前述と同一符号を付して、または符号の後に「C」を付して詳述を省略する。
この場合、コード化ファイル7b(プログラム10b)は、検査装置1C内のデバイスに対する初期化の実行有無を示すデバイス初期化情報14を含む。
なお、ここでは、代表的にデバイス初期化情報14のみを示しているが、コード化ファイル7bは、デバイス以外の他の初期化情報を含んでいてもよい。
また、プログラムロード手段5Cは、プログラム10bのロード時に、デバイス初期化情報14に基づいて、必要に応じて初期化を実行する。
デバイス初期化情報14には、コード化ファイル7bに付加された情報であり、コード化ファイル7b(プログラム10b)のロード時に、検査装置1Cの初期化を実行するか否かの情報が設定されている。
次に、図10のフローチャートを参照しながら、図9に示したこの発明の実施の形態4による動作について説明する。
図10において、ステップS10は、前述(図8参照)と同様のロード処理である。
まず、プログラムロード手段5Cは、プログラム10bのロードを開始し(ステップS10)、デバイス初期化情報14に基づいて、検査装置1C内のデバイスの初期化を実行するか否かを判定する(ステップS12)。
ステップS12において、初期化を実行しない(すなわち、NO)と判定されれば、直ちに指定プログラムを読み込み(ステップS13)、一方、初期化を実行する(すなわち、YES)と判定されれば、デバイスを初期化してから(ステップS14)、指定プログラムを読み込む(ステップS13)。
たとえば、プログラム実行手段4Cによりプログラム10aを実行している状態から、プログラム10bをロードして実行する場合に、プログラム10aとプログラム10bとの間でデータの受け渡しがない場合には、デバイス内容を保持する必要がないので、デバイス初期化情報14に基づいて検査装置1C内のデバイスを初期化する。
一方、プログラム10aとプログラム10bとの間にデータの受け渡しがある場合には、デバイス内容を保持する必要があるので、デバイスの初期化処理を実行しない。
これにより、前回の検査結果などを引き継いで、後工程で利用することができる。たとえば、プログラム10aでの「OK/NG」を示す判定数を、そのままプログラム10bで引き継いで検査処理を続行することができる。
以上のように、この発明の実施の形態4(図9、図10参照)によれば、プログラム10bは、検査装置1C(プログラム実行システム)に対するデバイス初期化情報14を含み、プログラムロード手段5Cは、蓄積手段6からのプログラム10bのロード時に、デバイス初期化情報14に基づいて、必要に応じて検査装置1C内のデバイスを初期化する。
したがって、プログラム10bのロード時に、初期化処理の要否を選択することができ、必要に応じて初期化処理を自動的に実行することができる。
実施の形態5.
なお、上記実施の形態1〜4では、蓄積手段6内にコード化ファイル7bが存在することを前提にして説明したが、コード化ファイル7bのロード時にコード化ファイル7bの有無をチェックしてもよい。
以下、コード化ファイル7bの有無チェック機能を設けたこの発明の実施の形態5に係るプログラム実行システムについて説明する。
この場合、プログラム実行手段4およびプログラムロード手段5(たとえば、図1、図2参照)は、プログラム10b(またはプログラム10a)のロード時に、プログラム10b(またはプログラム10a)の有無をチェックし、呼び出し命令に応答するプログラムが存在しない場合にエラー処理を実行(エラーコードを出力)するようになっている。
以下、図11のフローチャートを参照しながら、この発明の実施の形態5による動作について説明する。
図11において、ステップS10は前述(図8、図10参照)と同様のロード処理である。ここでは、蓄積手段6内のプログラム10bをロードする場合を例にとって説明する。
まず、プログラム10bのロードを開始し(ステップS10)、コード化ファイル7bが存在するか否かを判定する(ステップS14)。
ステップS14において、コード化ファイル7bが存在する(すなわち、YES)と判定されれば、コード化ファイル7bを読み込む(ステップS15)。
一方、ステップS14において、コード化ファイル7bが存在しない(すなわち、NO)と判定されれば、コード化ファイル7bが存在しないことを表示/操作手段12の画面に表示する(ステップS16)。
また、インタネットなどの通信により他の装置に通知し(ステップS17)、検査装置1内のデバイスにエラーコードを出力して(ステップS18)、動作を停止する(ステップS19)。
なお、ステップS16〜S18については、すべての処理を実行する必要はなく、いずれか1つの処理のみを実行するか、または、いずれか2つの処理のみを実行してもよい。
このように、プログラム実行手段4は、プログラム10bのロード時に、対象となるコード化ファイル7bが存在しなかった場合には、検査装置1の動作を停止するとともに、画面表示によるエラー報知、通信による通知、または、検査装置1内のデバイスにエラーコード書込みを行う。
なお、蓄積手段6からプログラム10aをロードする場合も同様である。
図11に示した通り、この発明の実施の形態5によるプログラム実行手段は、プログラムロード手段による蓄積手段6からの所定プログラムのロード時に、所定プログラムが蓄積手段6に存在するか否かを確認し、呼び出し命令に応答する所定プログラムが蓄積手段6内に存在しない場合には、エラーコードを出力する。
これにより、前述の効果に加えて、プログラムロード時のエラー処理を実行することができ、ロード時に対応するプログラムが存在しない状態においては、不具合動作を回避するとともに、停止した原因を特定する利便性が向上するという効果がある。
実施の形態6.
なお、上記実施の形態1〜5では、プログラムロード時の対象となる蓄積手段6として、1種類の記録媒体(メモリカードなど)を想定して説明したが、複数の異なる記録媒体(たとえば、メモリカードおよびハードディスクなど)をプログラムロード時の対象としてもよい。
図12は複数の蓄積手段6、6Dをプログラムロード時の対象としたこの発明の実施の形態6に係るプログラム実行システムの要部を示すブロック図である。
図12において、前述(図2参照)と同様のものについては、前述と同一符号を付して、または符号の後に「D」または「’」を付して詳述を省略する。
この場合、各プログラムに対応したコード化ファイル7b、7b’は、それぞれが格納された蓄積手段6、6Dに関する読込先情報を含む。
また、検査装置1D内のプログラム実行手段4Dおよびプログラムロード手段5Dは、ロード対象となるコード化ファイル7b、7b’内の読込先情報に応じて、各プログラムの読込先を個別に変更するようになっている。
次に、図13のフローチャートを参照しながら、図12に示したこの発明の実施の形態6による動作について説明する。
ここでは、代表的に、プログラム10bに対応するコード化ファイル7bをロード対象とした場合について説明する。また、蓄積手段6はメモリカードであって、蓄積手段6’はハードディスク(HDD)であるものとする。
図13において、まず、ロード対象となるコード化ファイル7b(プログラム10b)のロードを開始し(ステップS10)、対象となるコード化ファイル7b内の読込先情報を参照して、メモリカード(蓄積手段6)からロードする状態か否かを判定する(ステップS20)。
ステップS20において、メモリカードからロードする状態である(すなわち、YES)と判定されれば、読込先がメモリカード(蓄積手段6)であると認識して、メモリカードからコード化ファイルを読み込む(ステップS21)。
一方、ステップS20において、メモリカードからロードする状態ではない(すなわち、NO)と判定されれば、読込先がハードディスク(HDD)であると認識して、ネットワーク上のHDDからコード化ファイルを読み込む(ステップS22)。
なお、ここでは、2つの蓄積手段6、6Dのなかから読込先を指定する場合について説明したが、検査装置1Dに3つ以上の蓄積手段が接続されていてもよい。
このように、この発明の実施の形態6(図12、図13参照)において、所定プログラム(コード化ファイル7bまたは7b’)に対する呼び出し命令を用いたプログラムは、呼び出し命令に応答する所定プログラムが格納されている蓄積手段6または6Dに関する読込先情報を含み、プログラム実行手段4Dは、読込先情報に応じて、所定プログラムの読込先を個別に変更する。
これにより、読込先情報に基づいてロード先(読込先)の指定が可能なことから、対象となる蓄積手段6、6Dを自動的に切り替えることができる。
したがって、機種に応じたコード化ファイル7b、7b’の選択の幅が広がり、ネットワーク上のハードディスク(HDD)などの蓄積手段6D内のコード化ファイル7b’を指定することができる。
また、他の装置の設置現場に出向いて行ってコード化ファイルの入替操作などを行う必要がなく、プログラムの変更を実現することができる。
さらに、この発明の実施の形態6によれば、前述の効果に加えて、プログラム(コード化ファイル7bまたは7b’)の読出処理を確実に実行することができる。
実施の形態7.
なお、上記実施の形態1〜6では、特に言及しなかったが、プログラムのロード時にロード履歴情報を保存してもよい。
図14はロード履歴情報を保存可能に構成したこの発明の実施の形態7に係るプログラム実行システムの要部を示すブロック図である。
図14において、前述(図2参照)と同様のものについては、前述と同一符号を付して、または符号の後に「E」を付して詳述を省略する。
この場合、検査装置1E内のプログラム実行手段4Eは、プログラムロード履歴保存手段15を備えている。
プログラムロード履歴保存手段15は、コード化ファイル7b(プログラム10b)に関するロード履歴を取得して保存する。
たとえば、プログラムロード履歴保存手段15には、動作したプロジェクト(プログラム10bまたはコード化ファイル7b)の履歴や、コード化ファイル7b(プログラム10b)のロード時に変更したプログラム名などが時系列に保存される。
なお、ここでは、代表的に、コード化ファイル7b(プログラム10b)をロードする場合を示しているが、前述(図5参照)のコード化ファイル7a(プログラム10a)をロードする場合にも適用可能である。
次に、図15のフローチャートを参照しながら、図14に示したこの発明の実施の形態7による動作について説明する。
図15において、まず、プログラムロード手段5Eがプログラム10bのロードを開始すると(ステップS10)、プログラムロード履歴保存手段15は、プログラム10bのロード履歴(具体的には、ロードした「ファイル名」)を保存する(ステップS24)。
続いて、次のプログラム10b’のロードが開始されると(ステップS10A)、同様に、プログラムロード履歴保存手段15は、次のプログラム10b’のロード履歴を保存する(ステップS24A)。
以下、プログラム10bのロードが開始されるごとに、同様のロード処理およびロード履歴保存処理が繰り返される。
これにより、たとえば、プログラム10b、10b’、・・・がプログラムA→プログラムB→プログラムC、・・・のように順次ロードされた場合、プログラムロード履歴保存手段15には、プログラムA、プログラムB、プログラムC、・・・と保存される。
このように、この発明の実施の形態7(図14、図15参照)によるプログラム実行手段4Eは、プログラムロード履歴保存手段15を含み、プログラムロード履歴保存手段15は、蓄積手段6内の所定プログラム(たとえば、コード化ファイル7b)に対する呼び出し命令に応答して、プログラム実行手段4Eが蓄積手段6内の所定プログラムをメモリ領域3にロードして実行する際に、所定プログラムがロードされたことをロード履歴として保存する。
これにより、不具合発生時に、原因となったプログラムがどれなのかを調査するのに役立つうえ、エラーストップ発生時の次の起動時に、どのプログラムからスタートすればよいかを特定するのに役立つ。
また、ロード履歴を参照することによって、どのような機種を検査したかを認識することができる。
さらに、プログラムの呼び出し関係を容易に取得することができる。
実施の形態8.
なお、上記実施の形態1〜7では、プログラム(プロジェクト)のロード処理のみについて説明したが、検査装置から蓄積手段にプログラム(プロジェクト)をアップロードしてもよい。
図16はプログラム実行手段4Fにアップロード機能を設けたこの発明の実施の形態8に係るプログラム実行システムの要部を示すブロック図である。
図16において、前述(図2参照)と同様のものについては、前述と同一符号を付して、または符号の後に「F」を付して詳述を省略する。
この場合、検査装置1F内のプログラム実行手段4Fは、プログラムアップロード手段5Fを備えている。
プログラムアップロード手段5Fは、メモリ領域3に展開されているプログラム10aまたは10bを、コード化ファイル7cに変換して蓄積手段6にコピーする。
なお、プログラムアップロード手段5Fは、前述のプログラムロード手段5〜5Eの機能に含まれてもよく、プログラムロード手段5〜5Eとは別に設けられてもよい。
また、蓄積手段6としては、異なる複数の記録媒体(PCカード、HDDなど)が接続されてもよい
次に、図17のフローチャートを参照しながら、図16に示したこの発明の実施の形態8による動作について説明する。
図17において、まず、プログラムアップロード手段5Fは、メモリ領域3上に展開されて実行中のプログラムのアップロードを開始し(ステップS25)、アップロード対象となるプログラムの保存先の指定がPCカードか否(HDD)かを判定する(ステップS26)。
ステップS26において、保存先の指定がPCカードである(すなわち、YES)と判定されれば、蓄積手段6となるPCカードにコード化ファイル7c(プログラム)を保存する(ステップS27)。
一方、ステップS26において、保存先の指定がPCカードでない(すなわち、NO)と判定されれば、蓄積手段6となるHDDにコード化ファイル7c(プログラム)を保存する(ステップS28)。
このように、この発明の実施の形態8(図16、図17参照)によるプログラム実行手段4Fは、プログラムアップロード手段5Fを含み、プログラムアップロード手段5Fは、検査装置1F内でプログラム実行手段4Fが実行中のプログラムを、蓄積手段6にアップロードする。
これにより、実行中のプログラムを蓄積手段6に保存することができるうえ、アップロード時の保存先として、PCカードまたはHDDに指定することができる。なお、HDDについては、ネットワークに接続されたHDDであってもよい。
また、一般に、検査装置1Fが稼動している間に、規格値を調整した場合には、元データとの整合性が失われてしまうが、この発明の実施の形態8によれば、プログラムの元ファイルを更新して保存することができるので、元ファイルに対して規格値の調整を個別に反映させる必要がなくなるという利点もある。
実施の形態9.
なお、上記実施の形態8では、プログラムのアップロードのみを実行したが、アップロードされるプログラムに、アプリケーションバージョン情報(以下、単に「バージョン情報」という)を付加してもよい。
アプリケーションとは、検査対象に応じて、ユーザによりプログラミングソフトウェア9(または、9a、9b)で作成されるプログラムのことである。
図18はこの発明の実施の形態9に係るプログラム実行システムによる動作を示すフローチャートである。
図18において、前述(図17参照)と異なる点は、アップロードの開始(ステップS25)に続いて、バージョン情報の付加処理(ステップS25A)が追加されたことのみである。
また、この発明の実施の形態9によるシステム構成は、図16に示した通りであり、プログラムアップロード手段5Fが、アップロード時のバージョン情報管理機能およびバージョン情報付加機能を有している点のみが異なる。
この場合、プログラムアップロード手段5F(図16参照)は、蓄積手段6にアップロードされるプログラムに対して、バージョン情報を付加するようになっている。
次に、図18を参照しながら、この発明の実施の形態9による動作について説明する。
まず、プログラムアップロード手段5Fは、プログラムのアップロードを開始し(ステップS25)、アップロードするプログラムにバージョン情報を付加する(ステップS25A)。
以下、前述と同様に、プログラムの保存先の指定を判定し(ステップS26)、PCカードまたはHDDにプログラムを保存する(ステップS27、S28)。
このように、この発明の実施の形態9によるプログラム実行手段は、プログラムアップロード手段5F(図16参照)による蓄積手段6へのプログラムアップロード時に、蓄積手段6にアップロードされるプログラム(実行中のプログラム)に対してバージョン情報を付加する。
たとえば、前述(図16、図17参照)の実施の形態8では、プログラム(プロジェクト)のアップロード時に元ファイルが更新されるが、後から見たときに、変更前のファイルか変更後のファイルかを判別することができなくなる。
しかし、この発明の実施の形態9(図18参照)によれば、ファイル更新時にバージョン情報が付加されるので、更新されたファイルであるか否かを判別することができ、管理し易くなるうえ、バージョン違いによる誤動作を防止することもできる。
実施の形態10.
なお、上記実施の形態1〜9では、特に言及しなかったが、蓄積手段6からのプログラムロード時にコンフィグレーション情報を比較して、ロードされるプログラムと検査装置との整合性をチェックしてもよい。
以下、図19〜図21を参照しながら、コンフィグレーション情報の整合性チェック機能を設けたこの発明の実施の形態10に係るプログラム実行システムについて説明する。
図19は検査装置にコンフィグレーション情報のチェック機能を設けたこの発明の実施の形態10に係るプログラム実行システムの要部を示すブロック図である。
図19において、前述(図2参照)と同様のものについては、前述と同一符号を付して、または符号の後に「G」を付して詳述を省略する。
この場合、プログラム実行手段4G内のプログラムロード手段5Gは、検査装置1Gおよびコード化ファイル7bの各コンフィグレーション情報を比較するコンフィグレーション整合性チェック手段16を備えている。
また、蓄積手段6は、複数のコード化ファイル7b、7b’・・・を格納しているものとする。
各コード化ファイル7b、7b’は、自身が動作するためのコンフィグレーション情報、すなわち、実際のプログラム処理動作に適合するための検査装置1GのH/W構成またはデバイス構成に対応した動作コンフィグレーション情報(以下、単に「コンフィグレーション情報」という)を有している。
プログラム実行手段5G内のコンフィグレーション整合性チェック手段16は、プログラムロード手段5Gによる蓄積手段6からの所定プログラムのロード時に、所定プログラムのコンフィグレーション情報と、プログラム実行手段の動作している環境コンフィグレーション情報(以下、単に「コンフィグレーション情報」という)とを比較して両者の整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力する。
このように、蓄積手段6内のコード化ファイル7b、7b’(プログラム10b、10b’)および検査装置1G内のプログラム実行手段4Gは、それぞれのコンフィグレーション情報を含み、プログラム実行手段4Gは、蓄積手段6からのプログラムロード時にコンフィグレーション情報の整合性をチェックするようになっている。
また、プログラム実行手段4Gは、蓄積手段6内のプログラムロード時に、ロード対象となる所定プログラムたとえばコード化ファイル7b(プログラム10b)のコンフィグレーション情報を読み込むことにより、所定プログラムに対応したコンフィグレーション情報を共有化してもよい。
後述するように、コンフィグレーション整合性チェック手段16は、検査装置1Gのコンフィグレーション情報(H/W構成またはデバイス構成)と、蓄積手段6から読み込まれた(または、これからロードされる)コード化ファイル7b(または、他のコード化ファイル7b’)のコンフィグレーション情報とを比較し、実際にプログラム動作が可能であるか否かを確認する。
図20はボードに関する検査装置1Gとコード化ファイル7b、7b’、7b’’との各コンフィグレーション情報の関係を図式的に示すブロック図である。
図20において、検査装置1Gは、コンフィグレーション情報として、増設ボード18a、18bを有しているものとする。
また、蓄積手段6内のコード化ファイル7b、7b’、7b’’は、個別のコンフィグレーション情報17a、17b、17cを有しているものとする。
コンフィグレーション情報17a〜17cは、具体的には、検査装置1GのH/W構成(使用している増設ボードの種類やスロット位置など)や検査装置1G内のデバイス(メモリ)設定が保存されたファイルである。
ここでは、コンフィグレーション情報17aは、増設ボード18a、18bに対応し、コンフィグレーション情報17bは、増設ボード18a、18cに対応し、コンフィグレーション情報17cは、増設ボード18aに対応しているものとする。
次に、図21のフローチャートを参照しながら、図19および図20に示したこの発明の実施の形態10によるコンフィグレーション情報チェック動作について説明する。
図21において、ステップS10、S15、S17〜S19は、前述(図11参照)と同様の処理である。
まず、プログラム実行手段4Gにおいて、蓄積手段6からプログラム10bのロードを開始すると(ステップS10)、プログラムロード手段5G内のコンフィグレーション整合性チェック手段16は、コンフィグレーション情報17a(または、17b、17c)が検査装置1Gのコンフィグレーション情報(H/W構成、デバイス構成)と完全に一致しているか否かを判定する(ステップS29)。
ステップS29において、コンフィグレーション情報17aが検査装置1GのH/W構成と完全に一致する(すなわち、YES)と判定されれば、コード化ファイル7b(図20の例では、検査装置1GのH/W構成と完全に一致する)を読み込む(ステップS15)。
一方、ステップS29において、たとえばコンフィグレーション情報17bが検査装置1GのH/W構成と完全には一致しない(すなわち、NO)と判定されれば、コンフィグレーション情報17bが検査装置1GのH/W構成と一致しないことを、表示/操作手段12の画面上に表示する(ステップS30)。
また、通信により他の装置に通知し(ステップS17)、検査装置1G内のデバイスにエラーコードを出力し(ステップS18)、検査装置1Gを停止させる(ステップS19)。
たとえば、図20において、蓄積手段6内のコード化ファイル7bは、コンフィグレーション情報17a(増設ボード18a、18b)が検査装置1Gのボード構成(増設ボード18a、18b)と完全に一致するので、コード化ファイル7bを検査装置1Gに読み込むことができる。
一方、蓄積手段6からコード化ファイル7b’を読み込もうとすると、コンフィグレーション情報17b(増設ボード18a、18c)が検査装置1Gのボード構成と一致しないので、エラーとなり、コード化ファイル7b’を検査装置1Gに読み込むことはできない。
以上のように、この発明の実施の形態10(図19〜図21参照)によれば、蓄積手段6に格納されているプログラム(コード化ファイル7b、7b’・・・)は、自身が動作するためのコンフィグレーション情報17a、17b・・・を含み、プログラム実行手段4Gは、コンフィグレーション整合性チェック手段16を含み、コンフィグレーション整合性チェック手段16は、プログラムロード手段5Gによる蓄積手段6からの所定プログラムのロード時に、所定プログラムのコンフィグレーション情報と、プログラム実行手段の動作している環境のコンフィグレーション情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力する。
これにより、前述の効果に加えて、コンフィグレーション情報17a、17b・・・の整合性をチェックし、検査装置1Gで処理動作が不可能なプログラムのロードを回避することができる。
すなわち、蓄積手段6から所定プログラムがロードされて実行される際に、所定プログラムで扱うべき増設ボードが検査装置1Gに存在しなかった場合、または、違った増設ボードであった場合における不具合動作を未然に防ぐことができる。
実施の形態11.
なお、上記実施の形態10では、プログラムおよび検査装置の各コンフィグレーション情報の完全な一致を確認したが、許容範囲を広げて、蓄積手段6からロードされる所定プログラムが動作するために十分であるか否かを確認してもよい。
図22は許容範囲を広げたこの発明の実施の形態11によるコンフィグレーション情報の確認動作を示すフローチャートである。
この場合、コンフィグレーション整合性チェック手段16(図19参照)は、蓄積手段6からロードされる所定プログラムのコンフィグレーション情報と、プログラム実行手段4Gの動作環境(検査装置1G)のコンフィグレーション情報との整合性確認時に、検査装置1Gのコンフィグレーション情報が、所定プログラムが動作するために十分であるか否かを判定し、動作環境のコンフィグレーション情報が、所定プログラムが動作するために不十分である場合には、エラーコードを出力するようになっている。
以下、前述の図19および図20とともに、図22のフローチャートを参照しながら、この発明の実施の形態11によるコンフィグレーション情報の整合性チェック処理動作について説明する。
図22において、ステップS10、S15、S17〜S19、S29は、前述(図21参照)と同様の処理である。
まず、プログラム実行手段4Gにおいて、蓄積手段6から所定プログラム(たとえば、コード化ファイル7b)のロードを開始すると(ステップS10)、コンフィグレーション整合性チェック手段16は、コンフィグレーション情報17a(または、17b、17c)が検査装置1Gのコンフィグレーション情報と完全に一致しているか否かを判定する(ステップS29)。
ステップS29において、たとえばコンフィグレーション情報17aが検査装置1GのH/W構成と完全に一致する(すなわち、YES)と判定されれば、コード化ファイル7bを読み込む(ステップS15)。
一方、ステップS29において、ロード対象プログラムのコンフィグレーション情報が検査装置1GのH/W構成と完全には一致しない(すなわち、NO)と判定されれば、続いて、コンフィグレーション情報17bまたは17cが、検査装置1GのH/W構成からいくつかの増設ボードを削除したものと一致しているか否かを判定する(ステップS29A)。
ステップS29Aにおいて、たとえばコンフィグレーション情報17cが、検査装置1GのH/W構成からいくつかの増設ボードを削除したものと一致する(すなわち、YES)と判定されれば、コンフィグレーション情報17cに該当するコード化ファイル7b’’を読み込む(ステップS15)。
図20の例では、コード化ファイル7b’’のコンフィグレーション情報17c(増設ボード18a)は、検査装置1GのH/W構成から増設ボード18bを削除したものと一致する。
一方、ステップS29Aにおいて、たとえばコンフィグレーション情報17bが、検査装置1GのH/W構成からいくつかの増設ボードを削除したものとも一致しない(すなわち、NO)と判定されれば、コンフィグレーション情報17bが検査装置1GのH/W構成と一致しないことを、表示/操作手段12の画面上に表示する(ステップS30A)。
また、通信により他の装置に通知し(ステップS17)、検査装置1G内のデバイスにエラーコードを出力し(ステップS18)、検査装置1Gを停止させる(ステップS19)。
以上のように、蓄積手段6内のコード化ファイル7b(図20参照)は、コンフィグレーション情報17aが検査装置1Gのボード構成と完全に一致するので、コード化ファイル7bを検査装置1Gに読み込むことができる。
また、蓄積手段6内のコード化ファイル7b’’は、コンフィグレーション情報17c(増設ボード18a)が検査装置1Gのボード構成から増設ボード18bを削除したものと一致するので、コード化ファイル7b’’を検査装置1Gに読み込むことができる。
前述の実施の形態10では、コード化ファイル7c(図20参照)をロードすることはできなかったが、この発明の実施の形態11では、コード化ファイル7cを検査装置1Gにロードすることができる。
一方、蓄積手段6内のコード化ファイル7b’は、コンフィグレーション情報17b(増設ボード18a、18c)が検査装置1Gのボード構成からいくつかの増設ボードを削除しても一致せず、許容範囲を広げてもエラーとなるので、コード化ファイル7b’を検査装置1Gに読み込むことはできない。
たとえば、工場などで稼動している検査装置において、新しい機種を検査するために、追加の増設ボードを使用した新規のプログラムを作成した場合、これまで稼動していた既存プログラムのコンフィグレーション情報が検査装置のコンフィグレーション情報とは異なったものとなってしまう。なぜなら、これまで稼動していた既存プログラムでは、追加の増設ボードについての記述がないからである。
しかし、追加の増設ボードを使用した新規プログラムを作成した場合であっても、この発明の実施の形態11によれば、新規プログラムのコンフィグレーション情報が検査装置のH/W構成と完全には一致しなかった場合に、さらに、検査装置のH/W構成からいくつかの増設ボードを削除した構成と一致するか否かのチェックを行うことにより、これまで稼動していた既存プログラムを変更することなく、新規に追加した増設ボードを使用したプログラム(プロジェクト)を作成することができる。
このように、この発明の実施の形態11によれば、コンフィグレーション整合性チェック手段16は、ロード対象となる所定プログラムのコンフィグレーション情報と検査装置1Gのコンフィグレーション情報との整合性確認時に、検査装置1Gのコンフィグレーション情報が、所定プログラムが動作するために十分であるか否かを判定し、所定プログラムが動作するために不十分である場合のみにエラーコードを出力するので、前述の作用効果に加えて、ロード対象プログラムの許容範囲を広げることができる。
実施の形態12.
なお、上記実施の形態1〜11では、蓄積手段6からロードされる所定プログラムのバージョン情報(アプリケーションバージョン情報)の整合性チェックについて考慮しなかったが、バージョン情報の整合性チェック機能を設けてもよい。
以下、図23のフローチャートを参照しながら、バージョン情報の整合性チェック機能を設けたこの発明の実施の形態12による処理動作について説明する。
図23において、ステップS10、S15、S17〜S19は、前述(図21、図22参照)と同様の処理である。
この場合、蓄積手段6に格納されているプログラムは、自身が動作するための動作アプリケーションバージョン情報(以下、単に「バージョン情報」という)を含み、検査装置内のプログラム実行手段は、プログラムロード手段による蓄積手段6からの所定プログラムのロード時に、所定プログラムのバージョン情報とプログラム実行手段の環境アプリケーションバージョン情報(以下、単に「バージョン情報」という)とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力するようになっている。
まず、蓄積手段6から所定プログラムのロードを開始し(ステップS10)、ロードされるプログラムのバージョン情報とロード前の実行プログラムのバージョン情報とが一致するか否かを判定する(ステップS31)。
つまり、プログラムロード前の実行プログラムとのバージョン情報が同じであるか否かを判定し、両者が一致する(すなわち、YES)と判定されれば、コード化ファイルを読み込む(ステップS15)。
一方、ステップS31において、両者が一致しない(すなわち、NO)と判定されれば、バージョン情報が一致しないことを、表示/操作手段12の画面上に表示する(ステップS32)。
また、通信により他の装置に通知するとともに(ステップS17)、検査装置内のデバイスにエラーコードを出力し(ステップS18)、検査処理を停止する(ステップS19)。
なお、前述の通り、「アプリケーション」とは、プログラミングソフトウェア9(または、9a、9b)で作成した「プログラム」のことであり、ユーザが作成するプログラムは、検査対象によって異なる。
したがって、検査対象を識別するために、個々の「プログラム」に、検査対象に応じたバージョン情報が付与されている。
特に、この発明においては、複数のユーザがプログラムを分散して作成するので、分散して作成したプログラムが動作するかどうか、つまり、「機種選択プログラム(プログラム10a)」と、この「機種選択プログラム」から呼び出される「Work1.iup(プログラム10b)」(図1、図3参照)とが同じ目的で作成されたものかどうか、を判定することが重要になる。
たとえば、或るユーザが、機種A、B、Cを検査対象とした「プログラム」を、「機種選択プログラム」および「Work1.iup」で作成し、別のユーザが、機種D、E、Fを検査対象とした「プログラム」を、「機種選択プログラム」および「Work1.iup」で作成したとする。
この場合、「機種選択プログラム」において、「Work1.iup」の取り扱いを間違えると、意図しない「Work1.iup」が呼び出されてしまうことになる。
したがって、プログラムのロードミスを未然に防ぐために、検査装置へのロード対象となるプログラムにバージョン情報を付与することが有効となる。
すなわち「機種選択プログラム」および「Work1.iup」の両方に、同じバージョン情報を付与することにより、プログラム実行手段が意図する「Work1.iup」を判別することができる。
たとえば、或るユーザは、機種A、B、Cを検査対象とした「プログラム」を「機種選択プログラム」および「Work1.iup」で作成する際に、それぞれ「バージョン情報ABC」を付与しておく。
一方、別のユーザは、機種D、E、Fを検査対象とした「プログラム」を「機種選択プログラム」および「Work1.iup」で作成する際に、それぞれ「バージョン情報DEF」を付与しておく。
これにより、「Work1.iup」の取り扱いを間違えても、「Work1.iup」が呼び出される際に、「バージョン情報ABC」の「機種選択プログラム」から「バージョン情報DEF」の「Work1.iup」が呼び出されることをチェックすることができる。
このように、この発明の実施の形態12によれば、蓄積手段6に格納されているプログラムは、自身が動作するためのバージョン情報(動作アプリケーションバージョン情報)を含み、検査装置内のプログラム実行手段は、プログラムロード手段による蓄積手段6からの所定プログラムのロード時に、所定プログラムのバージョン情報とプログラム実行手段のバージョン情報(環境アプリケーションバージョン情報)とを比較して、両者の整合性を確認し、確認結果が不整合を示す場合には、エラーコードを出力するので、バージョン情報が間違っていることをユーザに警報することができる。
したがって、前述の作用効果に加えて、プログラムロード時のエラー処理を実行することにより、バージョン違いによる誤動作を防止することができる。
また、前述の実施の形態10、11ようにコンフィグレーション情報を比較するのではなく、プログラミング中にユーザが登録したアプリケーションバージョン情報(機種番号)が一致しているか否かに応じて、コンフィグレーション情報の判定を行うことも可能である。
実施の形態13.
なお、上記実施の形態12では、蓄積手段6からのプログラムロード時に、検査対象ごとに異なるアプリケーションバージョン情報の整合性をチェックしたが、蓄積手段6からのプログラムロード時に、プログラム実行手段のF/Wバージョン情報(アップグレードに関するバージョン情報)に対する整合性をチェックしてもよい。
以下、図面を参照しながら、F/Wバージョン情報の整合性チェック機能を設けたこの発明の実施の形態13について説明する。
図24はこの発明の実施の形態13に係るプログラム実行システムの要部を示すブロック図である。
図24において、前述と同様のものについては、前述と同一符号を付して、または符号の後に「H」を付して詳述を省略する。
この場合、蓄積手段6内の格納されているプログラム(コード化ファイル7b)は、自身が動作するための動作F/Wバージョン情報(以下、単に「F/Wバージョン情報」という)として、プログラム実行手段4Hの環境F/Wバージョン情報(以下、単に「F/Wバージョン情報」という)に対応したF/Wバージョン情報19を有している。
コード化ファイル7b内に付加されたF/Wバージョン情報19は、自身のコードを実行するに十分なF/W(プログラム実行手段4H)のバージョン情報を保持している。
また、検査装置1H内のプログラム実行手段4Hは、プログラムロード手段5Hによる蓄積手段6からの所定プログラムのロード時に、所定プログラムのF/Wバージョン情報19と、プログラム実行手段4Hの動作しているF/Wバージョン情報とを比較して、両者の整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力するようになっている。
次に、図24とともに図25のフローチャートを参照しながら、この発明の実施の形態13によるロード対象プログラム(プロジェクト)とプログラム実行手段4H(F/W)とのF/Wバージョン情報の整合性チェック動作について説明する。
図25において、ステップS10、S15、S17〜S19は、前述(図21〜図23参照)と同様の処理である。
まず、プログラム実行手段4Hは、蓄積手段6からプログラムのロードを開始し(ステップS10)、コード化ファイル7bのF/Wバージョン情報19と検査装置1HのF/Wバージョン情報とを比較して、F/Wバージョン情報19が検査装置1HのF/Wバージョン情報と同じか、またはそれ以下であるか否かを判定する(ステップS33)。
ステップS33において、F/Wバージョン情報19が検査装置1HのF/Wバージョン情報以下(すなわち、YES)と判定されれば、ロード対象プログラムのグレードがプログラム実行手段4Hのグレード以下であるため実行可能と見なし、コード化ファイル7bを読み込む(ステップS133)。
一方、ステップS33において、F/Wバージョン情報19が検査装置1HのF/Wバージョン情報よりも大きい(すなわち、YES)と判定されれば、ロード対象プログラムのグレードがプログラム実行手段4Hのグレードよりも高いため実行不可能と見なして、検査装置1H内のプログラム実行手段4H(F/W)が対応していないことを、表示/操作手段12の画面上に表示する(ステップS34)。
また、通信により他の装置に通知し(ステップS17)、検査装置1G内のデバイスにエラーコードを出力し(ステップS18)、検査装置1Gを停止させる(ステップS19)。
なお、前述の通り、「F/W」とは、検査装置1H内のプログラム実行手段4Hのことであり、検査対象によって変わることはない。
一般に、検査装置1H(コントローラ)をアップグレードする場合、プログラム実行手段4H自体がアップグレードすることになるので、プログラム実行手段4自体にもF/Wバージョン情報が付与される(つまり、「F/W」にバージョン情報が付与される)ことが望ましい。
すなわち、検査装置1Hには、プログラムを解釈して動作させるF/Wが実装されているが、プログラムロード時において新たに読み込むプログラムが、F/Wでサポートされていない機能を使用している可能性がある。
そこで、図25のように、プログラムのロード開始時に、プログラムの対応するF/Wバージョン情報19と検査装置1HのF/Wバージョン情報とを比較して、F/Wバージョン情報19が、検査装置1HのF/Wバージョン情報以下の場合には、プログラムの読み込みを行い、F/Wバージョン情報19が検査装置1HのF/Wバージョン情報よりも大きい場合にはエラー表示を行うことにより、プログラムで想定されている機能が使えなかった場合のプログラム不具合動作を未然に防ぐことができる。
たとえば、最新バージョンのF/Wで動作するように作成したプログラムは、古いバージョンのF/Wで動作させようとしても正しく動作しない可能性がある。
しかし、図24のように、プログラム実行手段4HにダウンロードされるプログラムがF/Wバージョン情報19を有していれば、ダウンロード対象となるプログラムがどのバージョンのF/Wで動作するよう作成されたのかを、プログラム実行手段4Hで事前に確認することができる。
このように、この発明の実施の形態13によれば、蓄積手段6に格納されているプログラムは、自身が動作するためのF/Wバージョン情報(動作F/Wバージョン情報)19を含み、プログラム実行手段4Hは、プログラムロード手段5Hによる蓄積手段6からの所定プログラムのロード時に、所定プログラムのF/Wバージョン情報19と、プログラム実行手段4Hの動作しているF/Wバージョン情報(環境F/Wバージョン情報)とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力するので、F/Wバージョン情報19が検査装置1Hで動作できないことをユーザに警報することができ、F/Wバージョン情報の違いによる誤動作を防止することができる。
実施の形態14.
なお、上記実施の形態1〜13では、プログラミングソフトウェアでのプログラム作成時におけるコンフィグレーション情報の反映について言及しなかったが、プログラミング作成時に外部(たとえば、検査装置)との間でコンフィグレーション情報の授受を実行してもよい。
図26はプログラミングソフトウェアにコンフィグレーション情報の授受機能を設けたこの発明の実施の形態14に係るプログラム実行システムのプログラム作成部を示すブロック図である。
図26において、プログラミングソフトウェア9は、コンフィグレーション情報17が設定されるプログラム10と、外部に対してコンフィグレーション情報17の授受を行うためのエクスポート手段20およびインポート手段21を備えている。
なお、ここでは、プログラミングソフトウェア9、プログラム10、コンフィグレーション情報17については、特に限定されない対象であることを示すために、総称的に数字のみを付している。
また、たとえば検査装置内のプログラム実行手段(図示せず)は、プログラミングソフトウェア9からのエクスポート処理により、コンフィグレーション情報17を保存し、検査装置内のメモリ領域にロードされるプログラム10に対して、コンフィグレーション情報17を反映させるようになっている。
コンフィグレーション情報17のエクスポート手段20は、具体的には、プログラム10に関連する検査装置のH/W構成やデバイスの設定を抽出する手段である。
また、コンフィグレーション情報17のインポート手段21は、具体的には、既に保存されたH/W構成やデバイスの設定をプログラム10に反映させるための手段である。
なお、ここでは図示を省略するが、この発明の実施の形態14によるプログラミングシステムは、前述(図1〜図4参照)のように、プログラム実行システム4により実行されるプログラム10(少なくとも、プログラム10bを含む)を作成するためのプログラム作成部(パソコン8内のプログラミングソフトウェア9、9a、9b)を備えている。
また、プログラム生成手段は、コード化されたプログラム10をコード化ファイルとして生成するコード化ファイル生成手段(11または11b)を含み、プログラム10におけるプログラム呼び出し命令に応答して呼び出される別のプログラムを、別途コード化してコード化ファイルとして生成する。
また、プログラミングソフトウェア9内のコード化ファイル生成手段は、コンフィグレーション情報17を外部へ書き出すエクスポート手段20と、外部へ書き出されたコンフィグレーション情報17を読み込むインポート手段21とを含み、プログラム10からの呼び出し命令に応答して呼び出される別のプログラムを作成する際に、プログラム10を作成した際のコンフィグレーション情報を、別のプログラムを作成する際に流用するようになっている。
図27はプログラミングソフトウェア9から検査装置へのコンフィグレーション情報17のエクスポート処理を示すフローチャートであり、図28はプログラミングソフトウェア9へのコンフィグレーション情報17のインポート処理を示すフローチャートである。
以下、図26および図27を参照しながら、この発明の実施の形態14によるプログラミングソフトウェア9でのコンフィグレーション情報17のエクスポート処理動作について説明する。
図27において、まず、プログラミングソフトウェア9上でプログラム10を作成し(ステップS35)、エクスポート手段20を介して、プログラミングソフトウェア9上でコンフィグレーション情報17のエクスポートを実行する(ステップS36)。
最後に、コンフィグレーション情報17をファイルとして保存し(ステップS37)、図27のエクスポート処理を終了する。
次に、図26および図28を参照しながら、この発明の実施の形態14によるコンフィグレーション情報17のインポート処理動作について説明する。
図28において、まず、プログラミングソフトウェア9上でプログラムを作成し(ステップS35)、インポート手段21を介して、プログラミングソフトウェア9上でコンフィグレーション情報17のインポートを実行する(ステップS38)。
次に、既にコンフィグレーション情報17を作成しているか否かを判定し(ステップS39)、コンフィグレーション情報17を作成していない(すなわち、NO)と判定されれば、コンフィグレーション情報17をプログラム10に反映させる(ステップS40) 一方、ステップS39において、既にコンフィグレーション情報17を作成している(すなわち、YES)と判定されれば、続いて、コンフィグレーション情報17を上書きするか否かを判定する(ステップS41)。
ステップS41において、コンフィグレーション情報17を上書きする(すなわち、YES)と判定されれば、コンフィグレーション情報17を上書きしてプログラム10に反映させる(ステップS40)。
一方、ステップS41において、コンフィグレーション情報17を上書きしない(すなわち、NO)と判定されれば、コンフィグレーション情報17の一部を選択して、エクスポート手段20を介してエクスポートを実行した後(ステップS42)、コンフィグレーション情報17をプログラム10に反映させる(ステップS40)。
一般に、増設ボードを使用するように記述されたプログラム10においては、プログラム10が動作する検査装置内に使用対象の増設ボードが挿入されていないと、プログラム10が検査装置内で正常に動作することができない。
また、プログラム10のロード時においても、ロードされたプログラム10のコンフィグレーション情報と検査装置のコンフィグレーション情報とが異なる場合には、プログラム10は正常に動作しない。
したがって、1つのプログラムAからプログラムロードを使用してロードされたプログラムBには、プログラムAと同じコンフィグレーション情報が設定される必要がある。
この発明の実施の形態14によれば、コンフィグレーション情報17のエクスポート/インポート処理により、コンフィグレーション情報17を1元管理することができる。
また、コンフィグレーション情報17の共有化が可能になるとともに、プログラミング時のミスを防止することもできる。
次に、この発明の実施の形態14による効果について、具体例をあげて補足説明する。
まず、検査装置の第1のH/W構成として、スロット「0」に「RS232Cボード」が挿入され、スロット「1」に「デジタル入出力ボード」が挿入されたものを考える。
また、検査装置の第2のH/W構成として、スロット「0」に「アナログ出力ボード」が挿入されたものを考える。
上記各構成例に対し、第1のH/W構成で動作するプログラムAと、第2のH/W構成で動作するプログラムBとを作成する。
ここで、第1のH/W構成の検査装置において、プログラムAからのプログラムロードにより、プログラムBをロードして実行しようとした場合を想定する。
このとき、プログラムBは、スロット「0」に「アナログボード」が挿入されていることを前提にプログラムされているにもかかわらず、検査装置のスロット「0」には、「RS232Cボード」が挿入されているので、プログラムBが正常に動作することはできない。
検査装置の増設ボードの構成を変更せずに、検査装置上でプログラムA、Bを動作させるためには、第3のH/W構成として、スロット「0」に「RS232Cボード」が挿入され、スロット「1」に「デジタル入出力ボード」が挿入され、スロット「3」に「アナログボード」が挿入されたものを考え、このコンフィグレーション情報によりプログラムA、Bが作成されていなければならない。
この発明の実施の形態14によれば、プログラムAが動作している検査装置にプログラムBを追加する場合に、上記第3のH/W構成のコンフィグレーション情報を作成することにより、プログラムBを開発するときに既に作成されたコンフィグレーション情報を活用することができる。
これにより、前述の作用効果に加えて、コンフィグレーション情報を共有化して、コンフィグレーション情報を1元管理するとともに、プログラミング時のミスを防止することができる。
実施の形態15.
なお、上記実施の形態14では、保存されたコンフィグレーション情報を必要に応じてプログラムに反映させたが、リンクによりコンフィグレーション情報を1元管理してもよい。
図29はこの発明の実施の形態15に係るプログラム実行システムのプログラム作成部を示すブロック図である。
図29において、プログラミングソフトウェア9Aは、コンフィグレーション情報が設定されるプログラム10Aと、コンフィグレーション情報リンク手段22とを備えている。
コンフィグレーション情報リンク手段22は、具体的には、コンフィグレーション情報を参照するための参照先ファイルを設定する手段であり、参照先ファイルを設定して、コンフィグレーション情報を外部のプログラム10Bとの間でリンクさせる。
なお、この発明の実施の形態15によるプログラミングシステムも、前述(図1〜図4参照)と同様の構成を有しており、プログラミングソフトウェア9A内のコード化ファイル生成手段(11または11b)は、外部のコンフィグレーション情報を参照するリンク手段22を含む。
コード化ファイル生成手段は、プログラム10Aからの呼び出し命令に応答して呼び出されるプログラム10Bを作成する際に、プログラム10Aを作成した際のコンフィグレーション情報を、プログラム10Bを作成する際に流用するようになっている。
次に、図29とともに、図30のフローチャートを参照しながら、この発明の実施の形態15によるコンフィグレーション情報のリンク処理動作について説明する。
図30において、ステップS35は前述(図27参照)と同様の処理である。
まず、プログラミングソフトウェア9A上で、プログラム10Aを作成する(ステップS35)。なお、この場合、ステップS35において、コンフィグレーション情報を設定する必要はない。
続いて、プログラミングソフトウェア9A上で、コンフィグレーション情報の参照先ファイルを設定する(ステップS43)。
前述の実施の形態14(図26〜図28参照)では、コンフィグレーション情報17に変更があった場合、1つのプログラム10を修正し、コンフィグレーション情報17のエクスポート処理を実行し、そのコンフィグレーション情報17をインポートしたプログラム10のすべてに対して、再度、コンフィグレーション情報17のインポート処理を実行しなければならなかった。
しかし、この発明の実施の形態15では、リンク先のプログラム10Bのコンフィグレーション情報のみを変更することで、参照しているすべてのプログラム10Bにコンフィグレーション情報の変更を適用することができる。
したがって、コンフィグレーション情報の変更を忘れることによる不具合を回避するとともに、リンクを用いた1元管理により、コンフィグレーション情報を変更することができ、利便性を高めることができる。
次に、この発明の実施の形態15による効果について、具体例をあげて補足説明する。
まず、プログラムAのH/W構成として、スロット「0」に「RS232Cボード」が挿入され、スロット「1」に「デジタル入出力ボード」が挿入されているものとする。
また、プログラムAにリンクされるプログラムBのH/W構成として、スロット「2」に「アナログ出力ボード」が挿入されているものとする。
この発明の実施の形態15によれば、プログラムAに対応する検査装置のH/W構成として、スロット「0」に「RS232Cボード」が挿入され、スロット「1」に「デジタル入出力ボード」が挿入されるとともに、スロット「2」に「アナログ出力ボード」が挿入される。
また、上記プログラムA、Bを作成する場合に、プログラムAの第1のH/W構成には、使用しないスロット「2」の記述を入れておき、プログラムBでは、特にH/W構成を記述せず、第1のH/W構成をリンクしておき、第1のH/W構成を使用したプログラムBを作成していく。
以上のように、この発明の実施の形態15によれば、リンクによりコンフィグレーション情報を1元管理することができる。
実施の形態16.
なお、上記実施の形態14、15では、特に言及しなかったが、プログラム(プロジェクト)の呼び出し関係を自動的に解析するように構成してもよい。
図31はプログラム解析機能を設けたこの発明の実施の形態16に係るプログラム作成部の要部を示すブロック図である。
図31において、たとえばプログラム作成部(前述のパソコン8、またはプログラミングソフトウェア9、9A)は、プログラム解析手段23を備えており、プログラム解析手段23は、解析結果表示手段24を有している。
プログラム解析手段23には、コード化ファイル7またはプログラム10が読み込まれる。
なお、ここでは、コード化ファイル7およびプログラム10については、特に限定されない対象であることを示すために、総称的に数字のみを付している。
プログラム解析手段23は、具体的には、プログラム10を解析してプログラムロードの呼び出し関係を取得する手段である。
解析結果表示手段24は、具体的には、プログラム10を解析して得られたプログラムロードの呼び出し関係を表示する手段である。
すなわち、プログラム解析手段23は、呼び出し命令に応答して呼び出されるプログラム10の呼び出し関係を解析し、解析結果表示手段24は、プログラム解析手段23により得られたプログラムの呼び出し関係の解析結果を表示し、これにより、プログラム作成部により作成されたプログラム10またはコード化ファイル7を、1つ以上読み込んで解析するようになっている。
次に、図31とともに、図32のフローチャートを参照しながら、この発明の実施の形態16によるプログラム10の解析処理について説明する。
図32において、まず、プログラム解析手段23は、プログラム10を解析し(ステップS44)、続いて、解析結果表示手段24は、解析しているプログラム10から呼び出されているプログラム名を表示する(ステップS45)。
なお、ここでは、説明を省略するが、コード化ファイル7の解析処理も同様の手順で実行される。
たとえば、前述(図3参照)のプログラム(機種選択プログラム)10aにおいては、DS0デバイスの値により、「work1.iup」、「work2.iup」、「work3.iup」、「work4.iup」、「work5.iup」を呼び出すことができるが、このままでは、選択内容(何が呼び出されているのか)をユーザが認識するためには、プログラム10a中を具体的に読み出して見なければならない。
つまり、上記のようなプログラム10aの呼び出し関係を確認するためには、たとえばプログラム10aをプログラミングソフトウェア9、9aで開いて、内容を確認する必要がある。また、プログラミングソフトウェア9、9aでは、コード化ファイルを開いて内容を確認することはできない。
したがって、作成したプログラム数が増加するにつれ、各プログラムの呼び出し関係を把握することは非常に困難となる。
しかし、この発明の実施の形態16によれば、図3の機種選択プログラム10aで呼び出されるプログラム(work1.iup、work2.iup、work3.iup、work4.iup、work5.iup)が解析結果表示手段24上に自動的に表示されるので、ユーザが解析結果を一覧することができる。
したがって、プログラム10の依存関係の解析が容易となるとともに、コード化ファイル7からも依存関係を確認することができる。
以上のように、この発明の実施の形態16によれば、前述の作用効果に加えて、プログラム10の呼び出し関係を容易に取得することができる。
実施の形態17.
なお、上記実施の形態14〜16では、特に言及しなかったが、プログラム(プロジェクト)の依存関係を自動的に管理するように構成してもよい。
図33はプログラム管理機能を設けたこの発明の実施の形態17に係るプログラム作成部の要部を示すブロック図である。
図33において、プログラム作成部は、管理ツールとして、プログラム管理手段25を備えており、プログラム管理手段25は、依存関係表示手段26を有している。
プログラム管理手段25には、複数のプログラム10(または、複数のコード化ファイル7)が読み込まれる。
プログラム管理手段25は、具体的には、複数のプログラム10やコード化ファイル7を管理する手段である。
依存関係表示手段26は、具体的には、プログラム管理手段25に登録されたプログラム10やコード化ファイル7の依存関係を表示する手段である。
すなわち、プログラム管理手段25は、プログラム10またはコード化ファイル7をアプリケーションごとに登録して管理し、依存関係表示手段26は、登録されたプログラム10またはコード化ファイル7をアプリケーションごとに表示し、これにより、プログラム作成部により作成されたプログラム10またはコード化ファイル7を1つ以上管理するようになっている。
次に、図33とともに、図34のフローチャートを参照しながら、この発明の実施の形態17によるプログラム(プロジェクト)の管理処理について説明する。
図34において、まず、プログラム管理手段25にプログラム10およびコード化ファイル7を登録する(ステップS46)。
このとき、プログラム管理手段25には、複数のプログラム10および複数のコード化ファイル7を登録してもよい。
続いて、依存関係表示手段26上に、プログラム管理手段25の呼び出し関係を表示するとともに(ステップS47)、登録したプログラム10およびコード化ファイル7に関する呼び出し関係を表示する(ステップS48)。
一般に、作成したプログラム10の数が増加するにつれ、各プログラム10の呼び出し関係を把握することは極めて困難となる。
前述の実施の形態16においては、1つ1つのプログラム10またはコード化ファイル7に対して、解析結果として呼び出し関係を表示したが、この発明の実施の形態17によれば、最初に調べたい複数のプログラム10およびコード化ファイル7を登録することにより、全体の依存関係が表示されるので全体の解析が容易となる。
これにより、検査装置内で動作しているプログラム10のすべてについて、プログラム10の呼び出し関係を容易に取得して調査することが容易となり、調査もれを防止することができる。
実施の形態18.
なお、上記実施の形態17では、コンフィグレーション情報の変更について考慮しなかったが、プログラム管理手段25(図33参照)で管理されている場合に、コンフィグレーション情報の修正を行うと、すべての関連するプログラム10が自動的にアップデートされるようにしてもよい。
以下、図33を参照しながら、自動的なプログラムアップデート機能を設けたこの発明の実施の形態18について説明する。
この発明の実施の形態18によるプログラム作成部は、コンフィグレーション一括更新手段(図示せず)をさらに備えており、アプリケーションごとに登録されているすべてのプログラム10やコード化ファイル7に対して、コンフィグレーション情報を一括して更新するようになっている。
ここでが、具体例として、プログラム10のH/W構成が、第1の構成(スロット「0」に「RS232Cボード」が挿入され、スロット「1」に「デジタル入出力ボード」が挿入された状態)から、第2の構成(スロット「3」に「アナログボード」が挿入された状態)に追加された場合を考える。
すなわち、既に工場などで稼動している検査装置において、新しい機種を検査するために、追加で増設ボードを使用したプログラムを作成した場合、これまで稼動していたプログラムAのままでは、追加の増設ボードについての記述がないので、これまで稼動していたプログラムAのコンフィグレーション情報が、追加で増設ボードを使用した検査装置のコンフィグレーション情報とは異なってしまう。
しかし、この発明の実施の形態18によれば、コンフィグレーション一括更新手段を設けたので、プログラム管理手段25で管理されている場合に、コンフィグレーション情報の修正が行われると、すべての関連するプログラム10が自動的にアップデートされることになり、プログラム10の呼び出し関係を容易に取得することのみならず、容易にコンフィグレーション情報を共有化することができる。
実施の形態19.
なお、上記実施の形態16(図31参照)では、前述の実施の形態14、15のプログラム作成部にプログラム解析手段23を設けた場合について説明したが、プログラム解析手段23を備えたプログラム解析システムを構成してもよい。
すなわち、この発明の実施の形態19に係るプログラム解析システムは、プログラム作成部(プログラミングシステム)により作成されたプログラム10またはコード化ファイル7(図31参照)を1つ以上読み込んで解析するために、呼び出し命令に応答して呼び出されるプログラム10の呼び出し関係を解析するプログラム解析手段22と、プログラム解析手段22により得られたプログラムの呼び出し関係の解析結果を表示する解析結果表示手段24とを備えている。
これにより、上記実施の形態16と同様の作用効果を奏するプログラム解析システムを実現することができる。
実施の形態20.
なお、上記実施の形態17(図33参照)では、前述の実施の形態14〜16のプログラム作成部にプログラム管理手段25を設けた場合について説明したが、プログラム管理手段25を備えたプログラム解析システムを構成してもよい。
すなわち、この発明の実施の形態19に係るプログラム解析システムは、プログラム作成部(プログラミングシステム)により作成されたプログラム10またはコード化ファイル7(図33参照)を1つ以上管理するために、プログラム10またはコード化ファイル7をアプリケーションごとに登録して管理するプログラム管理手段25と、登録されたプログラム10またはコード化ファイル7の依存関係をアプリケーションごとに表示する依存関係表示手段26とを備えている。
これにより、上記実施の形態17と同様の作用効果を奏するプログラム解析システムを実現することができる。
実施の形態21.
また、上記実施の形態20に係るプログラム解析システムに対して、さらにコンフィグレーション一括更新手段を設け、アプリケーションごとに登録されているすべてのプログラム10やコード化ファイル7に対して、コンフィグレーション情報を一括して更新するようにしてもよい。
これにより、上記実施の形態18と同様の作用効果を奏するプログラム解析システムを実現することができる。
実施の形態22.
なお、上記実施の形態1〜13(図1〜図25参照)では、蓄積手段6およびプログラム実行手段4(または、1A〜1H)を備えたプログラム実行システムについて説明したが、上記実施の形態1〜13に係るプログラム実行システムを備えた検査装置を構成してもよい。
これにより、上記実施の形態1〜13と同様の作用効果を奏する検査装置を実現することができる。
実施の形態23.
また、上記実施の形態14〜18に係るプログラミングシステムを備えた検査装置用プログラム作成システムを構成してもよい。
これにより、上記実施の形態14〜18と同様の作用効果を奏する検査装置用プログラム作成システムを実現することができる。
実施の形態24.
さらに、上記実施の形態1〜14に係るプログラム実行システムと、上記実施の形態15〜18に係るプログラミングシステムとを備えた検査装置用プログラム作成システムを構成してもよい。
これにより、上記実施の形態1〜18と同様の作用効果を奏する検査装置システムを実現することができる。
この発明の実施の形態1に係るプログラム実行システムを示すブロック図である。 この発明の実施の形態1に係るプログラム実行システムを示すブロック図である。 この発明の実施の形態1に係る機種選択プログラムを図式的に示す説明図である。 この発明の実施の形態1に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態2に係るプログラム実行システムを示すブロック図である。 この発明の実施の形態2に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態3に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態3に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態4に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態4に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態5に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態6に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態6に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態7に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態7に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態8に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態8に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態9に係るプログラム処理動作を示すフローチャートである。 この発明の実施の形態10に係るプログラム実行システムを示すブロック図である。 この発明の実施の形態10に係るコンフィグレーション情報を図式的に示すブロック図である。 この発明の実施の形態10によるコンフィグレーション情報の整合性チェック処理動作を示すフローチャートである。 この発明の実施の形態11によるコンフィグレーション情報の整合性チェック処理動作を示すフローチャートである。 この発明の実施の形態12によるバージョン情報の整合性チェック処理動作を示すフローチャートである。 この発明の実施の形態13に係るプログラム実行システムを示すブロック図である。 この発明の実施の形態13によるF/Wバージョン情報の整合性チェック処理動作を示すフローチャートである。 この発明の実施の形態14に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態14に係るコンフィグレーション情報のエクスポート処理を示すフローチャートである。 この発明の実施の形態14に係るコンフィグレーション情報のインポート処理を示すフローチャートである。 この発明の実施の形態15に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態15に係るコンフィグレーション情報のリンク処理を示すフローチャートである。 この発明の実施の形態16に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態16に係るプログラム解析処理を示すフローチャートである。 この発明の実施の形態17に係るプログラム実行システムの要部を示すブロック図である。 この発明の実施の形態17に係るプログラム管理処理を示すフローチャートである。
符号の説明
1、1A、1B、1C、1D、1E、1F、1G、1H 検査装置、2 コード保持手段、3 メモリ領域、4、4A、4B、4C、4D、4E、4F、4G、4H プログラム実行手段、5、5A、5B、5C、5D、5E、5G、5H プログラムロード手段、5F プログラムアップロード手段、6、6D 蓄積手段、7、7a、7b、7b’、7B’’、7c コード化ファイル、9、9a、9b、9A プログラミングソフトウエア、10、10a、10b、10A、10B プログラム、12 表示/操作手段、13 プログラム実行単位を、14 デバイス初期化情報、15 プログラムロード履歴保存手段、16 コンフィグレーション整合性チェック手段、17、17a、17b、17c コンフィグレーション情報、19 F/Wバージョン情報、20 エクスポート手段、21 インポート手段、22 リンク手段、23 プログラム解析手段、24 解析結果表示手段、25 プログラム管理手段、26 依存関係表示手段。

Claims (26)

  1. コード化された第1のプログラムを保持するコード保持手段と、
    前記コード保持手段に保持されている第1のプログラムが展開されるメモリ領域と、
    前記メモリ領域に展開された第1のプログラムを実行するプログラム実行手段と
    を備えたプログラム実行システムにおいて、
    コード化された第2のプログラムをコード化ファイルとして格納する蓄積手段をさらに備え、
    前記プログラム実行手段は、前記蓄積手段にコード化ファイルとして格納されている前記第2のプログラムを前記メモリ領域にロードするためのプログラムロード手段を含み、
    前記プログラム実行手段は、前記メモリ領域に展開された前記第1のプログラムを実行している動作中に、前記蓄積手段内の前記第2のプログラムに対する呼び出し命令に応答して、前記蓄積手段内の前記第2のプログラムを前記メモリ領域にロードして、前記第2のプログラムを実行することを特徴とするプログラム実行システム。
  2. 前記蓄積手段は、ハードディスクまたはメモリカードにより構成されたことを特徴とする請求項1に記載のプログラム実行システム。
  3. 前記蓄積手段は、前記第2のプログラムに加えて、前記第1のプログラムまたは第3のプログラムをコード化ファイルとして格納しており、
    前記プログラム実行手段は、
    前記メモリ領域に展開された前記第1のプログラムを実行している動作中に、前記コード保持手段内の前記第1のプログラムまたは前記蓄積手段内の前記第1または第3のプログラムに対する呼び出し命令に応答して、前記コード保持手段内の前記第1のプログラムまたは前記蓄積手段内の前記第1または第3のプログラムを前記メモリ領域にロードして、前記第2のプログラムを実行し、
    前記第2のプログラムを実行している動作中に、前記蓄積手段内の前記第1または第3のプログラムに対する呼び出し命令に応答して、前記蓄積手段内の前記第1または第3のプログラムを前記メモリ領域にロードして、前記第1または第3のプログラムを実行することを特徴とする請求項1または請求項2に記載のプログラム実行システム。
  4. 前記プログラム実行手段は、
    前記メモリ領域に展開されたプログラムを実行している動作中に、前記蓄積手段にコード化ファイルとして格納されているプログラム中の該当する実行部分に対する呼び出し命令に応答して、前記蓄積手段に格納されたプログラムの中から前記該当する実行部分に対応するプログラム実行単位を前記メモリ領域にロードして、前記プログラム実行単位を実行することを特徴とする請求項1から請求項3までのいずれか1項に記載のプログラム実行システム。
  5. 前記第2のプログラムは、前記プログラム実行システムに対する初期化情報を含み、
    前記プログラムロード手段は、前記蓄積手段からの前記第2のプログラムのロード時に、前記初期化情報に基づいて、初期化を実行することを特徴とする請求項1から請求項4までのいずれか1項に記載のプログラム実行システム。
  6. 前記プログラム実行手段は、
    前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムが前記蓄積手段に存在するか否かを確認し、
    呼び出し命令に応答する前記所定プログラムが前記蓄積手段内に存在しない場合には、エラー処理を実行することを特徴とする請求項1から請求項5までのいずれか1項に記載のプログラム実行システム。
  7. 所定プログラムに対する呼び出し命令を用いたプログラムは、前記呼び出し命令に応答する前記所定プログラムが格納されている前記蓄積手段に関する読込先情報を含み、
    前記プログラム実行手段は、前記読込先情報に応じて、前記所定プログラムの読込先を個別に変更することを特徴とする請求項1から請求項6までのいずれか1項に記載のプログラム実行システム。
  8. 前記プログラム実行手段は、プログラムロード履歴保存手段を含み、
    前記プログラムロード履歴保存手段は、前記蓄積手段内の所定プログラムに対する呼び出し命令に応答して、前記プログラム実行手段が前記蓄積手段内の前記所定プログラムを前記メモリ領域にロードして実行する際に、前記所定プログラムがロードされたことを履歴として保存することを特徴とする請求項1から請求項7までのいずれか1項に記載のプログラム実行システム。
  9. 前記プログラム実行手段は、プログラムアップロード手段を含み、
    前記プログラムアップロード手段は、前記プログラム実行手段が実行中のプログラムを、前記蓄積手段にアップロードすることを特徴とする請求項1から請求項8までのいずれか1項に記載のプログラム実行システム。
  10. 前記プログラム実行手段は、
    前記プログラムアップロード手段による前記蓄積手段へのプログラムアップロード時に、前記蓄積手段にアップロードされる前記プログラムに対してアプリケーションバージョン情報を付加することを特徴とする請求項9に記載のプログラム実行システム。
  11. 前記蓄積手段に格納されているプログラムは、自身が動作するための動作コンフィグレーション情報を含み、
    前記プログラム実行手段は、コンフィグレーション整合性チェック手段を含み、
    前記コンフィグレーション整合性チェック手段は、前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムの動作コンフィグレーション情報と、前記プログラム実行手段の動作している環境コンフィグレーション情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラー処理を実行することを特徴とする請求項1から請求項10までのいずれか1項に記載のプログラム実行システム。
  12. 前記コンフィグレーション整合性チェック手段は、
    前記動作コンフィグレーション情報と前記環境コンフィグレーション情報との整合性確認時に、前記環境コンフィグレーション情報が、前記所定プログラムが動作するために十分であるか否かを判定し、
    前記環境コンフィグレーション情報が、前記所定プログラムが動作するために不十分である場合には、エラー処理を実行することを特徴とする請求項11に記載のプログラム実行システム。
  13. 前記蓄積手段に格納されているプログラムは、自身が動作するための動作アプリケーションバージョン情報を含み、
    前記プログラム実行手段は、前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムの動作アプリケーションバージョン情報と前記プログラム実行手段の環境アプリケーションバージョン情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラー処理を実行することを特徴とする請求項1から請求項12までのいずれか1項に記載のプログラム実行システム。
  14. 前記蓄積手段に格納されているプログラムは、自身が動作するための動作F/Wバージョン情報を含み、
    前記プログラム実行手段は、前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムの動作F/Wバージョン情報と、前記プログラム実行手段の動作している環境F/Wバージョン情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラー処理を実行することを特徴とする請求項1から請求項13までのいずれか1項に記載のプログラム実行システム。
  15. 請求項1から請求項14までのいずれか1項に記載のプログラム実行システムにより実行される少なくとも前記第2のプログラムを作成するためのプログラム作成手段を備えたプログラミングシステムであって、
    前記プログラム生成手段は、コード化された前記第2のプログラムをコード化ファイルとして生成するコード化ファイル生成手段を含み、
    前記第1のプログラムにおけるプログラムに対する呼び出し命令に応答して呼び出される前記第2のプログラムを、別途コード化して前記コード化ファイルとして生成することを特徴とするプログラミングシステム。
  16. 前記コード化ファイル生成手段は、
    コンフィグレーション情報を外部へ書き出すエクスポート手段と、
    外部へ書き出されたコンフィグレーション情報を読み込むインポート手段とを含み、
    前記第1のプログラムからの呼び出し命令に応答して呼び出される前記第2のプログラムを作成する際に、前記第1のプログラムを作成した際のコンフィグレーション情報を、前記第2のプログラムを作成する際に流用することを特徴とする請求項15に記載のプログラミングシステム。
  17. 前記コード化ファイル生成手段は、外部のコンフィグレーション情報を参照するリンク手段を含み、
    前記第1のプログラムからの呼び出し命令に応答して呼び出される前記第2のプログラムを作成する際に、前記第1のプログラムを作成した際のコンフィグレーション情報を、第2のプログラムを作成する際に流用することを特徴とする請求項15に記載のプログラミングシステム。
  18. 前記プログラム作成手段により作成されたプログラムまたはコード化ファイルを、1つ以上読み込んで解析するために、
    呼び出し命令に応答して呼び出されるプログラムの呼び出し関係を解析するプログラム解析手段と、
    前記プログラム解析手段により得られたプログラムの呼び出し関係の解析結果を表示する解析結果表示手段と
    をさらに備えたことを特徴とする請求項15から請求項17までのいずれか1項に記載のプログラミングシステム。
  19. 前記プログラム作成手段により作成されたプログラムまたはコード化ファイルを、1つ以上管理するために、
    前記プログラムまたは前記コード化ファイルをアプリケーションごとに登録して管理するプログラム管理手段と、
    前記プログラム管理手段に登録されたプログラムまたはコード化ファイルの依存関係をアプリケーションごとに表示する依存関係表示手段と、
    をさらに備えたことを特徴とする請求項15から請求項18までのいずれか1項に記載のプログラミングシステム。
  20. 前記アプリケーションごとに登録されているすべてのプログラムやコード化ファイルに対して、コンフィグレーション情報を一括して更新するためのコンフィグレーション一括更新手段をさらに備えたことを特徴とする請求項19に記載のプログラミングシステム。
  21. 請求項15から請求項17までのいずれか1項に記載のプログラミングシステムにより作成されたプログラムまたはコード化ファイルを、1つ以上読み込んで解析するためのプログラム解析システムであって、
    呼び出し命令に応答して呼び出されるプログラムの呼び出し関係を解析するプログラム解析手段と、
    前記プログラム解析手段により得られた前記プログラムの呼び出し関係の解析結果を表示する解析結果表示手段と
    を備えたことを特徴とするプログラム解析システム。
  22. 請求項15から請求項17までのいずれか1項に記載のプログラミングシステムにより作成されたプログラムまたはコード化ファイルを、1つ以上管理するプログラム管理システムであって、
    前記プログラムまたは前記コード化ファイルをアプリケーションごとに登録して管理するプログラム管理手段と、
    前記プログラム管理手段に登録されたプログラムまたはコード化ファイルの依存関係をアプリケーションごとに表示する依存関係表示手段と
    を備えたことを特徴とするプログラム管理システム。
  23. 前記アプリケーションごとに登録されているすべてのプログラムやコード化ファイルに対して、コンフィグレーション情報を一括して更新するコンフィグレーション一括更新手段、
    を備えたことを特徴とする請求項22に記載のプログラム管理システム、
  24. 請求項1から請求項14までのいずれか1項に記載のプログラム実行システムを備えたことを特徴とする検査装置。
  25. 請求項15から請求項20までのいずれか1項に記載のプログラミングシステムを備えた検査装置用プログラム作成システム。
  26. 請求項1から請求項14までのいずれか1項に記載のプログラム実行システムと、請求項15から請求項20までのいずれか1項に記載のプログラミングシステムとにより構成されたことを特徴とする検査装置システム。
JP2005180777A 2005-06-21 2005-06-21 プログラム実行システムを備えた検査装置およびプログラミングシステム Expired - Fee Related JP4110557B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005180777A JP4110557B2 (ja) 2005-06-21 2005-06-21 プログラム実行システムを備えた検査装置およびプログラミングシステム
TW094129457A TWI277867B (en) 2005-06-21 2005-08-29 Program executing system, programming system for program executing system, program analyzing and administration systems, examination device having program executing system , program constructing system for examination device and examination device system
KR1020050089156A KR100787323B1 (ko) 2005-06-21 2005-09-26 프로그램 실행 시스템
CNB2005101361489A CN100485618C (zh) 2005-06-21 2005-12-19 程序执行系统及其用的编程、分析和管理系统及检查装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005180777A JP4110557B2 (ja) 2005-06-21 2005-06-21 プログラム実行システムを備えた検査装置およびプログラミングシステム

Publications (2)

Publication Number Publication Date
JP2007004273A true JP2007004273A (ja) 2007-01-11
JP4110557B2 JP4110557B2 (ja) 2008-07-02

Family

ID=37583424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005180777A Expired - Fee Related JP4110557B2 (ja) 2005-06-21 2005-06-21 プログラム実行システムを備えた検査装置およびプログラミングシステム

Country Status (4)

Country Link
JP (1) JP4110557B2 (ja)
KR (1) KR100787323B1 (ja)
CN (1) CN100485618C (ja)
TW (1) TWI277867B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722410A (zh) * 2012-05-25 2012-10-10 华为终端有限公司 执行程序的方法、服务器、移动终端及系统
JP2018528531A (ja) * 2015-08-04 2018-09-27 ハネウェル・インターナショナル・インコーポレーテッドHoneywell International Inc. Sdカードベースのrtu
JP2020144594A (ja) * 2019-03-06 2020-09-10 オムロン株式会社 制御装置およびソフトウェアのデプロイ方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043677B (zh) * 2009-10-22 2013-01-16 系微股份有限公司 双操作系统平行处理的方法
TW201441932A (zh) * 2013-04-19 2014-11-01 Nuvoton Technology Corp 處理裝置與系統程式更新方法
KR20160075629A (ko) * 2013-10-31 2016-06-29 미쓰비시덴키 가부시키가이샤 프로그램 작성 장치, 프로그램 작성 방법 및 프로그램

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065046A (en) * 1997-07-29 2000-05-16 Catharon Productions, Inc. Computerized system and associated method of optimally controlled storage and transfer of computer programs on a computer network
US6401198B1 (en) * 1999-03-09 2002-06-04 Texas Instruments Incorporated Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722410A (zh) * 2012-05-25 2012-10-10 华为终端有限公司 执行程序的方法、服务器、移动终端及系统
US9389880B2 (en) 2012-05-25 2016-07-12 Huawei Device Co., Ltd. Method, server, mobile terminal and system for program execution
JP2018528531A (ja) * 2015-08-04 2018-09-27 ハネウェル・インターナショナル・インコーポレーテッドHoneywell International Inc. Sdカードベースのrtu
JP7001581B2 (ja) 2015-08-04 2022-01-19 ハネウェル・インターナショナル・インコーポレーテッド 遠隔端末ユニットを動作させるための方法及びシステム
JP2020144594A (ja) * 2019-03-06 2020-09-10 オムロン株式会社 制御装置およびソフトウェアのデプロイ方法
US11907735B2 (en) 2019-03-06 2024-02-20 Omron Corporation Control device and method for deployment of software

Also Published As

Publication number Publication date
JP4110557B2 (ja) 2008-07-02
KR100787323B1 (ko) 2007-12-21
TW200700986A (en) 2007-01-01
KR20060133873A (ko) 2006-12-27
CN100485618C (zh) 2009-05-06
CN1885263A (zh) 2006-12-27
TWI277867B (en) 2007-04-01

Similar Documents

Publication Publication Date Title
US10705500B2 (en) Support device, method, and recording medium for simplifying control program changing operation
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
US7831320B2 (en) Parameter setting device
JP4110557B2 (ja) プログラム実行システムを備えた検査装置およびプログラミングシステム
US20100312541A1 (en) Program test device and program
JP2017142794A (ja) プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム
JP2008276690A (ja) 開発システム、開発システムのサーバ、開発方法
JP2008293138A (ja) ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
JP4426492B2 (ja) プログラマブル・ターミナル・システム
CN115917500A (zh) 更新管理程序、信息处理装置及更新管理方法
JP6442131B2 (ja) 制御システムおよび制御装置
RU2294015C2 (ru) Способ автоматического моделирования системы управления процессом и система управления процессом
CN113094251A (zh) 嵌入式系统测试方法、装置、计算机设备和存储介质
CN107902507B (zh) 控制软件现场调试系统以及调试方法
CN117873556A (zh) 面向芯片验证的版本管理方法、系统、装置、设备、介质
KR20220132248A (ko) Plc 프로그램의 지원 방법, 장치 및 서버
KR101010489B1 (ko) 프로그램 실행 시스템을 위한 프로그래밍 시스템 및검사장치용 프로그램 작성 시스템
JP2007179112A5 (ja)
CN109019217B (zh) 一种电梯控制软件现场调试系统
JP2008059482A (ja) 情報処理装置、情報処理方法
JP2003303100A (ja) 情報処理システムおよび情報処理システム構築方法並びにこれに用いるプログラム
JP6808115B1 (ja) 設計支援システム、設計支援方法および設計支援プログラム
JP2011227823A (ja) 制御プログラム作成装置および制御プログラム作成装置の駆動方法
JP7417462B2 (ja) パッケージ生成装置、パッケージ管理システム及びパッケージ生成方法
JP4962226B2 (ja) 開発支援システム、開発支援装置、開発支援方法、および開発支援プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070814

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080207

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080328

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110418

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140418

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees