(57)【特許請求の範囲】
【請求項１】
所定の表示スクリーンを有する表示手段と、ポインティングデバイスやキーボード等の入力手段とを備え、所望の制御仕様をＰＬＣを用いて実現するためのユーザプログラムを、入出力を特定するための語種である「変数」、入出力に対して加えられる操作内容を特定するための語種である「命令」、任意に定義された機能を特定するための語種である「ファンクションブロック」と言った複数の語種を含むＰＬＣ用のプログラム言語を使用して記述する作業を支援するＰＬＣのプログラム開発支援装置であって、
前記表示手段の表示スクリーン上の第１の表示領域に、前記１の語種に属する１又は２以上の語を、その属する名前空間別に一覧表示させる第１の手段と、
前記表示手段の表示スクリーン上の第２の表示領域に、前記ユーザプログラムに対応する図式表示を行うための第２の手段と、
前記第１の表示領域に一覧表示された前記１の語種に属する１又は２以上の語の中から１の語を選択して、前記第２の表示領域にて行われた図式表示上の所望位置に配置するための前記入力手段の所定操作に応じて、前記選択された１の語を前記所望位置と関連付けて前記ユーザプログラム中に記述すると共に、その語の属する名前空間を特定するための「情報」を自動的に追加記述する第３の手段とを含む、ことを特徴とするＰＬＣのプログラム開発支援装置。
【請求項２】
前記「情報」は、そのユーザプログラム中に記述される前記１の語種に属する全ての語に対して適用されるべき名前空間を特定するためのものとして追加記述される、ことを特徴とする請求項１に記載のＰＬＣのプログラム開発支援装置。
【請求項３】
前記「情報」は、当該記述される語に限り適用されるべき名前空間を特定するためのものとして追加記述される、ことを特徴とする請求項１に記載のＰＬＣのプログラム開発支援装置。
【請求項４】
前記「情報」に対応する表示が、前記第２の表示領域にて行われた図式表示上の語シンボルに付加される、ことを特徴とする請求項２又は３に記載のＰＬＣのプログラム開発支援装置。
【請求項５】
所定の表示スクリーンを有する画像表示器と、ポインティングデバイスやキーボード等を有する入力操作部と、半導体メモリ、外部記憶装置、及び演算処理部を含む中央処理装置とを有するコンピュータを、
所望の制御仕様をＰＬＣを介して実現させるためのユーザプログラムを、入出力を特定するための語種である「変数」、入出力に対して加えられる操作内容を特定するための語種である「命令」、任意に定義された機能を特定するための語種である「ファンクションブロック」と言った複数の語種を含むＰＬＣ用のプログラム言語を使用して記述する作業を支援するＰＬＣのプログラム開発支援装置として機能させるためのコンピュータプログラムであって、
前記画像表示器の表示スクリーン上の第１の表示領域に、前記１の語種に属する１又は２以上の語を、その属する名前空間別に一覧表示させる第１の手段と、
前記画像表示器の表示スクリーン上の第２の表示領域に、前記ユーザプログラムに対応する図式表示を行うための第２の手段と、
前記第１の表示領域に一覧表示された前記１の語種に属する１又は２以上の語の中から１の語を選択して、前記第２の表示領域にて行われた図式表示上の所望位置に配置するための前記入力操作部の所定操作に応じて、前記選択された１の語を前記所望位置と関連付けて前記ユーザプログラム中に記述すると共に、その語の属する名前空間を特定するための「情報」を自動的に追加記述する第３の手段とを含む、ことを特徴とするコンピュータプログラム。
【請求項６】
前記「情報」は、そのユーザプログラム中に記述される前記１の語種に属する全ての語に対して適用されるべき名前空間を特定するためのものとして追加記述される、ことを特徴とする請求項５に記載のコンピュータプログラム。
【請求項７】
前記「情報」は、当該挿入される語に限り適用されるべき名前空間を特定するためのものとして追加記述される、ことを特徴とする請求項５に記載のコンピュータプログラム。
【請求項８】
前記「情報」に対応する表示が、前記第２の表示領域にて行われた図式表示上の語シンボルに付加される、ことを特徴とする請求項６又は７に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、所望の制御仕様を実現すべくプログラマブル・コントローラ（以下、「ＰＬＣ」と言う）に組み込まれるべき制御プログラム（以下、「ユーザプログラム」と言う）の開発を支援する機能を有するＰＬＣのプログラム開発支援装置に関する。
【背景技術】
【０００２】
任意の言語における「語」のグルーピング手法の１つである名前空間方式は、「語」のデータ型ではなくて、「語」の名前に対して複数の空間を与えるもので、「語」に関して名前の重複を許す仕組みである。この名前空間方式によれば、名前空間とその中の名前とは別に宣言することが許される。また、この名前空間方式によれば、言語の中に存在する全ての「語」に名前空間を与えると共に、名前空間名を別の名前空間に宣言することにより、事実上、名前空間の階層構造化が可能となる。そのため、この名前空間方式によれば、メンバの増減が容易であること、アクセス制御をプログラマが設定できること、階層構造を有することから名前に対するナビゲーションができること等々の利点がある。
【０００３】
ところで、昨今、ＰＬＣを提供する各社は、ＩＥＣ６１１３１−３規格にしたがった言語仕様を用いて開発環境を提供しているが、ＩＥＣ６１１３１−３規格は明示的な名前空間をもっていないため、「命令」や「ＦＢ」と言ったＰＯＵ（Program Organization Unitの略）、「変数」のようなグローバルに使用可能な「語」については、同じ名前又は構造体名を持つことができない。
【０００４】
そのため、命令ライブラリの提供に際しては、ライブラリ提供時に同じ名前のＰＯＵを提供してはならないこと、ライブラリに含まれる「変数」には、同じ名前の構造体名を提供してはならないこと、と言った制約があり、グローバル変数の使用に際しては、グローバルスコープの変数（ＩＥＣ６１１３１−３規格のＣＯＮＦＩＧＵＲＡＴＩＯＮが保有する変数）内で同じ名前を持つことが許されないと言った制約がある。これは、同じグローバル参照可能である「命令」名、「ＦＢ」名、構造体名とも重複することができないことを意味する。
【０００５】
このように「語」に関する同一名称の重複を許さないと言う制約は、他社のＰＬＣに代わって自社のＰＬＣを導入する場合のように、他社のＰＬＣの「命令」を引き継いで、「命令」の追加サポートを要請される場合に大きな問題となる。
【０００６】
そこで、ＩＥＣ６１１３１−３規格のＰＬＣプログラミングの分野に、「語」のグルーピング手法である名前空間方式を導入すれば、名前が重複してもよく、使い勝手を落とさないこと、アクセス制御の範囲をプログラマが調整できること、名前にアクセスするためのナビゲーションの機能を有すること、等々と言った様々な利点が期待される。
【０００７】
なお、所定の表示スクリーンを有する表示手段と、ポインティングデバイスやキーボード等の入力手段とを備え、所望の制御仕様をＰＬＣを用いて実現するためのユーザプログラムを、入出力を特定するための語種である「変数」、入出力に対して加えられる操作内容を特定するための語種である「命令」、任意に定義された機能を特定するための語種である「ファンクションブロック」（以下、「ＦＢ」と言う）と言った複数の語種を含むＰＬＣ用のプログラム言語を使用して記述する作業を支援するＰＬＣのプログラム開発支援装置は、従来より知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２７６５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述の名前空間方式は、ＩＥＣ６１１３１−３規格には存在しない比較的に新しい技術であって、特に、ＦＡ（Factory Automationの略）のユーザにとっては認知度が低いことに加え、特定の語空間に存在する「語」をプログラム中に記述する場合には、その「語」単位又は「プログラム」単位で、その「語」の属する語空間を指定するために、語空間の宣言文を記述すると言った既存のＰＬＣプログラミングには存在しない操作が必要であるため、上述の名前空間方式をプログラム開発支援装置に導入するについては、プログラマーに違和感を与えないための何らかのユーザフレンドリな仕組みが必要となる。
【００１０】
この発明は、上述の技術的背景に鑑みてなされたものであり、その目的とするところは、名前空間の概念を知らない又は不慣れなプログラマーであっても、特に名前空間の概念を意識すること無く、名前空間方式による「語」のグルーピング手法を使用してユーザプログラムを容易に作成することができるようにしたＰＬＣのプログラム開発支援装置を提供することにある。
【００１１】
その発明のさらに他の目的並びに作用効果は、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００１２】
上述の技術的な課題は、以下の構成を有するＰＬＣのプログラム開発支援装置により解決することができるものと考えられる。
【００１３】
すなわち、このＰＬＣのプログラム開発支援装置は、所定の表示スクリーンを有する表示手段と、ポインティングデバイスやキーボード等の入力手段とを備え、所望の制御仕様をＰＬＣを用いて実現するためのユーザプログラムを、入出力を特定するための語種である「変数」、入出力に対して加えられる操作内容を特定するための語種である「命令」、任意に定義された機能を特定するための語種である「ファンクションブロック（ＦＢ）」と言った複数の語種を含むＰＬＣ用のプログラム言語を使用して記述する作業を支援するものである。
【００１４】
そして、上述のプログラム開発支援装置には、前記表示手段の表示スクリーン上の第１の表示領域に、前記１の語種に属する１又は２以上の語を、その属する名前空間別に一覧表示させる第１の手段と、前記表示手段の表示スクリーン上の第２の表示領域に、前記ユーザプログラムに対応する図式表示を行うための第２の手段と、前記第１の表示領域に一覧表示された前記１の語種に属する１又は２以上の語の中から１の語を選択して、前記第２の表示領域にて行われた図式表示上の所望位置に配置するための前記入力手段の所定操作に応じて、前記選択された１の語を前記所望位置と関連付けて前記ユーザプログラム中に記述すると共に、その語の属する名前空間を特定するための「情報」を自動的に追加記述する第３の手段とが含まれている。
【００１５】
このような構成によれば、前記第１の表示領域に一覧表示された前記１の語種に属する１又は２以上の語の中から１の語を選択して、前記第２の表示領域にて行われた図式表示上の所望位置に配置するための前記入力手段の所定操作に応じて、前記選択された１の語を前記所望位置と関連付けて前記ユーザプログラム中に記述すると共に、その語の属する名前空間を特定するための「情報」を自動的に追加記述する機能が具備されていることから、ユーザーであるプログラマーは、意識して、その語の属する名前空間を特定するための「情報」（例えば、語空間の宣言文）をプログラム中に記述する操作が不要となる。
【００１６】
加えて、名前空間自体を何等かのメタファてとして提供することにより、名前空間の概念を学習するのではなく、そのメタファとして覚えるだけで、自然と名前空間を使用できるようになる。メタファの一例としては、（１）「変数」における名前空間のメタファとして装置の構造名を使用すること、（２）内部補助リレー、データメモリ上のグローバル変数名における名前空間のメタファとして、そのユーザになじみの深いプログラミングツールのセクション名を使用すること、（３）命令名における名前空間のメタファとして、ＣＰＵハードウェア名、アプリケーション名を使用すること（このＣＰＵハードアウェア名、アプリケーション名は命令カテゴリのトップレベルとして使用される）、等を挙げることができる。
【００１７】
そのため、本発明によれば、名前空間の概念を知らない又は不慣れなプログラマーであっても、特に名前空間の概念を意識すること無く、名前空間方式による「語」のグルーピング手法を使用してユーザプログラムを容易に作成することができる。
【００１８】
本発明装置の好ましい実施の形態においては、前記「情報」は、そのユーザプログラム中に記述される前記１の語種に属する全ての語に対して適用されるべき名前空間を特定するためのものとして追加記述される、ものであってもよい。このような構成によれば、ユーザプログラム単位で使用する「語」の語空間を定義するような場合には都合がよい。
【００１９】
本発明装置の好ましい実施の形態においては、前記「情報」は、当該記述される語に限り適用されるべき名前空間を特定するためのものとして追加記述される、ものであってもよい。このような構成によれば、語単位で使用する「語」の語空間を定義するような場合には都合がよい。
【００２０】
本発明装置の好ましい実施の形態においては、前記「情報」に対応する表示が、前記第２の表示領域にて行われた図式表示上の語シンボルに付加される、ものであってもよい。このような構成によれば、図式表示上における各語シンボルの属する語空間を一目瞭然に理解させることができる。
【００２１】
別の一面から見た本発明は、コンピュータを上述のＰＬＣのプログラム開発支援装置として機能させるためのコンピュータプログラムとして機能させるためのコンピュータプログラムとして把握することもできる。
【００２２】
すなわち、このコンピュータプログラムは、所定の表示スクリーンを有する画像表示器と、ポインティングデバイスやキーボード等を有する入力操作部と、半導体メモリ、外部記憶装置、及び演算処理部を含む中央処理装置とを有するコンピュータを、所望の制御仕様をＰＬＣを介して実現させるためのユーザプログラムを、入出力を特定するための語種である「変数」、入出力に対して加えられる操作内容を特定するための語種である「命令」、任意に定義された機能を特定するための語種である「ファンクションブロック（ＦＢ）」と言った複数の語種を含むＰＬＣ用のプログラム言語を使用して記述する作業を支援するＰＬＣのプログラム開発支援装置として機能させるためのものである。
【００２３】
そして、このコンピュータプログラムが実現する機能には、前記画像表示器の表示スクリーン上の第１の表示領域に、前記１の語種に属する１又は２以上の語を、その属する名前空間別に一覧表示させる第１の手段と、前記画像表示器の表示スクリーン上の第２の表示領域に、前記ユーザプログラムに対応する図式表示を行うための第２の手段と、前記第１の表示領域に一覧表示された前記１の語種に属する１又は２以上の語の中から１の語を選択して、前記第２の表示領域にて行われた図式表示上の所望位置に配置するための前記入力操作部の所定操作に応じて、前記選択された１の語を前記所望位置と関連付けて前記ユーザプログラム中に記述すると共に、その語の属する名前空間を特定するための「情報」を自動的に追加記述する第３の手段とが含まれている。
【００２４】
このような構成によれば、前記第１の表示領域に一覧表示された前記１の語種に属する１又は２以上の語の中から１の語を選択して、前記第２の表示領域にて行われた図式表示上の所望位置に配置するための前記入力操作部の所定操作に応じて、前記選択された１の語を前記所望位置と関連付けて前記ユーザプログラム中に記述すると共に、その語の属する名前空間を特定するための「情報」を自動的に追加記述する機能が具備されていることから、ユーザーであるプログラマーは、意識して、その語の属する名前空間を特定するための「情報」（例えば、語空間の宣言文）をプログラム中に記述する操作が不要となる。
【００２５】
加えて、名前空間自体を何等かのメタファてとして提供することにより、名前空間の概念を学習するのではなく、そのメタファとして覚えるだけで、自然と名前空間を使用できるようになる。メタファの一例としては、（１）ＩＯにおける名前空間のメタファとして装置の構造名を使用すること、（２）内部補助リレー、データメモリ上のグローバル変数名における名前空間のメタファとして、そのユーザになじみの深いプログラミングツールのセクション名を使用すること、（３）命令名における名前空間のメタファとして、ＣＰＵハードウェア名、アプリケーション名を使用すること（このＣＰＵハードアウェア名、アプリケーション名は命令カテゴリのトップレベルとして使用される）、等を挙げることができる。
【００２６】
そのため、本発明によれば、名前空間の概念を知らない又は不慣れなプログラマーであっても、特に名前空間の概念を意識すること無く、名前空間方式による「語」のグルーピング手法を使用してユーザプログラムを容易に作成することができる。
【００２７】
本発明プログラムの好ましい実施の形態においては、前記「情報」は、そのユーザプログラム中に記述される前記１の語種に属する全ての語に対して適用されるべき名前空間を特定するためのものとして追加記述される、ものであってもよい。このような構成によれば、ユーザプログラム単位で使用する「語」の語空間を定義するような場合には都合がよい。
【００２８】
本発明プログラムの好ましい実施の形態においては、前記「情報」は、当該記述される語に限り適用されるべき名前空間を特定するためのものとして追加記述される、ものであってもよい。このような構成によれば、語単位で使用する「語」の語空間を定義するような場合には都合がよい。
【００２９】
本発明プログラムの好ましい実施の形態においては、前記「情報」に対応する表示が、前記第２の表示領域にて行われた図式表示上の語シンボルに付加される、ものであってもよい。このような構成によれば、図式表示上における各語シンボルの属する語空間を一目瞭然に理解させることができる。
【発明の効果】
【００３０】
本発明によれば、前記第１の表示領域に一覧表示された前記１の語種に属する１又は２以上の語の中から１の語を選択して、前記第２の表示領域にて行われた図式表示上の所望位置に配置するための前記入力手段の所定操作に応じて、前記選択された１の語を前記所望位置と関連付けて前記ユーザプログラム中に記述すると共に、その語の属する名前空間を特定するための情報を自動的に追加記述する機能が具備されていることから、ユーザーであるプログラマーは、意識して、その語の属する名前空間を特定するための情報（例えば、語空間の宣言文）をプログラム中に記述する操作が不要となる。
【００３１】
加えて、名前空間自体を何等かのメタファてとして提供することにより、名前空間の概念を学習するのではなく、そのメタファとして覚えるだけで、自然に、名前空間を使用できるようになる。メタファの一例としては、（１）ＩＯにおける名前空間のメタファとして装置の構造名をメタファとする、（２）内部補助リレー、データメモリ上のグローバル変数名における名前空間のメタファとして、そのユーザになじみの深いプログラミングツールのセクション名をメタファとする、（３）命令名における名前空間のメタファとして、ＣＰＵハードウェア名、アプリケーション名をメタファとして使用する（このＣＰＵハードアウェア名、アプリケーション名は命令カテゴリのトップレベルとして使用される）、等を挙げることができる。
【００３２】
そのため、本発明によれば、名前空間の概念を知らない又は不慣れなプログラマーであっても、特に名前空間の概念を意識すること無く、名前空間方式による「語」のグルーピングを使用してユーザプログラムを容易に作成可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明に係る装置のハードウェア構成図である。
【図２】表示スクリーン上の表示例を示す説明図（その１）である。
【図３】表示スクリーン上の表示例を示す説明図（その２）である。
【図４】「変数」の記述操作の説明図である。
【図５】メモリ上の各種設定フラグを表にして示す説明図である。
【図６】プログラム作成処理のフローチャートである。
【図７】「語空間」の自動宣言処理のフローチャートである。
【図８】プログラム作成過程のニモニック列の説明図（その１）である。
【図９】プログラム作成過程のニモニック列の説明図（その２）である。
【図１０】プログラム作成過程のニモニック列の説明図（その３）である。
【発明を実施するための形態】
【００３４】
以下に、本発明に係るＰＬＣのプログラム開発支援装置の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００３５】
本発明に係る装置のハードウェア構成図が図１に示されている。この装置は、所望の制御仕様をＰＬＣを用いて実現するためのユーザプログラムを、入出力を特定するための語種である「変数」、入出力に対して加えられる操作内容を特定するための語種である「命令」、任意に定義された機能を特定するための語種である「ＦＢ」と言った複数の語種を含むＰＬＣ用のプログラム言語を使用して記述する作業を支援するように構成されている。
【００３６】
本発明装置は、所定のハードウェア構成を有するコンピュータに所定のソフトウェア構成を有するコンピュータプログラム（以下、「ツールソフト」と言う）を組み込むことで実現することができる。ここで、コンピュータとしては、図１に示されるように、例えば市販の可搬型パソコン（ＰＣ）のハードウェア構成をそのまま利用することもできる。
【００３７】
当業者にはよく知られているように、ノート型パソコン等の可搬型パソコンのハードウェア構成は、ＰＣ本体１と、キーボード２と、マウス等のポインティングデバイス３と、所定サイズの表示スクリーンを有する画像表示器４と、ハードディスク、ＣＤ−ＲＯＭ、ＵＳＢメモリ等々の外部記憶装置５等々を含んで構成されている。
【００３８】
ＰＣ本体１の内部には、周知のように、マイクロプロセッサや各種のＡＳＩＣ等で構成されるＣＰＵ１１と、半導体ＲＡＭやＲＯＭで構成されるメモリ１２と、ネットワークを介してＰＬＣ等の通信ノードと交信するための通信インタフェース１３とが設けられている。
【００３９】
この種のツールソフトには、所望のＰＬＣシステムの構築に必要なハードウェア構成及びソフトウェア構成の設計に供されるべき各種の機能が組み込まれており、本発明装置を実現するための機能もそのような機能の１つとしてツールソフトに組み込まれる。ツールソフトは例えば可搬型記録媒体（例えば、ＣＤ−ＲＯＭ、ＵＳＢメモリ等々）に格納された状態でユーザに提供され、ユーザはこれをパソコンのハードディスク等にインストールした後、所定の操作で起動することにより、本発明に係るプログラム開発支援装置が実現される。
【００４０】
ツールソフトが起動されて、所定の準備操作が行われたのちの表示スクリーン上の表示例を示す説明図が図２及び図３に示されている。それらの図において、表示スクリーンＳの左端部にあって、上側に位置しかつタイトルとして「コンフィグレーション」なる文字列が表示されているのが第１のメニュー表示領域Ａ１１、下側に位置しかつタイトルとして「プログラム」なる文字列が表示されているのが第２のメニュー表示領域Ａ１２、中央部にあって、左右方向へ細長い大きな長方形領域が作業用画面表示領域Ａ２、右端部にあって、上下に細長い長方形領域が「語」の一覧表示領域Ａ３である。ここでは、語種として「命令」を採用しているため、タイトルとして「命令一覧」なる文字列が付されているが、語種として「ＦＢ」を採用する場合には、タイトルは「ＦＢ一覧」となり、又語種として「変数」を採用する場合には、タイトルは「変数一覧」となることを理解されたい。
【００４１】
第１のメニュー表示領域Ａ１１には、所望のＰＬＣシステムの構築のためのデバイス構成の設計に必要な設計項目名を階層構造的に（図ではツリー状に）配列してなるデバイス構成設計用メニューが表示され、また第２のメニュー表示領域Ａ１２には、所望のＰＬＣシステムの構築のためのプログラム構成の設計に必要な設計項目名を階層構造的に（図ではツリー状に）配列してなるプログラム構成設計用メニューが表示される。
【００４２】
作業用画面表示領域Ａ２には、メニュー表示領域Ａ１１，Ａ１２からいずれかの設計項目が選択された場合に、その選択された選択項目に対応する作業用画面が表示される。この例では、第２のメニュー表示領域Ａ１２から設計項目として「工程歩進」が選択され、それに対応する作業用画面として、ユーザプログラムに相当するラダー図（図式表示）の一部が表示されている。
【００４３】
「語」の一覧表示領域Ａ３には、１の語種に属する１又は２以上の語を、その属する名前空間別に一覧表示させてなる「語」一覧表示が設けられる。ここで、先に説明したように、「語種」には、入出力を特定するための語種である「変数」、入出力に対して加えられる操作内容を特定するための語種である「命令」、任意に定義された機能を特定するための語種である「ＦＢ」が含まれる。なお、「語種」として「変数」が採用された場合の一覧表示態様については、図４を参照して後述する。
【００４４】
次に、この実施形態に係る装置の動作について概略的に説明する。先に説明したように、従来、ＰＬＣのプログラム開発支援装置に何の配慮もなく名前空間方式を導入しようとすれば、プログラマーは、各「語」に相当する名前をプログラム中に記述しようとすれば、その都度、又はプログラムの先頭において、プログラム中にその「語」の属する名前空間を示す宣言文を意識的に記述することが要求された。
【００４５】
しかし、この装置にあっては、図２及び図３に示されるように、表示スクリーンＳ上の表示欄Ａ３には、命令一覧が表示される。この命令一覧は、１又は２以上の「命令」（ＭＯＶ，ＭＯＶＬ・・・）を、その属する名前空間（Ｓｔｄ，ＣＪ，・・・）別に一覧表示させてなるものではあるが、プログラマーから見ると、Ｓｔｄ，ＣＪ等々の名前空間は、単に、何等かの命令カテゴリとしか認識されない。つまり、それらの「命令」（ＭＯＶ，ＭＯＶＬ・・・）は、単に、何等かのカテゴリ（Ｓｔｄ，ＣＪ，・・・）の違いがある程度にしか認識されないし、認識する必要もない。図２の例では、全ての「命令」は同一のカテゴリ“Ｓｔｄ”に属する。図３の例では、カテゴリ“Ｓｔｄ”に属する「命令」とカテゴリ“ＣＪ”に属する「命令」とが混在し、それらのカテゴリ間では同一の名前の「命令」も存在する。
【００４６】
先ず、カテゴリ“Ｓｔｄ”に属する「命令」だけでプログラムを記述する場合には、図２に示されるように、マウスのドラッグ・アンド・ドロップ（Ｄｒａｇ  ＆  Ｄｒｏｐ）操作で、所望の「命令」を表示領域Ａ３の命令一覧から選択し、領域Ａ２に表示されたラダー図の所望位置に移動させればよい。
【００４７】
すると、ラダー図上の所望位置には、当該「命令」（例えば、転送命令，倍長転送命令等々）に対応する回路シンボルがその「命令」に対応する文字列（ＭＯＶ，ＭＯＶＬ等々）が付された状態で配置される。
【００４８】
同時に、メモリ１２内のプログラム記述領域内のニモニック列上には、その「命令」に対応するニモニック（例えば、ＭＯＶ，ＭＯＶＬ等々）が記述される。加えて、その「命令」の属する名前空間名に相当する名前空間宣言文（例えば、Ｕｓｉｎｇ  Ｎａｍｅ  Ｓｐａｃｅ−−−）が所定の態様にてプログラム中に記述される。このとき、所定の宣言モード（「プログラム単位」／「語単位」）にしたがって、名前空間の宣言は、その「命令」単位又はその「命令」を含むプログラム単位にて行うことができる。ここで、プログラム単位とは、ユーザプログラムが複数の部分プログラムから構成されている場合には、各部分プログラム単位としてもよい。
【００４９】
以上の操作を繰り返すだけで、名前空間の概念を意識させたり、名前空間宣言文の記述操作を行わせることなく、実質的に名前空間を使用して、「命令」をグルーピングしながら、プログラムを記述させることができる。
【００５０】
次に、カテゴリ“Ｓｔｄ”に属する「命令」のみならず、カテゴリ“ＣＪ”に属する「命令」をも使用してプログラムを記述する場合にも、図３に示されるように、マウスのドラッグ・アンド・ドロップ（Ｄｒａｇ  ＆  Ｄｒｏｐ）操作で、所望の「命令」を表示領域Ａ３の命令一覧から選択し、領域Ａ２に表示されたラダー図の所望位置に移動させればよい。
【００５１】
すると、ラダー図上の所望位置には、当該「命令」（例えば、転送命令，倍長転送命令等々）に対応する回路シンボルが、その「命令」に対応する文字列（ＭＯＶ，ＭＯＶＬ等々）が付された状態で配置される。
【００５２】
同時に、メモリ１２内のプログラム記述領域内のニモニック列上には、その「命令」に対応するニモニック（例えば、ＭＯＶ，ＭＯＶＬ等々）が記述される。加えて、その「命令」の属する名前空間名に相当する名前空間宣言文が所定の態様にてプログラム中に記述される。この場合にも、所定の宣言モード（「プログラム単位」／「語単位」）の切換により、名前空間の宣言は、その「命令」単位又はその「命令」を含むプログラム単位にて行うことができる。
【００５３】
一方、カテゴリ“Ｓｔｄ”の転送命令“ＭＯＶ”を使用した後に、カテゴリ“ＣＪ”の転送命令“ＭＯＶ”を使用する場合のように、異なるカテゴリの同一名称の「命令」を使用する場合には、所定の語空間変更モード（プログラム単位」／「語単位」）の切替状態に応じた名前空間宣言の変更処理が行われる。
【００５４】
今仮に、語空間変更モードが「語単位」に設定されていたとすると、その新たに出現された異空間（ＣＪ）の転送命令“ＭＯＶ”に限って、名前空間はカテゴリ“ＣＪ”と宣言され、その他のプログラム中に含まれる「命令」については、依然として、名前空間はカテゴリ“Ｓｔｄ”とされる。このように、語空間変更モードを予め「語単位」に設定しておくことによって、プログラム全体としての主たる「命令」カテゴリはカテゴリ“Ｓｔｄ”に維持しつつも、同一名称である特定の「命令」についてのみ、カテゴリ“ＣＪ”とすることにより、名前空間の拡張が可能となるのである。
【００５５】
これに対して、語空間変更モードが「プログラム単位」に設定されていたとすると、その異空間（ＣＪ）の「命令」をドラッグ・アンド・ドロップする操作に応答して、名前空間はプログラム単位でカテゴリ“Ｓｔｄ”からカテゴリ“ＣＪ”へと変更され、同時に、それまでカテゴリ“Ｓｔｄ”が宣言されていた各「命令」の名前空間は、それぞれの語単位で、カテゴリ“Ｓｔｄ”に宣言される。このように、語空間変更モードを予め「プログラム単位」に設定しておくことにより、異空間の同一名称が出現するたびに、それまでの同一名称についても齟齬を生ずることなく、プログラム全体としての主たる「命令」カテゴリを新たな出現カテゴリ“ＣＪ”に変更することで、名前空間の拡張が可能となるのである。
【００５６】
次に、以上概略説明した命令記述操作とそれに対応して実行されるコンピュータプログラムとの関係について、図６及び図７のフローチャート、並びに、図８〜図１０のニモニック列を参照しながら詳細に説明する。
【００５７】
プログラマによるマウスのドラッグ・アンド・ドロップ操作が検知されると（ステップ６０１，６０２ＹＥＳ，６０３ＹＥＳ）、カーソル始点からは選択された「語」（例えば、“ＭＯＶ”）が、カーソル終点からはラダー図中の「記述位置」がそれぞれ特定され（ステップ６０４，６０５）、さらに、予め用意された所定のテーブルを参照することにより、「語（命令）」からその属する「語空間（名前空間）」（例えば、Ｓｔｄ）が特定される（ステップ６０６）。
【００５８】
こうして特定された「語」に相当するニモニック（ＭＯＶ）は、メモリ１２中のプログラム作成領域のニモニック列中に記述され（ステップ６０７）、しかるのち、本発明の要部であるところの語空間の自動宣言処理（ステップ６０８）が実行される。
【００５９】
図７に移って、自動宣言処理が開始されると、先ず、「語空間」宣言モードが参照される（ステップ７０１）。ここで、参照結果が「語」単位であると判定されると（ステップ７０１「語」単位）、こうして記述された「語」に限っての「語空間」宣言が行われる（ステップ７０５）。
【００６０】
このとき作成されるニモニック列の一例が図１０に示されている。先ず、名前空間（Ｓｔｄ）に属する「命令」であるＭＯＶが記述される時点で、同図（ａ）に示されるように、その「命令」についてのみ名前空間宣言文（Ｓｔｄ．ＭＯＶ）が記述され、次に名前空間（ＣＪ）の「命令」であるＭＯＶが記述される時点で、同図（ｂ）に示されるように、その「命令」についてのみ名前空間宣言文（ＣＪ．ＭＯＶ）が記述される。
【００６１】
なお、その「語」に属する「語空間」を指定するための情報としては（名前空間宣言文：Ｓｔｄ．ＭＯＶ，ＣＪ．ＭＯＶ）の記述方法はこれに限らず、例えば各「語」と対応する「語空間」との関係を定義する表を設ける等としても良い。
【００６２】
一方、参照結果が「プログラム単位」であると判定されると（ステップ７０１「プログラム」）、当該作成中のプログラム中に出現する最初の「命令」であることを条件として（ステップ７０２）、当該プログラム中に「プログラム」単位の「語空間」宣言文（Ｕｓｉｎｇ  Ｎａｍｅ  Ａｐａｃｅ  Ｓｔｄ）を記述する処理（ステップ７０３）が実行されたのち、以降の「命令」の出現により、プログラム単位の宣言文更新が行われないように初回フラグをリセットする（ステップ７０４）。このようにして「プログラム」単位の「語空間」宣言文が記述された例が、図８（ａ）に示されている。同図に示されるように、プログラムの先頭には、「プログラム」単位の「語空間」宣言文（Ｕｓｉｎｇ  Ｎａｍｅ  Ａｐａｃｅ  Ｓｔｄ）が配置されている。以後、出現する「命令」が異空間で重複しない限り（ステップ７０２ＮＯ、ステップ７０６ＮＯ）、「語空間」宣言文の挿入処理（ステップ７０３，７０８〜７１０）はスキップされ、「プログラム」単位の「語空間」宣言文が更新されることはない。
【００６３】
この状態において、例えばＭＯＶ（Ｓｔｄ）からＭＯＶ（ＣＪ）のように、プログラム中に異空間である「語」の重複ありと判定されると（ステップ７０６ＹＥＳ）、ただちに「語空間」変更モードの内容が参照される（ステップ７０７）。
【００６４】
ここで、「語空間」変更モードの内容が「語」単位であると判定されると（ステップ７０７「語」単位）、「語」単位での「語空間」宣言文挿入処理（ステップ７１０）が実行される。こうして、「プログラム」単位での「語空間」宣言内容は維持したまま、「語」単位での「語空間」宣言文を挿入した例が、図８（ｂ）に示されている。同図に示されるように、２番目に出現した「命令」ＭＯＶの位置には、「語」単位の「語空間」“ＣＪ”の宣言文（ＣＪ．ＭＯＶ）が記述されている。
【００６５】
これに対して、「語空間」変更モードの内容が「プログラム」単位であると判定されると（ステップ７０７「プログラム」単位）、「プログラム」単位での「語空間」宣言文の変更処理（ステップ７０８）、及び既出現「語」の「語空間」宣言文を「プログラム」単位から「語」単位へ変更する処理（ステップ７０９）が実行される。こうして、「プログラム」単位での「語空間」宣言内容を変更したのち、既出現の「語」について、「語」単位での「語空間」宣言文を「プログラム」単位から「語」単位へ変更したのちの例が、図９（ｂ）に示されている。同図に示されるように、プログラム先頭に配置された「語空間」宣言文は、語空間（Ｓｔｄ）から語空間（ＣＪ）に変更され、１番目に出現した「命令」ＭＯＶの位置には、「語」単位の「語空間」（Ｓｔｄ）の宣言文（Ｓｔｄ．ＭＯＶ）が配置されている。
【００６６】
このように、上述の実施形態によれば、表示領域Ａ３に一覧表示された１又は２以上の「命令」の中から１の語を選択して、表示領域Ａ２にて行われたラダー図表示上の所望位置に配置するためのドラッグ・アンド・ドロップ操作に応じて、選択された１の「命令」を所望位置と関連付けてユーザプログラム中に記述すると共に、その「命令」の属する名前空間（Ｓｔｄ，ＣＪ等々）を特定するための情報（名前空間宣言文）を自動的に追加記述する機能が具備されていることから、ユーザーであるプログラマーは、意識して、その「命令」の属する名前空間を特定するための情報（例えば、語空間の宣言文）をプログラム中に記述する操作が不要となる。
【００６７】
加えて、名前空間自体を何等かのメタファてとして提供することにより、名前空間の概念を学習するのではなく、そのメタファとして覚えるだけで、自然に、名前空間の概念を使用できるようになる。メタファの一例としては、ＩＯにおける名前空間のメタファとして装置の構造名をメタファとする、内部補助リレー、データメモリ上のグローバル変数名における名前空間のメタファとして、そのユーザになじみの深いプログラミングツールのセクション名をメタファとする、命令名における名前空間のメタファとして、ＣＰＵハードウェア名、アプリケーション名をメタファとして使用する（このＣＰＵハードアウェア名、アプリケーション名は命令カテゴリのトップレベルとして使用される）、等を挙げることができる。
【００６８】
そのため、この実施形態によれば、名前空間の概念を知らない又は不慣れなプログラマーであっても、特に名前空間の概念を意識すること無く、名前空間方式による「語」のグルーピングを使用してユーザプログラムを容易に作成可能となる。
【００６９】
加えて、特にこの実施形態においては、「語空間」宣言モードや「語空間」変更モードを適宜に設定することにより、「プログラム」単位や「語」単位における名前空間宣言を切り替えることで、同一名称の「語」であっても、適宜にその属する「語空間」を限定しつつ、使用する語空間を拡張することができる。
【００７０】
なお、以上の実施形態においては、「語」として「命令」の場合で説明したが、本発明は「変数」や「ＦＢ」にも拡張することができることは勿論である。「語」として「変数」を採用した場合の例が、図４に示されている。同図に示されるように、「語」として「変数」を採用する場合には、名前空間のメタファとしては、アプリケーションにおける「加工装置」、「インフィーダ」、「パレタイジング」、「リフタ」、「コンベア」等々のような構造体の階層名称をそのまま使用することができる。
【００７１】
また、名前空間の概念に習熟するにつれて、プログラミングの当初から「命令」名、「変数」名、「ＦＢ」名について、名前空間の使用宣言を行うようにすれば、本発明の自動宣言技術と組み合わせることで、より使い勝手のよい装置を構成することができる。この場合には、名前空間の宣言を容易とするために、メモリ１２内には、各種のフラグが設けられる。それらのフラグとしては、次のようなものが挙げられる。
・［命令名に関する名前空間の使用宣言について］
フラグＦ１１      Ｓｔｄ：（ＩＥＣ６１１３１−３標準）空間の使用宣言の有無
フラグＦ１２      ＮＸ：（ＯＭＲＯＮ  ＮＸ命令）空間の使用宣言の有無
フラグＦ１３      ＣＪ（ＯＭＲＯＮ  ＣＪ互換命令）空間の使用宣言の有無
フラグＦ１４      使用した命令の命令カテゴリが自動的に宣言されるの有無
・［「変数」に関する名前空間の使用宣言について］
フラグＦ２１      インフィーダ空間の使用宣言の有無
フラグＦ２２      ソータ空間の使用宣言の有無
フラグＦ２３      加工ハンド空間の使用宣言の有無
フラグＦ２４      全ての「変数」空間を使用するの有無
・［ＦＢに関する名前空間の使用宣言について］
フラグＦ３１      当該プログラム空間の使用宣言の有無
フラグＦ３２      全てのＦＢ名空間の使用宣言の有無
【００７２】
これらのフラグを適宜に操作することで、使い勝手のよいプログラム開発支援装置を実現することができる。フラグＦ１１〜１３、フラグＦ２１〜２３、フラグＦ３１を予め適宜にセットすることで、それぞれの名前空間を既存設定とすると共に、フラグＦ１４，Ｆ２４，Ｆ３２を適宜にセットすることで、本発明の自動空間宣言処理を起動することができる。
【００７３】
この場合、次のような応用例が考えられる。例えば、表示スクリーンＳ上に図５に示される画面を表示すると共に、各項目毎に設けられたチェックボックスをアクティブとして、マウスのクリック操作にて該当するフラグを任意にセット又はリセット可能とする。
【００７４】
この状態において、マウスのクリック操作によりフラグＦ１１（Ｓｔｄ）をセットしておけば、図２の画面が表示された状態において、カテゴリ“Ｓｔｄ”に属する「命令」であるＭＯＶをキーボード２から「Ｍ」「Ｏ」「Ｖ」としてキー入力すれば、命令ＭＯＶはカテゴリＳｔｄの命令と認識されてプログラム中に記述される。
【００７５】
また、マウスのクリック操作によりフラグＦ１１（Ｓｔｄ）とフラグＦ１３（ＣＪ）との双方をセットしておけば、ＭＯＶをキーボード２から「Ｍ」「Ｏ」「Ｖ」としてキー入力すれば、表示スクリーンＳ上には、カテゴリ“Ｓｔｄ”とカテゴリ“ＣＪ”とのいずれのカテゴリを選択するかを問い合わせる画面が表示され、ここでユーザがいずれかを選択することにより、当該命令ＭＯＶは選択されたカテゴリの命令と認識されてプログラム中に記述される。
【００７６】
このような応用例によっても、名前空間の概念を知らない又は不慣れなプログラマーであっても、特に名前空間の概念を意識すること無く、名前空間方式による「語」のグルーピングを使用してユーザプログラムを容易に作成可能となる。
【産業上の利用可能性】
【００７７】
本発明によれば、名前空間の概念を知らない又は不慣れなプログラマーであっても、特に名前空間の概念を意識すること無く、名前空間方式による「語」のグルーピングを使用してユーザプログラムを容易に作成することができる。
【符号の説明】
【００７８】
１        ＰＣ本体
２        キーボード
３        ポインティングデバイス
４        画像表示器
５        外部記憶装置
１１      ＣＰＵ
１２      メモリ
１３      通信インタフェース
Ｓ        表示スクリーン
Ａ１１    第１のメニュー表示領域
Ａ１２    第２のメニュー表示領域
Ａ２      作業用画面表示領域
Ａ３      「語」一覧表示領域
【図１】
0005483011.tif 000002
【図２】
0005483011.tif 000003
【図３】
0005483011.tif 000004
【図４】
0005483011.tif 000005
【図５】
0005483011.tif 000006
【図６】
0005483011.tif 000007
【図７】
0005483011.tif 000008
【図８】
0005483011.tif 000009
【図９】
0005483011.tif 000010
【図１０】
0005483011.tif 000011