(57)【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラと、前記プログラマブルロジックコントローラに接続された周辺機器とを備え、
前記プログラマブルロジックコントローラは、
外部機器との通信を可能とする通信部と、
制御プログラムを実行し、かつ前記通信部で受信された要求による処理を実行する制御処理部と、
前記制御プログラムの実行による処理にて扱われる演算データが格納される複数のデータ領域を有するデータ格納部と、
前記制御処理部の動作について設定されたパラメータファイルが格納されるパラメータ格納部と、
を備え、
前記周辺機器は、
前記制御プログラムでの制御の対象である変数が入力される入力操作にしたがって前記制御プログラムを作成するプログラミング処理部と、
前記要求による書き込みが可能とされた第１の領域あるいは前記要求による書き込みが禁止された第２の領域とするデータ領域の先頭となる前記変数と前記データ領域の最後となる前記変数との入力によって前記データ領域を指定する入力操作に基づいて、前記データ格納部に前記第１の領域と前記第２の領域とを画定させる設定処理部と、
を備え、
前記設定処理部は、入力された前記変数を、前記制御処理部による解釈が可能なパラメータへ変換し、変換によって得られた前記パラメータを前記パラメータ格納部へ格納させることによって前記第１の領域と前記第２の領域とを画定させることを特徴とするプログラマブルロジックコントローラシステム。
【請求項２】
前記周辺機器は、
前記データ領域を指定する前記入力操作のための画面を表示する表示部を備えることを特徴とする請求項１に記載のプログラマブルロジックコントローラシステム。
【請求項３】
前記プログラマブルロジックコントローラは、
画定された前記第１の領域または画定された前記第２の領域である前記データ領域の範囲を基に、前記要求による書き込み処理の許否を判断することにより、前記データ格納部への書き込みを管理する書き込み管理部を備えることを特徴とする請求項１または２に記載のプログラマブルロジックコントローラシステム。
【請求項４】
前記パラメータファイルには、前記範囲の情報である前記パラメータが含まれ、
前記書き込み管理部は、前記パラメータ格納部から読み出された前記パラメータを基に前記許否を判断することを特徴とする請求項３に記載のプログラマブルロジックコントローラシステム。
【請求項５】
前記設定処理部は、前記第２の領域とするデータ領域の指定を含む前記入力操作に基づいて、前記第２の領域を設定する処理を実行することで、前記第２の領域と、前記第２の領域以外の領域である前記第１の領域とを画定させることを特徴とする請求項１から４のいずれか１つに記載のプログラマブルロジックコントローラシステム。
【請求項６】
前記変数は、前記制御プログラムにおける構成要素の種別を表す記号と、前記構成要素の識別のための数字との組み合わせであって、
前記設定処理部は、前記記号と、前記第１の領域あるいは前記第２の領域の範囲の先頭となる前記変数を表す前記数字と、前記範囲の最後となる前記変数を表す前記数字とが入力されることにより、前記第１の領域と前記第２の領域とを画定させることを特徴とする請求項１から５のいずれか１つに記載のプログラマブルロジックコントローラシステム。
【請求項７】
プログラマブルロジックコントローラで実行される制御プログラムでの制御の対象である変数が入力されることに基づいた前記制御プログラムの作成をコンピュータに実行させるエンジニアリングツールプログラムであって、
外部機器からの要求による書き込みが可能とされた第１の領域あるいは前記要求による書き込みが禁止された第２の領域とするデータ領域の先頭となる前記変数と前記データ領域の最後となる前記変数との入力によって前記データ領域を指定する入力操作のための画面を表示するステップである第１のステップと、
前記制御プログラムの実行による処理にて扱われる演算データが格納される複数のデータ領域に、前記第１の領域と前記第２の領域とを、前記入力操作に基づいて画定させるステップである第２のステップと、
を前記コンピュータに実行させ、
前記第２のステップでは、入力された前記変数を、前記プログラマブルロジックコントローラによる解釈が可能なパラメータへ変換して、変換によって得られた前記パラメータを格納させることによって前記第１の領域と前記第２の領域とを画定させることを特徴とするエンジニアリングツールプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラと周辺機器とを備えるプログラマブルロジックコントローラシステムおよびエンジニアリングツールプログラムに関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（Programmable  Logic  Controller，ＰＬＣ）は、外部機器である表示器、コンピュータ、あるいは他のＰＬＣと互いに通信可能に接続されることで、外部機器からの書き込み要求のコマンドを受信可能とされる。ＰＬＣは、外部機器による書き込み要求に従い、演算データが格納されているデータ領域への書き込み処理を実行することがある。ＰＬＣは、データ領域に格納されている重要な演算データを、悪意ある第三者による改ざん、あるいは誤操作による書き換えから保護する必要がある。【０００３】
特許文献１には、演算データの格納のためのメモリに、外部機器からの要求によるデータの書き込みを禁止する領域を設定するＰＬＣの技術が開示されている。ＰＬＣは、書き込み禁止の領域に格納されている演算データを保護可能とする。特許文献１の技術によると、書き込みが禁止される領域は、メモリのアドレスにより指定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１７９９９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
外部機器からの通信による書き込みが禁止される領域を、書き込みが可能とされる領域から画定するための設定は、設定を行うユーザにとって簡易かつ分かり易いことが望まれる。【０００６】
本発明は、上記に鑑みてなされたものであって、簡易かつ分かり易い設定により、書き込みが禁止される領域を画定可能とするプログラマブルロジックコントローラシステムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかるプログラマブルロジックコントローラシステムは、プログラマブルロジックコントローラと、プログラマブルロジックコントローラに接続された周辺機器とを備える。プログラマブルロジックコントローラは、外部機器との通信を可能とする通信部と、制御プログラムを実行し、かつ通信部で受信された要求による処理を実行する制御処理部と、制御プログラムの実行による処理にて扱われる演算データが格納される複数のデータ領域を有するデータ格納部と、制御処理部の動作について設定されたパラメータファイルが格納されるパラメータ格納部と、を備える。周辺機器は、制御プログラムでの制御の対象である変数が入力される入力操作にしたがって制御プログラムを作成するプログラミング処理部と、要求による書き込みが可能とされた第１の領域あるいは要求による書き込みが禁止された第２の領域とするデータ領域の先頭となる変数とデータ領域の最後となる変数との入力によってデータ領域を指定する入力操作に基づいて、データ格納部に第１の領域と第２の領域とを画定させる設定処理部と、を備える。設定処理部は、入力された変数を、制御処理部による解釈が可能なパラメータへ変換し、変換によって得られたパラメータをパラメータ格納部へ格納させることによって第１の領域と第２の領域とを画定させる。
【発明の効果】
【０００８】
本発明にかかるプログラマブルロジックコントローラシステムは、簡易かつ分かり易い設定により、書き込みが禁止される領域を画定できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１にかかるＰＬＣシステムを示す図
【図２】図１に示すＰＬＣのハードウェア構成を示すブロック図
【図３】図１に示すＰＬＣの機能構成を示すブロック図
【図４】図１に示すコンピュータの機能構成を示すブロック図
【図５】図１に示すコンピュータのハードウェア構成を示すブロック図
【図６】図４に示す設定処理部での第２の領域の設定のための画面の一例を示す図
【図７】図３に示す書き込み管理部による判断について説明する図
【図８】実施の形態１での外部機器からの書き込み要求によるＰＬＣの動作の手順を示すフローチャート
【図９】図１に示すＰＬＣと、ＰＬＣに接続された外部機器との例を示す図
【図１０】本発明の実施の形態２にかかるＰＬＣシステムに含まれるＰＬＣを示す図
【図１１】本発明の実施の形態３にかかるＰＬＣシステムに含まれるＰＬＣを示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかるプログラマブルロジックコントローラシステムおよびエンジニアリングツールプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、本発明の実施の形態１にかかるＰＬＣシステム６を示す図である。ＰＬＣシステム６は、ＰＬＣ１と、ＰＬＣ１に接続された周辺機器であるコンピュータ５とを備える。コンピュータ５は、エンジニアリングツールプログラムがインストールされたパーソナルコンピュータである。ネットワークケーブル７は、ＰＬＣ１とコンピュータ５とを通信可能に接続する。ネットワークケーブル７の１つの例は、ＬＡＮ（Local  Area  Network）ケーブルである。コンピュータ５は、ＰＬＣ１で実行される制御プログラムを含むプロジェクトデータを作成して、作成されたプロジェクトデータをＰＬＣ１へ送信する。
【００１２】
ＰＬＣ１は、制御プログラムを実行することにより、制御対象である機械の駆動を制御する。機械は、製造装置、加工装置あるいは設備装置であって、ＦＡ（Factory  Automation）システムに使用されるいずれの装置であっても良い。ＦＡシステムは、工場における生産工程の自動化を図るシステムである。また、ＰＬＣ１は、外部機器と互いに通信可能に接続されることで、外部機器からの書き込み要求のコマンドを受信可能とされる。図１では、外部機器と、制御対象である機械との図示を省略している。また、外部機器からの書き込み要求のコマンドを受信した場合におけるＰＬＣ１の動作については後述する。
【００１３】
図２は、図１に示すＰＬＣ１のハードウェア構成を示すブロック図である。ＰＬＣ１は、ＣＰＵ（Central  Processing  Unit）２１、メモリ２２、通信インタフェース（Interface，Ｉ／Ｆ）２３、バスインタフェース（Ｉ／Ｆ）２４および記憶部２５を備える。ＰＬＣ１の各部は、内部バスＢ１を介して接続されている。
【００１４】
通信Ｉ／Ｆ２３は、外部機器、および図１に示すコンピュータ５との接続インタフェースである。バスＩ／Ｆ２４は、内部バスＢ１と拡張バスとを連絡するバスブリッジ回路である。制御対象である機械は、拡張バスに接続される。図２では、拡張バスの図示を省略している。
【００１５】
外部記憶装置である記憶部２５は、コンピュータ５から受信されたプロジェクトデータ２７を格納する。記憶部２５は、ＳＳＤ（Solid  State  Drive）あるいはＨＤＤ（Hard  Disk  Drive）である。プロジェクトデータ２７は、制御プログラム２７ａと、制御パラメータ２７ｂと、メモリ情報２７ｃと、接続情報２７ｄとを含む。
【００１６】
制御パラメータ２７ｂは、制御プログラム２７ａの実行において参照されるパラメータである。メモリ情報２７ｃは、メモリ２２内の作業領域２６における演算データごとのデータ領域についての規定が記述された情報である。演算データは、制御プログラム２７ａによる演算処理にて扱われるデータであって、制御対象である機械から出力されるデータと、機械の内部データと、ＰＬＣ１の内部データとを含む。接続情報２７ｄは、ＰＬＣ１と機械との接続関係を規定するための情報である。
【００１７】
実施の形態１では、制御プログラム２７ａは、ラダー言語で記述されたラダープログラムである。制御プログラム２７ａは、ラダー言語以外の言語で記述されたプログラムであっても良く、構造化ラダー言語で記述されたプログラム、あるいはファンクションブロックダイアグラム言語で記述されたプログラムであっても良い。
【００１８】
メモリ２２は、ＲＡＭ（Random  Access  Memory）である。制御プログラム２７ａは、メモリ２２にロードされる。ＣＰＵ２１は、メモリ２２内のプログラム格納領域にて制御プログラム２７ａを展開して各種処理を実行する。メモリ２２は、各種処理の実行におけるデータ格納領域である作業領域２６を含む。作業領域２６には、メモリ情報２７ｃで規定される複数のデータ領域が確保される。各データ領域は、演算処理にて扱われる演算データを格納する。
【００１９】
図３は、図１に示すＰＬＣ１の機能構成を示すブロック図である。図３には、外部機器からの書き込み要求の処理に関係する機能部を示している。ＰＬＣ１は、外部機器との通信を可能とする機能部である通信部３１と、制御処理部であるコマンド処理部３５とを備える。コマンド処理部３５は、図２に示す制御プログラム２７ａを実行し、かつ通信部３１で受信された要求による処理を実行する機能部である。
【００２０】
また、ＰＬＣ１は、制御プログラム２７ａによる処理にて扱われる演算データが格納されるデータ格納部４１と、コマンド処理部３５の動作について設定されたパラメータファイルが格納されるパラメータ格納部４２とを備える。パラメータ格納部４２には、コンピュータ５で作成されたパラメータファイルが格納される。１つの例では、パラメータファイルには、ＰＬＣ１の動作モードの指定のためのパラメータが含まれる。また、パラメータファイルには、データ格納部４１のうち、外部機器からの要求によるデータの書き込みが禁止された領域を示すパラメータが含まれる。データ格納部４１の機能は、図２に示すメモリ２２を使用して実現される。パラメータ格納部４２の機能は、図２に示す記憶部２５を使用して実現される。
【００２１】
通信部３１は、ＰＬＣ１と外部機器との間の通信のためのネットワークインタフェースを含む。実施の形態１では、ネットワークインタフェースはＵＳＢ（Universal  Serial  Bus）である。通信部３１は、外部機器からの書き込み要求のコマンドを受信する。図２に示す通信Ｉ／Ｆ２３は、通信部３１の機能を備える。
【００２２】
コマンド受信部３２は、通信部３１で受信されたコマンドの受信処理を実行して、コマンドバッファ３４へコマンドを格納する。コマンドバッファ３４は、コマンド受信部３２からのコマンドを一時格納し、先入れ先出し（First−In  First−Out，ＦＩＦＯ）方式によりコマンド処理部３５へコマンドを送り出す。
【００２３】
コマンド処理部３５は、コマンドバッファ３４からのコマンドを逐次処理する。コマンド送信部３３は、コマンド処理部３５でのコマンド処理の結果についての応答フレームを作成して、応答フレームの送信処理を実行する。通信部３１は、外部機器へ応答フレームを送信する。コマンド受信部３２、コマンド送信部３３およびコマンド処理部３５の機能は、図２に示すＣＰＵ２１を使用して実現される。
【００２４】
書き込み管理部３７は、コマンド処理部３５へ入力されたコマンドを解析する。書き込み管理部３７は、パラメータ格納部４２から読み出されたパラメータを基に、書き込み要求のコマンドの実行による書き込みの許否を決定することにより、データ格納部４１への書き込みを管理する。書き込みの許可を書き込み管理部３７が決定した場合に、コマンド処理部３５は、コマンドを実行する。データ書き込み部３６は、コマンド処理部３５からの指示にしたがって、データ格納部４１への書き込み処理を実行する。また、書き込みの拒否を書き込み管理部３７が決定した場合に、コマンド処理部３５は、コマンドの実行を中止して、エラー処理を実行する。データ書き込み部３６および書き込み管理部３７の機能は、図２に示すＣＰＵ２１を使用して実現される。
【００２５】
パラメータ解析部３９は、パラメータ格納部４２から読み出されたパラメータを解析して、パラメータの整合性を確認する。パラメータ管理部３８は、パラメータ解析部３９での解析を経たパラメータを保持して、保持されたパラメータをコマンド処理部３５と書き込み管理部３７とへ提供する。書き込み管理部３７は、データの書き込みが禁止された領域の設定についてのパラメータを、パラメータ管理部３８から取得する。パラメータ解析部３９の機能は、図２に示すＣＰＵ２１を使用して実現される。パラメータ管理部３８の機能は、図２に示すメモリ２２を使用して実現される。
【００２６】
図４は、図１に示すコンピュータ５の機能構成を示すブロック図である。コンピュータ５は、エンジニアリングツール部５０を備える。エンジニアリングツール部５０は、コンピュータ５のハードウェアにてエンジニアリングツールプログラムを実行することで実現される。
【００２７】
エンジニアリングツール部５０は、制御プログラム２７ａでの制御の対象である変数を含めた入力操作に基づいて、図３に示すデータ格納部４１に、外部機器からの要求による書き込みが可能とされた第１の領域と、外部機器からの要求による書き込みが禁止された第２の領域とを画定させる機能部である設定処理部５１を備える。実施の形態１では、設定処理部５１は、第２の領域の指定を含む入力操作に基づいて、第２の領域を設定する処理を実行する。設定処理部５１は、第２の領域を設定することで、第２の領域と、第２の領域以外の領域である第１の領域を画定させる。
【００２８】
また、エンジニアリングツール部５０は、図２に示すプロジェクトデータ２７を作成する機能部であるプログラミング処理部５２と、ユーザによる入力操作を受け付ける機能部である入力部５４と、エンジニアリングツール部５０での作業についての情報を表示する機能部である表示部５５とを備える。入力部５４は、プログラミング処理部５２でのプロジェクトデータ２７の作成のための入力操作と、設定処理部５１による第２の領域の設定のための入力操作を受け付ける。制御部５３は、エンジニアリングツール部５０の各部を制御する機能部である。
【００２９】
図５は、図１に示すコンピュータ５のハードウェア構成を示すブロック図である。コンピュータ５は、各種処理を実行するＣＰＵ（Central  Processing  Unit）６１と、プログラム格納領域およびデータ格納領域を含むＲＡＭ６２と、不揮発性メモリであるＲＯＭ（Read  Only  Memory）６３と、ＰＬＣ１との接続インタフェースである通信インタフェース（Ｉ／Ｆ）６４とを備える。また、コンピュータ５は、データを記憶する外部記憶装置である記憶装置６５と、ユーザによる入力操作を受け付ける入力デバイス６６と、各種画面にて情報を表示するディスプレイ６７とを備える。図５に示すコンピュータ５の各部は、バス６８を介して相互に接続されている。記憶装置６５は、ＨＤＤあるいはＳＳＤである。入力デバイス６６は、ポインティングデバイスおよびキーボードである。ディスプレイ６７の１つの例は、液晶パネルを備える液晶ディスプレイである。
【００３０】
ＣＰＵ６１は、ＲＯＭ６３および記憶装置６５に格納されているプログラムを実行する。ＲＯＭ６３には、コンピュータ５の基本となる制御のためのプログラムであるＢＩＯＳ（Basic  Input/Output  System）あるいはＵＥＦＩ（Unified  Extensible  Firmware  Interface）が格納されている。記憶装置６５には、コンピュータ５で実行されるオペレーティングシステムプログラムおよびエンジニアリングツールプログラムが格納されている。
【００３１】
ＲＯＭ６３および記憶装置６５に記憶されているプログラムは、ＲＡＭ６２にロードされる。ＣＰＵ６１は、ＲＡＭ６２内のプログラム格納領域にてプログラムを展開して各種処理を実行する。なお、エンジニアリングツールプログラムは、コンピュータ５にて読み取り可能な記憶媒体に記憶されたものであっても良い。コンピュータ５は、記憶媒体に記憶されたエンジニアリングツールプログラムを記憶装置６５へ格納しても良い。記憶媒体は、フレキシブルディスクである可搬型記憶媒体、あるいは半導体メモリであるフラッシュメモリであっても良い。エンジニアリングツールプログラムは、他のコンピュータあるいはサーバ装置から通信ネットワークを介してコンピュータ５へインストールされても良い。
【００３２】
次に、ＰＬＣシステム６による第２の領域の設定について説明する。図６は、図４に示す設定処理部５１での第２の領域の設定のための画面５６の一例を示す図である。図４に示す表示部５５は、制御プログラム２７ａでの制御の対象である変数を含めた入力操作のための画面５６を表示する。
【００３３】
ここで、第２の領域の設定に使用される変数について説明する。実施の形態１において、図２に示す制御プログラム２７ａであるラダープログラムは、複数の回路ブロックによって構成される。回路ブロックは、接点が直列あるいは並列に接続されたひとかたまりの回路である条件部と、１つ以上のコイルが直列に接続されたひとかたまりの回路である動作部とを組み合わせて構成される。動作部は、条件部の接点が導通されたときに実行される演算処理の内容を表す。
【００３４】
ラダー言語で作成されたプログラムコードは、基本的な構成要素である回路記号および変数を含む。回路記号にはＰＬＣ１での処理を表す接点およびコイルが含まれる。変数は、制御プログラム２７ａ上における制御の対象であって、回路記号で示された処理の対象を表している。変数は、構成要素の種別を表すアルファベットと、構成要素の識別のための数字との組み合わせにより記述される。変数は、図２に示す作業領域２６の各データ領域に対応付けられている。各データ領域には、構成要素ごとにおける演算データが格納される。演算データには、オンとオフとの区別を表現するビットデータと、数値を表現するワードデータとが含まれる。ユーザは、処理の対象ごとに、変数に含まれる数字を任意に割り当てることができる。なお、ラダープログラムのプログラミングにおいて使用される変数、あるいは変数が対応付けられているデータ領域は、「デバイス」と称されることがある。変数が対応付けられているデータ領域に格納される演算データは、「デバイス値」と称されることがある。
【００３５】
図６に示す画面５６には、第２の領域の設定のための画面であることを示す「書き込み禁止設定」のタイトルが示されている。画面５６では、構成要素の種別ごとに変数の範囲の指定が入力されることにより、構成要素ごとに第２の領域が設定可能とされている。画面５６に表示される「種別」の欄には、構成要素の種別の名称が記載されている。「記号」の欄には、種別を表す記号であるアルファベットが記載されている。「種別」の欄に記載される名称と、「記号」の欄に記載されるアルファベットとは、あらかじめ設定されている。「書き込み禁止範囲」の欄は、変数に含まれる数字の範囲により、第２の領域とするデータ領域の範囲を指定可能とされている。第２の領域とするデータ領域の範囲は、範囲の先頭となる変数を表す数字と、最後となる変数を示す数字とにより指定される。「先頭」の欄には、範囲の先頭となる変数を表す数字が入力される。「最後」の欄には、範囲の最後となる変数を表す数字が入力される。このように、画面５６は、第２の領域の範囲を示す変数の入力を受け付け可能とされている。
【００３６】
図６に示す例では、構成要素の種別の１つである「入力リレー」について、「先頭」の欄に「１０００」、「最後」の欄に「１５００」とそれぞれ入力されている。かかる入力内容は、「入力リレー」について、第２の領域とするデータ領域の範囲がＸ１０００からＸ１５００の範囲と指定されていることを表している。設定処理部５１は、かかる内容での第２の領域の設定により、「入力リレー」に割り当てられているデータ領域のうちＸ１０００からＸ１５００の範囲に第２の領域を画定させる。設定処理部５１は、「入力リレー」に割り当てられているデータ領域のうち、Ｘ１０００からＸ１５００の範囲以外の範囲であるＸ０からＸ９９９の範囲とＸ１５０１以降の範囲とに、第１の領域を画定させる。
【００３７】
また、設定処理部５１は、「出力リレー」に割り当てられているデータ領域のうちＹ１００からＹ２５０の範囲に第２の領域を画定させる。設定処理部５１は、「出力リレー」に割り当てられているデータ領域のうち、Ｙ１００からＹ２５０の範囲以外の範囲であるＹ０からＹ９９の範囲とＹ２５１以降の範囲とに、第１の領域を画定させる。このように、設定処理部５１は、入力内容に変数が含まれた入力操作を画面５６にて受け付けることにより、第１の領域と第２の領域とを画定させる。
【００３８】
図６に示す例では、「内部リレー」についての「先頭」および「最後」の各欄が未入力とされている。「先頭」および「最後」の各欄を未入力とすることで、「内部リレー」については、第２の領域を設定していないことが示される。設定処理部５１は、「内部リレー」に割り当てられているデータ領域については、第２の領域を設けず、「内部リレー」に割り当てられているデータ領域の全体を第１の領域のままとする。
【００３９】
なお、画面５６では、構成要素の種別ごとに設定可能とする第２の領域の範囲は、１つである場合に限られない。画面５６では、構成要素の種目１つ当たりに、第２の領域とする複数の範囲を設定できることとしても良い。
【００４０】
ユーザは、入力デバイス６６での入力操作により、画面５６へ変数の範囲を入力する。１つの例では、入力操作の主体であるユーザは、エンジニアリングツールプログラムの使用によるプログラミングに携わる人である。
【００４１】
設定処理部５１は、画面５６へ入力された情報を、図２に示すＣＰＵ２１が解釈可能な形式のパラメータへ変換する。コンピュータ５は、設定処理部５１での変換により得られたパラメータを、図５に示す通信Ｉ／Ｆ６４からＰＬＣ１へ送信する。図３に示す書き込み管理部３７は、ＰＬＣ１からのパラメータをパラメータ格納部４２へ格納する。これにより、ＰＬＣシステム６は、データ格納部４１のデータ領域における第２の領域を設定する。
【００４２】
ＰＬＣシステム６において、ユーザは、制御プログラム２７ａのプログラミングにおいて用いられる変数を使用して、第１の領域と第２の領域との画定のための入力操作を可能とする。ユーザは、制御プログラムで扱われる任意の変数範囲の演算データについて、外部機器からの要求に書き換えを阻止可能とする。ユーザは、変数ごとの演算データの重要性に鑑みて、データ領域における第２の領域の範囲を自由に設定することができる。ＰＬＣ１は、第２の領域に格納されている演算データを、外部機器を扱う操作者の過誤あるいは故意による書き換えから保護することができる。ＰＬＣシステム６は、変数を使用する入力操作を可能とすることで、図２に示すメモリ２２のアドレスによる領域の設定を要する場合に比べて、プログラミングを行うユーザにとって簡易かつ分かり易い設定により第１の領域と第２の領域とを画定させることができる。
【００４３】
次に、第２の領域が設定されたＰＬＣ１の動作について説明する。図３に示すパラメータ管理部３８は、第２の領域の範囲を表すパラメータをパラメータ格納部４２から読み出して、読み出されたパラメータを保持する。外部機器からのコマンドがコマンド処理部３５へ入力されると、書き込み管理部３７は、コマンドの内容を解析する。また、書き込み管理部３７は、第２の領域の範囲を示すパラメータを、パラメータ管理部３８から読み出す。書き込み管理部３７は、データ領域における書き込みの先頭の位置と、書き込まれる対象であるデータのサイズとを基に、書き込みが要求されている領域が、第２の領域の範囲に含まれているか否かを確認する。
【００４４】
図７は、図３に示す書き込み管理部３７による判断について説明する図である。図７に示す例では、ラダープログラムの構成要素である「Ｘ」についてのデータ領域４４のうち、「ＮＡ」から「ＮＢ」の数字が付された変数であるＸＮＡからＸＮＢに対応する範囲に、第２の領域４３が設定されているとする。図２に示す作業領域２６には、「Ｘ」についてのデータ領域４４と、ラダープログラムのその他の構成要素についてのデータ領域とが含まれている。図７では、作業領域２６のうちのデータ領域４４を、変数に付された番号に対応付けて表しているとする。
【００４５】
領域Ｒ１からＲ７は、書き込みが要求されている領域の例を表す。領域Ｒ１，Ｒ２は、いずれも全体が第２の領域４３から外れている。書き込み管理部３７は、領域Ｒ１，Ｒ２への書き込みが要求された場合に、書き込み処理を許可する。領域Ｒ４は、全体が第２の領域４３に含まれている。書き込み管理部３７は、領域Ｒ４への書き込みが要求された場合に、書き込み処理を拒否する。
【００４６】
書き込み管理部３７は、書き込みが要求されている領域の全体が第２の領域４３に含まれている場合の他、領域の一部が第２の領域４３に含まれている場合も、書き込み処理を拒否する。領域Ｒ３，Ｒ５，Ｒ６は、いずれも一部が第２の領域４３に含まれている。書き込み管理部３７は、領域Ｒ３，Ｒ５，Ｒ６への書き込みが要求された場合に、書き込み処理を拒否する。領域Ｒ７は、３つに分けられた領域からなり、３つの領域のうちの１つが第２の領域４３に含まれている。書き込み管理部３７は、１つのコマンドにより領域Ｒ７への書き込みが要求された場合に、書き込み処理を拒否する。
【００４７】
図８は、実施の形態１での外部機器からの書き込み要求によるＰＬＣ１の動作の手順を示すフローチャートである。ステップＳ１では、書き込み管理部３７は、ＰＬＣ１でコマンドを受信したか否かを判断する。書き込み管理部３７は、コマンドバッファ３４からコマンド処理部３５へのコマンドの入力を監視して、コマンド処理部３５へのコマンドの入力により、コマンドの受信があったと判断する。ＰＬＣ１がコマンドを受信していないと判断した場合（ステップＳ１：Ｎｏ）、書き込み管理部３７は、コマンドの受信があるまで待機する。
【００４８】
ＰＬＣ１がコマンドを受信したと判断した場合（ステップＳ１：Ｙｅｓ）、書き込み管理部３７は、コマンド処理部３５へ入力されたコマンドを解析する。ステップＳ２では、書き込み管理部３７は、書き込みが要求されている領域の全体あるいは一部が、書き込みが禁止されている領域である第２の領域に含まれているか否かを判断する。
【００４９】
書き込みが要求されている領域の全体あるいは一部が第２の領域に含まれていないと判断した場合（ステップＳ２：Ｎｏ）、書き込み管理部３７は、書き込みの許可を決定する。コマンド処理部３５は、書き込み許可の決定を受けて、コマンドを実行する。コマンド処理部３５でのコマンドの実行により、データ書き込み部３６は、ステップＳ３においてデータ格納部４１のデータ領域へデータを書き込む。コマンド送信部３３は、コマンド処理部３５でのコマンドの実行により、正常にデータが書き込まれたことを示す応答フレームを作成して、応答フレームの送信処理を実行する。通信部３１は、外部機器へ応答フレームを送信する。
【００５０】
一方、書き込みが要求されている領域の全体あるいは一部が第２の領域に含まれていると判断した場合（ステップＳ２：Ｙｅｓ）、書き込み管理部３７は、書き込みの拒否を決定する。コマンド処理部３５は、書き込み拒否の決定を受けて、コマンドの実行を中止する。ステップＳ４において、コマンド処理部３５は、エラー処理を実行する。コマンド送信部３３は、コマンド処理部３５でのエラー処理の実行により、データの書き込みが拒否されたことを示す応答フレームを作成して、応答フレームの送信処理を実行する。通信部３１は、外部機器へ応答フレームを送信する。これにより、ＰＬＣ１は、外部機器からの書き込み要求の受信による動作を終了する。
【００５１】
なお、設定処理部５１は、第２の領域とするデータ領域を、変数の範囲により設定するものに限られない。設定処理部５１は、変数の範囲による設定以外に、変数をピンポイントで設定できることとしても良い。第１の領域と第２の領域とは、設定処理部５１での第２の領域の設定により画定される以外に、第１の領域の設定により画定されても良い。設定処理部５１は、第１の領域の指定を含む入力操作に基づいて、第１の領域を設定する処理を実行しても良い。設定処理部５１は、第１の領域を設定することで、第１の領域と、第１の領域以外の領域である第２の領域を画定させる。
【００５２】
画面５６での入力操作において使用される変数は、ラダープログラムのプログラミングにおいて使用される変数に限られない。変数は、ラダープログラム以外のプログラムのプログラミングにおいて使用される変数であっても良い。１つの例では、変数は、構造化プログラミングにおいて使用される変数である「ラベル」であっても良い。ユーザは、処理の対象ごとに、「ラベル」である任意の名称を割り当てることができる。設定処理部５１は、「ラベル」の範囲による設定あるいは「ラベル」のピンポイントでの設定により、第２の領域とするデータ領域を設定できる。
【００５３】
次に、ＰＬＣ１と外部機器との接続について説明する。図９は、図１に示すＰＬＣ１と、ＰＬＣ１に接続された外部機器との例を示す図である。図９に示すＰＬＣ１は、入出力制御と演算処理を実行する制御ユニット１０と、ＰＬＣ１の各ユニットへ電力を供給する電源ユニット１１と、ネットワークを介した通信を行う通信ユニット１２とを備える。１つの例では、通信ユニット１２は、ネットワークに接続された他のＰＬＣとの通信を行う。図２および図３に示す構成は、制御ユニット１０に設けられている。パラメータ格納部４２には、第２の領域を示すパラメータが格納されている。
【００５４】
ＰＬＣ１の各ユニットは、バスが内蔵されたベースユニットを介して接続されている。図９では、ベースユニットの図示を省略している。ＰＬＣ１は、図９に示すユニット以外のユニットを備えていても良い。ＰＬＣ１は、制御対象からの情報を受信する入力ユニットと、制御ユニット１０からの指示により制御対象へ情報を送信する出力ユニットとを備えていても良い。
【００５５】
外部機器である表示器２は、ＵＳＢケーブル３により制御ユニット１０に接続されている。表示器２は、書き込み要求のコマンドをＰＬＣ１へ送信する。コマンドには、書き込みが要求されている領域の先頭の位置を示す情報と、書き込まれるデータのサイズを示す情報とが含まれる。図３に示す通信部３１は、ＵＳＢケーブル３を伝送したコマンドを受信する。書き込み管理部３７は、書き込みが要求されている領域の全体あるいは一部が、書き込みが禁止されている領域である第２の領域に含まれているか否かを判断する。
【００５６】
書き込みが要求されている領域の全体あるいは一部が第２の領域に含まれていないと判断された場合、ＰＬＣ１は、表示器２からの要求によるデータの書き込みを実行する。書き込みが要求されている領域の全体あるいは一部が第２の領域に含まれていると判断された場合、ＰＬＣ１は、表示器２からの要求によるデータの書き込みを実行せず、エラー処理を実行する。
【００５７】
ＰＬＣ１は、表示器２以外の外部機器からの書き込み要求のコマンドを受信するものであっても良い。外部機器は、ＰＬＣ１との通信が可能とされたコンピュータ、あるいは他のＰＬＣであっても良い。
【００５８】
実施の形態１によると、ＰＬＣシステム６は、制御プログラム２７ａでの制御の対象である変数を使用して、ＰＬＣ１における第１の領域と第２の領域との画定を可能とする。ＰＬＣシステム６は、変数を使用する入力操作を可能とすることで、プログラミングを行うユーザにとって簡易かつ分かり易い設定により、第１の領域と第２の領域とを画定させることができるという効果を奏する。
【００５９】
なお、ＰＬＣ１は、ＵＳＢインタフェースにより接続された外部機器から書き込み要求のコマンドを受信するものに限られない。ＰＬＣ１は、ＵＳＢインタフェース以外のネットワークインタフェースにより接続された外部機器からの書き込み要求のコマンドを受信するものであっても良い。実施の形態２および３では、ＵＳＢインタフェース以外のネットワークインタフェースにより接続された外部機器からの書き込み要求のコマンドをＰＬＣ１が受信する場合について説明する。
【００６０】
実施の形態２．
図１０は、本発明の実施の形態２にかかるＰＬＣシステム６に含まれるＰＬＣ１を示す図である。図１０には、ＰＬＣ１と、ＰＬＣ１に接続された外部機器である表示器２との例を示している。上記の実施の形態１と同一の部分には同一の符号を付し、重複する説明を省略する。
【００６１】
制御ユニット１０と、外部機器である表示器２とは、ＬＡＮネットワーク７０を介して互い接続されている。１つの例では、ＬＡＮネットワーク７０は、Ethernet（登録商標）によるネットワークである。図３に示す通信部３１は、ネットワークインタフェースであるEthernetインタフェースを含む。ＬＡＮネットワーク７０の通信規格には、任意の通信規格を適用可能とする。
【００６２】
表示器２は、書き込み要求のコマンドをＰＬＣ１へ送信する。コマンドには、書き込みが要求されている領域の先頭の位置を示す情報と、書き込まれるデータのサイズを示す情報とが含まれる。また、コマンドには、書き込みの要求先であるＰＬＣ１を特定するための識別情報であるＩＰ（Internet  Protocol）アドレスが含まれる。通信部３１は、ＬＡＮネットワーク７０を伝送したコマンドを受信する。
【００６３】
ＰＬＣ１は、表示器２以外の外部機器からの書き込み要求のコマンドを受信するものであっても良い。外部機器は、ＰＬＣ１との通信が可能とされたコンピュータ、あるいは他のＰＬＣであっても良い。実施の形態２において、ＰＬＣ１は、ＬＡＮネットワーク７０に接続された外部機器からの書き込み要求のコマンドを受信した場合に、第２の領域に格納されている演算データを書き換えから保護することができる。
【００６４】
実施の形態３．
図１１は、本発明の実施の形態３にかかるＰＬＣシステム６に含まれるＰＬＣ１を示す図である。図１１には、ＰＬＣ１と、ＰＬＣ１に接続された外部機器であるＰＬＣ８１との例を示している。上記の実施の形態１と同一の部分には同一の符号を付し、重複する説明を省略する。
【００６５】
ＰＬＣ１の通信ユニット１２と、ＰＬＣ８１とは、産業用ネットワーク８０を介して互いに接続されている。１つの例では、産業用ネットワーク８０は、CC-Link（登録商標）ネットワークである。産業用ネットワーク８０は、CC-Linkネットワーク以外の産業用ネットワークであっても良い。産業用ネットワーク８０は、シリアルインタフェースであるRS-232による通信ネットワークであっても良い。また、産業用ネットワーク８０は、マスタ局とローカル局との間の複数の階層の間における通信を含むものであっても良い。
【００６６】
ＰＬＣ１において、制御ユニット１０は、通信ユニット１２を管理する。通信ユニット１２は、産業用ネットワーク８０に対応するネットワークインタフェースを備える。ＰＬＣ８１のＣＰＵは、書き込み要求のコマンドを通信ユニット１２へ送信する。図１１では、ＰＬＣ８１のＣＰＵの図示を省略している。コマンドには、書き込みが要求されている領域の先頭の位置を示す情報と、書き込まれるデータのサイズを示す情報とが含まれる。また、コマンドには、産業用ネットワーク８０の通信プロトコルにしたがった識別情報が含まれる。識別情報により、書き込みの要求先であるＰＬＣ１の通信ユニット１２が産業用ネットワーク８０上にて特定される。通信ユニット１２は、産業用ネットワーク８０を伝送したコマンドを受信する。識別情報は、通信の階層ごとに設定されたネットワーク番号と、書き込みの要求先である通信ユニット１２を表す局番とを含むものであっても良い。
【００６７】
通信ユニット１２は、産業用ネットワーク８０からのコマンドを受信すると、通信ユニット１２の管理を行っている制御ユニット１０へ、受信されたコマンドを送信する。ＰＬＣ１は、通信ユニット１２からのコマンドを、ベースユニットを介して、制御ユニット１０へ送信させる。図１１では、ベースユニットの図示を省略している。図３に示す通信部３１は、通信ユニット１２からのコマンドを受信する。
【００６８】
実施の形態３において、ＰＬＣ１は、産業用ネットワーク８０に接続された外部機器からの書き込み要求のコマンドを受信した場合に、第２の領域に格納されている演算データを書き換えから保護することができる。外部機器からの要求によるデータの書き込みが禁止されている制御ユニット１０以外のユニットにて書き込み要求のコマンドが受信される場合においても、ＰＬＣ１は、制御ユニット１０内に格納されている演算データを書き換えから保護することができる。
【００６９】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００７０】
１，８１  ＰＬＣ、２  表示器、３  ＵＳＢケーブル、５  コンピュータ、６  ＰＬＣシステム、７  ネットワークケーブル、１０  制御ユニット、１１  電源ユニット、１２  通信ユニット、２１，６１  ＣＰＵ、２２  メモリ、２３，６４  通信Ｉ／Ｆ、２４  バスＩ／Ｆ、２５  記憶部、２６  作業領域、２７  プロジェクトデータ、２７ａ  制御プログラム、２７ｂ  制御パラメータ、２７ｃ  メモリ情報、２７ｄ  接続情報、３１  通信部、３２  コマンド受信部、３３  コマンド送信部、３４  コマンドバッファ、３５  コマンド処理部、３６  データ書き込み部、３７  書き込み管理部、３８  パラメータ管理部、３９  パラメータ解析部、４１  データ格納部、４２  パラメータ格納部、４３  第２の領域、４４  データ領域、５０  エンジニアリングツール部、５１  設定処理部、５２  プログラミング処理部、５３  制御部、５４  入力部、５５  表示部、５６  画面、６２  ＲＡＭ、６３  ＲＯＭ、６５  記憶装置、６６  入力デバイス、６７  ディスプレイ、６８  バス、７０  ＬＡＮネットワーク、８０  産業用ネットワーク。
【要約】
プログラマブルロジックコントローラシステムのプログラマブルロジックコントローラは、外部機器との通信を可能とする通信部と、制御プログラムを実行し、かつ通信部で受信された要求による処理を実行する制御処理部と、制御プログラムの実行による処理にて扱われる演算データが格納されるデータ格納部とを備える。プログラマブルロジックコントローラシステムの周辺機器は、制御プログラムでの制御の対象である変数を含めた入力操作に基づいて、データ格納部に、要求による書き込みが可能とされた第１の領域と、要求による書き込みが禁止された第２の領域とを画定させる設定処理部（５１）を備える。【図１】
0006388736.tif 000002
【図２】
0006388736.tif 000003
【図３】
0006388736.tif 000004
【図４】
0006388736.tif 000005
【図５】
0006388736.tif 000006
【図６】
0006388736.tif 000007
【図７】
0006388736.tif 000008
【図８】
0006388736.tif 000009
【図９】
0006388736.tif 000010
【図１０】
0006388736.tif 000011
【図１１】
0006388736.tif 000012