(57)【要約】【課題】実際に装着する機能ユニットに縛られることなく、実現しようとする機能単位でシーケンスプログラムの作成や各機能ユニットの設定を行うことができるプログラム作成装置を得ること。【解決手段】１つの機能を連携して実現する複数の機能ユニットを１つの仮想ユニットとして、仮想ユニットを構成する機能ユニットの種別と装着位置とを含む仮想ユニット基本情報を作成する仮想ユニット基本情報作成部１５と、機能ユニットの各バッファアドレスの設定内容と仮想ユニットの各バッファアドレスの設定内容とを機能ユニットの装着位置を用いて対応付けした仮想ユニット設定情報を作成する仮想ユニット設定情報作成部１７と、仮想ユニット設定情報を編集するための仮想ユニット設定画面を作成する仮想ユニット設定画面作成部１８と、仮想ユニット設定情報を格納する仮想ユニット情報格納部１６と、を備える。【選択図】        図１
2008146385.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラのシーケンスプログラムを作成するプログラム作成装置であって、
前記プログラマブルコントローラが実現する機能のうちの１つの機能を連携して実現する複数の機能ユニットを１つの仮想ユニットとして、前記仮想ユニットを構成する前記機能ユニットの種別と装着位置とを含む仮想ユニット基本情報を作成する仮想ユニット基本情報作成手段と、
機能ユニットのバッファアドレスに対する設定内容を含むユニット機能詳細情報を、前記仮想ユニット基本情報中の前記機能ユニットごとに用意し、前記機能ユニットの各バッファアドレスの設定内容と前記仮想ユニットの各バッファアドレスの設定内容とを前記機能ユニットの装着位置を用いて対応付けした仮想ユニット設定情報を作成する仮想ユニット設定情報作成手段と、
前記仮想ユニット設定情報を表示手段に表示させるための仮想ユニット設定画面を作成し、前記表示手段に表示させる仮想ユニット設定画面作成手段と、
前記仮想ユニット設定画面を通じて編集された前記仮想ユニット設定情報を格納する仮想ユニット情報格納手段と、
を備えることを特徴とするプログラム作成装置。
【請求項２】
前記プログラマブルコントローラに使用され得る機能ユニットについて、前記ユニット機能詳細情報中の設定内容と、前記機能ユニットの装着位置を変数として表示した基本シーケンスプログラムを格納するシーケンスプログラム格納手段と、
前記シーケンスプログラム格納手段から抽出した前記仮想ユニットを構成する機能ユニットに対応する基本シーケンスプログラムに、前記仮想ユニット情報格納手段中の前記仮想ユニット設定情報の設定内容を代入してシーケンスプログラムを作成するシーケンスプログラム作成手段と、
前記仮想ユニット情報格納手段の前記仮想ユニット設定情報中の出力処理を単位としてブロック化した機能ブロックを作成し、その出力処理に関係する処理内容を前記シーケンスプログラム内の処理内容に対応付けるとともに、前記機能ブロックを前記表示手段に表示する機能ブロック作成手段と、
をさらに備えることを特徴とする請求項１に記載のプログラム作成装置。
【請求項３】
前記ユニット機能詳細情報は、前記機能ユニットに対する設定内容と、前記設定内容に対応する数値の範囲である設定数値範囲と、を含み、
前記仮想ユニット設定画面作成手段は、前記仮想ユニット設定画面で編集された仮想ユニット設定情報の設定内容の値が、前記設定数値範囲内に収まっているか否かを判定する機能を備えることを特徴とする請求項１に記載のプログラム作成装置。
【請求項４】
前記仮想ユニットは、異なる機能を有する複数の機能ユニットがチャネルを共有化して構成され、
前記仮想ユニット設定画面作成手段は、前記仮想ユニット設定画面で編集された仮想ユニット設定情報の前記チャネルについての設定内容の値が、前記複数の異なる機能ユニット間で一致しているか否かを判定する機能を備えることを特徴とする請求項１に記載のプログラム作成装置。
【請求項５】
プログラマブルコントローラのシーケンスプログラムを作成するプログラム作成方法であって、
前記プログラマブルコントローラが実現する機能のうちの１つの機能を連携して実現する複数の機能ユニットを１つの仮想ユニットとして、前記仮想ユニットを構成する前記機能ユニットの種別と装着位置とを含む仮想ユニット基本情報を作成する仮想ユニット基本情報作成工程と、
機能ユニットのバッファアドレスに対する設定内容を含むユニット機能詳細情報を、前記仮想ユニット基本情報中の前記機能ユニットごとに取得するユニット機能詳細情報取得工程と、
前記仮想ユニット基本情報と取得した前記ユニット機能詳細情報とを用いて、前記機能ユニットの各バッファアドレスの設定内容と前記仮想ユニットの各バッファアドレスの設定内容とを前記機能ユニットの装着位置を用いて対応付けした仮想ユニット設定情報を作成する仮想ユニット設定情報作成工程と、
前記仮想ユニット設定情報を表示手段に表示させるための仮想ユニット設定画面を作成し、前記表示手段に表示させる仮想ユニット設定画面作成工程と、
前記仮想ユニット設定画面で編集された内容を仮想ユニット設定情報として記憶する仮想ユニット情報格納工程と、
を含むことを特徴とするプログラム作成方法。
【請求項６】
前記プログラマブルコントローラに使用され得る機能ユニットについて、前記ユニット機能詳細情報中の設定内容と、前記機能ユニットの装着位置を変数として表示した基本シーケンスプログラムを格納するシーケンスプログラム格納手段から抽出した前記仮想ユニットを構成する機能ユニットに対応する基本シーケンスプログラムに、前記仮想ユニット設定情報の設定内容を代入してシーケンスプログラムを作成するシーケンスプログラム作成工程と、
前記仮想ユニット情報格納工程で記憶された前記仮想ユニット設定情報中の出力処理を単位としてブロック化した機能ブロックを作成し、その出力処理に関係する処理内容を前記シーケンスプログラム内の処理内容に対応付けるとともに、前記機能ブロックを前記表示手段に表示する機能ブロック作成工程と、
をさらに含むことを特徴とする請求項５に記載のプログラム作成方法。
【請求項７】
前記ユニット機能詳細情報は、前記機能ユニットに対する設定内容と、前記設定内容に対応する数値の範囲である設定数値範囲と、を含み、
前記仮想ユニット設定画面作成工程では、前記仮想ユニット設定画面で編集された仮想ユニット設定情報の設定内容の値が、前記設定数値範囲内に収まっているか否かを判定する処理をさらに実行することを特徴とする請求項５に記載のプログラム作成方法。
【請求項８】
前記仮想ユニットは、異なる機能を有する複数の機能ユニットがチャネルを共有化して構成され、
前記仮想ユニット設定画面作成工程では、前記仮想ユニット設定画面で編集された仮想ユニット設定情報の前記チャネルについての設定内容の値が、前記複数の異なる機能ユニット間で一致しているか否かを判定する処理をさらに実行することを特徴とする請求項５に記載のプログラム作成方法。
【請求項９】
請求項５〜８のいずれか１つに記載のプログラム作成方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の機能ユニットがベースユニットに装着されたプログラマブルコントローラシステムで、複数の機能ユニットを１つの機能ユニットとしてプログラムすることができるプログラム作成装置、プログラム作成方法およびその方法をコンピュータに実行させるプログラムに関するものである。
【背景技術】
【０００２】
プログラマブルコントローラは、シーケンスプログラムにしたがって、制御対象を制御することによって所定の処理を実行させて、製品の加工や製造を行っている。このプログラマブルコントローラには種々の種類のものがあるが、その中に、構築するシステムの構成に応じたプログラマブルコントローラの構築を行うことができるベース装着タイプのものが知られている。このベース装着タイプのプログラマブルコントローラは、ベースユニット上に、電源ユニット、ＣＰＵ（Central Processing Unit）ユニット、入力ユニット、出力ユニット、機能ユニット、ネットワークユニットなどのユニットが、構築するシステムに応じて装着される構成を有する。
【０００３】
図５は、ベース装着タイプのプログラマブルコントローラの構成の一例を示す図である。この図５のベース装着タイプのプログラマブルコントローラでは、バスが設けられたベースユニット５０に、電源ユニット５１、ＣＰＵユニット５２、３つの機能ユニット５３Ａ〜５３Ｃ、２つの入力ユニット５４Ａ，５４Ｂ、２つの出力ユニット５５Ａ，５５Ｂが装着されている場合が示されている。
【０００４】
このようなプログラマブルコントローラにおけるシーケンスプログラムの作成においては、機能ユニット５３Ａ〜５３Ｃや入力ユニット５４Ａ，５４Ｂ、出力ユニット５５Ａ，５５Ｂなどのメモリを表示する際に、ＣＰＵユニット５２に近い順に前詰めに番号付けを行って、一元的に表示していた。そのため、シーケンスプログラムの内部メモリ表示を見た際に、それがどの機能ユニットの内部メモリを示しているのかを判別することが困難であり、また、シーケンスプログラムを作成する際にも入力ミスが発生しやすいという問題点があった。そこで、このような問題点を解決するためのプログラマブルコントローラのプログラミング機器が提案されている（たとえば、特許文献１参照）。
【０００５】
図１２は、従来のシーケンスプログラムにおけるユニットのメモリ表示の形式の一例を示す図である。この図に示されるように、特許文献１では、ユニットのメモリ表示形式を示す「Ｕ」に、ベースユニットに装着されたスロット番号であるユニット番号、区切り記号（￥）、メモリの種別を表すメモリ記号、メモリの種別を表すメモリの先頭からビット数を示すメモリ番号を続けて記述するようにしている。
【０００６】
図９は、図１２のメモリ表示を用いたシーケンスプログラムの一例を示す図である。この図の１行目のシーケンスプログラムの応用命令における「Ｕ０￥Ｇ０」は、図５に示した機能ユニット５３Ａの内部メモリのバッファメモリ（Ｇ）の先頭から０ビット目を示している。この表記方法は、その他のコイル記号や応用命令内に対しても同様に適用することができる。このようなメモリの表示を行うことによって、ベースユニットに複数の機能ユニットや入出力ユニットなどが装着されている場合でも、プログラミングにおける入力ミスを低減させ、またシーケンスプログラムの可読性を向上させることが可能となる。
【０００７】
【特許文献１】特開平７−３１１６０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、システムを使用するユーザとしては、たとえば８チャネル分のアナログ入力が必要なシステムを構築する場合に、Ａ／Ｄ変換の機能を有する機能ユニットが４チャネル分のアナログ入力しか備えていない場合には、その機能ユニットをベースユニット上に２つ装着してシステムを構築することとなる。この場合、１〜４チャネルの設定を第１の機能ユニットで行い、５〜８チャネルの設定を第２の機能ユニットで行うというように、ベースユニットに装着する機能ユニットごとに設定する必要がある。たとえば、２チャネルの設定は、第１の機能ユニットに対して設定を行い、６チャネルの設定は、第２の機能ユニットに対して設定を行わなければならなかった。
【０００９】
つまり、様々な機能ユニットを組み合わせ、機能ユニットが連携して動作するような場合には、上述した図９に示されるように、機能ユニット間を連係動作させるためのシーケンスプログラムのプログラミングを行う必要がある。シーケンスプログラムにおける機能ユニットの連携に関する部分は、図１２のユニット番号で示される部分となる。この部分は、シーケンスプログラムの作成者によってユニットを指定するユニット番号をシーケンスプログラムに記述する作業が必要となっていた。
【００１０】
このように、複数の機能ユニットが連携して動作するようなシステムのシーケンスプログラムを従来の技術によって作成する場合には、システムを構築する設計者やユーザにとって、複数の機能ユニットに対しての設定や、連係動作させるためのプログラミング作業が必要であった。その結果、連係動作させる部分においてプログラミングミスなどが発生しやすいという問題点があった。
【００１１】
また、従来のシーケンスプログラムのプログラム作成装置では、１つの機能を複数の機能ユニットで実現する場合でも、装着する機能ユニット単位で設定を行わなければならないという問題点もあった。さらに、従来のシーケンスプログラムの作成においては、装着する機能ユニットのチャネル数などの制約に縛られてしまうと問題点もあった。
【００１２】
この発明は、上記に鑑みてなされたもので、システムを構築する設計者やユーザにとって、実際に装着する機能ユニットに縛られることなく、実現しようとする機能単位でシーケンスプログラムの作成や、各機能ユニットの設定を行うことができるプログラム作成装置、プログラム作成方法およびその方法をコンピュータに実行させるプログラムを得ることを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、この発明にかかるプログラム作成装置は、プログラマブルコントローラのシーケンスプログラムを作成するプログラム作成装置であって、前記プログラマブルコントローラが実現する機能のうちの１つの機能を連携して実現する複数の機能ユニットを１つの仮想ユニットとして、前記仮想ユニットを構成する前記機能ユニットの種別と装着位置とを含む仮想ユニット基本情報を作成する仮想ユニット基本情報作成手段と、機能ユニットのバッファアドレスに対する設定内容を含むユニット機能詳細情報を、前記仮想ユニット基本情報中の前記機能ユニットごとに用意し、前記機能ユニットの各バッファアドレスの設定内容と前記仮想ユニットの各バッファアドレスの設定内容とを前記機能ユニットの装着位置を用いて対応付けした仮想ユニット設定情報を作成する仮想ユニット設定情報作成手段と、前記仮想ユニット設定情報を表示手段に表示させるための仮想ユニット設定画面を作成し、前記表示手段に表示させる仮想ユニット設定画面作成手段と、前記仮想ユニット設定画面を通じて編集された前記仮想ユニット設定情報を格納する仮想ユニット情報格納手段と、を備えることを特徴とする。
【発明の効果】
【００１４】
この発明によれば、システムを構築する設計者やユーザにとって、複数の機能ユニットを組み合わせ、機能ユニットを連携させて、１つの機能を実行させるようなシステムのシーケンスプログラムを作成する場合に、機能ユニットごとに設定やシーケンスプログラムの作成を行うことなく、実行させようとする機能単位で、各機能ユニットの設定やシーケンスプログラムの作成を個々の機能ユニットを意識することなく行うことができるという効果を有する。
【発明を実施するための最良の形態】
【００１５】
以下に添付図面を参照して、この発明にかかるプログラム作成装置、プログラム作成方法およびその方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
図１は、この発明にかかるプログラム作成装置の機能構成の一例を模式的に示すブロック図である。このプログラム作成装置１０は、表示部１１と、入力部１２と、通信部１３と、ユニット情報格納部１４と、仮想ユニット基本情報作成部１５と、仮想ユニット情報格納部１６と、仮想ユニット設定情報作成部１７と、仮想ユニット設定画面作成部１８、シーケンスプログラム格納部１９と、シーケンスプログラム作成部２０と、機能ブロック作成部２１と、機能ブロック格納部２２と、これらの各処理部を制御する制御部２３と、を備える。
【００１７】
表示部１１は、プログラム作成装置１０のユーザに対して、シーケンスプログラムの作成画面や機能ブロック表示画面などを表示するものであり、ＬＣＤ（Liquid Crystal Display）などの表示装置によって構成される。入力部１２は、ユーザとの間の入力インタフェースであり、キーボードやマウスなどの入力装置によって構成される。通信部１３は、作成したシーケンスプログラムを実際に作動させるプログラマブルコントローラと接続して、プログラマブルコントローラのユニット構成を取得したり、作成したシーケンスプログラムをプログラマブルコントローラに渡したりする。
【００１８】
ユニット情報格納部１４は、プログラマブルコントローラの作成に使用され得る機能ユニットの種類ごとの仕様などのユニット情報を格納する。このユニット情報は、仮想ユニットを作成するに当って機能ユニットに関する必要な仕様を含むユニット基本情報と、ユニット基本情報に含まれる機能ユニットについて、シーケンスプログラムの作成に必要な詳細な設定を行うためのユニット機能詳細情報と、からなる。ここで、機能ユニットとは、ＣＰＵユニットの制御の下で所定の処理を実行するユニットのことであり、具体的には、ＡＤ変換ユニット、ＤＡ変換ユニット、位置決めユニットおよびカウンタユニットなどのことをいう。
【００１９】
図２は、ユニット基本情報の一例を示す図である。この例では、ユニット基本情報は、ユニットの種別を示すユニット名称と、そのユニットの入出力点数（以下、Ｉ／Ｏ点数という）と、チャネル数（以下、ＣＨ数という）と、を含む。たとえば、ユニット名称「Ｑ６４ＡＤ」は、Ａ／Ｄ変換を行う機能ユニットであり、Ｉ／Ｏ点数が１６点であり、ＣＨ数は４となっている。また、ユニット名称「Ｑ６４ＤＡ」は、Ｄ／Ａ変換を行う機能ユニットであり、Ｉ／Ｏ点数が１６点であり、ＣＨ数は４となっている。さらに、ユニット名称「ＱＤ７５Ｐ２」は、位置決めを行う機能ユニットであり、Ｉ／Ｏ点数は３２点であり、ＣＨ数は２となっている。また、ユニット名称「ＱＤ６２Ｄ」は、カウンタとして働く機能ユニットであり、Ｉ／Ｏ点数は３２点であり、ＣＨ数は２となっている。
【００２０】
図３は、ユニット機能詳細情報の一例を示す図である。この例では、図２のユニット名称「Ｑ６４ＡＤ」についてのユニット機能詳細情報が示されている。このユニット機能詳細情報では、バッファアドレスと、バッファアドレスに付された設定内容を示す設定項目名称と、バッファアドレスに対して設定される設定内容と、設定内容に対応して設定される設定値の範囲を示す設定数値範囲と、後述する仮想ユニット設定情報の作成時に設定するデフォルト値と、を含む。たとえば、バッファアドレス「０」は、ＣＨ１を許可するか否かの設定が割り当てられ、その設定値の内容として「許可」と「禁止」がある。そして、「許可」の場合には「０」を設定し、「禁止」の場合には「１」を設定することが示されている。また、仮想ユニット設定情報を作成する際のデフォルト値は、「０」の「許可」となっている。また、このユニット機能詳細情報は、ユニット名称が含まれており、ユニット基本情報と関連付けされている。
【００２１】
仮想ユニット基本情報作成部１５は、ユーザによって選択される機能ユニットの種別と、その装着位置と、ユーザによって入力される仮想ユニット名称とから、仮想ユニット情報を作成し、その結果を仮想ユニット情報格納部１６に仮想ユニット基本情報として格納する。
【００２２】
図４は、仮想ユニット情報の一例を示す図である。仮想ユニット情報は、ベースユニット上に装着されたスロットの位置を示す装着先頭Ｉ／Ｏと、その装着先頭Ｉ／Ｏに装着された装着ユニットの種別を示す装着ユニット名称と、これらの装着ユニットに対して付された仮想ユニット名称と、を含む。
【００２３】
図５は、プログラマブルコントローラにおけるベースユニット上への各ユニットの装着の一例を示す図である。ベースユニット５０上には、電源ユニット５１、ＣＰＵユニット５２、機能ユニット５３Ａ〜５３Ｃ、入力ユニット５４Ａ，５４Ｂ、出力ユニット５５Ａ，５５Ｂが装着されており、通常、ＣＰＵユニット５２に隣接する装着スロットの先頭Ｉ／Ｏから順に００，１０，２０，３０，・・・とアドレスが割り振られている。ここで、アドレスは、１６進数で示されている。たとえば、図５に示される機能ユニット５３Ａ〜５３ＣのＩ／Ｏ点数がいずれも１６点である場合には、それぞれの装着先頭Ｉ／Ｏは、順に００，１０，２０となる。また、図５に示される機能ユニット５３Ａ，５３ＣのＩ／Ｏ点数が１６点であり、機能ユニット５３ＢのＩ／Ｏ点数が３２点である場合には、機能ユニット５３Ａ〜５３Ｃが装着される装着先頭Ｉ／Ｏは、００，１０，３０となる。
【００２４】
図４に戻り、仮想ユニット情報の説明を行うと、ここでは、装着先頭Ｉ／Ｏ「００」の位置に装着された「Ｑ６４ＡＤ」という装着ユニットと、装着先頭Ｉ／Ｏ「１０」に装着された「Ｑ６４ＡＤ」という装着ユニットとに対して、「仮想ＡＤ」という仮想ユニット名称が付されている場合が示されている。
【００２５】
この仮想ユニット情報中の装着先頭Ｉ／Ｏと装着ユニットは、ユーザによって入力部１２から入力されるものであってもよい。たとえば、仮想ユニット基本情報作成部１５は、ユニット基本情報を表示部１１に表示させ、その中からユーザによって選択された機能ユニットと、この選択された各機能ユニットの装着位置と、選択された機能ユニットから作成する仮想ユニット名称と、を仮想ユニット基本情報として作成するものであってもよい。また、図５に示されるようにプログラム作成装置１０とプログラマブルコントローラとが通信回線を介して接続されている場合には、公知の技術によって、ベースユニット上に装着されているユニットとその装着位置を自動的に取得して、その結果を表示部１１に表示させ、そこから仮想ユニットを構成する機能ユニットを選択するようにしてもよい。
【００２６】
仮想ユニット設定情報作成部１７は、ユニット機能詳細情報と仮想ユニット基本情報とを用いて、複数の機能ユニットで１つの機能を実現するユニットを、１つの仮想ユニットとして扱うことが可能な仮想ユニット設定情報を作成する。具体的には、仮想ユニットを構成する複数のユニット機能詳細情報をまとめ、仮想ユニットとしてチャネル番号を一連のチャネル番号に振り直したものである。
【００２７】
図６は、仮想ユニット設定情報の一例を示す図である。仮想ユニット設定情報は、設定項目名称と、装着先頭Ｉ／Ｏと、バッファアドレスと、バッファアドレスに対して設定された値である設定値と、仮想ユニットとしての設定項目名称と、を含む。ここで、設定項目名称とバッファアドレスと設定値は、図３のユニット機能詳細情報から得られ、設定値は図３のデフォルト値となる。また、装着先頭Ｉ／Ｏは、図４の仮想ユニット基本情報から得られる。さらに、仮想ユニット設定項目名称は、この仮想ユニット設定情報に設定された設定項目名称とその装着先頭Ｉ／Ｏとから、仮想ユニット全体でチャネル番号を１つの通し番号となるように変更された設定項目名称である。この例では、装着先頭Ｉ／Ｏが００と１０の２つの機能ユニットから仮想ユニットが構成されるので、装着先頭Ｉ／Ｏが小さい機能ユニットから順にチャネル番号を付与する。ここでは、装着先頭Ｉ／Ｏが「００」の機能ユニットのＣＨ１〜ＣＨ４には、それぞれ仮想ユニットのＣＨ１〜ＣＨ４が設定され、装着先頭Ｉ／Ｏが「１０」の機能ユニットのＣＨ１〜ＣＨ４には、同じくＣＨ５〜ＣＨ８が設定されている。これによって、複数の機能ユニットのチャネル番号が、仮想的に１つの機能ユニットにおける一連のチャネル番号として扱うことが可能となる。
【００２８】
仮想ユニット情報格納部１６は、ユーザによって作成された仮想ユニットに関する仮想ユニット情報を格納する。仮想ユニット情報は、仮想ユニット基本情報作成部１５によって作成される仮想ユニット基本情報と、仮想ユニット設定情報作成部１７によって作成される仮想ユニット設定情報と、を含む。仮想ユニット基本情報は、図４に示されるものであり、仮想ユニット設定情報は、図６に示されるものである。
【００２９】
仮想ユニット設定画面作成部１８は、仮想ユニット情報格納部１６に格納されたデフォルト値が設定された仮想ユニット設定情報から仮想ユニット設定画面を作成し、表示部１１に表示する。この仮想ユニット設定画面は、仮想ユニット設定情報の内容をユーザが編集可能な画面である。また、仮想ユニット設定画面作成部１８は、ユーザによって仮想ユニット設定画面を介して編集された内容を仮想ユニット設定情報として仮想ユニット情報格納部１６に上書きして保存する。保存する際に、仮想ユニット設定画面作成部１８は、編集された内容（設定値）がユニット機能詳細情報中の設定数値範囲内に収まっているかなどのチェック処理を行う。設定値が設定数値範囲内に納まっていない場合には、その旨を表示部１１に表示し、ユーザへ修正を促す。
【００３０】
図７は、仮想ユニット設定画面の一例を示す図である。この仮想ユニット設定画面は、仮想ユニットのチャネルごとに設定項目を表示させるようにしている。この図では、列方向の項目にはチャネルが設定され、行方向の項目には設定項目名称が設定される。この行方向の各項目は、各チャネルのバッファアドレスに対応している。
【００３１】
この例では、１行目の項目「変換許可」については、ＣＨ１の場合は先頭Ｉ／Ｏ「００」に装着された機能ユニットＡのバッファアドレス０の内容が設定され、ＣＨ２の場合は、同じ機能ユニットＡのバッファアドレス２５の内容が設定され、・・・、ＣＨ５の場合は先頭Ｉ／Ｏ「１０」に装着された機能ユニットＢのバッファアドレス０の内容が設定され、ＣＨ６の場合は、同じ機能ユニットＢのバッファアドレス２５の内容が設定され、・・・ＣＨ８の場合は、同じ機能ユニットＢのバッファアドレス７５の内容が設定される。
【００３２】
また、この図７の例では、ユーザに対して設定内容を理解しやすくするために、設定値の数値を、設定内容を表すようにしている。これは、図３のユニット機能詳細情報における設定値と設定範囲とが対応付けられていることを利用したものである。たとえば、図３に示されるように、設定値と設定範囲とは対応付けられており、設定項目名称「ＣＨ１変換許可」に対しては、「許可」が「０」に、「禁止」が「１」に対応付けられている。同様に、設定項目名称「ＣＨ１許可平均処理」については、「サンプリング」が「０」に、「時間」が「１」に、「回数」が「２」に対応付けられている。一方、「ＣＨ１平均時間／回数」に対しては、数値が入力されるようになっている。この場合、設定項目名称「ＣＨ１許可平均処理」で設定されたものとなるので、「ＣＨ１許可平均処理」で「時間」が設定されている場合には、図６の仮想ユニット設定情報中の設定値に時間の単位（ｍｓ）が付加されたものが表示される。また、「ＣＨ１許可平均処理」で「回数」が設定されている場合には、図６の仮想ユニット設定情報中の設定値に回数の単位（回）が付加されたものが表示される。
【００３３】
シーケンスプログラム格納部１９は、ユニット基本情報格納部に格納されているユニット種類ごとに、基本シーケンスプログラムが格納されている。図８は、基本シーケンスプログラムの一例を示す図である。この図８では、機能ユニットがＱ６４ＡＤである場合の基本シーケンスプログラムを示している。この基本シーケンスプログラムは、図３のユニット機能詳細情報に示される各バッファアドレスに設定する設定値とシーケンスプログラムとの間の関係を、一般的な形で示したものである。
【００３４】
この図８において、「ＭＯＶ  Ｋ［バッファアドレス＝ｍの設定値］  Ｕ［装着先頭Ｉ／Ｏ］￥Ｇｎ」（ｍ、ｎは０以上の整数）という表記は、［バッファアドレス＝ｍの設定値］という定数（値）を、［装着先頭Ｉ／Ｏ］である機能ユニットのバッファメモリＧｎに設定することを示している。ここで、［バッファアドレス＝ｍの設定値］は、図６の仮想ユニット設定情報における設定項目名称に対応して設定された設定値である。また、「ＭＯＶ  Ｕ［装着先頭Ｉ／Ｏ］￥Ｇｎ  Ｄｓ」（ｎ、ｓは０以上の整数）という表記は、［装着先頭Ｉ／Ｏ］である機能ユニットのバッファメモリＧｎに格納されている値をＣＰＵユニットの内部メモリＤｓに設定することを示している。
【００３５】
シーケンスプログラム作成部２０は、仮想ユニット設定情報に設定された設定値を定数として、対応する機能ユニットの種類の基本シーケンスプログラムに埋め込み、仮想ユニットに対応するシーケンスプログラムを作成する。このとき、ベースユニット上の装着先頭Ｉ／Ｏの小さい機能ユニットから順にシーケンスプログラムを作成していく。
【００３６】
図５に示される例の場合、機能ユニット５３Ａの装着先頭Ｉ／Ｏは「００」なので、「Ｕ［装着先頭Ｉ／Ｏ］￥Ｇ０」は、「Ｕ０￥Ｇ０」となる。なお、ここでは、［装着先頭Ｉ／Ｏ］の上一桁を使用して、機能ユニットを識別している。また、定数Ｋ［バッファアドレス＝ｍの設定値］は、図３または図６に示されるように各バッファアドレスに対して設定項目名称が予め対応付けられているので、そのバッファアドレスに設定された設定値を示している。
【００３７】
このような規則にしたがって、シーケンスプログラム作成部２０は、各基本シーケンスプログラムに値を代入していく。図９は、シーケンスプログラム作成部によって作成されたシーケンスプログラムの一例を示す図である。シーケンスプログラム作成部２０は、仮想ユニット設定情報を用いて、この図９に示されるように、仮想ユニットは２つの機能ユニットによって構成されるので、図８に示されるシーケンスプログラムが２つ続けて記述された形式となる。なお、このとき作成されるシーケンスプログラムは、従来ユーザが作成していた実際のシーケンスプログラムであり、仮想ユニットで使用されるチャネル番号などは用いられない。
【００３８】
機能ブロック作成部２１は、シーケンスプログラム作成部２０によって作成されたシーケンスプログラムを出力ごとに、より具体的にはチャネルごとにブロック化して表示した機能ブロック形式のラダー図を作成し、作成した機能ブロックを機能ブロック格納部２２に保存する。
【００３９】
図１０は、機能ブロック形式のラダー図の一例を示す図である。このラダー図では、接点記号Ｍ０の後に、大きなブロックが示されている。このブロックは、仮想ユニット全体を示している。ブロック中には、ＣＨ１〜ＣＨ８の出力である「ＣＨ１＿ＯＵＴ」〜「ＣＨ８＿ＯＵＴ」が記されており、それぞれの出力の先には、出力を記録するためのＣＰＵユニット内部のメモリアドレスＤ０〜Ｄ７が示されている。
【００４０】
たとえば、ＣＨ１＿ＯＵＴでは、図９におけるシーケンスプログラムの回路Ａ１の部分（仮想ユニットのＣＨ１の処理に相当する部分）が実行されることになる。そして、その結果が、ＣＰＵユニット内部のメモリＤ０に格納される。そのため、機能ブロックにおけるＣＨ１＿ＯＵＴと図９のシーケンスプログラムの回路Ａ１の部分とは関連付けされている。
【００４１】
同様に、ＣＨ２＿ＯＵＴでは、図８におけるシーケンスプログラムの回路Ａ２の部分（仮想ユニットのＣＨ２の処理に相当する部分）が実行されることになり、その結果が、ＣＰＵユニット内部のメモリＤ１に格納される。そのため、機能ブロックにおけるＣＨ２＿ＯＵＴと図９のシーケンスプログラムの回路Ａ２の部分とは関連付けされている。他のチャネルについても同様である。
【００４２】
このように、機能ブロック図では、シーケンスプログラムでは、図９のように示される処理を、簡便なブロックで示すことができるという利点がある。また、実際には、複数の機能ユニットが連携して実行する機能を、１つの仮想ユニットで表示することができるという利点もある。
【００４３】
つぎに、このような構成を有するプログラム作成装置１０でのプログラム作成方法について説明する。図１１は、プログラム作成方法の処理手順の概要を示すフローチャートである。まず、ユーザによって仮想ユニット基本情報の作成処理が行われる（ステップＳ１１）。この仮想ユニット基本情報の作成処理の一例について説明すると、仮想ユニット基本情報作成部１５は、たとえば図２に示されるようなユニット情報格納部１４中のユニット基本情報を表示部１１に表示させる。ユーザは、プログラマブルコントローラで所定の機能を実現させようとするために必要な複数の機能ユニットを、表示部１１に表示されたユニット基本情報から選択する。また、ユーザは、選択したそれぞれの機能ユニットについてベースユニット上の装着スロットの位置（装着先頭Ｉ／Ｏ）と、仮想ユニット名を入力する。仮想ユニット基本情報作成部１５は、これらの入力項目を用いて、作成しようとする仮想ユニット名称、装着先頭Ｉ／Ｏおよび装着ユニットの種類を仮想ユニット基本情報として、仮想ユニット情報格納部１６に格納する。この仮想ユニット基本情報の一例が、図４に示されている。
【００４４】
ついで、仮想ユニット設定情報作成部１７は、仮想ユニット基本情報に含まれる機能ユニットのユニット機能詳細情報をユニット情報格納部１４から取得する（ステップＳ１２）。このとき、機能ユニットの数だけユニット機能詳細情報を取得する。その後、取得したユニット機能詳細情報を、仮想ユニット情報の装着ユニット名称に埋め込み、不要な項目の削除などの所定の処理を行うことによって、設定値としてデフォルト値が設定された仮想ユニット設定情報を作成する（ステップＳ１３）。
【００４５】
具体的には、図４の仮想ユニット基本情報の装着ユニット名称の各項目に、図３のユニット機能詳細情報を埋め込む。その後、仮想ユニット名称、設定内容および設定数値範囲の各列を削除する。さらに、設定項目名称と装着先頭Ｉ／Ｏを参照して、設定項目名称中のチャネル番号を通し番号にした仮想ユニット設定項目名称を付加することで、図５に示される仮想ユニット設定情報が得られる。作成された仮想ユニット設定情報は、仮想ユニット情報格納部１６に格納される。
【００４６】
ついで、仮想ユニット設定画面作成部１８は、デフォルト値が設定された仮想ユニット設定情報を用いて、仮想ユニット設定画面を作成する（ステップＳ１４）。たとえば、図５に示される仮想ユニット設定情報から、図７に示される仮想ユニット設定画面が作成される。図７の例では、各チャネルに共通の設定項目名称（仮想ユニット設定項目名称）を列方向に配置し、それぞれのチャネルの設定項目名称に対応する設定値が表形式で表示されている。なお、仮想ユニット設定情報には、設定値のみしか入力されていないので、それをそのまま表示させても、ユーザがその内容を理解することが難しい。そこで、図７では、仮想ユニット設定画面作成部１８は、設定内容とその数値との対応付けがなされているユニット機能詳細情報を用いて、設定値の設定内容を表示させることによって、仮想ユニット設定画面の可読性を上げるようにしている。
【００４７】
ついで、仮想ユニット設定画面作成部１８は、作成した仮想ユニット設定画面を表示部１１に表示する（ステップＳ１５）。ユーザは、表示部１１に表示された仮想ユニット設定画面で、各チャネルについての設定の編集を行う。仮想ユニット設定画面作成部１８は、ユーザによる仮想ユニット設定画面上の編集処理が終了すると、その結果を、仮想ユニット情報格納部１６に保存する（ステップＳ１６）。
【００４８】
仮想ユニット設定画面作成部１８は、編集された仮想ユニット設定情報の仮想ユニット情報格納部１６への保存前に、各設定の設定範囲のチェックを行うようにしてもよい。たとえば、設定値に入力された値が、図３のユニット機能詳細情報中の設定数値範囲内であるか否かを判定する。設定数値範囲内である場合には、そのまま保存処理を実行するが、設定数値範囲内でない場合には、その旨の表示を表示部１１に表示して、ユーザに設定値の変更を促す。これにより、ユーザによる設定ミスを防止することができる。
【００４９】
その後、シーケンスプログラム作成部２０は、保存された仮想ユニット設定情報と、シーケンスプログラム格納部１９に格納されている基本シーケンスプログラムとを用いて、作成する仮想ユニットに対応したシーケンスプログラムを作成する（ステップＳ１７）。具体的には、図８に示される基本シーケンスプログラムの定数部分Ｋ［バッファアドレス＝ｍの設定値］に仮想ユニット設定情報で設定された値を代入し、ユニットの装着位置を示すＵ［装着先頭Ｉ／Ｏ］に、仮想ユニット基本情報テーブルの装着先頭Ｉ／Ｏに対応する値を代入する。これにより、図９に示されるシーケンスプログラムが得られる。作成されたシーケンスプログラムは、仮想ユニット設定情報と対応付けされてシーケンスプログラム格納部１９に保存される。
【００５０】
ついで、機能ブロック作成部２１は、仮想ユニット設定情報と作成したシーケンスプログラムに基づいて、機能ブロックを作成する（ステップＳ１８）。この機能ブロックは、図１０に示されるように、チャネルごとに出力を表示した形式のものである。なお、機能ブロック作成部２１は、たとえば図１０に示される機能ブロック内の各チャネルで処理される内容を、図９に示されるシーケンスプログラムの対応する回路と対応付けしている。そして、機能ブロック作成部２１は、作成した機能ブロックを機能ブロック格納部２２に格納して（ステップＳ１９）、プログラム作成処理が終了する。
【００５１】
この後、作成された機能ブロックは、プログラム作成装置１０が通信部１３を介してプログラマブルコントローラと接続された状態で、ＣＰＵユニットに導入され、使用可能な状態となる。
【００５２】
なお、上述した説明では、同じ種類のＡＤ変換ユニットを複数組み合わせて使用した構成例を示したが、このほかに、機能ユニットの組み合わせとして、ＤＡ変換ユニットを複数個組み合わせて使用する場合、ＡＤ変換ユニットとＤＡ変換ユニットを組み合わせて使用する場合、位置決めユニットとカウンタユニットを組み合わせて使用する場合などを例に挙げることができる。
【００５３】
ＡＤ変換ユニットとＤＡ変換ユニットを組み合わせる場合は、アナログ信号をＡＤ変換ユニットで受けて、それをＤＡ変換ユニットでアナログ信号として出力する場合に使用される。また、位置決めユニットとカウンタユニットを組み合わせる場合は、位置決めユニットでこの位置決めユニットで制御されるワークを移動させて、カウンタユニットでそのワークの移動量を計測する場合に使用される。
【００５４】
また、ＡＤ変換ユニットとＤＡ変換ユニットとを組み合わせて使用する場合においては、機能ユニットからの入力と機能ユニットへの出力があるために、それらの機能ユニットの設定内容の整合性を合わせる必要がある。たとえば、アナログユニットの各チャネルの設定には、電圧・電流の入力切替や分解能の設定などがあり、これらをＡＤ変換ユニット側とＤＡ変換ユニット側で整合しているか否かを判定する。一例を挙げると、ＡＤ変換ユニットのＣＨ１の分解能の設定が１／４０００である場合に、それに対応するＤＡ変換ユニットのＣＨ１の分解能の設定も１／４０００となっている必要がある。そのため、仮想ユニット設定画面作成部１８には、ユーザによる仮想ユニットの設定の後、これらの値が一致しているか否かを判定する機能を持たせることも可能である。
【００５５】
また、上述したプログラム作成方法を、これらの方法の処理手順が格納されたプログラムとして構成し、このプログラムをＣＰＵ，ＲＯＭ（Read Only Memory），ＲＡＭ（Random Access Memory）を有するコンピュータで実行することによって実現することができる。
【００５６】
この実施の形態によれば、ある１つの機能を実現させるために複数の機能ユニットを連携させて使用する場合に、プログラミング上では個々の機能ユニットを意識することなく、これらの機能ユニットを１つにまとめた仮想ユニットとして扱うことができる。また、ユーザは、仮想ユニットの機能を実現させるための設定を行うだけで、その内容が記載されたシーケンスプログラムを自動的に作成することができる。その結果、ユーザは、シーケンスプログラムを作成する必要がない。さらに、シーケンスプログラムから仮想ユニットを、その出力ごとにまとめて表示した機能ブロックとして作成することができる。
【００５７】
また、ある１つの機能を実現するために、従来では装着する機能ユニット単位で設定を行う必要があり、しかも機能ユニット間で連係動作させるためのプログラミングが必要となっていたが、この実施の形態によれば、機能ユニット単位の設定も、機能ユニット間で連係動作させるためのプログラミングも必要ないという効果を有する。また、機能ユニットが有する実際のチャネル数などの制約に縛られることなく、任意の仮想ユニットを作成することができるという効果も有する。
【産業上の利用可能性】
【００５８】
以上のように、この発明にかかるプログラム作成装置は、プログラマブルコントローラのシーケンスプログラムの作成に有用であり、特に、プログラマブルコントローラ中である機能を複数の機能ユニットによって実現する場合のシーケンスプログラムの作成に適している。
【図面の簡単な説明】
【００５９】
【図１】この発明によるプログラム作成装置の機能構成の一例を模式的に示すブロック図である。
【図２】ユニット基本情報の一例を示す図である。
【図３】ユニット機能詳細情報の一例を示す図である。
【図４】仮想ユニット情報の一例を示す図である。
【図５】プログラマブルコントローラにおけるベースユニット上への各ユニットの装着の一例を示す図である。
【図６】仮想ユニット設定情報の一例を示す図である。
【図７】仮想ユニット設定画面の一例を示す図である。
【図８】基本シーケンスプログラムの一例を示す図である。
【図９】シーケンスプログラム作成部によって作成されたシーケンスプログラムの一例を示す図である。
【図１０】機能ブロック形式のラダー図の一例を示す図である。
【図１１】プログラム作成方法の処理手順の概要を示すフローチャートである。
【図１２】従来のユニットにおけるメモリ表示の形式の一例を示す図である。
【符号の説明】
【００６０】
１０  プログラム作成装置
１１  表示部
１２  入力部
１３  通信部
１４  ユニット情報格納部
１５  仮想ユニット基本情報作成部
１６  仮想ユニット情報格納部
１７  仮想ユニット設定情報作成部
１８  仮想ユニット設定画面作成部
１９  シーケンスプログラム格納部
２０  シーケンスプログラム作成部
２１  機能ブロック作成部
２２  機能ブロック格納部
２３  制御部
【図１】
2008146385.tif 000003
【図２】
2008146385.tif 000004
【図３】
2008146385.tif 000005
【図４】
2008146385.tif 000006
【図５】
2008146385.tif 000007
【図６】
2008146385.tif 000008
【図７】
2008146385.tif 000009
【図８】
2008146385.tif 000010
【図９】
2008146385.tif 000011
【図１０】
2008146385.tif 000012
【図１１】
2008146385.tif 000013
【図１２】
2008146385.tif 000014