(57)【特許請求の範囲】
【請求項１】
ユーザプログラムが示す手順を繰り返し実行してデバイスを制御するデバイス制御手段と、上記デバイスの状態を画面表示すると共に、画面への操作を受け付け、当該操作に応じてデバイスの状態を変更するよう、上記デバイス制御手段へ指示する操作表示手段とを有するプログラマブル表示器において、
上記デバイスの状態を、上記ユーザプログラムに応じたラダー図として表示するよう、上記操作表示手段へ指示すると共に、上記操作表示手段が、当該ラダー図を表示している画面への操作を受け付けた場合、上記デバイス制御手段が上記ユーザプログラムを繰り返し実行する合間に、上記ユーザプログラムを上記操作に応じて編集する制御手段と、
書き換え可能な不揮発性メモリと、
当該不揮発性メモリよりも書き込み速度が速い揮発性メモリとを備え、
上記制御手段は、上記ユーザプログラムを編集する際、上記揮発性メモリに格納されたユーザプログラムを編集すると共に、ユーザプログラムの編集が指示されていない期間中に、当該揮発性メモリに格納されたユーザプログラムを、上記不揮発性メモリに格納し、
さらに、上記デバイス制御手段がデバイスの制御を開始する前に上記揮発性メモリがユーザプログラムを正常に保持しているか否かを判定すると共に、保持できなかった場合に、上記不揮発性メモリから上記揮発性メモリへユーザプログラムを読み込み、当該ユーザプログラムに従って、上記デバイス制御手段にデバイスを制御させる起動制御手段が設けられていることを特徴とするプログラマブル表示器。
【請求項２】
上記デバイス制御手段は、デバイスの制御を開始する前に、上記揮発性メモリに記憶されたユーザプログラムをインストラクションリストに展開して上記揮発性メモリに記憶すると共に、当該インストラクションリストを繰り返し実行してデバイスを制御し、
上記制御手段は、上記ユーザプログラムを編集する際、上記デバイス制御手段が上記ユーザプログラムを繰り返し実行する合間に、上記インストラクションリストを編集し、ユーザプログラムの編集が指示されていない期間中に、上記揮発性メモリに格納された、展開前のユーザプログラムを編集することを特徴とする請求項１記載のプログラマブル表示器。
【請求項３】
上記操作表示手段は、予め定められた大きさの矩形領域を単位にして、画面に表示すると共に、当該矩形領域を単位にして画面への操作を受け付け、
上記制御手段は、デバイスに対応するラダー記号を上記ラダー図に表示させる際、当該ラダー記号も上記矩形領域を単位にして表示するよう、上記操作表示手段へ指示すると共に、上記操作表示手段が上記矩形領域単位で受け付けた画面への操作に基づいて、ユーザプログラムのうちの編集箇所を特定することを特徴とする請求項１または２記載のプログラマブル表示器。
【請求項４】
上記制御手段は、上記編集箇所が特定された後、ラダー図に配置可能なラダー記号のうちで当該場所に配置可能なラダー記号を選択可能に表示するよう、上記操作表示手段へ指示することを特徴とする請求項３記載のプログラマブル表示器。
【請求項５】
上記デバイス制御手段は、デバイスとの対応付けを変更可能な変数で上記手順の対象が指定されたユーザプログラムに基づいて、デバイスを制御可能であり、
上記制御手段は、選択可能に表示された上記ラダー記号のいずれかが選択された場合、当該ラダー記号が示す手順の対象となる変数の入力を促す画面を表示するよう、上記操作表示手段へ指示することを特徴とする請求項４記載のプログラマブル表示器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブル・ロジック・コントローラ（ＰＬＣ）機能と、ＨＭＩ（Human Machine Interface ）機能とを併せ持ったプログラマブル表示器に関し、特に、通常動作時に不要な機器を新たに接続することなしに、ユーザプログラムを変更可能なプログラマブル表示器に関するものである。
【０００２】
【従来の技術】
近年、制御システムのＨＭＩとして、デバイスの状態を表示し、操作可能なだけではなく、例えば、ラダープログラムなどのユーザプログラムが示す手順で、デバイスを直接制御可能なプログラマブル表示器も使用され始めている。
【０００３】
上記プログラマブル表示器は、操作画面を表示するためのユーザ画面データに基づいて、デバイスと通信して、デバイスの状態を取得し、取得結果に応じて、例えば、デバイスを示すアイコンの形状や色を変更するなどして、デバイスの状態を表示する。また、例えば、タッチパネルへの操作など、画面への操作を受け付けると、プログラマブル表示器は、上記ユーザ画面データを参照して、操作が示すデバイスおよび状態を特定し、操作に従って、当該デバイスの状態を変更する。これにより、プログラマブル表示器は、プログラマブル表示器およびデバイスを含む制御システムのＨＭＩとして動作できる。
【０００４】
一方、上記プログラマブル表示器は、ＰＬＣとしての機能も有しており、取得されたデバイスの状態に基づいて、ユーザプログラムが示す手順で、デバイスの状態を制御する。
【０００５】
当該プログラマブル表示器は、ＨＭＩの機能とＰＬＣの機能とを兼ね備えているため、プログラマブル表示器にデバイスを接続するだけで、制御システムを構成できる。
【０００６】
上記プログラマブル表示器がＨＭＩおよびＰＬＣとして動作するためのユーザ画面データおよびユーザプログラムは、例えば、パーソナルコンピュータなどのコンピュータで動作する、作画エディタやプログラムエディタなどによって作成された後、例えば、当該ユーザ画面データやユーザプログラムが格納されたコンピュータを、プログラマブル表示器に接続し、当該コンピュータからプログラマブル表示器へダウンロードするなどして、プログラマブル表示器に格納される。
【０００７】
【発明が解決しようとする課題】
しかしながら、例えば、パラメータの調整など、ユーザプログラムの軽微な変更であっても、上記従来の構成のように、コンピュータをプログラマブル表示器に接続してユーザプログラムをダウンロードしようとすると、ユーザプログラム更新に要する手間および時間が増大するという問題を生じる。
【０００８】
なお、制御システムでは、動作停止が事故や業績の悪化に直結するため、ＯＡ（Office Automation)機器に比べて、常時運転すること、並びに、ユーザプログラムの更新時の手間および時間の短縮が強く求められている。
【０００９】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、通常動作時に不要な機器を新たに接続することなしに、ユーザプログラムを変更可能なプログラマブル表示器を提供することにある。
【００１０】
【課題を解決するための手段】
本発明に係るプログラマブル表示器は、上記課題を解決するために、ユーザプログラムを繰り返し実行してデバイスを制御するデバイス制御手段と、上記デバイスの状態を画面表示すると共に、画面への操作を受け付け、当該操作に応じてデバイスの状態を変更するよう、上記デバイス制御手段へ指示する操作表示手段とを有するプログラマブル表示器において、以下の手段を講じたことを特徴としている。
【００１１】
すなわち、上記デバイスの状態を、上記ユーザプログラムに応じたラダー図として表示するよう、上記操作表示手段へ指示すると共に、上記操作表示手段が、当該ラダー図を表示している画面への操作を受け付けた場合、上記デバイス制御手段が上記ユーザプログラムを繰り返し実行する合間に、上記ユーザプログラムを上記操作に応じて編集する制御手段を備えている。
【００１２】
さらに、本構成において、以下の手段を講じたことを特徴としている。すなわち、プログラマブル表示器は、書き換え可能な不揮発性メモリと、当該不揮発性メモリよりも書き込み速度が速い揮発性メモリとを備えている。また、上記制御手段は、上記ユーザプログラムを編集する際、上記揮発性メモリに格納されたユーザプログラムを編集すると共に、ユーザプログラムの編集が指示されていない期間中に、当該揮発性メモリに格納されたユーザプログラムを、上記不揮発性メモリに格納する。さらに、プログラマブル表示器には、上記デバイス制御手段がデバイスの制御を開始する前に上記揮発性メモリがユーザプログラムを正常に保持しているか否かを判定すると共に、保持できなかった場合に、上記不揮発性メモリから上記揮発性メモリへユーザプログラムを読み込み、当該ユーザプログラムに従って、上記デバイス制御手段にデバイスを制御させる起動制御手段が設けられている。
【００１３】
上記構成において、プログラマブル表示器のデバイス制御手段は、ユーザプログラムに応じて、デバイスを制御している。一方、操作表示手段は、デバイスの状態を画面に表示して、ユーザへデバイスの状態を提示する。また、操作表示手段は、例えば、ユーザなどによる画面への操作を受け付けると、当該操作に応じてデバイスの状態を変更する。これにより、プログラマブル表示器にデバイスを接続するだけで、制御システムの通常動作、すなわち、ユーザプログラムに従ったデバイスの制御、デバイスの状態の表示、および、ユーザの操作に応じたデバイスの状態変更を実施できる。
【００１４】
一方、例えば、ユーザの操作などによって、ラダー図の表示が指示されると、制御手段は、デバイスの状態を、ユーザプログラムに応じたラダー図として表示するよう、操作表示手段へ指示する。これにより、プログラマブル表示器のユーザは、当該プログラマブル表示器のデバイス制御手段がデバイスを制御する際に使用しているユーザプログラムを、ラダー図として把握できる。
【００１５】
さらに、操作表示手段が画面への操作を受け付けると、制御手段は、デバイス制御手段がユーザプログラムを繰り返し実行する合間に、ユーザプログラムを当該操作に応じて編集する。
【００１６】
これにより、プログラマブル表示器によるデバイスの制御を一時停止させることなく、しかも、プログラマブル表示器を設置している現場に他の機器を持ち込まずに、ユーザプログラムを編集できる。
【００１７】
ここで、プログラマブル表示器の設置場所は、デバイスの近傍であることが多く、劣悪な環境であったり、機器を配置可能な空間が制限されていることが多い。この結果、他の機器を持ち込み、プログラマブル表示器に接続した後で、ユーザプログラムを変更しようとすると、手間がかかることが多い。
【００１８】
これに対して、上記構成では、新たな機器を持ち込むことなく、ユーザプログラムを編集できるので、例えば、ユーザプログラムにおけるパラメータを調整する場合など、ユーザプログラムを編集する際の手間を大幅に削減できる。
【００１９】
また、ラダー図の表示や編集指示の受け付けは、制御システムに必須の動作、すなわち、デバイスの状態表示やデバイスへの操作受け付けと同様、操作表示手段が受け持っており、例えば、液晶表示装置などの表示装置やタッチパネルなどの入力装置、および、これら装置の制御プログラムの多くが共用されている。したがって、新たな機器を持ち込む場合と比較して、制御システムに必須の構成に余り構成を追加せずに、ユーザプログラムをその場で編集可能な制御システムを実現できる。
【００２０】
さらに、上記構成によれば、制御手段がユーザプログラムを編集する際、不揮発性メモリよりも書き込み速度の速い揮発性メモリに格納されたユーザプログラムを編集するので、ラダー図を表示しながら、ユーザプログラムを編集する場合のように、ユーザプログラムの変更が頻繁に指示される場合であっても、デバイス制御手段によるデバイスの制御を阻害せずに、ユーザプログラムを編集できる。
【００２１】
さらに、揮発性メモリのユーザプログラムは、例えば、ラダー図を表示していない場合など、ユーザプログラムの編集が指示されていない間に、不揮発性メモリに格納されると共に、起動制御手段は、揮発性メモリがユーザプログラムを正常に保持できない場合、不揮発性メモリのユーザプログラムに基づいて、デバイスを制御するよう、上記デバイス制御手段に指示する。これにより、例えば、停電など、揮発性メモリのユーザプログラムが失われるような事故が発生したとしても、プログラマブル表示器は、他の機器に接続することなく、自力で、正しいユーザプログラムに従ったデバイスの制御を再開できる。この結果、上記事故が発生する度に、プログラマブル表示器に外部機器を接続し、当該外部機器からユーザプログラムをダウンロードする構成に比べて、事故から復旧する際の時間と手間とを削減できる。
【００２２】
なお、上記揮発性メモリの記憶領域のうち、上記ユーザプログラムが格納される領域は、バックアップされている方が望ましい。これによって、ユーザプログラムを編集してから揮発性メモリのユーザプログラムを不揮発性メモリに格納するまでの間に、瞬停などの一時的な不具合が発生しても、編集後のユーザプログラムの消失を避けることができる。
【００２３】
また、制御手段は、揮発性メモリのユーザプログラムを編集した場合、不揮発性メモリのユーザプログラムを更新するよう、ユーザへ報知し、ユーザからの指示に応じて、不揮発性メモリに書き込んでもよい。この場合は、ユーザの指示に応じて、不揮発性メモリに書き込むので、例えば、ユーザによる電源断の直前など、不揮発性メモリへの書き込みを開始すると不具合が発生する時点での書き込みを防止できる。また、制御手段が報知して、不揮発性メモリへの書き込みを指示するよう、ユーザへ促すことができるので、更新のし忘れを阻止できる。
【００２４】
さらに、制御手段は、揮発性メモリのユーザプログラムを更新している間、例えば、画面更新頻度や更新する領域の制限を操作表示手段へ指示するなどして、操作表示手段による表示画面更新処理よりも優先して、ユーザプログラムを更新してもよい。この場合は、優先処理しない場合よりも、プログラマブル表示器の演算能力が低い場合であっても、デバイス制御手段によるデバイス制御を阻害することなく、ユーザプログラムを変更できる。
【００２５】
さらに、本発明に係るプログラマブル表示器は、＜上記構成＞において、以下の手段を講じたことを特徴としている。すなわち、上記デバイス制御手段は、デバイスの制御を開始する前に、上記揮発性メモリに記憶されたユーザプログラムをインストラクションリストに展開して上記揮発性メモリに記憶すると共に、当該インストラクションリストを繰り返し実行してデバイスを制御する。さらに、上記制御手段は、上記ユーザプログラムを編集する際、上記デバイス制御手段が上記インストラクションリストを繰り返し実行する合間に、上記インストラクションリストを編集し、ユーザプログラムの編集が指示されていない期間中に、上記揮発性メモリに格納された、展開前のユーザプログラムを編集する。
【００２６】
当該構成では、制御手段は、展開後のインストラクションリストを編集するので、展開前のユーザプログラムを編集した後、ユーザプログラムをインストラクションリストに再展開する場合に比べて、インストラクションリストの差し替えに要する演算量を抑えることができる。
【００２７】
また、制御手段は、例えば、ユーザの操作の合間など、ユーザプログラムの編集が指示されていない期間中に、揮発性メモリに格納されたユーザプログラムを編集する。ここで、一般に、ユーザがユーザプログラムを編集している間であっても、デバイス制御手段が、インストラクションリストを繰り返し実行する間隔よりも、ユーザが次の操作を指示するまでの間隔の方が長い。したがって、制御手段は、インストラクションリストの実行の合間に展開前のユーザプログラムを編集する場合よりも、ユーザプログラムの編集作業に長い時間を割くことができる。
【００２８】
これらの結果、比較的低い演算能力のコンピュータであっても、デバイス制御手段によるデバイスの制御を阻害することなく、デバイスの制御手順を変更できる。
【００２９】
また、本発明に係るプログラマブル表示器は、上記構成において、上記操作表示手段は、予め定められた大きさの矩形領域を単位にして、画面に表示すると共に、当該矩形領域を単位にして画面への操作を受け付け、上記制御手段は、デバイスに対応するラダー記号を上記ラダー図に表示させる際、当該ラダー記号も上記矩形領域を単位にして表示するよう、上記操作表示手段へ指示すると共に、上記操作表示手段が上記矩形領域単位で受け付けた画面への操作に基づいて、ユーザプログラムのうちの編集箇所を特定することを特徴としている。
【００３０】
上記構成によれば、上述の通常動作中とユーザプログラムの編集中との双方において、矩形領域単位で表示し、操作を受け付けるので、画素単位で表示したり、操作を受け付ける場合よりも、表示および操作を受け付けた場所の特定に要する演算量を削減できる。この結果、比較的低い演算能力のコンピュータであっても、デバイス制御手段によるデバイスの制御を阻害することなく、デバイスの制御手順を変更できる。
【００３１】
加えて、通常動作中に、操作表示手段がデバイスの状態を表示し、画面への操作を受け付ける場合と同じ矩形領域単位で、ラダー記号が表示され、ユーザプログラムの編集箇所が特定される。したがって、表示したり、操作場所を特定する動作の大半を、通常動作時とユーザプログラムの編集時とで共用できる。
【００３２】
さらに、本発明に係るプログラマブル表示器は、上記構成において、上記制御手段は、上記編集箇所が特定された後、ラダー図に配置可能なラダー記号のうちで当該場所に配置可能なラダー記号を選択可能に表示するよう、上記操作表示手段へ指示することを特徴としている。
【００３３】
上記構成では、編集箇所が特定されると、ラダー図に配置可能なラダー記号のうちで、現在の編集箇所に配置可能なラダー記号群が表示されるので、上述の通常動作時には不要な機器を新たに接続することなく、現場の機器だけでユーザプログラムを編集できるにも拘わらず、ユーザプログラムを編集しやすいプログラマブル表示器を実現できる。
【００３４】
また、本発明に係るプログラマブル表示器は、上記構成において、上記デバイス制御手段は、デバイスとの対応付けを変更可能な変数で上記手順の対象が指定されたユーザプログラムに基づいて、デバイスを制御可能であり、上記制御手段は、選択可能に表示された上記ラダー記号のいずれかが選択された場合、当該ラダー記号が示す手順の対象となる変数の入力を促す画面を表示するよう、上記操作表示手段へ指示することを特徴としている。
【００３５】
上記構成によれば、ユーザプログラムにおいて、例えば、入出力の対象となるデバイスや演算の対象となるデバイスなど、ユーザプログラムが示す手順の対象となるデバイスは、デバイス自体ではなく、デバイスとの対応付けを変更可能な変数で特定される。したがって、デバイスが変更され、アドレスなどが変化した場合などであっても、当該デバイスに関連する手順全ての対象を変更することなく、変数とデバイスとの対応を変更するだけですむ。この結果、デバイスを変更した場合の手間を削減できる。
【００３６】
また、上記制御手段は、ユーザプログラムの編集によって、ラダー記号が選択された場合、当該ラダー記号に関連する変数の入力を促す。これにより、編集された手順であっても、対象を変数で指定できる。
【００３７】
これらの結果、上述の通常動作時には不要な機器を新たに接続することなく、現場の機器だけでユーザプログラムを編集できるにも拘わらず、デバイスを変更した場合の手間を削減可能なプログラマブル表示器を実現できる。
【００３８】
【発明の実施の形態】
本発明の一実施形態について図１ないし図１５に基づいて説明すると以下の通りである。すなわち、図１に示すように、本実施形態に係る制御システム１は、例えば、モータやバルブあるいはセンサなどのデバイス２ａ・・・を含むターゲットシステム２の状態を制御するシステムであって、ユーザの操作に応じてターゲットシステム２を制御すると共に、ユーザへターゲットシステム２の状態を伝えるプログラマブル表示器３を備えている。
【００３９】
本実施形態に係るプログラマブル表示器３は、ＨＭＩとしての機能に加えて、ＰＬＣ機能を併せ持っており、上記デバイス２ａを直接制御できる。当該プログラマブル表示器３は、例えば、図２に示すようなハードウェア構成を備えている。すなわち、プログラマブル表示器３は、プログラムやデータなどが格納されるメモリ部１１と、表示装置としての液晶表示装置１２ａ、入力装置としてのタッチパネル１３ａに、それぞれ接続するためのディスプレイ・コントローラ１２およびタッチパネル・コントローラ１３と、図１に示すデバイス２ａを直接制御するＩ／Ｏユニット１４と、上記メモリ部１１を参照して、上記各回路１２〜１４を制御するＣＰＵ（Central Processing Unit ）１５とを備えている。
【００４０】
また、Ｉ／Ｏユニット１４は、各デバイス２ａと接続される多数の入出力端子および入出力回路と、入出力メモリ、Ｄ／Ａ変換器、Ａ／Ｄ変換器などとを備えており、入出力端子を介して入出力されるデジタルまたはアナログ信号を、上記ＣＰＵ１５とやり取りできる。
【００４１】
一方、メモリ部１１は、ＲＯＭ（Read Only Memory）１１ａと、書き換え可能な不揮発性メモリとしてのＦＥＰＲＯＭ（Flash Erasable and Programmable ROM ）１１ｂと、バッテリバックアップされた揮発性メモリとしてのＳＲＡＭ（Static RAM）１１ｃと、例えば、ＤＲＡＭ（Dynamic RAM ）などからなる、揮発性メモリとしてのメインメモリ１１ｄとを備えている。
【００４２】
上記ＲＯＭ１１ａには、例えば、電源投入時に実行される初期化プログラムやフォントデータなどが格納され、上記ＦＥＰＲＯＭ１１ｂには、後述するユーザ画面データや、当該ユーザ画面データに基づいて表示／制御するための表示制御システムプログラムなどが格納される。また、ＳＲＡＭ１１ｃは、後述するように、ラダーエディタで作成したユーザプログラムが格納される第１ユーザプログラム記憶部３１（図１参照）として使用される。さらに、メインメモリ１１ｄは、上記ユーザプログラムを展開したインストラクションリストが格納されるインストラクションリスト記憶部３２（図１参照）、あるいは、上記各メモリ１１ａ〜１１ｃに格納された他のプログラムを実行する際に展開する領域あるいは作業領域として使用される。これらのメモリ部１１は、いずれも半導体メモリなので、可動部を持たず、かつ、衝撃に強い。したがって、ターゲットシステム２の近傍などの劣悪な周囲環境でも安定して動作し続けることができる。
【００４３】
さらに、本実施形態では、オンラインエディット時にユーザプログラムが書き込まれる上記第１ユーザプログラム記憶部３１とは別に、ＦＥＰＲＯＭ１１ｂにも、ユーザプログラムを格納する第２ユーザプログラム記憶部３３（図１参照）が設けられている。
【００４４】
上記第１ユーザプログラム記憶部３１となるＳＲＡＭ１１ｃは、例えば、数十ｎｓで１ワードの書き込みなど、上記ＦＥＰＲＯＭ１１ｂよりも高速に書き込みできる。一方、ＦＥＰＲＯＭ１１ｂは、上記ＳＲＡＭ１１ｃよりも書き込み速度が遅いが、比較的大容量化しやすく、電源が供給されていない状態でも内容を保持できる。したがって、長時間、プログラマブル表示器３への電力供給が停止された場合など、ＳＲＡＭ１１ｃをバックアップするバッテリが切れた場合でも、ユーザプログラムを保持できる。
【００４５】
上記ハードウェア構成のプログラマブル表示器３へ電源が投入され、ＣＰＵ１５がメモリ部１１のプログラムを実行して上記周辺回路１２〜１４を制御すると、図１に示す機能ブロック３１〜３８などが形成される。
【００４６】
具体的には、本実施形態では、ユーザプログラムや、ユーザ画面データにおいて、対象となる各デバイス２ａは、デバイスアドレスなど、デバイス２ａ自体を特定する情報ではなく、当該デバイスアドレスに対応し、しかも、デバイスアドレスとは異なる値に設定可能な変数で特定されている。
【００４７】
さらに、変数メモリ３４は、上記メインメモリ１１ｄの一領域などとして実現され、各変数について、変数の名称（変数名）と、変数に対応するデバイス２ａまたは内部メモリを特定するための情報（例えば、アドレスなど）と、変数の内容との組み合わせが記憶されている。
【００４８】
また、Ｉ／Ｏ処理部３５は、Ｉ／Ｏユニット１４を介して上記各デバイス２ａと通信して、デバイス２ａの状態と、上記変数の内容とを一致させる。より詳細には、Ｉ／Ｏ処理部３５は、デバイス２ａが入力デバイスの場合、デバイス２ａからの入力信号に基づいて、デバイス２ａの状態を認識すると共に、各デバイス２ａに対応する変数の内容として、デバイス２ａの状態を書き込む。また、デバイス２ａが出力デバイスの場合、各変数の内容に応じた制御指示を、それぞれに対応するデバイス２ａへ出力できる。
【００４９】
さらに、デバイス制御部（デバイス制御手段）３６は、上記インストラクションリスト記憶部３２および変数メモリ３４を参照して、上記インストラクションリスト記憶部３２のインストラクションリストに含まれる各インストラクションを順次実行し、変数メモリ３４に格納された変数の内容に応じて、各変数の内容を更新できる。
【００５０】
これにより、デバイス制御部３６およびＩ／Ｏ処理部３５は、ユーザプログラムに従って上記各デバイス２ａを制御できる。なお、本実施形態では、変数に対応するデバイス２ａの機種に拘わらず、変数の内容を格納する際の表現方法（例えば、ワード長や符号の有無、あるいは、ＢＣＤ／２進表記など）が予め定められた表現方法に統一されており、変数が実在のデバイス２ａに対応する場合、変数メモリ３４には、実際の機種での表現方法も機能されている。この場合、デバイス制御部３６は、デバイス２ａの状態を取得あるいは制御する際、表現方法を形式変換して、格納時の表現方法を統一する。
【００５１】
また、表示／操作処理部（操作表示手段）３７は、上記変数メモリ３４を参照して、各デバイス２ａの状態に応じて、液晶表示装置１２ａの表示画面を更新できる。また、表示／操作処理部３７は、タッチパネル１３ａに入力されたユーザの指示に応じて、変数メモリ３４の内容を書き換えることができる。
【００５２】
より詳細には、上記ユーザ画面データには、液晶表示装置１２ａに表示すべきベース画面や画像ブロックとしてのマークのデータおよび各マークに付与された処理指示語（タグ）などを含んでおり、表示内容プログラムを構成している。上記のマークは、タッチスイッチ、ランプ、各種表示器などの画像化された基本的な部品として予め用意されている。また、マークとしては、スイッチや数値表示器などの動的変化を画面上の任意の位置で表現させるために、所望の位置に設定された矩形エリアに所望の動画機能が設定された動画機能部も含まれる。
【００５３】
上記タグは、ベース画面上で実行されるべき事象毎に作成されており、基本的には、表示制御動作を実行すべきベース画面のファイル番号と、このベース画面上で実行されるべき動作内容を特定する事象名と、各実行事象毎に参照される１または複数のデータからなる参照情報とを一組として備えている。例えば、所定の画面領域（表示座標範囲）へ、所定のデバイス２ａの状態に応じた部品図形を表示する表示タグの場合、参照情報には、表示座標範囲（Ｘ・Ｙ）と、デバイス２ａに対応する変数を示す情報と、例えば、部品図形がスイッチの場合、ＯＮを示す図形のファイルおよびＯＦＦを示す図形のファイルなど、表示時に参照するファイル番号とが含まれる。また、タグが入力タグの場合、参照情報として、有効入力座標範囲（Ｘ・Ｙ）と、入力結果が書き込まれるデバイス２ａに対応する変数を示す情報とが含まれる。
【００５４】
一方、上記表示／操作処理部３７は、ＦＥＰＲＯＭ１１ｂに格納されたユーザ画面データから、ベース画面のファイル番号が現在表示中のベース画面である表示タグを抽出すると共に、各表示タグについて、変数メモリ３４から当該表示タグに関連する変数の内容を読み出し、読み出した値に応じた部品図形を、画面の表示座標範囲に表示できる。なお、上述したように、各変数の内容は、Ｉ／Ｏ処理部３５によって、それぞれに対応するデバイス２ａの状態に応じて更新されているので、上記表示座標範囲には、デバイス２ａの現状が表示される。
【００５５】
ここで、上記部品図形は、例えば、液晶表示装置１２ａの画素数が６４０×４８０ドットの場合で、４０×４０ドットを１ユニットとするなど、予め定められた大きさで、矩形のユニットを単位にして構成されており、上記表示座標範囲も、表示されるユニットが、画面をユニットで隙間なく埋めた場合における各ユニットの境界を超えないように設定される。したがって、各部品図形の大きさをユニット単位で決めることができ、各部品図形の大きさがドット単位で互いに異なる場合に比べて、表示／操作処理部３７は、少ない演算量で部品図形を表示できる。この結果、ＣＰＵ１５がＰＬＣ機能も実現するために、表示／操作処理部３７としての動作に余り大きな演算能力を割けない場合であっても、表示／操作処理部３７は、何ら支障なく、デバイス２ａの状態を表示し操作を受け付けるための操作画面を表示できる。なお、各ユニットは、ドット単位で編集できるので、ドット単位で編集されたユニットを予め用意しておくことで、部品図形の表現能力の低下は抑えられている。
【００５６】
また、タッチパネル１３ａへの押し操作など、ユーザの入力操作を受け取ると、表示／操作処理部３７は、上記ユーザ画面データから、現在表示中のベース画面に対応し、当該入力操作にマッチする入力タグを検索し、入力結果に応じて、変数メモリ３４のうち、入力タグに対応する変数の内容を変更する。ここで、変数メモリ３４の内容変更は、後述のスキャンタイム毎にデバイス２ａへ反映されているので、各デバイス２ａの状態は、ユーザの操作に応じて制御される。なお、表示／操作処理部３７は、上記操作された領域も、ユニット単位で判定しているので、操作された部品図形を少ない演算能力で特定できる。
【００５７】
さらに、実行制御部３８は、Ｉ／Ｏ処理部３５、デバイス制御部３６、表示／操作処理部３７、あるいは、後述するラダーエディタ処理部４１やプログラム更新処理部４２などによる処理のタイミングを制御する。
【００５８】
また、上記機能ブロックには、表示／操作処理部３７へ指示して、第１ユーザプログラム記憶部３１に格納されたユーザプログラムをラダー図として表示させ、編集指示を受け付けさせるラダーエディタ処理部（制御手段）４１と、当該ラダーエディタ処理部４１からの編集指示に応じて、インストラクションリスト記憶部３２および第１ユーザプログラム記憶部３１の内容を書き換えるプログラム更新処理部４２と、第１ユーザプログラム記憶部３１（ＳＲＡＭ１１ｃ）内のユーザプログラムが変更された場合、例えば、画面中に、”バックアップがありません”などの所定の文字列を表示するなどして、当該ユーザプログラムに合わせて、第２ユーザプログラム記憶部３３（ＦＥＰＲＯＭ１１ｂ）のユーザプログラムを更新するように、ユーザに促すと共に、ユーザからの指示に応じて、第２ユーザプログラム記憶部３３のユーザプログラムを更新するバックアップ処理部４３とが含まれる。
【００５９】
さらに、上記機能ブロックには、プログラマブル表示器３の起動時に形成される起動制御部（起動制御手段）４４も含まれており、プログラマブル表示器３の起動時に、上記両ユーザプログラム記憶部３１・３３のいずれかから読み出したユーザプログラムを展開して、インストラクションリストを生成し、インストラクションリスト記憶部３２に格納できる。
【００６０】
ここで、本実施形態に係るラダーエディタ処理部４１は、例えば、図２に示すタッチパネル１３ａへの操作などによって、ラダーエディタ画面の表示が指示されると、第１ユーザプログラム記憶部３１に格納されたユーザプログラムを解析して、当該ユーザプログラムが示すラダー図に含まれるラダー記号、および、各ラダー記号間の接続関係を把握し、上記表示／操作処理部３７へ指示して、上記ラダー図を表示させることができる。また、ラダーエディタ処理部４１は、操作画面の表示時にデバイス２ａの状態に応じてデバイス２ａに対応する部品図形の表示形式を表示／操作処理部３７が変更するのと略同様にして、ラダー図を表示中、表示／操作処理部３７がデバイス２ａの状態に応じてラダー記号の表示形式を変更するように指示できる。さらに、ラダーエディタ処理部４１は、操作画面を表示中にデバイス２ａに対応する部品図形が操作された場合に操作対象となる部品図形を表示／操作処理部３７が特定する場合と略同様にして、ラダー図を表示中、表示／操作処理部３７が操作対象となる場所を特定するように、表示／操作処理部３７へ指示できる。
【００６１】
上記ラダー図は、例えば、図３や図４に示すように、接点やコイル、カウンタなど、図形やその他の形式で表された機能ブロックとしてのラダー記号（Ｉα…）と、これらに関連するラベルとからなる１または複数のネットワーク（Ｌ１…）を、左右の母線（Ｌａ・Ｌｂ）内に記述した図であって、配置されているラダー記号の種類と、各ラダー記号の接続関係とによって、制御手順を図示できると共に、例えば、形状や色あるいは点滅の有無など、ラダー記号の表示形式で、デバイス２ａの現在の制御状態も表示できる。
【００６２】
例えば、図３および図４のラダー図は、ユーザプログラム（ラダープログラム）の各手順のうち、仮にニモニックで表記すると、図５の手順（命令語；インストラクション）を示すラダー図である。当該ラダー図では、ロードを示すラダー記号Ｉαが、アンドを示すラダー記号Ｉβ、および、インクリメントを示すラダー記号Ｉγを介して、母線Ｌｂに接続されている。したがって、これらのラダー記号Ｉα〜Ｉγと、各ラダー記号Ｉα〜Ｉγの接続関係とによって、第１ユーザプログラム記憶部３１に格納されたユーザプログラム（ラダープログラム）のうち、図５の命令語Ｃα〜Ｃγに対応する手順、すなわち、ラダー記号Ｉαに対応するデバイス２ａがオン状態で、しかも、ラダー記号Ｉβに対応するデバイス２ａがオン状態の場合、カウンタをインクリメントするという手順を記述できる。
【００６３】
また、図３のラダー図では、ロードを示すラダー記号ＩαおよびＩδがオフ状態を示す形状で記述されているのに対して、図４のラダー図では、両ラダー記号Ｉα、Ｉδがオン状態を示す形状で記述されている。したがって、図３および図４に示すラダー図からは、制御手順だけではなく、デバイス２ａの制御状態、すなわち、図３の場合は、ラダー記号ＩαおよびＩδに対応するデバイス２ａがオフ状態であり、図４の場合は、ラダー記号ＩαおよびＩδに対応するデバイス２ａがオン状態であることも読み取れる。また、母線Ｌａ・ＬｂやネットワークＬ１…のうち、導電部分は、太く描画されている。なお、図３ないし図５では、例えば、命令語Ｃαとラダー記号Ｉαとのように、互いに対応するもの同士に、互いに同じギリシャ文字を付している。
【００６４】
さらに、本実施形態に係るラダーエディタ処理部４１は、ラダーエディタ画面を表示する際、図３および図４に示すように、ラダーモニタ画面を操作するためのボタンＢ１〜Ｂ４１も合わせて表示するよう、表示／操作処理部３７にへ指示する。ここで、上記ボタンＢ１は、ラダーモニタの終了を指示するボタンであり、ボタンＢ１１は、ネットワークＬ１…の番号（ラング番号）を指示するボタンである。また、ボタンＢ２１〜Ｂ２４は、制御プログラムに応じたラダー図全体のうちのラダーモニタ画面中に表示する領域の移動（スクロール）を指示するボタンであり、それぞれ、左右上下方向に対応している。さらに、ボタンＢ３１は、移動の単位をページ単位とするかラング単位とするかを指示するボタンであり、ボタンＢ４１は、ラダー図中に数値を表示する際、１０進表示するか１６進表示するかの切り換えを指示するボタンである。
【００６５】
上記構成にて、通常運転中、プログラマブル表示器３は、例えば、約５０ｍｓ毎など、所定の期間（スキャンタイム）毎に、図６に示すステップ１〜ステップ５（以下では、Ｓ１〜Ｓ５のように略称する）の処理を順次繰り返している。
【００６６】
より詳細には、Ｉ／Ｏ処理部３５は、Ｓ１において、各デバイス２ａの状態を読み出し、変数メモリ３４の変数のうち、各デバイス２ａに対応する変数の内容を、取得した値に応じて変更する。また、Ｓ２において、デバイス制御部３６は、変数メモリ３４の各変数の内容を参照しながら、インストラクションリスト記憶部３２に格納されたインストラクションリスト内の各インストラクション（命令）を順次実行する。なお、変数メモリ３４の内容は、各インストラクションに従って変更される。さらに、エンド命令が実行され、インストラクションリストの実行が終了すると、Ｓ３において、Ｉ／Ｏ処理部３５は、変数メモリ３４の各変数の内容を、それぞれに対応するデバイス２ａへ書き込む。これにより、デバイス制御部３６は、ＰＬＣと同様に、ユーザプログラムに従い、デバイス２ａの状態に応じて各デバイス２ａを制御できる。本実施形態の場合、上記Ｓ１〜Ｓ３の処理に要する期間は、例えば、２０ｍｓ程度である。
【００６７】
また、本実施形態に係るプログラマブル表示器３は、ＰＬＣ機能と表示／操作機能とを有するプログラム表示器であり、デバイス２ａの制御の合間に、表示画面更新用の期間（例えば、約３０ｍｓ程度）が設けられている。この期間中、表示／操作処理部３７は、ラダー図の表示が指示されていなければ（Ｓ４にて、操作画面表示の場合）、ＦＥＰＲＯＭ１１ｂに格納されたユーザ画面データに基づき、変数メモリ３４の各変数の内容に応じて表示画面を更新すると共に、受け付けた操作に基づいて、各変数の内容を変更する（Ｓ５）。
【００６８】
上記プログラマブル表示器３は、通常動作中、上述のスキャンタイム毎に上記Ｓ１〜Ｓ５の処理を繰り返す。これにより、ＰＬＣとして、ユーザプログラムに従ってデバイス２ａを制御すると共に、ＨＭＩ機器として、操作画面を表示して、ユーザへデバイス２ａの現状を提示し、ユーザからの操作を受け付けることができる。
【００６９】
一方、図７に示すように、操作画面の表示中に、画面の４隅の領域Ａ１１〜Ａ１４のうちの任意の３点が押されると、表示／操作処理部３７は、画面データに基づいて、メニュー表示が指示されたと判断して、図８に示すように、操作画面Ａ２の一部（この例では下端）にメニューを表示する。当該メニューには、メニューの項目を切り換えるボタンＢ５１や、ラダーエディタ画面の表示を指示するボタンＢ５２、あるいは、その他のボタンＢ５３〜Ｂ５４などが表示されており、ボタンＢ５２が押されると、表示／操作処理部３７は、ラダーエディタ処理部４１へラダーエディタの開始指示があったことを伝える。この場合、ラダーエディタ処理部４１は、表示／操作処理部３７へ指示して、上述したように、液晶表示装置１２ａの画面上に、図３や図４に示すようなラダーエディタ画面を表示させる。
【００７０】
このように、ラダーエディタ画面が表示されている間（図６に示す上記Ｓ４にて、エディット中の場合）、ラダーエディタ処理部４１は、表示／操作処理部３７が編集指示を受け付けていない場合（上記Ｓ６にて、なしの場合）、表示／操作処理部３７へ指示して、ラダー記号の表示形式を、それぞれに対応する変数の内容に応じて変更させる（Ｓ７）。
【００７１】
ここで、ラダー記号は、部品図形と同様に、ユニット単位で構成されている。また、ラダーエディット中に、変数の内容に応じて、ラダー記号の表示形式を変更する手順は、操作画面の表示中に、変数の内容に応じて、部品図形の表示形式を変更する手順と略同様である。したがって、操作画面を表示するための表示／制御プログラムに、ラダーエディタ画面を表示するためのプログラムを余り追加することなく、ラダーエディタ画面も表示可能な表示／操作処理部３７を実現できる。
【００７２】
上記プログラマブル表示器３は、ラダーエディタ画面の表示中で、しかも、編集指示がない場合、上述のスキャンタイム毎に、上記Ｓ１〜Ｓ４、Ｓ６およびＳ７の処理を繰り返す。これにより、プログラマブル表示器３は、ラダーモニタ装置として動作でき、ラダー図によって、ユーザプログラムが示す制御手順を提示すると共に、ラダー記号の表示形式によって、ラダー記号に対応するデバイス２ａの現状を提示できる。
【００７３】
一方、ラダーエディタ画面の表示中に、表示／操作処理部３７がユーザからの操作を受け付けると（上記Ｓ６にて、ありの場合）、ラダーエディタ処理部４１は、ユーザプログラムの編集処理を行う（Ｓ８）。なお、例えば、選択肢を提示した後、ユーザの操作を待ち受ける場合など、編集処理に要する時間が、上述の表示画面更新用の期間（例えば、約３０ｍｓ程度）を超える場合は、編集処理は、分割され、上記各期間毎に実行される。
【００７４】
上記編集処理を詳細に説明すると、表示／操作処理部３７は、例えば、タッチパネル１３ａなどの入力装置からの操作を受け付けると、ユニット単位で操作場所を特定する。ここで、表示／操作処理部３７は、ラダー記号を表示する際、ユニット単位で表示しているので、ユニット単位で操作場所を特定することで、少ない演算量で、操作対象となるラダー記号、または、ラダー記号を挿入すべき場所を特定できる。
【００７５】
例えば、図９に示す領域Ａ２１を操作した場合、操作された場所（領域Ａ２１）が表示／操作処理部３７によって特定される。この場合、ラダーエディタ処理部４１は、ユーザプログラムのうち、当該領域Ａ２１に対応する箇所を特定すると共に、表示／操作処理部３７へ指示して、図１０に示すように、当該箇所に挿入可能なインストラクションを示すラダー記号を選択可能に表示させる。なお、選択可能な各ラダー記号も、ユニット単位で表示される。また、図９および図１０では、説明の便宜上、ユニットの境界を破線で示している。
【００７６】
ここで、図１０では、一例として、アンド演算、および、ランプを示すラダー記号が列挙された場合を示している。この状態で、例えば、表示／操作処理部３７によって、アンドを示すラダー記号の選択が検出された場合、ラダーエディタ処理部４１は、挿入すべきラダー記号への変数の関連付けを促す画面を、表示／操作処理部３７に表示させる。一例として、当該画面では、文字キーを表示して、変数名のように変数を特定するための文字列を入力するように促す。なお、表示／操作処理部３７が変数名の入力を受け付ける際の手順は、操作画面の表示中にデバイス２ａの状態を示す文字列を入力する場合と略同じ手順である。
【００７７】
変数を特定する情報を表示／操作処理部３７から受け取ると、ラダーエディタ処理部４１は、例えば、挿入すべき命令語および挿入箇所の組み合わせなど、ユーザプログラムの編集内容を特定できる。例えば、図９ないし図１１の場合、編集内容は、ユーザプログラムのうち、ラダー記号Ｉδに対応する命令語Ｃδ（図５参照）の後に、上記変数とのアンド演算を示す命令語を挿入する処理になる。
【００７８】
なお、上記では、図９に示す領域Ａ２１のように、ラダー記号がない場所が操作され、命令語の挿入が指示された場合を例にして説明したが、ラダー記号がある場所が操作されると、ラダーエディタ処理部４１は、当該ラダー記号に置換可能なラダー記号またはラダー記号の削除を選択可能に表示させ、ユーザの指示を促す。この場合、ラダーエディタ処理部４１は、指示に応じた命令語の置換や削除を編集内容と把握する。
【００７９】
編集内容が決まると、ラダーエディタ処理部４１は、インストラクションリスト記憶部３２に格納されたインストラクションリストを更新するように、プログラム更新処理部４２へ指示する。ここで、インストラクションリストは、上述のスキャンタイム周期で繰り返し実行されているので、上記プログラム更新処理部４２は、インストラクションリストの更新を、上述した表示画面更新用の期間（例えば、約３０ｍｓ程度）中に、一括して処理している。さらに、本実施形態に係る実行制御部３８は、表示／操作処理部３７による画面更新処理よりも、プログラム更新処理部４２によるインストラクションリスト更新処理の方を優先して処理するように、両処理部３７・４２を制御し、余裕があれば、図６に示す上記Ｓ７にて、表示／操作処理部３７に画面更新処理させる。
【００８０】
これにより、デバイス制御部３６は、インストラクションリストの変更後に実施されるＳ２の処理では、変更後のインストラクションリストに基づいて、正常に各デバイス２ａを制御できる。また、本実施形態では、ラダープログラムにおける命令の対象は、変数を介して、デバイスアドレスと関連付けられている。したがって、ある対象のデバイスアドレスが変更される場合は、対象に対応する変数のデバイスアドレスを変更するだけで、ラダープログラム上の当該対象に対応する箇所全てに、デバイスアドレスの変更を反映できる。
【００８１】
なお、上記両更新処理を実施すれば上記スキャンタイムが長くなる場合には、インストラクションリストの更新処理を優先させ、表示画面更新処理の一部または全部を省略する。この場合、例えば、動きの速い場合などにコマ落ちが視認される虞れがあるが、表示のコマ落ちは、インストラクションリストの一部のみを更新する場合と異なり、誤制御に直結しない。また、インストラクションリストを更新している期間が終了すれば、表示画面が更新される。したがって、ユーザは、何ら支障なく、プログラマブル表示器３の表示や操作によって、デバイス２ａの状態を把握し、制御できる。
【００８２】
ここで、インストラクションリストの更新処理の際、ラダーエディタ処理部４１がプログラム更新処理部４２へ指示可能なコマンドは、後述するように、短時間で処理可能な幾つかのコマンドに制限されている。したがって、プログラム更新処理部４２は、ラダーエディタ処理部４１からの指示に応じて、インストラクションリストを逐次変更できる。さらに、インストラクションリストを逐次変更する間、プログラマブル表示器３は、表示処理よりも優先して、インストラクションリストを変更しており、表示処理の少なくとも一部を停止できる。これにより、オンラインエディット中であっても、スキャンタイムの長さは、ユーザプログラムに従う各デバイス２ａの制御処理と、デバイス２ａの状態の表示処理とを行う場合と略同様の長さに保たれる。したがって、オンラインエディット中であるか否かに拘らず、プログラマブル表示器３は、略一定の周期（例えば、約５０ｍｓなど）で、ユーザプログラムを繰り返し実行できる。
【００８３】
本実施形態では、オンラインエディット中にラダーエディタ処理部４１がプログラム更新処理部４２へ発行可能なコマンドとして、指定ラング間にラダー回路を１行追加する行追加コマンド、および、変数追加コマンドに加えて、既存行のラダー回路を編集する行置換コマンド、既存行を削除する行削除コマンド、ラダープログラムにおけるＪＭＰコマンドの飛び先など、プログラム制御用のラベルを追加するラベル追加コマンド、および、一連のサブルーチンの追加を指示するサブルーチン追加コマンドが定義されている。なお、本実施形態では、行削除コマンドの発行時であっても、変数は削除されない。また、変数追加コマンドは、行追加コマンドや行置換コマンドにより、必要になった場合にのみ発行される。
【００８４】
これらのコマンドが用意されていれば、オンラインエディットの用途、すなわち、デバイス２ａの制御を中断することなく、ラダープログラムの一部を変更する用途に十分対応できる。さらに、上記コマンドは、ラダープログラム全体を更新する場合と比較して、更新されるデータ量が少なく、上述したデバイス制御の休止期間（例えば、約３０ｍｓ）のように、表示更新用に設けられた期間で十分に処理できる。
【００８５】
インストラクションリストの更新が終了すると、上述の編集内容に応じて、第１ユーザプログラム記憶部３１のユーザプログラムを更新するように、プログラム更新処理部４２へ指示する。また、ラダーエディタ処理部４１は、編集内容に応じて、ラダー図も更新するように、表示／操作処理部３７へ指示する。これにより、図１１に示すように、編集後のラダー図が表示される。
【００８６】
これらの処理は、インストラクションリストの更新処理とは異なり、表示画面更新用期間の複数にまたがって行ってもよい。したがって、インストラクションリストの更新処理よりも複雑な手順であるにも拘わらず、何ら支障なく、ユーザプログラムおよびラダー図を更新できる。なお、上記では、インストラクションリストの更新の後に、ユーザプログラムなどを更新する場合を例にして説明したが、インストラクションリストの前に更新してもよい。
【００８７】
ここで、図１に示すプログラム更新処理部４２は、第１ユーザプログラム記憶部３１に当該ユーザプログラムを格納する。したがって、編集後のインストラクションリストに基づいて、第１ユーザプログラム記憶部３１の内容を更新したり、ＦＥＰＲＯＭ１１ｂの一部である第２ユーザプログラム記憶部３３を書き換える場合よりも、正確かつ高速にユーザプログラムを更新できる。なお、プログラム更新処理部４２は、第１ユーザプログラム記憶部３１へユーザプログラムを書き込む際、ユーザプログラムのチェックサムも併せて格納している。
【００８８】
このように、プログラマブル表示器３は、ラダーエディタ画面の表示中、上述のスキャンタイム毎に、図６に示す上記Ｓ１〜Ｓ４およびＳ６〜Ｓ８の処理を繰り返す。これにより、プログラマブル表示器３は、ラダーエディタ装置としても動作でき、通常動作、すなわち、デバイス２ａの制御、デバイス２ａの状態表示およびデバイス２ａへの操作受け付けに必須の装置（プログラマブル表示器３）以外に新たな装置を接続することなく、しかも、デバイス２ａの制御を停止させずに、ユーザプログラムを編集できる。
【００８９】
ここで、上記ラダーエディタ画面の表示終了が指示された段階では、ユーザプログラムは、第１ユーザプログラム記憶部３１に書き込まれているが、第２ユーザプログラム記憶部３３には書き込まれていない。この状態で、例えば、図７に示すように、タッチパネル１３ａの表示画面の４隅のうちの３点を押して、図８に示すメニューを表示させた後、設定用のボタンＢ５４を押すなど、予め定められた特定操作が行われると、表示／操作処理部３７は、例えば、図１２に示すように、メンテナンス用のメニュー画面を表示する。さらに、メニューの選択項目のうち、コントローラバックアップの項目が選択されると、バックアップ処理部４３は、図１３に示すように、ユーザプログラム（ラダープログラム）保存の項目を表示し、当該項目が選択されると、第１ユーザプログラム記憶部３１に格納されたユーザプログラムを、第２ユーザプログラム記憶部３３へ書き込む。なお、第２ユーザプログラム記憶部３３は、ＦＥＰＲＯＭ１１ｂの一領域として実現されており、電源供給が長時間停止されても、ユーザプログラムを保持できる一方で、ＳＲＡＭ１１ｃに比べて、書き込み速度が遅い。したがって、バックアップ処理部４３は、ユーザプログラム（ラダープログラム）を書き込んでいる間、図１４に示すように、書き込み中である旨を液晶表示装置１２ａの表示画面上に表示して、ユーザに電源をオフしないように伝える。
【００９０】
また、例えば、ターゲットシステム２の運転が停止された後、運転を再開した時点など、プログラマブル表示器３の電源が投入されると、プログラマブル表示器３のＣＰＵ１５は、ＲＯＭ１１ａやＦＥＰＲＯＭ１１ｂに予め格納された起動プログラムを実行し、機能ブロックとして、図１に示す起動制御部４４が形成される。当該起動制御部４４は、図１５に示すＳ１１において、ＳＲＡＭ１１ｃの特定の領域に予め格納されたストリング（シグネチャー）を照合する。当該ストリングは、ＳＲＡＭ１１ｃの内容が正常であるか否かを確認するために格納される固定のテキストであって、ＳＲＡＭ１１ｃがバッテリバックアップされている間中、値が保持される。ところが、例えば、長時間の電源供給停止などで、バッテリが切れると、ＳＲＡＭ１１ｃは、上記ストリングを保持できない。したがって、上記ストリングを照合することで、バッテリ切れが発生したか否かを識別できる。
【００９１】
照合に成功した場合、起動制御部４４は、Ｓ１２において、例えば、ＳＲＡＭ１１ｃやＦＥＰＲＯＭ１１ｂの所定の領域あるいはディップスイッチなど、不揮発性の記憶手段に格納されたラダーフラグを参照し、ＳＲＡＭ１１ｃおよびＦＥＰＲＯＭ１１ｂのうち、いずれに設けられたユーザプログラム記憶部３１・３３から、ユーザプログラムを読み出すかを判定する。
【００９２】
ここで、通常、ラダーフラグは、ＳＲＡＭ１１ｃ（第１ユーザプログラム記憶部３１）からユーザプログラムを読み出すように設定されている（Ｓ１２にて、ＳＲＡＭの場合）。したがって、起動制御部４４は、Ｓ１３において、第１ユーザプログラム記憶部３１からユーザプログラムを読み出し、第１ユーザプログラム記憶部３１に格納されたチェックサムと、読み出したユーザプログラムから算出したチェックサムとを比較して、第１ユーザプログラム記憶部３１のユーザプログラムが正しく保存されていたか否かを確認する。なお、チェックサムの照合に失敗した場合、起動制御部４４は、Ｓ３１において、例えば、”メジャー異常”を液晶表示装置１２ａに表示するなどして、プログラマブル表示器３のユーザに、通常起こり得ない異常が発生し、処理を続けることができない旨を通知する。
【００９３】
チェックサムの照合に成功した場合、すなわち、上記両チェックサムが一致した場合、起動制御部４４は、Ｓ１４において、第１ユーザプログラム記憶部３１に格納されたユーザプログラムと、第２ユーザプログラム記憶部３３に格納されたユーザプログラムとを比較し、両者が一致していない場合、起動制御部４４は、Ｓ１５において、バックアップ処理部４３へ指示して、液晶表示装置１２ａに”バックアップがありません”と表示させるなどして、プログラマブル表示器３のユーザにバックアップを促す。なお、両ユーザプログラムは、例えば、それぞれのチェックサムを比較するなどして比較される。
【００９４】
また、起動制御部４４は、バックアップの有無に拘らず、Ｓ１６において、第１ユーザプログラム記憶部３１からユーザプログラムを読み出すと共に、Ｓ１７において、当該ユーザプログラムを展開してインストラクションリストを作成し、メインメモリ１１ｄのインストラクションリスト記憶部３２に格納する。
【００９５】
上記Ｓ１１〜Ｓ１７の処理により、ユーザプログラムに応じたインストラクションリストがインストラクションリスト記憶部３２に格納されると、プログラマブル表示器３は、通常運転状態に移行し、上述したように、図６に示すＳ１ないしＳ８の処理を繰り返して各デバイス２ａを制御する。
【００９６】
一方、上記Ｓ１１での照合に失敗した場合は、ＳＲＡＭ１１ｃの内容が失われたことを示している。この場合、起動制御部４４は、Ｓ２１において、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出すと共に、Ｓ２２において、液晶表示装置１２ａに”マイナー異常”と表示するなどして、プログラマブル表示器３のユーザにバッテリ切れが発生するなどして、ＳＲＡＭ１１ｃの内容が失われたことを報知する。
【００９７】
また、起動制御部４４は、Ｓ２３において、ラダーフラグを”ＳＲＡＭ”に設定すると共に、ストリングを書き込む。当該ストリングは、次にバッテリ切れが発生するまでの間、保持されるので、プログラマブル表示器３は、各起動時（上記Ｓ１１）に当該ストリングを参照することで、バッテリ切れの有無を確認できる。
【００９８】
さらに、起動制御部４４は、Ｓ２４において、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出して、ＳＲＡＭ１１ｃの第１ユーザプログラム記憶部３１に格納した後、上記Ｓ１６以降の処理を行う。このように、ＳＲＡＭ１１ｃの内容が失われた場合であっても、プログラマブル表示器３は、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出すことで、他の機器と通信することなく自力で起動できる。
【００９９】
なお、上記Ｓ１２の判定にて、ラダーフラグが”ＦＥＰＲＯＭ”を示している場合、起動制御部４４は、Ｓ２４以降の処理を行い、第２ユーザプログラム記憶部３３からユーザプログラムを読み出す。また、例えば、バックアップしていない状態など、第２ユーザプログラム記憶部３３にユーザプログラムが格納されていない場合、上記Ｓ１１におけるストリングの照合に失敗し、上記Ｓ２１にて、第２ユーザプログラム記憶部３３からユーザプログラムを読み出そうとしても、読み出しに失敗する。このとき、起動制御部４４は、Ｓ３２において、液晶表示装置１２ａに”ラダープログラムなし”と表示するなどして、第２ユーザプログラム記憶部３３にもユーザプログラムが記憶されていないことを、ユーザに報知する。この場合、ユーザは、プログラマブル表示器３にコンピュータを接続した後、当該コンピュータからのユーザプログラム読み込みを指示するなどして、他の機器（コンピュータなど）からユーザプログラムをプログラマブル表示器３に読み込ませる。
【０１００】
なお、上記では、プログラマブル表示器３にユーザプログラムが既に格納されている場合を例にして説明したが、例えば、プログラマブル表示器３の設置時など、ユーザプログラムや、Ｉ／Ｏユニット１４を介してデバイス２ａを制御するためのＩ／Ｏドライバが、プログラマブル表示器３に格納されていない場合には、プログラマブル表示器３に図示しないコンピュータが接続される。さらに、起動制御部４４は、当該コンピュータからＩ／Ｏドライバやユーザプログラムをダウンロードし、ＦＥＰＲＯＭ１１ｂに書き込む。また、ダウンロードに伴なって、例えば、ラダーフラグを”ＦＥＰＲＯＭ”に設定し、ＳＲＡＭ１１ｃにストリングを書き込むなどして、次にプログラマブル表示器３が起動する際、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出すように設定される。
【０１０１】
【発明の効果】
本発明に係るプログラマブル表示器は、以上のように、デバイスの状態を表示し操作を受け付ける操作表示手段へ、デバイス制御手段が制御するデバイスの状態を、ユーザプログラムに応じたラダー図として表示するよう指示すると共に、当該操作表示手段が、当該ラダー図を表示している画面への操作を受け付けた場合、上記デバイス制御手段が上記ユーザプログラムを繰り返し実行する合間に、上記ユーザプログラムを上記操作に応じて編集する制御手段を備えている構成である。
【０１０２】
上記構成によれば、制御手段は、デバイスの状態を、ユーザプログラムに応じたラダー図として表示するよう、操作表示手段へ指示すると共に、操作表示手段が画面への操作を受け付けると、制御手段は、デバイス制御手段がユーザプログラムを繰り返し実行する合間に、ユーザプログラムを当該操作に応じて編集する。これにより、プログラマブル表示器によるデバイスの制御を一時停止させることなく、しかも、プログラマブル表示器を設置している現場に他の機器を持ち込まずに、ユーザプログラムを編集できるという効果を奏する。
【０１０３】
本発明に係るプログラマブル表示器は、以上のように、上記構成において、上記制御手段は、上記ユーザプログラムを編集する際、上記揮発性メモリに格納されたユーザプログラムを編集すると共に、ユーザプログラムの編集が指示されていない期間中に、当該揮発性メモリに格納されたユーザプログラムを、上記不揮発性メモリに格納し、上記プログラマブル表示器には、上記揮発性メモリがユーザプログラムを正常に保持できなかった場合に、上記不揮発性メモリから上記揮発性メモリへユーザプログラムを読み込む起動制御手段が設けられている構成である。
【０１０４】
上記構成によれば、ユーザプログラムの編集時に、揮発性メモリのユーザプログラムを編集するので、ユーザプログラムの変更が頻繁に指示される場合であっても、デバイス制御手段によるデバイスの制御を阻害せずに、ユーザプログラムを編集できる。また、揮発性メモリがユーザプログラムを正常に保持できない場合、不揮発性メモリのユーザプログラムに基づいて、デバイスが制御されるので、揮発性メモリのユーザプログラムが失われるような事故が発生したとしても、プログラマブル表示器は、自力で、正しいユーザプログラムに従ったデバイスの制御を再開できる。これらの結果、デバイス制御手段によるデバイスの制御を阻害せずに、ユーザプログラムを編集できるにも拘わらず、事故から復旧する際の時間と手間とを削減できるという効果を奏する。
【０１０５】
本発明に係るプログラマブル表示器は、以上のように、上記構成において、上記制御手段は、上記ユーザプログラムを編集する際、ユーザプログラム展開したインストラクションリストを、上記デバイス制御手段が繰り返し実行する合間に、上記インストラクションリストを編集し、ユーザプログラムの編集が指示されていない期間中に、上記揮発性メモリに格納された、展開前のユーザプログラムを編集する構成である。
【０１０６】
当該構成では、制御手段は、展開後のインストラクションリストを編集し、ユーザプログラムの編集が指示されていない期間中に、揮発性メモリに格納されたユーザプログラムを編集するので、比較的低い演算能力のコンピュータであっても、デバイス制御手段によるデバイスの制御を阻害することなく、デバイスの制御手順を変更できるという効果を奏する。
【０１０７】
本発明に係るプログラマブル表示器は、以上のように、上記記載の発明の構成において、上記操作表示手段は、予め定められた大きさの矩形領域を単位にして、画面に表示すると共に、当該矩形領域を単位にして画面への操作を受け付け、上記制御手段は、デバイスに対応するラダー記号を上記ラダー図に表示させる際、当該ラダー記号も上記矩形領域を単位にして表示するよう、上記操作表示手段へ指示すると共に、上記操作表示手段が上記矩形領域単位で受け付けた画面への操作に基づいて、ユーザプログラムのうちの編集箇所を特定する構成である。
【０１０８】
上記構成によれば、上述の通常動作中とユーザプログラムの編集中との双方において、矩形領域単位で表示し、操作を受け付けるので、画素単位で表示したり、操作を受け付ける場合よりも、表示および操作を受け付けた場所の特定に要する演算量を削減できる。この結果、表示したり、操作場所を特定する動作の大半を、通常動作時とユーザプログラムの編集時とで共用できると共に、比較的低い演算能力のコンピュータであっても、デバイス制御手段によるデバイスの制御を阻害することなく、デバイスの制御手順を変更できるという効果を奏する。
【０１０９】
本発明に係るプログラマブル表示器は、以上のように、上記構成において、上記制御手段は、上記編集箇所が特定された後、ラダー図に配置可能なラダー記号のうちで当該場所に配置可能なラダー記号を選択可能に表示するよう、上記操作表示手段へ指示する構成である。
【０１１０】
上記構成では、編集箇所が特定されると、ラダー図に配置可能なラダー記号のうちで、現在の編集箇所に配置可能なラダー記号群が表示されるので、上述の通常動作時には不要な機器を新たに接続することなく、現場の機器だけでユーザプログラムを編集できるにも拘わらず、ユーザプログラムを編集しやすいプログラマブル表示器を実現できるという効果を奏する。
【０１１１】
本発明に係るプログラマブル表示器は、以上のように、上記構成において、上記デバイス制御手段は、デバイスとの対応付けを変更可能な変数で上記手順の対象が指定されたユーザプログラムに基づいて、デバイスを制御可能であり、上記制御手段は、選択可能に表示された上記ラダー記号のいずれかが選択された場合、当該ラダー記号が示す手順の対象となる変数の入力を促す画面を表示するよう、上記操作表示手段へ指示する構成である。
【０１１２】
上記構成によれば、上記制御手段は、ユーザプログラムの編集によって、ラダー記号が選択された場合、当該ラダー記号に関連する変数の入力を促す。これにより、編集された手順であっても、対象を変数で指定できる。したがって、上述の通常動作時には不要な機器を新たに接続することなく、現場の機器だけでユーザプログラムを編集できるにも拘わらず、デバイスを変更した場合の手間を削減可能なプログラマブル表示器を実現できる。
【図面の簡単な説明】
【図１】  本発明の実施形態を示すものであり、プログラマブル表示器を含む制御システムの要部構成を示すブロック図である。
【図２】  上記プログラマブル表示器のハードウェア構成例を示すブロック図である。
【図３】  上記プログラマブル表示器の表示画面例を示すものであり、ラダーエディタ画面を示す説明図である。
【図４】  上記プログラマブル表示器の表示画面例を示すものであり、他のラダーエディタ画面を示す説明図である。
【図５】  上記ラダーエディタ画面で表示されるユーザプログラムを示すものであり、ニモニックで表現した説明図である。
【図６】  上記プログラマブル表示器の動作を示すフローチャートである。
【図７】  上記プログラマブル表示器の表示画面例を示すものであり、操作画面を示す説明図である。
【図８】  上記プログラマブル表示器の表示画面例を示すものであり、メニュー表示した場合を示す説明図である。
【図９】  上記プログラマブル表示器の表示画面例を示すものであり、ラダーエディタ画面にて編集が指示された場合を示す説明図である。
【図１０】  上記プログラマブル表示器の表示画面例を示すものであり、ラダーエディタ画面にて、挿入可能なラダー記号を表示した場合を示す説明図である。
【図１１】  上記プログラマブル表示器の表示画面例を示すものであり、編集後のラダーエディタ画面を示す説明図である。
【図１２】  上記プログラマブル表示器の表示画面例を示すものであり、コントローラメニューを示す説明図である。
【図１３】  上記プログラマブル表示器の表示画面例を示すものであり、コントローラバックアップ画面を示す説明図である。
【図１４】  上記プログラマブル表示器の表示画面例を示すものであり、ユーザプログラムをＦＥＰＲＯＭに書き込んでいる場合を示す説明図である。
【図１５】  上記プログラマブル表示器において、起動時の動作を示すフローチャートである。
【符号の説明】
２ａ  デバイス
３    プログラマブル表示器
１１ｂ  ＦＥＰＲＯＭ（不揮発性メモリ）
１１ｃ  ＳＲＡＭ（揮発性メモリ）
３６    デバイス制御部（デバイス制御手段）
３７    表示／操作処理部（操作表示手段）
３１    第１ユーザプログラム記憶部（揮発性メモリ）
３３    第２ユーザプログラム記憶部（不揮発性メモリ）
４１    ラダーエディタ処理部（制御手段）
４４    起動制御部（起動制御手段）-
【図１】
0003892276.tif 000002
【図２】
0003892276.tif 000003
【図３】
0003892276.tif 000004
【図４】
0003892276.tif 000005
【図５】
0003892276.tif 000006
【図６】
0003892276.tif 000007
【図７】
0003892276.tif 000008
【図８】
0003892276.tif 000009
【図９】
0003892276.tif 000010
【図１０】
0003892276.tif 000011
【図１１】
0003892276.tif 000012
【図１２】
0003892276.tif 000013
【図１３】
0003892276.tif 000014
【図１４】
0003892276.tif 000015
【図１５】
0003892276.tif 000016