(57)【特許請求の範囲】
【請求項１】
制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置であって、
制御プログラムを構成する単位プログラムごとに、各単位プログラムの内容に応じて識別情報を算出する算出手段と、
単位プログラムと当該単位プログラムに関連付けられる識別情報とを前記制御装置へ転送する第１の転送手段と、
前記制御プログラムを構成するいずれかの単位プログラムに対する変更操作に応じて、変更後の単位プログラムを生成する生成手段と、
前記制御プログラムを構成する単位プログラムに関連付けられる識別情報と同一の識別情報が前記制御装置に存在していることを条件として、運転中の前記制御装置に対して、前記変更後の単位プログラムを転送する第２の転送手段とを備え、
前記生成手段は、前記制御プログラムが参照する変数テーブルに対する変更操作に応じて、変更後の変数テーブルを生成し、
前記第２の転送手段は、変更後の変数テーブルにおいて、変更前の変数テーブルの内容がすべて包含されていることを条件として、前記変更後の変数テーブルを前記制御装置へ転送する、サポート装置。
【請求項２】
前記第２の転送手段は、前記制御プログラムを構成する複数の単位プログラムのうち、何らかの変更操作がなされた１または複数の単位プログラムについて、対応する識別情報が当該１または複数の単位プログラムのいずれについても前記制御装置に存在していることを条件として、前記変更後の単位プログラムを前記制御装置へ転送する、請求項１に記載のサポート装置。
【請求項３】
前記算出手段は、ハッシュ関数を用いて、各単位プログラムのプログラムコードまたはプログラムオブジェクトから前記識別情報を算出する、請求項１または２に記載のサポート装置。
【請求項４】
前記生成手段は、前記運転中の制御装置に対して、前記変更後の単位プログラムを転送する場合の制約に適合するように、指示可能な変更操作を制限する、請求項１〜３のいずれか１項に記載のサポート装置。
【請求項５】
前記第２の転送手段は、転送対象の変数テーブルおよび１または複数の単位プログラムを予め定められた順序または指定された順序で転送する、請求項４に記載のサポート装置。
【請求項６】
前記第２の転送手段は、転送先の制御装置の特性値に応じて、転送対象の変数テーブルおよび１または複数の単位プログラムの転送順序を決定する、請求項５に記載のサポート装置。
【請求項７】
制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置を実現するためのサポートプログラムであって、前記サポートプログラムは、コンピュータを、
第１のプログラムを構成する単位プログラムごとに、各単位プログラムの内容に応じて識別情報を算出する算出手段と、
単位プログラムと当該単位プログラムに関連付けられる識別情報とを前記制御装置へ転送する第１の転送手段と、
前記第１のプログラムを構成するいずれかの単位プログラムに対する変更操作に応じて、変更後の単位プログラムを生成する生成手段と、
前記制御プログラムを構成する単位プログラムに関連付けられる識別情報と同一の識別情報が前記制御装置に存在していることを条件として、運転中の前記制御装置に対して、前記変更後の単位プログラムを転送する第２の転送手段として機能させ、
前記生成手段は、前記制御プログラムが参照する変数テーブルに対する変更操作に応じて、変更後の変数テーブルを生成し、
前記第２の転送手段は、変更後の変数テーブルにおいて、変更前の変数テーブルの内容がすべて包含されていることを条件として、前記変更後の変数テーブルを前記制御装置へ転送する、サポートプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置およびそれを実現するためのサポートプログラムに関する。
【背景技術】
【０００２】
様々な製造現場において、ＰＬＣ（Programmable Logic Controller）などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムが実行される。このような制御プログラムは、制御装置とは別に用意された開発環境にて作成される。開発環境を提供するとともに、制御装置に対して制御プログラムをアップロードし、あるいは、制御装置に対して制御プログラムをダウンロードする機能を提供する装置は、サポート装置とも称される。
【０００３】
制御対象である製造装置を停止させることが容易ではない場合も多い。制御装置で実行される制御プログラムを一部手直ししたいような場合であっても、制御装置を一旦停止させなければ、制御プログラムを更新できないということであれば、使い勝手が悪い。そのため、制御装置の運転中に実行される制御プログラムの一部を書き換えるためのオンラインエディット機能が実装されることが好ましい。
【０００４】
例えば、特開２００９−２２３５９０号公報（特許文献１）は、ソースプログラムの一部分をコンパイラにかけて変換することにより得られたオブジェクトコード部分により、ＰＬＣに記憶されているオブジェクトコードを書き換えるオンラインエディット動作を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２２３５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の特許文献１に開示されるプログラム開発支援装置は、主として、特定のＰＬＣに対してオンラインエディットを実行することが想定されているが、実際の製造ラインなどでは、複数のＰＬＣにて同様の制御プログラムが実行されることも多い。このような状況化において、複数のＰＬＣで実行されるそれぞれの制御プログラムに対して、同一の修正を適用する場合には、設置されているＰＬＣの台数だけ同様の操作を行なわなければならず、意図せぬトラブルを生じる可能性がある。本発明は、このような課題を解決することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のある局面に従えば、制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置が提供される。サポート装置は、制御プログラムを構成する単位プログラムごとに、各単位プログラムの内容に応じて識別情報を算出する算出手段と、単位プログラムと当該単位プログラムに関連付けられる識別情報とを制御装置へ転送する第１の転送手段と、制御プログラムを構成するいずれかの単位プログラムに対する変更操作に応じて、変更後の単位プログラムを生成する生成手段と、制御プログラムを構成する単位プログラムに関連付けられる識別情報と同一の識別情報が制御装置に存在していることを条件として、運転中の制御装置に対して、変更後の単位プログラムを転送する第２の転送手段とを含む。
【０００８】
好ましくは、第２の転送手段は、制御プログラムを構成する複数の単位プログラムのうち、何らかの変更操作がなされた１または複数の単位プログラムのそれぞれについて、対応する識別情報のすべてが制御装置に存在していることを条件として、変更後の単位プログラムを制御装置へ転送する。
【０００９】
好ましくは、算出手段は、ハッシュ関数を用いて、各単位プログラムのプログラムコードまたはプログラムオブジェクトから識別情報を算出する。
【００１０】
好ましくは、生成手段は、運転中の制御装置に対して、変更後の単位プログラムを転送する場合の制約に適合するように、指示可能な変更操作を制限する。
【００１１】
好ましくは、生成手段は、制御プログラムを構成する変数テーブルに対する変更操作に応じて、変更後の変数テーブルを生成し、第２の転送手段は、変更後の変数テーブルにおいて、変更前の変数テーブルの内容がすべて包含されていることを条件として、変更後の変数テーブルを制御装置へ転送する。
【００１２】
さらに好ましくは、第２の転送手段は、転送対象の変数テーブルおよび１または複数の単位プログラムを予め定められた順序または指定された順序で転送する。
【００１３】
さらに好ましくは、第２の転送手段は、転送先の制御装置の特性値に応じて、転送対象の変数テーブルおよび１または複数の単位プログラムの転送順序を決定する。
【００１４】
本発明の別の局面に従えば、制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置を実現するためのサポートプログラムが提供される。サポートプログラムは、コンピュータを、第１のプログラムを構成する単位プログラムごとに、各単位プログラムの内容に応じて識別情報を算出する算出手段と、単位プログラムと当該単位プログラムに関連付けられる識別情報とを制御装置へ転送する第１の転送手段と、第１のプログラムを構成するいずれかの単位プログラムに対する変更操作に応じて、変更後の単位プログラムを生成する生成手段と、制御プログラムを構成する単位プログラムに関連付けられる識別情報と同一の識別情報が制御装置に存在していることを条件として、運転中の制御装置に対して、変更後の単位プログラムを転送する第２の転送手段として機能させる。
【発明の効果】
【００１５】
本発明のある実施の形態のサポート装置およびサポートプログラムによれば、運転中の制御装置に対する制御プログラムの変更作業を容易化できる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に従うサポート装置を適用可能なＰＬＣシステムの構成例を示す模式図である。
【図２】図１に示すＰＬＣシステムを構成するＰＬＣのハードウェア構成例を示す模式図である。
【図３】図１に示すＰＬＣシステムを構成するサポート装置のハードウェア構成例を示す模式図である。
【図４】図１に示すＰＬＣシステムを構成するＰＬＣのソフトウェア構成例を示す模式図である。
【図５】本実施の形態に従うサポート装置を用いて複数のＰＬＣに対してプログラムを変更する際の処理手順を示すフローチャートである。
【図６】本実施の形態に従うサポート装置に実装される整合性チェック機能による識別情報を用いたチェックを説明するための模式図である。
【図７】本実施の形態に従うサポート装置に実装される整合性チェック機能におけるグローバル変数テーブルのチェック内容を説明するための模式図である。
【図８】図５に示すフローチャートのステップＳ１２２におけるより詳細な処理手順を示すフローチャートである。
【図９】本実施の形態に従うサポート装置に実装される変更操作の制限機能を説明する模式図である。
【図１０】本実施の形態に従うサポート装置が提供する転送順序を設定するためのユーザインターフェイス画面の一例を示す図である。
【図１１】本実施の形態に従うオンラインエディット機能によって転送された制御プログラムの実行開始タイミングを説明するための図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１８】
＜Ａ．ＰＬＣシステムの構成例＞
まず、本実施の形態に従うサポート装置を適用可能なＰＬＣシステムの構成例について説明する。図１は、本実施の形態に従うサポート装置２００を適用可能なＰＬＣシステム１の構成例を示す模式図である。
【００１９】
図１を参照して、ＰＬＣシステム１は、複数のＰＬＣ１００−１，１００−２，１００−３，１００−４，…（以下、「ＰＬＣ１００」とも総称する。）を含んでいる。ＰＬＣ１００の各々は、互いに同様の製造装置を制御しており、実行される制御プログラムも実質的に同一であるとする。本実施の形態に従うサポート装置２００は、このような運転中（すなわち、制御プログラムを実行中）の複数のＰＬＣ１００に対して、それぞれの制御プログラムの一部をより容易に変更することが可能になっている。
【００２０】
ＰＬＣ１００の各々は、制御対象を制御する制御装置の一例である。ＰＬＣ１００は、典型的には、制御プログラムを含む各種プログラムを実行する主体であるＣＰＵユニット１０と、ＣＰＵユニット１０などへ電力を供給する電源ユニット１２と、フィールドからの信号を遣り取りするＩ／Ｏ（Input/Output）ユニット１４とを含む。Ｉ／Ｏユニット１４は、ＣＰＵユニット１０とシステムバス１１を介して接続されている。
【００２１】
サポート装置２００は、制御対象を制御する制御装置であるＰＬＣ１００で実行される制御プログラムの開発を支援する。サポート装置２００は、ＰＬＣ１００で実行される制御プログラムを含む各種プログラムを開発するための環境を提供する機能、ＰＬＣ１００に対して制御プログラムおよび各種情報を設定する機能、運転中のＰＬＣ１００の状態値を取得する機能などを含む。さらに、サポート装置２００は、ユーザによる制御プログラムの開発を支援するため、デバック機能やシミュレーション機能を有していてもよい。
【００２２】
光学記録媒体２５０に格納されたアプリケーションプログラムであるサポートプログラムがサポート装置２００にインストールされることで、上述したような各種機能が実現される。光学記録媒体２５０に代えて、外部のサーバ装置などからネットワークを介して、サポートプログラムをダウンロードするようにしてもよい。サポート装置２００は、一例として、接続ケーブルを介してＰＬＣ１００のＣＰＵユニット１０と接続される。サポート装置２００は、典型的には、パーソナルコンピュータで実現される。
【００２３】
＜Ｂ．ＰＬＣ１００のハードウェア構成例＞
次に、ＰＬＣ１００のハードウェア構成例について説明する。図２は、図１に示すＰＬＣシステムを構成するＰＬＣ１００のハードウェア構成例を示す模式図である。
【００２４】
図２を参照して、ＰＬＣ１００は、予めインストールされたプログラムをプロセッサが実行することで、制御対象に対する制御を実現する。より具体的には、ＰＬＣ１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、フラッシュメモリ１０８と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８と、内部バスコントローラ１２２と、フィールドバスコントローラ１２４とを含む。
【００２５】
プロセッサ１０２は、フラッシュメモリ１０８に格納されたシステムプログラム１１０およびユーザプログラム１１２を読み出して、メインメモリ１０６に展開して実行することで、制御対象に対する制御を実現する。本明細書において、「制御プログラム」は、システムプログラム１１０およびユーザプログラム１１２を包含する概念である。但し、実装方式においては、制御プログラムは、ユーザプログラム１１２のみを含む場合もある。
【００２６】
システムプログラム１１０は、データの入出力処理や実行タイミング制御などの、ＰＬＣ１００の基本的な機能を提供するための命令コードを含む。ユーザプログラム１１２は、制御対象に応じて任意に設計される制御プログラムの一種であり、シーケンス制御を実行するためのシーケンスプログラム１１２Ａおよびモーション制御を実行するためのモーションプログラム１１２Ｂとを含む。
【００２７】
チップセット１０４は、各コンポーネントを制御することで、ＰＬＣ１００全体としての処理を実現する。
【００２８】
内部バスコントローラ１２２は、ＰＬＣ１００と内部バスを通じて連結されるＩ／Ｏユニット１４との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ１２４は、ＰＬＣ１００と図示しないフィールドバスを通じて連結されるＩ／Ｏユニット１６との間でデータを遣り取りするインターフェイスである。内部バスコントローラ１２２およびフィールドバスコントローラ１２４は、対応のＩ／Ｏユニット１４および１６にそれぞれ入力される状態値を取得するとともに、プロセッサ１０２での演算結果を対応のＩ／Ｏユニット１４および１６から指令値としてそれぞれ出力する。
【００２９】
外部ネットワークコントローラ１１６は、各種の有線／無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス１１８は、メモリカード１２０を着脱可能に構成されており、メモリカード１２０に対してデータを書込み、メモリカード１２０からデータを読出すことが可能になっている。
【００３０】
ＰＬＣ１００がプログラムを実行することで提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
【００３１】
＜Ｃ．サポート装置２００のハードウェア構成例＞
次に、サポート装置２００のハードウェア構成例について説明する。図３は、図１に示すＰＬＣシステムを構成するサポート装置２００のハードウェア構成例を示す模式図である。図３を参照して、サポート装置２００は、典型的には、汎用のコンピュータで構成される。なお、ＰＬＣ１００が配置される製造現場における保守性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００３２】
サポート装置２００は、オペレーティングシステム（ＯＳ）を含む各種プログラムを実行するＣＰＵ２０２と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）１０４と、ＣＰＵ２０２でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ２０６と、ＣＰＵ２０２で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）２０８とを含む。
【００３３】
サポート装置２００は、さらに、ユーザからの操作を受け付けるキーボード２１０およびマウス２１２と、情報をユーザに提示するためのディスプレイ２１４とを含む。サポート装置２００は、ＰＬＣ１００（ＣＰＵユニット１０）などと通信するための通信インターフェイス２１８を含む。
【００３４】
サポート装置２００は、光学記録媒体２５０からそれに格納されているサポートプログラムを読み取るための光学記録媒体読取装置２１６を含む。
【００３５】
＜Ｄ．ＰＬＣ１００のソフトウェア構成例＞
次に、ＰＬＣ１００のソフトウェア構成例について説明する。図４は、図１に示すＰＬＣシステムを構成するＰＬＣ１００のソフトウェア構成例を示す模式図である。
【００３６】
図４を参照して、ＰＬＣ１００では、制御プログラムとして、システムプログラム１１０およびユーザプログラム１１２が実行される。システムプログラム１１０は、その機能の一部として、Ｉ／Ｏモジュール１６０を有しており、Ｉ／Ｏユニットがフィールド側と遣り取りするデータ（フィールドから取得したデータ、および、フィールドへ出力するデータ）をグローバル変数テーブル１５０と関連付ける。
【００３７】
ＰＬＣ１００では、変数プログラミングが可能になっており、ユーザプログラム１１２は、グローバル変数テーブル１５０において定義されたフィールドデータに関連付けられた変数値を用いて、各種処理が実行可能になっている。
【００３８】
ユーザプログラム１１２のシーケンスプログラム１１２Ａは、主として、ラダーセクション１３０と、ラダーファンクション１３２と、ラダーファンクションブロック（「ラダーＦＢ」とも記す。）１３４とから構成される。また、ユーザプログラム１１２のモーションプログラム１１２Ｂは、主として、ＳＴ（Structured Text）プログラム１４０と、ＳＴファンクション１４２と、ＳＴファンクションブロック（「ＳＴＦＢ」とも記す。）１４４とを含む。
【００３９】
ＳＴは、ＩＥＣ６１１３１−３で規定されている、主として、ＰＬＣ用の高級言語である。ＳＴプログラム１４０、ＳＴファンクション１４２、ＳＴファンクションブロック１４４は、モーションプログラム１１２Ｂだけではなく、ＨＭＩ（Human Machine Interface）処理、通信処理、レシピデータ処理、その他高機能処理にも用いられる。
【００４０】
ラダーセクション１３０は、ラダーロジック言語によって記述されたプログラムを含む。ラダーファンクション１３２は、１または複数のラダープログラムを組み合わせたものであり、ラダーセクション１３０から呼び出されて実行され、その実行結果を呼び出し元のプログラムに戻す。ラダーファンクションブロック１３４は、特定の処理を実現するために、１または複数のラダープログラムを組み合わせたプログラムの単位であり、１または複数のラダーセクション１３０から呼び出されて実行される。ラダーファンクション１３２およびラダーファンクションブロック１３４は、一種のサブルーチンであり、再帰的な呼び出しも可能になっている。
【００４１】
ＳＴプログラム１４０は、ＳＴ言語によって記述されたプログラムを含む。ＳＴファンクション１４２は、１または複数のＳＴ言語での命令を組み合わせたものであり、ＳＴプログラム１４０から呼び出されて実行され、その実行結果を呼び出し元のプログラムに戻す。ＳＴファンクションブロック１４４は、特定の処理を実現するために、１または複数のＳＴ言語での命令を組み合わせたプログラムの単位であり、１または複数のＳＴプログラム１４０から呼び出されて実行される。ＳＴファンクション１４２およびＳＴファンクションブロック１４４は、一種のサブルーチンであり、再帰的な呼び出しも可能になっている。
【００４２】
以下の説明では、ラダーセクション１３０、ラダーファンクション１３２、ラダーファンクションブロック１３４、ＳＴプログラム１４０、ＳＴファンクション１４２、ＳＴファンクションブロック１４４の各々を、「ＰＯＵ（Program Organization Unit）」とも称す。複数のファンクションまたはファンクションブロックがある場合には、個々のファンクションまたはファンクションブロックが１つのＰＯＵに相当する。
【００４３】
本実施の形態に従うＰＬＣ１００には、オンラインエディット機能が実装されている。オンラインエディット機能では、ＰＯＵの単位で、プログラムの変更・更新・削除が可能になっている。すなわち、ＰＯＵは、一種の単位プログラムであり、ＰＯＵごとにＰＬＣ１００へ転送される。但し、「単位プログラム」がＰＯＵと全く同一である必要はなく、複数のＰＯＵを１つの「単位プログラム」とみなしてもよい。
【００４４】
オンラインエディット機能を用いることで、ＰＬＣ１００の運転（通常の制御プログラムを繰り返し実行している間）を継続しつつ、制御プログラムに対する必要な変更を加えることができる。
【００４５】
＜Ｅ．課題および目的＞
図１に示すようなＰＬＣシステム１において、ＰＬＣ１００の各々は、互いに同様の製造装置を制御しており、実行される制御プログラムも実質的に同一であるとする。このような複数のＰＬＣ１００でそれぞれ実行される制御プログラムに対して、オンラインエディット機能を用いた修正は可能である。しかしながら、すべてのＰＬＣ１００に対して、同様の修正を行なうためには、サポート装置２００をＰＬＣ１００に接続し、プログラムの変更または修正プログラムの転送といった作業を、ＰＬＣ１００の数だけ繰返す必要がある。
【００４６】
また、セキュリティ上の観点などから、生産システムまたは生産ラインに配置されるＰＬＣ１００に対して、遠隔で制御プログラムの修正などを行なう、リモートアクセスが制限されている場合も多い。そのため、ＰＬＣ１００が配置されている製造現場にて、保守担当者などが制御プログラムの修正作業を繰り返し行なう必要がある。
【００４７】
しかしながら、保守担当者がＰＬＣ１００について十分な知識を持っていない場合もあり、また、繰り返し作業を行なうことで、より多くの作業時間がかかる、あるいは、作業ミスや作業漏れが発生する可能性もある。
【００４８】
そのため、複数のＰＬＣ１００のそれぞれで実行される制御プログラムに対して、同様の修正を行なう作業をより簡素化して、かつ、作業ミスなどが発生する可能性を低減できる機能が要望されている。
【００４９】
そこで、本実施の形態に従うサポート装置２００は、対象のＰＬＣ１００で実行されている制御プログラムに対して変更を加えてよいか否かを判断する整合性チェック機能を実装している。
【００５０】
＜Ｆ．処理手順＞
次に、整合性チェック機能を実装したサポート装置２００を用いて、複数のＰＬＣ１００に対してプログラムを変更する際の処理手順について説明する。図５は、本実施の形態に従うサポート装置２００を用いて複数のＰＬＣ１００に対してプログラムを変更する際の処理手順を示すフローチャートである。図５に示す各ステップは、サポート装置２００（厳密には、サポート装置２００のＣＰＵ２０２）がサポートプログラムを実行することで、実現される。
【００５１】
図５を参照して、サポート装置２００は、サポート装置用アプリケーションプログラムが実行され、制御プログラムの編集画面を起動し（ステップＳ１００）、保存している制御プログラム（以下、「オリジナルプログラム」とも称す。）およびグローバル変数テーブル（以下、「オリジナル変数テーブル」とも称す。）を読み出す（ステップＳ１０２）。そして、サポート装置２００は、読み出したオリジナルプログラムに関連付けられる識別情報を格納する（ステップＳ１０４）。
【００５２】
サポート装置２００は、制御プログラムを構成するＰＯＵごとに、各ＰＯＵの内容に応じて識別情報を算出する機能を有している。ステップＳ１０４において、識別情報は、オリジナルプログラムに含まれるＰＯＵごとに付与される。この識別情報は、制御プログラムに対して何らの変更がなされたか否かを判断するための情報であり、オリジナルプログラムそのものを用いてもよい。但し、情報量を削減するためには、オリジナルプログラムのデータから算出されるハッシュ値（あるいは、メッセージダイジェスト）、または、オリジナルプログラムの属性情報（例えば、更新日時などを含む）などを用いてもよい。すなわち、サポート装置２００は、ハッシュ関数を用いて、各ＰＯＵのプログラムコードまたはプログラムオブジェクトなどから識別情報を算出する。
【００５３】
続いて、サポート装置２００は、プログラム編集作業者による変更操作に従って、対象のオリジナルプログラムおよびオリジナル変数テーブルを変更する（ステップＳ１０６）。
【００５４】
ステップＳ１０６におけるオリジナルプログラムおよびオリジナル変数テーブルに対する変更操作においては、オンラインエディット機能における制約を満たす範囲での操作が許容される。具体的には、オンラインエディット機能における制約に抵触するような操作を含むメニュー画面や操作画面などを無効化するなどの処理が実行される。変更後の制御プログラムをＰＬＣ１００に転送するときに制約への適否を事後的に判断するのではなく、オリジナルプログラムおよびオリジナル変数テーブルに対して行なうことができる操作を事前に制限することで、変更作業をより効率的にできる。
【００５５】
なお、プログラムの変更対象となっているＰＬＣ１００のファームウエアのバージョンなどに依存して、オンラインエディット機能における制約が異なる場合がある。このような場合には、ＰＬＣ１００のファームウエアのバージョンを事前に取得できる場合には、その取得したバージョンに応じた制約を適用するにようにしてもよい。あるいは、最も厳しい制約下で許容される操作のみを可能にしてもよい。
【００５６】
そして、サポート装置２００は、変更操作の完了が指示されたか否かを判断する（ステップＳ１０８）。変更操作の完了が指示されていなければ（ステップＳ１０８においてＮＯ）、ステップＳ１０６以下の処理が繰返される。変更操作の完了が指示されると（ステップＳ１０８においてＹＥＳ）、サポート装置２００は、制御プログラムを構成するいずれかのＰＯＵに対する変更操作に応じて、変更後のＰＯＵを生成するとともに、制御プログラムを構成する変数テーブルに対する変更操作に応じて、変更後の変数テーブルを生成する。すなわち、サポート装置２００は、変更後の制御プログラム（以下、「変更後プログラム」とも称す。）および変更後のグローバル変数テーブル（以下、「変更後変数テーブル」とも称す。）を格納する（ステップＳ１１０）とともに、変更後プログラムに関連付けられる識別情報を格納する（ステップＳ１１２）。
【００５７】
そして、サポート装置２００は、変更後プログラムおよび変更後変数テーブルを用いて、ＰＬＣ１００へ転送すべきデータファイルを生成する（ステップＳ１１４）。より具体的には、サポート装置２００で格納している制御プログラム（ソースデータ）をＰＬＣ１００で実行するために必要な形式に変換（一種のコンパイル）する。このデータファイルには、変更後プログラムおよび変更後変数テーブルに加えて、それぞれに関連付けられる識別情報を含む。
【００５８】
続いて、サポート装置２００は、いずれかのＰＬＣ１００に接続されたか否かを判断する（ステップＳ１１６）。いずれかのＰＬＣ１００に接続されると（ステップＳ１１６においてＹＥＳ）、サポート装置２００は、接続されたＰＬＣ１００に対してデータファイルの転送が指示されたか否かを判断する（ステップＳ１１８）。データファイルの転送が取り消されると（ステップＳ１１８においてＮＯ）、処理は終了する。
【００５９】
接続されたＰＬＣ１００に対してデータファイルの転送が指示される（ステップＳ１１８においてＹＥＳ）と、サポート装置２００は、データファイルに含まれる変更対象の変更後プログラムおよび変更後変数テーブルに関連する情報を接続先のＰＬＣ１００から取得する（ステップＳ１２０）。そして、サポート装置２００は、接続先のＰＬＣ１００から取得した情報に基づいて整合性をチェックすることで、変更後プログラムおよび変更後変数テーブルの転送が可能か否かを判断する（ステップＳ１２２）。
【００６０】
変更後プログラムおよび変更後変数テーブルの転送が不可能と判断されると（ステップＳ１２２においてＮＯ）、サポート装置２００は、変更後プログラムおよび変更後変数テーブルをＰＬＣ１００へ転送できない旨を表示する（ステップＳ１２４）。そして、処理は、ステップＳ１３２へ移る。
【００６１】
これに対して、変更後プログラムおよび変更後変数テーブルの転送が可能と判断されると（ステップＳ１２２においてＹＥＳ）、サポート装置２００は、変更後プログラムおよび変更後変数テーブルのＰＬＣ１００への転送の開始を通知するとともに、転送の開始の指示を受け付ける（ステップＳ１２６）。変更後プログラムおよび変更後変数テーブルの転送が取り消されると（ステップＳ１２６においてＮＯ）、処理は、ステップＳ１３２へ移る。
【００６２】
変更後プログラムおよび変更後変数テーブルの転送が指示されると（ステップＳ１２６においてＹＥＳ）、サポート装置２００は、変更後プログラムおよび変更後変数テーブルを予め定められた順序に従って、ＰＬＣ１００へ順次転送する（ステップＳ１２８）。このとき、サポート装置２００は、変更後プログラムに含まれる１または複数のＰＯＵにそれぞれ関連付けられる識別情報についても、ＰＬＣ１００へ転送する。すなわち、サポート装置２００は、単位プログラムであるＰＯＵと当該ＰＯＵに関連付けられる識別情報とをＰＬＣ１００へ転送する。
【００６３】
変更後プログラムについては、それに含まれるＰＯＵの単位で必要なプログラムが転送されることが好ましい。また、変更後プログラムおよび変更後変数テーブルの転送順序についても、予め定められた順序、または、変更後プログラムの内容に応じて、適宜最適化されてもよい。
【００６４】
このように、サポート装置２００は、制御プログラムを構成するＰＯＵに関連付けられる識別情報と同一の識別情報がＰＬＣ１００に存在していることを条件として、運転中のＰＬＣ１００に対して、変更後のＰＯＵを転送する。
【００６５】
最終的に、サポート装置２００は、変更後プログラムおよび変更後変数テーブルのＰＬＣ１００への転送が完了したことを確認すると（ステップＳ１３０）、サポート装置２００は、別のＰＬＣ１００に接続されたか否かを判断する（ステップＳ１３２）。いずれか別のＰＬＣ１００に接続されると（ステップＳ１３２においてＹＥＳ）、ステップＳ１１８以下の処理が繰り返し実行される。
【００６６】
いずれの別のＰＬＣ１００に接続されなければ（ステップＳ１３２においてＮＯ）、処理は終了する。
【００６７】
＜Ｇ．整合性チェック機能＞
次に、本実施の形態に従うサポート装置２００に実装される整合性チェック機能（図５のステップＳ１２０〜Ｓ１２２など）について説明する。
（ｇ１：識別情報を用いたチェック）
図６は、本実施の形態に従うサポート装置２００に実装される整合性チェック機能による識別情報を用いたチェックを説明するための模式図である。
【００６８】
図６を参照して、サポート装置２００は、オリジナルプログラムとして、４つのＰＯＵ（ＰＯＵ−Ａ，ＰＯＵ−Ｂ，ＰＯＵ−Ｃ，ＰＯＵ−Ｄ）を格納しているとする。ＰＯＵ−Ａ，ＰＯＵ−Ｂ，ＰＯＵ−Ｃ，ＰＯＵ−Ｄには、それぞれ識別情報ＩＤＡ，ＩＤＢ，ＩＤＣ，ＩＤＤが関連付けられている。
【００６９】
この状態において、プログラム編集作業者が、ＰＯＵ−ＡおよびＰＯＵ−Ｂに対して変更を加えたとする。すなわち、ＰＯＵ−ＡがＰＯＵ−Ａ’に変更され、ＰＯＵ−ＢがＰＯＵ−Ｂ’に変更されたとする。
【００７０】
サポート装置２００は、転送前に、ＰＯＵ−Ａに関連付けられる識別情報ＩＤＡと、各ＰＬＣ１００に格納されているＰＯＵ−Ａに関連付けられる識別情報とを比較する。すなわち、サポート装置２００は、変更前の制御プログラム（オリジナルプログラム）と同一の制御プログラムが対象のＰＬＣ１００に格納されているか否かをチェックする。ＰＯＵそのものを比較して、同一性の有無をチェックしてもよいが、それぞれに対応付けられる識別情報を用いることが好ましい。
【００７１】
これは、変更前の制御プログラム（オリジナルプログラム）がＰＬＣ１００に格納されているものと異なっている場合には、変更後の制御プログラム（変更後プログラム）を転送することで、ＰＬＣ１００での誤動作またはＰＬＣ１００の動作停止などを生じる可能性がある。
【００７２】
本来は、サポート装置２００に格納されている制御プログラムは、ＰＬＣ１００に格納されているものと実質的に同一であるはずであるが、第三者による変更操作などによって、ＰＬＣ１００側のみ変更がなされている可能性がある。あるいは、保守担当者などが、変更対象となっているＰＬＣ１００とは異なるＰＬＣ１００にサポート装置２００を接続してしまった場合なども想定される。
【００７３】
そこで、本実施の形態に従う整合性チェック機能を用いることで、転送前に、サポート装置２００に格納されているオリジナルプログラムがＰＬＣ１００に格納されているものと同一であるか否かを判断し、ＰＬＣ１００での誤動作またはＰＬＣ１００の動作停止などの可能性を低減する。
【００７４】
図６に示す例では、サポート装置２００は、サポート装置２００に格納されているＰＯＵ−Ａに関連付けられる識別情報ＩＤＡと、各ＰＬＣ１００に格納されているＰＯＵ−Ａに関連付けられる識別情報ＩＤＡとを比較し、両者が一致している場合には、ＰＯＵ−Ａ’およびそれに関連付けられる識別情報ＩＤＡ’を、対象のＰＬＣ１００へ転送する。
【００７５】
同様に、サポート装置２００は、サポート装置２００に格納されているＰＯＵ−Ｂに関連付けられる識別情報ＩＤＢと、各ＰＬＣ１００に格納されているＰＯＵ−Ｂに関連付けられる識別情報とを比較する。図６に示す例では、ＰＬＣ１００−１に格納されているＰＯＵ−Ｂは、サポート装置２００に格納されている変更前のＰＯＵ−Ｂと同一であり、それぞれの識別情報ＩＤＢも一致する。一方、ＰＬＣ１００−２には、サポート装置２００に格納されているＰＯＵ−Ｂとは異なるＰＯＵ−Ｂ’’が格納されており、両者の識別情報は一致しない。そのため、サポート装置２００は、ＰＯＵ−Ｂを変更して得られるＰＯＵ−Ｂ’をＰＬＣ１００−２へ転送することはない。
【００７６】
なお、制御プログラムの一部分でも、対象のＰＬＣ１００に格納されているものと異なっている場合には、変更対象である制御プログラムの転送のすべてを中止するようにしてもよい。あるいは、サポート装置２００に格納されているものと、対象のＰＬＣ１００に格納されているものとが一致しているＰＯＵのみを転送するようにしてもよい。
（ｇ２：グローバル変数テーブル）
次に、グローバル変数テーブルについて説明する。図７は、本実施の形態に従うサポート装置２００に実装される整合性チェック機能におけるグローバル変数テーブルのチェック内容を説明するための模式図である。
【００７７】
図７を参照して、グローバル変数テーブルにて定義されているグローバル変数（％ｄａｔａ１，％ｄａｔａ２，…）は、１または複数のＰＯＵから参照される。そのため、既存のあるグローバル変数の定義を変更してしまうと、１または複数のＰＯＵの実行に影響が生じる場合がある。そのため、本実施の形態に従うオンラインエディット機能においては、グローバル変数テーブルに先に設定されているグローバル変数を変更することは許可されていない。但し、グローバル変数テーブルに、新たに変数を追加することは可能である。
【００７８】
そのため、オンラインエディット機能において可能な変更操作としては、グローバル変数テーブルに新たな定義を追加することに限られる。言い換えれば、サポート装置２００に格納されている変更前のグローバル変数テーブルと、変更後のグローバル変数テーブルとを比較して、その差分が新たに追加された部分のみであるか否かを判断する必要がある。
【００７９】
サポート装置２００は、サポート装置２００に格納されている変更前のグローバル変数テーブルと、変更後のグローバル変数テーブルとを比較して、変更された変数以外の変数がいずれも一致していることをチェックする。そして、サポート装置２００は、変更後のグローバル変数テーブルにおいて、変更前のグローバル変数テーブルの内容がすべて包含されていることを条件として、変更後のグローバル変数テーブルをＰＬＣ１００へ転送する。
（ｇ３：整合性チェック機能の処理手順）
次に、図５に示すステップＳ１２２における、変更後プログラムおよび変更後変数テーブルの転送が可能か否かを判断の詳細について説明する。図８は、図５に示すフローチャートのステップＳ１２２におけるより詳細な処理手順を示すフローチャートである。
【００８０】
図８を参照して、サポート装置２００は、変更操作前から格納されている、制御プログラム（１または複数のＰＯＵ）のそれぞれに関連付けられる識別情報を取得する（ステップＳ１２２０）。続いて、サポート装置２００は、制御プログラム（１または複数のＰＯＵ）のうち、変更操作によって変更されたＰＯＵを特定するとともに、変更後のＰＯＵのそれぞれに関連付けられる識別情報を取得する（ステップＳ１２２１）。そして、変更がなされたＰＯＵの各々について、以下の処理を実行する。
【００８１】
具体的には、サポート装置２００は、変更がなされたＰＯＵのいずれか１つを対象として選択する（ステップＳ１２２２）。対象として選択した変更がなされたＰＯＵに対応するＰＯＵが、接続先のＰＬＣ１００に格納されているか否かを判断する（ステップＳ１２２３）。
【００８２】
対応するＰＯＵが接続先のＰＬＣ１００に格納されていなければ（ステップＳ１２２３においてＮＯ）、サポート装置２００は、変更後プログラムおよび変更後変数テーブルの転送が不可能と判断する（ステップＳ１２２４）。そして、図５のステップＳ１２２の処理は完了する。
【００８３】
対応するＰＯＵが接続先のＰＬＣ１００に格納されていれば（ステップＳ１２２３においてＹＥＳ）、サポート装置２００は、格納している変更前のＰＯＵに関連付けられる識別情報と、接続先のＰＬＣ１００に格納されている当該変更前のＰＯＵに対応するＰＯＵに関連付けられる識別情報とが一致しているか否かを判断する（ステップＳ１２２５）。
【００８４】
２つの識別情報が一致していなければ（ステップＳ１２２５においてＮＯ）、サポート装置２００は、変更後プログラムおよび変更後変数テーブルの転送が不可能と判断する（ステップＳ１２２４）。そして、図５のステップＳ１２２の処理は完了する。
【００８５】
２つの識別情報が一致していれば（ステップＳ１２２５においてＹＥＳ）、サポート装置２００は、変更がなされたＰＯＵのうち対象として選択すべきものが残っているか否かを判断する（ステップＳ１２２６）。変更がなされたＰＯＵのうち対象として選択すべきものが残っていれば（ステップＳ１２２６においてＹＥＳ）、サポート装置２００は、変更がなされたＰＯＵのうち残っているいずれか１つのＰＯＵを対象として選択し（ステップＳ１２２７）、ステップＳ１２２３以下の処理を実行する。
【００８６】
変更がなされたＰＯＵのうち対象として選択すべきものが残っていなければ（ステップＳ１２２６においてＮＯ）、サポート装置２００は、サポート装置２００に格納されている変更前のグローバル変数テーブルと、変更後のグローバル変数テーブルとを比較して、変更された変数以外の変数がいずれも一致しているか否かを判断する（ステップＳ１２２８）。変更された変数以外の変数のいずれかが一致していなければ（ステップＳ１２２８においてＮＯ）、サポート装置２００は、変更後プログラムおよび変更後変数テーブルの転送が不可能と判断する（ステップＳ１２２４）。そして、図５のステップＳ１２２の処理は完了する。
【００８７】
これに対して、変更された変数以外の変数がいずれも一致していれば（ステップＳ１２２８においてＹＥＳ）、サポート装置２００は、変更後プログラムおよび変更後変数テーブルの転送が可能と判断する（ステップＳ１２２９）。そして、図５のステップＳ１２２の処理は完了する。
【００８８】
このように、サポート装置２００は、制御プログラムを構成する複数のＰＯＵのうち、何らかの変更操作がなされた１または複数のＰＯＵのそれぞれについて、対応する識別情報のすべてがＰＬＣ１００に存在していることを条件として、変更後のＰＯＵをＰＬＣ１００へ転送する。
（ｇ４：まとめ）
以上のように、本実施の形態に従うサポート装置２００に実装される整合性チェック機能は、識別情報などを用いて、変更対象の制御プログラム（ＰＯＵ）がＰＬＣ１００に存在しているか否か、ならびに、変更前の制御プログラムとてＰＬＣ１００に格納されている制御プログラムとの間が一致しているか否かを判断する。
【００８９】
さらに、本実施の形態に従うサポート装置２００に実装される整合性チェック機能は、サポート装置２００に格納される変更前のグローバル変数テーブル（オリジナル変数テーブル）と、変更後のグローバル変数テーブル（変更後変数テーブル）との間で、変更した部分以外の変数が一致しているか否かを判断する。
【００９０】
このような構成が一致しているか否かのチェック、および、変更対象のデータの一貫性を保持することができるか否かのチェックを行なうことで、オンラインエディット機能を用いた書き換え作業において生じ得る、ＰＬＣ１００の誤動作または動作停止などを生じる可能性を低減する。
【００９１】
＜Ｈ．変更操作の制限機能＞
一般的には、オンラインエディット機能（運転状態での制御プログラムに対する変更機能）を用いて修正できる内容には、ＰＬＣ１００を停止した状態でアップロードする場合に比較して、制約がある。具体的には、以下のような制約が想定される。
【００９２】
・新規のＰＯＵ（または、ラダーセクション）の追加
・既存のＰＯＵ（または、ラダーセクション）の削除
・既存の変数テーブルに定義されている変数の削除
・既存の変数テーブル内の変数順序の入れ替え
すなわち、オンラインエディット機能では、変更前後において、プログラムの実行に必要な情報の一貫性が保たれている必要がある。そこで、このようなオンラインエディット機能が実行されている間は、ユーザが実行可能な変更操作をこの制約を満たす範囲に制限することが好ましい。すなわち、サポート装置２００が制御プログラムの編集画面を起動した後、オンラインエディット機能が有効化されているときには、オンラインエディット機能の制約を満たす操作のみを有効化してもよい。このように、制御プログラムの編集画面でのユーザ操作を制限することで、ＰＬＣ１００での誤動作またはＰＬＣ１００の動作停止などを生じる可能性を低減できる。すなわち、サポート装置２００は、運転中のＰＬＣ１００に対して、変更後のＰＯＵを転送する場合の制約に適合するように、指示可能な変更操作を制限する。
【００９３】
図９は、本実施の形態に従うサポート装置２００に実装される変更操作の制限機能を説明する模式図である。図９（Ａ）には、一例として、グローバル変数テーブルに対する編集画面の一例を示す。この編集画面において、グローバル変数テーブルに対して、新たな変数の追加（追加）、変数の設定の変更（変更）、登録されている変数の削除（削除）が可能になっている。
【００９４】
一方、図９（Ｂ）には、オンラインエディット機能が有効化されている状態における、編集画面の一例を示す。この編集画面において、グローバル変数テーブルに対する、新たな変数の追加（追加）の操作は有効化されているが、変数の設定の変更（変更）、および、登録されている変数の削除（削除）は無効化されている。これは、上述したように、既存の変数テーブルに定義されている変数の削除、および、既存の変数テーブル内の変数順序の入れ替えが制約事項となっていることに対応したものである。
【００９５】
図９に示すような制限機能例に限られず、オンラインエディット機能によって課せられる制約に応じて、ユーザ操作を制限することが好ましい。
【００９６】
＜Ｉ．転送順序の調整＞
上述の図５に示すフローチャートのステップＳ１２８において、変更後プログラムおよび変更後変数テーブルの転送順序については、予め定められたものであってもよいし、制御プログラムの内容に応じて変更してもよい。
【００９７】
オンラインエディット機能において、基本的には、グローバル変数テーブルを先に転送（更新）し、続いて、制御プログラム（それぞれのＰＯＵ）を順次転送（更新）することになる。これは、制御プログラムに含まれる１または複数のＰＯＵがそれぞれ独立して、グローバル変数テーブルに適宜されている変数にアクセスする可能性があるため、これらのＰＯＵの更新前に、グローバル変数テーブルを更新しておくことが好ましい。
【００９８】
但し、制御プログラムのプログラム構造によっては、ＰＯＵを先に更新しておき、その後にグローバル変数テーブルを更新するようなものであってもよい。そこで、本実施の形態に従うサポート装置２００は、制御プログラムおよびグローバル変数テーブルを転送する順序を任意に変更または設定できるようになっている。すなわち、サポート装置２００は、転送対象の変数テーブルおよび１または複数のＰＯＵを予め定められた順序または指定された順序で転送する。
【００９９】
デフォルトの転送順序としては、例えば、編集作業が実施された順序、図４に示すようなデータ構造において下の階層に位置するものほどより先に転送する、図４に示すようなデータ構造において上の階層に位置するものほどより先に転送する、といった例が想定される。
【０１００】
サポート装置２００は、上述したような各種の情報を参照して、データの転送順序を決定する。
【０１０１】
図１０は、本実施の形態に従うサポート装置２００が提供する転送順序を設定するためのユーザインターフェイス画面の一例を示す図である。図１０を参照して、例えば、転送対象のデータ（グローバル変数テーブル、ラダープログラム、ラダーファンクション、ラダーファンクションブロックなど）が一覧表示されるとともに、その表示順序は、転送順序に対応している。このユーザインターフェイス画面において、ユーザは、上矢印ボタンまたは下矢印ボタンを操作して、データの転送順序を適宜変更することができる。
【０１０２】
データの転送順序については、サポート装置２００がプログラムの内容を解析して、最も適した順序を決定してもよい。例えば、サポート装置２００に接続されるＰＬＣ１００の特性値（ハードウェアスペック、ファームウェアバージョンなど）に応じて、転送するデータの順序などを最適化してもよい。すなわち、サポート装置２００は、転送先のＰＬＣ１００の特性値に応じて、転送対象のグローバル変数テーブルおよび１または複数のＰＯＵの転送順序を決定してもよい。
【０１０３】
＜Ｊ．ＰＬＣでのプログラム実行開始タイミング＞
本実施の形態に従うオンラインエディット機能によって、変更後プログラムおよび変更後変数テーブルをＰＬＣ１００へ転送し、ＰＬＣ１００がその転送された変更後プログラムおよび変更後変数テーブルの実行を開始するタイミングを適宜設定するようにしてもよい。
【０１０４】
図１１は、本実施の形態に従うオンラインエディット機能によって転送された制御プログラムの実行開始タイミングを説明するための図である。図１１には、３つのＰＯＵ（ＰＯＵ−Ａ，ＰＯＵ−Ｂ，ＰＯＵ−Ｃ）を順次転送する場合の処理例を示す。
【０１０５】
図１１（Ａ）には、それぞれのＰＯＵの転送が完了されると、他のＰＯＵの実行を待つことなく、当該転送が完了したＰＯＵの実行が開始される例を示す。図１１（Ｂ）には、３つのＰＯＵの転送が完了した後に、当該３つのＰＯＵが一斉に実行を開始する例を示す。なお、図１１（Ａ）および図１１（Ｂ）において、コントローラ実行サイクルとして記載の矢印（→）の１個分が、コントローラ実行サイクルの１回分を示す。
【０１０６】
図１１（Ａ）に示す方法によれば、各ＰＬＣ１００において、変更前後のＰＯＵを保持する記憶領域が最低限で済むので、ハードウェア的な制約がある場合であっても、オンラインエディット機能を実現できる。
【０１０７】
図１１（Ｂ）に示す方法によれば、各ＰＬＣ１００において、変更前後のすべてのＰＯＵを保持するための記憶領域が必要になるため、余裕のあるハードウェアを用いる必要があるが、複数のＰＯＵが制御するそれぞれの装置間が互いに関連しているような場合であっても、変更後のＰＯＵのすべてが一斉に切り替わるので、同期ずれなどの問題が生じ難い。
【０１０８】
本実施の形態に従うサポート装置２００は、接続先のＰＬＣ１００の特性値（ハードウェアスペック、ファームウェアバージョンなど）に応じて、いずれかのモードを自動的に選択するようにしてもよいし、ユーザが明示的にいずれかのモードを選択するようにしてもよい。
【０１０９】
＜Ｋ．利点＞
本実施の形態に従うサポート装置２００によれば、運転中のＰＬＣ１００に対して、制御プログラムの変更操作を行なった場合であっても、ＰＬＣ１００での誤動作またはＰＬＣ１００の動作停止などを生じる可能性を低減できる。
【０１１０】
また、本実施の形態に従うサポート装置２００によれば、制御プログラムの変更操作をより簡素化できるので、複数のＰＬＣ１００でそれぞれ実行される制御プログラムに対して同一の修正を行なう必要があるような場合であっても、より簡単かつ短時間に作業を完結できる。
【０１１１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１２】
１  ＰＬＣシステム、１０  ＣＰＵユニット、１１  システムバス、１２  電源ユニット、１４，１６  Ｉ／Ｏユニット、１００  ＰＬＣ、１０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  システムプログラム、１１２  ユーザプログラム、１１２Ａ  シーケンスプログラム、１１２Ｂ  モーションプログラム、１１６  外部ネットワークコントローラ、１１８  メモリカードインターフェイス、１２０  メモリカード、１２２  内部バスコントローラ、１２４  フィールドバスコントローラ、１３０  ラダーセクション、１３２  ラダーファンクション、１３４  ラダーファンクションブロック、１４０  ＳＴプログラム、１４２  ＳＴファンクション、１４４  ＳＴファンクションブロック、１５０  グローバル変数テーブル、１６０  Ｉ／Ｏモジュール、２００  サポート装置、２０２  ＣＰＵ、２０６  ＲＡＭ、２１０  キーボード、２１２  マウス、２１４  ディスプレイ、２１６  光学記録媒体読取装置、２１８  通信インターフェイス、２５０  光学記録媒体。
【図１】
0006520545.tif 000002
【図２】
0006520545.tif 000003
【図３】
0006520545.tif 000004
【図４】
0006520545.tif 000005
【図５】
0006520545.tif 000006
【図６】
0006520545.tif 000007
【図７】
0006520545.tif 000008
【図８】
0006520545.tif 000009
【図９】
0006520545.tif 000010
【図１０】
0006520545.tif 000011
【図１１】
0006520545.tif 000012