(57)【特許請求の範囲】
【請求項１】
ある周辺装置が他の周辺装置と異なるものであることを示すための周辺装置の固有の識別番号の情報と、周辺装置をプログラマブルコントローラに接続する際に、固有の識別番号の情報をプログラマブルコントローラに送信する通信手段と、周辺装置と接続しているプログラマブルコントローラとで、任意の情報を送受信する通信手段と、周辺装置側のプログラムを変更しプログラマブルコントローラへ書き込む際、同時に自動的にその旨を伝える伝文を作成し送信する通信手段とを、周辺装置に設けるとともに、あるプログラマブルコントローラが他のプログラマブルコントローラと異なるものであることを示すための固有の識別番号の情報と、周辺装置がプログラマブルコントローラに接続された際に、周辺装置の固有の識別番号の情報により、現在接続している周辺装置を個別に認識する手段と、現在接続している周辺装置及びプログラマブルコントローラを、プログラマブルコントローラと直接接続した周辺装置及び、ネットワークなどで情報交換を行っている他のプログラマブルコントローラを通じて接続されている他の周辺装置についても、固有の識別番号の情報によって個別に把握し登録する手段と、プログラマブルコントローラに登録された他の周辺機器に対し、任意の情報を送受信する手段と、ある周辺装置によってプログラマブルコントローラ内のプログラムを書き換える要求があったとき、現在接続されている他の周辺機器に対し、プログラムを書き換える旨と、書き換えを要求した周辺装置及びプログラムが書き変わるプログラマブルコントローラの固有の識別番号とを報知する手段とを、プログラマブルコントローラに設けたことを特徴とするプログラマブルコントローラ装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、プログラマブルコントローラのプログラムを、複数のプログラマブルコントローラのためのプログラミングツールとしての周辺装置から同時にオンラインで変更することが可能なプログラマブルコントローラ及びその周辺装置を備えたプログラマブルコントローラ装置に関する。
【０００２】
【従来の技術】
制御装置としてのプログラマブルコントローラ（以下、ＰＣという）は、当初単なるリレー盤の置き換えであったが、プログラムの手軽さや、そのフレキシブル性により、また、高機能化、メモリの大容量化が進んだことにより、その適用分野が飛躍的に拡大してきている。
【０００３】
ところで、ＰＣのメモリの大容量化にともないシステム、プログラムが大規模化しており、そのプログラムの作成・デバッグ及び保守が複数人で行われるようになってきている。
このように、複数人でソフトウエアを開発するにはソフトウエア開発の効率を上げるために１台のＰＣに対し、複数台の周辺装置を接続し同時にソフトウエア開発を行う必要がある。
【０００４】
以下、従来のＰＣ及び従来のＰＣ用周辺装置（以下、単に周辺装置という）を用い、１台のＰＣのプログラムを複数台の周辺装置により修正する場合の一例を示す。
【０００５】
まず、従来のＰＣ及び周辺装置のプログラム修正処理を、１台のＰＣに１台の周辺装置が接続されている場合について、図６〜図１０に基づき説明し、次に複数台の周辺装置によるソフトウエア開発の例を示す。
【０００６】
図６は、周辺装置によりＰＣのプログラムを修正する場合の周辺装置及びＰＣの機能ブロック図である。
図において、１は周辺装置であり、通常、パーソナルコンピュータ又はそれに相当する機能を有する装置が使用される。周辺装置１の内、３は周辺装置本体、２は周辺装置からの制御によりプログラムやＰＣの状態などを表示するディスプレイ、４はユーザがプログラム等を入力するためのキーボードであり、６はＰＣであり、ＰＣ６と周辺装置１とは、通信ケーブル５を介して接続されている。
【０００７】
なお、図中、プログラムは、ＰＣ６内のプログラム１０ｃのほかに周辺装置１内にもプログラム１０ａを保持しており、ユーザにより周辺装置が操作され、プログラムの修正指示がなされると、先ず周辺装置内のプログラム１０ａを修正し、周辺装置１は、修正された部分のみＰＣ６にプログラムの修正指示を送信するように構成している。これは、ＰＣ６のみにプログラムを持たせると、ユーザがプログラムを参照するだけの場合にも、逐一プログラムをＰＣ６から読み出さねばならないため、処理時間が掛かり、ユーザが編集操作を迅速に行うことができないためである。
２０はキーボードから入力されたデータをプログラムへ反映する周辺装置側プログラム修正手段、２３は修正内容をＰＣへ送信する周辺装置側通信手段、２４はプログラム、ＰＣの内容を表示する修正結果表示手段、３０は周辺装置にて修正したプログラムを受信するＰＣ側通信手段、３３は周辺装置にて修正した内容をＰＣのプログラムへ反映するＰＣ側プログラム修正手段である。
【０００８】
図７は、周辺装置によりＰＣのプログラムを修正する場合の周辺装置及びＰＣの処理フローである。
【０００９】
図８は、周辺装置１から、通信ケーブル５を介してＰＣ６に対し修正内容を伝えるための修正指示伝文形式を示す図である。
図中、５０は、修正内容を伝える伝文形式、５１は修正処理種別、具体的には・挿入・削除などの修正処理の種類であり、５２は５１の修正処理を行う修正部分の先頭位置を示すステップ番号、５３は修正するステップ数であり、５４は修正部分のプログラムである。
ここで、プログラムについてのステップとは、プログラム中の特定の位置を表す単位である。
【００１０】
図９は、図８の修正指示伝文形式に基づく伝文例である。
この例では、１００ステップ目に、３０ステップ分のプログラムを挿入する場合を示している。
【００１１】
図１０は、ＰＣ６から、通信ケーブル５を介して周辺装置１に対し修正処理結果を伝えるための修正結果通知伝文形式である。
修正結果通知伝文の内容としては、修正が成功したか、または失敗したかを示すものである。
【００１２】
つぎに、図６〜図１０により、周辺装置によりＰＣのプログラムを修正する場合の処理を具体的に説明する。
【００１３】
ステップＳ５００においてユーザが、キーボード４によりプログラムの修正を指示すると、ステップＳ５０１において周辺装置側プログラム修正手段２０が、その修正内容をプログラム１０ａへ、反映するとともに、その内容を周辺装置側通信手段２３へ渡す。
【００１４】
ステップＳ５５１においてＰＣ側通信手段３０は、周辺装置１から修正内容を受信すると、その修正内容をＰＣ側プログラム修正手段３３へ渡す。
【００１５】
ステップＳ５５４においてＰＣ側プログラム修正手段３３は、修正内容を受け取ると、その修正内容をシーケンスプログラム１０ｃに反映し、ステップＳ５５５においてその処理結果をＰＣ側通信手段へ渡す。
【００１６】
ステップＳ５５７においてＰＣ側通信手段３０は、ＰＣ側プログラム修正手段３３から処理結果を受け取ると、図１０に示す修正結果通知伝文６０を作成し、その伝文を通信ケーブル５を介して周辺装置１へ送信する。
【００１７】
ステップＳ５０３において周辺装置側通信手段２３は、ＰＣ側プログラム修正手段３３から処理結果を受信すると、その内容を、修正結果表示手段２４へ渡す。
【００１８】
ステップＳ５０４において修正結果表示手段２４は、周辺装置側通信手段２３から処理結果を受け取ると、その内容を判別し、ステップＳ５０５において処理結果が成功であれば、修正成功した旨のメッセージをディスプレイ２に表示し、ステップＳ５０６において処理結果が失敗であれば修正失敗した旨のメッセージをディスプレイ２に表示する。
【００１９】
以上のように、従来の周辺装置では、プログラムがユーザにより修正されると、修正部分の先頭位置をプログラム先頭からの絶対位置を表すステップ番号又はこれに相当する番号により表し、これをＰＣに伝送していた。従来のＰＣは、このステップ番号を受信し、この値によりＰＣ内のプログラムを修正していた。
【００２０】
つぎに、１台のＰＣに２台の周辺装置が接続されている場合のプログラムの修正について、図１１及び図１２に基づき、説明する。
【００２１】
図１１は、１台のＰＣに２台の周辺装置が接続されている場合の構成図である。図中、図１と同一番号は同一部分であることを示している。
【００２２】
図１２は、図１１の構成において、周辺装置１ａ及び１ｂからＰＣ６、プログラムを修正したときの、プログラム修正の流れを時系列により示したものである。図は、上から下に向かって時間が経過していくものとして表している。
図中、１０ａ〜ｃは、シーケンス命令の集合であるプログラムであり、プログラム１０ａ〜ｃの左側に記されている数字は、各シーケンス命令の先頭位置を示すステップ番号である。
【００２３】
次に、図１１及び図１２により、２台の周辺装置により１台のＰＣのプログラムを修正する場合の処理を具体的に説明する。
なお、周辺装置１ａは、ユーザａにより操作され、周辺装置１ｂは、ユーザｂにより操作されるものとする。
【００２４】
図１２において、（イ）は初期状態である。ここで、ユーザａは、プログラムの０〜４９のステップの修正を担当し、ユーザｂは、プログラムの５０〜１００ステップの修正を担当しているものとする。
【００２５】
図１２の（イ）において、ユーザａが、周辺装置１ａにおいて、シーケンスプログラム１０ａの０ステップ目に４０ステップ分の命令を挿入すると、（ロ）の様に、周辺装置１ａのプログラム１０ａのシーケンスプログラムの０ステップ〜４０ステップに命令が挿入され、プログラム１０ａの最終ステップ番号が１４０ステップに増加する。
一方、ユーザｂが、周辺装置１ｂにおいてシーケンスプログラム１０ｂの最終ステップである１００ステップ目に３０ステップ分の命令を挿入すると、（ロ）のように、１００ステップ〜１３０ステップに命令が挿入され、プログラム１０ｂの最終ステップ番号が１３０ステップとなる。
【００２６】
図１２の（ロ）において、ユーザａが、プログラムの修正内容をＰＣ６に書き込むため、周辺装置１ａを操作すると、周辺装置１ａは、プログラム１ａの０ステップ〜４０ステップをＰＣ６に転送し、ＰＣ６は、その修正内容をプログラム１０ｃの０ステップ目に４０ステップの命令を挿入し、（ハ）のように、プログラムの最終ステップが１４０ステップとなる。
【００２７】
図１２の（ハ）において、ユーザｂが周辺装置１ｂから、プログラムの修正内容をＰＣ６に書き込むと、周辺装置１ｂは１００ステップに３０ステップ挿入する様ＰＣ６に修正指示伝文を送信するが、ＰＣ６内のプログラム１０ｃは、周辺装置１ｂ内のプログラムとは内容が異なるため、ユーザｂはプログラム最終ステップ目に命令を挿入することを意図して、ＰＣ６にプログラムを書き込んだにも拘らず、プログラムの途中である１００ステップ目に３０ステップの命令が挿入されてしまい、（ニ）のようになる。
【００２８】
次に、従来のＰＣ及び周辺装置を用い、ＰＣがプログラム実行時１台のＰＣのプログラムを１台の周辺装置により修正する場合の一例について説明する。
まず、従来のＰＣがプログラム実行時、ＰＣ及び周辺装置のプログラム修正処理を、図１３及び図１４に基づき説明する。
【００２９】
図１３は、周辺装置によりプログラム実行中のＰＣのプログラムを修正する場合の周辺装置及びＰＣの機能ブロック図である。
図において、１から３３は前項と同一のため省略する。４０はＰＣ側プログラム実行手段である。４１はＰＣを実行させるかどうか選択する外部スイッチである。
【００３０】
図１４は、周辺装置によりプログラム実行中のＰＣのプログラムを修正する場合の周辺装置及びＰＣの処理フローである。
【００３１】
つぎに、図１３及び図１４により、周辺装置によりプログラム実行中のＰＣのプログラムを修正する場合の処理を具体的に説明する。
なお、図１３及び図１４の周辺装置のプログラム修正処理の説明については、前項と同一のため省略する。
【００３２】
ＰＣ側プログラム実行手段４０は、現在のステップＮｏを０ステップに初期化し（ステップＳ６０１）、ＰＣ側通信手段が周辺装置１からプログラム修正情報を受信したかどうか確認し（ステップＳ６０１）、受信していた場合ＰＣ側通信手段はその修正内容をＰＣ側プログラム修正手段３３へ渡す。
【００３３】
ＰＣ側プログラム修正手段３３は、修正内容を受け取ると、その修正内容をシーケンスプログラム１０ｃに反映し（ステップＳ６０４）、その処理結果をＰＣ側通信手段３０へ渡す。
【００３４】
ＰＣ側通信手段３０は、ＰＣ側プログラム手段３３から処理結果を受け取ると、修正結果を通信ケーブル５を介して周辺装置１へ送信する（ステップＳ６０６）。
【００３５】
ＰＣ側プログラム実行手段４０は、ＰＣ側通信手段３０が周辺装置１への修正結果を送信すると、ＰＣ６の外部スイッチ４１の指定状態を確認し（ステップＳ６０７）、プログラム実行が選択されていない場合は処理を終了する（ステップＳ６１０）。
【００３６】
プログラム実行手段４０は、ＰＣ６の外部スイッチ４１によりプログラム実行が選択されると（ステップＳ６０７）、現在のステップＮｏのプログラムを、プログラム１０ｃに基づき実行し（ステップＳ６０８）、現在ステップＮｏをつぎのステップＮｏに変化させる（ステップＳ６０９）。
【００３７】
その後プログラム実行手段４０は、この一連の処理をＰＣ６の外部スイッチ４１で、プログラム実行以外にされるまで、繰り返す。
【００３８】
次に、ＰＣ及び従来の周辺装置を用い、１台のＰＣのプログラムを複数台の周辺装置によりモニタした場合の一例について説明する。
【００３９】
まず、ＰＣのデバイスの状態、すなわちデータを格納したＰＣの内部メモリ等の状態を周辺装置でモニタする場合の、ＰＣ及び周辺装置の内部処理を、１台のＰＣに１台の周辺装置が接続されている場合について、図３４〜図３６に基づき説明する。
その次に、複数台の周辺装置によるモニタを説明する。
【００４０】
図１５は、ＰＣのデバイスの状態を周辺装置でモニタする場合の、周辺装置及びＰＣの機能ブロック図である。
図において、１は周辺装置であり、通常パーソナルコンピュータ又はそれに相当する機能を有する装置が使用される。周辺装置１の内、３は周辺装置本体、２は周辺装置からの制御によりプログラムやＰＣの状態などを表示するディスプレイ、４はユーザがプログラム等を入力するためのキーボードであり、６はＰＣであり、ＰＣ６と周辺装置１とは、通信ケーブル５を介して接続されている。
また、３５０はモニタするデータを作成するモニタ情報作成手段、３５１は現在のデバイスのＯＮ／ＯＦＦ状態を示す情報が格納されているデバイス情報テーブル、３５２はデバイス情報テーブル３５１の内容により、周辺装置側からのモニタ情報テーブルへデバイス情報を書き込むデバイス情報作成手段、３５３はモニタ結果をディスプレイ２上に表示するモニタ結果表示手段である。
【００４１】
図１６は、周辺装置１でＰＣの動作をモニタする場合に、通信ケーブル５を介して周辺装置１からＰＣ６に対し伝送するモニタ情報である、モニタ情報テーブルの構成を示す図である。
図において、３６０はモニタ情報テーブル、３６１はモニタするデバイスの個数、３６２はモニタするデバイスの種類、３６３はモニタするデバイスの番号である。このデバイス番号は１６進数で連番になっている。３６４はＰＣから取り出したデバイス情報を格納するメモリに格納する際におけるメモリのアドレスを示すデバイス情報格納位置である。
ここで、モニタするある一つのデバイスに関する情報は、モニタするデバイスの個数３６１の次に、デバイスの種類３６２〜デバイス情報格納位置３６４を一組としてモニタするデバイスの個数分続く。
【００４２】
図１７は、ＰＣ６内の現在のデバイスの状態が格納されているテーブルの構成を示す図である。
図中、３７１は、ある種類のデバイスの現在の状態が格納されているテーブルである。このテーブルは各種類のデバイス毎にあり、それらを合わせてデバイス情報テーブル３７０を構成している。なお、このデバイス情報テーブル３７０はメモリに格納されている。図中の、Ｘ、および、Ｙはデバイスの種類を示し、Ｘは入力データ、Ｙは出力データを意味している。
【００４３】
図１８は、ＰＣのデバイスの状態を周辺装置でモニタする場合の周辺装置及びＰＣの処理フローである。
【００４４】
次に、図１８により、ＰＣデバイスの状態を周辺装置でモニタする場合の処理を具体的に説明する。
【００４５】
ステップＳ８００においてユーザがデバイスのモニタを指示すると、周辺装置内のモニタ情報作成手段３５０が図１６の形式のモニタ情報テーブル３６０を作成し、周辺装置側通信手段２３へ渡す。
【００４６】
ステップＳ８０１において周辺装置側通信手段２３は、モニタ情報テーブル３６０を通信ケーブル５を介してＰＣ６へ送信する。
【００４７】
ステップＳ８０２においてＰＣ側通信手段３０は、周辺装置１からモニタ情報テーブル３６０を受信すると、デバイス情報作成手段３５２へ渡す。
【００４８】
ステップＳ８０３においてデバイス情報作成手段３５２は、モニタ情報テーブル３６０の情報に従い、図１７のデバイス情報テーブル３７０からの現在のデバイスの状態を取りだし、ステップＳ８０４においてモニタ情報テーブル３６０のデバイス情報格納位置３６４に格納し、そのモニタ結果をＰＣ側通信手段３０へ渡す。
【００４９】
ステップＳ８０５においてＰＣ側通信手段３０は、デバイス情報作成手段３５２からモニタ結果を受け取ると、その内容を通信ケーブル５を介して周辺装置１へ送信する。
【００５０】
ステップＳ８０６において周辺装置側通信手段２３は、ＰＣ側通信手段３０からモニタ結果を受信すると、ステップＳ８０７においてモニタ結果表示手段３５３へ渡し、モニタ結果表示手段３５３はモニタ結果をディスプレイ２に表示する。
【００５１】
以上のように、ユーザによりモニタの要求が出されると、周辺装置ではモニタするデバイスの種類と番号とをＰＣに伝送し、ＰＣでは要求されたデバイスについて現在の情報のみを返していた。従って、周辺装置内およびＰＣ内のプログラムについての情報は伝達されない。
【００５２】
つぎに、１台のＰＣに２台の周辺装置が接続されている場合、一方がプログラムの修正をし、それをもう一方の周辺装置がモニタした時の状況を、図１９〜図２４に基づき、説明する。
【００５３】
図１９は、２台のＰＣに２台の周辺装置が接続されている場合の構成図である。図中、図１と同一番号は同一部分であることを示している。
【００５４】
図２０は、図１９の構成において、周辺装置１ａでＰＣ６ａ内のプログラムを書き換え、同時に周辺装置１ｂがＰＣ６ａをモニタしていたときの状況を時系列により示したものである。図は、上から下に向かって時間が経過していくものとしてあらわしている。
図中、３８０〜３８３はシーケンス命令の集合であるプログラムであり、その詳細は次に述べる各図の内容となる。
【００５５】
図２１は、図２０におけるプログラム３８０の詳細であり、周辺装置１ａ内のプログラムを書き換える前の初期状態である。
【００５６】
図２２は、図２０におけるプログラム３８１の詳細であり、これはプログラム３８０を、周辺装置１ｂにおいてモニタしたときの状態である。
図中、３９０は接点がＯＮの状態であることを示す記号、３９１は接点がＯＦＦの状態であることを示す記号、３９２はコイル出力がＯＮの状態であることを示す記号、３９３はコイル出力がＯＦＦの状態であることを示す記号である。
【００５７】
図２３は、図２０におけるプログラム３８２の詳細であり、周辺装置１ａ内のプログラムを書き換えた後の状態である。
【００５８】
図２４は、図２０におけるプログラム３８３の詳細であり、これはプログラム３８２を、周辺装置１ｂにおいてモニタしたときの状態である。
【００５９】
つぎに、図１９〜図２４により、１台のＰＣに２台の周辺装置が接続されている場合、一方がプログラムの修正をし、それをもう一方の周辺装置がモニタしている時のモニタ状況を具体的に説明する。
なお、周辺装置１ａは、ユーザａにより操作され、周辺装置１ｂは、ユーザｂにより操作されるものとする。
【００６０】
図２０において、（イ）は初期状態である。このとき周辺装置１ａと１ｂはＰＣ６ａのプログラムをモニタするために予めＰＣ６ａより読みだしているので、周辺装置１ａと１ｂ及びＰＣ６ａの内のプログラムは、図２１のプログラム３８０の内容であり同一である。
周辺装置１ｂでＰＣ６ａのプログラムをモニタしたとき、周辺装置１ｂのモニタの様子は図４１のプログラム３８１のように示される。
まず、接点Ｘ０がＯＮの状態３９０であることにより、コイル出力Ｙ０及びＹ１がともにＯＮの状態３９２となっており、一方、接点Ｘ１がＯＦＦの状態３９１であることにより、コイル出力Ｙ２はＯＦＦの状態３９３となっている。
【００６１】
図２０の（ロ）において、ユーザａが、周辺装置１ａのプログラムをプログラム３８０から、プログラム３８２に書き換えＰＣ６ａに書き込む。
このとき、周辺装置１ａ内のプログラムとＰＣ６ａ内のプログラムは同一のものとなるが、周辺装置１ｂ内のプログラムは、変更された内容が更新されていないためユーザｂがあらためてＰＣ６ａからプログラムを読み出すまでは、ＰＣ６ａ内のプログラムと異なった状態となる。
【００６２】
図２０の（ハ）において、ユーザｂが、変更後のプログラム５９０をＰＣ６ａから周辺装置１ｂへプログラムを読み出すことなくモニタを続けた場合、先に述べたモニタ情報テーブルの内容に従いデバイスの状態を表示するため、周辺装置１ｂのモニタの様子は図２４のプログラム３８３のように示される。すなわち、接点Ｘ０がＯＮの状態３９０であることにより、コイル出力Ｙ０はＯＮの状態３９２となるが、接点Ｘ０と同じ条件でＯＮ／ＯＦＦするはずのコイル出力Ｙ１はＰＣ６ａ内のプログラムは図２３の内容になっているため接点Ｘ０がＯＮしても、ＯＦＦの状態３９３となっている。
【００６３】
【発明が解決しようとする課題】
このように、従来技術にあっては、ＰＣおよび周辺装置は、プログラムの修正位置をプログラム先頭からのステップにより把握していた。このため、１台のＰＣに複数の周辺装置が接続されプログラムを修正する場合、他の周辺装置によりＰＣ内のプログラムが修正されたことを知らずに、修正前のプログラムに基づき周辺装置上にてプログラムを修正し、ＰＣに修正部分を書き込むと、周辺装置内のプログラムとＰＣ内のプログラムが異なるため、ＰＣ内のプログラムは、ユーザが全く意図しない部分が修正されてしまうという問題があった。
【００６４】
また、ＰＣは、プログラムの修正情報を受信すると、プログラムの実行中の場合でもプログラムの修正を順次実行していた。このため、プログラム修正中にＰＣのプログラム実行を止められない場合、プログラムの修正中に誤った情報をＰＣに書き込んでしまったり、プログラム実行のタイミングにずれが生じることにより、システム全体にその影響が及ぶことがあった。
【００６５】
また、従来技術においては、周辺装置からＰＣのデバイス情報をモニタする場合に周辺装置とＰＣとの間で伝達される情報は、モニタするデバイスの種類と番号の情報のみであり、周辺装置内およびＰＣ内のプログラムについての情報は伝達されていない。これは、他の周辺装置からのＰＣ内のプログラムの書き換えをチェックするために、モニタ中に周辺装置内のプログラムとＰＣ内のプログラムの照合という処理を行っていると、処理時間がかかり、ＣＰＵが実行中のプログラムの演算結果を、ユーザに迅速に知らせるというモニタの目的が達せられなくなるためである。
このため、１台のＰＣに複数の周辺装置が接続されＰＣのプログラムをモニタしていた場合、他の周辺装置によりＰＣ内のプログラムが修正されると、周辺装置内のプログラムとＰＣ内のプログラムが異なっているため、モニタ結果を修正前のプログラムに基づき誤った形で周辺装置上に表示してしまうという問題点があった。
【００６６】
また、同じプログラムを複数人数でメンテナンスしている状態では、メンテナンスしているユーザ一人一人が、現在ＰＣに接続している他の周辺装置をすべて把握していないと、他人が既にプログラムを書き換えていた場合でも、ＰＣ内のプログラムと異なっている周辺装置の古いプログラムをＰＣに書き込んでしまう問題があった。
【００６７】
この発明は、上記の問題点を解決するためになされたもので、接続しているＰＣ及び周辺装置が把握でき、１台の周辺装置からＰＣ内にプログラムを書き込むときなどには、接続するＰＣを通して他の周辺装置に、どの周辺装置からどのＰＣに対して何を行うかなどの情報をＰＣ及び他の周辺装置へ伝えることができるＰＣ及び周辺装置を備えたＰＣ装置を得ることを目的とする。
【００６８】
【課題を解決するための手段】
上記の目的を達成するために、この発明では、ある周辺装置が他の周辺装置と異なるものであることを示すための周辺装置の固有の識別番号の情報と、周辺装置をプログラマブルコントローラに接続する際に、固有の識別番号の情報をプログラマブルコントローラに送信する通信手段と、周辺装置と接続しているプログラマブルコントローラとで、任意の情報を送受信する通信手段と、周辺装置側のプログラムを変更しプログラマブルコントローラへ書き込む際、同時に自動的にその旨を伝える伝文を作成し送信する通信手段とを、周辺装置に設けるとともに、あるプログラマブルコントローラが他のプログラマブルコントローラと異なるものであることを示すための固有の識別番号の情報と、周辺装置がプログラマブルコントローラに接続された際に、周辺装置の固有の識別番号の情報により、現在接続している周辺装置を個別に認識する手段と、現在接続している周辺装置及びプログラマブルコントローラを、プログラマブルコントローラと直接接続した周辺装置及び、ネットワークなどで情報交換を行っている他のプログラマブルコントローラを通じて接続されている他の周辺装置についても、固有の識別番号の情報によって個別に把握し登録する手段と、プログラマブルコントローラに登録された他の周辺機器に対し、任意の情報を送受信する手段と、ある周辺装置によってプログラマブルコントローラ内のプログラムを書き換える要求があったとき、現在接続されている他の周辺機器に対し、プログラムを書き換える旨と、書き換えを要求した周辺装置及びプログラムが書き変わるプログラマブルコントローラの固有の識別番号とを報知する手段とを、プログラマブルコントローラに設けたものである。
【００６９】
【作用】
この発明においては、プログラムを変更しＰＣに書き込もうとする場合など、接続しているＰＣを通じて他の周辺装置へ情報を送信することができる。周辺装置は固有の識別番号を有するため、その情報がどの周辺装置から出されたものであるか知ることができる。また、他の周辺装置からの情報を受信し、ＰＣ内と異なるプログラムを修正し書き換えてしまうことを防ぐことができる。さらに、現在接続している周辺装置及びプログラマブルコントローラを、プログラマブルコントローラと直接接続した周辺装置及び、ネットワークなどで情報交換を行っている他のプログラマブルコントローラを通じて接続されている他の周辺装置についても、固有の識別番号の情報によって個別に把握し登録することができる。ある周辺装置から他の周辺装置へ情報が送信されると、周辺装置側では接続している他の周辺装置が何処にあるか等を把握していなくても、ＰＣ内の登録に従い情報を他の周辺装置に向かって送信することができる。周辺装置からの情報が、あるＰＣに対するプログラムの書き換えであった場合は、周辺装置の固有の識別番号と、ＰＣの固有の識別番号とから、どの周辺装置がどのＰＣのプログラムを書き換えようとしているかを把握し、情報を伝達することができる。
【００７０】
【実施例】
実施例１．
この発明に係るＰＣ及び周辺装置の他の実施例について説明する。
まず、ＰＣ及び周辺装置の固有の識別番号をＰＣに登録し、接続する周辺装置及びＰＣの接続状況を把握するためのテーブルを作成する手順と、ある周辺装置から他の周辺装置へユーザの作成した伝令文を送信する場合の処理について図１〜図４により説明する。
【００７１】
図１は、複数のＰＣがネットワークによって接続され、それぞれのＰＣに周辺装置が接続されている場合の構成図である。
図において、１ａ・１ｂは周辺装置であり、通常パーソナルコンピュータ又はそれに相当する機能を有する装置が使用される。６ａ・６ｂはＰＣであり、内部に接続情報登録テーブル３００をもつ。ＰＣ６ａ・ＰＣ６ｂはネットワークケーブル７を介して接続されており、ＰＣ６ａ・ＰＣ６ｂと周辺装置１ａ・周辺装置１ｂとはそれぞれ通信ケーブル５ａおよびケーブル５ｂを介して接続されている。ここで、ユーザａは周辺装置１ａとＰＣ６ａを管理し、ユーザｂは周辺装置１ｂとＰＣ６ｂを管理しているものとする。
【００７２】
図２は、ＰＣ内部にある接続情報登録テーブル３００の構成図である。
図中、３０１は、ＰＣに現在接続されている周辺装置の固有の識別番号を格納する接続周辺装置番号テーブルである。３０２はＰＣに直接接続されている周辺装置の現在のモードを格納する周辺装置状況テーブルである。３０３はＰＣがネットワークによって接続されている他のＰＣの固有の識別番号を格納する接続ＰＣ番号テーブルである。
ＰＣの固有の識別番号の登録は、ＰＣを接続するときに通常行うパラメータの設定によって登録される。
接続情報登録テーブル３００は、一つの接続周辺装置番号テーブル３０１と、周辺装置状況テーブル３０２と、接続ＰＣ台数分の接続ＰＣ番号テーブル３０３とから構成される。なお、３０１、３０３は、該当する識別番号がない場合には接続なしを示す情報が入る。
【００７３】
ここで、周辺装置状況テーブル３０２にＰＣが接続する周辺装置の現在のモードを格納するのは、他のＰＣから受信したプログラム変更に関する伝令デ−タを、接続する周辺装置に送信するかしないかを判断するためである。
プログラム書き換えに関する伝令データは、プログラムが書き替わるＰＣが自動で作成し接続する他のＰＣへ送信するため、ある周辺装置がＰＣのプログラムとは直接関係のない操作を行っている場合、ネットワークで接続されている他の周辺装置のプログラム書き換え情報をすべて受信していると、処理時間が掛かりユーザが操作を迅速に行うことができないためである。ここでは、直接接続されている周辺装置がモニタまたは編集を行うモードのときはこの周辺装置にプログラムの書き換えに関する情報を送信し、それ以外のモードのときは送信しないものとして説明する。
【００７４】
図３は、あるＰＣから接続する他のＰＣ及び他の周辺装置へ送信する伝令データ３１０の形式である。図中の３１１は伝令文の種類を格納する伝令種別テーブルであり、伝令文の内容が、プログラムの書き換えに関するものを示す書き換えフラグか、ユーザが作成した伝令文であることを示す伝令フラグかが格納される。３１２は伝令文を送信してきた周辺装置の固有の識別番号を格納する送信周辺装置番号テーブルであり、３１３は伝令文を受信したＰＣの固有の識別番号を格納する受信ＰＣ番号テーブルであり、３１４は伝令文である。
【００７５】
ここで伝令種別テーブル３１１がプログラムの書き換えに関する伝令文である場合は、図２の説明で述べたように、ＰＣが自動的に伝令文を作成しモニタまたは編集を行っている周辺装置に送信される。その際、伝令データを受信した周辺装置側では、周辺装置の固有の識別番号とＰＣの固有の識別番号によって、どの周辺装置がどのＰＣのプログラムを書き換えたのかを知ることができる。
【００７６】
図４は、ＰＣ内の接続情報登録テーブル３００を作成する処理フロー、および、ある周辺装置から他の周辺装置へユーザの作成した伝令文を送信する場合の処理フローを示す図である。
【００７７】
次に、図１〜図４により、ＰＣ６ａが、このＰＣ６ａに直接接続される周辺装置１ａの現在の状況を把握するための接続情報テーブル３００を作成する処理、及び、周辺装置１ｂと周辺装置１ａがネットワークを通じてつながっていることを、ユーザが把握していなくても接続するＰＣを通じて、周辺装置１ｂにおいて作成した伝令文を周辺装置１ａへ送信可能な処理について具体的に説明する。
【００７８】
ステップＳ４００においてユーザが周辺装置１ａにおいてアプリケーション立ち上げを指示し、ステップＳ４０１に進む。ステップＳ４０１において周辺装置１ａは通信ケーブル５ａを介して周辺装置の固有の識別番号と現在のモードとをＰＣ６ａへ送信し、ステップＳ４１１に進み伝令データの受信待ちになる。ＰＣ６ａは周辺装置１ａからこの固有の識別番号と現在のモードとを受信するとステップ４０２を実行する。ステップＳ４０２においてＰＣ６ａは、接続情報登録テーブル３００の接続周辺装置番号テーブル３０１に周辺装置の固有の識別番号を登録し、周辺装置状況テーブル３０２に周辺装置の現在のモードを登録し、ステップＳ４０９に進む。ステップＳ４０９では他のＰＣからの伝令データの受信待ちになる。
【００７９】
一方、周辺装置１ｂにおいては、ステップＳ４０３においてユーザが伝令文を作成すると、ステップＳ４０４において接続するＰＣ６ｂにこの伝令文を送信する。
【００８０】
ＰＣ６ｂにおいては、ステップＳ４０５において周辺装置１ｂから伝令文を受信すると、ステップＳ４０６において接続情報登録テーブル３０３から、周辺装置の固有の識別番号およびＰＣの固有の識別番号を読み出し、ステップＳ４０７において送信周辺装置番号テーブル３１２および受信ＰＣ番号テーブル３１３へ格納する。
また、伝令種別テーブル３１１に伝令フラグを設定して伝令データ３１１を作成し、ステップＳ４０８において他のＰＣへ伝令データを送信する。
【００８１】
ＰＣ６ａでは、ステップＳ４０９において他のＰＣから伝令データを受信すると、ステップＳ４１０において接続情報登録テーブル３００より、周辺装置が接続されていると判断される場合は伝令データをその周辺装置１ａに送信し、ステップＳ４１７に進む。ステップＳ４１７では周辺装置１ａからの現在のモードの受信待ちになる。周辺装置１ａは、ステップＳ４１０においてＰＣ６ａからの伝令データの受信判定により、ステップＳ４１１に進み、受信した伝令データを所定のメモリに格納する。
【００８２】
周辺装置１ａは、ステップＳ４１２において現在のモードから他のモードへの切り替えの有無を判定し、切替有りの場合はステップＳ４１４に進む。また、切替なしの場合はステップＳ４１３に進む。ステップＳ４１３においてその現在のモードの送信からある一定時間経過したか否かを判定し、一定時間経過していればステップＳ４１４に進み、一定時間経過していなければステップＳ４１５に進む。
そして、ステップＳ４１５においてアプリケーションを終了を判定し、終了していなければステップＳ４１１に戻り、終了していればステップＳ４１６に進む。ステップＳ４１６において周辺装置の登録解除をＰＣ６へ送信する。なお、この処理フローにより、一定時間経過毎に現在のモードをＰＣ６に送信する動作がアプリケーションの終了まで繰返される。
【００８３】
ＰＣ６は、周辺装置のモードの切り替え毎、あるいは一定時間の経過毎に周辺装置１ａから送られてくる現在のモードデータを受信したか否かについてステップＳ４１７で判定し、受信判定によりステップＳ４１８に進む。次に、ステップＳ４１８において現在のモードデータを更新しステップＳ４１９に進む。また、ステップＳ４１９において周辺装置１ａの登録解除を受信したか否かを判定
し、受信判定によりステップＳ４２０に進む。ステップＳ４２０において接続情報登録テーブル３００の周辺装置番号テーブル３０１に接続なしを示す情報を設定し周辺装置の登録を解除する。
ステップＳ４１７において、周辺装置の現在のモードが受信されていないと判定されると、ステップＳ４２１に進む。そして、ステップＳ４２１では一定時間を経過したか否かについて判定し、経過していればステップ４２０に進み、経過していなければステップＳ４１９に進む。以上の処理フローにより、例えば、アプリケーション終了の操作を行うことなく周辺装置の電源をＯＦＦにしたり、接続ケーブルが外れるなどのケースで、一定の時間を経過しても周辺装置１ａからの現在の周辺の状況の情報が受信されないときも、ステップＳ４２０においてアプリケーションの終了の場合と同様に、周辺装置番号テーブル３０１に接続なしを示す情報が設定される。
【００８４】
つぎに、周辺装置１ｂからＰＣ６ｂ内のプログラムの変更を行う場合に、周辺装置１ｂを操作するユーザがネットワークなどを介してどの周辺装置に接続しているかを把握していなくても、モニタや編集などのプログラムにかかわる操作をしている他の周辺装置に対してプログラム書き換えを自動的に知らせることを可能にする処理を図５を用いて説明する。
【００８５】
ステップＳ４５０において周辺装置１ｂからＰＣ６ａ内のプログラム書き換えの要求が出されると、ＰＣ６ｂはステップＳ４５０において、この要求を受信し、ステップＳ４５１に進む。ステップＳ４５１において伝令種別テーブル３１１に書き換えフラグを格納し、ＰＣ６ｂ内の接続情報登録テーブル３００より通信要求を行った周辺装置の固有の識別番号およびＰＣの固有の識別番号を読み出し、送信周辺装置番号テーブル３１２および受信ＰＣ番号テーブル３１３へ格納する。
そして、プログラム書き換えを示す伝令文を作成し、図４の形式の伝令データ３１０を作成する。
次に、ステップＳ４５２において、接続情報登録テーブル３００の接続ＰＣ番号テーブルにより、ＰＣ６ａに対して伝令データを送信する。
【００８６】
一方、周辺装置１ａは、従来例で説明した手順によってＰＣ１ｂ内のプログラムをモニタしており、ステップＳ４５３において操作者により所定の操作が行われるとステップＳ４５４に進む。ステップＳ４５４において一定時間の経過毎に現在のモードをＰＣ６ａに送信しステップＳ４５９に進む。ＰＣ６ａはステップＳ４５５において、受信した周辺装置の現在の状況を接続情報登録テーブル３００の周辺装置状況テーブル３０２に格納することによって、周辺装置１ａのモードを把握している。
【００８７】
ＰＣ６ａがステップＳ４５６においてＰＣ６ｂからの伝令データを受信したか否かを判定し、受信していればステップＳ４５７に進む。また、受信していなければステップＳ４６３３に進む。ステップＳ４５７において周辺装置状況テーブル３０２により周辺装置１ａはモニタ中か否かを判定し、モニタ中であればステップＳ４５８に進み、モニタ中でなければステップＳ４６３３に進む。ステップＳ４５８においてＰＣ６ａは周辺装置１ａへ伝令データを送信し、ステップＳ４６３３に進む。ステップＳ４６３３では他モードへの切替えの有無を判定し、切替があればステップＳ４６３に進む。また、切替えがなければステップＳ４５６に戻る。
このとき、周辺装置１ａがプログラムの書き換えと関係ないモードであった場合や、ＰＣ６ａに周辺装置１ａが接続されていない場合は、伝令データは送信されない。
【００８８】
周辺装置１ａではステップＳ４５９においてプログラム書き換えの伝文を受信したか否かを判定し、伝令データを受信すると、ステップＳ４６０に進む。ステップＳ４６０において伝令データの受信ＰＣ番号テーブル３１３により、現在モニタしているＰＣ内のプログラムが書き替わったことがわかるので、必要に応じＰＣ６ｂのプログラムを再読出し、ステップＳ４５３に戻る。ステップＳ４５９において、伝令文を受信していない場合はステップＳ４６１に進む。
【００８９】
周辺装置１ａはステップＳ４６１において他のモードへの切り替えの有無を判定し、切替えが有ればステップＳ４６２に進む。ステップＳ４６２においてＰＣ６ａに切り替えたモードを送信する。ＰＣ６はＳ４６３において周辺装置１ａの現在のモードを更新する。
【００９０】
【発明の効果】
この発明によれば、ある周辺装置でプログラムをモニタしていた場合、送信した周辺装置とＰＣを個別に示す情報が伝令データ中からわかり、モニタしているプログラムが変更されたときにはＰＣから変更後のプログラムを読み出すなどの処理を行うことができるので、修正前のプログラムにより誤った形でモニタ結果が周辺装置上に表示されていることに気がつかないといったミスを防ぐことができる。また、ある周辺装置がこれからプログラムを変更しようとした場合、接続したＰＣにのみ情報を送信することで、その周辺装置側では、接続している他の周辺装置が何処に何台あるか等を把握していなくても、ＰＣ内の登録に従い情報を他の周辺装置に向って送信することができるので、連絡漏れにより他の周辺装置でプログラムを修正したことを知らずに、修正前のプログラムに手を加えたプログラムを書き込んでしまうといったミスを防ぐことができる。そして、ＰＣに関する操作を行っている周辺装置に対してのみ送信するので、ＰＣの制御への影響が小さくなる。
【図面の簡単な説明】
【図１】  この発明の実施例における複数のＰＣがネットワークによって接続され、それぞれのＰＣに周辺装置が接続されている場合の構成図である。
【図２】  この発明の実施例におけるＰＣ内部にある接続情報登録テーブル３００の構成図である。
【図３】  この発明の実施例におけるあるＰＣから接続する他のＰＣ及び他の周辺装置へ送信する伝令データ３１０の形式を示す図である。
【図４】 この発明の実施例におけるＰＣ内の接続情報登録テーブル３００を作成する処理、及び、ユーザの作成した伝令文を、ある周辺装置から接続するＰＣを通じて他の周辺装置へ送信する場合の処理フローを示す図である。
【図５】  この発明の実施例におけるモニタや編集などのプログラムに係る操作をしている他の周辺装置に対してプログラム書き換えを自動的に知らせる場合の処理フローを示す図である。
【図６】  従来例における周辺装置及びＰＣの機能ブロック図である。
【図７】  従来例における周辺装置によりＰＣのプログラムを修正する場合の周辺装置及びＰＣの処理フローを示す図である。
【図８】  従来例における周辺装置からＰＣへプログラムの修正を指示するための修正指示伝文形式を示す図である。
【図９】  従来例における実際の修正指示伝文例を示す図である。
【図１０】  従来例におけるＰＣから周辺装置へプログラムの修正結果を通知するための修正結果通知伝文を示す図である。
【図１１】  従来例における１台のＰＣに２台の周辺装置が接続されている場合の構成図である。
【図１２】 従来例における１台のＰＣに２台の周辺装置が接続されている場合のプログラム修正の流れを時系列で表した図である。
【図１３】  従来例における周辺装置及びＰＣの機能ブロック図である。
【図１４】  従来例における周辺装置によりＰＣのプログラムを修正する場合の周辺装置及びＰＣの処理フローを示す図である。
【図１５】  従来例におけるＰＣのデバイスの状態を周辺装置でモニタする場合の、周辺装置及びＰＣの機能ブロック図である。
【図１６】  従来例におけるモニタ情報テーブルの構成を示す図である。
【図１７】  従来例における現在のデバイスの状態が格納されているテーブルの構成を示す図である。
【図１８】  従来例におけるＰＣのデバイスの状態をモニタする場合の周辺装置及びＰＣの処理フローを示す図である。
【図１９】  従来例における１台のＰＣに２台の周辺装置が接続されている場合の構成図である。
【図２０】  図１９の構成において、周辺装置１ａでＰＣ６内のプログラムを書き換え、同時に周辺装置１ｂがＰＣ６をモニタしていたときの状況を時系列により示した図である。
【図２１】  図２０におけるプログラム３８０の詳細を示す図であり、周辺装置１ａ
内のプログラムを書き換える前の初期状態を示している。
【図２２】  図２１におけるプログラム３８１の詳細を示す図であり、プログラム３８０を、周辺装置１ｂにおいてモニタしたときの状態を示している。
【図２３】  図２０におけるプログラム５９０の詳細を示す図であり、周辺装置１ａ内のプログラムを書き換えた後の状態を示している。
【図２４】  図２０におけるプログラム６００の詳細を示す図であり、プログラム５９０を、周辺装置１ｂにおいてモニタしたときの状態を示している。
【符号の説明】
１ａ・１ｂ  周辺装置、２  モニタ、３  周辺装置本体、４  キーボード、５通信ケーブル、６ａ・６ｂ  ＰＣ、１０  プログラム、２０  周辺装置側プログラム修正手段、２１  周辺装置側ポインタ検索手段、２２  相対ステップ変換手段、２３  周辺装置側通信手段、２４  修正結果表示手段、３０  ＰＣ側通信手段、３１  ポインタ検索手段、３２  絶対ステップ変換手段、３３  ＰＣ側プログラム、５０  修正指示手段、６０  修正結果通知伝文、６１  周辺装置、６２  モニタ、６３  周辺装置本体、６４  キーボード、６５  通信ケーブル、６６  ＰＣ、７０  プログラム、８０  周辺装置側範囲指定選択手段、８１  周辺装置側検索手段、８２  相対ステップ変換手段、８３  周辺装置側通信手段、８４  表示手段、８５  周辺装置側内部メモリ、９０  ＰＣ側通信手段、９１  ＰＣ側範囲指定選択手段、９２  絶対ステップ変換手段、９３  ＰＣ側検索手段、９４  ＰＣ側内部メモリ、９５  プログラム修正手段、９６  プログラム実行手段、９７  外部スイッチ、２００  ＰＣ内部メモリ、２０１  修正登録箇所時間管理データメモリ、２０２  プログラムの範囲情報登録メモリ、２１０  時間管理データ、２１１  時間管理データ番号、２２０  ＰＣ内部メモリ、２２１  登録パスワード、２２２  比較対象パスワード、３００  接続情報登録テーブル、３０１  接続周辺装置番号テーブル、３０２  周辺装置状況テーブル、３０３  接続ＰＣ番号テーブル、３１０  伝令データ、３１１  伝令種別テーブル、３１２  送信周辺装置番号テーブル、３１３  受信ＰＣ番号テーブル、３１４  伝令文、３５０  モニタ情報作成手段、３５１  デバイス情報テーブル、３５２  デバイス情報作成手段、３５３  モニタ結果表示手段、３６０  モニタ情報テーブル、３６１  モニタするデバイスの個数、３６２  モニタするデバイスの種類、３６３  モニタするデバイスの番号、３６４  デバイス情報格納装置、３７０デバイス情報テーブル、３７１  ある種類のデバイスの現在の状態が格納されているテーブル、３８０〜３８３  シーケンスの命令の集合であるプログラム、３９０  接点がＯＮの状態であることを示す記号、３９１  接点がＯＦＦの状態であることを示す記号、３９２  コイル出力がＯＮの状態であることを示す記号、３９３  コイル出力がＯＦＦの状態であることを示す記号。
【図１】
0003777152.tif 000002
【図２】
0003777152.tif 000003
【図３】
0003777152.tif 000004
【図４】
0003777152.tif 000005
【図５】
0003777152.tif 000006
【図６】
0003777152.tif 000007
【図７】
0003777152.tif 000008
【図８】
0003777152.tif 000009
【図９】
0003777152.tif 000010
【図１０】
0003777152.tif 000011
【図１１】
0003777152.tif 000012
【図１２】
0003777152.tif 000013
【図１３】
0003777152.tif 000014
【図１４】
0003777152.tif 000015
【図１５】
0003777152.tif 000016
【図１６】
0003777152.tif 000017
【図１７】
0003777152.tif 000018
【図１８】
0003777152.tif 000019
【図１９】
0003777152.tif 000020
【図２０】
0003777152.tif 000021
【図２１】
0003777152.tif 000022
【図２２】
0003777152.tif 000023
【図２３】
0003777152.tif 000024
【図２４】
0003777152.tif 000025