(57)【要約】【課題】デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすこと。【解決手段】表示画面上に、複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する（Ｓ１１）。第１のプログラム言語による第１のプログラムに関して、各デバイスポートについて設定値欄への設定値の書き込みがなされたか否かを判断する（Ｓ１２）。第１のプログラム言語による第１のプログラムに関して、設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、第１のプログラム言語とは異なる第２のプログラム言語による第２のプログラムに関して、その設定値欄への設定値の書き込みを禁止する（Ｓ１４）。【選択図】図５
2020030595.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援装置であって、
表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する表示処理部と、
第１のプログラム言語による第１のプログラムに関して、上記各デバイスポートについて上記設定値欄への設定値の書き込みがなされたか否かを判断する書き込み判断部と、
上記第１のプログラム言語による第１のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第１のプログラム言語とは異なる第２のプログラム言語による第２のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する上書き禁止部と
を備えたことを特徴とするプログラミング支援装置。
【請求項２】
請求項１に記載のプログラミング支援装置において、
上記設定値欄は、上記第１のプログラムのための第１の設定値欄と、上記第２のプログラムのための第２の設定値欄とに区分されていることを特徴とするプログラミング支援装置。
【請求項３】
請求項２に記載のプログラミング支援装置において、
上記表示処理部は、上記設定値の書き込みが禁止された上記第２の設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とするプログラミング支援装置。
【請求項４】
請求項２または３に記載のプログラミング支援装置において、
上記マップ情報テーブルは、さらに、上記各デバイスポートについて書き込まれるべき設定値のデータ型を示すデータ型欄を含むことを特徴とするプログラミング支援装置。
【請求項５】
請求項４に記載のプログラミング支援装置において、
上記各デバイスポートについて上記データ型欄に示されたデータ型が、上記各プログラムに関して上記設定値の書き込みに使用可能であるか否かを判断するデータ型判断部を備え、
上記表示処理部は、上記各デバイスポートについての、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とするプログラミング支援装置。
【請求項６】
複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援方法であって、
表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示し、
第１のプログラム言語による第１のプログラムに関して、上記複数のデバイスポートについてそれぞれ上記設定値欄への設定値の書き込みがなされたか否かを判断し、
上記第１のプログラム言語による第１のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第１のプログラム言語とは異なる第２のプログラム言語による第２のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する
ことを特徴とするプログラミング支援方法。
【請求項７】
請求項６に記載のプログラミング支援方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラム言語によるプログラム作成を支援するプログラミング支援装置およびプログラミング支援方法に関する。また、この発明は、そのようなプログラミング支援方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
従来、この種のプログラミング支援装置としては、プログラム作成者がコンピュータ上で或るプログラム言語を用いてプログラムを作成する段階で、そのコンピュータの表示画面上に、例えば特許文献１（特開２０００−１３２２１０号公報）に開示されているようなマップ情報テーブルを表示するものがある。同文献のマップ情報テーブルは、そのプログラムが参照する参照名（シンボル，タグ名）と、その参照名に対応する実際の物理メモリ、物理Ｉ／Ｏポート、並びにネットワーク共有メモリ上のアドレス（チャネル番号）とを関連付けて表示している。
【０００３】
プログラム作成者は、表示画面上にこのマップ情報テーブルを表示した状態で、例えば或るシンボル名に対応する物理Ｉ／Ｏポートについての設定値を書き込む。すると、それ以降、その物理Ｉ／Ｏポートへの設定値の上書きは禁止され、その物理Ｉ／Ｏポートへの誤書き込みを防止するようになっている（ただし、上書き禁止を解除する特別の操作が行われた場合は、再び設定値の書き込みが可能となる。）。プログラム作成者は、このようにして設定値の書き込みがなされたマップ情報テーブルを適宜参照しながら、プログラムを作成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１３２２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のプログラミング支援装置では、物理Ｉ／Ｏポートへの設定値の上書き禁止の機能は、そのプログラム言語によるプログラム作成にしか及ばない、という問題がある。
【０００６】
例えば、近年、シーケンス制御プログラムを実行するプログラマブルロジックコントローラ（ＰＬＣ）エンジンと、ロボット制御プログラムを実行してロボットを制御するモーションコントローラ（ＭＣ）エンジンとを統合してなるシステムが開発されている。このシステムは、複数の物理Ｉ／Ｏポートを含み、それらの物理Ｉ／Ｏポートに設定された設定値は、それぞれセンサ、モータ、ロボットなどを駆動するプログラムによって参照される。
【０００７】
伝統的に、シーケンス制御プログラムの作成には、ラダー言語が用いられることが多い。一方、ロボット制御プログラムの作成には、Ｃ言語、Ｃ＋＋、または各社独自のプログラム言語が用いられることが多い。そして、プログラム言語が異なれば、習熟度・作業効率の観点から、それぞれのプログラムの作成を互いに別のプログラム作成者が担当することが一般的に行われている。
【０００８】
このため、上記シーケンス制御プログラムの作成段階、上記ロボット制御プログラムの作成段階で、各プログラム作成者が区々に同じ物理Ｉ／Ｏポートへ設定値を誤って書き込んでしまう可能性がある（先に書き込まれた設定値が、後に書き込まれた設定値によって上書きされてしまう。）。その場合、その物理Ｉ／Ｏポートの設定値は、先に設定値を書き込んだプログラム作成者の意図しない状態になる。
【０００９】
そこで、この発明の課題は、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができるプログラミング支援装置およびプログラミング支援方法を提供することにある。また、この発明の課題は、そのようなプログラミング支援方法をコンピュータに実行させるためのプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、この開示のプログラミング支援装置は、
複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援装置であって、
表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する表示処理部と、
第１のプログラム言語による第１のプログラムに関して、上記各デバイスポートについて上記設定値欄への設定値の書き込みがなされたか否かを判断する書き込み判断部と、
上記第１のプログラム言語による第１のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第１のプログラム言語とは異なる第２のプログラム言語による第２のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する上書き禁止部と
を備えたことを特徴とする。
【００１１】
本明細書で、「デバイスポート」とは、物理Ｉ／Ｏ（入出力インタフェース）ポートなどの、プログラムの実行中に参照されるべき設定値が書き込まれる又は書き込まれたポートを広く指す。
【００１２】
また、上記設定値欄への設定値の書き込みは、キーボード、マウスなどの操作部を介した入力によって行われ得る。
【００１３】
この開示のプログラミング支援装置では、表示処理部は、表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する。書き込み判断部は、第１のプログラム言語による第１のプログラムに関して、上記各デバイスポートについて上記設定値欄への設定値の書き込みがなされたか否かを判断する。上書き禁止部は、上記第１のプログラム言語による第１のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第１のプログラム言語とは異なる第２のプログラム言語による第２のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する。したがって、上記第１のプログラム言語による第１のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、プログラム作成者が、上記第２のプログラム言語による第２のプログラムに関して、上記設定値欄への設定値の書き込み（上書き）を誤って行うことが無い。つまり、このプログラミング支援装置によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。したがって、それぞれのプログラムを作成するプログラム作成者は、このようにして適切に設定値の書き込みがなされたマップ情報テーブルを適宜参照しながら、プログラムを作成することができる。これにより、上記複数のデバイスポートについての設定値は、各プログラム作成者が意図した状態になる。
【００１４】
一実施形態のプログラミング支援装置では、上記設定値欄は、上記第１のプログラムのための第１の設定値欄と、上記第２のプログラムのための第２の設定値欄とに区分されていることを特徴とする。
【００１５】
この一実施形態のプログラミング支援装置では、第１のプログラム言語による第１のプログラムに関して、そのプログラムを作成するプログラム作成者は上記第１の設定値欄へ設定値の書き込みを行う。一方、第２のプログラム言語による第２のプログラムに関して、そのプログラムを作成するプログラム作成者は、許容されていれば（上記上書き禁止部によって禁止されていなければ）、上記第２の設定値欄へ設定値の書き込みを行う。したがって、上記第１、第２のプログラムの作成を互いに別のプログラム作成者が担当する場合であっても、各プログラム作成者が設定値の書き込みを行うべき欄を迷うことが無い。
【００１６】
一実施形態のプログラミング支援装置では、上記表示処理部は、上記設定値の書き込みが禁止された上記第２の設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とする。
【００１７】
この一実施形態のプログラミング支援装置では、上記表示処理部は、上記設定値の書き込みが禁止されたデバイスポートの上記第２の設定値欄に、書き込み不能であることを表す書き込み不能表示を行う。したがって、その書き込み不能表示を見たプログラム作成者は、上記設定値の書き込みが禁止された上記第２の設定値欄へ、設定値の書き込みを無駄に試みることが無い。
【００１８】
一実施形態のプログラミング支援装置では、上記マップ情報テーブルは、さらに、上記各デバイスポートについて書き込まれるべき設定値のデータ型を示すデータ型欄を含むことを特徴とする。
【００１９】
この一実施形態のプログラミング支援装置では、上記マップ情報テーブルのデータ型欄に、上記各デバイスポートに書き込まれるべき設定値のデータ型が示される。したがって、各プログラム作成者が書き込むべき設定値のデータ型を間違うことが無い。
【００２０】
一実施形態のプログラミング支援装置では、
上記各デバイスポートについて上記データ型欄に示されたデータ型が、上記各プログラムに関して上記設定値の書き込みに使用可能であるか否かを判断するデータ型判断部を備え、
上記表示処理部は、上記各デバイスポートについての、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とするプログラミング支援装置。
【００２１】
この一実施形態のプログラミング支援装置では、データ型判断部は、上記各デバイスポートについて上記データ型欄に示されたデータ型が、上記各プログラムに関して上記設定値の書き込みに使用可能であるか否かを判断する。上記表示処理部は、上記各デバイスポートについての、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、書き込み不能であることを表す書き込み不能表示を行う。したがって、その書き込み不能表示を見たプログラム作成者は、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、設定値の書き込みを無駄に試みることが無い。
【００２２】
別の局面では、この開示のプログラミング支援方法は、
複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援方法であって、
表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示し、
第１のプログラム言語による第１のプログラムに関して、上記複数のデバイスポートについてそれぞれ上記設定値欄への設定値の書き込みがなされたか否かを判断し、
上記第１のプログラム言語による第１のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第１のプログラム言語とは異なる第２のプログラム言語による第２のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する
ことを特徴とする。
【００２３】
この開示のプログラミング支援方法によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。したがって、それぞれのプログラムを作成するプログラム作成者は、このようにして適切に設定値の書き込みがなされたマップ情報テーブルを適宜参照しながら、プログラムを作成することができる。これにより、上記複数のデバイスポートについての設定値は、各プログラム作成者が意図した状態になる。
【００２４】
さらに別の局面では、この開示のプログラムは、上記プログラミング支援方法をコンピュータに実行させるためのプログラムである。
【００２５】
この開示のプログラムをコンピュータに実行させることによって、上記プログラミング支援方法を実施することができる。
【発明の効果】
【００２６】
以上より明らかなように、この開示のプログラミング支援装置およびプログラミング支援方法によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。また、この開示のプログラムによれば、そのようなプログラミング支援方法をコンピュータに実行させることができる。
【図面の簡単な説明】
【００２７】
【図１】この発明の一実施形態のプログラミング支援装置が適用されたシステムの概略的なブロック構成を示す図である。
【図２】上記プログラミング支援装置をなすパーソナルコンピュータ（ＰＣ）のブロック構成を示す図である。
【図３】上記システムの一部をなす第２ユニット（型番「ＮＸ−ｅｅｅｅ」）に含まれたＩ／Ｏポート群を示す図である。
【図４】上記プログラミング支援装置の表示画面に、マップ情報テーブルを最初に表示する初期表示処理のフローを示す図である。
【図５】上記プログラミング支援装置によって、第１のプログラム言語（ラダー言語）による第１のプログラム（シーケンス制御プログラム）に関して、上記マップ情報テーブルの「Ｖａｒｉａｂｌｅ」欄にデバイス変数を書き込む処理のフローを示す図である。
【図６】上記プログラミング支援装置によって、第２のプログラム言語（本出願人の独自開発による言語）による第２のプログラム（ロボット制御プログラム）に関して、上記マップ情報テーブルの「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄にデジタルＩ／Ｏ設定値を書き込む処理のフローを示す図である。
【図７】上記プログラミング支援装置の表示画面に、初期表示処理によって表示されるマップ情報テーブルを例示する図である。
【図８】上記マップ情報テーブルへの設定値の書き込み前の状態を示す図である。
【図９】上記マップ情報テーブルへの設定値の書き込み後の状態を示す図である。
【発明を実施するための形態】
【００２８】
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
【００２９】
図１は、この発明の一実施形態のプログラミング支援装置が適用されたシステム４００の概略的なブロック構成を示している。このシステム４００は、大別して、プログラミング支援装置をなすパーソナルコンピュータ（ＰＣ）１０と、このＰＣ１０に通信ケーブル１９を介して通信可能に接続されたプログラマブルロジックコントローラ（ＰＬＣ）１００と、このＰＬＣ１００に通信ケーブル１１９を介して通信（この例では、ＥｔｈｅｒＣＡＴ（登録商標）通信）可能に接続されたデバイス群２００とを含んでいる。
【００３０】
デバイス群２００は、この例では、第１ノード２０１（参照名「Ｎｏｄｅ１」、型番「ＧＸ−ａａａａ」）と、第２ノード２０２（参照名「Ｎｏｄｅ２」、型番「ＧＸ−ｂｂｂｂ」）と、第３ノード２０３（参照名「Ｎｏｄｅ３」、型番「ＮＸ−ｃｃｃｃ」）と、この第３ノード２０３に通信（この例では、ＥｔｈｅｒＣＡＴ（登録商標）通信）可能に接続された第１ユニット２０４（参照名「Ｕｎｉｔ１」、型番「ＮＸ−ｄｄｄｄ」）および第２ユニット２０５（参照名「Ｕｎｉｔ２」、型番「ＮＸ−ｅｅｅｅ」）を含んでいる。これらのデバイス２０１〜２０５は、それぞれデバイスポートとしての物理Ｉ／Ｏポート（以下、単に「Ｉ／Ｏポート」という。）を複数含んでいる。それらのＩ／Ｏポートに設定された設定値は、それぞれ図示しないセンサ、モータ、ロボットなどを駆動するプログラムによって参照される。
【００３１】
例えば、第２ユニット２０５（型番「ＮＸ−ｅｅｅｅ」）は、図３に示すように、Ｉ／Ｏポート群２０６として６個のＩ／Ｏポート２１１〜２１６を含んでいる。これらのＩ／Ｏポート２１１〜２１６には、それぞれ参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｔｉｍｅ  Ｓｔａｍｐ」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｔｉｍｅ  Ｓｔａｍｐ」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」が付されている。この例では、これらのＩ／Ｏポート２１１〜２１６に設定された設定値は、図示しないロボットを駆動するプログラムによって参照される。
【００３２】
図１中に示すＰＬＣ１００は、制御部１０１と、マップ情報記憶部１０２と、シーケンス制御プログラム記憶部１０３と、ロボット制御プログラム記憶部１０４とを含んでいる。
【００３３】
マップ情報記憶部１０２は、システム４００に含まれた複数のＩ／Ｏポートに対応する参照名と、各Ｉ／Ｏポートのための設定値などとを対応付けて、それらのＩ／Ｏポート間の階層構造を含めて、マップ情報テーブルとして記憶する（後に図７〜図９を参照して詳述する。）。これにより、マップ情報テーブルは、複数のＩ／Ｏポート間の階層構造を、ＥｔｈｅｒＣＡＴ（登録商標）ネットワークの構成一覧として含むものとなっている。
【００３４】
図１中に示すシーケンス制御プログラム記憶部１０３は、第１のプログラム言語（この例では、ラダー言語ＬＤ）による第１のプログラム（この例では、シーケンス制御プログラム）を記憶する。
【００３５】
ロボット制御プログラム記憶部１０４は、第２のプログラム言語（この例では、本出願人の独自開発による言語）による第２のプログラム（この例では、ロボット制御プログラム）を記憶する。
【００３６】
制御部１０１は、動作時に、シーケンス制御プログラム記憶部１０３に記憶された「シーケンス制御プログラム」に従って、マップ情報記憶部１０２に記憶されたマップ情報テーブルを参照しながら、例えば、このＰＬＣ１００自体に接続されたセンサ、モータなどを制御する。それと並行して、制御部１０１は、ロボット制御プログラム記憶部１０４に記憶された「ロボット制御プログラム」に従って、マップ情報記憶部１０２に記憶されたマップ情報テーブル３００を参照しながら、例えば、上述の第２ユニット２０５のＩ／Ｏポート２１１〜２１６を介してロボットの動作（モーション）を制御する。このように、このＰＬＣ１００は、シーケンス制御プログラムによるシーケンス制御と、ロボット制御プログラムによるロボット制御とを、統合した制御動作を行う。
【００３７】
図１中に示すＰＣ１０は、この例では、主にプログラミング支援装置として、シーケンス制御プログラム記憶部１０３に記憶される「シーケンス制御プログラム」、および、ロボット制御プログラム記憶部１０４に記憶される「ロボット制御プログラム」の作成支援のために設けられている。
【００３８】
この例では、ＰＣ１０は、図２に示すように、ＣＰＵ（Central Processing Unit；中央演算処理ユニット）１１と、表示器１２と、操作部１３と、記憶部１４と、通信部１６とを備えている。
【００３９】
ＣＰＵ１１は、ソフトウェア（コンピュータプログラム）によって動作し、後述のプログラミング支援方法に従う処理や、その他の各種処理を実行する。
【００４０】
表示器１２は、この例では、ＬＣＤ（液晶表示素子）からなり、ＣＰＵ１１からの制御信号に従って、表示画面に画像表示を行う。この例では、表示器１２は、マップ情報テーブル３００を表示するために用いられる。
【００４１】
操作部１３は、この例では、キーボードとマウスからなり、ユーザ（操作者）からの指示およびデータなどを入力するために用いられる。
【００４２】
記憶部１４は、この例では、非一時的にデータを記憶し得るＥＥＰＲＯＭ（電気的に書き換え可能な不揮発性メモリ）、および、一時的にデータを記憶し得るＲＡＭ（ランダム・アクセス・メモリ）を含んでいる。この記憶部１４には、ＣＰＵ１１を制御するためのソフトウェア（コンピュータプログラム）が格納されている。また、この例では、記憶部１４には、上述のマップ情報テーブルの内容が記憶される。この記憶内容については、後に詳述する。
【００４３】
通信部１６は、ＣＰＵ１１によって制御されて所定の情報を外部の装置に送信したり、また、外部の装置からの情報を受信してＣＰＵ１１に受け渡したりする。この例では、通信部１６は、通信ケーブル１９を介して、ＰＬＣ１００との通信を行うために働く。
【００４４】
図４〜図６は、上述の「シーケンス制御プログラム」および「ロボット制御プログラム」の作成を支援するために、ＰＣ１０のＣＰＵ１１が実行するプログラミング支援方法の処理フローを示している。
【００４５】
（初期表示処理）
図４に示す初期表示処理では、まずステップＳ１に示すように、ＣＰＵ１１は表示処理部として働いて、表示器１２の表示画面に、図７に例示するようなマップ情報テーブル３００（の表頭を含む外枠）を表示するとともに、ステップＳ２に示すように、ＰＬＣ１００のマップ情報記憶部１０２からマップ情報テーブルの内容（構成一覧）を読み出して、マップ情報テーブル３００において複数のＩ／Ｏポート間の階層構造を展開して表示する。
【００４６】
図７に示すように、マップ情報テーブル３００は、左から順に、システム４００における各デバイスの位置を示す「Ｐｏｓｉｔｉｏｎ」欄３０１と、それぞれの参照名を示す参照名欄としての「Ｐｏｒｔ」欄３０２と、各参照名に対応する説明を示す「Ｄｅｓｃｒｉｐｔｉｏｎ」欄３０３と、各ポートの設定値がＰＬＣ１００の動作時に書き込み用「Ｗ」であるか又は読み取り用「Ｒ」であるかを示す「Ｒ／Ｗ」欄３０４と、各ポートについて書き込まれるべき設定値のデータ型を示すデータ型欄としての「Ｄａｔａ  Ｔｙｐｅ」欄３０５と、シーケンス制御プログラムに関してデバイス変数が書き込まれるべき第１の設定値欄としての「Ｖａｒｉａｂｌｅ」欄３０６と、そのデバイス変数の型が書き込まれるべき「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７と、ロボット制御プログラムに関してデジタルＩ／Ｏ設定値が書き込まれるべき第２の設定値欄としての「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８とを含んでいる。
【００４７】
上述の「Ｐｏｓｉｔｉｏｎ」欄３０１と「Ｐｏｒｔ」欄３０２によって、システム４００に含まれたデバイス群の、ＥｔｈｅｒＣＡＴ（登録商標）ネットワークにおける階層構造が表されている。この例では、「Ｐｏｒｔ」欄３０２の最上段セル３１０に、ＥｔｈｅｒＣＡＴ（登録商標）ネットワークの構成であることを示す「ＥｔｈｅｒＣＡＴ  Ｎｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ」と表示されている。その下方で、「Ｐｏｓｉｔｉｏｎ」欄３０１のセル３１１，３１２，３１３に上から下へ向かって順に、それぞれ第１ノード２０１の参照名「Ｎｏｄｅ１」、第２ノード２０２の参照名「Ｎｏｄｅ２」、第３ノード２０３の参照名「Ｎｏｄｅ３」が表示されている。それらのセル３１１，３１２，３１３に対応して、「Ｐｏｒｔ」欄３０２には、それぞれのノードの型番「ＧＸ−ａａａａ」、「ＧＸ−ｂｂｂｂ」、「ＮＸ−ｃｃｃｃ」が表示されている。さらに、その下方で、「Ｐｏｓｉｔｉｏｎ」欄３０１のセル３１４，３１５に上から下へ向かって順に、それぞれ第１ユニット２０４の参照名「Ｕｎｉｔ１」、第２ユニット２０５の参照名「Ｕｎｉｔ２」が表示されている。それらのセル３１４，３１５に対応して、「Ｐｏｒｔ」欄３０２には、それぞれのユニットの型番「ＮＸ−ｄｄｄｄ」、「ＮＸ−ｅｅｅｅ」が表示されている。
【００４８】
さらに、その下方で、「Ｐｏｒｔ」欄３０２のセル３２１，３２２，３２３，３２４，３２５，３２６に上から下へ向かって順に、それぞれ第２ユニット２０５（型番「ＮＸ−ｅｅｅｅ」）に含まれたＩ／Ｏポート２１１，２１２，２１３，２１４，２１５，２１６の参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｔｉｍｅ  Ｓｔａｍｐ」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｔｉｍｅ  Ｓｔａｍｐ」、「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」が表示されている。図７中に破線３９０で囲んで示すように、この例では、第２ユニット２０５（型番「ＮＸ−ｅｅｅｅ」）に含まれたＩ／Ｏポート２１１〜２１６に注目している。
【００４９】
この例では、「Ｒ／Ｗ」欄３０４に示すように、Ｉ／Ｏポート２１１（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００」）、Ｉ／Ｏポート２１２（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｔｉｍｅ  Ｓｔａｍｐ」）、Ｉ／Ｏポート２１４（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１」）、および、Ｉ／Ｏポート２１５（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｔｉｍｅ  Ｓｔａｍｐ」）の設定値は、それぞれ書き込み用「Ｗ」になっている。一方、Ｉ／Ｏポート２１３（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）、および、Ｉ／Ｏポート２１６（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）の設定値は、それぞれ読み取り用「Ｒ」になっている。
【００５０】
また、この例では、「Ｄａｔａ  Ｔｙｐｅ」欄３０５に示すように、Ｉ／Ｏポート２１１（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００」）、Ｉ／Ｏポート２１３（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）、Ｉ／Ｏポート２１４（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１」）、および、Ｉ／Ｏポート２１６（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）のデータ型は、それぞれＢＯＯＬ型になっている。一方、Ｉ／Ｏポート２１２（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｔｉｍｅ  Ｓｔａｍｐ」）、および、Ｉ／Ｏポート２１５（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｔｉｍｅ  Ｓｔａｍｐ」）のデータ型は、それぞれＵＬＩＮＴ型になっている。ここで、ＢＯＯＬ型とは、真理値の「真＝ｔｒｕｅ」と「偽＝ｆａｌｓｅ」という２値をとるデータ型を指す。ＢＯＯＬ型であれば、シーケンス制御プログラムとロボット制御プログラムとの両方に使用可能である。ＵＬＩＮＴ型とは、符号なしの、６４ビットの整数値をとるデータ型を指す。ＵＬＩＮＴ型であれば、シーケンス制御プログラムには使用可能であるが、ロボット制御プログラムには使用不可である。このように、このマップ情報テーブル３００では、「Ｄａｔａ  Ｔｙｐｅ」欄３０５に、各Ｉ／Ｏポート２１１〜２１６に書き込まれるべき設定値のデータ型が示される。したがって、各プログラム作成者が書き込むべき設定値のデータ型を間違うことが無い。
【００５１】
次に、図４のステップＳ３に進んで、ＣＰＵ１１はデータ型判断部として働いて、この例では第２ユニット２０５（型番「ＮＸ−ｅｅｅｅ」）の各Ｉ／Ｏポート２１１〜２１６のデータ型がＢＯＯＬ型であるか否かを判断する。つまり、実質的に、各Ｉ／Ｏポート２１１〜２１６のデータ型が各プログラムに関して設定値の書き込みに使用可能であるか否かを判断する。
【００５２】
ここで、上述のようにＩ／Ｏポート２１１（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００」）、Ｉ／Ｏポート２１３（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）、Ｉ／Ｏポート２１４（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１」）、および、Ｉ／Ｏポート２１６（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）のデータ型はそれぞれＢＯＯＬ型であることから（ステップＳ３でＹＥＳ）、ＣＰＵ１１は、「Ｖａｒｉａｂｌｅ」欄３０６へのデバイス変数の書き込みと、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８へのデジタルＩ／Ｏ設定値の書き込みとの両方に使用可能であると判断する。そして、図４のステップＳ４で、ＣＰＵ１１は表示処理部として働いて、それらのＩ／Ｏポート２１１，２１３，２１４，２１６について、図７中の「Ｖａｒｉａｂｌｅ」欄３０６の対応するセル３３１，３３３，３３４，３３６と、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７の対応するセル３４１，３４３，３４４，３４６と、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８の対応するセル３５１，３５３，３５４，３５６とに、それぞれ書き込みに使用可能であることを表す書き込み可能表示を行う。この例では、書き込み可能表示は、図７中に示すように、それらのセル３３１，３３３，３３４，３３６；３４１，３４３，３４４，３４６；３５１，３５３，３５４，３５６を白色（または明色）にすることに相当する。
【００５３】
一方、Ｉ／Ｏポート２１２（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｔｉｍｅ  Ｓｔａｍｐ」）、および、Ｉ／Ｏポート２１５（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１  Ｔｉｍｅ  Ｓｔａｍｐ」）のデータ型はそれぞれＵＬＩＮＴ型であることから（ステップＳ３でＮＯ）、ＣＰＵ１１は、「Ｖａｒｉａｂｌｅ」欄３０６へのデバイス変数の書き込みには使用可能であるが、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８へのデジタルＩ／Ｏ設定値の書き込みには使用不可と判断する。そして、図４のステップＳ５で、ＣＰＵ１１は表示処理部として働いて、それらのＩ／Ｏポート２１２，２１５について、図７中の「Ｖａｒｉａｂｌｅ」欄３０６の対応するセル３３２，３３５と、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７の対応するセル３４２，３４５とに、それぞれ書き込みに使用可能であることを表す書き込み可能表示を行う一方、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８の対応するセル３５２，３５５に書き込み不能であることを表す書き込み不能表示を行う。この例では、この書き込み不能表示は、図７中に示すように、それらのセル３５２，３５５を暗色（上記白色または明色よりも暗い色を意味する。）にすることに相当する。なお、書き込み不能表示は、この態様の表示に限られるものではなく、例えば、各セルに斜めの罫線を付すなどの、他の態様の表示であってもよい（以下同様。）。つまり、書き込み不能表示は、ユーザがそれを見たとき、直感的に書き込み不能であることを認識できれば良い。
【００５４】
ＣＰＵ１１は、このようにして初期表示処理（図４）を完了する。この例では、初期表示処理によって作成されたマップ情報テーブル３００は、ＰＣ１０の記憶部１４に保存されるとともに、ＰＬＣ１００のマップ情報記憶部１０２に保存される。このマップ情報テーブル３００は、次に述べる「Ｖａｒｉａｂｌｅ」欄３０６へのデバイス変数の書き込み処理（図５）、および／または、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８へのデジタルＩ／Ｏ設定値の書き込み処理（図６）の際に参照される。
【００５５】
ここで、図７に示したマップ情報テーブル３００では、「Ｖａｒｉａｂｌｅ」欄３０６、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８の各セルに、書き込み可能表示または書き込み不能表示が行われている。したがって、プログラム作成者は、「Ｖａｒｉａｂｌｅ」欄３０６、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８の各セルに設定値を書き込み可能であるか否かを、視覚を通して直感的に知ることができる。したがって、書き込み不能表示を見たプログラム作成者は、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄（上の例では、ロボット制御プログラムのためのセル３５２，３５５）に、設定値の書き込みを無駄に試みることが無い。
【００５６】
また、上述のマップ情報テーブル３００では、設定値欄は、シーケンス制御プログラムのための「Ｖａｒｉａｂｌｅ」欄３０６と、ロボット制御プログラムのための「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８とに区分されている。したがって、ラダー言語ＬＤによるシーケンス制御プログラムに関して、そのプログラムを作成するプログラム作成者は「Ｖａｒｉａｂｌｅ」欄３０６へデバイス変数の書き込みを行うことを促される。一方、独自の言語によるロボット制御プログラムに関して、そのプログラムを作成するプログラム作成者は、許容されていれば、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８へデジタルＩ／Ｏ設定値の書き込みを行うことを促される。したがって、シーケンス制御プログラムとロボット制御プログラムの作成を互いに別のプログラム作成者が担当する場合であっても、各プログラム作成者が設定値の書き込みを行うべき欄を迷うことが無い。
【００５７】
（デバイス変数の書き込み処理）
図５に示すデバイス変数の書き込み処理では、まずステップＳ１１に示すように、ＣＰＵ１１は表示処理部として働いて、この例では記憶部１４から図８に例示するようなマップ情報テーブル３００（この例では、図７に示したものと同じ）を読み出して、表示器１２の表示画面に表示する。なお、ＰＬＣ１００のマップ情報記憶部１０２からマップ情報テーブルの内容（構成一覧）を読み出して、それが更新されていれば、マップ情報テーブル３００を更新して表示してもよい。
【００５８】
次に、ユーザが、操作部１３を介して、シーケンス制御プログラムに関して、例えばＩ／Ｏポート２１１（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００」）について、「Ｖａｒｉａｂｌｅ」欄３０６の対応するセル３３１にデバイス変数「Ｎ２＿Ｏｕｔｐｕｔ＿Ｂｉｔ＿００」を入力し、また、これに伴って「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７の対応するセル３４１にそのデバイス変数の型「Ｇｌｏｂａｌ  Ｖａｒｉａｂｌｅｓ」を入力したものとする。すると、図５のステップＳ１２で、ＣＰＵ１１は書き込み判断部として働いて、図９中に示すように、Ｉ／Ｏポート２１１について設定値の書き込みがなされたと判断して、「Ｖａｒｉａｂｌｅ」欄３０６のセル３３１に、デバイス変数「Ｎ２＿Ｏｕｔｐｕｔ＿Ｂｉｔ＿００」を書き込んで表示する。これとともに、ＣＰＵ１１は、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７のセル３４１に、デバイス変数の型「Ｇｌｏｂａｌ  Ｖａｒｉａｂｌｅｓ」を書き込んで表示する。
【００５９】
次に、図５のステップＳ１３で、ＣＰＵ１１は、図９中に示す「Ｒ／Ｗ」欄３０４を参照して、そのＩ／Ｏポート２１１が書き込み用のポートであるか否かを判断する。この例では、Ｉ／Ｏポート２１１は書き込み用「Ｗ」のポートであることから（ステップＳ１３でＹＥＳ）、図５のステップＳ１４で、ＣＰＵ１１は上書き禁止部として働いて、そのＩ／Ｏポート２１１について、この例では「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８の対応するセル３５１への設定値の書き込みを禁止する。これとともに、ＣＰＵ１１は表示処理部として働いて、その「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８のセル３５１に、デジタルＩ／Ｏ設定値の書き込みが不可であることを表す書き込み不能表示を行う。この例では、この書き込み不能表示は、図９中に破線３９１で囲んで示すように、そのセル３５１を暗色にすることに相当する（図８中に破線３９１で囲んで示す元の白色または明色と比較されたい。）。
【００６０】
したがって、その書き込み不能表示を見たプログラム作成者は、上記設定値の書き込みが禁止された設定値欄（上の例では、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８のセル３５１）へ、設定値の書き込みを無駄に試みることが無い。
【００６１】
なお、図５のステップＳ１２で、設定値の書き込みがなされたセルが例えばＩ／Ｏポート２１３（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）に対応するセル３３３，３４３であれば、そのＩ／Ｏポート２１３は読み取り用「Ｗ」のポートであることから（ステップＳ１３でＮＯ）、図９中に示すように、ＣＰＵ１１は、そのＩ／Ｏポート２１３について、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８の対応するセル３５３への設定値の書き込みを許容する。したがって、そのセル３５３に、ロボット制御プログラムのための設定値の書き込みが可能になる。この例では、図９中に示すように、セル３５３に、４０１０という値が書き込まれている。
【００６２】
（デジタルＩ／Ｏ設定値の書き込み処理）
図６に示すデジタルＩ／Ｏ設定値の書き込み処理では、まずステップＳ２１に示すように、ＣＰＵ１１は表示処理部として働いて、この例では記憶部１４から図８に例示するようなマップ情報テーブル３００（この例では、図７に示したものと同じ）を読み出して、表示器１２の表示画面に表示する。なお、図５中のステップＳ１１に関して述べたのと同様に、ＰＬＣ１００のマップ情報記憶部１０２からマップ情報テーブルの内容（構成一覧）を読み出して、それが更新されていれば、マップ情報テーブル３００を更新して表示してもよい。
【００６３】
次に、ユーザが、操作部１３を介して、ロボット制御プログラムに関して、例えばＩ／Ｏポート２１４（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ０１」）について、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８のセル３５４にデジタルＩ／Ｏ設定値（この例では、４００９という値）を入力したものとする。すると、図５のステップＳ２２で、ＣＰＵ１１は書き込み判断部として働いて、図９中に示すように、「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８のセル３５４に、デジタルＩ／Ｏ設定値（この例では、４００９という値）を書き込んで表示する。
【００６４】
次に、図６のステップＳ２３で、ＣＰＵ１１は、図９中に示す「Ｒ／Ｗ」欄３０４を参照して、そのＩ／Ｏポート２１４が書き込み用のポートであるか否かを判断する。この例では、Ｉ／Ｏポート２１４は書き込み用「Ｗ」のポートであることから（ステップＳ２３でＹＥＳ）、図６のステップＳ２４で、ＣＰＵ１１は上書き禁止部として働いて、そのＩ／Ｏポート２１４について、この例では「Ｖａｒｉａｂｌｅ」欄３０６の対応するセル３３４、および、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７の対応するセル３４４への設定値の書き込みを禁止する。これとともに、ＣＰＵ１１は表示処理部として働いて、その「Ｖａｒｉａｂｌｅ」欄３０６のセル３３４、および、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７のセル３４４に、書き込みが不可であることを表す書き込み不能表示を行う。この例では、それらの書き込み不能表示は、図９中に破線３９２で囲んで示すように、それらのセル３３４，３４４を暗色にすることに相当する（図８中に破線３９２で囲んで示す元の白色または明色と比較されたい。）。
【００６５】
したがって、その書き込み不能表示を見たプログラム作成者は、上記設定値の書き込みが禁止された設定値欄（上の例では、「Ｖａｒｉａｂｌｅ」欄３０６のセル３３４，３４４）へ、設定値の書き込みを無駄に試みることが無い。
【００６６】
なお、図６のステップＳ２２で、設定値の書き込みがなされたセルが例えばＩ／Ｏポート２１３（参照名「Ｏｕｔｐｕｔ  Ｂｉｔ  ００  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ」）に対応するセル３５３であれば、そのＩ／Ｏポート２１３は読み取り用「Ｗ」のポートであることから（ステップＳ２３でＮＯ）、図９中に示すように、ＣＰＵ１１は、そのＩ／Ｏポート２１３について、「Ｖａｒｉａｂｌｅ」欄３０６の対応するセル３３４、および、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７の対応するセル３４４への設定値の書き込みを許容する。したがって、それらのセル３３４，３４４に、シーケンス制御プログラムのための設定値の書き込みが可能になる。この例では、図９中に示すように、セル３３３にデバイス変数「Ｎ２＿Ｏｕｔｐｕｔ＿Ｂｉｔ＿００」が書き込まれている。また、それに伴って、セル３３３に、デバイス変数の型「Ｇｌｏｂａｌ  Ｖａｒｉａｂｌｅｓ」が書き込まれている。
【００６７】
このように、このプログラミング支援方法によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。したがって、それぞれのプログラムを作成するプログラム作成者は、このようにして適切に設定値の書き込みがなされたマップ情報テーブル３００を適宜参照しながら、プログラムを作成することができる。これにより、複数のデバイスポートについての設定値は、各プログラム作成者が意図した状態になる。
【００６８】
なお、ＣＰＵ１１は、図５のステップＳ１４で設定値の書き込みが禁止された設定値欄（図９中に示す「Ｄｉｇｉｔａｌ  Ｉ／Ｏ」欄３０８のセル３５１）、図６のステップＳ２４で設定値の書き込みが禁止された設定値欄（図９中に示す「Ｖａｒｉａｂｌｅ」欄３０６のセル３３４、および、「Ｖａｒｉａｂｌｅ  Ｔｙｐｅ」欄３０７のセル３４４）について、操作部１３を介したユーザの指示（書き込み禁止を解除する指示）があれば、上記設定値の書き込み禁止を解除し、書き込み不能表示を解消してもよい。これにより、プログラム作成の状況に応じて、ユーザの便宜を図ることができる。
【００６９】
上述の実施形態では、第１のプログラム言語はラダー言語ＬＤであり、第２のプログラム言語は本出願人の独自開発による言語であるものとしたが、これに限られるものではない。この発明は、互いに異なる複数のプログラム言語に広く適用することができる。
【００７０】
上述のプログラミング支援方法を、ソフトウェア（コンピュータプログラム）として、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル万能ディスク）、不揮発性メモリなどの非一時的（non-transitory）にデータを記憶可能な記録媒体に記録してもよい。このような記録媒体に記録されたソフトウェアを、パーソナルコンピュータ、ＰＤＡ（パーソナル・デジタル・アシスタンツ）などの実質的なコンピュータ装置にインストールすることによって、それらのコンピュータ装置に、上述のプログラミング支援方法を実行させることができる。
【００７１】
以上の実施形態は例示であり、この発明の範囲から離れることなく様々な変形が可能である。上述した複数の実施の形態は、それぞれ単独で成立し得るものであるが、実施の形態同士の組みあわせも可能である。また、異なる実施の形態の中の種々の特徴も、それぞれ単独で成立し得るものであるが、異なる実施の形態の中の特徴同士の組みあわせも可能である。
【符号の説明】
【００７２】
１０  ＰＣ
１１  ＣＰＵ
１００  ＰＬＣ
２００  デバイス群
２１１〜２１６  Ｉ／Ｏポート
【図１】
2020030595.tif 000003
【図２】
2020030595.tif 000004
【図３】
2020030595.tif 000005
【図４】
2020030595.tif 000006
【図５】
2020030595.tif 000007
【図６】
2020030595.tif 000008
【図７】
2020030595.tif 000009
【図８】
2020030595.tif 000010
【図９】
2020030595.tif 000011