(57)【要約】【課題】ＰＯＵ変数を実装するためのメモリ容量を削減すると共にＰＯＵの転送や変数の初期化処理を簡易にする。【解決手段】ＰＯＵ定義ファイル２２の変数定義情報をＰＯＵインスタンス定義ファイル２１の変数定義に統合し、ＰＬＣ本体１００に送信するＰＯＵ定義ファイル２４は変数定義部を削除したものとし、ＰＯＵインスタンス定義ファイル２３の変数定義部はインスタンス領域全体を対象にした変数定義を行うファイル構成とし、さらに属性データでインスタンス領域の初期値／定数の領域を指定し、この指定領域に書き込む値を初期値データで設定する。ファイル２３には、属性データで物理アドレスを指定された場合には直接表現変数定義データの追加によって初期化処理を可能にし、ＰＬＣ本体が演算実行中に、インスタンス領域の初期値／定数の変更にはオンライン変更データの追加によって変更可能にする。【選択図】図１
2010072892.tif 000002
【特許請求の範囲】
【請求項１】
プログラミングツールで作成したＰＯＵ定義ファイルとＰＯＵインスタンス定義ファイルをＰＬＣ本体に転送し、ＰＬＣ本体は起動時にデータメモリのインスタンス領域に設定する変数データを初期化しておくＰＯＵの実装方式であって、
前記プログラミングツールは、ＰＯＵインスタンス定義ファイルの変数定義部にＰＯＵ定義ファイルの変数定義情報を統合し、ＰＯＵ定義ファイルはボディ部でのみ構成して前記ＰＬＣ本体に転送することを特徴とするＰＯＵの実装方式。
【請求項２】
前記ＰＯＵインスタンス定義ファイルの変数定義部は、前記ＰＬＣ本体に設定するインスタンス領域全体を対象にした変数定義を行うファイル構成としたことを特徴とする請求項１に記載のＰＯＵの実装方式。
【請求項３】
前記ＰＯＵインスタンス定義ファイルの変数定義部は、インスタンス領域の初期値／定数の領域を指定する属性データと、この指定領域に書き込む値を設定する初期値／定数データとを備え、前記ＰＬＣ本体は前記属性データと初期値データによってインスタンス領域を初期化処理する手段を備えたことを特徴とする請求項１または２に記載のＰＯＵの実装方式。
【請求項４】
前記ＰＯＵインスタンス定義ファイルの変数定義部は、前記属性データでインスタンス領域が物理アドレスで指定された場合に変数定義データを与える直接表現変数定義データを備えたことを特徴とする請求項１〜３のいずれか１項に記載のＰＯＵの実装方式。
【請求項５】
前記ＰＯＵインスタンス定義ファイルの変数定義部は、ＰＬＣ本体が演算実行中に、インスタンス領域の初期値／定数が変更された場合にオンライン変更対象の変更データを与えるオンライン変更データを備えたことを特徴とする請求項１〜４のいずれか１項に記載のＰＯＵの実装方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ（ＰＬＣ）におけるＰＯＵの実装方式に係り、特に、ＩＥＣ６１１３１−３（ＪＩＳＢ３５０３）に準拠したプログラムを実行するためのＰＯＵの構成、ＰＯＵ変数の転送、初期化処理に関する。
【背景技術】
【０００２】
（１）ＰＯＵ定義とインスタンス化
ＩＥＣ６１１３１−３（ＪｌＳＢ３５０３）ではユーザが作成するプログラムをＰＯＵ（Ｐｒｏｇｒａｍ  Ｏｒｇａｎｉｓａｔｉｏｎ  Ｕｎｉｔ）という型として登録する。ＰＯＵは、図４に示すように、変数定義部１０とボディ部（アルゴリズム）２０から構成される。ＰＯＵを実行させる場合には、変数定義部１０で定義した構成の演算用データ領域（インスタンス）を割り付けたＰＯＵインスタンスとすることになっている。ＰＯＵは型であり、１つのＰＯＵに別々のインスタンスを用意することで、別々のＰＯＵインスタンスとすることができる。
【０００３】
例えば、図４では、「ポンプ運転」というＰＯＵを作成し、演算対象としてポンプＰ１，Ｐ２，Ｐ３があった場合、３個のインスタンスＩＮＳ１，ＩＮＳ２，ＩＮＳ３を用意することで、別々のポンプを同じＰＯＵを使って演算させることができる。
【０００４】
このような処理をＰＯＵのインスタンス化と呼んでいる。演算アルゴリズムであるボディ部２０は各インスタンスで共通のものが使用される。
【０００５】
ＩＥＣ６１１３１−３（ＪＩＳＢ３５０３）ではＰＯＵ定義とＰＯＵインスタンスは別管理になっており、通常、プログラミングツールでは別ファイルとして管理することになる（例えば、特許文献１参照）。
【０００６】
（２）変数の属性
ＩＥＣ６１１３１−３（ＪＩＳＢ３５０３）では変数に表１に示すような属性を持たせることができる。
【０００７】
【表１】
2010072892.tif 000003
【０００８】
これらの指定はＰＯＵ定義の変数定義部でもできるし、ＰＯＵインスタンスでも可能である。例えば、図４のＰＯＵ定義の変数定義部１０では変数Ａを初期値＝０として定義して、インスタンスＩＮＳ１では初期値＝１、インスタンスＩＮＳ２では初期値＝２、インスタンスＩＮＳ３では初期値＝３とすることができる。即ち、ＰＯＵ定義の変数定義部１０で設定した属性を、ＰＯＵインスタンスで上書きすることができる。この機能により、インスタンス毎に別々の初期値を設定できる。ＰＬＣは演算開始時に設定された属性を参照しながらインスタンス領域の初期化を実行することになる。即ち、ＰＬＣ本体側ではＰＯＵ定義及びＰＯＵインスタンス定義を記憶しておく必要がある。
【０００９】
（３）ＰＯＵ定義ファイル及びＰＯＵインスタンス定義ファイル
上記のように、インスタンス領域の初期化のために、ＰＯＵ定義やＰＯＵインスタンス定義をＰＬＣ本体で記億する必要がある。初期化処理は最初にＰＯＵインスタンス定義に従って実行し、ＰＯＵインスタンス定義で属性設定がない場合にはＰＯＵ定義に従って初期化を行う。図５に変数の初期化処理フローを示す。
【００１０】
図５において、複数の変数のうち、先頭の変数を読み込み（Ｓ１）、当該変数がＰＯＵインスタンスで保持属性（ＲＥＴＡＩＮ）を設定しているか否かをチェックし（Ｓ２）、保持属性として設定している場合は初期化しないで、全変数についてチェックしたかを確認し（Ｓ３）、全変数についてチェックが終了していない場合には次の変数について初期化処理に入る（Ｓ４）。
【００１１】
ＰＯＵインスタンスで保持属性を設定していない場合（Ｓ２）、当該ＰＯＵインスタンスで初期値または定数（ＣＯＮＳＴＡＮＴ）を設定しているか否かをチェックし（Ｓ５）、設定している場合にはインスタンス領域に初期値または定数属性を書き込み（Ｓ６）、次の変数についてのチェックに入る（Ｓ３）。設定していない場合にはＰＯＵ定義で初期値または定数を設定しているか否かをチェックし（Ｓ７）、設定している場合はインスタンス領域に初期値または定数属性を書き込む（Ｓ６）。設定していない場合はデフォルトを初期値とし、次の変数についてのチェックに入る（Ｓ３）。
【００１２】
上記のような変数初期化処理を行うためには、ＰＯＵ定義とＰＯＵインスタンス定義の両方をＰＬＣ本体に持つ必要がある。これらはプログラミングツールで作成され、ＰＬＣ本体に通信などの方法で転送される。一般的にこれらは下記のように、ファイルとして扱ったほうが通信するのに便利である。
【００１３】
（ａ）ＰＯＵ定義ファイル
ＰＯＵ定義ファイルには変数定義部とボティ部がある。変数定義部には変数の名称、型、属性、初期値、物理アドレスなどの情報が格納される。ボディ部にはアルゴリズムが格納され、具体的にはＰＬＣのマシンコードや中間言語イメージが格納される。
【００１４】
（ｂ）ＰＯＵインスタンス定義ファイル
ＰＯＵインスタンス定義ファイルには変数定義部のみがあれば良い。アルゴリズムはＰＯＵ定義ファイルのものが使用できるためである。変数定義部はＰＯＵ定義ファイルと同等のものが必要となる。
【００１５】
（４）変数定義
ＰＯＵ定義ファイルやＰＯＵインスタンス定義ファイルでは変数定義部で変数を個別に定義することになる。表２に変数定義の項目とその説明を示す。
【００１６】
【表２】
2010072892.tif 000004
【特許文献１】特開２００８−０４０９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
ＰＯＵ定義ファイルとＰＯＵインスタンス定義ファイルは変数の数が多いほど大きいものになる。たとえＢＯＯＬ型変数であっても、その１つ１つについての情報が必要になる。ＰＬＣは一般にＢＯＯＬデータを扱うプログラムが主流である。そのため、使用する変数が多い場合、ＰＯＵ定義ファイルやＰＯＵインスタンス定義ファイルは大きいものになってしまう。
【００１８】
例えば、前記の表２で示した変数定義が、変数１個につき６４バイト必要だったとした場合、ＢＯＯＬ型変数が１００個あっただけで、変数定義は６４００バイト必要になる。本来、１００ビットの変数のために、これだけ大きい情報が必要になる。このことにより、以下のような問題が発生する。
【００１９】
（１）ＰＬＣ本体に多くのメモリを必要とする。
【００２０】
（２）メモリ容量が大きい分、ＰＬＣのコストが上昇する。
【００２１】
（３）プログラミングツールからＰＬＣ本体へのデータ転送時間が長くなる。
【００２２】
本発明の目的は、ＰＯＵ変数を実装するためのメモリ容量を削減すると共にＰＯＵの転送や変数の初期化処理を簡易にしたＰＯＵの実装方式を提供することにある。
【課題を解決するための手段】
【００２３】
本発明は、前記の課題を解決するため、ＰＯＵ定義ファイルの変数定義情報をＰＯＵインスタンス定義ファイルの変数定義に統合し、ＰＬＣ本体に送信するＰＯＵ定義ファイルから変数定義部を削除し、ＰＯＵインスタンス定義ファイルの変数定義部はインスタンス領域全体を対象にした変数定義を行うファイル構成とし、さらに変数定義部はインスタンス領域の初期値／定数の領域を指定する属性データと、この指定領域に書き込む値を設定する初期値データとによってインスタンス領域の初期化処理を可能にし、属性データで物理アドレスを指定された場合には直接表現変数定義データの追加によって初期化処理を可能にし、ＰＬＣ本体が演算実行中に、インスタンス領域の初期値／定数の変更にはオンライン変更データの追加によってオンラインでも変更可能にしたもので、以下の実装方式を特徴とする。
【００２４】
（１）プログラミングツールで作成したＰＯＵ定義ファイルとＰＯＵインスタンス定義ファイルをＰＬＣ本体に転送し、ＰＬＣ本体は起動時にデータメモリのインスタンス領域に設定する変数データを初期化しておくＰＯＵの実装方式であって、
前記プログラミングツールは、ＰＯＵインスタンス定義ファイルの変数定義部にＰＯＵ定義ファイルの変数定義情報を統合し、ＰＯＵ定義ファイルはボディ部でのみ構成して前記ＰＬＣ本体に転送することを特徴とする。
【００２５】
（２）前記ＰＯＵインスタンス定義ファイルの変数定義部は、前記ＰＬＣ本体に設定するインスタンス領域全体を対象にした変数定義を行うファイル構成としたことを特徴とする。
【００２６】
（３）前記ＰＯＵインスタンス定義ファイルの変数定義部は、インスタンス領域の初期値／定数の領域を指定する属性データと、この指定領域に書き込む値を設定する初期値／定数データとを備え、前記ＰＬＣ本体は前記属性データと初期値データによってインスタンス領域を初期化処理する手段を備えたことを特徴とする。
【００２７】
（４）前記ＰＯＵインスタンス定義ファイルの変数定義部は、前記属性データでインスタンス領域が物理アドレスで指定された場合に変数定義データを与える直接表現変数定義データを備えたことを特徴とする。
【００２８】
（５）前記ＰＯＵインスタンス定義ファイルの変数定義部は、ＰＬＣ本体が演算実行中に、インスタンス領域の初期値／定数が変更された場合にオンライン変更対象の変更データを与えるオンライン変更データを備えたことを特徴とする。
【発明の効果】
【００２９】
以上のとおり、本発明によれば、ＰＯＵ定義ファイルの変数定義情報をＰＯＵインスタンス定義ファイルの変数定義に統合し、ＰＬＣ本体に送信するＰＯＵ定義ファイルから変数定義部を削除し、ＰＯＵインスタンス定義ファイルの変数定義部はインスタンス領域全体を対象にした変数定義を行うファイル構成とし、さらに変数定義部はインスタンス領域の初期値／定数の領域を指定する属性データと、この指定領域に書き込む値を設定する初期値データとによってインスタンス領域の初期化処理を可能にし、属性データで物理アドレスを指定された場合には直接表現変数定義データの追加によって初期化処理を可能にし、ＰＬＣ本体が演算実行中に、インスタンス領域の初期値／定数の変更にはオンライン変更データの追加によってオンラインでも変更可能にしたため、ＰＯＵ変数を実装するためのメモリ容量を削減されると共にＰＯＵの転送や変数の初期化処理が簡易になる。
【発明を実施するための最良の形態】
【００３０】
図１は、本発明の実施形態を示すプログラマブルコントローラ（ＰＬＣ）の要部構成図であり、ＰＯＵの実装方式に係る部分のみを示す。
【００３１】
プログラマブルコントローラ（ＰＬＣ）は、ＰＬＣ本体１００とプログラミングツール（プログラミング装置）２００でシステムが構築される。ＰＬＣ本体１００は、プログラムメモリ１１にメインプログラムやＰＯＵ定義ファイルおよびＰＯＵインスタンス定義ファイルを格納し、データメモリ１２には定義された変数および入出力データを格納し、これらから逐次読み出すプログラムとデータを使って演算部１３で所期のシーケンス演算を実行する。１５はコントローラ１００の制御対象または処理対象となる装置との間のデータ入力または出力を行うデータ入出力部である。
【００３２】
プログラミングツール２００は、パソコンなどを利用して、ＰＯＵ定義ファイル，ＰＯＵインスタンス定義ファイルを定義および作成し、これらの組み合わせでアプリケーションプログラムを構築し、このプログラムおよびデータをＵＳＢやイーサネット（登録商標）、ＲＳ−２３２Ｃポートを使用してＰＬＣ本体１００に転送する。
【００３３】
以上のようなプログラマブルコントローラ（ＰＬＣ）において、本発明の実施形態では以下のＰＯＵの実装方式とする。
【００３４】
（１）ＰＯＵインスタンス定義ファイルにＰＯＵ定義の初期化データを統合
ＰＬＣ起動時には変数を初期化する必要がある。図５にその手順を示した。図５ではＰＯＵインスタンス定義ファイルとＰＯＵ定義ファイルの内容によって初期化を行っている。これにより、ＰＯＵ定義で設定された定数とＰＯＵインスタンス定義で設定された定数が異なる場合にも対応できるようにする。ここで、ＰＯＵインスタンスで初期値や定数が設定されていない場合には、ＰＯＵ定義を参照して、その初期値／定数があればそれを初期値／定数として初期化処理を行っている。
【００３５】
そこで、ＰＯＵインスタンス定義ファイルの変数定義部にＰＯＵ定義ファイルの初期化情報も含めてしまう統合を行う。即ち、ＰＯＵインスタンス定義ファイルで変数属性が設定されていない場合に限り、ＰＯＵ定義ファイルの変数を参照し、そこに初期値／定数が設定されていれば、ＰＯＵインスタンス定義ファイルの変数定義の初期値／定数に上書きする。
【００３６】
こうすることで、ＰＬＣ本体では変数初期化でＰＯＵ定義ファイルを参照しなくても良くなり、ＰＬＣ動作開始時の変数初期化処理が簡略化され、ＰＬＣ起動時間が短縮される。
【００３７】
以上のことから、プログラミングツール２００では、ＰＬＣ本体１００にＰＯＵインスタンス定義ファイルを送信する前処理として、ＰＯＵインスタンス定義ファイル２１の変数定義部ａにＰＯＵ定義ファイル２２の変数定義部Ａの内容を含んだ（統合した）ＰＯＵインスタンス定義ファイル２３に変換して送信する。即ち、元のＰＯＵインスタンス定義ファイル２１はＰＯＵインスタンス定義ファイル２３というファイルに変換してＰＬＣ本体１００に転送する。
【００３８】
このように、ＰＯＵ定義ファイルの変数定義をＰＯＵインスタンス定義ファイルに統合することで、ＰＬＣ本体１００の変数初期化処理部１４は、同じファイルに含まれる変数定義を直接に参照して初期化処理することができ、ＰＬＣ動作開始時の変数初期化処理を簡略化でき、ＰＬＣ起動時間を短縮できる。
【００３９】
（２）ＰＯＵ定義ファイルから変数定義部を削除
上記の変数定義部の統合により、ＰＬＣ本体１００ではＰＯＵ定義ファイルの変数定義部を使用しなくなる。そこで、プログラミングツール２００がＰＬＣ本体１００にＰＯＵ定義ファイル２２を送信する場合には変数定義部を削除したＰＯＵ定義ファイル２４に変換して転送する。即ち、元のＰＯＵ定義ファイル２２は、そのボディ部ＢだけにしたＰＯＵ定義ファイル２４にして転送される。
【００４０】
このように、ＰＬＣ本体１００に転送するＰＯＵ定義ファイル２４には変数定義部Ａがなくなるため、転送するＰＯＵ定義ファイル２４のサイズが小さくなり、ＰＬＣ本体１００に必要となるメモリサイズが小さくできると共に転送時間を短縮できる。
【００４１】
（３）ＰＯＵインスタンス定義ファイルの構成
ＰＯＵインスタンス定義ファイル２１にある変数定義部ａでは各変数の変数属性や変数名などの情報を含んでいる。ＰＬＣ本体１００が変数を初期化する場合に本当に必要なのは、各変数の属性と初期値／定数と変数アドレスである。そこで、１つずつの変数定義を持つのでなく、インスタンス領域全体を対象にした変数定義にする。具体的には以下の表３に示すファイル構成（データ項目とその内容）にする。
【００４２】
【表３】
2010072892.tif 000005
【００４３】
表中の項目のうち、ファイルヘッダは、ＰＯＵインスタンス定義ファイルのヘッダ情報を書き込む。具体的には属性データや初期値データのサイズなどである
層性データは、インスタンス領域と同じ大きさを持ち、インスタンス領域のどこが初期値／定数であるかを示す。対象データがＢＯＯＬの場合には初期値／定数はビット単位になり、ＷＯＲＤの場合には１６ビット単位になる。これにより、対象とする変数のデータタイプは意識しないで初期化できるようになる。例えば、１で初期値／定数属性、０で保持属性とする。
【００４４】
初期値データは、インスタンス領域と同じ大きさを持ち、属性データで初期値／定数と指定されている領域に書き込む値を設定する。対象データがＢＯＯＬの場合には初期値／定数はビット単位になり、ＷＯＲＤの場合には１６ビット単位になる。これにより、対象の変数のデータタイプは意識しないで初期化できるようになる。
【００４５】
このように、インスタンス領域全体を対象にした変数定義により、ＰＯＵインスタンス定義ファイル２３のサイズが小さくなる。例えば、ＩＮＴ型変数１００個の定義をした場合、元のＰＯＵインスタンス定義ファイルでは１変数で６４Ｂを使用していたとすると、６４Ｂ×１００＝６４００Ｂを必要としていた。しかし、インスタンス領域全体を対象にした変数定義方式では属性データが１００Ｗ（２００Ｂ）、初期値データが１００Ｗ（２００Ｂ）、ファイルヘッダが数ワードであり、５００Ｂ以下のサイズになり、１／１０以下になる。
【００４６】
このように、ＰＯＵインスタンス定義ファイル２３の構成を変更することで、ＰＬＣ本体１００に送信するファイルサイズを大幅に小さくすることができる。このため、ＰＬＣ本体１００に必要となるメモリサイズも小さくて済み、転送時間も短縮できる。
【００４７】
（４）変数の初期化処理
前記の変数定義の統合およびＰＯＵインスタンス定義ファイルの構成変更により、ＰＬＣ本体１００の動作開始時に行う変数の初期化処理が非常に簡単になる。
【００４８】
具体的には、ＰＯＵインスタンス定義ファイル２３の属性データと初期値データを使用して、インスタンス領域の領域を１６ビット単位または３２ビット単位などで初期化することができる。しかも、変数のデータタイプに関係なく一気に初期化できる。
【００４９】
図２は、変数初期化処理部１４による変数の初期化処理フローを示し、１６ビット単位に初期化を行う場合であり、図５に比べて非常に簡単になる。図３は図２による初期化処理の模式図を示し、この図を参照して初期化処理を説明する。
【００５０】
図１において、データメモリ１２のインスタンス領域に対して、その属性データは前記の表３の定義からインスタンス領域と同じ大きさを有してインスタンス領域のどこ（どのビット）が初期値／定数であるかを示し、図３では先頭の１６ビットが論理「１」になり、これに対応するインスタント領域の１６ビットが初期値／定数であることを対応付ける。また、初期値データは、表３の定義からインスタンス領域と同じ大きさを有し、属性データでの初期値／定数と指定される領域に書き込む初期値が設定され、図３では先頭の１６ビットに初期値（２進数）が書き込まれている。
【００５１】
図２において、まず、ＰＯＵインスタンス定義ファイル２３の先頭のインスタンス領域とその属性データと初期値データを得る（Ｓ１１）。これらデータのうちインスタンス領域（１６ビット）と属性データ（１６ビット）の否定の論理積をワークメモリに格納する（Ｓ１２）。この処理により、図３に示すワークメモリＷＭ１にはインスタンス領域の初期値／定数が書き込まれるビットを全て「０」にした１６ビットデータが格納される。
【００５２】
次に、属性データ（１６ビット）と初期値データ（１６ビット）の論理積をワークメモリＷＭ２に格納する（Ｓ１３）。この処理により、図３に示すワークメモリＷＭ２には１６ビットの初期値データが格納される。
【００５３】
次に、ワークメモリＷＭ１とワークメモリＷＭ２の論理和をインスタンス領域（１６ビット）に格納する（Ｓ１４）。
【００５４】
これら処理により、インスタンス領域には初期値データがそのまま書き込まれ、当該インスタンス領域の初期化を終了する。また、属性データが全て「０」の場合は、ワークメモリＷＭ２には全て「０」が格納され、ワークメモリＷＭ１にはインスタンス領域のデータが格納され、その論理和はインスタンス領域のデータそのものに更新される。
【００５５】
１つのインスタンス領域について初期化が終了したか否かをチェックし（Ｓ１５）、終わりでなければ、次のインスタンス領域（１６ビット）、属性データ、初期値データのデータを得、Ｓ１２に戻って当該インスタンス領域の初期化を行うという繰り返しになる。
【００５６】
このように、ＰＯＵインスタンス定義ファイルの構成として、属性データと初期値データを設けることで、ＰＬＣ動作開始時の変数の初期化処理を簡略化でき、ＰＬＣ起動時間を短縮できる。
【００５７】
（５）物理アドレスヘの対応
図１に示すＰＯＵインスタンス定義ファイル２３では属性データでインスタンス領域が物理アドレスで指定された場合に、図２の初期化処理フローのままでは変数の初期化ができない。
【００５８】
そのため、下記の表４で示すＰＯＵインスタンス定義ファイルの構成とし、変数が物理アドレスを指定された場合にのみ、直接表現変数定義データを使用する。
【００５９】
【表４】
2010072892.tif 000006
【００６０】
上記の表４のうち、表３と異なる部分は、ファイルヘッダを変更し、直接表現変数定義データを追加した点にある。ファイルヘッダは、ＰＯＵインスタンス定義ファイルのヘッダ情報を示す。具体的には属性データや初期値データのサイズなどに加えて、直接表現変数の個数が必要になる。直接表現変数定義データは変数属性で物理アドレスが指定された場合の変数定義データであり、必要個数だけ並ぶ。構成は前記の表２と同等になる。
【００６１】
このように、ＰＵインスタンス定義ファイルの項目として直接表現変数定義データを追加することにより、変数属性で物理アドレスが指定された場合には、直接表現変数定義データを使って対応できる。
【００６２】
（６）オンライン変更への対応
ＰＬＣ本体１００が演算動作中に、ＰＯＵインスタンス定義ファイルをオンラインで変更する場合がある。即ち、初期値／定数の変更をオンラインで行う場合である。インスタンス領域に対する初期化処理はＰＬＣ演算開始時に行うが、オンライン変更時にも変更があった部分だけを初期化する必要がある。
【００６３】
そこで、下記の表５で示すＰＯＵインスタンス定義ファイルの構成とし、表４の構成に加えてオンライン変更データを付加する。このデータも属性データと同様にビット単位に意味を持たせ、論理「１」の部分のみオンライン変更対象とする。
【００６４】
具体的には、図２の初期化処理と同様に、初期値データとオンライン変更データの論理積（Ａ）と、インスタンスデータとオンライン変更データの否定の論理積（Ｂ）を求め、ＡとＢの論理和をインスタンスデータに書き込めばよい。
【００６５】
このように、ＰＯＵインスタンス定義ファイルの項目としてオンライン変更データを追加することにより、変数のオンライン変更に対応できるようになる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態を示すプログラマブルコントローラ（ＰＬＣ）の要部構成図。
【図２】変数の初期化処理フロー。
【図３】初期化処理の模式図。
【図４】ＰＯＵ定義とインスタンス化。
【図５】変数の初期化処理フロー。
【符号の説明】
【００６７】
１００  ＰＬＣ本体
２００  プログラミングツール
１１  プログラムメモリ
１２  データメモリ
１３  演算部
１４  変数初期化処理部
１５  入出力部
２１、２３  ＰＯＵインスタンス定義ファイル
２２、２４  ＰＯＵ定義ファイル
【図１】
2010072892.tif 000007
【図２】
2010072892.tif 000008
【図３】
2010072892.tif 000009
【図４】
2010072892.tif 000010
【図５】
2010072892.tif 000011