(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-21
(45)【発行日】2023-08-29
(54)【発明の名称】プログラム実行装置、プログラム実行方法およびプログラム
(51)【国際特許分類】
G06F 8/30 20180101AFI20230822BHJP
G06F 3/04817 20220101ALI20230822BHJP
G06F 3/04847 20220101ALI20230822BHJP
G05B 19/418 20060101ALI20230822BHJP
【FI】
G06F8/30
G06F3/04817
G06F3/04847
G05B19/418 Z
(21)【出願番号】P 2019238145
(22)【出願日】2019-12-27
【審査請求日】2022-05-09
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】永田 耕平
(72)【発明者】
【氏名】井尻 隆史
(72)【発明者】
【氏名】中岡 象平
【審査官】田中 啓介
(56)【参考文献】
【文献】特開平11-296357(JP,A)
【文献】特開2002-144385(JP,A)
【文献】特開2009-116377(JP,A)
【文献】特開平11-143701(JP,A)
【文献】特開2017-220107(JP,A)
【文献】特開2016-126721(JP,A)
【文献】特開2006-285754(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F8/00-8/38、8/60-8/77
G06F9/44-9/445、9/451
G06F3/01、3/048-3/04895
G05B19/418
(57)【特許請求の範囲】
【請求項1】
プログラム実行装置であって、
1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す第1テンプレートデータを取得する取得部と、
1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す第1追加データを作成する作成部と、
前記第1テンプレートデータと前記第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するプログラム実行部とを備
え、
前記第1テンプレートデータは、
1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可されるN個の第2挿入位置とを示す第2テンプレートデータと、
前記N個の第2挿入位置の中から選択されたM個の第2挿入位置と、前記M個の第2挿入位置の各々について、1以上の第2指定処理項目および前記1以上の第2指定処理項目の第4実行順序とを示す第2追加データとによって構成され、
Nは2以上の整数であり、MはN未満の正の整数であり、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に、対応する前記1以上の第2指定処理項目が対応する前記第4実行順序に従って並べられた第4フローを挿入したときの、前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に前記第4フローを挿入したときの、前記N個の第2挿入位置のうち未選択の第2挿入位置を前記第1挿入位置として示す、プログラム実行装置。
【請求項2】
プログラム実行装置であって、
1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す第1テンプレートデータを取得する取得部と、
1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す第1追加データを作成する作成部と、
前記第1テンプレートデータと前記第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するプログラム実行部とを備え、
前記第1テンプレートデータは、
1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可される第2挿入位置とを示す第2テンプレートデータと、
1以上の第2指定処理項目と、前記1以上の第2指定処理項目の第4実行順序と、前記1以上の第2指定処理項目が前記第4実行順序に従って並べられた第4フローにおいて、新たな処理項目の挿入が許可される第3挿入位置とを示す第2追加データとによって構成され、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記第3挿入位置を前記第1挿入位置として示す
、プログラム実行装置。
【請求項3】
プログラム実行装置であって、
1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す第1テンプレートデータを取得する取得部と、
1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す第1追加データを作成する作成部と、
前記第1テンプレートデータと前記第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するプログラム実行部とを備え、
前記取得部は、予め準備された複数の処理項目からの前記1以上の指定処理項目の選択と、前記第1実行順序と、前記第1挿入位置との指定を受け付けるユーザインターフェイスを提供し、前記ユーザインターフェイスへの入力に応じて、前記第1テンプレートデータを作成し、
前記取得部は、
1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可されるN個の第2挿入位置とを示す第2テンプレートデータを取得し、
前記予め準備された複数の処理項目にそれぞれ対応する複数のオブジェクトを前記ユーザインターフェイスに表示し、
前記ユーザインターフェイスは、前記N個の第2挿入位置から選択されたM個の第2挿入位置の各々について、前記複数のオブジェクトから選択されたオブジェクトを指定された順番に配置する作業領域を含み、
Nは2以上の整数であり、MはN未満の正の整数であり、
前記取得部は、前記M個の第2挿入位置の各々について、
前記作業領域に配置された前記オブジェクトに対応する処理項目に基づいて、1以上の第2指定処理項目を設定し、
前記作業領域に配置された前記オブジェクトの順番に基づいて、前記1以上の第2指定処理項目の第4実行順序を設定し、
前記1以上の第2指定処理項目と前記第4実行順序とを示す第2追加データを作成し、
前記第2テンプレートデータと前記第2追加データとによって構成される前記第1テンプレートデータを作成し、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に、対応する前記1以上の第2指定処理項目
が対応する前記第4実行順序に従って並べられた第4フローを挿入したときの、前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に対応する前記第4フローを挿入したときの、前記N個の第2挿入位置のうち未選択の第2挿入位置を前記第1挿入位置として示す、プログラム実行装置。
【請求項4】
プログラム実行装置であって、
1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す第1テンプレートデータを取得する取得部と、
1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す第1追加データを作成する作成部と、
前記第1テンプレートデータと前記第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するプログラム実行部とを備え、
前記取得部は、予め準備された複数の処理項目からの前記1以上の指定処理項目の選択と、前記第1実行順序と、前記第1挿入位置との指定を受け付けるユーザインターフェイスを提供し、前記ユーザインターフェイスへの入力に応じて、前記第1テンプレートデータを作成し、
前記取得部は、
1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可される第2挿入位置とを示す第2テンプレートデータを取得し、
複数のオブジェクトを前記ユーザインターフェイスに表示し、
前記複数のオブジェクトは、前記予め準備された複数の処理項目の各々に対応する第1オブジェクトと、前記第1オブジェクトと異なる第2オブジェクトとを含み、
前記ユーザインターフェイスは、前記複数のオブジェクトから選択されたオブジェクトを指定された順番に配置する作業領域を含み、
前記取得部は、
前記作業領域に配置された前記第1オブジェクトに対応する処理項目に基づいて、1以上の第2指定処理項目を設定し、
前記作業領域に配置された前記第1オブジェクトの順番に基づいて、前記1以上の第2指定処理項目の第4実行順序を設定し、
前記作業領域に配置された前記第2オブジェクトの順番に基づいて、前記1以上の第2指定処理項目が前記第4実行順序に従って並べられた第4フローにおいて、新たな処理項目の挿入が許可される第3挿入位置を設定し、
前記1以上の第2指定処理項目と、前記第4実行順序と、前記第3挿入位置とを示す第2追加データを作成し、
前記第2テンプレートデータと前記第2追加データとによって構成される前記第1テンプレートデータを作成し、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記第3挿入位置を前記第1挿入位置として示す
、プログラム実行装置。
【請求項5】
プログラム実行方法であって、
プロセッサが、1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す
第1テンプレートデータを取得するステップと、
前記プロセッサが、1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す
第1追加データを作成するステップと、
前記プロセッサが、前記
第1テンプレートデータと前記
第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するステップとを備え、
前記第1テンプレートデータは、
1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可されるN個の第2挿入位置とを示す第2テンプレートデータと、
前記N個の第2挿入位置の中から選択されたM個の第2挿入位置と、前記M個の第2挿入位置の各々について、1以上の第2指定処理項目および前記1以上の第2指定処理項目の第4実行順序とを示す第2追加データとによって構成され、
Nは2以上の整数であり、MはN未満の正の整数であり、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に、対応する前記1以上の第2指定処理項目が対応する前記第4実行順序に従って並べられた第4フローを挿入したときの、前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に前記第4フローを挿入したときの、前記N個の第2挿入位置のうち未選択の第2挿入位置を前記第1挿入位置として示す、プログラム実行方法。
【請求項6】
プログラム実行方法であって、
プロセッサが、1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す第1テンプレートデータを取得するステップと、
前記プロセッサが、1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す第1追加データを作成するステップと、
前記プロセッサが、前記第1テンプレートデータと前記第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するステップとを備え、
前記第1テンプレートデータは、
1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可される第2挿入位置とを示す第2テンプレートデータと、
1以上の第2指定処理項目と、前記1以上の第2指定処理項目の第4実行順序と、前記1以上の第2指定処理項目が前記第4実行順序に従って並べられた第4フローにおいて、新たな処理項目の挿入が許可される第3挿入位置とを示す第2追加データとによって構成され、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記第3挿入位置を前記第1挿入位置として示す、プログラム実行方法。
【請求項7】
プログラム実行方法であって、
プロセッサが、1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す第1テンプレートデータを取得するステップと、
前記プロセッサが、1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す第1追加データを作成するステップと、
前記プロセッサが、前記第1テンプレートデータと前記第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するステップとを備え、
前記第1テンプレートデータを取得するステップは、前記プロセッサが、予め準備された複数の処理項目からの前記1以上の指定処理項目の選択と、前記第1実行順序と、前記第1挿入位置との指定を受け付けるユーザインターフェイスを提供し、前記ユーザインターフェイスへの入力に応じて、前記第1テンプレートデータを作成するステップを含み、
前記第1テンプレートデータを取得するステップは、
前記プロセッサが、1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可されるN個の第2挿入位置とを示す第2テンプレートデータを取得するステップと、
前記プロセッサが、前記予め準備された複数の処理項目にそれぞれ対応する複数のオブジェクトを前記ユーザインターフェイスに表示するステップとを含み、
前記ユーザインターフェイスは、前記N個の第2挿入位置から選択されたM個の第2挿入位置の各々について、前記複数のオブジェクトから選択されたオブジェクトを指定された順番に配置する作業領域を含み、
Nは2以上の整数であり、MはN未満の正の整数であり、
前記第1テンプレートデータを取得するステップは、前記M個の第2挿入位置の各々について、
前記プロセッサが、前記作業領域に配置された前記オブジェクトに対応する処理項目に基づいて、1以上の第2指定処理項目を設定するステップと、
前記プロセッサが、前記作業領域に配置された前記オブジェクトの順番に基づいて、前記1以上の第2指定処理項目の第4実行順序を設定するステップと、
前記プロセッサが、前記1以上の第2指定処理項目と前記第4実行順序とを示す第2追加データを作成するステップと、
前記プロセッサが、前記第2テンプレートデータと前記第2追加データとによって構成される前記第1テンプレートデータを作成するステップとを含み、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に、対応する前記1以上の第2指定処理項目が対応する前記第4実行順序に従って並べられた第4フローを挿入したときの、前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記M個の第2挿入位置の各々に対応する前記第4フローを挿入したときの、前記N個の第2挿入位置のうち未選択の第2挿入位置を前記第1挿入位置として示す、プログラム実行方法。
【請求項8】
プログラム実行方法であって、
プロセッサが、1以上の指定処理項目と、前記1以上の指定処理項目の第1実行順序と、前記1以上の指定処理項目が前記第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す第1テンプレートデータを取得するステップと、
前記プロセッサが、1以上の追加処理項目と、前記1以上の追加処理項目の第2実行順序とを示す第1追加データを作成するステップと、
前記プロセッサが、前記第1テンプレートデータと前記第1追加データとに基づいて、前記第1フローにおける前記第1挿入位置に、前記1以上の追加処理項目が前記第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するステップとを備え、
前記第1テンプレートデータを取得するステップは、前記プロセッサが、予め準備された複数の処理項目からの前記1以上の指定処理項目の選択と、前記第1実行順序と、前記第1挿入位置との指定を受け付けるユーザインターフェイスを提供し、前記ユーザインターフェイスへの入力に応じて、前記第1テンプレートデータを作成するステップを含み、
前記第1テンプレートデータを取得するステップは、
前記プロセッサが、1以上の第1指定処理項目と、前記1以上の第1指定処理項目の第3実行順序と、前記1以上の第1指定処理項目が前記第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可される第2挿入位置とを示す第2テンプレートデータを取得するステップと、
前記プロセッサが、複数のオブジェクトを前記ユーザインターフェイスに表示するステップとを含み、
前記複数のオブジェクトは、前記予め準備された複数の処理項目の各々に対応する第1オブジェクトと、前記第1オブジェクトと異なる第2オブジェクトとを含み、
前記ユーザインターフェイスは、前記複数のオブジェクトから選択されたオブジェクトを指定された順番に配置する作業領域を含み、
前記第1テンプレートデータを取得するステップは、
前記プロセッサが、前記作業領域に配置された前記第1オブジェクトに対応する処理項目に基づいて、1以上の第2指定処理項目を設定するステップと、
前記プロセッサが、前記作業領域に配置された前記第1オブジェクトの順番に基づいて、前記1以上の第2指定処理項目の第4実行順序を設定するステップと、
前記プロセッサが、前記作業領域に配置された前記第2オブジェクトの順番に基づいて、前記1以上の第2指定処理項目が前記第4実行順序に従って並べられた第4フローにおいて、新たな処理項目の挿入が許可される第3挿入位置を設定するステップと、
前記プロセッサが、前記1以上の第2指定処理項目と、前記第4実行順序と、前記第3挿入位置とを示す第2追加データを作成するステップと、
前記プロセッサが、前記第2テンプレートデータと前記第2追加データとによって構成される前記第1テンプレートデータを作成するステップとを含み、
前記第1テンプレートデータは、
前記1以上の第1指定処理項目および前記1以上の第2指定処理項目を前記1以上の指定処理項目として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記1以上の第1指定処理項目および前記1以上の第2指定処理項目の実行順序を前記第1実行順序として示し、
前記第3フローにおける前記第2挿入位置に前記第4フローを挿入したときの前記第3挿入位置を前記第1挿入位置として示す、プログラム実行方法。
【請求項9】
請求項
5から8のいずれか1項に記載のプログラム実行方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム実行装置、プログラム実行方法およびプログラムに関する。
【背景技術】
【0002】
FA(Factory Automation)分野において、ワークなどの検査対象物を自動で検査するための技術が普及している。ワークの検査処理は、様々な処理項目の組み合わせによって実現される。このような処理項目の組み合わせをユーザ自身で設定するためのユーザインターフェイスを提供するアプリケーションが開発されている。
【0003】
例えば、国際公開第2011/108193号(特許文献1)は、基本プログラム管理テーブルと個別要件管理テーブルとを用いてアプリケーションプログラムを作成するプログラム作成支援装置を開示している。基本プログラム管理テーブルは、ユーザに共通な基本プログラムを構成する複数のプログラム列を管理する。個別要件管理テーブルは、ユーザ毎に定義できる個別要件を実現するプログラム列を管理する。プログラム作成支援装置は、個別要件を挿入する挿入位置として、基本プログラムの複数のプログラム列の位置をプログラム開発者に指定させて受け付ける。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
通常、類似する複数品種のワークをそれぞれ検査するための複数のプログラムは、共通するフローと、品種毎に作成された個別のフローとを有する。特許文献1に記載の技術を用いることにより、共通するフローに対応する基本プログラムを作成し、基本プログラムと別に、品種毎の個別要件を実現するプログラム列を作成することができる。これにより、品種毎のプログラムが容易に作成される。
【0006】
しかしながら、特許文献1に記載の技術では、基本プログラムを構成する複数のプログラム列において個別要件を挿入する位置が自由に設定可能である。そのため、誤って意図しない位置に個別要件が挿入され得る。その結果、所望するプログラムとは異なるプログラムが実行され得る。
【0007】
本開示は、上記の問題に鑑みてなされたものであり、その目的は、共通するフローと個別のフローとを用いて所望のプログラムを容易に実行可能なプログラム実行装置、プログラム実行方法およびプログラムを提供することである。
【課題を解決するための手段】
【0008】
本開示の一例によれば、プログラム実行装置は、第1テンプレートデータを取得する取得部を備える。第1テンプレートデータは、1以上の指定処理項目と、1以上の指定処理項目の第1実行順序と、1以上の指定処理項目が第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示す。プログラム実行装置は、作成部と、プログラム実行部とを備える。作成部は、1以上の追加処理項目と、1以上の追加処理項目の第2実行順序とを示す第1追加データを作成する。プログラム実行部は、第1テンプレートデータと第1追加データとに基づいて、第1フローにおける第1挿入位置に、1以上の追加処理項目が第2実行順序に従って並べられた第2フローを挿入したプログラムを実行する。
【0009】
この開示によれば、第1テンプレートデータは、第1フローにおける第1挿入位置を示す。そして、第1挿入位置に第2フローが挿入される。そのため、第1挿入位置以外の位置に誤って第2フローが挿入されることを防止できる。すなわち、第1挿入位置以外の第1フローは、編集されず、そのままの状態で実行される。第1フローは、例えば複数の品種に共通するフローとして設定され得る。第2フローは、例えば品種毎に作成された個別のフローとして設定され得る。これにより、第1フロー(共通するフロー)と第2フロー(個別のフロー)とを用いて所望の画像処理プログラムを容易に実行できる。
【0010】
上述の開示において、第1テンプレートデータは、1以上の指定処理項目の実行に必要な1以上のパラメータの各々について、デフォルト値と、デフォルト値からの変更の可否とをさらに示す。第1追加データは、1以上のパラメータのうちデフォルト値からの変更が可であるパラメータについて、変更後の値をさらに示す。プログラム実行部は、デフォルト値からの変更が可であるパラメータについて、第1追加データによって示される値を用いる。
【0011】
この開示によれば、デフォルト値からの変更を望まない場合、ユーザは、デフォルト値からの変更を不可とする第1テンプレートデータを作成することにより、必ずデフォルト値を用いて指定処理項目を実行させることができる。また、デフォルト値からの変更が可であるパラメータについては、品種に適した値に適宜変更することができる。
【0012】
上述の開示において、第1テンプレートデータは、デフォルト値からの変更が可であるパラメータについて、設定可能な値の範囲を示す。第1追加データは、デフォルト値からの変更が可であるパラメータについて、範囲内の値を示す。この開示によれば、設定可能な範囲外の値が誤って設定されることを防止できる。
【0013】
上述の開示において、第1テンプレートデータは、第2テンプレートデータと、第2追加データとによって構成される。第2テンプレートデータは、1以上の第1指定処理項目と、1以上の第1指定処理項目の第3実行順序と、1以上の第1指定処理項目が第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可されるN個の第2挿入位置とを示す。第2追加データは、N個の第2挿入位置の中から選択されたM個の第2挿入位置と、M個の第2挿入位置の各々について、1以上の第2指定処理項目および1以上の第2指定処理項目の第4実行順序とを示す。Nは2以上の整数であり、MはN未満の正の整数である。第1テンプレートデータは、1以上の第1指定処理項目および1以上の第2指定処理項目を1以上の指定処理項目として示す。第1テンプレートデータは、第3フローにおけるM個の第2挿入位置の各々に、対応する1以上の第2指定処理項目が対応する第4実行順序に従って並べられた第4フローを挿入したときの、1以上の第1指定処理項目および1以上の第2指定処理項目の実行順序を第1実行順序として示す。第1テンプレートデータは、第3フローにおけるM個の第2挿入位置の各々に第4フローを挿入したときの、N個の第2挿入位置のうち未選択の第2挿入位置を第1挿入位置として示す。
【0014】
あるいは、第2テンプレートデータは、1以上の第1指定処理項目と、1以上の第1指定処理項目の第3実行順序と、1以上の第1指定処理項目が第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可される第2挿入位置とを示す。第2追加データは、1以上の第2指定処理項目と、1以上の第2指定処理項目の第4実行順序と、1以上の第2指定処理項目が第4実行順序に従って並べられた第4フローにおいて、新たな処理項目の挿入が許可される第3挿入位置とを示す。第1テンプレートデータは、1以上の第1指定処理項目および1以上の第2指定処理項目を1以上の指定処理項目として示す。第1テンプレートデータは、第3フローにおける第2挿入位置に第4フローを挿入したときの1以上の第1指定処理項目および1以上の第2指定処理項目の実行順序を第1実行順序として示す。第1テンプレートデータは、第3フローにおける第2挿入位置に第4フローを挿入したときの第3挿入位置を第1挿入位置として示す。
【0015】
これらの開示によれば、第2テンプレートデータが作成済みである場合、第2追加データを作成することにより、第1テンプレートデータを容易に作成できる。また、プログラムの作成業務を複数のユーザで分担できる。例えば、第2テンプレートデータを第1ユーザが作成し、第2追加データを第2ユーザが作成し、第1追加データを第3ユーザが作成してもよい。
【0016】
上述の開示において、取得部は、予め準備された複数の処理項目からの1以上の指定処理項目の選択と、第1実行順序と、第1挿入位置との指定を受け付けるユーザインターフェイスを提供し、ユーザインターフェイスへの入力に応じて、第1テンプレートデータを作成する。
【0017】
この開示によれば、ユーザは、ユーザインターフェイスを操作することにより、所望の第1フローを定義付けるための第1テンプレートデータを容易に作成できる。
【0018】
上述の開示において、取得部は、複数のオブジェクトをユーザインターフェイスに表示する。複数のオブジェクトは、予め準備された複数の処理項目の各々に対応する第1オブジェクトと、第1オブジェクトと異なる第2オブジェクトとを含む。ユーザインターフェイスは、複数のオブジェクトから選択されたオブジェクトを指定された順番に配置する作業領域を含む。取得部は、作業領域に配置された第1オブジェクトに対応する処理項目に基づいて、1以上の指定処理項目を設定する。取得部は、作業領域に配置された第1オブジェクトの順番に基づいて、第1実行順序を設定する。取得部は、作業領域に配置された第2オブジェクトの順番に基づいて、第1挿入位置を設定する。
【0019】
この開示によれば、ユーザは、第1オブジェクトを選択および配置することにより、第1フローを構成する指定処理項目とその第1実行順序とを簡単に設定できる。さらに、ユーザは、第1フローにおいて第2オブジェクトを配置することにより、第1挿入位置を簡単に設定できる。
【0020】
上述の開示において、取得部は、第2テンプレートデータを取得する。第2テンプレートデータは、1以上の第1指定処理項目と、1以上の第1指定処理項目の第3実行順序と、1以上の第1指定処理項目が第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可されるN個の第2挿入位置とを示す。取得部は、予め準備された複数の処理項目にそれぞれ対応する複数のオブジェクトをユーザインターフェイスに表示する。ユーザインターフェイスは、N個の第2挿入位置から選択されたM個の第2挿入位置の各々について、複数のオブジェクトから選択されたオブジェクトを指定された順番に配置する作業領域を含む。Nは2以上の整数であり、MはN未満の正の整数である。取得部は、M個の第2挿入位置の各々について、作業領域に配置されたオブジェクトに対応する処理項目に基づいて、1以上の第2指定処理項目を設定する。取得部は、M個の第2挿入位置の各々について、作業領域に配置されたオブジェクトの順番に基づいて、1以上の第2指定処理項目の第4実行順序を設定する。取得部は、M個の第2挿入位置の各々について、1以上の第2指定処理項目と第4実行順序とを示す第2追加データを作成する。取得部は、第2テンプレートデータと第2追加データとによって構成される第1テンプレートデータを作成する。第1テンプレートデータは、1以上の第1指定処理項目および1以上の第2指定処理項目を1以上の指定処理項目として示す。第1テンプレートデータは、第3フローにおけるM個の第2挿入位置の各々に、対応する1以上の第2指定処理項目が対応する第4実行順序に従って並べられた第4フローを挿入したときの、1以上の第1指定処理項目および1以上の第2指定処理項目の実行順序を第1実行順序として示す。第1テンプレートデータは、第3フローにおけるM個の第2挿入位置の各々に対応する第4フローを挿入したときの、N個の第2挿入位置のうち未選択の第2挿入位置を第1挿入位置として示す。
【0021】
この開示によれば、ユーザは、オブジェクトを用いて第4フローを設定することにより、第1テンプレートデータを簡単に作成できる。
【0022】
あるいは、第2テンプレートデータは、1以上の第1指定処理項目と、1以上の第1指定処理項目の第3実行順序と、1以上の第1指定処理項目が第3実行順序に従って並べられた第3フローにおいて、新たな処理項目の挿入が許可される第2挿入位置とを示す。取得部は、複数のオブジェクトをユーザインターフェイスに表示する。複数のオブジェクトは、予め準備された複数の処理項目の各々に対応する第1オブジェクトと、第1オブジェクトと異なる第2オブジェクトとを含む。ユーザインターフェイスは、複数のオブジェクトから選択されたオブジェクトを指定された順番に配置する作業領域を含む。取得部は、作業領域に配置された第1オブジェクトに対応する処理項目に基づいて、1以上の第2指定処理項目を設定する。取得部は、作業領域に配置された第1オブジェクトの順番に基づいて、1以上の第2指定処理項目の第4実行順序を設定する。取得部は、作業領域に配置された第2オブジェクトの順番に基づいて、1以上の第2指定処理項目が第4実行順序に従って並べられた第4フローにおいて、新たな処理項目の挿入が許可される第3挿入位置を設定する。取得部は、1以上の第2指定処理項目と、第4実行順序と、第3挿入位置とを示す第2追加データを作成する。取得部は、第2テンプレートデータと第2追加データとによって構成される第1テンプレートデータを作成する。第1テンプレートデータは、1以上の第1指定処理項目および1以上の第2指定処理項目を1以上の指定処理項目として示す。第1テンプレートデータは、第3フローにおける第2挿入位置に第4フローを挿入したときの1以上の第1指定処理項目および1以上の第2指定処理項目の実行順序を第1実行順序として示す。第1テンプレートデータは、第3フローにおける第2挿入位置に第4フローを挿入したときの第3挿入位置を第1挿入位置として示す。
【0023】
この開示によれば、ユーザは、第2テンプレートデータによって定義付けられる第3フローの挿入位置に挿入される第4フローを第1オブジェクトおよび第2オブジェクトを用いて設定することにより、第1テンプレートデータを簡単に作成できる。
【0024】
本開示の一例によれば、プログラム実行方法は、1以上の指定処理項目と、1以上の指定処理項目の第1実行順序と、1以上の指定処理項目が第1実行順序に従って並べられた第1フローにおいて、新たな処理項目の挿入が許可される第1挿入位置とを示すテンプレートデータを取得するステップを備える。プログラム実行方法は、1以上の追加処理項目と、1以上の追加処理項目の第2実行順序とを示す追加データを作成するステップを備える。プログラム実行方法は、テンプレートデータと追加データとに基づいて、第1フローにおける第1挿入位置に、1以上の追加処理項目が第2実行順序に従って並べられた第2フローを挿入したプログラムを実行するステップを備える。
【0025】
本開示の一例によれば、プログラムは、上記の制御方法をコンピュータに実行させる。これらの開示によっても、共通するフローと個別のフローとを用いて所望のプログラムを容易に実行できる。
【発明の効果】
【0026】
本開示によれば、共通するフローと個別のフローとを用いて所望のプログラムを容易に実行できる。
【図面の簡単な説明】
【0027】
【
図1】本実施の形態に係る画像処理装置を含む画像処理システムの全体構成を示す概略図である。
【
図2】画像処理装置における画像処理プログラムの実行方法の一例を説明する図である。
【
図3】画像処理装置のハードウェア構成を示す模式図である。
【
図4】本実施の形態に係る画像処理装置が提供するユーザインターフェイスの一例を示す図である。
【
図5】実施の形態に係るテンプレートデータ10の作成方法の一例を示す図である。
【
図6】パラメータの値を設定するためのウィンドウの一例を示す図である。
【
図7】実施の形態に係るテンプレートデータ10の一例を示す図である。
【
図8】実施の形態に係る追加データ20を作成するときのユーザインターフェイスの一例を示す図である。
【
図9】実施の形態に係る追加データ20の一例を示す図である。
【
図10】テンプレートデータと追加データとに基づいて実行される画像処理プログラムの一例を示す図である。
【
図11】実施の形態に係る画像処理装置の機能構成を示す模式図である。
【
図12】画像処理装置における画像処理プログラムの実行処理の流れを示すフローチャートである。
【
図13】変形例1に係るテンプレートデータ10の一例を示す図である。
【
図14】変形例1に係る追加データ20の作成方法を示す図である。
【
図15】変形例1に係る追加データ20の一例を示す図である。
【
図16】変形例2に係るテンプレートデータ40によって定義付けられる第1部分フロー41の一例を示す図である。
【
図17】変形例2に係るテンプレートデータ40の一例を示す図である。
【
図18】変形例2に係る追加データ50を作成するときのユーザインターフェイスの一例を示す図である。
【
図19】変形例2に係る追加データ50の一例を示す図である。
【
図20】変形例2に係る追加データ20の作成方法の流れを説明する図である。
【
図21】変形例2に係る追加データ50を作成するときのユーザインターフェイスの別の例を示す図である。
【
図22】テンプレートデータ10に対する追加データ20の一例を示す図である。
【
図23】変形例3に係る追加データ50を作成するときのユーザインターフェイスの一例を示す図である。
【
図24】変形例3に係る追加データ50の一例を示す図である。
【
図25】変形例3に係る追加データ20の作成方法の流れを説明する図である。
【
図26】変形例3に係る追加データ20の一例を示す図である。
【発明を実施するための形態】
【0028】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。以下で説明される各変形例は、適宜選択的に組み合わされてもよい。
【0029】
§1 適用例
図1および
図2を参照して、本発明の適用例について説明する。本適用例では、プログラム実行装置の一例として、ワークを検査するための画像処理プログラムを実行する画像処理装置を説明する。ただし、プログラム実行装置は、画像処理装置に限定されない。例えば、プログラム実行装置は、PLC(Programmable Logic Controller)など、各種のプログラムを実行する装置であってもよい。
【0030】
図1は、本実施の形態に係る画像処理装置を含む画像処理システムの全体構成を示す概略図である。
図1に示されるように、画像処理システム1は、主要なコンポーネントとして、視覚センサとも称される画像処理装置100と、画像処理装置100に接続された撮像部8と、画像処理装置100と通信可能なPLC(Programmable Logic Controller)5とを含む。一例として、表示部102と一体的に構成された画像処理装置100を示す。
【0031】
画像処理装置100は、生産ラインに組み込まれ、検査対象物(以下、「ワークW」ともいう。)上の欠陥や汚れの有無の検査、ワークWの大きさや配置向きなどの計測、ワークW表面上の文字や図形などの認識といった画像処理を実行する。すなわち、画像処理装置100は、ワークWを撮像することで生成された画像データに対する画像処理を実行する。ワークWは、ベルトコンベヤなどの搬送機構6によって搬送され、撮像部8によって順次撮像される。PLC5は、画像処理装置100と連係して、搬送機構6などの制御を実行する。
【0032】
撮像部8は、一例として、レンズなどの光学系に加えて、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった、複数の画素に区画された撮像素子を含んで構成される。撮像部8による撮像によって取得された画像データ(以下、「カメラ画像」ともいう。)は、画像処理装置100へ伝送される。そして、画像処理装置100は、撮像部8により撮像されたカメラ画像に対して画像処理を行なう。撮像部8によって撮像されるワークWに対して光を照射する照明装置をさらに設けてもよい。より多くの撮像部8を接続できるように画像処理装置100を構成してもよい。
【0033】
複数品種のワークWを検査する場合、画像処理装置100は、品種毎に画像処理プログラムを変更する。そのため、ユーザは、品種毎に画像処理プログラムを設定する。ただし、類似する複数品種にそれぞれ対応する複数の画像処理プログラムは、通常、共通するフロー(以下、「共通フロー」を称する。)を含む。そのため、画像処理装置100は、共通フローと、品種毎に設定された個別のフロー(以下、「個別フロー」と称する。)とを組み合わせることにより品種毎の画像処理プログラムを実行する機能を有する。これにより、共通フローが作成済みである場合、ユーザは、品種に対応する個別フローを設定することにより、当該品種を検査するための画像処理プログラムを画像処理装置100に実行させることができる。
【0034】
図2は、画像処理装置における画像処理プログラムの実行方法の一例を説明する図である。
【0035】
画像処理装置100は、共通フロー11を定義付けるためのテンプレートデータ10を取得する。テンプレートデータ10は、1以上の指定処理項目12と、当該1以上の指定処理項目12の実行順序とを示す。共通フロー11は、当該1以上の指定処理項目12が当該実行順序に従って並べられたフローである。
図2に例示されるテンプレートデータ10は、指定処理項目12a~12eがこの順に並べられた共通フロー11を定義付ける。
【0036】
テンプレートデータ10は、さらに、共通フロー11において、新たな処理項目の挿入が許可される挿入位置13を示す。
図2に例示されるテンプレートデータ10は、指定処理項目12cと指定処理項目12dとの間の位置を挿入位置13として示す。
【0037】
テンプレートデータ10は、例えばシステムエンジニア(SE)、システムインテグレーター(「SIer」とも称される。)、ベンダー等により予め作成されており、編集不可である。そのため、テンプレートデータ10によって示される指定処理項目12a~12e、実行順序および挿入位置13は、変更できない。
【0038】
画像処理装置100は、共通フロー11の挿入位置13に挿入される個別フロー21を定義付けるための追加データ20を作成する。追加データ20は、例えばベンダー、生産ラインの管理者、生産ラインの作業員等の入力に従って作成される。
図2に示されるように、画像処理装置100は、品種Aに対応する個別フロー21Aを定義付けるための追加データ20Aと、品種Bに対応する個別フロー21Bを定義付けるための追加データ20Bとを作成する。
【0039】
追加データ20A,20Bの各々は、1以上の追加処理項目22と、当該1以上の追加処理項目22の実行順序とを示す。個別フロー21は、当該1以上の追加処理項目22が当該実行順序に従って並べられたフローである。
図2に例示される追加データ20Aは、追加処理項目22a,22bがこの順に並べられた個別フロー21Aを定義付ける。
図2に例示される追加データ20Bは、追加処理項目22c,22dがこの順に並べられた個別フロー21Bを定義付ける。
【0040】
画像処理装置100は、共通フロー11と個別フロー21とを組み合わせることにより画像処理プログラム30を実行する。具体的には、画像処理装置100は、テンプレートデータ10と追加データ20Aとに基づいて、品種AのワークWを検査するための画像処理プログラム30Aを実行する。画像処理プログラム30Aは、テンプレートデータ10によって定義付けられる共通フロー11の挿入位置13に、追加データ20Aによって定義付けられる個別フロー21Aを挿入したプログラムである。同様に、画像処理装置100は、テンプレートデータ10と追加データ20Bとに基づいて、品種BのワークWを検査するための画像処理プログラム30Bを実行する。画像処理プログラム30Bは、テンプレートデータ10によって定義付けられる共通フロー11の挿入位置13に、追加データ20Bによって定義付けられる個別フロー21Bを挿入したプログラムである。
【0041】
本実施の形態によれば、テンプレートデータ10が作成済みである場合、品種に対応する個別フロー21を定義付けるための追加データ20を作成するだけで、当該品種のワークWを検査するための画像処理プログラムが実行される。すなわち、共通フロー11も含めた画像処理プログラムを一から作成する必要がなく、画像処理プログラムの作成に要する手間が削減される。
【0042】
個別フロー21は、テンプレートデータ10によって示される挿入位置13に挿入される。そのため、共通フロー11における挿入位置13とは異なる位置に個別フロー21が誤って挿入されることがない。特許文献1に記載の技術では、例えばテンプレートデータ10によって示される共通フローにおいて、指定処理項目12aの前の位置、指定処理項目12a,12bの間の位置、指定処理項目12b,12cの間の位置、指定処理項目12c,12dの間の位置、指定処理項目12d,12eの間の位置、および指定処理項目12eの後の位置の6つの位置から挿入位置が指定される。そのため、指定処理項目12c,12dの間の位置を指定すべきところ、別の位置が誤って指定され得る。このような誤った指定により、所望の画像処理プログラムとは異なる画像処理プログラムが実行され得る。
【0043】
しかしながら、本実施の形態によれば、テンプレートデータ10は、共通フロー11における挿入位置13を示す。そして、挿入位置13に個別フロー21が挿入される。そのため、挿入位置13以外の位置に誤って個別フロー21が挿入されることを防止できる。従って、指定処理項目12a~12cは、この間に処理項目が挿入されることなく実行される。また、指定処理項目12d,12eは、この間に処理項目が挿入されることなく実行される。すなわち、挿入位置13以外の共通フロー11は、編集されず、必ずそのままの状態で実行される。これにより、共通フロー11と個別フロー21とを用いて所望の画像処理プログラムを容易に実行できる。
【0044】
§2 具体例
<A.画像処理装置のハードウェア構成>
図3は、画像処理装置のハードウェア構成を示す模式図である。
図3に示すように、画像処理装置100は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の処理を実現する。
【0045】
より具体的には、画像処理装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ110と、RAM(Random Access Memory)112と、表示コントローラ114と、システムコントローラ116と、I/O(Input Output)コントローラ118と、ハードディスク120と、カメラインターフェイス122と、入力インターフェイス124と、PLCインターフェイス126と、通信インターフェイス128と、メモリカードインターフェイス130とを含む。これらの各部は、システムコントローラ116を中心として、互いにデータ通信可能に接続される。
【0046】
プロセッサ110は、システムコントローラ116との間でプログラム(コード)などを交換して、これらを所定順序で実行することで、目的の演算処理を実現する。
【0047】
システムコントローラ116は、プロセッサ110、RAM112、表示コントローラ114、およびI/Oコントローラ118とそれぞれバスを介して接続されており、各部との間でデータ交換などを行うとともに、画像処理装置100全体の処理を司る。
【0048】
RAM112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク120から読み出されたプログラムや、撮像部8によって取得されたカメラ画像(画像データ)、カメラ画像に対する処理結果、およびワークデータなどを保持する。
【0049】
表示コントローラ114は、表示部102と接続されており、システムコントローラ116からの内部コマンドに従って、各種の情報を表示するための信号を表示部102へ出力する。表示部102は、一例として、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイや有機ELなどを含む。
【0050】
I/Oコントローラ118は、画像処理装置100に接続される記録媒体や外部機器との間のデータ交換を制御する。より具体的には、I/Oコントローラ118は、ハードディスク120と、カメラインターフェイス122と、入力インターフェイス124と、PLCインターフェイス126と、通信インターフェイス128と、メモリカードインターフェイス130と接続される。
【0051】
ハードディスク120は、典型的には、不揮発性の磁気記憶装置であり、プロセッサ110で実行される制御プログラム150に加えて、テンプレートデータ10および追加データ20などが格納される。このハードディスク120にインストールされる制御プログラム150は、メモリカード106などに格納された状態で流通する。さらに、ハードディスク120には、カメラ画像が格納される。なお、ハードディスク120に代えて、フラッシュメモリなどの半導体記憶装置やDVD-RAM(Digital Versatile Disk Random Access Memory)などの光学記憶装置を採用してもよい。
【0052】
カメラインターフェイス122は、ワークW(検査対象物)を撮像することで生成された画像データを受け付ける入力部に相当し、プロセッサ110と撮像部8との間のデータ伝送を仲介する。より具体的には、カメラインターフェイス122は、1つ以上の撮像部8と接続が可能であり、プロセッサ110からカメラインターフェイス122を介して撮像部8に撮像指示が出力される。これにより、撮像部8は、被写体を撮像し、カメラインターフェイス122を介して、生成された画像をプロセッサ110に出力する。
【0053】
入力インターフェイス124は、プロセッサ110とキーボード104、マウス、タッチパネル、専用コンソールなどの入力装置との間のデータ伝送を仲介する。すなわち、入力インターフェイス124は、ユーザが入力装置を操作することで与えられる操作指令を受け付ける。
【0054】
PLCインターフェイス126は、プロセッサ110とPLC5との間のデータ伝送を仲介する。より具体的には、PLCインターフェイス126は、PLC5によって制御される生産ラインの状態に係る情報やワークWに係る情報などをプロセッサ110へ伝送する。
【0055】
通信インターフェイス128は、プロセッサ110と図示しない他のパーソナルコンピュータやサーバ装置などとの間のデータ伝送を仲介する。通信インターフェイス128は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。なお、後述するように、メモリカード106に格納されたプログラムを画像処理装置100にインストールする形態に代えて、通信インターフェイス128を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置100にインストールしてもよい。一例として、通信インターフェイス128は、撮像部8の状態を表わす信号を撮像部8やPLC5などから受信する。当該信号は、撮像部8が撮像中であるか否かを示す。
【0056】
メモリカードインターフェイス130は、プロセッサ110と記録媒体であるメモリカード106との間のデータ伝送を仲介する。すなわち、メモリカード106には、画像処理装置100で実行される制御プログラム150などが格納された状態で流通し、メモリカードインターフェイス130は、このメモリカード106から制御プログラム150を読み出す。また、メモリカードインターフェイス130は、プロセッサ110の内部指令に応答して、撮像部8によって取得されたカメラ画像および/または画像処理装置100における処理結果などをメモリカード106へ書き込む。なお、メモリカード106は、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記録媒体や、CD-ROM(Compact Disk Read Only Memory)などの光学記録媒体等からなる。
【0057】
上述のような汎用的なコンピュータアーキテクチャに従う構造を有するコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および/またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行される場合もある。
【0058】
さらに、本実施の形態に係る制御プログラム150は、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組み合わせられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係る制御プログラム150としては、このような他のプログラムに組み込まれた形態であってもよい。
【0059】
なお、代替的に、制御プログラム150の実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【0060】
<B.ユーザインターフェイス>
本実施の形態に係る画像処理装置100は、予め定義されている複数の処理項目のうちから任意の処理項目の選択を受け付けるユーザインターフェイスを提供する。ユーザは、ユーザインターフェイスにおいて任意の処理項目を選択および配置することにより、テンプレートデータ10および追加データ20を作成できる。なお、本明細書における処理項目は、特定の用途を有する機能単位であり、「ユニット」とも称される。各処理項目について、処理対象および処理結果を特定することができるようになっている。
【0061】
ユーザインターフェイスを操作するユーザには、SE、SIer、ベンダー、生産ラインの管理者、生産ラインの作業員等が含まれる。画像処理プログラムの設計段階に応じて、ユーザインターフェイスを操作するユーザが異なる。例えば、画像処理プログラムの設計の初期段階では、SE,SIer、ベンダー等がユーザインターフェイスを操作することにより、テンプレートデータ10が作成される。画像処理プログラムの設計の最終段階では、ベンダー、管理者、作業員等がユーザインターフェイスを操作することにより、追加データ20が作成される。
【0062】
図4は、実施の形態に係る画像処理装置が提供するユーザインターフェイスの一例を示す図である。画像処理装置100は、
図4に示されるように、予め定義された複数の処理項目のうち画像処理に用いる1つ以上の処理項目の選択、およびその選択された処理項目の実行順序の指定を受け付けるためのユーザインターフェイス300を提供する。
【0063】
ユーザインターフェイス300は、作業領域302と、オブジェクト選択領域304と、カメラ画像表示領域306と、挿入/追加ボタン308と、順序入替ボタン310とを含む。
【0064】
オブジェクト選択領域304には、複数のオブジェクトが一覧表示される。複数のオブジェクトは、予め準備された複数の処理項目の各々に対応するオブジェクト400を含む。複数の処理項目は、例えば、画像処理装置100に接続され得る撮像部8(
図1参照)から画像を取得するための取得処理を定義する処理項目、画像内において検査対象物を表わす領域のサーチ処理を定義する処理項目、画像内において指定色の画素をラベリングする処理を定義する処理項目などを含む。オブジェクト400は、画像処理プログラムの設定のために利用される。なお、
図4では、「ラベリング」に対応するオブジェクトにのみ符号「400」を付与しているが、他の処理項目(例えば、「サーチ」,・・・,「円形角度取得」)に対応するオブジェクトも「オブジェクト400」である。
【0065】
さらに、オブジェクト選択領域304には、オブジェクト400とは異なるオブジェクト402が表示される。オブジェクト402は、挿入位置を設定するために利用される。
【0066】
ユーザは、ユーザインターフェイス300のオブジェクト選択領域304において、所望のオブジェクト400,402を選択する((1)処理項目を選択)とともに、作業領域302において選択したオブジェクトを追加すべき位置(順序)を選択する((2)追加位置を選択)。そして、ユーザが挿入/追加ボタン308を選択する((3)挿入/追加ボタンを押す)と、選択されたオブジェクトが作業領域302に追加される((4)オブジェクトが追加される)。また、ユーザは、作業領域302においてオブジェクトを選択した上で、順序入替ボタン310を選択することで、オブジェクトの配置順序を適宜変更することもできる。
【0067】
ユーザは、この処理を適宜繰り返すことで、目的の画像処理プログラムを実現するためのテンプレートデータ10および追加データ20の設定を行なう。
【0068】
その後、テンプレートデータ10および追加データ20が指定されると、指定されたテンプレートデータ10および追加データ20に基づいて、画像処理プログラム30の実行が開始される。より具体的には、テンプレートデータ10および追加データ20に基づいて、画像処理プログラム30に対応する命令列が生成される。この命令列がプロセッサにおいて実行されることで、目的の画像処理が実現される。なお、この命令列は、プロセッサに与えられるネイティブコードであってもよいし、OSやミドルウェアに対して与えられる内部コマンドであってもよいし、これらを混合したものであってもよい。
【0069】
<C.テンプレートデータの作成方法>
次に、テンプレートデータ10の作成方法について説明する。例えば、テンプレートデータ10は、画像処理装置100が生産ラインに持ち込まれる前に、SE、SIer、ベンダー等の入力に従って作成される。
【0070】
図5は、実施の形態に係るテンプレートデータ10の作成方法の一例を示す図である。ステップS1に示されるように、初期状態において、ユーザインターフェイス300の作業領域302には、オブジェクトが配置されていない。あるいは、初期状態において、通常使用される処理項目「カメラ画像入力」に対応するオブジェクト400が配置されていてもよい。この状態において、オブジェクト選択領域304(
図4参照)に表示されるオブジェクト400をユーザが選択することにより、ステップS2に示されるように、1以上のオブジェクト400が作業領域302に追加される。ユーザは、共通フロー11を構成する処理項目に対応するオブジェクト400を選択する。また、ユーザは、選択した1以上のオブジェクト400の配置順序が当該1以上のオブジェクト400に対応する1以上の処理項目の実行順序と一致するように、当該1以上のオブジェクト400を配置する。
図5に例示される作業領域302では、オブジェクト400a~400eが上下方向に沿ってこの順に配置されている。なお、以下では、オブジェクト400a~400eを特に区別しない場合、オブジェクト400a~400eの各々を単に「オブジェクト400」という。
【0071】
さらに、オブジェクト選択領域304に表示されるオブジェクト402をユーザが選択することにより、ステップS3に示されるように、1以上のオブジェクト402が作業領域302に追加される。ユーザは、新たな処理項目の挿入を許可する位置にオブジェクト402を配置する。
図5に例示される作業領域302では、オブジェクト400cとオブジェクト400dとの間にオブジェクト402が配置されている。なお、オブジェクト402が配置されると、オブジェクト402の直下にオブジェクト403が自動的に配置される。
【0072】
予め準備される複数の処理項目の中には、予め設定された1以上のパラメータの値を用いて実行される処理項目が含まれる。このような処理項目について、ユーザは、当該1以上のパラメータの値を予め設定する必要がある。そのため、プロセッサ110は、作業領域302に配置されたオブジェクト400が選択されると、選択されたオブジェクト400に対応する処理項目の実行に必要なパラメータの値を設定するためのウィンドウを表示する。
【0073】
図6は、パラメータの値を設定するためのウィンドウの一例を示す図である。パラメータの種別は、処理項目に応じて予め定められる。
図6には、
図5に例示される作業領域302に配置されたオブジェクト400aに対応するウィンドウ500が示される。
図6に例示されるウィンドウ500は、パラメータ「ShutterSpeed」,「Gain」の値を設定するための入力欄502と、値の変更の可否を設定するための入力欄504とを含む。ユーザは、入力欄502にパラメータの値を入力し、入力欄504に変更可否を入力する。
【0074】
プロセッサ110は、作業領域302に配置されたオブジェクト400,402,403およびその配置順序と、作業領域302に配置された各オブジェクト400に対応するウィンドウ500への入力とに応じて、テンプレートデータ10を作成する。
図2を参照して説明したように、テンプレートデータ10は、1以上の指定処理項目12と、当該1以上の指定処理項目12の実行順序とを示す。さらに、テンプレートデータ10は、当該1以上の指定処理項目12が当該実行順序に従って並べられた共通フロー11において、新たな処理項目の挿入が許可される挿入位置13を示す。加えて、テンプレートデータ10は、指定処理項目12の実行に必要なパラメータの値と、当該パラメータの値の変更可否とを示す。
【0075】
プロセッサ110は、作業領域302に配置された各オブジェクト400に対応する処理項目を指定処理項目12として設定する。プロセッサ110は、作業領域302に配置された1以上のオブジェクト400の配置順序に基づいて、1以上の指定処理項目12の実行順序を設定する。さらに、プロセッサ110は、作業領域302に配置されたオブジェクト402の配置順序に基づいて、挿入位置13を設定する。
【0076】
図7は、実施の形態に係るテンプレートデータ10の一例を示す図である。
図7には、
図5に例示される作業領域302に配置されたオブジェクト400a~400e,402,403に基づいて作成されたテンプレートデータ10が示される。
図7に例示されるテンプレートデータ10は、テーブル形式を有する。ただし、テンプレートデータ10は、テーブル形式に限定されない。
【0077】
図7に示されるように、テンプレートデータ10は、作業領域302に配置されたオブジェクト400,402,403の各々に対応するレコード14を含む。以下、オブジェクト400に対応するレコード14を「レコード14_0」とし、オブジェクト402に対応するレコード14を「レコード14_2」とし、オブジェクト403に対応するレコード14を「レコード14_3」とする。作業領域302に配置されたオブジェクト400は、共通フロー11に含まれる指定処理項目12を示す。そのため、レコード14_0は、指定処理項目12に関する情報を示す。作業領域302に配置されたオブジェクト402は、共通フロー11の挿入位置13の開始点を示す。そのため、レコード14_2は、挿入位置13の開始点に関する情報を示す。作業領域302に配置されたオブジェクト403は、共通フロー11の挿入位置13の終了点を示す。そのため、レコード14_2は、挿入位置13の終了点に関する情報を示す。
【0078】
各レコード14は、ユニット番号10aと、ユニット識別名10bと、ユニットID10cと、パラメータ識別名10dと、設定値10eと、変更可否10fとを含む。
【0079】
レコード14_0のユニット識別名10bには、オブジェクト400に対応する処理項目(指定処理項目12)の名称が設定される。レコード14_0のユニットID10cには、オブジェクト400に対応する処理項目(指定処理項目12)を識別するIDが設定される。
【0080】
なお、作業領域302に同一のオブジェクト400,402が複数個配置されている場合、プロセッサ110は、複数の同一のオブジェクトを区別するために、ユーザ入力に従ってユニット識別名10bを変更してもよい。
【0081】
レコード14_2,14_3のユニット識別名10bには、オブジェクト402,403の名称がそれぞれ設定される。レコード14_2,14_3のユニットID10cには、オブジェクト402,403に対応するIDがそれぞれ設定される。
【0082】
なお、作業領域302に同一のオブジェクト400,402が複数個配置されている場合、プロセッサ110は、複数の同一のオブジェクトを区別するために、当該オブジェクトに対応するIDに枝番を付与して、枝番が付与されたIDをユニットID10cに設定する。あるいは、プロセッサ110は、複数の同一のオブジェクトを区別するために、当該複数のオブジェクトに対して互いに異なるIDを付与してもよい。
【0083】
各レコード14のユニット番号10aには、作業領域302におけるオブジェクト400,402,403の配置順序が設定される。レコード14_0のユニット番号10aは、対応するユニット識別名10bで示される指定処理項目の実行順序を示す。レコード14_2のユニット番号10aは、新たな処理項目の挿入が許可される挿入位置13(
図2参照)の開始点を示す。レコード14_3のユニット番号10aは、挿入位置13(
図2参照)の終了点を示す。
【0084】
レコード14_0のパラメータ識別名10dには、オブジェクト400に対応する処理項目(指定処理項目12)の実行に必要なパラメータの名称が設定される。なお、処理項目の実行に必要な複数のパラメータが存在する場合、パラメータ識別名10dには、当該複数のパラメータの各々の名称が設定される。
【0085】
レコード14_0の設定値10eには、オブジェクト400に対応するウィンドウ500(
図6参照)の入力欄502に入力された値(以下、「デフォルト値」と称する。)が設定される。レコード14_0の変更可否10fには、オブジェクトに対応するウィンドウ500(
図6参照)の入力欄504に入力された可否が設定される。
【0086】
なお、レコード14_2,14_3のパラメータ識別名10d、設定値10eおよび変更可否10fは、ブランクである。
【0087】
プロセッサ110は、作成したテンプレートデータ10をハードディスク120に保存する。このとき、プロセッサ110は、テンプレートデータ10の上書きを禁止する。これにより、テンプレートデータ10の編集が不可となる。
【0088】
<D.追加データの作成方法>
次に、追加データ20の作成方法について説明する。例えば、追加データ20は、画像処理装置100を生産ラインに持ち込む際または持ち込んだ後に、ベンダー、生産ラインの管理者、生産ラインの作業員等の入力に従って作成される。
【0089】
図8は、実施の形態に係る追加データ20を作成するときのユーザインターフェイスの一例を示す図である。ステップS11に示されるように、プロセッサ110は、指定されたテンプレートデータ10をハードディスク120から読み出し、読み出したテンプレートデータ10によって示される共通フロー11を作業領域302に表示させる。作業領域302には、テンプレートデータ10によって示される1以上の指定処理項目12にそれぞれ対応する1以上のオブジェクト400が実行順序に従って配置される。さらに、テンプレートデータ10によって示される挿入位置13(
図2参照)にオブジェクト402,403が連続して配置される。
図8に例示される作業領域302には、オブジェクト400a~400eがこの順に配置されており、オブジェクト400cとオブジェクト400dとの間にオブジェクト402,403が連続して配置されている。
【0090】
テンプレートデータ10は編集不可である。また、テンプレートデータ10によって示される共通フロー11において、新たな処理項目を挿入位置13に挿入することのみ許可される。そのため、プロセッサ110は、作業領域302において、連続するオブジェクト402,403の間の位置のみ選択可能とする。プロセッサ110は、選択可能な位置をユーザに認識させるために、連続するオブジェクト402,403の表示形式と、これら以外のオブジェクトの表示形式とを異ならせる。
図8に例示される作業領域302では、連続するオブジェクト402,403以外のオブジェクトに斜線が施されている。なお、表示形式を異ならせる方法は、
図8に例示される方法に限定されない。例えば、連続するオブジェクト402,403以外のオブジェクトがグレー表示されてもよい。
【0091】
共通フロー11が作業領域302に表示されている状態において、ユーザは、連続するオブジェクト402,403の間の位置を選択し、かつ、オブジェクト選択領域304(
図4参照)に表示されるオブジェクト400を選択する。ユーザは、個別フロー21を構成する所望の処理項目に対応するオブジェクト400を選択する。これにより、ステップS12に示されるように、オブジェクト402とオブジェクト403との間に1以上のオブジェクト400が挿入される。
図8に例示される作業領域302では、オブジェクト402とオブジェクト403との間に、オブジェクト400f,400gがこの順に挿入されている。
【0092】
次に、ステップS13に示されるように、挿入したオブジェクト400に対応する処理項目の実行に必要なパラメータの値が設定される。パラメータの値の設定は、
図6に示すような処理項目に対応するウィンドウ500を用いて行なわれる。
【0093】
次に、テンプレートデータ10によって示される1以上の指定処理項目12の実行に必要な1以上のパラメータのうち変更可であるパラメータの値が設定される。ステップS14に示されるように、プロセッサ110は、変更可であるパラメータの値を設定するためのウィンドウ510を表示させる。ウィンドウ510は、変更可であるパラメータの値を設定するための入力欄512を含む。ユーザは、入力欄512にパラメータの値を入力する。
【0094】
プロセッサ110は、オブジェクト402とオブジェクト403との間に挿入されたオブジェクト400およびその配置順序と、ウィンドウ500,510への入力とに応じて、追加データ20を作成する。
図2を参照して説明したように、追加データ20は、1以上の追加処理項目22と、当該1以上の追加処理項目22の実行順序とを示す。さらに、追加データ20は、当該1以上の追加処理項目22の実行に必要なパラメータの値を示す。加えて、追加データ20は、共通フロー11を構成する1以上の指定処理項目12の実行に必要な1以上のパラメータのうち、変更可に設定されたパラメータ(以下、「個別パラメータ」と称する。)の値を示す。
【0095】
プロセッサ110は、作業領域302のオブジェクト402とオブジェクト403との間に挿入された各オブジェクト400に対応する処理項目を追加処理項目22として設定する。プロセッサ110は、オブジェクト402とオブジェクト403との間に挿入された1以上のオブジェクト400の配置順序に基づいて、1以上の追加処理項目22の実行順序を設定する。さらに、プロセッサ110は、ウィンドウ500への入力に従って、追加処理項目22の実行に必要なパラメータの値を設定する。プロセッサ110は、ウィンドウ510への入力に従って、共通フロー11を構成する1以上の指定処理項目12の実行に必要な1以上のパラメータのうち個別パラメータの値を設定する。
【0096】
図9は、実施の形態に係る追加データ20の一例を示す図である。
図9には、
図8に例示される作業領域302におけるオブジェクト400f、400gと、ウィンドウ500,510への入力とに基づいて作成された追加データ20が示される。
図9に例示される追加データ20は、テーブル形式で表される。ただし、追加データ20は、テーブル形式に限定されない。
【0097】
図9に示されるように、追加データ20は、共通フロー11に関する部分データ25と、個別フロー21に関する部分データ26とを含む。
【0098】
部分データ25は、各個別パラメータに対応するレコード24_0を含む。レコード24_0は、データ種別20aと、ユニット識別名20cと、ユニットID20dと、パラメータ識別名20eと、設定値20fとを含む。レコード24_0のユニット識別名20cおよびユニットID20dには、個別パラメータを用いて実行される指定処理項目の名称およびIDがそれぞれ設定される。レコード24_0のパラメータ識別名20eには、個別パラメータの名称が設定される。レコード24_0の設定値20fには、ウィンドウ510(
図8参照)の入力欄512に入力された値が設定される。
【0099】
部分データ26は、レコード24_1と、1以上のレコード24_2とを含む。レコード24_1は、ステップS12(
図8参照)においてオブジェクト400が挿入された挿入位置13の開始点を示すオブジェクト402に対応する。1以上のレコード24_2は、ステップS12において挿入された1以上のオブジェクト400にそれぞれ対応する。
【0100】
レコード24_1は、「追加」を示すデータ種別20aと、ユニット識別名20cと、ユニットID20dとを含む。レコード24_1のユニット識別名20cおよびユニットID20dには、挿入位置13の開始点を示すオブジェクト402の名称およびIDがそれぞれ設定される。
【0101】
レコード24_2は、ユニット番号20bと、ユニット識別名20cと、ユニットID20dと、パラメータ識別名20eと、設定値20fと、変更可否20gとを含む。
【0102】
レコード24_2のユニット識別名20cおよびユニットID20dには、オブジェクト400に対応する処理項目(追加処理項目22)の名称およびIDが設定される。レコード24_2のユニット番号20bには、オブジェクト402とオブジェクト403との間における、オブジェクト400の配置順序が設定される。レコード24_2のユニット番号20bは、対応するユニット識別名20cおよびユニットID20dによって識別される追加処理項目22の実行順序を示す。
【0103】
レコード24_2のパラメータ識別名20eには、オブジェクト400に対応する処理項目(追加処理項目22)の実行に必要なパラメータの名称が設定される。レコード24_2の設定値20fには、オブジェクト400に対応するウィンドウ500(
図6参照)の入力欄502に入力された値が設定される。レコード24_2の変更可否20gには、オブジェクト400に対応するウィンドウ500の入力欄504に入力された可否が設定される。
【0104】
<E.テンプレートデータと追加データとに基づいた画像処理プログラムの実行>
次に、テンプレートデータ10と追加データ20とに基づいた画像処理プログラム30の実行方法について説明する。
【0105】
プロセッサ110は、テンプレートデータ10と追加データ20とをハードディスク120から読み出す。プロセッサ110は、読み出したテンプレートデータ10と追加データ20とに基づいて、テンプレートデータ10によって示される共通フロー11に追加データ20によって示される個別フロー21を組み合わせた画像処理プログラム30を実行する。具体的には、プロセッサ110は、共通フロー11における挿入位置13に個別フロー21を挿入した画像処理プログラム30を実行する。共通フロー11は、上述したように、テンプレートデータ10によって示される1以上の指定処理項目12を、テンプレートデータ10によって示される実行順序に従って並べたフローである。共通フロー11における挿入位置13は、テンプレートデータ10によって示される。個別フロー21は、上述したように、追加データ20によって示される1以上の追加処理項目22を、追加データ20によって示される実行順序に従って並べたフローである。
【0106】
図10は、テンプレートデータと追加データとに基づいて実行される画像処理プログラムの一例を示す図である。
図10には、
図7に例示されるテンプレートデータ10と
図9に例示される追加データ20とに基づいて実行される画像処理プログラム30が示される。
【0107】
プロセッサ110は、追加データ20の部分データ26に含まれるレコード24_1のユニット識別名20cおよびユニットID20dと一致するユニット識別名10bおよびユニットID10cを有するレコード14_2をテンプレートデータ10から特定する。プロセッサ110は、テンプレートデータ10において、特定したレコード14_2とその直下のレコード14_3との間に、追加データ20の部分データ26に含まれるレコード24_2をユニット番号20bの順に従って追加する。
【0108】
さらに、プロセッサ110は、テンプレートデータ10において、「変更可」を示す変更可否10fに対応するパラメータ識別名10dおよび設定値10eを特定する。プロセッサ110は、特定したパラメータ識別名10dと同一のパラメータ識別名20eを含むレコード24_0を、追加データ20の部分データ25から抽出する。プロセッサ110は、テンプレートデータ10において特定した設定値10e(デフォルト値)を、追加データ20から抽出したレコード24_0の設定値20fに変更する。このように、プロセッサ110は、個別パラメータについて、テンプレートデータ10によって示されるデフォルト値ではなく、追加データ20によって示される値を用いる。
【0109】
このようにして、プロセッサ110は、
図10に示されるような画像処理プログラム30を作成し、作成した画像処理プログラム30を実行する。
【0110】
<F.画像処理装置の機能構成>
次に、本実施の形態に係る画像処理装置の機能構成について説明する。
図11は、本実施の形態に係る画像処理装置の機能構成を示す模式図である。
図11に示されるように、画像処理装置100は、取得部152と、作成部154と、プログラム実行部156とを備える。取得部152、作成部154およびプログラム実行部156は、プロセッサ110が制御プログラム150を実行することにより実現される。
【0111】
取得部152は、テンプレートデータ10を取得する。取得部152は、外部装置からテンプレートデータ10を取得してもよい。あるいは、取得部152は、上記<C.テンプレートデータの作成方法>に従って、テンプレートデータ10を作成してもよい。
【0112】
作成部154は、1以上の追加処理項目22と、当該1以上の追加処理項目22の実行順序とを示す追加データ20を作成する。作成部154は、上記<D.追加データの作成方法>に従って、追加データ20を作成する。
【0113】
プログラム実行部156は、テンプレートデータ10と追加データ20とに基づいて、テンプレートデータ10によって示される共通フロー11における挿入位置13に、追加データ20によって示される個別フロー21を挿入した画像処理プログラム30を実行する。プログラム実行部156は、上記<E.テンプレートデータと追加データとに基づいた画像処理プログラムの実行>に従って、画像処理プログラム30を実行する。
【0114】
<G.フローチャート>
図12は、画像処理装置における画像処理プログラムの実行処理の流れを示すフローチャートである。
図12に示される処理は、たとえば、画像処理装置100のプロセッサ110(
図2参照)が制御プログラム150を実行することにより実現される。他の局面において、処理の一部または全部が、他のハードウェアによって実行されてもよい。
【0115】
ステップS101において、プロセッサ110は、テンプレートデータ10を取得する。テンプレートデータ10は、1以上の指定処理項目12と、1以上の指定処理項目12の実行順序と、1以上の指定処理項目12が当該実行順序に従って並べられた共通フロー11において、新たな処理項目の挿入が許可される挿入位置13とを示す。
【0116】
ステップS102において、プロセッサ110は、1以上の追加処理項目22と、1以上の追加処理項目22の実行順序とを示す追加データ20を作成する。
【0117】
ステップS103において、プロセッサ110は、テンプレートデータ10と追加データ20とに基づいて、共通フロー11における挿入位置13に、1以上の追加処理項目22が実行順序に従って並べられた個別フロー21を挿入した画像処理プログラム30を実行する。
【0118】
<H.作用・効果>
以上のように、本実施の形態に係る画像処理装置100は、テンプレートデータ10を取得する取得部152を備える。テンプレートデータ10は、1以上の指定処理項目12と、1以上の指定処理項目12の実行順序と、1以上の指定処理項目12が当該実行順序に従って並べられた共通フロー11において、新たな処理項目の挿入が許可される挿入位置13とを示す。画像処理装置100は、さらに、作成部154と、プログラム実行部156とを備える。作成部154は、1以上の追加処理項目22と、1以上の追加処理項目22の実行順序とを示す追加データ20を作成する。プログラム実行部156は、テンプレートデータ10と追加データ20とに基づいて、共通フロー11における挿入位置13に、1以上の追加処理項目22が実行順序に従って並べられた個別フロー21を挿入した画像処理プログラム30を実行する。
【0119】
上記の構成によれば、テンプレートデータ10は、共通フロー11における挿入位置13を示す。そして、挿入位置13に個別フロー21が挿入される。そのため、挿入位置13以外の位置に誤って個別フロー21が挿入されることを防止できる。すなわち、挿入位置13以外の共通フロー11は、編集されず、そのままの状態で実行される。これにより、共通フロー11と個別フロー21とを用いて所望の画像処理プログラムを容易に実行できる。
【0120】
テンプレートデータ10は、1以上の指定処理項目12の実行に必要な1以上のパラメータの各々について、デフォルト値と、デフォルト値からの変更の可否とをさらに示す。追加データは、1以上のパラメータのうちデフォルト値からの変更が可である個別パラメータについて、変更後の値をさらに示す。プログラム実行部156は、個別パラメータについて、追加データ20によって示される値を用いる。
【0121】
上記の構成によれば、デフォルト値からの変更を望まない場合、ユーザは、デフォルト値からの変更を不可とするテンプレートデータ10を作成することにより、必ずデフォルト値を用いて指定処理項目12を実行させることができる。また、デフォルト値からの変更が可である個別パラメータについては、品種に適した値に適宜変更することができる。
【0122】
取得部152は、予め準備された複数の処理項目からの1以上の指定処理項目12の選択と、1以上の指定処理項目12の実行順序と、挿入位置13との指定を受け付けるユーザインターフェイス300を提供する。そして、取得部152は、ユーザインターフェイス300への入力に応じて、テンプレートデータ10を作成する。
【0123】
上記の構成によれば、ユーザは、ユーザインターフェイス300を操作することにより、所望の共通フロー11を定義付けるためのテンプレートデータ10を容易に作成できる。
【0124】
<I.変形例>
(変形例1)
上記の説明では、テンプレートデータ10は、共通フロー11における1つの挿入位置13を示す。しかしながら、テンプレートデータ10は、共通フロー11における複数の挿入位置を示してもよい。
【0125】
図13は、変形例1に係るテンプレートデータ10の一例を示す図である。
図13に例示されるテンプレートデータ10は、3つのレコード14_2と、3つのレコード14_2にそれぞれ連続する3つのレコード14_3とを含む。3つのレコード14_2に含まれるユニット識別名10bおよびユニットID10cは、互いに異なる。
【0126】
連続するレコード14_2,14_3の各組は、新たな処理項目の挿入が許可される挿入位置を示す。2行目のレコード14_2および3行目のレコード14_3の組は、挿入位置13aを示す。4行目のレコード14_2および5行目のレコード14_3の組は、挿入位置13bを示す。7行目のレコード14_2および8行目のレコード14_3の組は、挿入位置13cを示す。
【0127】
プロセッサ110は、共通フローにおける3つの挿入位置13a~13cにそれぞれ挿入される3つの個別フローを示す追加データ20を作成する。
【0128】
図14は、変形例1に係る追加データの作成方法を示す図である。ステップS21に示されるように、プロセッサ110は、指定されたテンプレートデータ10をハードディスク120から読み出し、読み出したテンプレートデータ10によって示される共通フロー11を作業領域302に表示させる。
【0129】
図14に例示される作業領域302には、
図13に例示されるテンプレートデータ10に対応する共通フロー11が表示されている。すなわち、
図13に例示されるテンプレートデータ10の1行目および6行目のレコード14_0のユニット識別名10bの処理項目にそれぞれ対応するオブジェクト400a,400hがこの順に配置される。
【0130】
さらに、テンプレートデータ10の2行目のレコード14_2および3行目のレコード14_3のユニット識別名10bにそれぞれ対応するオブジェクト402a,403aがこの順でオブジェクト400aの直下に配置される。テンプレートデータ10の4行目のレコード14_2および5行目のレコード14_3のユニット識別名10bにそれぞれ対応するオブジェクト402b,403bがこの順でオブジェクト403aの直下に配置される。テンプレートデータ10の7行目のレコード14_2および8行目のレコード14_3のユニット識別名10bにそれぞれ対応するオブジェクト402c,403cがこの順でオブジェクト400hの直下に配置される。なお、以下では、オブジェクト402a~402cを特に区別しない場合、オブジェクト402a~402cの各々を単に「オブジェクト402」という。さらに、オブジェクト403a~403cを特に区別しない場合、オブジェクト403a~403cの各々を単に「オブジェクト403」という。
【0131】
プロセッサ110は、作業領域302において、連続するオブジェクト402a,403aの間の位置、連続するオブジェクト402b,403bの間の位置、および連続するオブジェクト402c,403cの間の位置のみ、新たな処理項目の挿入位置として選択可能とする。プロセッサ110は、連続するオブジェクト402,403の間以外の位置が選択不可であることをユーザに認識させるために、連続するオブジェクト402,403の組以外のオブジェクトに斜線を施す。
【0132】
共通フロー11が作業領域302に表示されている状態において、ユーザは、連続するオブジェクト402,403の間の位置を選択し、かつ、オブジェクト選択領域304(
図4参照)に表示されるオブジェクト400を選択する。これにより、ステップS22に示されるように、オブジェクト402,403の間に1以上のオブジェクト400が挿入される。
【0133】
ユーザは、挿入位置13aに挿入すべき個別フローを構成する1以上の処理項目に対応するオブジェクト400を、連続するオブジェクト402a,403aの間に挿入する。ユーザは、挿入位置13bに挿入すべき個別フローを構成する1以上の処理項目に対応するオブジェクト400を、連続するオブジェクト402b,403bの間に挿入する。ユーザは、挿入位置13cに挿入すべき個別フローを構成する1以上の処理項目に対応するオブジェクト400を、連続するオブジェクト402c,403cの間に挿入する。
【0134】
ステップS22に示されるように、
図14に例示される作業領域302では、オブジェクト402aとオブジェクト403aとの間に、オブジェクト400b,400cがこの順に挿入されている。オブジェクト402bとオブジェクト403bとの間にオブジェクト400iが挿入されている。連続するオブジェクト402cとオブジェクト403cとの間に、オブジェクト400d,400eがこの順に挿入されている。
【0135】
その後、
図6に示すステップS13と同様に、追加したオブジェクト400に対応する処理項目の実行に必要なパラメータの値が設定される。さらに、
図8に示すステップS14と同様に、プロセッサ110は、変更可であるパラメータの値を設定するためのウィンドウ510を表示させ、入力欄512へのパラメータの値の入力を受け付ける。
【0136】
プロセッサ110は、オブジェクト402,403の間に挿入されたオブジェクト400およびその配置順序と、ウィンドウ500,510への入力とに応じて、追加データ20を作成する。
【0137】
図15は、変形例1に係る追加データ20の一例を示す図である。
図15には、
図14に例示される作業領域302に基づいて作成された追加データ20が示される。
【0138】
図15に示されるように、追加データ20は、共通フロー11に関する部分データ25と、3つの個別フローにそれぞれ対応する3つの部分データ26a~26cとを含む。
【0139】
部分データ26a~26cの各々は、
図9に示す部分データ26と同様に、挿入位置の開始点を示すオブジェクト402に対応するレコード24_1と、挿入された1以上のオブジェクト400にそれぞれ対応する1以上のレコード24_2とを含む。
【0140】
部分データ26aは、挿入位置13aに挿入される個別フローに対応するデータである。そのため、部分データ26aのレコード24_1には、オブジェクト402aを識別するユニット識別名20cおよびユニットID20dが設定される。これにより、部分データ26aのレコード24_2によって特定される個別フローは、テンプレートデータ10によって示される挿入位置13aに挿入されるフローとして認識される。従って、部分データ26aの2つレコード24_1には、オブジェクト402aとオブジェクト403aとの間に挿入されたオブジェクト400b,400cに対応する処理項目を特定する情報がそれぞれ設定される。
【0141】
部分データ26bは、挿入位置13bに挿入される個別フローに対応するデータである。そのため、部分データ26bのレコード24_1には、オブジェクト402bを識別するユニット識別名20cおよびユニットID20dが設定される。これにより、部分データ26bのレコード24_2によって特定される個別フローは、テンプレートデータ10によって示される挿入位置13bに挿入されるフローとして認識される。従って、部分データ26bのレコード24_2には、オブジェクト402bとオブジェクト403bとの間に挿入されたオブジェクト400iに対応する処理項目を特定する情報が設定される。
【0142】
部分データ26cは、挿入位置13cに挿入される個別フローに対応するデータである。そのため、部分データ26cのレコード24_1には、オブジェクト402cを識別するユニット識別名20cおよびユニットID20dが設定される。これにより、部分データ26cのレコード24_2によって特定される個別フローは、テンプレートデータ10によって示される挿入位置13cに挿入されるフローとして認識される。従って、部分データ26cの2つレコード24_2には、オブジェクト402cとオブジェクト403cとの間に挿入されたオブジェクト400d,400eに対応する処理項目を特定する情報がそれぞれ設定される。
【0143】
プロセッサ110は、テンプレートデータ10と追加データ20とに基づいて、追加データ20に含まれる3つの部分データ26a~26cの各々のレコード24_1を確認することにより、共通フロー11における挿入位置を特定する。プロセッサ110は、特定した挿入位置に対応する部分データ26のレコード24_2によって示される個別フローを挿入することにより、画像処理プログラム30を作成できる。
【0144】
(変形例2)
テンプレートデータ10は、別のテンプレートデータ40と、当該テンプレートデータ40に対する追加データ50とによって構成されてもよい。
【0145】
テンプレートデータ40は、例えば上記<C.テンプレートデータの作成方法>と同様の方法により予め作成される。テンプレートデータ40は、所望の共通フロー11のうちの一部のフロー(以下、「第1部分フロー41」と称する。)を定義付ける。
【0146】
図16は、変形例2に係るテンプレートデータ40によって定義付けられる第1部分フロー41の一例を示す図である。テンプレートデータ40は、第1部分フロー41に含まれる1以上の指定処理項目42と当該1以上の指定処理項目42の実行順序とを示す。さらに、テンプレートデータ40は、第1部分フロー41において、新たな処理項目の挿入が許可される複数の挿入位置43を示す。
図16に例示されるテンプレートデータ40は、指定処理項目42a,42bがこの順で並べられた第1部分フロー41において、新たな処理項目の挿入が許可される2つの挿入位置43a,43bを示す。挿入位置43aは、指定処理項目42a,42bの間の位置である。挿入位置43bは、指定処理項目42bの直後の位置である。
【0147】
図17は、変形例2に係るテンプレートデータ40の一例を示す図である。
図17には、
図16に示す第1部分フロー41を定義付けるテンプレートデータ40が示される。テンプレートデータ40の形式は、テンプレートデータ10の形式と同じである。すなわち、テンプレートデータ40は、指定処理項目42a,42bに関する情報をそれぞれ示す2つのレコード44_0と、挿入位置43a,43bの開始点に関する情報をそれぞれ示す2つのレコード44_2と、挿入位置43a,43bの終了点に関する情報をそれぞれ示す2つのレコード44_3とを含む。
【0148】
図18は、変形例2に係る追加データ50を作成するときのユーザインターフェイスの一例を示す図である。ステップS31に示されるように、プロセッサ110は、指定されたテンプレートデータ40をハードディスク120から読み出し、読み出したテンプレートデータ40によって示される第1部分フロー41を作業領域302に表示させる。
図18に例示される作業領域302には、
図16に示される第1部分フロー41が表示されている。すなわち、指定処理項目42a,42bにそれぞれ対応するオブジェクト400a,400hがこの順に配置されている。オブジェクト400a,400hの間に、挿入位置43aの開始点および終了点にそれぞれ対応するオブジェクト402a,403aが連続して配置されている。さらに、オブジェクト400hの直下に、挿入位置43bの開始点および終了点にそれぞれ対応するオブジェクト402c,403c連続して配置されている。
【0149】
第1部分フロー41が作業領域302に表示されている状態において、ユーザは、第1部分フロー41における挿入位置43a,43bのうちの一方を選択し、かつ、オブジェクト選択領域304(
図4参照)に表示されるオブジェクト400,402を選択する。
【0150】
図18に示す例では、ユーザは、オブジェクト402c,403cの間の位置を選択し、かつ、第1部分フロー41の挿入位置43bに挿入する第2部分フロー51を構成する処理項目に対応するオブジェクト400d,400eを選択する。これにより、ステップS32に示されるように、オブジェクト402c,403cの間に、オブジェクト400d,400eがこの順に挿入されている。
【0151】
プロセッサ110は、作業領域302に追加されたオブジェクトおよびそれらの配置順序に応じて、追加データ50を作成する。
【0152】
図19は、変形例2に係る追加データ50の一例を示す図である。
図19には、
図18に例示される作業領域302におけるオブジェクトの配置に応じて作成された追加データ50が示される。追加データ50の形式は、追加データ20の形式と同じである。すなわち、追加データ50は、第1部分フロー41に関する部分データ55と、第2部分フロー51に関する部分データ56とを含む。部分データ55は、第1部分フロー41を構成する指定処理項目42の実行に必要な1以上のパラメータのうち、変更可である各パラメータ(個別パラメータ)に対応するレコード54_0を含む。部分データ56は、第2部分フロー51が挿入される挿入位置43bを特定するためのレコード54_1と、第2部分フロー51を構成する1以上の指定処理項目52をそれぞれ特定するための1以上のレコード54_2とを含む。1以上のレコード54_2の各々のユニット番号50bは、対応するユニット識別名50cの実行順序を示す。
【0153】
このように、プロセッサ110は、作業領域302に配置されたオブジェクト400d,400eにそれぞれ対応する2つの処理項目に基づいて、挿入位置43bに挿入される第2部分フロー51を構成する指定処理項目52a,52bを設定する。プロセッサ110は、さらに、作業領域302に配置されたオブジェクト400d,400eの順番に基づいて、指定処理項目52a,52bの実行順序を設定する。そして、プロセッサ110は、指定処理項目52a,52bとそれらの実行順序とを示す追加データ50を作成する。
【0154】
図20および
図22を参照して、変形例2に係る追加データ20の作成方法について説明する。
図20は、変形例2に係る追加データ20の作成方法の流れを説明する図である。
図22は、テンプレートデータ10に対する追加データ20の一例を示す図である。
【0155】
図20のステップS41に示されるように、プロセッサ110は、テンプレートデータ10を構成するテンプレートデータ40と追加データ50とをハードディスク120から読み出す。
【0156】
以下、プロセッサ110は、
図17に示すテンプレートデータ40と、
図19に示す追加データ50とを読み出したものとする。すなわち、テンプレートデータ40は、指定処理項目42a,42bがこの順に並べられた第1部分フロー41を定義付ける。さらに、テンプレートデータ40は、指定処理項目42a,42bの間の挿入位置43aと、指定処理項目42bの後の挿入位置43bとを示す。追加データ50は、挿入位置43a,43bのうち選択された挿入位置43bに挿入される第2部分フロー51を定義付ける。追加データ50は、第2部分フロー51を構成する1以上の指定処理項目52と、当該1以上の指定処理項目52の実行順序とを示す。
図20に例示される第2部分フロー51は、指定処理項目52a,52bがこの順で並べられたフローである。
【0157】
次に、ステップS42に示されるように、プロセッサ110は、テンプレートデータ40と追加データ50とに基づいて、第1部分フロー41と第2部分フロー51とを組み合わせた共通フロー11を作成する。プロセッサ110は、上記<E.テンプレートデータと追加データとに基づいた画像処理プログラムの実行>に記載の方法に従って、第1部分フロー41と第2部分フロー51とを組み合わせた共通フロー11を作成すればよい。
【0158】
すなわち、テンプレートデータ40と追加データ50とで構成されるテンプレートデータ10は、指定処理項目42a,42b,52a,52bを、共通フロー11を構成する指定処理項目として示す。指定処理項目42a,42b,52a,52bの実行順序は、第1部分フロー41における挿入位置43a,43bのうち選択された挿入位置43bに、指定処理項目52a,52bが実行順序に従って並べられた第2部分フロー51を挿入した共通フロー11に従って設定される。第1部分フロー41における挿入位置43bに第2部分フロー51を挿入した共通フロー11において、新たな処理項目の挿入が許可される挿入位置は、未選択の挿入位置43aとなる。
【0159】
次に、ステップS43に示されるように、プロセッサ110は、共通フロー11を構成する処理項目に対応するオブジェクトを作業領域302に表示する。プロセッサ110は、テンプレートデータ40に含まれるレコード44_0,
44_2,
44_3の各々のユニット識別名40bに対応するオブジェクトを、ユニット番号40aの順に従って配置する。
図20に示す例では、指定処理項目42a,42bにそれぞれ対応するオブジェクト400a,400hがこの順に配置される。また、挿入位置43aの開始点および終了点にそれぞれ対応するオブジェクト402a,403aがオブジェクト400a,400hの間に配置される。さらに、挿入位置43bの開始点および終了点にそれぞれ対応するオブジェクト402
c,403
cがオブジェクト400hの後に配置される。
【0160】
さらに、プロセッサ110は、追加データ50の部分データ56に含まれるレコード54_1に従って特定される位置に、レコード54_2のユニット識別名50cに対応するオブジェクトをユニット番号50bの順に従って挿入する。
図20に示す例では、オブジェクト402
c,403
cの間に、指定処理項目52a,52bにそれぞれ対応するオブジェクト400d,400eがこの順で挿入される。追加データ50は、挿入位置43aに挿入される処理項目を示していない。そのため、挿入位置43aの開始点および終了点にそれぞれ対応するオブジェクト402a,40
3aは連続したままとなる。
【0161】
プロセッサ110は、作業領域302において、連続するオブジェクト402a,403aの間の位置のみ、新たな処理項目の追加位置として選択可能とする。プロセッサ110は、連続するオブジェクト402a,403aの間以外の位置が選択不可であることをユーザに認識させるために、連続するオブジェクト402a,403aの組以外のオブジェクトに斜線を施す。
【0162】
共通フロー11が作業領域302に表示されている状態において、ユーザは、連続するオブジェクト402a,403aの間の位置を選択し、かつ、オブジェクト選択領域304(
図4参照)に表示されるオブジェクト400を選択する。これにより、ステップS44に示されるように、オブジェクト402a,403aの間に1以上のオブジェクト400が挿入される。
図20に示す例では、オブジェクト400b,400cがこの順で挿入されている。
【0163】
プロセッサ110は、オブジェクト402a,403aの間に挿入されたオブジェクト400b,400cおよびその配置順序に応じて、追加データ20を作成する。追加データ20は、上記<D.追加データの作成方法>に従って作成される。
図22には、
図20に示す作業領域302に応じて作成された追加データ20が示される。追加データ20の部分データ26は、挿入位置43aの開始点に関する情報を示すレコード24_1と、挿入位置43aに追加されたオブジェクト400
b,400
cに対応する情報をそれぞれ示す2つのレコード24_2とを含む。
【0164】
プロセッサ110は、<E.テンプレートデータと追加データとに基づいた画像処理プログラムの実行>に記載の方法に従って、テンプレートデータ10(テンプレートデータ40および追加データ50)と追加データ20とに基づいて、画像処理プログラムを作成すればよい。
【0165】
なお、上記の例では、テンプレートデータ40が2個の挿入位置43を示し、追加データ50が当該2個の挿入位置43のうちから選択された1個の挿入位置43に挿入される第2部分フロー51を示すものとした。しかしながら、テンプレートデータ40がN個の挿入位置43を示し、追加データ50が当該N個の挿入位置43のうちから選択されたM個の挿入位置43の各々について、当該挿入位置に挿入される第2部分フロー51を示してもよい。Nは2以上の整数であり、MはN未満の正の整数である。この場合、テンプレートデータ10は、第1部分フロー41におけるM個の挿入位置43の各々に第2部分フロー51を挿入したときの、前記N個の挿入位置43のうち未選択の挿入位置43を挿入位置13として示す。
【0166】
変形例2によれば、テンプレートデータ40が作成済みである場合、追加データ50を作成することにより、テンプレートデータ10を容易に作成できる。また、画像処理プログラムの作成業務を複数のユーザで分担できる。上述したように、画像処理装置100のユーザには、SE、SIer、ベンダー、生産ラインの管理者、生産ラインの作業者等が含まれる。例えば、テンプレートデータ40をSEが作成し、追加データ50をベンダーが作成し、追加データ20を生産ラインの管理者が作成してもよい。
【0167】
なお、上記の説明では、プロセッサ110は、テンプレートデータ40と追加データ50とで構成されるテンプレートデータ10によって定義付けられる共通フロー11を作業領域302に表示したとき、連続するオブジェクト402,403の間の位置を、新たな処理項目の挿入が許可される挿入位置13とする。しかしながら、追加データ50は、テンプレートデータ40によって示される複数の挿入位置43のうち新たな処理項目の挿入を禁止する挿入位置43を示してもよい。この場合、プロセッサ110は、連続するオブジェクト402,403の間の位置のうち、追加データ50によって新たな処理項目の挿入が禁止されている位置を挿入位置から除外する。
【0168】
図21は、変形例2に係る追加データ50を作成するときのユーザインターフェイスの別の例を示す図である。プロセッサ110は、ステップS31’において、テンプレートデータ40を読み出す。
図21に例示されるテンプレートデータ40は、処理項目42a,42bがこの順に実行される第1部分フロー41を示す。さらに、テンプレートデータ40は、3つの挿入位置43c~43eを示している。
【0169】
プロセッサ110は、ステップS32’において、テンプレートデータ40によって示される第1部分フロー41を構成する処理項目42a,42bにそれぞれ対応するオブジェクト400a,400bを作業領域302に表示する。さらに、プロセッサ110は、挿入位置43c~43eの各々について、開始点および終了点に対応するオブジェクトも作業領域302に表示する。具体的には、挿入位置43cの開始点および終了点にそれぞれ対応するオブジェクト402c,403cと、挿入位置43dの開始点および終了点にそれぞれ対応するオブジェクト402d,403dと、挿入位置43eの開始点および終了点にそれぞれ対応するオブジェクト402e,403eとが表示される。そして、プロセッサ110は、作業領域302へのオブジェクトの追加を受け付ける。
図21に例示される作業領域302において、ユーザは、挿入位置43eに対応するオブジェクト402e,403eの間に、第2部分フロー51を構成する処理項目に対応するオブジェクト400d,400eを配置している。さらに、ユーザは、挿入位置43cに対応するオブジェクト402c,403cを、新たな処理項目の挿入の禁止位置として指定する旨を入力している。これにより、プロセッサ110は、3つの挿入位置43c~43eのうち挿入位置43eに挿入される第2部分フロー51を定義付ける追加データ50を作成する。さらに、プロセッサ110は、挿入位置43cへの新たな処理項目の挿入を禁止する旨のデータを追加データ50に含ませる。なお、新たな処理項目の挿入の禁止位置の指定方法は特に限定されない。
【0170】
この例では、プロセッサ110は、テンプレートデータ40と追加データ50とで構成されるテンプレートデータ10によって定義付けられる共通フロー11において、3つの挿入位置43c~43eのうち挿入位置43c,43e以外の挿入位置43dを、新たな処理項目の挿入が許可される挿入位置13とする。
【0171】
(変形例3)
追加データ50は、第1部分フロー41の挿入位置43に挿入されるフローにおける、新たな処理項目の挿入が許可される挿入位置を示してもよい。
【0172】
変形例3に係る追加データ50は、上記<D.追加データの作成方法>に従って作成される。ただし、変形例3では、追加データ50を作成する際に、作業領域302にオブジェクト402も追加される。
【0173】
図23は、変形例3に係る追加データ50を作成するときのユーザインターフェイスの一例を示す図である。ステップS51に示されるように、プロセッサ110は、指定されたテンプレートデータ40をハードディスク120から読み出し、読み出したテンプレートデータ40によって示される第1部分フロー41を作業領域302に表示させる。
図23に例示される作業領域302には、オブジェクト400a,400
bがこの順に配置されている。オブジェクト400a,400
bの間に、オブジェクト402a,403aが連続して配置されている。オブジェクト402a,403aは、第1部分フロー41における挿入位置43aを示す。さらに、オブジェクト400bの直下に、オブジェクト402c,403cが連続して配置されている。オブジェクト402c,403cは、第1部分フロー41における挿入位置43bを示す。
【0174】
第1部分フロー41が作業領域302に表示されている状態において、ユーザは、第1部分フロー41における挿入位置43a,43bを選択し、かつ、オブジェクト選択領域304(
図4参照)に表示されるオブジェクト400,402を選択する。
【0175】
ユーザは、オブジェクト402a,403aの間の位置を選択し、かつ、第1部分フロー41の挿入位置43aに挿入する第2部分フロー51aを構成する処理項目に対応するオブジェクト400を選択する。これにより、ステップS52に示されるように、オブジェクト402a,403aの間に、オブジェクト400c,400dがこの順に挿入される。
【0176】
ユーザは、オブジェクト402c,403cの間の位置を選択し、かつ、第1部分フロー41の挿入位置43bに挿入する第3部分フロー51bを構成する処理項目に対応するオブジェクト400を選択する。これにより、ステップS52に示されるように、オブジェクト402c,403cの間に、オブジェクト400eが挿入される。
【0177】
さらに、ユーザは、挿入した部分フローにおいて、新たな処理項目の挿入を許可する挿入位置にオブジェクト402を配置する。
図23に示す例では、オブジェクト402
cとオブジェクト400eとの間に、オブジェクト402d,403dが挿入される。オブジェクト402d,403dは、第3部分フロー51bにおける挿入位置53に配置される。
【0178】
プロセッサ110は、作業領域302に追加されたオブジェクト400,402,403およびそれらの配置順序に応じて、追加データ50を作成する。
【0179】
図24は、変形例3に係る追加データ50の一例を示す図である。
図24には、
図23に例示される作業領域302におけるオブジェクト400,402,403の配置に応じて作成された追加データ50が示される。
【0180】
追加データ50は、第1部分フロー41に関する部分データ55と、第1部分フロー41の挿入位置43aに挿入される第2部分フロー51aに関する部分データ56と、第1部分フロー41の挿入位置43bに挿入される第3部分フロー51bに関する部分データ57とを含む。部分データ55および部分データ56については、変形例2において説明した通りである。
【0181】
部分データ57は、部分データ56と同様に、第3部分フローが挿入される挿入位置43bを特定するためのレコード54_1と、第3部分フローを構成する指定処理項目を特定するためのレコード54_2とを含む。部分データ57のレコード54_2には、挿入位置43bに挿入されたオブジェクト400eに対応する処理項目(指定処理項目)に関する情報が設定される。
【0182】
さらに、部分データ57は、挿入位置43bに挿入されたオブジェクト402d,403dにそれぞれ対応するレコード54_3,54_4を含む。レコード54_3,54_4は、テンプレートデータ10のレコード15_2,15_3の設定方法と同じ方法で設定される。レコード54_3は、第3部分フロー51bにおける挿入位置53の開始点に関する情報を示す。レコード54_4は、挿入位置53の終了点に関する情報を示す。
【0183】
レコード54_2,54_3,54_4のユニット番号50bには、オブジェクト402c,403cの間のおける、オブジェクト400e,402d,403dの配置順序を示す番号が設定される。そのため、レコード54_2のユニット番号50bは、第3部分フロー51bにおけるオブジェクト400eの実行順序を示す。レコード54_3,54_4のユニット番号50bは、第3部分フローにおける挿入位置53の開始点および終了点の位置をそれぞれ示す。
【0184】
このように、プロセッサ110は、作業領域302に配置されたオブジェクト400eに対応する処理項目に基づいて、挿入位置43bに挿入される第3部分フロー51bを構成する指定処理項目52cを設定する。プロセッサ110は、さらに、作業領域302に配置されたオブジェクト402c,403cに基づいて、第3部分フロー51bにおいて、新たな処理項目の挿入が許可される挿入位置53を設定する。そして、プロセッサ110は、指定処理項目52a,52bとそれらの実行順序とを示す追加データ50を作成する。
【0185】
図25および
図26を参照して、変形例3に係る追加データ20の作成方法について説明する。
図25は、変形例3に係る追加データ20の作成方法の流れを説明する図である。
図26は、変形例3に係る追加データ20の一例を示す図である。
【0186】
図25のステップS61に示されるように、プロセッサ110は、テンプレートデータ10を構成するテンプレートデータ40と追加データ50とをハードディスク120から読み出す。
【0187】
以下、プロセッサ110は、
図17に示すテンプレートデータ40と、
図24に示す追加データ50とを読み出したものとする。すなわち、テンプレートデータ40は、指定処理項目42a,42bがこの順に並べられた第1部分フロー41を定義付ける。さらに、テンプレートデータ40は、指定処理項目42a,42bの間の挿入位置43aと、指定処理項目42bの後の挿入位置43bとを示す。追加データ50は、挿入位置43aに挿入される第2部分フロー51aと、挿入位置43bに挿入される第3部分フロー51bとを定義付ける。第2部分フロー51aは、指定処理項目52a,52bがこの順に並べられたフローである。第3部分フロー51bは、指定処理項目52cを含むフローである。さらに、追加データ50は、第3部分フロー51bにおいて、指定処理項目52cの前の挿入位置53を示す。
【0188】
次に、ステップS62に示されるように、プロセッサ110は、テンプレートデータ40と追加データ50とに基づいて、第1部分フロー41と第2部分フロー51aと第3部分フロー51bとを組み合わせた共通フロー11を作成する。プロセッサ110は、上記<E.テンプレートデータと追加データとに基づいた画像処理プログラムの実行>に記載の方法に従って、第1部分フロー41と第2部分フロー51aと第3部分フロー51bとを組み合わせた共通フロー11を作成すればよい。
【0189】
すなわち、テンプレートデータ40と追加データ50とで構成されるテンプレートデータ10は、指定処理項目42a,42b,52a,52b,52cを、共通フロー11を構成する指定処理項目として示す。指定処理項目42a,42b,52a,52b,52cの実行順序は、第1部分フロー41における挿入位置43a,43bに第2部分フロー51aおよび第3部分フロー51bをそれぞれ挿入した共通フロー11に従って設定される。共通フロー11において、新たな処理項目の挿入が許可される挿入位置は、第1部分フロー41における挿入位置43bに第3部分フロー51bを挿入したときの挿入位置53となる。
【0190】
次に、ステップS63に示されるように、プロセッサ110は、共通フロー11を構成する処理項目に対応するオブジェクトを作業領域302に表示する。プロセッサ110は、テンプレートデータ40に含まれるレコード4
4_0,4
4_2,4
4_3の各々のユニット識別名40bに対応するオブジェクトを、ユニット番号40aの順に従って配置する。
図25に示す例では、指定処理項目42a,42bにそれぞれ対応するオブジェクト400a,400hがこの順に配置される。また、挿入位置43aの開始点および終了点にそれぞれ対応するオブジェクト402a,403aがオブジェクト400a,400hの間に配置される。さらに、挿入位置43bの開始点および終了点にそれぞれ対応するオブジェクト402c,403cがオブジェクト400hの後に配置される。
【0191】
さらに、プロセッサ110は、追加データ50の部分データ56に含まれるレコード54_1に従って特定される位置に、部分データ56に含まれるレコード54_2のユニット識別名50cに対応するオブジェクトを、ユニット番号40aの順に従って挿入する。
図25に示す例では、オブジェクト402a,403aの間に、指定処理項目52a,52bにそれぞれ対応するオブジェクト400b,400cが挿入される。
【0192】
同様に、プロセッサ110は、追加データ50の部分データ57に含まれるレコード54_1に従って特定される位置に、部分データ57に含まれるレコード54_2,54_3,54_4のユニット識別名50cに対応するオブジェクトを、ユニット番号50bの順に従って挿入する。
図25に示す例では、オブジェクト402c,403cの間に、挿入位置53の開始点に対応するオブジェクト402dと、挿入位置53の終了点に対応する403dと、指定処理項目52cに対応するオブジェクト400eとがこの順に挿入される。このように、挿入位置53の開始点および終了点にそれぞれ対応するオブジェクト402d,403dは連続する。
【0193】
プロセッサ110は、作業領域302において、連続するオブジェクト402d,403dの間の位置のみ、新たな処理項目の追加位置として選択可能とする。プロセッサ110は、連続するオブジェクト402d,403dの間以外の位置が選択不可であることをユーザに認識させるために、連続するオブジェクト402d,403dの組以外のオブジェクトに斜線を施す。
【0194】
共通フロー11が作業領域302に表示されている状態において、ユーザは、連続するオブジェクト402d,403dの間の位置を選択し、かつ、オブジェクト選択領域304(
図4参照)に表示されるオブジェクト400を選択する。これにより、ステップS64に示されるように、オブジェクト402d,403dの間に1以上のオブジェクト400が挿入される。
図25に示す例では、オブジェクト400dが挿入されている。
【0195】
プロセッサ110は、オブジェクト402d,403dの間に配置された1以上のオブジェクト400およびその配置順序に応じて、追加データ20を作成する。追加データ20は、上記<D.追加データの作成方法>に従って作成される。
図26には、
図25に示す作業領域302に応じて作成された追加データ20が示される。追加データ20の部分データ26は、挿入位置53の開始点に関する情報を示すレコード24_1と、挿入位置53に追加されたオブジェクト400dに対応する情報をレコード24_2とを含む。
【0196】
プロセッサ110は、<E.テンプレートデータと追加データとに基づいた画像処理プログラムの実行>に記載の方法に従って、テンプレートデータ40と追加データ50と追加データ20とに基づいて、画像処理プログラムを作成すればよい。
【0197】
変形例3によっても、テンプレートデータ40が作成済みである場合、追加データ50を生成することにより、テンプレートデータ10を容易に作成できる。また、画像処理プログラムの作成業務を複数のユーザで分担できる。上述したように、画像処理装置100のユーザには、SE、SIer、ベンダー、生産ラインの管理者、生産ラインの作業者等が含まれる。例えば、テンプレートデータ40をSEが作成し、追加データ50をベンダーが作成し、追加データ20を生産ラインの管理者が作成してもよい。
【0198】
(変形例4)
テンプレートデータ10は、デフォルト値からの変更が可である個別パラメータについて、設定可能な値の範囲を示してもよい。例えば、プロセッサ110は、
図6に示すウィンドウ500において、設定可能な値の範囲の入力を受け付ける。プロセッサ110は、入力された範囲を示すテンプレートデータ10を作成すればよい。
【0199】
テンプレートデータ10が設定可能な値の範囲を示す場合、プロセッサ110は、
図8に示すウィンドウ510において、入力欄512に入力される値を当該範囲内の値に制限する。これにより、追加データ20は、個別パラメータについて、当該範囲内の値を示す。
【0200】
(変形例5)
上記の説明では、プロセッサ110は、作業領域302に配置されたオブジェクト402の配置順序(
図7のユニット番号10a)を挿入位置13を示す情報として、テンプレートデータ10を作成するものとした。すなわち、テンプレートデータ10によって示される挿入位置13は、オブジェクト402の配置順序によって定義される。しかしながら、テンプレートデータ10によって示される挿入位置13は、オブジェクト402の配置順序によって定義されなくてもよい。
【0201】
例えば、プロセッサ110は、共通フロー11において連続して実行される2つの処理項目12の指定を受け、指定された2つの処理項目12の間の位置を挿入位置13として決定してもよい。この場合、プロセッサ110は、指定された2つの処理項目12を特定する情報を挿入位置13を示す情報として、テンプレートデータ10を作成すればよい。
【0202】
あるいは、プロセッサ110は、共通フロー11を構成する1つの処理項目12の指定を受け、指定された処理項目12の直前(または直後)の位置を挿入位置13として決定してもよい。この場合、プロセッサ110は、当該指定された1つの処理項目12を特定する情報を挿入位置13を示す情報として、テンプレートデータ10を作成してもよい。
【0203】
あるいは、プロセッサ110は、共通フロー11において連続して実行される3以上の処理項目12の範囲の指定を受け、指定された範囲内の処理項目12間の位置の全てを挿入位置13として決定してもよい。この場合、プロセッサ110は、指定された範囲を特定する情報を挿入位置13を示す情報として、テンプレートデータ10を作成すればよい。なお、指定された範囲内において、新たな処理項目12の挿入だけでなく、範囲内に既存の処理項目12の削除が許可されてもよい。
【0204】
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
【0205】
(構成1)
プログラム実行装置(100)であって、
1以上の指定処理項目(12,42,52)と、前記1以上の指定処理項目(12,42,52)の第1実行順序と、前記1以上の指定処理項目(12,42,52)が前記第1実行順序に従って並べられた第1フロー(11)において、新たな処理項目の挿入が許可される第1挿入位置(13)とを示す第1テンプレートデータ(10)を取得する取得部(110,152)と、
1以上の追加処理項目(22)と、前記1以上の追加処理項目(22)の第2実行順序とを示す第1追加データ(20)を作成する作成部(154)と、
前記第1テンプレートデータ(10)と前記第1追加データ(20)とに基づいて、前記第1フロー(11)における前記第1挿入位置(13)に、前記1以上の追加処理項目(22)が前記第2実行順序に従って並べられた第2フロー(21)を挿入したプログラム(30)を実行するプログラム実行部(110,156)とを備える、プログラム実行装置(100)。
【0206】
(構成2)
前記第1テンプレートデータ(10)は、前記1以上の指定処理項目(12)の実行に必要な1以上のパラメータの各々について、デフォルト値と、デフォルト値からの変更の可否とをさらに示し、
前記第1追加データ(20)は、前記1以上のパラメータのうち前記デフォルト値からの変更が可であるパラメータについて、変更後の値をさらに示し、
前記プログラム実行部(110,156)は、前記デフォルト値からの変更が可であるパラメータについて、前記第1追加データ(20)によって示される値を用いる、構成1に記載のプログラム実行装置(100)。
【0207】
(構成3)
前記第1テンプレートデータ(10)は、前記デフォルト値からの変更が可であるパラメータについて、設定可能な値の範囲を示し、
前記第1追加データ(20)は、前記デフォルト値からの変更が可であるパラメータについて、前記範囲内の値を示す、構成2に記載のプログラム実行装置(100)。
【0208】
(構成4)
前記第1テンプレートデータ(10)は、
1以上の第1指定処理項目(42)と、前記1以上の第1指定処理項目(42)の第3実行順序と、前記1以上の第1指定処理項目(42)が前記第3実行順序に従って並べられた第3フロー(41)において、新たな処理項目の挿入が許可されるN個の第2挿入位置(43)とを示す第2テンプレートデータ(40)と、
前記N個の第2挿入位置(43)の中から選択されたM個の第2挿入位置(43)と、前記M個の第2挿入位置(43)の各々について、1以上の第2指定処理項目(52)および前記1以上の第2指定処理項目(52)の第4実行順序とを示す第2追加データ(50)とによって構成され、
Nは2以上の整数であり、MはN未満の正の整数であり、
前記第1テンプレートデータ(10)は、
前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)を前記1以上の指定処理項目(12)として示し、
前記第3フロー(41)における前記M個の第2挿入位置(43)の各々に、対応する前記1以上の第2指定処理項目(52)が対応する前記第4実行順序に従って並べられた第4フロー(51)を挿入したときの、前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)の実行順序を前記第1実行順序として示し、
前記第3フロー(41)における前記M個の第2挿入位置(43)の各々に前記第4フローを挿入したときの、前記N個の第2挿入位置(43)のうち未選択の第2挿入位置(43)を前記第1挿入位置(13)として示す、構成1に記載のプログラム実行装置(100)。
【0209】
(構成5)
前記第1テンプレートデータ(10)は、
1以上の第1指定処理項目(42)と、前記1以上の第1指定処理項目(42)の第3実行順序と、前記1以上の第1指定処理項目(42)が前記第3実行順序に従って並べられた第3フロー(41)において、新たな処理項目の挿入が許可される第2挿入位置(43)とを示す第2テンプレートデータと、
1以上の第2指定処理項目(52)と、前記1以上の第2指定処理項目(52)の第4実行順序と、前記1以上の第2指定処理項目(52)が前記第4実行順序に従って並べられた第4フロー(51)において、新たな処理項目の挿入が許可される第3挿入位置(53)とを示す第2追加データ(50)とによって構成され、
前記第1テンプレートデータ(10)は、
前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)を前記1以上の指定処理項目(12)として示し、
前記第3フロー(41)における前記第2挿入位置(43)に前記第4フロー(51)を挿入したときの前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)の実行順序を前記第1実行順序として示し、
前記第3フロー(41)における前記第2挿入位置(43)に前記第4フロー(51)を挿入したときの前記第3挿入位置(53)を前記第1挿入位置(13)として示す、構成1に記載のプログラム実行装置(100)。
【0210】
(構成6)
前記取得部(110,152)は、予め準備された複数の処理項目からの前記1以上の指定処理項目(12)の選択と、前記第1実行順序と、前記第1挿入位置(13)との指定を受け付けるユーザインターフェイス(300)を提供し、前記ユーザインターフェイス(300)への入力に応じて、前記第1テンプレートデータ(10)を作成する、構成1に記載のプログラム実行装置(100)。
【0211】
(構成7)
前記取得部(110,152)は、複数のオブジェクト(400,402)を前記ユーザインターフェイス(300)に表示し、
前記複数のオブジェクト(400,402)は、前記予め準備された複数の処理項目の各々に対応する第1オブジェクト(400)と、前記第1オブジェクトと異なる第2オブジェクト(402)とを含み、
前記ユーザインターフェイス(300)は、前記複数のオブジェクト(400,402)から選択されたオブジェクトを指定された順番に配置する作業領域(302)を含み、
前記取得部(110,152)は、
前記作業領域(302)に配置された前記第1オブジェクト(400)に対応する処理項目に基づいて、前記1以上の指定処理項目(12)を設定し、
前記作業領域(302)に配置された前記第1オブジェクト(400)の順番に基づいて、前記第1実行順序を設定し、
前記作業領域(302)に配置された前記第2オブジェクト(402)の順番に基づいて、前記第1挿入位置(13)を設定する、構成6に記載のプログラム実行装置(100)。
【0212】
(構成8)
前記取得部(110,152)は、
1以上の第1指定処理項目(42)と、前記1以上の第1指定処理項目(42)の第3実行順序と、前記1以上の第1指定処理項目(42)が前記第3実行順序に従って並べられた第3フロー(41)において、新たな処理項目の挿入が許可されるN個の第2挿入位置(43)とを示す第2テンプレートデータ(40)を取得し、
前記予め準備された複数の処理項目にそれぞれ対応する複数のオブジェクト(400)を前記ユーザインターフェイス(300)に表示し、
前記ユーザインターフェイス(300)は、前記N個の第2挿入位置(43)から選択されたM個の第2挿入位置(43)の各々について、前記複数のオブジェクト(400)から選択されたオブジェクトを指定された順番に配置する作業領域(302)を含み、
Nは2以上の整数であり、MはN未満の正の整数であり、
前記取得部(110,152)は、前記M個の第2挿入位置(43)の各々について、
前記作業領域(302)に配置された前記オブジェクト(400)に対応する処理項目に基づいて、1以上の第2指定処理項目(52)を設定し、
前記作業領域(302)に配置された前記オブジェクト(400)の順番に基づいて、前記1以上の第2指定処理項目(52)の第4実行順序を設定し、
前記1以上の第2指定処理項目(52)と前記第4実行順序とを示す第2追加データ(50)を作成し、
前記第2テンプレートデータ(40)と前記第2追加データ(50)とによって構成される前記第1テンプレートデータ(10)を作成し、
前記第1テンプレートデータ(10)は、
前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)を前記1以上の指定処理項目(12)として示し、
前記第3フロー(41)における前記M個の第2挿入位置(43)の各々に、対応する前記1以上の第2指定処理項目(52)が対応する前記第4実行順序に従って並べられた第4フロー(51)を挿入したときの、前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)の実行順序を前記第1実行順序として示し、
前記第3フロー(41)における前記M個の第2挿入位置(43)の各々に前記第4フローを挿入したときの、前記N個の第2挿入位置(43)のうち未選択の第2挿入位置(43)を前記第1挿入位置(13)として示す、構成6に記載のプログラム実行装置(100)。
【0213】
(構成9)
前記取得部(110,152)は、
1以上の第1指定処理項目(42)と、前記1以上の第1指定処理項目(42)の第3実行順序と、前記1以上の第1指定処理項目(42)が前記第3実行順序に従って並べられた第3フロー(41)において、新たな処理項目の挿入が許可される第2挿入位置(43)とを示す第2テンプレートデータを取得し、
複数のオブジェクト(400,402)を前記ユーザインターフェイス(300)に表示し、
前記複数のオブジェクト(400,402)は、前記予め準備された複数の処理項目の各々に対応する第1オブジェクト(400)と、前記第1オブジェクトと異なる第2オブジェクト(402)とを含み、
前記ユーザインターフェイス(300)は、前記複数のオブジェクト(400,402)から選択されたオブジェクトを指定された順番に配置する作業領域(302)を含み、
前記取得部(110,152)は、
前記作業領域(302)に配置された前記第1オブジェクト(400)に対応する処理項目に基づいて、1以上の第2指定処理項目(52)を設定し、
前記作業領域(302)に配置された前記第1オブジェクト(400)の順番に基づいて、前記1以上の第2指定処理項目(52)の第4実行順序を設定し、
前記作業領域(302)に配置された前記第2オブジェクト(402)の順番に基づいて、前記1以上の第2指定処理項目(52)が前記第4実行順序に従って並べられた第4フロー(51)において、新たな処理項目の挿入が許可される第3挿入位置(53)を設定し、
前記1以上の第2指定処理項目(52)と、前記第4実行順序と、前記第3挿入位置(53)とを示す第2追加データ(50)を作成し、
前記第2テンプレートデータ(40)と前記第2追加データ(50)とによって構成される前記第1テンプレートデータ(10)を作成し、
前記第1テンプレートデータ(10)は、
前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)を前記1以上の指定処理項目(12)として示し、
前記第3フロー(41)における前記第2挿入位置(43)に前記第4フロー(51)を挿入したときの前記1以上の第1指定処理項目(42)および前記1以上の第2指定処理項目(52)の実行順序を前記第1実行順序として示し、
前記第3フロー(41)における前記第2挿入位置(43)に前記第4フロー(51)を挿入したときの前記第3挿入位置(53)を前記第1挿入位置(13)として示す、構成6に記載のプログラム実行装置(100)。
【0214】
(構成10)
プログラム実行方法であって、
1以上の指定処理項目(12,42,52)と、前記1以上の指定処理項目(12,42,52)の第1実行順序と、前記1以上の指定処理項目(12,42,52)が前記第1実行順序に従って並べられた第1フロー(11)において、新たな処理項目の挿入が許可される第1挿入位置(13)とを示すテンプレートデータ(10)を取得するステップと、
1以上の追加処理項目(22)と、前記1以上の追加処理項目(22)の第2実行順序とを示す第1追加データ(20)を作成するステップと、
前記テンプレートデータ(10)と前記第1追加データ(20)とに基づいて、前記第1フロー(11)における前記第1挿入位置(13)に、前記1以上の追加処理項目(22)が前記第2実行順序に従って並べられた第2フロー(21)を挿入したプログラム(30)を実行するステップとを備える、プログラム実行方法。
【0215】
(構成11)
構成10に記載のプログラム実行方法をコンピュータに実行させるプログラム(150)。
【0216】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0217】
1 画像処理システム、6 搬送機構、8 撮像部、10,40 テンプレートデータ、11 共通フロー、12,12a~12e,42,42a,42b,52a~52c 指定処理項目、13,13a~13c,43,43a,43b,53 挿入位置、20,20A,20B,50 追加データ、21,21A,21B 個別フロー、22,22a~22d 追加処理項目、25,26,26a~26c,55,56,57 部分データ、30,30A,30B 画像処理プログラム、41 第1部分フロー、51,51a 第2部分フロー、51b 第3部分フロー、100 画像処理装置、102 表示部、104 キーボード、106 メモリカード、110 プロセッサ、112 RAM、114 表示コントローラ、116 システムコントローラ、118 I/Oコントローラ、120 ハードディスク、122 カメラインターフェイス、124 入力インターフェイス、126 PLCインターフェイス、128 通信インターフェイス、130 メモリカードインターフェイス、150 制御プログラム、152 取得部、154 作成部、156 プログラム実行部、300 ユーザインターフェイス、302 作業領域、304 オブジェクト選択領域、306 カメラ画像表示領域、308 挿入/追加ボタン、310 順序入替ボタン、400,400a~400i,402,402a~402c,403,403a~403c オブジェクト、500,510 ウィンドウ、502,504,512 入力欄、W ワーク。