(57)【特許請求の範囲】
【請求項１】
シーケンスプログラムの演算及び周辺装置インタフェース部を介し接続されるパソコンのアプリケーションであるプログラミングツールとの通信処理を行うＭＰＵと、
ユーザが作成した前記シーケンスプログラムを格納するための書き換え可能なシーケンスプログラムメモリと、
前記周辺装置インタフェース部又は外部デバイス接続モジュールで接続される周辺機器の接続許可管理データを格納する周辺装置接続許可管理メモリと
を備え、
前記周辺装置接続管理メモリは、プログラマブルコントローラとオンライン接続が可能な前記プログラミングツールのシリアルナンバーを登録させることにより、シーケンスプログラム作成者が所有するプログラミングツール（オリジナル所有者）のみがシーケンスプログラムの読出し／書込みを行うことができ、
前記プログラミングツールから前記周辺装置接続許可管理メモリに、外部メモリユニットインタフェースを介して接続されたメモリユニットを利用したシーケンスプログラムの読出し／書込み動作を制限させるメモリユニット動作可否情報を設定でき、設定されたメモリユニット動作可否情報を元にシーケンスプログラムの読出し／書込み動作を行なうことを特徴とするプログラマブルコントローラ。
【請求項２】
シーケンスプログラムの演算及び周辺装置インタフェース部を介し接続されるパソコンのアプリケーションであるプログラミングツールとの通信処理を行うＭＰＵと、
ユーザが作成した前記シーケンスプログラムを格納するための書き換え可能なシーケンスプログラムメモリと、
前記周辺装置インタフェース部又は外部デバイス接続モジュールで接続される周辺機器の接続許可管理データを格納する周辺装置接続許可管理メモリと
を備え、
前記周辺装置接続管理メモリは、プログラマブルコントローラとオンライン接続が可能な前記プログラミングツールのＥｔｈｅｒｎｅｔ（登録商標）ポートのＭＡＣアドレス情報を登録させることにより、シーケンスプログラム作成者が所有するプログラミングツール（オリジナル所有者）のみがシーケンスプログラムの読出し／書込みを行うことができ、
前記プログラミングツールから前記周辺装置接続許可管理メモリに、外部メモリユニットインタフェースを介して接続されたメモリユニットを利用したシーケンスプログラムの読出し／書込み動作を制限させるメモリユニット動作可否情報を設定でき、設定されたメモリユニット動作可否情報を元にシーケンスプログラムの読出し／書込み動作を行なうことを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを用いて機器を制御するプログラマブルコントローラに係り、特にユーザが作成したユーザプログラムを第三者が閲覧を不可能とする情報漏洩のセキュリティに関する。
【背景技術】
【０００２】
ユーザプログラムは、ユーザが時間と知能、費用を駆使して作成するユーザの財産であり、このユーザプログラムがないとプログラマブルコントローラは動作しないため、必ずプログラマブルコントローラに格納されている。
図４に従来のプログラマブルコントローラのブロック図を示す。
図４において、プログラマブルコントローラ６０は、演算処理を行うマイコン６１と、シーケンスプログラムやデータを記憶するメモリ６２と、このメモリ６２にはシステムプログラムを格納している。
システムメモリ６３とユーザプログラム６５を格納しているユーザメモリ６４より構成され、外部に対して信号を入出力する入出力Ｉ／Ｆ（インタフェース）６６と、パソコンや他のプログラマブルコントローラ、制御機器等とのデータをやり取りするための通信Ｉ／Ｆ（インタフェース）６７を備え、これらはバスライン６８に接続され、情報通信を行っている。
このようなプログラマブルコントローラのシステムにおいて、一般ユーザは、ユーザプログラムの外部からの読み出しを禁止する手段を取らないと、簡単に第三者が入手することができる。
また、図４に示した従来のシステムブロックにおいて、パスワードを用いたセキュリティ機能を使用していた。このパスワードを用いたセキュリティ機能は、パスワードが一旦漏洩してしまうと簡単にセキュリティが破られてしまうという問題点がある。
これは、パスワードを設定するユーザが、自分にとっての誕生日や何かの記念日などの覚えやすい数字などをパスワードに使用するためである。また、他人に推測され難いパスワードを設定したとしても、設定した本人が忘れてしまったりして大変なことになったり、忘れないようにパスワードを紙に書き残したりして、結果的に他人に見られ、簡単に漏洩する恐れがあった。
【０００３】
また、特許文献１（特開２００６−３３１１３０号公報）には、主処理部１０は、プログラムメモリ１１に格納されたシーケンスプログラムに従って機器を制御する。また、主処理部１０と通信可能な外部装置を接続するサービスインタフェース１４を備える。主処理部１０は、プログラムメモリ１１に格納されたシーケンスプログラムについてサービスインタフェース１４から外部装置への読み出しを禁止する読み出し禁止処理部２２を備える。
したがって、サービスインタフェース１４から外部装置へのシーケンスプログラムの読み出しを禁止することができるから、シーケンスプログラムのノウハウが他人に知られたり、シーケンスプログラムが盗用されたりするのを防止することができることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３１１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前記特許文献１には、シーケンスプログラム（ユーザプログラムと同じである）を保護するプログラマブルコントローラの仕組みについて、開示されている。
すなわち、「主処理部１０において、読出禁止処理部２２の有効と無効とを切り換えるための読出禁止フラグを格納するフラグ格納部１０ａを設けている。読出禁止処理部２２は、読出禁止フラグのセットによって有効になり、読出禁止フラグがセットされていなければ読出禁止処理部２２は無効になる。読出禁止処理部２２が無効であるとは、「プログラム読出」命令が受け付けられることを意味する。
また、読出禁止フラグがセットされ、読出禁止処理部２２が有効になると、「プログラム読出」命令が無視される。
読出禁止フラグは初期状態ではセットされていないが、読出禁止フラグを一旦セットすると、以後は読出禁止フラグをリセットして元の状態に復帰させることはできなくなる。
つまり、当初は読出禁止処理部２２は無効の状態であるが、読出禁止フラグをセットして読出禁止処理部２２が有効になる状態に切り換えると、以後は読出禁止処理部２２を無効にすることはできなくなり、プログラムの読み出しが禁止される。言い換えると、読出禁止フラグはセットされていない状態からセットされた状態に不可逆的に変更が可能になっている。
【０００６】
上記の構成では、外部装置からフラグ格納部のデータを変更（改ざん）されると、シーケンスプログラムの保護が機能しなくなる恐れがある。
【０００７】
本発明の目的は、上記の問題点を解消するために、シーケンスプログラムの作成者（オリジナル所有者）のみがシーケンスプログラムの読み出し／書き込みを行うことができ、データメモリの読み出し／書き込みの実行可否についてもシーケンスプログラムの作成者（オリジナル所有者）のみが設定を行うことができるようにし、これらの構成を有したプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本発明は、シーケンスプログラムの演算及び周辺装置インタフェース部を介し接続されるパソコンのアプリケーションであるプログラミングツールとの通信処理を行うＭＰＵと、ユーザが作成した前記シーケンスプログラムを格納するための書き換え可能なシーケンスプログラムメモリと、前記周辺装置インタフェース部又は外部デバイス接続モジュールで接続される周辺機器の接続許可管理データを格納する周辺装置接続許可管理メモリとを備え、前記周辺装置接続管理メモリは、プログラマブルコントローラとオンライン接続が可能な前記プログラミングツールのシリアルナンバーを登録させることにより、シーケンスプログラム作成者が所有するプログラミングツール（オリジナル所有者）のみがシーケンスプログラムの読み出し／書き込みを行うことができ、前記プログラミングツールから前記周辺装置接続許可管理メモリに、外部メモリユニットインタフェースを介して接続されたメモリユニットを利用したシーケンスプログラムの読出し／書込み動作を制限させるメモリユニット動作可否情報を設定でき、設定されたメモリユニット動作可否情報を元にシーケンスプログラムの読出し／書込み動作を行なうことを特徴とする。
また、シーケンスプログラムの演算及び周辺装置インタフェース部を介し接続されるパソコンのアプリケーションであるプログラミングツールとの通信処理を行うＭＰＵと、ユーザが作成した前記シーケンスプログラムを格納するための書き換え可能なシーケンスプログラムメモリと、前記周辺装置インタフェース部又は外部デバイス接続モジュールで接続される周辺機器の接続許可管理データを格納する周辺装置接続許可管理メモリとを備え、  前記周辺装置接続管理メモリは、プログラマブルコントローラとオンライン接続が可能な前記プログラミングツールのＥｔｈｅｒｎｅｔ（登録商標）ポートのＭＡＣアドレス情報を登録させることにより、シーケンスプログラム作成者が所有するプログラミングツール（オリジナル所有者）のみがシーケンスプログラムの読出し／書込みを行うことができ、前記プログラミングツールから前記周辺装置接続許可管理メモリに、外部メモリユニットインタフェースを介して接続されたメモリユニットを利用したシーケンスプログラムの読出し／書込み動作を制限させるメモリユニット動作可否情報を設定でき、設定されたメモリユニット動作可否情報を元にシーケンスプログラムの読出し／書込み動作を行なうことを特徴とする。          
【発明の効果】
【０００９】
本発明によれば、シーケンスプログラムを読み出し／書き込み処理を行う人を限定することができるため、シーケンスプログラムが第三者に知られたり、盗用されたりすることがなく、シーケンスプログラムを保護することが可能となる。
また、同様に、オンライン接続を可能とし、データ通信を行うデバイスを設定できるようにした。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施例であるプログラマブルコントローラのブロック図を示す。
【図２】プログラミングツール登録処理フローチャートを示す。
【図３】プログラミングツールからの接続処理フローチャートを示す。
【図４】従来のプログラマブルコントローラのブロック図を示す。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面を用いて説明する。
（実施例1）
図１は、本発明の一実施例のプログラマブルコントローラのシステムブロック図を示す。
図１において、１はプログラマブルコントローラのＣＰＵモジュール、２はプログラミングツール、３は外部入力モジュール、４は外部出力モジュール、１０はＭＰＵ，１１は周辺装置インタフェース、１２はシステムプログラムメモリ、１３はシーケンスプログラムメモリ、１４は内部データメモリ、１５は外部バスインタフェース、１６は外部メモリユニットインタフェース、１７はメモリユニット、１８はパソコン等の上位ホスト、１９は外部デバイス接続モジュール、２０はＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）、２１は周辺装置接続許可管理メモリである。
【００１２】
図１において、プログラマブルコントローラのＣＰＵモジュール1は、シーケンスプログラムの演算式や周辺装置インタフェース部１１を介して接続されるパソコンのアプリケーションであるプログラミングツール２と通信処理を行うＭＰＵ１０と、ＭＰＵ１０の制御する内容、手順を記憶した不揮発性のシステムプログラムメモリ１２と、ユーザが作成したシーケンスプログラムを格納するための書き換え可能なシーケンスプログラム１３と、ＭＰＵ１０がシーケンスプログラムの演算結果を格納する内部データメモリ１４と、周辺装置インタフェース部１１又は外部デバイス接続モジュール１９に接続される周辺装置の接続機器の接続許可管理データを格納する周辺装置接続許可管理メモリ２１と、入出力ポートを増設するための外部バスインタフェース１５を備えている。
そして、外部バスインタフェース１５には、外部機器からの入力信号を取り込むための外部入力モジュール３と、外部機器への出力信号に演算結果を出力するための外部出力モジュール４と、外部デバイス接続モジュール１９が接続され、
外部入力モジュール３は、センサやスイッチ等の入力信号を入力し、外部出力モジュール４はランプやアクチュエータ等に出力信号を出力する。
また、外部デバイス接続モジュール１９は、周辺装置インタフェース部１１と同等の機能を有し、プログラミングツール２、ＨＭＩ（Ｈｕｍan Machine Interface）２０、上位ホスト(パソコン等)１８、及びインバータ等のデバイス機器と接続し、データ通信を行うことができる。
周辺装置インタフェース部１１は、プログラミングツール２、ＨＭＩ２０，上位ホスト（パソコン等）１８と接続し、データ通信を行う。
初期状態のプログラミングコントローラでは、周辺装置接続許可管理メモリ２１は、何も登録されていないため、何も制限されずに周辺装置（プログラミングツール２、ＨＭＩ２０）及びデバイス機器２２は、周辺装置インタフェース部１１又は外部デバイス接続モジュール１９を介してＭＰＵ１０と接続可能な状態である。
このような状態であれば、プログラミングツール２からユーザが制作したシーケンスプログラムメモリ１３に対し、自由に読み出し／書き込みが可能である。
ユーザにて、シーケンスプログラムを保護（読出し／書き込みを不可）とするためにプログラミングツール２より接続可能な周辺装置の登録処理を実施する。
【００１３】
図２は、接続可能なプログラミングツール登録処理の実施例を示すフローチャートである。
先ず、プログラミングツール２よりプログラマブルコントローラにオンライン接続し、周辺装置登録を設定する（ステップ３１）。登録作業を実施すると、プログラミングツールは自分自身のシリアルナンバーの情報をＭＰＵ１０に送信する（ステップ３２）。ＭＰＵ１０は、その情報を元に周辺装置接続許可管理眼メモリ２１に接続可能なプログラミングツール２の情報として、シリアルナンバーを登録する（ステップ３３）。
そして、シリアルナンバーの登録完了の表示を行い（ステップ３４）、終了する（ステップ３５）。
【００１４】
次に、周辺装置接続許可管理メモリ２１に情報が登録された状態でのプログラミングツール２からのオンライン接続する場合の処理の実施例を図３に示す。
図３のフローチャートにおいて、先ず、プログラミングツール２からＭＰＵ１０へオンライン接続するため、許可コマンドを送信する（ステップ４１）。
ＭＰＵ１０は、許可コマンドを受信して周辺装置接続許可管理メモリ２１の情報を確認する（ステップ４２）。
そして、ＭＰＵ１０は、プログラミングツール２に対し。シリアルナンバー情報が登録されているかどうかを判断する（ステップ４３）。
シリアルナンバー情報が登録されていない場合は、オンライン接続を許可し、プログラミングツールと接続され、シーケンスプログラムの読み出し／書き込みが実行可能となる（ステップ４９）。
シリアルナンバー情報が登録されていた場合は、プログラミングツール２に対し、シリアルナンバー情報の送信を要求する（ステップ４４）。
要求されたプログラミングツール２は、自分自身のシリアルナンバーをＭＰＵ１０へ送信する（ステップ４５）。
次に、ＭＰＵ１０は、プログラミングツール２より送信されたシリアルナンバーを受信し（ステップ４６）、周辺装置接続許可管理メモリ２１に登録されているシリアルナンバーと同じか照合する（ステップ４７）。
そして、プログラミングツール２より送信されたシリアルナンバーと、周辺装置接続許可管理メモリ２１に登録されているシリアルナンバーとが一致しているか判断する（ステップ４８）。
シリアルナンバーが一致している場合は、オンライン接続を許可し、プログラミングツールと接続され、シーケンスプログラムの読み出し／書き込みが実行可能となる（ステップ４９）。
周辺装置接続許可管理メモリ２１に登録されているシリアルナンバーとプログラミングツール２より送信されたシリアルナンバーが異なる（照合不一致）場合は、ＭＰＵ１０はプログラミングツール２とのオンライン接続を許可しない動作を実行する。
すなわち、ＭＰＵ１０はオンライ接続拒否コマンドを送信し（ステップ５０）、プログラミングツール２との接続は不可となる（ステップ４９）。
また、プログラミングツール２には、「オンライン接続を許可しません」という表示を行うものである。
【００１５】
ここで、シリアルナンバーについて説明する。
シリアルナンバーとは、大量に製造される工業製品、例えば、電化製品、カメラ、自動車などに対して、一律に付与される「製造番号」のことで、原則として同じシリアルナンバーを所有する製品は同じ品種の製品であれば存在しない。従って、不具合が生じた場合メーカによる追跡調査や購入者へのメンテナンスの問い合わせなどに利用されることがある。
また、コンピュータソフトウェアにおいては、上記の意味で個々の製品を管理する番号である。
一般に、プログラマブルコントローラのラダープログラミングソフトなどの製品のカバーには、シリアルナンバーを付していて、そして、購入された顧客に対し、このシリアルナンバーと顧客を登録しておいて、不具合があった場合とかメンテナンスの必要があった場合にこの情報を活用することもある。
最近では、海賊版や不正使用を防ぐため、パッケージ販売されているソフトウェアやシェアウェアでは、インスト−ル後にシリアルナンバーの入力を求めるものが多い。また、その場合、盗用を考慮してシリアルナンバーの一部を暗号化（チェックサムなど）されているものもある。
以上がプログラミングツール２のシリアルナンバーを利用した実施例について説明である。
（実施例２）
次に、別の実施例について説明する。
【００１６】
実施例２では、プログラミングツール２のＥｔｈｅｒｎｅｔ（登録商標）ポートのＭＡＣアドレス情報を利用するものである。
ＭＡＣアドレスとは、ネットワーク上で各ノードを識別するために設定されているＬＡＮカードなどのネットワーク機器のハードウェアに一意に割り当てられる物理アドレスであり、ＯＳＩ参照モデルでいえば、第２層（データリンク層）のアドレスに当たるものである。
（実施例３）
次に、シーケンスプログラムをシーケンスプログラムメモリ１３に読み出し／書き込みする方法として、図１に示したメモリユニット１７を使用する場合について説明する。
この場合は、プログラミングツール２を使用しないため、この方法のみではシーケンスプログラムを完全に保護することはできない。
このメモリユニット１７を使用する場合のシーケンスプログラムを保護する方法を以下に説明する。
【００１７】
ユーザは、メモリユニット１７を利用したシーケンスプログラムの読み出し／書き込みを制御させるためのプログラミングツール２からプログラマブルコントローラへメモリユニット動作可否情報を設定する。ＭＰＵ１０は、メモリユニット動作可否情報を元に周辺装置接続許可フラブメモリ２１にメモリユニット動作可否情報を登録する。
ＭＰＵ１０は、周辺装置接続許可管理メモリ２１に登録されているメモリユニット動作可否情報を元にメモリユニット１７とシーケンスプログラムメモリ１３間のシーケンスプログラムの読み出し／書き込みの動作を実行する。
周辺装置接続許可管理メモリ２１内のメモリユニット動作可否情報がメモリユニット動作不可と設定された場合は、メモリユニット１７へのシーケンスプログラムの読出し／書込み動作を実行することはできない。
【００１８】
以上の実施例３の構成により、シーケンスプログラム作成者が所有するプログラミングツール（オリジナル所有者）のみが、シーケンスプログラムの読み出し／書き込みを行なえるプログラマブルコントローラを実現できる。
【００１９】
また、内部データメモリ１４には、シーケンス制御に重要なデータが格納されている場合もあるが、これらのデータは上位ホスト１８、ＨＭＩ２０からデータ通信で読出し／書込みを行なうことが可能である。
上位ホスト１８、ＨＭＩ２０とのオンライン接続に関してもプログラミングツール２から周辺装置接続許可管理メモリ２１に、オンライン接続を許可するＭＡＣアドレス情報を設定でき、設定されたＭＡＣアドレスを持つ上位ホスト１８若しくはＨＭＩ２０のみオンライン接続を可能とすることにより強固なセキュリティを持つプログラマブルコントローラを実現できる。
【符号の説明】
【００２０】
１…ＣＰＵモジュール            ２…プログラミングツール
３…外部入力モジュール          ４…外部出力モジュール
１０…ＭＰＵ                  １１…周辺装置インタフェース
１２…システムプログラムメモリ
１３…シーケンスプログラムメモリ
１４…内部データメモリ        １５…外部バスインタフェース
１６…外部メモリインターフェース
１７…メモリユニット          ２１…周辺装置接続許可管理メモリ
【図１】
0005759885.tif 000002
【図２】
0005759885.tif 000003
【図３】
0005759885.tif 000004
【図４】
0005759885.tif 000005