(57)【要約】【課題】ＰＬＣで実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担を軽減すること。【解決手段】選択部５４は、ＰＬＣ２が有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する。指定部５５は格納部に格納された複数のシステムファイルの中から選択部５４により選択された機能セットに対応するシステムファイルを抽出して指定する。変換部５６は指定部５５により指定されたシステムファイルを参照し、Ｃ言語プログラム４４を実行コードに変換する。生成部５７はラダープログラム４３とＣ言語プログラム４４の実行コードとを含むプロジェクト４１を生成する。転送部５８はプロジェクト４１をＰＬＣ２に転送する。【選択図】図７
2016224559.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第１プログラムと、高級プログラミング言語で記述されたユーザプログラムである第２プログラムとを編集する編集部と、
前記第２プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部と、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部と、
前記格納部に格納された複数のシステムファイルの中から前記機能セット選択部により選択された機能セットに対応するシステムファイルを指定する指定部と、
前記指定部により指定されたシステムファイルを参照し、前記第２プログラムを実行コードに変換する変換部と、
前記第１プログラムと前記第２プログラムの実行コードとを含むプロジェクトを生成する生成部と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する転送部と
を有することを特徴とするプログラム作成支援装置。
【請求項２】
前記プログラマブル・ロジック・コントローラにおいて前記第１プログラムと前記第２プログラムはデバイスを通じて情報を受け渡すようにそれぞれプログラミングされていることを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項３】
前記複数の機能セットのそれぞれを示す機能セット識別情報と、各機能セットに対応するシステムファイルを示すシステムファイル情報とを関連付けて記憶する記憶部をさらに有し、前記指定部は、前記機能セット選択部により選択された機能セットの機能セット識別情報に関連付けられているシステムファイル情報を抽出し、当該抽出されたシステムファイル情報に基づきシステムファイルを指定することを特徴とする請求項１または２に記載のプログラム作成支援装置。
【請求項４】
前記システムファイルには、システムヘッダファイル、システムライブラリファイルおよびシステムコンパイラオプションを保存するファイルのうち少なくとも１つが含まれていることを特徴とする請求項１ないし３のいずれか１項に記載のプログラム作成支援装置。
【請求項５】
前記複数の機能セットはそれぞれ前記高級プログラミング言語による開発環境のバージョンに応じて異なっていることを特徴とする請求項１ないし４のいずれか１項に記載のプログラム作成支援装置。
【請求項６】
前記変換部は、前記機能セット選択部により選択された機能セットを示す機能セット識別情報を前記実行コードに埋め込むことを特徴とする請求項１ないし５のいずれか１項に記載のプログラム作成支援装置。
【請求項７】
前記生成部は、前記機能セット選択部により選択された機能セットを示す機能セット識別情報を、前記プロジェクトを管理するためのプロジェクトデータに埋め込むことを特徴とする請求項１ないし６のいずれか１項に記載のプログラム作成支援装置。
【請求項８】
前記転送部は、前記プログラマブル・ロジック・コントローラが対応している機能セットを示す機能セット識別情報を前記プログラマブル・ロジック・コントローラから取得し、当該取得した機能セット識別情報と前記機能セット選択部により選択された機能セットを示す機能セット識別情報とに基づき、前記プログラマブル・ロジック・コントローラが対応している機能セットと前記機能セット選択部により選択された機能セットとの間に互換性があるかどうかを判定し、互換性がある場合に、前記プロジェクトを前記プログラマブル・ロジック・コントローラに転送し、当該取得した機能セット識別情報と前記機能セット選択部により選択された機能セットを示す機能セット識別情報との間に互換性がない場合に、前記プロジェクトを前記プログラマブル・ロジック・コントローラに転送しないことを特徴とする請求項１ないし７のいずれか１項に記載のプログラム作成支援装置。
【請求項９】
前記複数のシステムファイルは、各機能セットごとに前記格納部の異なる格納領域に格納されており、
前記指定部は、前記機能セット選択部により選択された機能セットに対応する格納領域に格納されているシステムファイルを指定することを特徴とする請求項１ないし８のいずれか１項に記載のプログラム作成支援装置。
【請求項１０】
前記転送部は、前記プログラマブル・ロジック・コントローラに保持されている前記プロジェクトを読み出すように構成されており、
前記編集部は、前記読み出されたプロジェクトに含まれている前記第１プログラムおよび前記第２プログラムを再編集するように構成されており、
前記転送部は、前記編集部により再編集された前記第１プログラムおよび前記第２プログラムを含むプロジェクトを前記プログラマブル・ロジック・コントローラに転送するように構成されていることを特徴とする請求項１ないし８のいずれか１項に記載のプログラム作成支援装置。
【請求項１１】
前記指定部は、前記転送部により前記プログラマブル・ロジック・コントローラから読み出された前記プロジェクトに必要となるシステムファイルを指定するように構成されており、
前記変換部は、前記指定部により新たに指定されたシステムファイルを参照し、前記第２プログラムを実行コードに変換するように構成されていることを特徴とする請求項１０に記載のプログラム作成支援装置。
【請求項１２】
前記転送部は、前記プログラマブル・ロジック・コントローラが対応している機能セットを示す機能セット識別情報を前記プログラマブル・ロジック・コントローラから取得し、当該取得した機能セット識別情報と前記機能セット選択部により選択された機能セットを示す機能セット識別情報とに基づき、前記プログラマブル・ロジック・コントローラが対応している機能セットと前記機能セット選択部により選択された機能セットとの間に互換性があるかどうかを判定し、互換性がある場合に、前記プログラマブル・ロジック・コントローラに保持されている前記プロジェクトを読み出すことを特徴とする請求項１０または１１に記載のプログラム作成支援装置。
【請求項１３】
プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置の制御方法であって、前記プログラム作成支援装置は、高級プログラミング言語で記述されたユーザプログラムである第２プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部を有しており、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する工程と、
グラフィカルプログラミング言語で記述されたユーザプログラムである第１プログラムと、前記第２プログラムとを編集する工程と、
前記格納部に格納された複数のシステムファイルの中から選択された機能セットに対応するシステムファイルを指定する工程と、
前記指定されたシステムファイルを参照し、前記第２プログラムを実行コードに変換する工程と、
前記第１プログラムと前記第２プログラムの実行コードとを含むプロジェクトを生成する工程と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する工程と
を有することを特徴とするプログラム作成支援装置の制御方法。
【請求項１４】
プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置で実行されるプログラムであって、前記プログラム作成支援装置は、高級プログラミング言語で記述されたユーザプログラムである第２プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部を有しており、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する工程と、
グラフィカルプログラミング言語で記述されたユーザプログラムである第１プログラムと、前記第２プログラムとを編集する工程と、
前記格納部に格納された複数のシステムファイルの中から選択された機能セットに対応するシステムファイルを指定する工程と、
前記指定されたシステムファイルを参照し、前記第２プログラムを実行コードに変換する工程と、
前記第１プログラムと前記第２プログラムの実行コードとを含むプロジェクトを生成する工程と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する工程と
を前記プログラム作成支援装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラ用のプログラムを作成するプログラム作成支援装置、プログラム作成支援装置で実行されるプログラムおよび制御方法に関する。
【背景技術】
【０００２】
特許文献１が示すようにラダープログラムとＣ言語プログラムとを実行するプログラマブル・ロジック・コントローラ（ＰＬＣ）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１７８８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ラダープログラムやＣ言語プログラムなどのユーザプログラムを開発するための開発環境は頻繁にバージョンアップ（更新）されることがある。一般に、ＰＬＣの機能が増加する（たとえば、オプションの拡張ユニットが販売される）と、その機能に関するシステムファイル（ライブラリファイルなど）やコンパイラーのオプションを追加するために、開発環境を構成するファイル群などが更新される。ある機能に関連したヘッダファイルが更新されたときに、そのファイル名が変更されたり、ヘッダファイルの格納場所が変更されたりすることもある。ときには、ファイル名が変更されないこともある。システムファイル群は開発環境のバージョンに応じて複数保持されることもあるが、これは古いバージョンにしか互換性のないＰＬＣが存在するからである。このようなケースでは開発環境のバージョンごとにフォルダが作成され、システムファイル群が区別されて格納される。したがって、ユーザは、開発環境のバージョンアップが行われたときにどのシステムファイル群を使用すべきかを判断して、適切にインクルードパスやシステムオプションなどを変更せねばならず、負担が重かった。
【０００５】
そこで、本発明は、ＰＬＣで実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担を軽減することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、たとえば、
プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第１プログラムと、高級プログラミング言語で記述されたユーザプログラムである第２プログラムとを編集する編集部と、
前記第２プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部と、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部と、
前記格納部に格納された複数のシステムファイルの中から前記機能セット選択部により選択された機能セットに対応するシステムファイルを指定する指定部と、
前記指定部により指定されたシステムファイルを参照し、前記第２プログラムを実行コードに変換する変換部と、
前記第１プログラムと前記第２プログラムの実行コードとを含むプロジェクトを生成する生成部と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する転送部と
を有することを特徴とするプログラム作成支援装置を提供する。
【発明の効果】
【０００７】
本発明によれば、ＰＬＣで実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担を軽減することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】ＰＬＣシステムの一例を示す図
【図２】ユーザプログラムの一例を示す図
【図３】プログラム作成支援装置の一例を示す図
【図４】ＰＬＣの一例を示す図
【図５】スキャンタイムを説明するための図
【図６】ＰＬＣの機能を示す図
【図７】プログラム作成支援装置の機能を示す図
【図８】統合開発環境のユーザインタフェースの一例を示す図
【図９】機能セットを選択する再利用されるユーザインタフェースの一例を示す図
【図１０】コンパイルデータセットの一例を示す図
【図１１】プロジェクトの作成処理を示すフローチャート
【図１２】プロジェクトの転送処理（書き込み）を示すフローチャート
【図１３】プロジェクトの転送処理（読み出し）を示すフローチャート
【発明を実施するための形態】
【０００９】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
はじめにプログラマブル・ロジック・コントローラ（ＰＬＣ、単にプログラマブルコントローラと呼ばれてもよい）を当業者にとってよりよく理解できるようにするために、一般的なＰＬＣの構成とその動作について説明する。
【００１１】
図１は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図１に示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置１と、工場等に設置される各種制御装置を統括的に制御するためのＰＬＣ（プログラマブル・ロジック・コントローラ）２とを備えている。ユーザプログラムは、ラダー言語やモーションフローなどのグラフィカルプログラミング言語を用いて作成されてもよいし、Ｃ言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。ＰＬＣ２は、ＣＰＵが内蔵された基本ユニット３と１つないし複数の拡張ユニット４を備えている。基本ユニット３に対して１つないし複数の拡張ユニット４が着脱可能となっている。基本ユニット３はＣＰＵユニットと呼ばれることもある。
【００１２】
基本ユニット３には、表示部５及び操作部６が備えられている。表示部５には、基本ユニット３に取り付けられている各拡張ユニット４の動作状況などを表示することができ、表示部５の表示内容は、操作部６を操作することにより切り替えることができる。表示部５には、通常、ＰＬＣ２内のデバイスの現在値（デバイス値）やＰＬＣ２内で生じたエラー情報などが表示される。なお、デバイスとは、デバイス値を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー（補助リレー）、タイマー、カウンタ、データメモリ等の状態を示す情報である。
【００１３】
拡張ユニット４は、ＰＬＣ２の機能を拡張するために用意されており、基本ユニット３に対して側方から取り付けられる。１つ目の拡張ユニット４は、基本ユニット３に対して側方から直接的に取り付けられる。２つ目以降の拡張ユニット４は、既に取り付けられている拡張ユニット４に対して、側方から直列的に取り付けられる。たとえば、基本ユニット３の右側面と拡張ユニット４の左側面とが連結面になっている。同様に、１つ目の拡張ユニット４の右側面の形状等は基本ユニット３の右側面とほぼ同じであるため、１つ目の拡張ユニット４の右側面に２つ目の拡張ユニット４の左側面が連結される。このような連結方式は、数珠つなぎ方式とかデイジーチェーン方式と呼ばれてもよい。各連結面にはコネクタが設けられており、通信や電力供給を行うためのバスもコネクタを介して連結される。このようにして、基本ユニット３と複数の拡張ユニット４が直列的に取り付けられると、各拡張ユニット４内に備えられた配線（例：バス）を介して、各拡張ユニット４が基本ユニット３に対して通信可能に接続される。各拡張ユニット４には、その拡張ユニット４の機能に対応する被制御装置１６（図４）が接続され、これにより、各被制御装置１６が拡張ユニット４を介して基本ユニット３に接続される。被制御装置１６には、センサなどの入力装置や、アクチュエータなどの出力装置が含まれる。
【００１４】
プログラム作成支援装置１は、たとえば、携帯可能ないわゆるノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部７及び操作部８を備えている。ＰＬＣ２を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置１を用いて作成され、その作成されたラダープログラムは、プログラム作成支援装置１内でニモニックコードに変換される。そして、プログラム作成支援装置１を、ＵＳＢ(Universal Serial Bus)などの通信ケーブル９を介してＰＬＣ２の基本ユニット３に接続し、ニモニックコードに変換されたラダープログラムをプログラム作成支援装置１から基本ユニット３に送ると、そのラダープログラムが基本ユニット３内でマシンコードに変換され、基本ユニット３に備えられたメモリ内に記憶される。なお、ここではニモニックコードを基本ユニット３に送信するようにしているが、本発明はこれに限られず、例えばニモニックコードを更に中間コードに変換し、中間コードを基本ユニット３に送信するようにしてもよい。
【００１５】
なお、図１では示していないが、プログラム作成支援装置１の操作部８には、プログラム作成支援装置１に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置１は、ＵＳＢ以外の他の通信ケーブル９を介して、ＰＬＣ２の基本ユニット３に対して着脱可能に接続されるような構成であってもよい。
【００１６】
図２は、ラダープログラムの作成時にプログラム作成支援装置１の表示部７に表示されるラダー図１７の一例を示す図である。図２に示すように、ＰＬＣ２を制御するためのラダープログラムは、プログラム作成支援装置１の表示部７にマトリックス状に表示される複数のセル１８内に仮想デバイスのシンボル１９を適宜配置して、視覚的なリレー回路を表すラダー図１７を構築することにより作成される。
【００１７】
ラダー図１７には、たとえば、１０列×Ｎ行（Ｎは任意の自然数）のセル１８が配置されている。そして、各行のセル１８内に、図２に示す左側から右側に向かって、時系列的に仮想デバイスのシンボル１９を適宜配置することにより、視覚的なリレー回路を作成することができる。作成されるリレー回路は、１行で表される直列的なリレー回路であってもよいし、複数行に並列的に表されたリレー回路を互いに結合することにより作成された、並列的なリレー回路であってもよい。
【００１８】
図２に示すリレー回路は、入力装置からの入力信号に基づいてオン／オフされる３つの仮想デバイス（以下、「入力デバイス」と呼ぶ。）のシンボル１９ａ，１９ｂ，１９ｃと、出力装置の動作を制御するためにオン／オフされる仮想デバイス（以下、「出力デバイス」と呼ぶ。）のシンボル１９ｄとが適宜結合されることにより構成されている。
【００１９】
各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの上方に表示されている文字（「Ｒ０００１」、「Ｒ０００２」及び「Ｒ０００３」）は、その入力デバイスのデバイス名（アドレス名）２１を表している。各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの下方に表示されている文字（「フラグ１」、「フラグ２」及び「フラグ３」）は、その入力デバイスに対応付けられたデバイスコメント２２を表している。出力デバイスのシンボル１９ｄの上方に表示されている文字（「原点復帰」）は、その出力デバイスの機能を表す文字列からなるラベル２３である。
【００２０】
図２に示す例では、デバイス名「Ｒ０００１」及び「Ｒ０００２」にそれぞれ対応する２つの入力デバイスのシンボル１９ａ，１９ｂが直列的に結合されることにより、ＡＮＤ回路が構成されている。また、これらの２つの入力デバイスのシンボル１９ａ，１９ｂからなるＡＮＤ回路に対して、デバイス名「Ｒ０００３」に対応する入力デバイスのシンボル１９ｃが並列的に結合されることにより、ＯＲ回路が構成されている。すなわち、このリレー回路では、２つのシンボル１９ａ，１９ｂに対応する入力デバイスがいずれもオンした場合、又は、シンボル１９ｃに対応する入力デバイスがオンした場合にのみ、シンボル１９ｄに対応する出力デバイスがオンされるようになっている。
【００２１】
図３は、図１のプログラム作成支援装置１の電気的構成について説明するためのブロック図である。図３に示すように、プログラム作成支援装置１には、ＣＰＵ２４、表示部７、操作部８、記憶装置２５及び通信部２６が備えられている。表示部７、操作部８、記憶装置２５及び通信部２６は、それぞれＣＰＵ２４に対して電気的に接続されている。記憶装置２５は、少なくともＲＡＭを含む構成であり、プログラム記憶部２７と、編集ソフト記憶部２８とを備えている。
【００２２】
ユーザは、編集ソフト記憶部２８に記憶されている編集ソフトをＣＰＵ２４に実行させて、操作部８を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成及び変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、プログラム記憶部２７に記憶される。また、ユーザは、必要に応じてプログラム記憶部２７に記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部２６は、通信ケーブル９を介してプログラム作成支援装置１を基本ユニット３に通信可能に接続するためのものである。
【００２３】
図４は、ＰＬＣ２の電気的構成について説明するためのブロック図である。図４に示すように、基本ユニット３には、ＣＰＵ１０、表示部５、操作部６、記憶装置１２及び通信部１４が備えられている。表示部５、操作部６、記憶装置１２、及び通信部１４は、それぞれＣＰＵ１０に電気的に接続されている。記憶装置１２は、ＲＡＭやＲＯＭ、メモリカードなどを含んでもよく、ラダープログラムなどを記憶する。記憶装置１２には、プログラム作成支援装置１から入力されたラダープログラムやユーザデータが上書きして記憶される。また、記憶装置１２には基本ユニット用の制御プログラムも格納されている。図４が示すように基本ユニット３と拡張ユニット４とは拡張バスの一種であるユニット外部バス９０を介して接続されている。なお、ユニット外部バス９０に関する通信機能は通信部１４の一部として実装されてもよい。
【００２４】
図５は、本発明の実施の形態に係るプログラマブルコントローラの基本ユニット３でのスキャンタイムの構成を示す模式図である。図５が示すように１つのスキャンタイムＴは、入出力のリフレッシュを行うためのユニット間通信２０１、プログラム実行２０２、ＥＮＤ処理２０４により構成されている。ユニット間通信２０１で、基本ユニット３は、ラダープログラムを実行して得られた出力データを基本ユニット３内の記憶装置１２から外部機器などに送信するとともに、受信データを含めた入力データを基本ユニット３内の記憶装置１２に取り込む。たとえば、基本ユニット３のデバイスに記憶されているデバイス値はリフレッシュによって拡張ユニット４のデバイスに反映される。同様に、拡張ユニット４のデバイスに記憶されているデバイス値はリフレッシュによって基本ユニット３のデバイスに反映される。なお、リフレッシュ以外のタイミングでデバイス値をユニット間で更新する仕組みが採用されてもよい。ただし、基本ユニット３のデバイスは基本ユニット３が随時書き換えており、同様に、拡張ユニット４のデバイスは拡張ユニット４が随時書き換えている。つまり、基本ユニット３のデバイスは基本ユニット３の内部の装置によって随時アクセス可能であり、同様に、拡張ユニット４のデバイスは拡張ユニット４の内部の装置によって随時アクセス可能になっている。基本ユニット３と拡張ユニット４との間では基本的にリフレッシュのタイミングにおいて相互にデバイス値を更新して同期する。プログラム実行２０２で、基本ユニット３は、更新された入力データを用いてプログラムを実行（演算）する。基本ユニット３はプログラムの実行によりデータを演算処理する。なお、ＥＮＤ処理とは、プログラム作成支援装置１や基本ユニット３に接続された表示器（図示せず）等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
【００２５】
このように、プログラム作成支援装置１はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをＰＬＣ２に転送する。ＰＬＣ２は、入出力リフレッシュ、ラダープログラムの実行およびＥＮＤ処理を１サイクル（１スキャン）として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器（センサ等）からのタイミング信号に基づいて、各種出力機器（モータ等）を制御する。よって、ＰＬＣ２は汎用のパーソナルコンピュータ（ＰＣ）とは全く異なる動きをする。
【００２６】
＜基本ユニットの機能＞
図６は基本ユニット３のＣＰＵ１０が制御プログラム４０を実行することで実現する機能を中心に示している。ＣＰＵ１０において第１実行部３０は、グラフィカルプログラミング言語で記述されるユーザプログラムである第１プログラムを実行する演算ユニットである。以下では第１プログラムの一例としてラダープログラムを採用するが、他のグラフィカルプログラミング言語で記述されるユーザプログラムであってもよい。第１実行部３０は、ラダープログラム（中間コード）４３を実行形式のコードに変換する機能を備えていてもよい。第１実行部３０の外部にこのような変換器が設けられていてもよい。第２実行部３１は、高級プログラミング言語で記述されるユーザプログラムである第２プログラムを実行する演算ユニットである。以下では第２プログラムの一例としてＣ言語プログラム４４を採用するが、他の高級プログラミング言語で記述されるユーザプログラムであってもよい。なお、ＣＰＵ１０は第１実行部３０と第２実行部３１に相当する演算部を異なる複数のＣＰＵコアとして備えていてもよいし、一方はＣＰＵ１０のＣＰＵコアが担当し、他方はＡＳＩＣなどで実装されてもよい。特に、第１実行部３０がラダープログラムを実行する際には高速処理が要求されるため、高速処理対応のＡＳＩＣで実装し、第２実行部３１が通信処理などを実行する際には高速処理は要求されないため、高機能ＣＰＵなどで実装してもよい。この場合、第１実行部３０と第２実行部３１はユニット内部バス３２によって接続され、通信する。
【００２７】
ＰＬＣ２の特徴的な機能としてデバイス（デバイスメモリ）が存在する。デバイスは、基本ユニット３の記憶装置１２や拡張ユニット４のメモリにそれぞれ確保される。基本ユニット３と拡張ユニットは入出力用のデバイスを通じてデータや状態などを受け渡す。本実施例では、ラダープログラム４３とＣ言語プログラム４４はデバイスを通じて情報を受け渡すようにそれぞれプログラミングされている。つまり、第１実行部３０と第２実行部３１はデバイスを通じて情報を送受信する。
【００２８】
記憶装置１２には、基本ユニット３のシステムプログラム（ファームウエア）である制御プログラム４０と、プログラム作成支援装置１から転送されてきたプロジェクト４１などが記憶される。プロジェクト４１には、プロジェクトデータ４２、ラダープログラム（中間コード）４３およびＣ言語プログラム（実行コード）４４などが含まれている。プロジェクト４１には、ラダープログラムのソースコードやＣ言語プログラムのソースコードが含まれていてもよい。プロジェクトデータ４２は、拡張ユニット４についての設定データなどが含まれている。ラダープログラム（中間コード）４３はプログラム作成支援装置１によりソースコード（ラダー図）から生成された中間コード（ニーモニック）である。Ｃ言語プログラム（実行コードや実行ファイルと呼ばれてもよい）４４はプログラム作成支援装置１によりソースコードから生成された実行形式のコードである。
【００２９】
プロジェクト管理部３３は、プログラム作成支援装置１から通信部１４を介してプロジェクト４１の書き込み要求を受信すると、プログラム作成支援装置１からプロジェクト４１を受信して記憶装置１２に格納する。また、プロジェクト管理部３３は、プログラム作成支援装置１から読み出し要求を受信すると、読み出し対象として指定されたファイル（例：プロジェクト４１の全体、ラダープログラム４３のみ、Ｃ言語プログラム４４のみ、Ｃ言語プログラムのソースファイルのみなど）を記憶装置１２から読み出して、プログラム作成支援装置１に転送する。プロジェクト４１の読み出し機能はプロジェクト４１の再編集に有用である。
【００３０】
＜プログラム作成支援装置１の機能＞
図７はプログラム作成支援装置１が編集ソフトウエア５０を実行することで実現するＣＰＵ２４の機能を中心に記載している。編集ソフトウエア５０は、記憶装置２５の編集ソフト記憶部２８に記憶されている。とりわけ、編集ソフトウエア５０は、グラフィカルプログラミング言語によるプログラミング環境と高級プログラミング言語によるプログラミング環境とを統合した統合開発環境を提供するものである。従来はグラフィカルプログラミング言語と高級プログラミング言語とでそれぞれ別々の編集ソフトウエアが使用されていた。そのため、従来はグラフィカルプログラミング言語と高級プログラミング言語とでそれぞれ別々のプロジェクトが作成されて管理されていた。一方で、本実施例ではグラフィカルプログラミング言語と高級プログラミング言語とで１つのプロジェクトにより管理することが可能となる。つまり、１つのプロジェクトファイルによりＣ言語プログラムとラダープログラムとを管理できるようになる。
【００３１】
プログラム記憶部２７には、プロジェクト４１などが記憶されている。プログラム作成支援装置１が保持しているプロジェクト４１とＰＬＣ２が保持しているプロジェクト４１には、プロジェクトデータ４２、ラダープログラム４３、Ｃ言語プログラム４４などが含まれる。プロジェクト４１をＰＬＣ２に転送するときに一部のファイルが削除されてもよい。たとえば、ＰＬＣ２にとってソースコードなどは必ずしも必要ではないため、これらは転送されなくてもよい。なお、ソースコードも転送しておくと、ＰＬＣ２からソースコードを取得した別のプログラム作成支援装置１においてソースコードを再編集することが可能となる。プロジェクトデータ４２はプロジェクト４１を構成している複数のファイル名と、どのファイルがソースファイルであり、どのファイルが実行ファイルであるかなどを管理するためのデータを有している。また、プロジェクトデータ４２は拡張ユニット４の設定データなどが含まれていてもよい。
【００３２】
図８は統合開発環境のユーザインタフェースの一例を示す図である。ＣＰＵ２４は編集ソフトウエア５０を起動すると、編集ソフトウエア５０にしたがってユーザインタフェース７０を表示部７に表示する。ワークスペース７１は、ラダープログラム４３の名称やＣ言語プログラム４４の名称などを設定するための設定エリアである。ＣＰＵ２４（生成部５７）は、ワークスペース７１を通じてユーザにより入力されたプロジェクト４１の名称、ラダープログラム４３の名称、Ｃ言語プログラム４４の名称、各実行ファイルの名称などをプロジェクトデータ４２に格納する。ラダータブ７２はラダープログラムを編集するためのタブである。Ｃ言語タブ７３はＣ言語プログラム４４のソースコード（ソースファイル）を編集するためのタブである。これらのタブは編集部５３のユーザインタフェースである。ユーザは操作部８を通じて各プログラムのソースファイルを編集する。ＣＰＵ２４はプロジェクト４１を１つの統合ファイルとしてまとめてもよいし、複数のファイルに分割して管理してもよい。後者の場合、ＣＰＵ２４はＣ言語プログラム４４をテキストファイルに保存してもよい。テキストファイルに保存されたＣ言語プログラム４４はユーザにとって使い慣れたテキストエディタによる編集を可能とする。
【００３３】
図７において編集部５３は、グラフィカルプログラミング言語で記述されたユーザプログラムである第１プログラム（例：ラダープログラム４３）と、高級プログラミング言語で記述された第２プログラム（例：Ｃ言語プログラム４４）とを、操作部８から入力されるユーザの指示に応じて編集する機能である。記憶装置２５には、Ｃ言語プログラム４４を変換部５６は実行コードに変換する際に参照される複数のシステムファイルを格納する格納部が設けられる。本実施例では、コンパイルに必要となるシステムファイル群であるコンパイルデータセット５１が記憶装置２５に記憶されている。選択部５４は、ＰＬＣ２が有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部として機能する。たとえば、あるバージョンの機能セットにはメモリカードの読み書き機能が含まれているが、他のバージョンの機能セットにはメモリカードの読み書き機能は含まれていない。このように機能セットが異なれば、サポートしている機能に違いが生じるため、実行コードを生成するために必要となるシステムファイル群も異なってくることがある。
【００３４】
図９は機能セットを選択するためのユーザインタフェースの一例を示している。この機能セット選択ＵＩ７５は、ユーザインタフェース７０に対して操作部８を通じて所定の操作が実行されたことをＣＰＵ２４が認識すると、表示部７に表示される。この例では、複数の機能セットを識別するための識別情報として機能セットバージョン情報（以下、バージョン情報と称す）が採用されている。ユーザは操作部８を通じてプルダウンリスト７６を操作し、プロジェクト４１に適用したい機能セットを選択する。選択部５４は操作部８の操作を解析し、どの機能セットが選択されたかを判別する。
【００３５】
図７において指定部５５は、記憶装置２５に格納された複数のシステムファイルの中から選択部５４により選択された機能セットに対応するシステムファイルを指定する機能である。記憶装置２５は、複数の機能セットのそれぞれを示す機能セット識別情報（例：バージョン情報）と、各機能セットに対応するシステムファイルを示すシステムファイル情報（例：ファイルパスを含むファイル名）とを関連付けて記憶する記憶部として機能する。これらの関連付けは関連付データ５２に保持されている。指定部５５は、選択部５４により選択された機能セットのバージョン情報に関連付けられているシステムファイル情報を抽出し、当該抽出されたシステムファイル情報に基づきシステムファイルを変換部５６に指定する。
【００３６】
変換部５６は、指定部５５により指定されたシステムファイルを参照し、Ｃ言語プログラム４４を実行コードに変換する機能である。変換部５６はＣＰＵ２４がコンパイラーの実行ファイルを実行することで実現される。このコンパイラーの実行ファイルも機能セットごとに個別に用意されていてもよい。このように、ＣＰＵ２４は、ソースコードのコンパイラー（実行コードや中間コードへの変換器（複数の中間コードをリンクして実行コードを生成するリンカーなどが含まれてもよい））を有し、実行形式や中間形式のファイルを生成する。
【００３７】
生成部５７は、ラダープログラム４３の中間コードとＣ言語プログラム４４の実行コードとを含むプロジェクト４１を生成する生成部である。転送部５８はＰＬＣ２に対してプロジェクト４１を書き込み（プログラム作成支援装置１からＰＬＣ２へ転送）したり、ＰＬＣ２が保持しているプロジェクト４１を読み出し（ＰＬＣ２からプログラム作成支援装置１へ転送）したりする機能である。つまり、ＣＰＵ２４は通信部２６を通じてＰＬＣ２に完成したプロジェクト４１を転送したり、再編集のためにＰＬＣ２からプロジェクト４１を転送したりする。
【００３８】
図１０はコンパイルデータセット５１の一例を示す図である。コンパイルデータセット５１には、統合開発環境が用意したシステムファイル群であるシステムデータセット６０とユーザが用意したユーザデータセット６５とが含まれうる。システムデータセット６０は機能セットバージョンごとに用意されるが、ユーザデータセット６５も機能セットバージョンごとに用意されてもよい。各ファイルには機能セットバージョンを示すバージョン情報が埋め込まれているか、各ファイルは機能セットバージョンごとに別のフォルダに保存されている。これによりどのファイルがどのバージョン／機能セットのものかを容易に判別することが可能となる。
【００３９】
システムデータセット６０には次のようなファイルが含まれうる。コンパイラー６１は、Ｃ言語のソースファイル６６を実行コードに変換するプログラムである。システムコンパイラオプションは実行コードの変換方法などを指定するオプションであり、たとえば、ダイナミックリンクやスタティックリンクなどを選択するための選択肢である。システムヘッダファイル６３は、ソースファイルにインクルードされる別のファイルであり、サブルーチンや関数などを宣言するために利用される。システムライブラリファイル６４は汎用性のあるプログラムの集合体であり、ソースコードまたはオブジェクトコードの集合体である。
【００４０】
ユーザデータセット６５には次のようなファイルが含まれうる。ソースファイル６６は、Ｃ言語プログラム４４のソースファイルなどである。ユーザコンパイラオプション６７はユーザが独自に定義したコンパイラーオプションである。ユーザヘッダファイル６８はユーザが独自に用意したヘッダファイルである。ユーザライブラリファイル６９はユーザが独自に用意したライブラリファイルである。ユーザはプログラミングの効率を上げるために、予め自身が頻繁に利用するプログラム部品をユーザヘッダファイル６８やユーザライブラリファイル６９として用意することがある。
【００４１】
上述したように、コンパイルデータセット５１に含まれる各ファイルにはバージョン情報が埋め込まれてもよい。また、埋め込まれる位置は予め決められた固定位置であってもよい。このようにファイルにバージョン情報を埋め込んでおけば、そのファイルから直接バージョン情報を取得できるようになる。なお、プロジェクト４１を管理するためのプロジェクトデータ４２にバージョン情報が埋め込まれてもよい。これによりプロジェクト４１を構成しているファイル群をサポートしているバージョン、つまり、互換性のあるバージョンが何であるかを容易に判別できるようになろう。
【００４２】
＜メインのフローチャート＞
図１１はプロジェクトの作成処理を示すフローチャートである。Ｓ１でＣＰＵ２４（選択部５４）は操作部８および機能セット選択ＵＩ７５を通じて機能セットの選択を受け付ける。Ｓ２でＣＰＵ２４（指定部５５）は、選択部５４により選択された機能セットに対応するシステムデータセット６０やユーザデータセット６５を変換部５６に指定する。たとえば、指定部５５は、選択された機能セットを示すバージョン情報をもとに関連付データ５２を参照し、選択された機能セットについて必要となるコンパイルデータセット５１の格納領域（フォルダのパス名など）を特定し、特定した格納領域を変換部５６に指定する。
【００４３】
Ｓ３でＣＰＵ２４（編集部５３）はユーザの必要に応じてＣ言語プログラム４４のソースファイル６６などを編集する。なお、単に再コンパイルするだけであれば、Ｓ３はスキップされる。なお、Ｓ１ないしＳ３の実行順序は入れ替えられてもよい。つまり、Ｓ１とＳ２はＳ４の前またはＳ４内で実行されればよい。
【００４４】
Ｓ４でＣＰＵ２４（変換部５６）は、指定部５５により指定されたシステムデータセット６０やユーザデータセット６５にしたがってソースファイル６６を実行コードに変換する。たとえば、変換部５６は、指定されたシステムデータセット６０に含まれているシステムコンパイラオプション６２を引数としてコンパイラー６１を起動し、システムヘッダファイル６３をインクルードしてオブジェクトコードを生成し、さらにシステムライブラリファイル６４をリンクして実行コードを生成する。ユーザデータセット６５にユーザコンパイラオプション６７やユーザヘッダファイル６８、ユーザライブラリファイル６９が存在する場合、変換部５６は、指定されたシステムデータセット６０に含まれているシステムコンパイラオプション６２とユーザデータセット６５に含まれているユーザコンパイラオプション６７を引数としてコンパイラー６１を起動し、システムヘッダファイル６３とユーザヘッダファイル６８をインクルードしてオブジェクトコードを生成し、さらにシステムライブラリファイル６４とユーザライブラリファイル６９をリンクして実行コードを生成する。このように実行コードを生成するために利用されるヘッダファイルやライブラリファイルは選択部５４を通じてユーザにより選択された機能セットと互換性があるものとなる。基本的に、指定部５５は、コンパイルデータセット５１が格納されているフォルダの名称（パス名）をコンパイラー６１に渡すものとするが、変換部５６がパス名にしたがってソースファイル６６の内部で宣言されているインクルードファイルのパス名を修正してもよい。なお、変換部５６は、選択された機能セットを示すバージョン情報を実行コードに埋め込んでもよい。
【００４５】
Ｓ５でＣＰＵ２４（生成部５７）は、変換部５６で生成された実行コードなどを含むプロジェクト４１を生成し、ＣＰＵ２４（転送部５８）は、生成されたプロジェクト４１をＰＬＣ２に転送する。プロジェクト４１を作成したプログラム作成支援装置１とは異なるプログラム作成支援装置１においてプロジェクト４１が再編集される可能性がある場合、転送部５８はシステムデータセット６０やユーザデータセット６５もプロジェクト４１に含めて転送する。プロジェクト４１を読み出して再編集するプログラム作成支援装置１がシステムデータセット６０をすでに有している場合、システムデータセット６０はＰＬＣ２に転送されなくてもよい。ユーザは操作部８を通じて転送対象のファイルを生成部５７や転送部５８に指定してもよい。生成部５７は、選択された機能セットを示すバージョン情報をプロジェクト４１のプロジェクトデータ４２に保存してもよい。ＰＬＣ２のプロジェクト管理部３３は受信したプロジェクト４１を記憶装置１２に記憶させる。
【００４６】
＜プロジェクトの書き込み＞
図１２はプロジェクトの書き込み処理（Ｓ５）の一部を詳細に示したフローチャートである。Ｓ１１でＣＰＵ２４（転送部５８）は選択部５４を通じてユーザにより選択された機能セットを示す識別情報（バージョン情報）を選択部５４から取得する。
【００４７】
Ｓ１２でＣＰＵ２４（転送部５８）は通信部２６を通じてＰＬＣ２のプロジェクト管理部３３と通信し、ＰＬＣ２が対応可能な機能セットを示す識別情報（バージョン情報）を取得する。プロジェクト管理部３３は、ＰＬＣ２が対応可能な機能セットを示すバージョン情報を予め保持しているものとする。バージョン情報がたとえば番号や数値であり、数値が大きくなるほど新しいバージョンを示しており、新しいバージョンは古いバージョンについて後方互換性を有していると仮定する。この場合、選択部５４を通じてユーザにより選択された機能セットのバージョン番号が、ＰＬＣ２がサポートしている機能セットのバージョン番号以下であれば、ＰＬＣ２はプログラム作成支援装置１により作成されたプロジェクト４１を実行できる。一方で、選択部５４を通じてユーザにより選択された機能セットのバージョン番号が、ＰＬＣ２がサポートしている機能セットのバージョン番号を超えていれば、ＰＬＣ２はプログラム作成支援装置１により作成されたプロジェクト４１を実行できない可能性がある。
【００４８】
Ｓ１３でＣＰＵ２４（転送部５８）は、ＰＬＣ２がサポートしている機能セットと、プログラム作成支援装置１により作成されたプロジェクト４１の機能セットとの間に互換性があるかどうかを判定する。このように転送部５８は互換性を判定する判定部を備えている。両者の間に互換性がある場合、ＣＰＵ２４はＳ１４に進む。
【００４９】
Ｓ１４でＣＰＵ２４（転送部５８）はＰＬＣ２に対して通信部２６を通じてプロジェクト４１を転送する。一方で、両者の間に互換性がない場合、ＣＰＵ２４はＳ１５に進む。Ｓ１５でＣＰＵ２４（転送部５８）はプロジェクト４１の転送を中止し、表示部７に警告を出力する。これにより、ＰＬＣ２がサポートしていない機能についての実行コードを含むプロジェクト４１がＰＬＣ２に転送されないようになる。
【００５０】
＜プロジェクトの読み出し＞
ＰＬＣ２からプロジェクト４１を読み出すことができれば便利であろう。一般にユーザプログラムはデスクトップコンピュータなどを用いてプログラマーによってプログラミングされる。しかし、ＰＬＣ２が工場に設置されると、ＰＬＣ２にデスクトップコンピュータを接続することができず、ラップトップコンピュータ（ノートパソコンなど）などの小型のコンピュータを接続することができるに過ぎない。しかし、工場内でユーザプログラムを微修正できれば、ユーザプログラムの改修効率が向上しよう。ここで問題となるのが、ＰＬＣ２に保持されているプロジェクト４１を作成した開発環境のバージョンと、工場に持ち込まれたラップトップコンピュータにインストールされている開発環境のバージョンとの間に互換性が無い場合、再編集は困難であろう。また、再編集が不可能にもかかわらず、読み出しを実行することは時間の浪費となろう。そこで、本実施例では、両者に互換性が無い場合は読み出しを中止することで、ユーザにとって無駄な時間を短縮する。
【００５１】
図１３はプロジェクトの読み出し処理を示したフローチャートである。Ｓ２１でＣＰＵ２４（転送部５８）は統合開発環境、つまり、編集ソフトウエア５０がサポートしている機能セットを示す識別情報（バージョン情報）を編集ソフトウエア５０から取得する。
【００５２】
Ｓ２２でＣＰＵ２４（転送部５８）は通信部２６を通じてＰＬＣ２のプロジェクト管理部３３と通信し、ＰＬＣ２が保持しているプロジェクト４１の作成に使用された機能セットを示す識別情報（バージョン情報）を取得する。バージョン情報はたとえばプロジェクトデータ４２やＣ言語プログラム４４の実行ファイルに予め埋め込まれているものとする。
【００５３】
Ｓ２３でＣＰＵ２４（転送部５８）は、編集ソフトウエア５０から取得したバージョン情報とＰＬＣ２から取得したバージョン情報とに基づき、プログラム作成支援装置１がサポートしている機能セットと、ＰＬＣ２が保持しているプロジェクト４１の機能セットとの間に互換性があるかどうかを判定する。このように転送部５８は互換性の判定部を備えている。両者の間に互換性がある場合、ＣＰＵ２４はＳ２４に進む。
【００５４】
Ｓ２４でＣＰＵ２４（転送部５８）は通信部２６を通じてＰＬＣ２からプロジェクト４１を読み出す。図１１に示したように、ＣＰＵ２４（編集部５３）は読み出したプロジェクト４１を再編集し、再びＰＬＣ２に書き込んでもよい。これにより、工場の現場でプロジェクト４１を改変できるようになる。なお、再編集の際にＳ１で機能セットが変更されてもよい。この場合、変換部５６は実行コード（実行ファイル）に埋め込むバージョン情報を変更し、生成部５７もプロジェクトデータ４２のバージョン情報を変更する。
【００５５】
一方で、両者の間に互換性がない場合、ＣＰＵ２４はＳ２５に進む。Ｓ２５でＣＰＵ２４（転送部５８）はプロジェクト４１の読み出しを中止し、表示部７に警告を出力する。これにより、プログラム作成支援装置１がサポートしていない機能セットを含むプロジェクト４１がプログラム作成支援装置１に転送されないようになる。なお、ＣＰＵ２４は、統合開発環境のバージョンアップを促すメッセージを表示部７に表示してもよい。通常、ＰＬＣ２に機能が追加されるときは、その機能についてのっプログラミングをサポートした統合開発環境もリリースされる。よって、ユーザは、サーバから新しいバージョンの編集ソフトウエア５０やシステムデータセット６０をダウンロードしてプログラム作成支援装置１にインストールし、統合開発環境をバージョンアップしてもよい。これにより、ＰＬＣ２からプロジェクト４１の読み出して再編集することが可能となる。
【００５６】
＜まとめ＞
以上説明したように本実施例によれば、ＰＬＣ２で実行されるユーザプログラムを作成するプログラム作成支援装置１、その制御方法および編集ソフトウエア５０が提供される。図７を用いて説明したように編集部５３はグラフィカルプログラミング言語で記述されたユーザプログラムである第１プログラム（例：ラダープログラム４３）と、高級プログラミング言語で記述されたユーザプログラムである第２プログラム（例：Ｃ言語プログラム４４）とを編集する。記憶装置２５は、第２プログラムを実行コードに変換する際に参照される複数のシステムファイル（例：コンパイルデータセット５１）を格納する格納部として機能する。システムファイルには、システムヘッダファイル６３、システムライブラリファイル６４およびシステムコンパイラオプション６２を保存するファイルのうち少なくとも１つが含まれている。上述したようにユーザデータセット６５もシステムファイルに含まれてもよい。選択部５４は、ＰＬＣ２が有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部として機能する。指定部５５は格納部に格納された複数のシステムファイルの中から選択部５４により選択された機能セットに対応するシステムファイルを抽出して指定する。変換部５６は、指定部５５により指定されたシステムファイルを参照し、Ｃ言語プログラム４４を実行コードに変換する。変換部５６は、ラダー図を中間コードに変換する機能を有していてもよい。生成部５７は、ラダープログラム４３とＣ言語プログラム４４の実行コードとを含むプロジェクト４１を生成する。転送部５８はプロジェクト４１をＰＬＣ２に転送する。このようにユーザは選択部５４を通じて機能セットを選択すれば、その機能セットに対応したシステムファイルを指定部５５が指定するため、ユーザは機能セットとシステムファイルとの関係を理解していなくても、必要なシステムファイルが抽出されて、実行コードの変換に利用されるようになる。つまり、本実施例によれば、ＰＬＣ２で実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担が軽減される。
【００５７】
ＰＬＣ２の特徴的な機能としてデバイスがある。本実施例では、ＰＬＣ２において第１プログラムと第２プログラムはデバイスを通じて情報を受け渡すようにそれぞれプログラミングされている。これにより、言語の異なる複数のプログラムがデバイスを通じて連携できるようになる。
【００５８】
関連付データ５２に関して説明したように、記憶装置２５は、複数の機能セットのそれぞれを示す機能セット識別情報（例：バージョン情報）と、各機能セットに対応するシステムファイルを示すシステムファイル情報（例：ファイル名やパス名など）とを関連付けて記憶する記憶部として機能してもよい。指定部５５は、選択部５４により選択された機能セットの機能セット識別情報に関連付けられているシステムファイル情報を抽出し、当該抽出されたシステムファイル情報に基づきシステムファイルを指定してもよい。このように関連付データ５２を予め用意しておけば、ユーザにより選択された機能セットに必要なシステムファイルを容易に抽出することが可能となろう。
【００５９】
たとえば、複数の機能セットはそれぞれ高級プログラミング言語による開発環境のバージョンに応じて異なっていてもよい。たとえば、機能セットは、ＰＬＣ２が備えるソフトウエアの機能やハードウエアの機能が拡張されることで、増加することがある。ソフトウエアの機能は、制御プログラム４０がアップデートされると拡張されることがある。ハードウエアの機能は新しい拡張ユニット４の入手および接続により拡張されうる。このようにして拡張された機能を制御するためには新しいシステムヘッダファイル６３やシステムライブラリファイル６４などが必要となることが多い。よって、ＰＬＣ２の機能が拡張されると、統合開発環境もアップデートされる。このようなアップデートが繰り返されると、ＰＬＣ２には様々な機能セットが存在するとともに、様々なバージョンの統合開発環境も存在するようになる。つまり、複数の機能セットは統合開発環境のバージョンに応じて異なってくることもある。したがって、複数の機能セットが混在する環境では、機能セットに対応する適切なシステムファイル群をユーザが選択することが困難となりやすい。特に、ＰＬＣ２のバージョンが古いにもかかわらず、統合開発環境のバージョンが新しい場合には、過去のバージョンのシステムファイル群が必要となることがある。本実施例によれば、ユーザは機能セットを選択すれば、システムファイル群が変換部５６に指定されるため、ユーザのプログラミングの負担が軽減されよう。
【００６０】
変換部５６は、選択部５４により選択された機能セットを示す機能セット識別情報を実行コードに埋め込んでもよい。こにより、実行コードを解析すれば、どの機能セット用の実行コードであるかを容易に特定できるようになろう。とりわけ、ユーザプログラムの再編集の際に必要な機能セットを容易に特定できるようになろう。
【００６１】
生成部５７は、選択部５４により選択された機能セットを示す機能セット識別情報を、プロジェクト４１を管理するためのプロジェクトデータ４２に埋め込んでもよい。プロジェクトデータ４２はプロジェクト４１を統括的に管理するためのデータであり、ＰＬＣ２に転送されることが多い。よって、ＰＬＣ２に保持されているプロジェクトデータ４２を参照すれば、プロジェクト４１がどの機能セットに対応しているかを容易に判別できるようになろう。とりわけ、ユーザプログラムの再編集の際に必要な機能セットを容易に特定できるようになろう。
【００６２】
図１２を用いて説明したように、転送部５８は、ＰＬＣ２がサポートしている機能セットを示す機能セット識別情報をプログラマブル・ロジック・コントローラから取得し、当該取得した機能セット識別情報と選択部５４により選択された機能セットを示す機能セット識別情報とに基づき、ＰＬＣ２がサポートしている機能セットと選択部５４により選択された機能セットとの間に互換性があるかどうかを判定してもよい。互換性がある場合に、転送部５８は、プロジェクト４１をＰＬＣ２に転送し、互換性がない場合に、プロジェクト４１をＰＬＣ２に転送しない。これによりＰＬＣ２がサポートしていない機能を制御するプログラムを含むプロジェクト４１がＰＬＣ２に転送されないようになる。
【００６３】
上述したように、複数のシステムファイルは、格納部が備える複数の格納領域のうち各機能セットごとに異なる格納領域（例：フォルダなど）に格納されていてもよい。これにより、同一ファイル名であるものの、バージョンの異なる複数のシステムファイルをプログラム作成支援装置１に保持できるようになる。これにより、古いバージョンのシステムファイルを必要とするような機能セット用のユーザプログラムも新しいバージョンの統合開発環境において編集して実行コードを生成できるようになろう。
【００６４】
指定部５５は、選択部５４により選択された機能セットに対応する格納領域に格納されているシステムファイルを指定してもよい。たとえば、機能セットごとにインクルードパスを変更するようなケースであっても、ユーザに成り代わって指定部５５がインクルードパスを変更してもよい。これにより、ユーザの負担が軽減されよう。
【００６５】
図１３を用いて説明したように、転送部５８は、ＰＬＣ２に保持されているプロジェクト４１を読み出すように構成されていてもよい。編集部５３は、読み出されたプロジェクト４１に含まれている第１プログラムおよび第２プログラムを再編集するように構成されていてもよい。転送部５８は、編集部５３により再編集された第１プログラムおよび第２プログラムを含むプロジェクト４１をＰＬＣ２に転送するように構成されていてもよい。上述したように、ＰＬＣ２が工場に設置された後にもプロジェクト４１は改変されることがある。この場合に、ＰＬＣ２に保持されているプロジェクト４１を作成したコンピュータを工場に持ち込めるとは限らない。一般には、ノートパソコンなどポータブルタイプのコンピュータであれば、工場でも持ち込みやすい。このようなケースでは、ＰＬＣ２に保持されているプロジェクト４１を作成したコンピュータと、工場に設置されているＰＬＣ２に接続されたコンピュータとが異なることになる。したがって、工場に設置されているＰＬＣ２からノートパソコンなどにプロジェクト４１を読み出せるようにすれば、プロジェクト４１を工場内で迅速に改変することが可能となろう。
【００６６】
指定部５５は、転送部５８によりＰＬＣ２から読み出されたプロジェクト４１に必要となるシステムファイルを指定するように構成されていてもよい。プロジェクト４１に含まれているプロジェクトデータ４２に機能セット識別情報が埋め込まれている場合は機能セット識別情報から容易にシステムファイルを指定できるようになろう。プロジェクト４１に予めシステムファイルが含まれていれば、指定部５５はそのシステムファイルを変換部５６に指定してもよい。変換部５６は、指定部５５により新たに指定されたシステムファイルを参照し、第２プログラムを実行コードに変換するように構成されていてもよい。これにより機能セットやシステムファイルの互換性を維持したまま、ユーザプログラムを再編集して実行コードに変換することが容易になろう。
【００６７】
図１３を用いて説明したように、転送部５８は、ＰＬＣ２がサポートしている機能セットを示す機能セット識別情報をＰＬＣ２から取得し、当該取得した機能セット識別情報と選択部５４により選択された機能セットを示す機能セット識別情報とに基づき、ＰＬＣ２がサポートしている機能セットと選択部５４により選択された機能セットとの間に互換性があるかどうかを判定してもよい。互換性がある場合に限り、転送部５８は、ＰＬＣ２に保持されているプロジェクトデータを読み出してもよい。これにより無駄な転送を抑制することが可能となり、ユーザには統合開発環境のバージョンアップなどを促すことが可能となる。たとえば、表示部７は、統合開発環境のバージョンアップなどを促す統合開発環境のバージョンアップなどを促すメッセージを表示してもよい。
【図１】
2016224559.tif 000003
【図２】
2016224559.tif 000004
【図３】
2016224559.tif 000005
【図４】
2016224559.tif 000006
【図５】
2016224559.tif 000007
【図６】
2016224559.tif 000008
【図７】
2016224559.tif 000009
【図８】
2016224559.tif 000010
【図９】
2016224559.tif 000011
【図１０】
2016224559.tif 000012
【図１１】
2016224559.tif 000013
【図１２】
2016224559.tif 000014
【図１３】
2016224559.tif 000015