(57)【要約】【課題】シーケンス制御プログラムにおける変数のアドレスが変わった場合のプログラマブル表示器のアドレス問題を解決する。【解決手段】コンパイル部１２は、新規作成又は更新されたシーケンス制御プログラムをコンパイルする際に生成した今回の変数名連携情報が、前回の変数名連携情報と異なる場合には、変数変更情報１６を生成する。ダウンロード部１３は変数変更情報１６がある場合には、ＰＯＤローダ２０に対して修正＆ダウンロード要求を送信する。この要求を受けたＰＯＤローダ２０は、上記今回の変数名連携情報をインポートしてこれに基づいて新たな画面データ２６を生成してＰＯＤ（プログラマブル表示器）４０にダウンロードする。【選択図】図１
2009157533.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラと該プログラマブルコントローラに接続する第１のプログラミング装置と、プログラマブルコ表示器と該プログラマブル表示器に接続する第２のプログラミング装置と、前記第１のプログラミング装置と前記第２のプログラミング装置とを接続する通信線とから構成されるプログラマブルコントローラシステムにおいて、
前記第１のプログラミング装置は、
前記プログラマブルコントローラが実行する制御用プログラムを新規作成または更新させる為の第１のエディタ手段と、
前記作成された新規又は更新版の制御用プログラムをコンパイルすると共に該コンパイル時の前記制御用プログラムの各変数へのアドレス割り当て情報である変数名連携情報を生成し、該生成した変数名連携情報が前回の変数名連携情報と異なるか否かを判定して異なる場合には変数変更情報を保存すると共に該生成した変数名連携情報を新たな前記前回の変数名連携情報として記憶する第１のコンパイル手段と、
前記コンパイル後の制御用プログラムを前記プログラマブルコントローラにダウンロードすると共に、前記変数変更情報がある場合には特定の命令を前記第２のプログラミング装置へ送信する第１のダウンロード手段とを有し、
前記第２のプログラミング装置は、
前記制御用プログラムの新規作成の際に生成された前記変数名連携情報がインポートされることで、該新規制御用プログラムに対応して前記プログラマブル表示器で実行させる表示内容プログラムを作成させる第２のエディタ手段と、
前記作成された表示内容プログラムをコンパイルすることで前記プログラマブル表示器で使用可能な形式の画面データを生成する第２のコンパイル手段と、
前記画面データを前記プログラマブル表示器にダウンロードする第２のダウンロード手段とを有し、
前記通信線を介して前記特定の命令を受信した場合、前記第２のコンパイル手段は、前記生成された変数名連携情報を前記第１のプログラミング装置から取得して、該取得した変数名連携情報に基づいて新たな前記画面データを生成し、前記第２のダウンロード手段は該新たな画面データを前記プログラマブル表示器にダウンロードすることを特徴とするプログラマブルコントローラシステム。
【請求項２】
前記第２のコンパイル手段は、前記生成した画面データを記憶しておき、前記特定の命令を受信した場合、前記取得した変数名連携情報に基づいて前記記憶してあった画面データにおける各変数に対応するアドレスを更新することで前記新たな前記画面データを生成することを特徴とする請求項１記載のプログラマブルコントローラシステム。
【請求項３】
前記第２のコンパイル手段は、前記作成された表示内容プログラムを記憶しておき、前記特定の命令を受信した場合、前記取得した変数名連携情報を用いて前記記憶してあった表示内容プログラムを再度コンパイルすることで前記新たな前記画面データを生成することを特徴とする請求項１記載のプログラマブルコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラとプログラマブル表示器の変数のアドレス割り当てに関する。
【背景技術】
【０００２】
PLC（プログラマブルコントローラ）と呼ばれる産業用制御装置は、シーケンス制御をはじめとする各種制御を実現するために、CPUおよびメモリを中心とするハードウェアの部分と、制御を司るソフトウェアの部分とを備えている。ソフトウェアの部分は、PLCを設計当初の制御システム通りに動作させるためのシーケンス制御フローの設計、その制御フローの命令語への変換、命令語のメモリへの書き込みなどを含んでいる。一般に、この一連の作業をプログラミングと称している。
【０００３】
このようなプログラミングにおいては、コンピュータの専門知識を持たなくても簡単にプログラム作成ができるように、独自の言語を用いており、利用者に使いやすい各種のプログラミング言語が次々と開発されるようになった。現在、IEC(International Electrotechnical Commission)において、標準のプログラミング言語が制定されている（IEC 61131-3）。それは、SFC(Sequential Function Chart)、LD(Ladder Diagram)、IL(Instruction List)、FBD(Function Block Diagram)およびST(Structured Text) の５言語である。
【０００４】
上記のように、各種のプログラミング言語を用いてプログラム開発を行うことができるように環境が整えられつつある。例えば、ラダー図（LD）は、リレー記号を用いて比較的容易にラダー回路を設計することができるので従来から広く普及しており、現在でも最もよく用いられているプログラミング言語である。このようなプログラミング言語によるプログラミング作業において用いられるプログラミングツールとしては、ラダーエディタなどのプログラミングソフトウェアが普及してきている。このソフトウェアは、パーソナルコンピュータなどのコンピュータ装置において、ラダー図などをラダー記号を含む形態で作成できるので、プログラムの作成および編集を容易に行える。
【０００５】
また、作成されたプログラムを実行するには、予めPLCの入力端子および出力端子のそれぞれに付与されている入力番号および出力番号（I/Oアドレス）と、各入出力端子に接続される制御対象機器（デバイス）との割り付けを行う必要がある。このため、上記のプログラミングソフトウェア（エディタ）では、その割り付けのための設定や登録を行えるようになっている。
【０００６】
上記のIECに準拠したエディタでは、変数を介してデバイスとアドレスとを割り付けるものとアドレスに対応していない変数の2種類がある。
ここで、上記IEC61131-3準拠のプログラム開発環境においては、任意の変数名を指定するだけでコンパイル等により自動的に任意のアドレスが割り当てられる機能が知られている。この場合、当然、変数に対応するアドレスは指定されないので、これが上記「アドレスに対応していない変数」に相当する。一方で、アドレスが任意に割り当てられては困る場合もある。例えば、ＰＬＣにおいては、通常、制御対象機器からの出力情報（各種センサ出力情報等）を内部のメモリの各所定アドレスに格納するので、この情報を利用する場合にはこの所定アドレスを指定しなければならない。この為、ユーザは、例えば、「変数名  アドレス」という形で変数に対応するアドレスを指定している。これが上記「変数を介してデバイスとアドレスとを割り付けるもの」に相当する。
【０００７】
つまり、上記２種類の変数とは、換言すれば、アドレスが固定的に指定される変数（ア
ドレス固定の変数）と、コンパイルすることで対応するアドレスが任意に割り当てられる変数（アドレス可変の変数）であるとも言える。アドレス可変の変数は、コンパイルする毎に、対応するアドレスが変わる可能性がある。
【０００８】
一方、HMI(Human Machine Interface)機器としてのプログラマブル表示器は、ドット表示画面、操作用入力スイッチ、PLCとのインターフェース画面上での操作入力のような制御のためのプログラムメモリなどを備えた操作用表示器である。一般に、プログラマブル表示器は、グラフィック表示を行うので、操作盤、スイッチ、表示灯などの機能を備えることができる他、デバイスの稼働状況や作業指示のような管理のための各種のモニタ、機器に対する設定値を入力する端末としての機能を備えている。プログラマブル表示器として、例えば、出願人の製品であるＰＯＤ(登録商標)などがある。
【０００９】
このようなプログラマブル表示器で表示される制御画面（表示内容プログラム）は、画面作成ソフトウェア（作画エディタ）を用いてユーザ独自で作成できるようになっている。画面作成に際しては、ユーザが、パーソナルコンピュータなどにおいて作画ソフトによって提供されるスイッチ、ランプ、テンキー、メータ表示器、グラフ表示器などの部品、描画機能などを用いて所望の制御画面を構成する。
【００１０】
作成された制御画面データは、プログラマブル表示器に転送されて記憶される。PLCの稼働時には、プログラマブル表示器は、PLCとの間でやり取りされるデータに基づいて、制御対象機器の動作状態に応じて制御画面上に各部品や図形を表示させる。
【００１１】
ところで、ラダーエディタなどを用いた制御手順プログラムの作成（プログラミング）と、作画エディタを用いた表示内容プログラムの作成（画面作成）とは、一般には独立してわれる。例えば、作成された制御手順プログラムに基づいて表示内容プログラムを作成する場合は、制御手順プログラムの作成時に各デバイスについて入力された名称およびアドレスをテーブルの形式で書き留めたような設計資料を作成しておき、その設計資料を参照しながらI/Oアドレスの定義付けなどを含む表示内容プログラムの作成作業を行う。また、作成された表示内容プログラムに基づいて制御手順プログラムを作成する場合も同様に、予め用意された設計資料に基づいて作業を行う。
【００１２】
上記のプログラム作成方法では、両プログラムを共通するデバイスに対応付けてそれぞれ作成するにも関わらず、独立して作成するので、デバイスのアドレスとラダー命令および部品との割り付けのための入力操作が別途必要である。また、上記のプログラム作成方法は、設計資料を作成する必要がある上、プログラム作成が全てユーザの入力操作による。それゆえ、上記のプログラム作成方法には、作業効率が低く、プログラム作成に多大の時間を要する問題がある。
【００１３】
また、プログラム作成がユーザの入力操作によることから、一方のプログラム作成後に他方のプログラムを作成する際に、設計資料を参照しながらの入力操作において誤入力の生じるおそれがある。また、このような誤入力が生じると、プログラムのデバッグ作業がより増大するという問題がある。
【００１４】
従来、このような不都合を解消するために、ラダープログラムのようなシーケンス制御プログラム（制御手順プログラム）および制御画面データ（表示内容プログラム）に共通するデータとして、各変数（上記デバイスのアドレスに対応付けられた変数とアドレスに対応していない変数）に関する情報、すなわち各変数の変数名と対応するアドレス情報を、エディタ間でインポートする手法が試みられている。
【００１５】
また、特許文献１記載の従来技術がある。特許文献１の発明は、変数をインポートによ
らずに両プログラム間で共用するものであり、ラダーエディタと作画エディタとに共通して変数を作成するシンボルエディタを備えている。
【００１６】
また、特許文献２には、表示用プログラムと制御用プログラムをプログラマブル表示装置にダウンロードするシステムにおいて、制御用プログラム中の複数の変数とそのアドレスが規定された制御用変数テーブルと、表示用プログラム中の複数の変数とそのアドレスが規定された表示用変数テーブルの間の一致を図る手法が開示されている。
【特許文献１】特開２００３−４４１０５号公報
【特許文献２】特開平１１−２１２６０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上記従来の対応方法では、ラダーエディタ等で作成した任意の制御手順プログラムをコンパイルすることでマシン語を生成する際に、上記の通り、各“アドレス可変の変数”には任意のアドレスが割り当てられる。上記“アドレス固定の変数”は、上記指定されたアドレスがそのまま割り当てられる。この変数情報（変数名と対応するアドレス等）を、ラダーエディタから作画エディタ側へインポートする。
【００１８】
上記特許文献１の構成のように１台のコンピュータ上にラダーエディタと作画エディタとが存在してもよいが、別々のコンピュータ上に存在してもよい。例えばラダーエディタはＰＬＣローダ（制御手順プログラム作成支援装置）、作画エディタはＰＯＤローダ（画面作成支援装置）というように、それぞれ別々のコンピュータ装置（パソコン等）に存在する構成が知られている。
【００１９】
また、一人のプログラマが、ラダーエディタと作画エディタの両方を使用して、制御手順プログラムと上記制御画面データ（表示内容プログラム）の両方を作成する場合もあり得るが、別々のプログラマが作成する場合も少なくない。特に、この様な場合に、制御画面作成担当のプログラマは、上記変数情報を知る必要があるので、上記インポートを行うものである。制御画面作成担当のプログラマは、この変数情報を参照して、制御画面を作成する。すなわち、制御画面上の各部品（スイッチ、ランプ、メータ等）に、その部品に対応付けるべき変数の変数名とアドレスを割り付ける。
【００２０】
上記制御手順プログラム（マシン語）はＰＬＣローダからＰＬＣにダウンロードされ、上記制御画面はＰＯＤローダでコンパイル後にＰＯＤ（プログラマブル表示器）にダウンロードされる。
【００２１】
ここまでは特に問題ない。
しかしながら、その後に、制御手順プログラムを変更する場合がある。この場合、たとえ変数に関しては変更がなかったとしても、変更後の制御手順プログラムをコンパイルすることで、上記各“アドレス可変の変数”に対応するアドレスが変わってしまう可能性がある。この為、この変更後の制御手順プログラム（マシン語）をＰＬＣにダウンロードして実行させると、ＰＬＣ自体は問題なく動作するが、ＰＯＤ（プログラマブル表示器）においては、対応するアドレスが上記インポート時のアドレスと異なっている変数に係る画面データの表示が、正しく表示できないという問題が生じる。
【００２２】
また、再度コンパイルしても結果的にアドレス割り当てが変わらない可能性もあるので、この場合には特に何もしなくても良いにも係らず、ユーザが対応作業（あるいはアドレス割り当てが変わったか否かを確認する作業等）を行う等、余計な手間が掛かることになる。
【００２３】
本発明の課題は、制御手順プログラムを変更等することで再度コンパイルした結果、“アドレス可変の変数”に対応するアドレスが変わってしまう場合でも、ユーザの手間が掛かることなく、プログラミング装置が自動的に新たなアドレス割り当てに対応した画面データを生成することで、画面データを正しく表示できないという問題を解決できるプログラマブルコントローラシステム等を提供することである。
【課題を解決するための手段】
【００２４】
本発明のプログラマブルコントローラシステムは、プログラマブルコントローラと該プログラマブルコントローラに接続する第１のプログラミング装置と、プログラマブルコ表示器と前記プログラマブル表示器に接続する第２のプログラミング装置と、前記第１のプログラミング装置と前記第２のプログラミング装置とを接続する通信線とから構成されるプログラマブルコントローラシステムにおいて、前記第１のプログラミング装置は、前記プログラマブルコントローラが実行する制御用プログラムを新規作成または更新させる為の第１のエディタ手段と、前記作成された新規又は更新版の制御用プログラムをコンパイルすると共に該コンパイル時の前記制御用プログラムの各変数へのアドレス割り当て情報である変数名連携情報を生成し、該生成した変数名連携情報が前回の変数名連携情報と異なるか否かを判定して異なる場合には変数変更情報を保存すると共に該生成した変数名連携情報を新たな前記前回の変数名連携情報として記憶する第１のコンパイル手段と、前記コンパイル後の制御用プログラムを前記プログラマブルコントローラにダウンロードすると共に、前記変数変更情報がある場合には特定の命令を前記第２のプログラミング装置へ送信する第１のダウンロード手段とを有し、前記第２のプログラミング装置は、前記制御用プログラムの新規作成の際に生成された前記変数名連携情報がインポートされることで、該新規制御用プログラムに対応して前記プログラマブル表示器で実行させる表示内容プログラムを作成させる第２のエディタ手段と、前記作成された表示内容プログラムをコンパイルすることで前記プログラマブル表示器で使用可能な形式の画面データを生成する第２のコンパイル手段と、前記画面データを前記プログラマブル表示器にダウンロードする第２のダウンロード手段とを有し、前記通信線を介して前記特定の命令を受信した場合、前記第２のコンパイル手段は、前記生成された変数名連携情報を前記第１のプログラミング装置から取得して、該取得した変数名連携情報に基づいて新たな前記画面データを生成し、前記第２のダウンロード手段は該新たな画面データを前記プログラマブル表示器にダウンロードする。
【００２５】
上記プログラマブルコントローラシステムでは、まず、第１のプログラミング装置が、新規又は更新版の制御用プログラムが作成されてこれをコンパイルする毎に、新たな画面データ生成が必要か否かを判定し、必要である場合のみ特定の命令を第２のプログラミング装置へ送信する。第２のプログラミング装置は、特定の命令を受信したら、第１のプログラミング装置から新たな変数名連携情報を取得することで、新たな画面データを生成する。
【００２６】
上記プログラマブルコントローラシステムにおいて、例えば、前記第２のコンパイル手段は、前記生成した画面データを記憶しておき、前記特定の命令を受信した場合、前記取得した変数名連携情報に基づいて前記記憶してあった画面データにおける各変数に対応するアドレスを更新することで前記新たな前記画面データを生成する。
【００２７】
あるいは、上記プログラマブルコントローラシステムにおいて、例えば、前記第２のコンパイル手段は、前記作成された表示内容プログラムを記憶しておき、前記特定の命令を受信した場合、前記取得した変数名連携情報を用いて前記記憶してあった表示内容プログラムを再度コンパイルすることで前記新たな前記画面データを生成する。
【発明の効果】
【００２８】
本発明のプログラマブルコントローラシステムによれば、制御手順プログラムを変更等することで再度コンパイルした結果、“アドレス可変の変数”に対応するアドレスが変わってしまう場合でも、ユーザの手間が掛かることなく、プログラミング装置が自動的に新たなアドレス割り当てに対応した画面データを生成することで、画面データを正しく表示できないという問題を解決できる。更に、再度のコンパイルの結果、変数へのアドレス割り当てが変わったか否かを自動的に判定するので、余計な手間／処理が掛かることはない。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例のＰＬＣシステム全体の構成と機能を示す図である。
図示のシステムでは、ＰＬＣローダ（制御手順プログラム作成支援装置）１０、ＰＯＤローダ（画面作成支援装置）２０、ＰＬＣ（プログラマブルコントローラ）３０、及びＰＯＤ（プログラマブル表示器）４０より成る。
【００３０】
ＰＬＣローダ１０とＰＯＤローダ２０とは通信線１で接続されており、相互にデータ送受信可能となっている。同様に、ＰＬＣローダ１０とＰＬＣ３０、ＰＯＤローダ２０とＰＯＤ４０も、それぞれ図示の通信線２，３で接続されており、相互にデータ送受信可能となっている。また、特に図示していないが、ＰＯＤ４０−ＰＬＣ３０間も通信線により接続されており、従来と同様、ＰＯＤ４０は、ＰＬＣ３０における制御プログラム実行に応じたモニタリング等を行う。
【００３１】
ＰＬＣローダ１０〜ＰＯＤ４０の各装置のハードウェア構成は、既存の構成と同様でよく、ここでは特に図示しないが、例えばＰＬＣローダ１０とＰＯＤローダ２０はハードウェア的には汎用のパソコン等であり、不図示のＣＰＵ、記憶装置／メモリ、キーボード、ディスプレイ等を備えている。ＰＬＣ３０、ＰＯＤ４０も、不図示のＣＰＵ、記憶装置／メモリ等を備えている。何れの装置においても、ＣＰＵが記憶装置に記憶されている所定のアプリケーションプログラムを実行することにより、図示の各種機能部の機能・処理を実現する。
【００３２】
ＰＬＣローダ１０は、プログラミング部１１、コンパイル部１２、ダウンロード部１３、通信部１４を有する。
ここで、図２に、これら各種機能部によるＰＬＣローダ１０の処理フローチャート図を示す。以下、図２も参照して、ＰＬＣローダ１０の処理について説明する。
【００３３】
すなわち、まず、プログラミング部１１は、ラダーエディタの機能の１つであり、このプログラミング部１１によって提供される不図示のプログラム作成支援画面上で、ユーザは上記従来と同様に任意のシーケンス制御プログラム（制御手順プログラム）を作成できる（ステップＳ１１）。
【００３４】
本例のＰＬＣローダ１０のラダーエディタは、更に、コンパイル部１２、ダウンロード部１３の各機能を有する。また、通信部１４は単にＰＬＣローダ１０が備える既存の通信機能部であり、通信線２に接続しており、通信線２を介してＰＬＣ３０とのデータ送受信を行う為の構成である。
【００３５】
コンパイル部１２は、従来と同様に上記作成されたシーケンス制御プログラムをＰＬＣ３０で実行可能な形式（機械語：ＰＬＣアプリ１７）に変換して、この変換処理の際に各変数にアドレスを割り当てる。上記の通り、“アドレス固定の変数”に関しては指定されたアドレスを割り当て、“アドレス可変の変数”に関しては任意のアドレスを自動的に決定して割り当てる。また、コンパイル部１２は、上記アドレスの割り当て結果に基づき、
各変数毎にその変数名とこの変数に割り当てたアドレスとを対応付けた情報である変数名連携情報１５を作成して記憶する（以上、ステップＳ１２）。
【００３６】
続いて、前回の変数名連携情報１５があるか否かを判定する（ステップＳ１３）。
ここで、上述してあるように、任意のシーケンス制御プログラムを新規作成して上記変換を行って、生成したＰＬＣアプリ１７をＰＬＣ３０にダウンロードして運用を開始した後に、この新規シーケンス制御プログラムを更新（一部修正したりバージョンアップ版を作成する等）する場合がある。あるいはこの更新版を更に更新する場合がある。当然、更新版は上記変換を行って新たなＰＬＣアプリ１７を生成し、この新たなＰＬＣアプリ１７をＰＬＣ３０にダウンロードし、これによりその後はＰＬＣ３０はこの新たなＰＬＣアプリ１７で運用を行うことになる。
【００３７】
上記ステップＳ１１で生成するシーケンス制御プログラムは、新規シーケンス制御プログラムかもしれないし、更新版かもしれない。更新版である場合には、以前に上記コンパイル部１２の処理によって生成された変数名連携情報１５（前回の変数名連携情報）が記憶されている状態で上記ステップＳ１３の判定が行われる。よって、ステップＳ１３の判定はＹＥＳとなる。一方、新規シーケンス制御プログラムである場合には、前回の変数名連携情報は存在しないことになるので、ステップＳ１３の判定はＮＯとなる。
【００３８】
ステップＳ１３の判定がＮＯの場合には、基本的には従来と同様のインポート作業を行うことになる（ステップＳ２１）。すなわち、任意のシーケンス制御プログラムを新規作成した際には、ステップＳ１２で生成した変数名連携情報をＰＯＤローダ２０（作画エディタ）側にインポートする。これは通信線１を介して転送してもよいし、ＦＤやメモリカード等の可搬型記憶媒体を介して渡しても良い。但し、従来とは異なる点として、ステップＳ１２で生成した変数名連携情報を上記前回の変数名連携情報として記憶する処理が追加される。
【００３９】
尚、ステップＳ２１の処理後はステップＳ１７へ移行して、ユーザからのダウンロード指示があると、上記生成したＰＬＣアプリ１７をＰＬＣ３０へダウンロードして処理を終了する（後述する説明から明らかに分かる通り、この場合にはステップＳ２０の処理は実行されないことになる）。
【００４０】
また、尚、図示の例に限らず、ステップＳ１３がＹＥＳの場合、直ちにダウンロードを実行して処理を終了し、その後の任意のときにステップＳ２１の処理を実行するようにしてもよい。何れにしても、新規シーケンス制御プログラム作成の際には、従来通り、このプログラムに対応する新規制御画面データをユーザが手作業で作成しなければならないので、修正＆ダウンロード要求に伴う自動処理は行われないものである。
【００４１】
上記従来と同様のインポート作業に伴い、ＰＯＤローダ２０側でも従来と同様の制御画面データ作成作業＆ダウンロード処理を行う。この作業＆処理は後述する図３では省略しているので、ここで簡単に説明しておく。
【００４２】
すなわち、ＰＯＤローダ２０は作画エディタの機能の１つである作画部２１を有しており、上記インポートされた変数名連携情報はこの作画部２１による不図示の制御画面データ（表示内容プログラム）作成用の編集画面上に表示できる。これより、作画エディタを使用するユーザは、上記新規シーケンス制御プログラムに対応する制御画面を作成する際に、上記インポートされて表示された情報を参考にしながら、この制御画面上の各部品に対して変数名とアドレスを割り付ける。
【００４３】
本例のＰＯＤローダ２０の作画エディタは、更に、コンパイル部２２、ダウンロード部
２４の各機能を有する。尚、通信部２５は、単にＰＯＤローダ２０が備える既存の通信機能部であり、通信線３に接続しており、通信線３を介してＰＯＤ４０とのデータ送受信を行う為の構成である。また、尚、特に図示していないが、通信線１を介してＰＬＣローダ１０との通信を行う為の通信機能部も存在する。
【００４４】
そして、この様に作成した制御画面データ（表示内容プログラム）を図１に示すコンパイル部２２によってコンパイルすることで図示の画面データ２６を生成する。そして、この画面データ２６（マシン語）を、ダウンロード部２４及び通信部２５により通信線３を介してＰＯＤ４０にダウンロードする。尚、上記生成した画面データ２６は、後述する図３の処理実行の為、ＰＯＤローダ２０内に記憶しておく。
【００４５】
ＰＯＤ４０は、上記ダウンロードされた画面データ２６（マシン語）を記憶して、この画面データ２６を不図示のＣＰＵ等が実行することで、プログラマブル表示器としての各種機能を実現する。
【００４６】
ここで、コンパイル後のプログラム（マシン語等）に関しては、このマシン語プログラム中に上記変数名とアドレスが埋め込まれる形態であってもよいし、変数名−アドレス対応付けテーブル（上記変数名連携情報に相当するもの）を別途保持する形態であってもよい。
【００４７】
以上述べたように、新規シーケンス制御プログラム作成の際には、一部従来には無い処理が実行される点を除いてはほぼ従来と同様の作業＆処理が行われて、運用開始されることになる。
【００４８】
そして、その後に上記更新版の作成が行われたときには、ステップＳ１３の判定がＹＥＳとなり、ステップＳ１４の処理に進むことになる。
ステップＳ１４では、上記コンパイル処理に伴って作成した今回の変数名連携情報が、上記記憶してある前回の変数名連携情報と同一であるか否かを判定する。同一である場合には、そのままステップＳ１７へ移行して、ユーザからのダウンロード指示を待つ。もし、今回の変数名連携情報が、前回の変数名連携情報と異なる場合には（ステップＳ１４，ＮＯ）、ステップＳ１５、Ｓ１６の処理を実行してから、ステップＳ１７へ移行して、ユーザからのダウンロード指示を待つ。
【００４９】
尚、ここでは、上記更新版のシーケンス制御プログラムでは、新たな変数の追加や既存の変数の削除、あるいは変数名の変更等は、行われていないものとする。
また尚、ここでは上記の通りシーケンス制御プログラムが更新された場合を例にして説明するが、この例に限らない。例えば、ＰＬＣ３０にダウンロードされて記憶されたプログラムが、何等かの原因で消失等した為に、再度ダウンロードする必要が生じた場合にも、本手法が有効に機能する。すなわち、この場合にはシーケンス制御プログラム自体は変わらないが、これを再度コンパイルすることで“アドレス可変の変数”に関しては自動的にアドレスが割り付けられる為、対応するアドレスが変わってしまう可能性があるからである。
【００５０】
これより、上記今回の変数名連携情報は、前回の変数名連携情報と比較すると、各変数の変数名は変わっていないが、“アドレス可変の変数”に関しては、対応するアドレスが変わっている可能性がある。１つ以上の変数で、対応するアドレスが変わった場合には、上記ステップＳ１４の判定はＮＯとなる。
【００５１】
ステップＳ１４でＮＯとなった場合には、変数が変わったこと（上記の通り、対応するアドレスが変わったこと）を示す情報である変数変更情報１６を保存し（ステップＳ１５
）、今回の変数名連携情報を新たな“前回の変数名連携情報”として記憶する（ステップＳ１６）。
【００５２】
以上で、コンパイル部１２の処理は終了する。
その後、ユーザからのダウンロード指示があった場合には（ステップＳ１７，ＹＥＳ）、ダウンロード部１３がステップＳ１８〜Ｓ２０の処理を実行する。すなわち、ダウンロード部１３は、まず、通信部１４、通信線２を介して、上記生成したＰＬＣアプリ１７をＰＬＣ２０にダウンロードする（ステップＳ１８）。そして、上記変数変更情報１６があるか否かを判定する（ステップＳ１９）。
【００５３】
上記ステップＳ１５の処理が行われた場合、すなわち少なくとも１つの変数の対応アドレスが変わっている場合には、変数変更情報１６があることになるので（ステップＳ１９，ＹＥＳ）、ＰＯＤローダ２０に対して、予め決められている特定の命令（修正＆ダウンロード要求）を送信する（ステップＳ２０）。勿論、変数の対応アドレスが変わっていない場合には（ステップＳ１９，ＮＯ）、この要求は送信することなく、処理を終了する。
【００５４】
図３は、ＰＯＤローダ２０における上記修正＆ダウンロード要求受信時の処理フローチャート図である。
上記新規シーケンス制御プログラム作成時のＰＯＤローダ２０における処理については、既に説明してあるので、ここでは上記修正＆ダウンロード要求受信時についてのみ図示・説明するものとする。
【００５５】
ＰＯＤローダ２０において、上記修正＆ダウンロード要求を受信すると（ステップＳ３１，ＹＥＳ）、まずコンパイル部２２が図３に示すステップＳ３２、Ｓ３３の処理を実行する。
【００５６】
すなわち、コンパイル部２２は、通信線１を介してＰＬＣローダ１０から、上記新たな前回の変数名連携情報として記憶されている今回の変数名連携情報を取得（インポート）する（ステップＳ３２）。そして、上述したように生成・記憶してあった画面データ２６を、インポートされた今回の変数名連携情報２３を用いて修正する。そして、修正後の画面データを新たな画面データ２６として記憶する（旧画面データに上書きする）（ステップＳ３３）。その後、ダウンロード部２４が、通信部２５を制御して通信線３を介して上記新たな（修正された）画面データ２６をＰＯＤ４０にダウンロードする（ステップＳ３４）。
【００５７】
これより、その後は、ＰＯＤ４０においては、ダウンロードされた新たな画面データ２６により運用が行われるので、対応するアドレスが以前のアドレスと異なっている変数に係る画面データの表示が、正しく表示できないという問題が生じることはなくなる。
【００５８】
上記コンパイル部２２による画面データ２６の修正処理は、画面データ２６における各変数に対応するアドレスを、インポートされた今回の変数名連携情報２３に基づいて更新する処理であり、例えば以下のような処理が行われる。
【００５９】
すなわち、例えば、上記制御画面データ（マシン語）が上述した変数名−アドレス対応付けテーブルを保持する形態である場合には、今回の変数名連携情報を新たな変数名−アドレス対応付けテーブルとする処理を行うことになる。また、上記制御画面データ（マシン語）が上述したマシン語プログラム中に各変数名とこれに対応するアドレスが埋め込まれる形態である場合には、インポートされた今回の変数名連携情報２３の各変数名を用いてマシン語プログラムを検索して、同一の変数名が記述されている箇所を探し出し、この変数名に対応するアドレスを、インポートされた今回の変数名連携情報２３のアドレスに
更新する。
【００６０】
尚、上述したステップＳ３３の処理は一例であり、この例に限らず、例えばステップＳ３３の処理の代わりに以下に説明する他の処理を実行してもよい。
当該他の処理では、まず前提として、ステップＳ２１のインポート作業に応じて新規画面データを作成してコンパイルする処理が、上述する説明とは異なる。すなわち、ユーザは、画面データ作成の際に、インポートされた変数名連携情報２３を参照して各画面部品に対して変数名を割り付けるが、アドレスの割付けは行わない。そして、コンパイル部２２は、作成された制御画面データをコンパイルする際に、インポートされた変数名連携情報２３を用いて、各変数名に対応するアドレスを割り付ける（プログラム中に埋め込む）。
【００６１】
このコンパイル処理により生成した画面データ２６をＰＯＤ４０にダウンロードするが、上記の例では画面データ２６（コンパイル結果）を記憶してステップＳ３３の処理に用いたが、当該他の処理では上記コンパイル前の制御画面データを記憶しておく。
【００６２】
そして、ステップＳ３１、Ｓ３２の処理が行われた後、コンパイル部２２は上記新規作成時と同様のコンパイル処理を行う。すなわち、変数名連携情報を用いて上記記憶しておいたコンパイル前の制御画面データを再度コンパイルする。但し、本処理ではステップＳ３２でインポートされた新たな変数名連携情報２３を用いる。よって、このコンパイル処理によりアドレス変更に対応した内容の画面データ２６（マシン語）が作成されることになり、その後、ダウンロード部２４によって当該新たな画面データ２６（マシン語）がＰＯＤ４０にダウンロードされることになる。尚、この場合、ステップＳ３４の「修正後の画面データ」は「再コンパイルで生成された画面データ」となる。
【００６３】
図４に、上記ＰＬＣシステムにおける処理の流れと変数名連携情報の具体例を示す。
この処理の流れ自体は、既に図１〜図３で説明した通りであり、ＰＬＣローダ１０は、ラダーエディタ（プログラミングツール）により作成された新規シーケンス制御プログラムをコンパイル部１２でコンパイルすることで機械語（ＰＬＣアプリ１７）と変数名連携情報１５を作成し、ユーザからの指示があるとＰＬＣアプリ１７を、ＰＬＣ３０にダウンロードする。ＰＬＣ３０は、運用中、この機械語（ＰＬＣアプリ）を実行する。
【００６４】
ここで仮にこのＰＬＣアプリ１７に係る変数が、例えば図４に示す一例のように、変数名＝“Ａ”、“Ｂ”、“Ｃ”の３つの変数であるものとし、変数名＝“Ａ”の変数が上記“アドレス固定の変数”、変数名＝“Ｂ”、“Ｃ”の各変数が上記“アドレス可変の変数”であるものとする。そして、図示の変数名連携情報の例では、変数名＝“Ａ”に対してはアドレス‘0000’、変数名＝“Ｂ”、“Ｃ”に対しては、それぞれアドレス‘0010’、‘0020’が割り当てられたものとする。
【００６５】
上記の通り、新規シーケンス制御プログラム作成の際には、従来と同様のインポート作業、及びＰＯＤローダ２０側での当該新規シーケンス制御プログラムに対応する画面データの作成作業＆ダウンロードが行われる。
【００６６】
すなわち、上記変数名連携情報は、ＰＯＤローダ２０の作画エディタにインポートされ、上記の通り、新規シーケンス制御プログラムに対応する新規制御画面データがユーザにより作成されて、これをコンパイルすることで生成された画面データ２６（マシン語）が、ＰＯＤ４０にダウンロードされる。
【００６７】
また、画面データ２６はＰＯＤローダ２０内に保存される。当然、この画面データ２６における各変数に対応するアドレス情報は、図２に示すように、変数名＝“Ａ”、“Ｂ”
、“Ｃ”に対応するアドレスが、それぞれ、アドレス‘0000’、‘0010’、‘0020’となっている。
【００６８】
その後、ＰＬＣローダ１０において、例えば上記シーケンス制御プログラムの更新版が作成され、これをコンパイルすることで作成した新たな機械語と変数名連携情報を、ＰＬＣ３０にダウンロードする。ＰＬＣ３０は、その後は、この新たな機械語（ＰＬＣアプリ）を実行することになる。
【００６９】
よって、この新たな変数名連携情報が、上記前回の変数名連携情報と異なる場合、上記の通りＰＯＤ４０で正しく表示できないという問題が生じることになる。図示の例では、新たな変数名連携情報においては、変数名＝“Ａ”、“Ｂ”、“Ｃ”に対応するアドレスは、それぞれ、アドレス‘0000’、‘0020’、‘0010’となっている。上記の通りこの例では変数名＝“Ａ”の変数は“アドレス固定の変数”であるので対応するアドレスは変わらないが（‘0000’のままである）、“アドレス可変の変数”に関してはコンパイル毎に自動的にアドレスが割り付けられる為、この例ではアドレスが変わっている。
【００７０】
本例のシステムでは、コンパイル部１２によってコンパイルした結果、必ずしもアドレス割り当てが変わるとは限らないが、コンパイル１２が比較判定を行って変更があったか否かを判定する。そして、上記の例のようにアドレスが変わっている場合は、この状態から上記ＰＯＤローダ２０のコンパイル部２２が上述した新たな変数名連携情報の取得により画面データ２６の更新処理を行うことで、画面データ２６における各変数に対応するアドレスが修正されるので（図４に示すように、変数名＝“Ａ”、“Ｂ”、“Ｃ”に対応するアドレスが、それぞれ、アドレス‘0000’、‘0020’、‘0010’になる）、これをＰＯＤ４０にダウンロードして実行させることで、上記の問題が生じることはない。
【００７１】
更に、上述のように変更があった場合のみ作画エディタ２０側が上記画面データ２６の修正（又は再作成）処理を行うので、余計な処理負荷が掛かることはなく、また当然、ユーザの手間が掛かることはない。
【００７２】
以上説明したように、上記本例のＰＬＣシステムによれば、最初は、作成されたシーケンス制御プログラムに係る変数名連携情報を、作画エディタ側にインポートすることで、このシーケンス制御プログラムに対応する画面データ２６が作成されて運用開始される。その後、上記シーケンス制御プログラムの更新版が作成された場合等には、これをコンパイルする際に“アドレス可変の変数”に関しては自動的にアドレスが割り付けられる為、対応するアドレスが変わってしまう可能性があるが、本手法ではユーザの手を煩わせることなく、自動的に対処できる。
【００７３】
すなわち、上述したように、ＰＬＣローダ１０が自動的に、アドレス割付けが変わった変数があるか否かを判別し、この様な変数が１つでもある場合にはＰＯＤローダ２０に対して上記修正＆ダウンロード要求を送信することで、ＰＯＤローダ２０は自動的に新たな変数名連携情報をＰＬＣローダ１０から取得して、これに基づいて上記画面データ２６を更新する。この更新版の画面データ２６は、上記更新版のシーケンス制御プログラムに対応したものとなる。よって、この更新版の画面データ２６をＰＯＤ４０にダウンロードすることで、各変数に係る画面データの表示は問題なく行われる。
【００７４】
よって特にＰＯＤローダ２０のユーザは何も行う必要がなく、自動的に画面データ２６が更新＆インストールされる。よって、ユーザの手間が掛からなくなり、以ってプログラム開発を効率的に行うことが可能となる。
【００７５】
また既に述べた通り、更新時に限らず、何等かの理由でコンパイルする場合に上記本手
法の処理が実行されることで上記問題が解決できる。
図５に、上記ＰＬＣローダ１０、ＰＯＤローダ２０を実現するパソコン等のコンピュータのハードウェア構成を示す。
【００７６】
図５に示すコンピュータ５０は、ＣＰＵ５１、メモリ５２、入力部５３、出力部５４、記憶部５５、記録媒体駆動部５６、及びネットワーク接続部５７を有し、これらがバス５８に接続された構成となっている。
【００７７】
ＣＰＵ５１は、当該コンピュータ５０全体を制御する中央処理装置である。
メモリ５２は、任意の処理実行の際に、記憶部５５（あるいは可搬型記録媒体５９）に記憶されているプログラムあるいはデータを一時的に格納するＲＡＭ等のメモリである。ＣＰＵ５１は、メモリ５２に読み出したプログラム／データを用いて、各種処理を実行する。
【００７８】
出力部５４は、例えばディスプレイ等であり、入力部５３は、例えば、キーボード、マウス等である。上記プログラミング部１１（ラダーエディタ）や作画部２１によって上記ディスプレイ上に不図示のプログラム編集画面が表示され、ユーザ（プログラマ等）は、上記キーボード、マウス等を操作して、このプログラム編集画面上で任意のシーケンス制御プログラム／画面データを作成することになる。
【００７９】
ネットワーク接続部５７は、任意のネットワーク／通信線に接続して、他の情報処理装置（ＰＬＣ３０やＰＯＤ４０）との通信（コマンド／データ送受信等）を行う為の構成である。
【００８０】
記憶部５５は、例えばハードディスク等であり、上述した図１に示すＰＬＣローダ１０又はＰＯＤローダ２０の各機能部による処理を、ＣＰＵ５１により実行させる為のアプリケーションプログラムが格納されている。また、変数名連携情報、ＰＬＣアプリ、変数変更情報、画面データ等も記憶される。
【００８１】
ＣＰＵ５１は、上記記憶部５５に格納されている各種プログラム／データを読み出し・実行することにより、上述した各種機能・処理を実現する。
あるいは、上記記憶部５５に格納される各種プログラム／データは、可搬型記録媒体５９に記憶されているものであってもよい。この場合、可搬型記録媒体５９に記憶されているプログラム／データは、記録媒体駆動部５６によって読み出される。可搬型記録媒体５９とは、例えば、ＦＤ（フレキシブル・ディスク）５９ａ、ＣＤ−ＲＯＭ５９ｂ、その他、ＤＶＤ、光磁気ディスク等である。
【００８２】
あるいは、また、上記プログラム／データは、ネットワーク接続部５７により接続しているネットワークを介して、他の装置内に記憶されているものをダウンロードするものであってもよい。あるいは、更に、インターネットを介して、外部の他の装置内に記憶されているものをダウンロードするものであってもよい。
【００８３】
また、本発明は、上記本発明の各種処理をコンピュータ上で実現するプログラムを記録した可搬型記憶媒体として構成できるだけでなく、当該プログラム自体として構成することもできる。
【００８４】
また、ＰＬＣ３０、ＰＯＤ４０のハードウェア構成は特に図示しないが、少なくとも上記ＣＰＵ５１、メモリ５２、記憶部５５、ネットワーク接続部５７に相当する構成を有している。
【図面の簡単な説明】
【００８５】
【図１】本例のＰＬＣシステム全体の構成と機能を示す図である。
【図２】ＰＬＣローダの処理フローチャート図である。
【図３】ＰＯＤローダにおける修正＆ダウンロード要求受信時の処理フローチャート図である。
【図４】図１のＰＬＣシステムにおける処理の流れと変数名連携情報の具体例を示す。
【図５】コンピュータ・ハードウェア構成図である。
【符号の説明】
【００８６】
１，２，３      通信線
１０      ＰＬＣローダ（制御手順プログラム作成支援装置）
１１      プログラミング部
１２      コンパイル部
１３      ダウンロード部
１４      通信部
１５      変数名連係情報
１６      変数名変更情報
１７      ＰＬＣアプリ
２０      ＰＯＤローダ（画面作成支援装置）
２１      作画部
２２      コンパイル部
２３      変数名連携情報
２４      ダウンロード部
２５      通信部
２６      画面データ
３０      ＰＬＣ（プログラマブルコントローラ）
４０      ＰＯＤ（プログラマブル表示器）
５０      コンピュータ
５１      ＣＰＵ
５２      メモリ
５３      入力部
５４      出力部
５５      記憶部
５６      記録媒体駆動部
５７      ネットワーク接続部
５８      バス
５９      可搬型記録媒体
５９ａ      ＦＤ（フレキシブル・ディスク）
５９ｂ      ＣＤ−ＲＯＭ
【図２】
2009157533.tif 000003
【図３】
2009157533.tif 000004
【図５】
2009157533.tif 000005
【図１】
2009157533.tif 000006
【図４】
2009157533.tif 000007