(57)【要約】【課題】ＰＬＣに対する可変長データの書き込みを簡単かつ安全に実行するための技術を提供する。【解決手段】本発明では、ＰＬＣのデータ領域の先頭に終端コードをまず書き込み、そして先頭以外のデータを順次書き込んだ後で、最後に先頭のデータを書き込む、という手順を採用することで、過渡期間のあいだはデータ領域の中が空データと認識されるようにした。【選択図】図４
2013152570.tif 000002
【特許請求の範囲】
【請求項１】
ＰＬＣに設定されている変数をネットワークを介して書き換えるためのデータ設定装置であって、
書き換え対象となる変数、当該変数のデータ領域の先頭アドレスからのオフセット、及び、前記オフセットで指定された位置に書き込むデータを少なくとも指示するフレームを生成し、当該フレームをＰＬＣに伝送することによって、前記ＰＬＣに当該変数の書き換えを行わしめる、データ設定手段を有しており、
書き換え対象となる変数が、所定の終端コードで終端される可変長のデータ型の変数であり、かつ、前記変数に書き込むべきデータの全体サイズが１つのフレームで伝送可能な最大サイズを超えている場合に、
前記データ設定手段は、
前記書き込むべきデータを前記最大サイズ以下の複数の分割データに分割するとともに、各分割データのオフセットを計算し、
最初に、前記データ領域の先頭アドレスに前記所定の終端コードを書き込むことを指示するフレームを前記ＰＬＣに伝送し、
次に、先頭の分割データ以外の分割データのそれぞれについて、前記データ領域の先頭アドレスから対応するオフセットの位置に前記分割データを書き込むことを指示するフレームを前記ＰＬＣに伝送し、
最後に、前記データ領域の先頭アドレスに前記先頭の分割データを書き込むことを指示するフレームを前記ＰＬＣに伝送する
ことを特徴とするデータ設定装置。
【請求項２】
前記データ設定手段は、前記ＰＬＣの稼働中に前記変数の書き換えを行う
ことを特徴とする請求項１に記載のデータ設定装置。
【請求項３】
前記変数は、ｎｕｌｌコードで終端される文字列型の変数である
ことを特徴とする請求項１または２に記載のデータ設定装置。
【請求項４】
前記ネットワークは産業用ネットワークであり、前記フレームの伝送に用いられるプロトコルはフラグメンテーションの仕組みをもたないプロトコルである
ことを特徴とする請求項１〜３のうちいずれか１項に記載のデータ設定装置。
【請求項５】
ＰＬＣに設定されている変数を外部のコンピュータからネットワークを介して書き換えるためのデータ設定方法であって、
コンピュータが、書き換え対象となる変数、当該変数のデータ領域の先頭アドレスからのオフセット、及び、前記オフセットで指定された位置に書き込むデータを少なくとも指示するフレームを生成し、当該フレームをＰＬＣに伝送することによって、前記ＰＬＣに当該変数の書き換えを行わしめる方法であり、
書き換え対象となる変数が、所定の終端コードで終端される可変長のデータ型の変数であり、かつ、前記変数に書き込むべきデータの全体サイズが１つのフレームで伝送可能な最大サイズを超えている場合に、
前記コンピュータが、
前記書き込むべきデータを前記最大サイズ以下の複数の分割データに分割するとともに、各分割データのオフセットを計算するステップと、
前記データ領域の先頭アドレスに前記所定の終端コードを書き込むことを指示するフレームを前記ＰＬＣに伝送する第１書込ステップと、
前記第１書込ステップの後に、先頭の分割データ以外の分割データのそれぞれについて、前記データ領域の先頭アドレスから対応するオフセットの位置に前記分割データを書き込むことを指示するフレームを前記ＰＬＣに伝送する第２書込ステップと、
前記第２書込ステップの後に、前記データ領域の先頭アドレスに前記先頭の分割データを書き込むことを指示するフレームを前記ＰＬＣに伝送する第３書込ステップと、
を実行することを特徴とするデータ設定方法。
【請求項６】
請求項５に記載のデータ設定方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを記憶していることを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＬＣに設定されている変数をネットワークを介して書き換えるための技術に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）においては、各種生産設備の制御やデータ収集を行う複数のスレーブ装置と、それらのスレーブ装置を集中管理するマスター装置（ＰＬＣ：Programmable Logic Controller）とを制御系ネットワーク（フィールドネットワーク）で接続
して構成される産業用ネットワークシステムにより、生産設備の制御が行われる。また、各生産ラインあるいは生産拠点に設置されたＰＬＣには情報系ネットワークを介して上位のコンピュータに接続されており、システム管理者やエンジニアはこのコンピュータを用いて各々のシステムの状態監視やメンテナンスなどを行うことが可能になっている。
【０００３】
一般なＰＬＣでは、ラダープログラムなどで利用される情報が設定変数としてメモリ内に格納されており、外部のコンピュータからこれらの設定変数を書き換えることで、ＰＬＣの動作を変更したり修正（デバッグ）したりできる仕様になっている。設定変数のデータ型には、ＩＮＴ型（整数型）、ＲＥＡＬ型（実数型）のように固定長のものと、ＳＴＲＩＮＧ型（文字列型）のように可変長のものとがある。従来のＰＬＣでは、ＳＴＲＩＮＧ型などの可変長データは、その上限サイズが比較的小さい値（例えば２５６バイト）に制限されていた。
【０００４】
このように上限サイズが決められていた理由の一つに、産業用ネットワークにおける最大フレーム長（一回のデータ伝送で送信可能なフレームのサイズ）からの制約が挙げられる。産業用ネットワークには様々な規格が存在するが、例えば制御系ネットワークの代表であるＤｅｖｉｃｅＮｅｔやＣｏｍｐｏＮｅｔなどでは、最大フレーム長が５００バイト程度とかなり小さい。この制限のなかで外部コンピュータから設定変数を読み出したり書き換えたりしなければならないため、上記のように２５６バイト程度に抑える必要があったのである。
【０００５】
従来は２５６バイト超の変数をＰＬＣで扱うことがそもそも想定されていなかったので、上記のような制限が問題とされることは殆ど無かった。しかしながら、近年のＰＬＣの高機能化にともない、例えば数Ｋバイト〜数Ｍバイトの設定変数をＰＬＣ側に持たせられるようにし、より高度な処理や柔軟な処理を実現したい、というニーズが出始めてきている。とはいえ、ＰＬＣ側の拡張は比較的容易であるものの、ネットワークの規格である最大フレーム長を拡張することは実際上難しい。したがって、大きなサイズのデータを既存の産業用ネットワークの枠組みの中で送受信するための仕組みが必要となる。
【０００６】
一般的なＴＣＰ／ＩＰ通信においては、ＩＰパケットのサイズがＭＴＵ（Maximum Transmission Unit）を超えている場合に、複数のパケットに分割して送信し、受信側でバラ
バラに受け取ったパケットをヘッダ情報を基につなぎ合わせて元のパケットを復元する、という仕組み（ＩＰフラグメンテーション）が備わっている（例えば特許文献１参照）。しかしながら、このようなフラグメンテーションの仕組みは、産業用ネットワークで一般に用いられるプロトコル（例えばＣＩＰ（Common Industrial Protocol））には用意されていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−３１３６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
最大フレーム長よりも大きいサイズの変数を外部コンピュータから書き換えるとなれば、データを複数のフレームに分けて伝送する方法を採らざるを得ない。この場合に、複数回に分けて受信したデータをＰＬＣ側でつなぎ合わせて元のデータを復元した後、メモリ内の変数を上書きする、という手順をとることができれば安全であるが、産業用ネットワークのプロトコルの上ではそのような手順を実装することが難しい。産業用ネットワークのプロトコルはリアルタイム性及び伝送効率を重視した設計になっており、ＴＣＰ／ＩＰで言うところのセッション管理のような仕組みをもたないため、分割したデータすべてをＰＬＣ側で間違いなく受け取ったかどうかを判断したり保証したりすることができないからである。
【０００９】
そこで、本発明者は、分割したデータをオフセット（変数の先頭からのアドレス）とともにＰＬＣに送信し、ＰＬＣ側ではデータを受信するたびに逐次メモリ内の変数領域に書き込んでいく、という手順を試みた。この手順の一例を図５に示す。図５（Ａ）はＰＬＣに書き込むデータを示し、（Ｂ）はコンピュータから送信するフレームとＰＬＣのメモリの状態を時系列に示している。ここでは、変数「ａｂｃ」に対し「ＡＢＣＤＥＦＧ」という文字列を設定する手順を例示している。１つのフレームで伝送できるデータサイズは５バイトと仮定する。また、ＰＬＣのメモリには変数ａｂｃのデータ領域として１０バイトが割り当てられており、初期状態では、「１２３４５６」という文字列が格納されているものとする。
【００１０】
図５（Ａ）に示すように、書き込むデータはＳＴＲＩＮＧ型のデータであり、「Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ」それぞれの文字コード「４１，４２，４３，４４，４５，４６，４７」と終端文字ｎｕｌｌのコード「００」の８バイトで構成される。１つのフレームで５バイトしか伝送できないので２回に分けて伝送する。まず１フレーム目では、先頭から５バイトのデータ（「ＡＢＣＤＥ」の５文字分のコード）がオフセット「０」とともに伝送される。ＰＬＣは、このフレームを受け取ると、変数ａｂｃのオフセット「０」のアドレスに「ＡＢＣＤＥ」の文字コードを書き込む。２フレーム目では、残りの３バイトのデータ（「ＦＧ」の文字コードと終端文字のコード）がオフセット「５」とともに伝送される。ＰＬＣは、このフレームを受け取ると、変数ａｂｃのオフセット「５」のアドレスに「ＦＧ」の文字コードと終端文字のコードを書き込む。これにより、ＰＬＣのメモリ内の設定変数の書き換えが完了する。
【００１１】
図５の手順はシンプルであり産業用ネットワークへの実装が容易という利点がある。しかしながら、この手順の場合には、次のような問題が発生するおそれがある。図５（Ｂ）をみると分かるように、１フレーム目のデータが書き込まれてから２フレーム目のデータが書き込まれるまでの過渡期間において、ＰＬＣの変数ａｂｃのデータ領域が「ＡＢＣＤＥ６」という状態になる。この文字列は不正なデータであるものの、ＳＴＲＩＮＧ型のデータ構造に則っているため、ＰＬＣ側ではこのデータが正常なのか不正なのかを判別することができない。もし、この過渡期間のあいだに、ＰＬＣ上で動作する制御プログラムが変数ａｂｃを参照する処理が発生した場合には、ＰＬＣの誤動作（意図しない動作）を引き起こすおそれがある。生産現場においてはＰＬＣの稼働を停めずに設定変数の変更や修正をオンラインで行わなければならない場面も少なくない。したがって、ＰＬＣが書き込み途中のデータを使って誤動作を起こすリスクは最小限にしなければならない。なおここでは、ＳＴＲＩＮＧ型のデータを例に挙げたが、所定の終端コードで終端されている可変長のデータをＰＬＣに書き込む場合には、同様の問題が発生し得る。
【００１２】
本発明は上記課題を解決するためになされたものであって、ＰＬＣに対する可変長データの書き込みを簡単かつ安全に実行するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明では、ＰＬＣのデータ領域の先頭に終端コードをまず書き込み、そして先頭以外のデータを順次書き込んだ後で、最後に先頭のデータを書き込む、という手順を採用することで、過渡期間のあいだはデータ領域の中が空データと認識されるようにしたことを要旨とする。
【００１４】
具体的には、本発明に係るデータ設定装置は、ＰＬＣに設定されている変数をネットワークを介して書き換えるためのデータ設定装置であって、書き換え対象となる変数、当該変数のデータ領域の先頭アドレスからのオフセット、及び、前記オフセットで指定された位置に書き込むデータを少なくとも指示するフレームを生成し、当該フレームをＰＬＣに伝送することによって、前記ＰＬＣに当該変数の書き換えを行わしめる、データ設定手段を有しており、書き換え対象となる変数が、所定の終端コードで終端される可変長のデータ型の変数であり、かつ、前記変数に書き込むべきデータの全体サイズが１つのフレームで伝送可能な最大サイズを超えている場合に、前記データ設定手段は、前記書き込むべきデータを前記最大サイズ以下の複数の分割データに分割するとともに、各分割データのオフセットを計算し、最初に、前記データ領域の先頭アドレスに前記所定の終端コードを書き込むことを指示するフレームを前記ＰＬＣに伝送し、次に、先頭の分割データ以外の分割データのそれぞれについて、前記データ領域の先頭アドレスから対応するオフセットの位置に前記分割データを書き込むことを指示するフレームを前記ＰＬＣに伝送し、最後に、前記データ領域の先頭アドレスに前記先頭の分割データを書き込むことを指示するフレームを前記ＰＬＣに伝送することを特徴とするデータ設定装置である。
【００１５】
この構成によれば、データの書き込みの過渡期間、すなわち、データの書き込みを開始してから最後の分割データの書き込みが完了するまでのあいだは、データ領域の先頭アドレスに終端データが設定された状態が維持される。したがって、もし過渡期間のあいだにＰＬＣが当該変数を参照したとしても、ＰＬＣは当該変数が空（データが設定されていない）であると認識する。変数が空の場合の動作はＰＬＣの設計しだいであるが、少なくとも、不正なデータに起因する異常動作（意図しない動作）は未然に防止することができる。
【００１６】
このようにデータ書き換えの過渡期間における異常動作を予防したことから、前記データ設定手段は、前記ＰＬＣの稼働中に前記変数の書き換えを安全に行うことができる。ここで、前記変数は、ｎｕｌｌコードで終端される文字列型の変数であるとよい。また、前記ネットワークが産業用ネットワークであり、前記フレームの伝送に用いられるプロトコルがフラグメンテーションの仕組みをもたないプロトコルであるとよい。産業用ネットワークは１つのフレームで伝送可能な最大サイズが比較的小さいので、本発明のような分割伝送による書き換えを好適に適用できるからである。
【００１７】
なお、本発明は、上記手段の少なくとも一部を含むデータ設定装置として特定することもできるし、データ設定装置とＰＬＣとを有するデータ設定システムとして特定することもできる。また本発明は、上記処理の少なくとも一部をコンピュータが実行するデータ設定方法として特定することもできるし、上記処理の少なくとも一部をコンピュータに実行させるプログラムや、そのプログラムを記録したコンピュータ読取可能な記憶媒体として特定することもできる。上記処理や手段の各々は、技術的な矛盾が生じない限りにおいて、自由に組み合わせることが可能である。
【発明の効果】
【００１８】
本発明によれば、ＰＬＣに対する可変長データの書き込みを簡単かつ安全に実行することができる。
【図面の簡単な説明】
【００１９】
【図１】産業用ネットワークシステムの構成例を示す図。
【図２】ＰＬＣ設定変数の読み込み／書き込みを指示する操作画面の一例を示す図。
【図３】本発明の実施形態におけるＳＴＲＩＮＧ型変数の書き換え手順のフローチャート。
【図４】本発明の実施形態におけるＳＴＲＩＮＧ型変数の書き換え手順を説明するための図。
【図５】課題を説明するための図。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつ、本発明の好適な実施の形態を説明する。以下の実施形態では、ＥｔｈｅｒＮｅｔ／ＩＰで接続されたコンピュータ（データ設定装置）とＰＬＣの間でＣＩＰのメッセージ通信を使ってＳＴＲＩＮＧ型変数を書き換える例を挙げるが、本発明の適用範囲はこれに限られない。所定の終端コードで終端されている可変長のデータ型の変数をネットワーク経由で書き換える目的であれば、ネットワーク、プロトコル、データ型などを選ばず、本発明を好ましく適用することができる。ただし、産業用ネットワークのような特殊な分野のネットワークは、送信可能なフレームサイズの上限が小さく、またセッション管理やフラグメンテーションなどの仕組みをもたないため、本発明を特に好ましく適用できる対象といえる。
【００２１】
（システムの構成）
まず、図１を用いて、産業用ネットワークシステムの構成例を説明する。
【００２２】
図１の産業用ネットワークシステムは、ＰＬＣ（Programmable Logic Controller）２
００と複数のスレーブ装置３００とから構成されている。ＰＬＣ２００とスレーブ装置３００の間は、制御系ネットワークＮＷ２または内部バスにより接続されている。スレーブ装置３００には、電源ユニット，モータユニット，カウンタユニット，画像ユニット，通信ユニット，Ｉ／Ｏユニット等がある。このような産業用ネットワークシステムは、工場の生産ライン等において、各種の生産設備（モータ、ロボット、センサなど）の制御やデータ収集などを行うために用いられる。
【００２３】
ＰＬＣ２００は、情報系ネットワークＮＷ１を介してコンピュータ１００に接続されている。このコンピュータ１００は、例えばシステム管理者が各拠点のシステムの状態を監視したり、エンジニアがオンラインでＰＬＣ２００やスレーブ装置３００のメンテナンスを行うためなどに用いられる。コンピュータ１００としては、表示装置１０１、入力装置１０２などを具備する汎用のパーソナルコンピュータを用いることができ、後述するＰＬＣ設定変数の読み込み／書き込みの機能（データ設定手段）などは、コンピュータ１００内の記憶装置に格納されたプログラムをＣＰＵが実行することにより実現される。
【００２４】
（ＰＬＣ設定変数の読み込み／書き込み）
ＰＬＣ２００のメモリには、ラダープログラムなどの制御プログラムで利用される各種の情報が設定変数として格納されており、コンピュータ１００からこれらの設定変数を書き込みあるいは書き換えることで、ＰＬＣ２００やスレーブ装置３００の動作を変更したり修正（デバッグ）したりすることができる。
【００２５】
設定変数のデータ型には、例えば、ＢＯＯＬ型（論理型）、ＩＮＴ型（整数型）、ＲＥＡＬ型（実数型）、ＢＹＴＥ型、ＷＯＲＤ型、ＳＴＲＩＮＧ型（文字列型）などがある。
ＢＯＯＬ型、ＩＮＴ型、ＲＥＡＬ型、ＢＹＴＥ型、ＷＯＲＤ型はいずれも固定長であり、それぞれ１バイト、２バイト、４バイト、１バイト、２バイトのデータサイズをとる。一方、ＳＴＲＩＮＧ型は可変長であり、最大で１９８６バイトのサイズをとる。ＳＴＲＩＮＧ型の変数には、ｎｕｌｌ文字（終端コード）で終端された文字列が格納され、例えば日本語のような３バイト文字であれば６６０文字程度、中国語のような４バイト文字であれば５００文字程度のデータを設定することができる。なお、この仕様は一例であり、数Ｋバイト〜数Ｍバイトといったデータサイズの可変長データ型を設けることも可能である。
【００２６】
図２は、コンピュータ１００で動作するアプリケーションプログラム（ツール）が提供する、ＰＬＣ設定変数の読み込み／書き込み機能の操作画面の一例を示している。例えば、対象とするＰＬＣを指定し同機能を起動すると、図２の操作画面２０が表示装置１０１に表示される。ユーザがボックス２１に変数名を入力し、読み込みボタン２３を押すと、コンピュータ１００がＰＬＣ２００から当該変数の現在の値を取得し、ボックス２２に表示する。図２の上段は、変数「ａｂｃ」の現在の値「１２３４５６」を確認している例を示している。変数の値をＰＬＣ２００に書き込む場合には、ボックス２１に変数名、ボックス２２に書き込むデータをそれぞれ入力し、書き込みボタン２４を押す。これにより、コンピュータ１００から変数の書き込みリクエストがＰＬＣ２００に送られ、ＰＬＣ２００においてメモリのデータが書き換えられる。図２の下段は、変数「ａｂｃ」の値を「ＡＢＣＤＥＦＧ」に書き換える例を示している。
【００２７】
本実施形態のコンピュータ１００では、ＣＩＰが提供するサービスの一つである変数書き込みリクエストを利用して、ＰＬＣ２００への変数の書き込みが行われる。このリクエストのメッセージは、サービスＩＤ、クラスＩＤ、変数名、オフセット、書き込むデータなどで構成される。「サービスＩＤ」と「クラスＩＤ」には変数書き込み処理を指定する。そして「変数名」には書き込み対象となる変数の名称を、「オフセット」には当該変数のデータ領域の先頭アドレスから何バイト目にデータを書き込むかを、それぞれ指定する。例えば、変数名「ａｂｃ」、オフセット「４」、データ「ＥＦＧ」と指定したリクエストメッセージをＰＬＣ２００に送信することで、ＰＬＣ２００のメモリ内の変数「ａｂｃ」のデータ領域の先頭アドレスから４バイトの位置に「ＥＦＧ」というデータが書き込まれることとなる。
【００２８】
いずれのデータ型の変数でも、基本的にこの変数書き込みリクエストを利用してＰＬＣ２００のメモリの書き換えが可能である。ただし、ＳＴＲＩＮＧ型変数の場合は、書き込むデータのサイズが、１つのフレームで伝送可能な最大サイズを超える可能性があるため、データサイズによっては複数回のリクエストに分けて処理を行う。以下、その場合の手順について詳しく説明する。
【００２９】
（ＳＴＲＩＮＧ型変数の書き換え手順）
図３と図４を参照して、ＳＴＲＩＮＧ型の変数の書き換え手順について説明する。図３のフローチャートは、複数フレームを使ってデータを送信する場合のコンピュータ１００の処理を示している。また図４（Ａ）はＰＬＣ２００に書き込むデータを示し、（Ｂ）はコンピュータ１００から送信するフレームとＰＬＣ２００のメモリの状態を時系列に示している。ここでは、変数「ａｂｃ」に対し「ＡＢＣＤＥＦＧ」という文字列を設定する手順を例示している。図５の例と同じく、１つのフレームで伝送可能な最大サイズは５バイトと仮定し、ＰＬＣ２００のメモリには変数ａｂｃのデータ領域として１０バイトが割り当てられており、初期状態では、「１２３４５６」という文字列が格納されているものとする。
【００３０】
まず、コンピュータ１００は、書き込むべき文字列データのデータ長ｌと、１つのフレームで伝送可能な最大サイズ（フレーム長）ｍを取得するとともに（ステップＳ１０）、
オフセットｉをｌで初期化する（ステップＳ１１）。図４の例では、ｌ＝８バイト、ｍ＝５バイトであり、ｉの初期値は８となる。
【００３１】
そして、コンピュータ１００は、（実際の文字列データを書き込む前に）ＰＬＣ２００の書き換え対象変数のデータ領域の先頭アドレスに終端コード（ｎｕｌｌ）を書き込む(
ステップＳ１２）。具体的には、図４（Ｂ）に示すように、オフセットを「０」、データを「００（ｎｕｌｌ）」とするフレームを生成しＰＬＣ２００に対し送信する。ＰＬＣ２００では、このリクエストに従って、変数ａｂｃのデータ領域の先頭アドレスにｎｕｌｌが書き込まれる。
【００３２】
上記のようにＰＬＣ２００のデータ領域をｎｕｌｌでリセットした後は、文字列データを最大サイズ以下の複数の分割データに分け、後ろの分割データから順番に書き込みが行われる。具体的には、オフセットｉの値をｍずつ小さくするように更新し（但し、ｉ＜ｍの場合は、ｍにｉを代入し、ｉに０を代入する。）（ステップＳ１３）、元の文字列データのｉバイト目からｍバイト分の分割データをデータ領域の先頭からｉバイト目の位置に書き込む（ステップＳ１４）、という処理を全てのデータを書き込むまで繰り返す（ステップＳ１５）。図４（Ｂ）の例では、２フレーム目で、「ＤＥＦＧ」の文字コードとｎｕｌｌコードの５バイト分のデータがオフセット「３」の位置に書き込まれ、３フレーム目で、残りの「ＡＢＣ」の３バイト分の文字コードがオフセット「０」の位置に書き込まれる。
【００３３】
以上述べた書き換え手順によれば、データの書き込みの過渡期間、すなわち、最初にｎｕｌｌを書き込んでから最後の分割データの書き込みが完了するまでのあいだは、データ領域の先頭アドレスにｎｕｌｌが設定された状態が維持される。したがって、もし過渡期間のあいだにＰＬＣ２００が当該変数を参照したとしても、ＰＬＣ２００は当該変数が空（データが設定されていない）であると認識する。例えば、ＰＬＣ２００の制御プログラムの動作を、「変数が空の場合は、異常と判断し、エラーメッセージを出力する」とか、「変数が空の場合は、デフォルト値を用いて処理を実行する」のように設計しておくことで、ＰＬＣ２００の異常動作（意図しない動作）を防止することができる。
【００３４】
さらに、このような書き換え手順の採用により、従来よりも大きなサイズの変数をＰＬＣ側に持たせることができるようになったことで、変数の用途が広がり、ＰＬＣの機能拡張を図ることが期待できる。以下、想定される用途をいくつか例示する。
【００３５】
製造物のパッケージに文字列を印字する場合、従来は、画像データ（バイナリデータ）を用いるのが通常であり、製品やロットなどに応じて印字する文字列を変えたいときは、事前に各パターンの画像データを用意しておき、画像のＩＤ等を指定して切り換えていた。もし変数の上限サイズが大きくなれば、印字する文字列そのものを変数として扱うことも可能になる。そうすると、外部のコンピュータやＨＭＩ（Human Machine Interface）
から印字する文字列を変更、追加できるのでメンテナンスが容易になる。また、フォント、文字色、文字サイズなどの条件を指定するといった拡張も可能となる。
【００３６】
ＰＬＣのエラーを外部のコンピュータやＨＭＩに表示する場合、従来は、ＰＬＣから取得したエラー番号を基に、コンピュータあるいはＨＭＩの側でエラーメッセージ（警告文や説明文など）を生成するという方法が通常であった。この方法の場合、コンピュータやＨＭＩの各々にエラー番号とエラーメッセージを対応付けた辞書データを持たせておく必要がある。変数の上限サイズが大きくなれば、エラーメッセージそのものを変数としてＰＬＣ内に持たせることが可能となる。そうすると、コンピュータやＨＭＩに辞書データが不要となるため、柔軟なシステム設計が可能となる。
【００３７】
ＰＬＣに取り付けられたメモリカードに、生産データをテキストファイル形式で保存する場合がある。このとき、形式、ロット番号などの文字列は変数としてＰＬＣに事前に設定される。同様に、メモリカードにエラーログを記録する場合もあり、ログに記述するエラーメッセージ等も変数としてＰＬＣに設定される。その反対として、レシピ情報などのテキストファイルをメモリカードから読み出し、ＰＬＣに設定する場合もある。中国語などのマルチバイト文字（４バイト）を取り扱うことを考えると、従来のサイズ（例えば２５６バイト）は決して充分なサイズとはいえないが、上記実施形態のように数Ｋバイトの文字列を扱うことができればマルチバイト文字への対応も容易である。
【００３８】
なお、上記実施形態は本発明の一具体例を示したものにすぎず、本発明の範囲をそれらの構成のみに限定する趣旨のものではない。例えば、上記実施形態では、後ろの分割データから順に書き込みを行ったが、少なくとも先頭の分割データの書き込みが最後に行われればよく、先頭以外の分割データの書き込み順は任意である。また上記実施形態では、データ設定装置の一例としてパーソナルコンピュータを例示したが、ＨＭＩや他のＰＬＣ内のコンピュータをデータ設定装置として機能させることももちろん可能である。
【符号の説明】
【００３９】
１００：コンピュータ
１０１：表示装置
１０２：入力装置
２００：ＰＬＣ
３００：スレーブ装置
【図１】
2013152570.tif 000003
【図２】
2013152570.tif 000004
【図３】
2013152570.tif 000005
【図４】
2013152570.tif 000006
【図５】
2013152570.tif 000007