(57)【要約】【課題】  ファンクションブロックを誤った位置に配置したり、誤った順序で配置すると言ったプログラミングミスが生じ難く、かつそのようなプログラミングミスが生じた場合には、そのことを容易に発見することができ、しかも完成後のプログラムにおける出力条件ファンクションブロックのパラメータ検証も容易とすること。【解決手段】  プログラミングフィールドへのファンクションブロックの配置は、ブロック配置可能位置が縦横に定義されると共に、行方向の一端側は入力端子側として又他端側は出力端子側として定義されたファンクションブロック配置用のテンプレートによる案内にしたがって行われ、さらに出力条件ファンクションブロックを該当する列に配置するときに必要とされる固有パラメータである入力信号の設定は、メニュー表示された入力信号リストの中から所望の入力信号を選択する操作を介して実行される、ように構成する。【選択図】  図２３
2010055652.tif 000002
【特許請求の範囲】
【請求項１】
画像表示器のスクリーン上のプログラミングフィールドに、予め用意された複数種のファンクションブロックの中から選択された１の種類のファンクションブロックを順次に配置しかつ各ファンクションブロック毎に必要な固有パラメータを設定することにより、所望の制御仕様に対応するロジック回路図を完成する一連のユーザ操作を通して、安全コントローラ用の制御プログラムが自動的に生成されるようにした安全コントローラのプログラム開発支援装置であって、
前記プログラミングフィールドへのファンクションブロックの配置は、当該プログラミングフィールド上に表示され、かつ行と列との各交叉位置にそれぞれ対応するようにして、ブロック配置可能位置が定義されると共に、行方向の一端側は入力端子側として又他端側は出力端子側として定義されたファンクションブロック配置用のテンプレートによる案内にしたがって行われ、さらに
前記ファンクションブロックの１つである出力条件ファンクションブロックを該当する列に配置するときに必要とされる固有パラメータである入力信号の設定は、メニュー表示された入力信号リストの中から所望の入力信号を選択する操作を介して実行される、ことを特徴とする安全コントローラのプログラム開発支援装置。
【請求項２】
前記入力信号リストのメニュー表示は、画像表示器のスクリーン上に開かれたメニューウィンドウ内に設定対象となる入力信号名を配列することにより行われ、所望の入力信号の選択は選択確認手段を介して行われる、ことを特徴とする請求項１に記載の安全コントローラのプログラム開発支援装置。
【請求項３】
前記入力信号リストのメニュー表示に使用される入力信号データは、前記ファンクションブロックの１つである入力系ファンクションブロックを該当する列に配置する際に生成された入力機器テーブルを参照することにより取得される、ことを特徴とする請求項２又は３に記載の安全コントローラのプログラム開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像表示器のスクリーン上のプログラミングフィールドに、所望の制御仕様に対応するロジック回路図を記述するための一連のユーザ操作を通して、安全コントローラ用の制御プログラムが自動的に生成されるされるようにした安全（セーフティ）コントローラのプログラム開発支援装置に関する。
【背景技術】
【０００２】
安全コントローラは、一般的なプログラマブルコントローラ（ＰＬＣ）に類似するロジック演算機能、入出力制御機能に加えて、安全面の自己診断機能を内蔵することにより、その制御において高度な安全性および信頼性を確保したものであり、自己診断結果により異常を検出した場合には、自己の制御が危険につながらないように、強制的に安全な制御を行なうような機能（フェールセーフ機能）を備えている。
【０００３】
ここに言う安全は、より具体的には、規格化されている安全基準を含む意味である。安全規格には、例えばＩＥＣ６１５０８やＥＮ規格などがある。ＩＥＣ６１５０８（プログラム可能な電子システムの機能安全に関する国際電気標準委員会）では、時間あたりの危険故障確立を（失敗確立：Ｐｒｏｂａｂｉｌｉｔｙ  ｏｆ  Ｆａｉｌｕｒｅ  ｐｅｒ  Ｈｏｕｒ）を定義し、この確立によってＳＩＬのレベル（Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ）を４段階に分類している。また、ＥＮ規格では、機械のリスクの大きさを評価し、リスク低減策を講じるように義務づけされていて、ＥＮ９５４−１では５つの安全カテゴリにて規定されている。この明細書でいう安全コントローラ、安全Ｉ／Ｏターミナル等は、このような安全基準のいずれかに対応したものである。
【０００４】
安全コントローラ用の制御プログラムを作成するための従来のプログラム開発支援装置（日本国、オムロン株式会社製セーフティネットワークコントローラ）におけるロジック回路図表示例が図２６に示されている。
【０００５】
このプロラム開発支援装置（第１従来例）は、画像表示器のスクリーン上のプログラミングフィールド８０１に、予め用意された複数種のファンクションブロックの中から選択された１の種類のファンクションブロック（ＦＢ８１〜ＦＢ８５）を順次に配置し、かつ各ファンクションブロック毎に必要な固有パラメータ（図示せず）を設定（この例では、配線描画のためのマウスによるドラッグ操作で、パラメータが自動設定される）することにより、所望の制御仕様に対応するロジック回路図を完成する一連のユーザ操作を通して、安全コントローラ用の制御プログラムが自動的に生成されるされるように構成されている。
【０００６】
なお、図において、ＦＢ８１はセーフティ非常停止スイッチ・アプリケーション用のファンクションブロック、ＦＢ８２はセーフティライトカーテン・アプリケーション用のファンクションブロック、ＦＢ８３はセット／リセット・アプリケーション用のファンクションブロック、ＦＢ８４は論理積演算・アプリケーション用のファンクションブロック、ＦＢ８５は外部出力機器モニタリング・アプリケーション用のファンクションブロックである。また、図において、Ｔ８１１，Ｔ８１２はセーフティ非常停止スイッチの２系統の出力信号が入力される一対の入力端子表示、Ｔ８２１，Ｔ８２２はセーフティライトカーテンの２系統の出力信号が入力される一対の入力端子表示、Ｔ８３はリセットスイッチの出力信号が入力される入力端子表示、Ｔ８４は外部出力機器モニタリング信号が入力される入力端子表示である。
【０００７】
そして、ユーザによりプログラミングフィールド８０１上に描かれたロジック回路に対応して作成される回路図データ（図示せず）は、所定のコンパイル処理が施されて、安全コントローラが直接に解読実行可能な設定ファイルに変換される。こうして得られた実行用の設定ファイルは、対象となる安全コントローラへと、通信を介して又は可搬型記録媒体を介して、インストールされる。
【０００８】
上述の第１従来例によれば、プログラミングフィールド８０１上には、ファンクションブロックや端子表示（以下、回路素子と言う）の置き場所が固定されていないから、所望の回路素子をプログラミングフィールド８０１上の任意の位置に配置することができ、回路素子の配置自由度が高いと言う利点がある。その反面、限られた大きさのプログラミングフィールド８０１内に、所望の回路素子の全てを収容しかつそれらの回路素子を全体の回路動作が理解しやすく配置（レイアウト）するためには、ある種のデザイン上のセンス乃至適性が必要とされ、それらのセンスや適性に劣る者にとっては却って使い勝手が悪いと言う欠点がある（非特許文献１参照）。
【０００９】
安全コントローラ用の制御プログラムを作成するための従来の他のプログラム開発支援装置（独国、ＰＩＬＺ社製）におけるロジック回路図表示例が図２７に示されている。
【００１０】
このプロラム開発支援装置（第２従来例）も、画像表示器のスクリーン上のプログラミングフィールド９０１に、予め用意された複数種のファンクションブロックの中から選択された１の種類のファンクションブロック（ＦＢ９１〜ＦＢ９５）を順次に配置しかつ各ファンクションブロック毎に必要な固有パラメータ（図示せず）を設定（この例でも、配線描画のためのマウスによるドラッグ操作で、パラメータが自動設定される）することにより、所望の制御仕様に対応するロジック回路図を完成する一連のユーザ操作を通して、安全コントローラ用の制御プログラムが自動的に生成されるされるように構成されている。
【００１１】
加えて、この第２従来例にあっては、プログラミングフィールド９０１へのファンクションブロックの配置は、プログラミングフィールド９０１上に表示されるファンクションブロック配置用のテンプレート９００による案内にしたがって行われ、このテンプレート９００には、スクリーン上の垂直方向を基準方向として、複数の行（Ｒ１，Ｒ２，Ｒ３・・・）と複数の列（Ｃ１，Ｃ２，Ｃ３・・・）とが定義される共に、行（Ｒ）方向の一端（左端）は入力側として他端（右端）は出力側として定義され、かつそれらの行（Ｒ１，Ｒ２，Ｒ３・・・）と列（Ｃ１，Ｃ２，Ｃ３・・・）との各交点位置にそれぞれ対応するようにして、複数のブロック配置可能位置（Ａ１１〜Ａ３３）が定義されている。
【００１２】
なお、図において、ＦＢ９１はセーフティ非常停止スイッチ・アプリケーション用のファンクションブロック、ＦＢ９２はセーフティライトカーテン・アプリケーション用のファンクションブロック、ＦＢ９３は論理積演算・アプリケーション用のファンクションブロック、ＦＢ９４はセット／リセット・アプリケーション用のファンクションブロック、ＦＢ９５は外部出力機器モニタリング・アプリケーション用のファンクションブロックである。また、図において、Ｔ９１１，Ｔ９１２は非常停止スイッチの２系統の出力信号が入力される一対の入力端子表示、Ｔ９２１，Ｔ９２２はセーフティライトカーテンの２系統の出力信号が入力される一対の入力端子表示、Ｔ９３はリセットスイッチの出力信号が入力される入力端子表示、Ｔ９４は外部出力機器モニタリング信号が入力される入力端子表示である。
【００１３】
そして、ユーザによりプログラミングフィールド９０１上に描かれたロジック回路に対応して作成される回路図データは、第１従来例と同様に所定のコンパイル処理が施されて、安全コントローラが直接に解読実行可能な設定ファイルに変換される。こうして得られた実行用の設定ファイルは、対象となる安全コントローラへと、通信を介して又は可搬型記録媒体を介して、インストールされる。
【００１４】
上述の第２従来例によれば、プログラミングフィールド９０１上には、回路素子の置き場所が予め定義されているから、所望の回路素子を選択したのち、その回路素子を例えばマウスのドラッグ操作で、予め決められた置き場所の近辺に近づけさえすれば、ドラッグされた回路素子は予め定義された置き場所へと自動的に誘導されて配置されるから、レイアウト上のデザイン上のセンスや適性を有しない者であっても、選択された複数の回路素子をプログラミングフィールド９０１内に要領よく配置することができ、第１従来例の場合のように、選択された回路素子のレイアウトに頭を悩ますことがないと言う利点がある（非特許文献２）。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】オムロン株式会社のカタログ                      （ＵＲＬ  http://www.fa.omron.co.jp/product/32.htmlに掲載）
【非特許文献２】ＰＩＬＺ社カタログ                      （ＵＲＬ  http://www.pilz.jp/p_saferelay7.htmに掲載）
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ところで、この種のプログラム開発支援装置において、所望の安全制御仕様に対応するロジック回路図を生成するに際しては、単に入出力間の信号論理のみならず、安全コントローラに特有とされる様々な事情に配慮しつつ、必要なファンクションブロックをロジック回路図上の必要な位置に適切に配置せねばならない。
【００１７】
例えば、１もしくは２以上の入力端子から得られる入力信号が所定の論理値（危険）を示すときに、１もしくは２以上の出力端子から所定論理値（危険源の停止）を有する出力信号を送出するような論理回路図を作成しようとする場合、これが安全仕様でない通常のコントローラ（ＰＬＣ等）であれば、それらの入出力間論理に相当する論理演算用のファンクションブロックを入出力端子列間に配置するだけで充分あろう。
【００１８】
しかし、これが安全仕様のコントローラとなると、些か、事情は異なる。すなわち、安全仕様のコントローラの場合には、入力端子から何らかの危険を示す入力信号が得られたとしても、その入力信号は、危険を検知する入力機器（セーフティ非常停止スイッチ、セーフティライトカーテン、セーフティリミットスイッチ、セーフティドアスイッチ等々）それ自体の故障等に起因するものである可能性もあるため、そのような入力信号を直ちに取り込んで必要な論理演算に供することはできない。そのため、論理演算用のファンクションブロック（例えばＡＮＤファンクションブロック）の少なくとも前段には、各入力機器毎に適切な故障診断機能等が組み込まれた入力系ファンクションブロックを配置せねばならない。
【００１９】
また、そのような入力系ファンクションブロック経由で何らかの危険を示す入力信号が得られたとしても、その入力信号は、調整やメンテナンス等のために、危険を承知で作業員が危険領域に侵入したことに起因するものである可能性もあるため、そのような入力信号を直ちに取り込んで必要な論理演算に供することができない場合もある。そのため、論理演算用のファンクションブロックの少なくとも前段には、調整時やメンテナンス時等に相当する所定の条件が成立するときには、入力信号を無効化する機能を有する無効化・ファンクションブロックを配置せねばならない場合もある。
【００２０】
また、そのような入力系ファンクションブロック、及び／又は、無効化・ファンクションブロック経由で何らかの危険を示す入力信号が得られた場合、危険を示す状態から安全を示す状態への復帰と同時に出力信号の状態を復帰させてはいけないとする安全法規上の理由から、そのような入力信号を直ちに取り込んで必要な論理演算に供することができない場合（特に、瞬時動作／瞬時復帰・接点からの入力信号の場合）もある。そのため、論理演算用のファンクションブロックの少なくとも前段には、入力信号の危険状態を保持するセット機能と、危険状態の保持を解除するリセット機能と、リセット条件を規定する機能とを有するセット／リセット・ファンクションブロックを配置せねばならない場合もある。
【００２１】
また、出力機器それ自体にも故障の可能性があることを考慮すると、論理演算用の出力条件ファンクションブロックの出力信号を無条件で出力機器へと送出することは必ずしも適当ではない。そのため、出力条件ファンクションブロックの少なくとも後段には、各出力機器毎に適切な故障診断機能等が組み込まれた外部出力機器モニタリング・ファンクションブロック（例えば、ＥＤＭ・ファンクションブロック）を配置せねばならない。
【００２２】
さらに、出力機器のそれぞれには固有の動作遅れ時間があることを考慮すると、複数の出力端子のそれぞれから同一のタイミングで出力信号を送出することが必ずしも適当でない場合もある。そのため、出力条件ファンクションブロックの少なくとも後段には、出力信号のオンタイミング、及び／又は、オフタイミングを遅らせる機能を有する端子モード・ファンクションブロックを配置せねばならない場合もある。
【００２３】
このように、ロジック回路図を介在する安全コントローラのプログラミングにおいては、入力端子から出力端子へ至る信号経路上の必要な位置に、必要なファンクションブロックを適切に配置する作業がユーザに対して要求される。この作業は、上述の安全コントローラ特有の事情を十分に考慮してはじめて適切に成し得るものであるから、安全コントローラのプログラミングに不慣れな初心者にとってはなかなか容易なことではなく、しばしば必要なファンクションブロックの欠落を生じたり、必要なファンクションブロックは存在するものの、配置される位置が誤っている等のプログラミングミスが生ずる。
【００２４】
殊に、上述の第１、第２従来例にあっては、プログラミングフィールド上の各ファンクションブロックが配置される位置とその位置に配置されるファンクションブックの種別との間には厳密な相関は何ら存在しないから、本来配置されるべき複数のファンクションブロックのうちのいずれかが、誤って欠落していたり、配置される位置が誤っていたとしても、そのことを各ファンクションブロックのレイアウトから直ちに発見することは困難である。
【００２５】
そのため、それらの従来例において、そのようなプログラミングミスを発見するためには、具体的な制御の事情を頭に浮かべながら、入力端子から出力端子へと信号経路を順に辿ると言う地道な検証作業が必要となり、このような検証作業の煩雑さがこの種の安全コントローラの普及を阻害する一因ともなっている。
【００２６】
安全コントローラのプログラミングに使用されるファンクションブロックの種類は、安全コントローラの普及に連れて益々増加することが予想されるため、より多数の種別のファンクションブロックが存在するであろう将来の状況下においても、プログラミングミスが生じ難く、かつプログラミングミスが生じた場合には、そのことを容易に発見することが可能な安全コントローラのプログラム開発支援装置が要望されている。
【００２７】
加えて、上述の第１、第２従来例にあっては、各ファンクションブロック間の接続関係を規定する固有パラメータの設定は、該当するファンクションブロック間を結ぶ信号線の描画操作を介して行うように仕組まれているため、完成されたプログラム中の出力条件ファンクションブロックの設定パラメータをロジック回路図を頼りに検証しようとすると、完成されたロジック回路図上の配線と安全入出力機器対応表（図２８参照）上の入出力関係とを照合すると言う煩雑な操作を強いられることから、検証に手間取ると言う問題点もある。
【００２８】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ファンクションブロックを誤った位置に配置したり、誤った順序で配置すると言ったプログラミングミスが生じ難く、かつそのようなプログラミングミスが生じた場合には、そのことを容易に発見することができ、しかも完成後のプログラムにおける出力条件ファンクションブロックのパラメータ検証も容易な安全コントローラのプログラム開発支援装置を提供することにある。
【００２９】
この発明のさらに他の目的並びに作用効果については、明細書の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００３０】
上述の技術的な課題は、以下の構成を有する安全コントローラのプログラム開発支援装置により解決することきができる。
【００３１】
すなわち、この安全コントローラのプログラム開発支援装置は、画像表示器のスクリーン上のプログラミングフィールドに、予め用意された複数種のファンクションブロックの中から選択された１の種類のファンクションブロックを順次に配置しかつ各ファンクションブロック毎に必要な固有パラメータを設定することにより、所望の制御仕様に対応するロジック回路図を完成する一連のユーザ操作を通して、安全コントローラ用の制御プログラムが自動的に生成されるように動作する処理部を有した基本構成を有している。
【００３２】
そして、このプログラム開発支援装置は、上述の基本構成に加えて、前記プログラミングフィールドへのファンクションブロックの配置は、当該プログラミングフィールド上に表示され、かつ行と列との各交叉位置にそれぞれ対応するようにして、ブロック配置可能位置が定義されると共に、行方向の一端側は入力端子側として又他端側は出力端子側として定義されたファンクションブロック配置用のテンプレートによる案内にしたがって行われるようになっている。
【００３３】
さらに、このプログラム開発支援装置は、前記ファンクションブロックの１つである出力条件ファンクションブロックを該当する列に配置するときに必要とされる固有パラメータである入力信号の設定は、メニュー表示された入力信号リストの中から所望の入力信号を選択する操作を介して実行されるよいになっている。
【００３４】
このような動作をする処理部を備えた構成によれば、前記プログラミングフィールドへのファンクションブロックの配置は、当該プログラミングフィールド上に表示され、かつ行と列との各交叉位置にそれぞれ対応するようにして定義されたブロック配置可能位置に案内されるから、各ファンクションブロックは自動的に縦横整列されて配置され、ユーザはファンクションブロックのレイアウトに頭を悩ますことがない。
【００３５】
加えて、前記ファンクションブロックの１つである出力条件ファンクションブロックを該当する列に配置するときに必要とされる固有パラメータである入力信号の設定は、メニュー表示された入力信号リストの中から所望の入力信号を選択する操作を介して実行されるようになっているため、プログラム完成後の検証に際しては、ロジック回路図上の配線を追わねばならなかった従来例とは異なり、この種のプログラミングに先立って通常作成される安全入出力機器対応表とメニュー表示される入力信号リストとを照合することにより、誰でも容易に行うことが可能となる。
【００３６】
このとき、前記入力信号リストのメニュー表示を、画像表示器のスクリーン上に開かれたメニューウィンドウ内に設定対象となる入力信号名を配列することにより行なうと共に、所望の入力信号の選択については、選択確認手段を介して行われるようにすれば、入力信号の選択操作、並びに、プログラム完成後の検証作業が一層容易となる。
【００３７】
また、前記入力信号リストのメニュー表示に使用される入力信号データを、前記ファンクションブロックの１つである入力系ファンクションブロックを該当する列に配置する際に生成された入力機器テーブルを参照することにより取得するようにすれば、メニュー表示のために、わざわざ別途に入力信号データを登録する作業が不要となる。
【００３８】
なお、前記入力信号リストのメニュー表示の態様については、それ以外にも様々な態様が可能であることは言うまでもない。例えば、入力端子数が１６点、３２点、６４点と言ったように多くなると、それらの入力端子数に対応して選択対象となる入力信号数も増大するから、そのような場合には、それらの入力信号を幾つかのグループ毎に何回かに分けてメニュー表示するようにしてもよい。
【００３９】
また、そのような入力点数が多数に及ぶときに、対象となる出力条件ファンクションブロックと関係する入力信号の範囲がある程度論理的に推測されるのであれば、可能性の高いグループに属する入力信号から優先的に、又はそのようなグループに属する入力信号に絞り込んで、メニュー表示する等のように、ＡＩ機能を持たせれば、効率よく選択操作を行わせることができる。
【００４０】
また、メニュー表示される入力信号リスト中の入力信号表示については、入力信号を示す名称、記号等のほか、対象となる入力端子の名称、記号等を使用してもよく、さらに、表示画面に余裕があることが条件ではあるが、比較対照となる安全入出力機器対応表の一般的なフォームが既知であれば、より一層照合が容易なように、各出力条件ファンクションブロック毎の設定済み入力信号データと各出力端子に割り当てられた安全出力機器データとに基づいて、逆アセンブリ処理を実行することにより、安全入出力機器対応表をグラフィカルに表示するようにしてもよいであろう。
【発明の効果】
【００４１】
この発明によれば、ファンクションブロックを誤った位置に配置したり、誤った順序で配置すると言ったプログラミングミスが生じ難く、かつそのようなプログラミングミスが生じた場合には、そのことを容易に発見することができ、しかも完成後のプログラムにおける出力条件ファンクションブロックのパラメータ検証も容易な安全コントローラのプログラム開発支援装置を提供することができる。
【図面の簡単な説明】
【００４２】
【図１】安全コントローラを含む安全制御システムを示す概念図である。
【図２】プログラム開発支援装置の機能を概念的に示すブロック図である。
【図３】プログラム開発支援装置の電気的なハードウェア構成を示す概略ブロック図である。
【図４】安全コントローラの電気的なハードウェア構成を示す概略ブロック図である。
【図５】プログラム開発支援装置のソフトウェア構成を示すフローチャート（その１）である。
【図６】プログラム開発支援装置のソフトウェア構成を示すフローチャート（その２）である。
【図７】安全出力条件設定処理の詳細フローチャートである。
【図８】安全プログラムテンプレートデータ（入力側）の一例を示す説明図である。
【図９】安全プログラムテンプレートデータ（出力側）の一例を示す説明図である。
【図１０】ユーザにより作成されたロジック回路データ（１０ｂ）の一例を示す説明図である。
【図１１】入力機器テーブルの説明図である。
【図１２】出力条件設定テーブルの説明図である。
【図１３】安全コントローラへダウンロードされる設定パラメータデータ（制御プログラム）の一例を示す説明図である。
【図１４】入力側テンプレートにおけるＦＢ配置開始初期の画面説明図である。
【図１５】ＦＢ選択用メニューウィンドウの説明図である。
【図１６】入力無効化条件設定用メニューウィンドウの説明図である。
【図１７】リセット条件設定用メニューウィンドウの説明図である。
【図１８】入力ＦＢ、無効化条件ＦＢ、及びリセットＦＢが配置された入力側テンプレートの画面説明図である。
【図１９】出力側テンプレートにおけるＦＢ配置設定開始初期の画面説明図である。
【図２０】溶着チェックに関する各種メニューウィンドウの画面説明図である。
【図２１】端子モード設定用メニューウィンドウの説明図である。
【図２２】端子モードＦＢ、出力条件ＦＢ、及び溶着チェックＦＢが配置された出力側テンプレートの画面説明図である。
【図２３】出力条件設定用ウィンドウの説明図である。
【図２４】入力側テンプレートにおけるＦＢ配置完了時の確認用画面説明図である。
【図２５】出力側テンプレートにおけるＦＢ配置完了時の確認用画面説明図である。
【図２６】プログラム開発支援装置（第１従来例）によるロジック回路図表示例である。
【図２７】プログラム開発支援装置（第２従来例）によるロジック回路図表示例である。
【図２８】安全入出力機器対応表の説明図である。
【発明を実施するための形態】
【００４３】
以下に、この発明に係る安全コントローラのプログラム開発支援装置の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００４４】
本発明に係るプログラム開発支援装置の対象となる安全コントローラを含む安全制御システムを示す概念図が図１に示されている。同図（ａ）に示される安全制御システムは、１台の安全コントローラ１と１若しくは２台以上の安全Ｉ／Ｏターミナル５とをバス型ネットワーク２ａにて接続して構成されている。尚、同図（ａ）に示される安全制御システムにおいては、安全コントローラ１はマスタとして、安全Ｉ／Ｏターミナル５はスレーブとして機能する。
【００４５】
これらの安全コントローラ１及び安全Ｉ／Ｏターミナル５には、それぞれ入力機器３及び出力機器４が接続される。入力機器３としては、セーフティ非常停止スイッチ、セーフティライトカーテン、セーフティリミットスイッチ、セーフティドアスイッチなどを挙げることができる。また、出力機器４としては、セーフティリレー、セーフティコンタクタなどを挙げることができる。
【００４６】
同図（ａ）に示されるマスタ・スレーブ型の安全制御システムに適用する場合、本発明のプログラム開発支援装置１０は、安全コントローラ１と各安全Ｉ／Ｏターミナル５とを繋ぐバス型ネットワーク２ａに接続することができる。これに対して、同図（ｂ）に示される単独タイプの制御システムに適用する場合、本発明のプログラム開発支援装置１０は所定のケーブル２ｂを介して直結される。こうして、プログラム開発支援装置１０にて生成される安全に関する制御プログラムは、各安全コントローラ１で実行可能な形式に変換された後、安全コントローラ１へと送り込まれる。
【００４７】
本発明に係るプログラム開発支援装置の電気的なハードウェア構成を示す概略ブロックズが図３に示されている。図１と図３とを参照して明らかなように、このプログラム開発支援装置１０は、図示の例にあっては、ノート型パソコンを主体として構成されている。
【００４８】
ノート型パソコンのハードウェア構成は、当業者にはよく知られているように、ＣＰＵ１１と、入力操作部１２と、画像表示部１３と、ワークＲＡＭ１４と、記憶装置１５と、通信部１６とをシステムバス１７で接続して構成されている。
【００４９】
ＣＰＵ１１はマイクロプロセッサを主体として構成されており、当該ノート型パソコン全体を統括制御するものである。入力操作部１２は、マウスやキーボードなどを主体として構成されており、当該ノート型パソコンに対する各種の指令を与えるためのヒューマン・マシン・インタフェースとして機能するものである。
【００５０】
画像表示部１３は液晶ディスプレイなどにより構成されており、その画面（スクリーン）１３ａには、後に図１４等を参照して詳述するように、本発明に係るプログラミングフィールド２０１が表示されるようになっている。ワークＲＡＭ１４は、後述するシステムプログラム、アプリケーションプログラムなどをＣＰＵ１１が実行する際のワークエリアとして利用される。
【００５１】
記憶装置１５は、ハードディスクなどで構成されており、その内部には出力イメージメモリ１５ａ、システムメモリ１５ｂ、プログラムメモリ１５ｃがそれぞれ配置されている。出力イメージメモリ１５ａは、本発明に関連して、各種のイメージを画像表示部１３のスクリーン１３ａ上に表示させる際の各種のイメージデータを格納するために使用され、システムメモリ１５ｂは、当該ノートパソコンの基本的な機能を構成するためのファームウェア（オペレーティングシステムを含む）を格納するために使用される。プログラムメモリ１５ｃは、当該ノートパソコンで実行されるべき各種のアプリケーションプログラムを格納するために使用される。
【００５２】
先に述べたように、出力イメージメモリ１５ａ、システムメモリ１５ｂ、プログラムメモリ１５ｃに格納された各種のプログラム並びにデータは、それぞれＣＰＵ１１が実行する際には、ワークＲＡＭ１４のワークエリア上に展開されて実行されることはよく知られている通りである。
【００５３】
次に、安全コントローラ１の電気的なハードウェア構成を示す概略ブロック図が図４に示されている。同図に示されるように、安全コントローラ１の内部には、通信Ｉ／Ｆ部１０１と、中央演算部１０２と、入力端子部１０４ａと、出力端子部１０４ｂとが含まれている。
【００５４】
通信Ｉ／Ｆ部１０１は、当該安全コントローラ１とネットワーク２ａ，２ｂとの間で通信を行う際のインタフェース機能を実現するためのものである。中央演算部１０２は、当該安全コントローラ１の全体を統括制御するものであり、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを主体として構成されている。
【００５５】
入力端子部１０４ａには、入力機器３からの信号を受け付けるための複数の入力端子（端子１，端子２，・・・，端子ｎ）が含まれている。一方、出力端子部１０４ｂには、出力機器４へと出力信号を送出するための複数の出力端子（端子１，端子２，・・・，端子ｎ）が含まれている。
【００５６】
入力側の端子異常診断部１０３ａは、入力端子部１０４ａに含まれる各入力端子のそれぞれに対応する個別診断部を有している。各個別診断部は、複数の入力機器種別に対応する汎用の診断部として構成されており、この診断部は各入力機器種別に応じたパラメータが設定されることによって、その機種に特化した形態に構築されるように仕組まれている。後述するプログラミング作業において、入力系ファンクションブロックのパラメータとして出現するのは、この端子異常診断部１０３ａを各入力機器種別に特化するためのパラメータのことである。
【００５７】
出力側の端子異常診断部１０３ｂもまた、出力端子部１０４ｂに含まれる各出力端子に対応する個別診断部を有している。この個別診断部は、複数の出力機器種別に対応する汎用の診断部として構成されており、これに各出力機器に対応するパラメータを設定することによって、その出力機器種別に対応する診断部として特化されるように構成されている。
【００５８】
次に、プログラム開発支援装置１０の機能を概念的に示すブロック図が図２に示されている。同図に示されるように、本発明を実現するための構成に着目した場合、プログラム開発支援装置１０として必要な機能構成要素としては、安全入力機器テーブル１０ａと、ロジック回路図データ１０ｂと、設定パラメータを作成するためのコンパイラ１０ｃと、コンパイラ１０ｃを介してロジック回路図データ１０ｂから変換された設定パラメータ１０ｄとを挙げることができる。これらの機能構成要素については、後に本発明に係るプログラム開発支援装置の動作を説明する際に、図８〜図１３に示される図表、並びに、図５〜図７に示されるフローチャートを参照しながら詳述することとする。
【００５９】
次に、図５〜図７を参照しながら、本発明に係るプログラム開発支援装置の動作について説明する。なお、それらのフローチャートに示されるアプリケーションプログラムについては、先に図３を参照して説明したプログラムメモリ１５ｃに格納されたものである。また、それらのフローチャートに示される動作については、処理部に相当するＣＰＵ１１によって統括して実行処理される。
【００６０】
プログラム開発支援装置のソフトウェア構成を示すフローチャート（その１〜その３）が図５〜図７に示されている。
【００６１】
図５において、処理が開始されると、まず、安全入出力端子の設定のためのユーザアクションを受け付ける処理が実行される（ステップ１０１）。ここで、ユーザアクションとしては、プログラム開発支援装置１０を構成するノート型パソコンにおける所定のキー入力操作やマウス操作等を挙げることができる。このユーザアクションによって、安全入出力端子に関する各種のデータが設定される。こうして得られた安全入出力端子に関する各種のデータは、ワークＲＡＭ１４に格納される（ステップ１０２）。
【００６２】
入力側テンプレートにおけるファンクションブロック（以下、「ＦＢ」ともいう）配置開始初期の画面説明図が図１４に、出力側テンプレートにおけるＦＢ配置設定開始初期の画面説明図が図１９にそれぞれ示されている。
【００６３】
図１４に示されるように、プログラム開発支援装置１０を構成するノート型パソコンの画像表示部１３のスクリーン１３ａには、入力用のセーフティロジックウィザードのためのウィンドウ２００が開かれる。ここで、「セーフティロジックウィザード」とは、安全コントローラ用の制御プログラムに相当するロジック回路図作成のための各種ユーザサポート機能を総称するものである。
【００６４】
こうして開かれたウィンドウ２００内には、横長長方形状のプログラミングフィールド２０１が定義されており、このプログラミングフィールド２０１には本発明の要部であるところの入力用テンプレート２０２が表示される。
【００６５】
この入力側テンプレート２０２には、それぞれスクリーンの水平方向へと延びる行（Ｒ１，Ｒ２，Ｒ３，・・・）とスクリーンの垂直方向へ延びる列（Ｃ１，Ｃ２，Ｃ３）との各交点に対応するようにして、複数のブロック配置可能位置が設けられている。また、入力側テンプレート２０２の左側縁部には、各行（Ｒ１，Ｒ２，Ｒ３，Ｒ４・・・）に対応させて、その行の入力端子に関する情報が表示されている。
【００６６】
この例では、第１行（Ｒ１）は、２つの入力端子［ＩＮ０／１］に割り当てられており、それらの入力端子は、二重化仕様のセーフティ非常停止スイッチからの一対のＮＣ（ノーマルクローズ）信号を受け付けるように設定されている。また、第２行（Ｒ２）は、２つの入力端子［ＩＮ２／３］に割り当てられており、それらの入力端子は、二重化仕様のセーフティドアスイッチからの一対のＮＣ信号を受け付けるように設定されている。また、第３行（Ｒ３）は、１個の入力端子［ＩＮ４］に割り当てられており、この入力端子は、非二重化仕様のドアスイッチからの信号を受け付けるように設定されている。
【００６７】
これらの入力端子設定に対応するようにして、入力側テンプレート２０２の第１列（Ｃ１）には、各行（Ｒ１，Ｒ２，Ｒ３）の端子設定に対応するようにして、それぞれの端子に関する自己診断機能を実現するためのファンクションブロックが配置される。
【００６８】
すなわち、第１列（Ｃ１）の第１行（Ｒ１）に対応するブロック配置可能位置（横長長方形の小領域）には、セーフティ非常停止スイッチファンクションブロック（ＦＢ１１）が、第２行に対応するファンクションブロック配置可能位置には、二重化仕様のセーフティライトカーテンファンクションブロック（ＦＢ１２）が、第３行（Ｒ３）に相当するファンクションブロック配置可能位置には、非二重化仕様のセーフティライトカーテンファンクションブロック（ＦＢ１３）がそれぞれ配置されている。
【００６９】
そして、図５のフローチャートにおいて、ステップ１０１，１０２の処理が実行されると、以上説明した入力端子の設定並びにファンクションブロックの配置が実行される。
【００７０】
なお、この入力側テンプレート２０２における第２列（Ｃ２）の各行のブロック配置位置には、入力無効化ファンクションブロック又は入出力間導通ファンクションブロック（ＦＢ０１）が配置されるように仕組まれており、同様にして第３列（Ｃ３）の各行のブロック配置位置にはセット／リセットファンクションブロック又は入力間導通ファンクションブロック（ＦＢ０１）が配置されるように仕組まれている。これらの仕組みは、各列毎に選択可能なファンクションブロックをメニューウィンドウの中からのみ選択可能とすることで実現されている。
【００７１】
そして、入力側テンプレート２０２の上縁部には、各列（Ｃ１，Ｃ２，Ｃ３）に対応するようにして、その列に配置されるべきファンクションブロックの意味内容を示すインデックス２０３−１〜３が表示されている。ここで、第１列（Ｃ１）に対応するインデックス２０３−１の内容は、入力系ファンクションブロックであることを示す「入力」とされ、第２行（Ｃ２）に対応するインデックス２０３−２の内容は、入力無効化ファンクションブロックであることを示す「無効化」とされており、さらに第３列（Ｃ３）に対応するインデックス２０３−３の内容は、セット／リセットファンクションブロックであることを示す「リセット」とされている。
【００７２】
一方、この入力側テンプレート２０２の右側縁部には、各行（Ｒ１，Ｒ２，Ｒ３，Ｒ４・・・）ごとに、その左側縁部の入力表示情報と同一の入力表示情報とが表示されている。つまり、この入力側テンプレートにおいては、各行のそれぞれは、行単位で１個の入力信号に割り付けられているのである。
【００７３】
そのため、このような構造を有する入力側テンプレート２０２によれば、同一の入力信号に係るファンクションブロックについては同一行に配置すればよく、また同種のファンクションブロックについては同一列に配置すればよいことになるため、ある入力信号経路に配置すべきファンクションブロックを別の入力信号経路に配置したり、あるいはある並び順で配列されるべき複数のファンクションブロックを別の並び順で配置してしまうといったプログラミングミスを起こし難いという利点がある。
【００７４】
次に、出力側テンプレートにおけるＦＢ配置設定開始初期の画面説明図が図１９に示されている。同図に示されるように、この例にあっては、スクリーン上に開かれたウィンドウ２００内のプログラミングフィールド２０１には、出力側テンプレート２１０が表示される。この出力側テンプレート２１０には、行（Ｒ１，Ｒ２，Ｒ３，Ｒ４・・・）と列（Ｃ４，Ｃ５，Ｃ６）との各交点に対応して、ブロック配置可能位置（横長長方形状の小領域）が定義されている。
【００７５】
この出力側テンプレート２１０の右側縁部には、各行（Ｒ１，Ｒ２，Ｒ３，Ｒ４・・・）に対応するようにして、その行に紐付けられた端子情報が表示されている。図示の例にあっては、第１行（Ｒ１）は安全仕様を有する２個の出力端子［ＯＵＴ０／１］に割り当てられると共に、それらの出力端子のそれぞれは２個のセーフティリレーへと結線される。また、第２行（Ｒ２）は、１個の出力端子［ＯＵＴ２］に割り当てられ、この出力端子は１個のセーフティリレーへと結線される。なお、この例では、第３行（Ｒ３）及び第４行（Ｒ４）についてはそれぞれ１個の出力端子［ＯＵＴ３］，［ＯＵＴ４］に割り当てられるものの、それらの出力端子の結線先については未定とされている。
【００７６】
一方、この出力側テンプレート２１０の初段に位置する第４列（Ｃ４）は出力条件ファンクションブロックに割り当てられ、次の列である第５列（Ｃ５）は溶着チェック（ＥＤＭ）ファンクションブロックに割り当てられ、さらに次の列である第６列（Ｃ６）は端子モードファンクションブロックに割り当てられている。
【００７７】
このことを明らかとするために、出力側テンプレート２１０の上縁部には、各列（Ｃ４，Ｃ５，Ｃ６）にそれぞれ対応させて、その列に配置されるべきファンクションブロックを意味するインデックス２０３−４〜６が表示されている。
【００７８】
具体的には、インデックス２０３−４の内容は、１もしくは２以上の入力信号のそれぞれの論理値がどのようなときに出力を生成すべきかを決定する出力条件ファンクションブロックであることを意味する「出力条件」とされている。また、インデックス２０３−５の内容は、出力端子に接続されるセーフティリレーの溶着チェックを行うための溶着チェック（ＥＤＭ）ファンクションブロックであることを意味する「溶着チェック（ＥＤＭ）」とされている。また、インデックス２０３−６の内容は、オンディレイやオフディレイなどの端子モードを設定する端子モードファンクションブロックであることを意味する「端子モード」とされている。
【００７９】
なお、この初期画面においては、第６列（Ｃ６）の第１行（Ｒ１）のブロック配置可能位置には、リモートＩ／Ｏファンクションブロック（ＦＢ６１）が配置されており、第２行（Ｒ２）のブロック配置可能位置にはリモートＩ／Ｏファンクションブロック（ＦＢ６２）が配置されている。
【００８０】
ここで重要な点であるが、先に説明した入力側テンプレートの場合と同様に、出力側テンプレートにおいても、各列（Ｃ４，Ｃ５，Ｃ６）は、それぞれ特定種類のファンクションブロックに割り当てられると共に、特に初段に位置する列（Ｃ４）については、出力条件ファンクションブロックに割り当てられているため、少なくとも列（Ｃ４）に出力条件ファンクションブロックが配置されている行のブロック配置可能位置には、その出力条件が成立して得られる出力信号に関するファンクションブロックが配置されることとなる。
【００８１】
そのため、このような出力側テンプレートによれば、同一の出力信号に関する処理を行うファンクションブロックについては、その出力信号を生成する出力条件ファンクションブロックが置かれた行と同一の行に配置すればよく、また同種のファンクションブロックについてはそれぞれ特定の列に配置すればよいこととなるため、先の入力側テンプレートの場合と同様に、ある出力信号経路に配置すべきファンクションブロックを別の出力信号経路に配置したり、あるいは一定の並び順で配置されるべき複数のファンクションブロックを異なる並び順で配置するといったプログラミングミスを起こし難いという利点がある。
【００８２】
さらに、本発明のプログラム開発支援装置によれば、図１４と図１９とに分離して示されるように、テンプレートの全体は、入力側テンプレート２０２と出力側テンプレート２１０とに分離して表示されることから、それらを一体に結合して表示させた場合に比べて、プログラミングミスを生じ難いという利点もある。
【００８３】
すなわち、先に説明したように、入力側又は出力側のいずれのテンプレート２０２，２１０においても、各行（Ｒ１，Ｒ２，Ｒ３，Ｒ４・・・）のそれぞれには、同一の信号に関するファンクションブロックが配列されるのであるが、これを仔細に検討すると、同じ列であっても、入力側テンプレート２０２の側と出力側テンプレート２１０の場合とでは、一方は入力信号経路また他方は出力信号経路であって、信号経路の意味づけが大きく異なることが分かる。
【００８４】
そのため、もしも、入力側テンプレート２０２と出力側テンプレート２１０とを一体に結合して、同一行の各列にファンクションブロックを配置する場合、入力信号に関するファンクションブロックを出力信号経路に配置してしまったり、逆に出力信号経路に配置すべきファンクションブロックを入力信号経路に配置するといったプログラミングミスを生じ易くなる。
【００８５】
これに対して、本発明のように、テンプレートの全体を、入力側テンプレート２０２と出力側テンプレート２１０とに分離すれば、両者間に境界線を明示するだけであっても、ユーザはその境界線によって同一行であっても境界を境として各側の信号経路の意味が異なることを理解するから、そのようなプログラミングミスを生じ難くなるのである。
【００８６】
加えて、この実施形態のように、単に入力側と出力側とに分離するのみならず、入力側テンプレート２０２と出力側テンプレート２１０とを別々の画面で択一的に表示するようにすれば、そのような入力信号経路と出力信号経路とを誤認することによるファンクションブロックの配置誤りを一層確実に防止することができる。
【００８７】
なお、以上説明した図１４及び図１９において、Ｄ１は画面を垂直方向へとスクロールするためのスクロールバー、Ｄ２は前の画面へと強制的に戻すための「戻る」ボタン、Ｄ３は次の画面へと強制的に進ませるための「次へ」ボタン、Ｄ４は様々なコマンドをキャンセルするためのキャンセルボタンである。
【００８８】
スクロールバーＤ１の存在からも明らかなように、入力側テンプレート２０２及び出力側テンプレート２１０は、必要とする入力端子が８点、１６点、３２点、６４点・・・といったように増加するのに合わせて、任意の長さ垂直方向へと延長することができ、その場合にはスクロールバーＤ１の操作によって、画面から隠れた特定の行をプログラミングフィールド２００内に引き寄せることができる。
【００８９】
なお、本発明においては、以上説明した入力側テンプレート２０２及び出力側テンプレート２１０において、様々な原因によるプログラミングミスを防止するために、先に説明したセーフティロジックウィザードが採用されている。このセーフティロジックウィザードの内容については、後に図８〜図１３の図表を参照しながら詳細に説明する。
【００９０】
図５に戻って、安全入出力端子設定の記憶が完了すると（ステップ１０２）、続いて、図１４に示されるように、セーフティロジックウィザードの適用された入力側テンプレート２０２の表示が行われ（ステップ１０３）、その後、本発明の要部であるところの入力側回路図データ生成処理（ステップ１０４）が実行される。この入力側回路図データ生成処理は、セーフティロジックウィザードの支援の下に行われる。
【００９１】
この入力側回路図データ生成処理（ステップ１０４）は、図５に示されるように、入力側テンプレート上へのＦＢ配置のためのユーザアクションが行われるたびに（ステップ１０４ａ）、予め定義した「配置列」にしたがってＦＢを配置しているかどうかを判定し、予め定義した「配置列」にしたがってＦＢを配置している場合に限り、そのＦＢの配置内容を記憶（登録）する処理（ステップ１０４ｂ）を、ユーザ側のＦＢ配置継続意思が継続する限り（ステップ１０４ｃ）、繰り返すものである。
【００９２】
ここで、判定基準となる予め定義した「配置列」とは、各ファンクションブロックを入力側テンプレート２０２上のどの列に配置すべきかを定義するものであって、例えば、図８に示されるように、安全プログラムテンプレートデータ（入力側）としてワークＲＡＭ１４等に格納されたものである。
【００９３】
図８に示されるように、この安全プログラムテンプレートデータ（入力側）は、各列（１列目、２列目、３列目・・・）毎に、その列に格納が許容されるファンクションブロックの「種別名」（入力系ファンクションブロック等）と、その「種別名」に包含される個々のファンクションブロックのリストを互いに関連づけて表形式に記憶することで構成されたものである。
【００９４】
具体的には、１列目には、入力系ファンクションブロックが格納されるべきものとされ、そのようなファンクションブロックには、不使用ファンクションブロック（Ｎｏｔ  Ｕｓｅｄ）、非常停止スイッチファンクションブロック、セーフティライトカーテンファンクションブロック等が含まれる。２列目には、入力無効化ファンクションブロックが格納されるべきものとされ、この入力無効化ファンクションブロックには、不使用ファンクションブロック（Ｎｏｔ  Ｕｓｅｄ）、論理和演算ファンクションブロック（ＯＲ）、論理積及び論理和演算ファンクションブロック（ＡＮＤ＋ＯＲ）等が含まれる。３列目には、セット／リセットファンクションブロックが配置されるべきものとされ、このセット／リセットファンクションブロックには、不使用ファンクションブロック（Ｎｏｔ  Ｕｓｅｄ）、マニュアルリセットファンクションブロック（Ｌｏｗ−Ｈｉｇｈ−Ｌｏｗ信号）、マニュアルリセットファンクションブロック（Ｒｉｓｉｎｇ  Ｅｄｇｅ信号）等が含まれる。
【００９５】
図５へ戻って、ステップ１０４ｂの処理においては、ユーザアクション（１０４ａ）で指定される「列」及び具体的な「ファンクションブロック名」との組み合わせを、図８に示される安全プログラムテンプレートデータ（入力側）と照合することによって、予め定義した「配置列」にしたがってＦＢを配置しているか否かを判断する。
【００９６】
図１４に示される入力側テンプレート２０２上において、例えば第１行（Ｒ１）の第２列（Ｃ２）のブロック配置可能位置に論理和演算ファンクションブロック（ＦＢ２１）を配置したい場合には、第１行（Ｒ１）のプルダウンボタン（ＰＢ２）をマウスでクリックする。すると、図１５（ａ）に示されるように、入力側テンプレート２０２上に重ねるようにして、メニューウィンドウ２０４が開かれる。
【００９７】
このメニューウィンドウ２０４には、上下３段にわたって３つのファンクションブロックが表示される。すなわち、これらは、入出力間導通ファンクションブロック（ＦＢ０１）、論理和演算ファンクションブロック（ＦＢ２１）、論理積及び論理和演算ファンクションブロック（ＦＢ２２）である。そして、この状態において、マウスの所定操作などによって、論理和演算ファンクションブロック（ＦＢ２１）を選択すれば、選択されたファンクションブロック（ＦＢ２１）が、第１行（Ｒ１）と第２列（Ｃ２）で特定されるブロック配置可能位置に配置される。
【００９８】
同様に、例えば、第１行（Ｒ１）の第３列（Ｃ３）に位置するブロック配置可能位置にセット／リセットファンクションブロック（ＦＢ３１）を配置したい場合には、第３列のプルダウンボタンＰＢ３を操作する。すると、図１５（ｂ）に示されるように、メニューウィンドウ２０５が開かれる。
【００９９】
このメニューウィンドウ２０５には、上下２段にわたって選択可能なファンクションブロックが表示される。それらは、入出力間導通ファンクションブロック（ＦＢ０１）及びセット／リセットファンクションブロック（ＦＢ３１）である。この状態において、マウスのクリック操作などにより、セット／リセットファンクションブロック（ＦＢ３１）を選択すると、この選択されたファンクションブロック（ＦＢ３１）は、第１行（Ｒ１）の第３列（Ｃ３）に位置するブロック配置可能位置へと配置される。一方、この状態から入力無効化条件を設定する場合には、マウスの所定操作によって、さらに、図１６に示されるメニューウィンドウ２０６を開く。
【０１００】
同図に示されるように、このメニューウィンドウ２０６内には、ＡＮＤ条件設定用の信号名列とＯＲ条件設定用の信号名列とが表示されると共に、それらの信号名列を構成する各信号名の先頭にはチェックボックス列２０７，２０８が表示されている。
【０１０１】
そのため、図１５（ａ）に示されるメニューウィンドウ２０４において、ＯＲ演算が選択された場合には、図１６（ａ）に示されるように、メニューウィンドウ２０６内のＯＲ条件設定エリア内において、マウスのクリック操作などでチェックマークを挿入する。これに対して、図１５（ａ）に示されるメニューウィンドウ２０４において、図示しないＡＮＤ演算が選択された場合には、図１６（ｂ）に示されるように、メニューウィンドウ２０６内のＡＮＤ条件領域において、該当する入力信号名のチェックボックス２０７に対してマウス操作などでチェックマークを挿入する。このような操作によって、入力無効化ファンクションブロックの選択及び入力無効化条件の設定を誰でも簡単に行うことができるのである。
【０１０２】
また、セット／リセットファンクションブロックを選択した後、リセット条件の設定を行う場合には、図１７に示されるように、メニューウィンドウ２０９を開くことによって、該当するリセット条件の設定を行う。すなわち、同図（ａ）に示されるように、メニューウィンドウ２０９内において、プルダウンボタンＤ７をマウスで操作すると、リセット条件リストが表示されるから、その中から最適なリセット条件を設定した後、同図（ｂ）に示されるように、ＯＫボタンＤ８を操作すれば、所望のリセット条件を簡単に設定することができる。なお、リセット条件をやり直すためにキャンセルするのであれば、キャンセルボタンＤ９を操作すればよい。
【０１０３】
このようにして、ファンクションブロックの選択及び各条件の設定を行った後の入力側テンプレートの一例が図１８に示されている。同図に示されるように、上述の選択及び指定操作によって、入力系ファンクションブロック、無効化条件ファンクションブロック、及びリセットファンクションブロックを希望通りに配置することができる。
【０１０４】
このように、図５に示される入力側回路図データ生成処理（ステップ１０４）においては、ユーザアクションによって何らかのファンクションブロックが配置されようとするたびに（ステップ１０４ａ）、それが予め定義した「配置列」にしたがって配置されようとしているかどうかの判断が行われ、両者が肯定される場合に限って、その希望されるＦＢの配置内容がロジック回路データ（１０ｂ）へと反映されるのに対し、「配置列」が予め定義したものでないと判定されれば、そのようなＦＢの配置は拒絶され、かつ画面上には所定の警告表示が行われるのである。
【０１０５】
そのため、このように、セーフティロジックウィザードの支援の下に行われる入力側回路図データ生成処理によれば、各ファンクションブロックのそれぞれは、適切な「配置列」をもって入力側テンプレート２０２上に正しく配置されることとなる。
【０１０６】
このようにして、入力側テンプレート２０２上に所望のファンクションブロックを全て配置したならば（ステップ１０４ｃ  ＮＯ）、図６へ移って、「次へ」ボタンＤ３を操作するユーザアクション（ステップ１０５）を待って、出力側テンプレートに関する処理へと移行する。
【０１０７】
この出力側テンプレートに関する処理においては、まず、セーフティロジックウィザードの組み込まれた出力側テンプレート２１０が、プログラミングフィールド２０１に表示される（ステップ１０６）。
【０１０８】
こうして、ウィンドウ２００内のプログラミングフィールド２０１に表示された出力側テンプレート２１０の一例が図１９に示されている。先に説明したように、この出力側テンプレートは、行（Ｒ１，Ｒ２，Ｒ３，Ｒ４・・・）と列（Ｃ４，Ｃ５，Ｃ６）との各交点にそれぞれ対応するようにしてブロック配置可能位置（横長長方形状の領域）が定義されると共に、行方向の左側から右側へ向けて出力信号の流れが定義されている。
【０１０９】
各列（Ｃ４，Ｃ５，Ｃ６）のそれぞれは、出力信号に関する所定種別のファンクションブロックに割り当てられている。具体的に言えば、この例にあっては、初段に位置する列（Ｃ４）は出力条件ファンクションブロックに、次の列（Ｃ５）は溶着チェック（ＥＤＭ）ファンクションブロックに、さらに次の列（Ｃ６）は端子モードファンクションブロックにそれぞれ割り当てられている。
【０１１０】
図６に戻って、出力側テンプレートの表示に続いて（ステップ１０６）、セーフティロジックウィザードの支援の下に行われる出力側回路図データ生成処理（ステップ１０７）が実行される。
【０１１１】
この出力側回路図データ生成処理（ステップ１０７）は、先に説明した入力側回路図データ生成処理と同様であって、出力側テンプレート２１０上へのＦＢ配置のためのユーザアクションが行われるたびに（ステップ１０７ａ）、予め定義した「配置列」にしたがってＦＢを配置しているかの判断を行い、その判断が肯定される場合に限り、そのようにして配置されようとするＦＢの配置内容を記憶（登録）する処理（ステップ１０７ｂ）を、出力側のＦＢ配置が継続される限り（ステップ１０７ｃ  ＹＥＳ）、繰り返す。これに対して、上記の判断が否定される場合には（ステップ１０７ｂ  ＮＯ）、そのようなＦＢの配置を拒絶すると共に、画面上に所定の警告表示を行うようにしたものである。
【０１１２】
ここで、予め定義した「配置列」にしたがってＦＢを配置しているか否かの判断は、この例にあっては、図９に示される安全プログラムテンプレートデータ（出力側）の内容に基づいて行われる。すなわち、図９に示されるように、この安全プログラムテンプレートデータ（出力側）は、各列毎に、その列に配置が許容されるファンクションブロックの種別名称、及びその種別名称に包含される具体的なファンクションブロックのリストとを互いに関連づけて記憶することにより構成されている。
【０１１３】
すなわち、図示の例にあっては、１列目には出力条件ファンクションブロックが配置可能とされると共に、この出力条件ファンクションブロックには不使用ファンクションブロック（Ｎｏｔ  Ｕｓｅｄ）、論理積演算ファンクションブロック（ＡＮＤ）などが含まれるように設定されている。また、第２列目には溶着チェック（ＥＤＭ）ファンクションブロックが配置可能とされると共に、この溶着チェック（ＥＤＭ）ファンクションブロックには、不使用ファンクションブロック（Ｎｏｔ  Ｕｓｅｄ）、ＥＤＭファンクションブロックなどが含まれるように設定されている。さらに、第３列目には端子モードファンクションブロックが配置可能とされると共に、この端子モードファンクションブロックには不使用ファンクションブロック（Ｎｏｔ  Ｕｓｅｄ）、マスタからの受信データ（リモートＩ／Ｏ）、ロジックからの出力、補助出力が含まれるように設定されている。
【０１１４】
ここで、マスタからの受信データとは、当該安全コントローラが通信マスタユニットを介してリモートＩ／Ｏターミナル（スレーブ）と接続されるような構成の場合、当該リモートＩ／Ｏターミナル（スレーブ）から通信マスタが受信したデータを出力することを意味している。また、ロジックからの出力とは、当該安全コントローラ内部のロジック演算による演算結果を出力することを意味している。さらに、補助出力とは、当該安全コントローラからの出力を分岐して補助出力とすることを意味している。
【０１１５】
そして、出力側テンプレート上へのＦＢ配置のための何らかのユーザアクションが検出されるたびに（ステップ１０７ａ）、そのユーザアクションにより指定される「ブロック配置可能位置」と「ファンクションブロック名」とを図９に示される安全プログラムテンプレートデータ（出力側）と照合することによって、その配置されようとするＦＢが、予め定義した「配置列」にしたがって配置されるか否かの判断を行うものである。
【０１１６】
これをより具体的に説明すると、いま仮に、図１９に示される出力側テンプレート２１０を前提として、行（Ｒ１）と列（Ｃ５）とで特定されるブロック配置可能位置に、溶着チェック（ＥＤＭ）ファンクションブロックを配置する場合を想定する。
【０１１７】
このような場合には、まず、行（Ｒ１）のプルダウンボタンＰＢ５をマウスで操作する。すると、図２０（ａ）に示されるように、出力側テンプレート２１０上に重ねるようにしてメニューウィンドウ２１１が開かれる。このメニューウィンドウ２１１内には、上下２段にわたって、２個のファンクションブロックが表示されている。すなわち、それらは、出力側分岐ファンクションブロックＦＢ５１とＥＤＭファンクションブロックＦＢ５２である。ここでユーザは、マウス操作で、ＥＤＭファンクションブロック（ＦＢ５２）を選択する。すると、この選択されたファンクションブロック（ＦＢ５２）は、行（Ｒ１）と列（Ｃ５）とで特定されるブロック配置可能位置に配置される。
【０１１８】
また、このＥＤＭファンクションブロック（ＦＢ５２）について、溶着チェック（ＥＤＭ）フィードバックを設定する場合には、所定のマウス操作によって、図２０（ｂ）に示されるように、メニューウィンドウ２１２を開く。このメニューウィンドウ２１２内には、プルダウンボタンＤ１０、ＯＫボタンＤ１１、キャンセルボタンＤ１２が配置されている。この状態において、ユーザは、プルダウンボタンＤ１０をマウスで操作することによって、フィードバック信号リストを表示させ、その中から所望のフィードバック信号を選択し、ＯＫボタンＤ１１の操作でこれを確定する。図２０（ｂ）の例では、フィードバック信号として、入力信号ＩＮ７が選択設定される。
【０１１９】
また、行（Ｒ１）と列（Ｃ６）とで特定されるブロック配置可能位置に二重化処理されたリモートＩ／Ｏファンクションブロックを配置する場合には、行（Ｒ１）と列（Ｃ６）とで特定されるブロック配置可能位置の右側に位置するプルダウンボタンＰＢ６をマウスで操作する。すると、図２１（ａ）に示されるように、出力側テンプレート２１０に重ねるようにして所定のメニューウィンドウ２１３が開かれる。
【０１２０】
このメニューウィンドウ２１３内には、上下２段に２個のファンクションブロックが表示される。それらのファンクションブロックは、この例にあっては、二重化対応のリモートＩ／Ｏファンクションブロック（ＦＢ６１）と非二重化対応のロジックファンクションブロック（ＦＢ６２）である。
【０１２１】
ここでユーザは、マウスの操作で、メニュー上から、二重化対応のリモートＩ／Ｏファンクションブロック（ＦＢ６１）を選択する。すると、選択されたファンクションブロック（ＦＢ６１）は、行（Ｒ１）と列（Ｃ６）とで特定されるブロック配置可能位置に配置される。
【０１２２】
さらに、行（Ｒ２）と列（Ｃ６）とで特定されるブロック配置可能位置に二重化非対応のロジックファンクションブロック（ＦＢ６４）を配置する場合には、そのブロック配置可能位置の右側に位置するプルダウンボタンＰＢ６をマウスで操作する。すると、図２８（ｂ）に示されるように、出力側テンプレート２１０に重なるようにしてメニューウィンドウ２１４が開かれる。
【０１２３】
このメニューウィンドウ２１４内には、上下３段にわたって３個のファンクションブロックが表示されている。それらは、二重化非対応のリモートＩ／Ｏファンクションブロック（ＦＢ６３）、二重化非対応のロジックファンクションブロック（ＦＢ６４）、及び補助出力ファンクションブロック（ＦＢ６５）である。ここで、ユーザは、二重化非対応のロジックファンクションブロック（ＦＢ６４）を選択する。すると、選択されたファンクションブロック（ＦＢ６４）は、行（Ｒ２）と列（Ｃ６）とで特定されるブロック配置可能位置に配置される。
【０１２４】
出力条件ファンクションブロックの選択並びに設定についても、図２０（ａ）に示される溶着チェック（ＥＤＭ）ファンクションブロック（ＦＢ５２）の場合と同様にして、メニューウィンドウを用いた選択設定により行われるのであるが、このようにして選択設定された出力条件ファンクションブロックについて、さらに出力条件の設定を行うに際しては、この実施形態においては、さらにユーザの使い勝手を考慮した優れた機能が備えられている。
【０１２５】
すなわち、図２３に示されるように、選択設定された出力条件ファンクションブロックについて出力条件を設定する場合には、マウスによる所定操作に応答して出力条件設定用ウィンドウ２１５が開かれるようになっている。この出力条件設定用ウィンドウ２１５内には、出力条件であるＡＮＤ条件の入力候補となる入力信号名が一連に表示されると共に、各入力信号名の頭部には、チェックボックス２１６が設けられる。そして、出力条件となる入力信号の選択は、このチェックボックス２１６内にマウスを用いて所定のチェックマークを挿入するだけで行うことができる。この選択を確定するためには、ＯＫボタンＤ１３をマウスで操作するだけでよく、逆に設定を解除するためにはキャンセルボタンＤ１４をマウスで操作すればよいのである。
【０１２６】
先に説明したように、この種のプログラミング作業を行う場合には、それに先立って、図２８に示されるような安全入出力機器対象表を作成するのが通例であり、この安全入出力機器対象表を頼りとして、出力条件の設定を行うものである。
【０１２７】
ここで、図２６や図２７に示されるような従来のプログラム開発支援装置の場合には、出力条件の設定はファンクションブロック同士を結ぶ配線の描画操作を介して行うものであったので、出力条件が正しく設定されているか否かの検証には、安全入出力対照表と配線図とを照合すると言う煩雑な作業が要求された。
【０１２８】
これに対して、本発明の場合には、入力信号と出力信号との論理関係を規定する出力条件の設定操作は、図２３に示されるように、メニューウィンドウ２１５内に表示された一連の入力信号名の中から該当するものを、チェックボックスのチェック操作で選択するものとされている。そのため、出力条件の設定に際しては、図２８に示されるような安全入出力機器対象表の通りに、チェックボックス２１６を選択するだけで、目的とする出力条件の設定を簡単な操作で行うことができる。
【０１２９】
また、完成後のプログラムにおいて、出力条件が正しく設定されているか否かを検証するに際しても、メニューウィンドウ２１５内のチェックボックスの選択状態と予め作成された入出力機器対象表とを照合するだけでよく、図２６や図２７に示される従来例のように、ファンクションブロック間の配線を辿る必要もないため、そのような検証作業を短時間でかつ容易に成し遂げることができる。
【０１３０】
上記のメニューウィンドウ２１５内に表示される入力信号に関するデータとしては、図１１に示される入力機器テーブル内のデータが使用される。この入力機器テーブルは、図１４に示される入力側テンプレート２０２において、入力端子の設定操作、すなわち入力端子にどのような入力機器からの信号が入力されるかを設定するために行われる通常の操作によって設定される。そのため、わざわざ出力条件設定のために、特別な入力情報設定操作は不要である。
【０１３１】
そして、メニューウィンドウ２１５内において、チェックボックスのマウス操作による選択を通じて入力信号名の選択を行うと、図７のフローチャートに示される安全出力条件設定処理が作動することにより、図１２に示されるように、出力条件設定テーブルが完成するのである。図７に示される安全出力条件設定処理は、先に説明したセーフティロジックウィザードの支援下に行われる出力回路図データ生成処理１０７において実行されることとなる。
【０１３２】
すなわち、図７のフローチャートに示されるように、安全出力条件の設定選択のためのユーザアクションが行われると（ステップ１０７１）、入力機器テーブル（図１１参照）より安全入力機器が検索されて抽出され（ステップ１０７２）、これらの抽出された入力機器データに基づいて、図２３に示されるメニューウィンドウ２１５内の入力信号の一覧表示が行われる。すなわち、安全出力条件選択画面表示として、チェックボックス形式にて安全入力端子番号、機器名などが表示されることとなる（ステップ１０７３）。
【０１３３】
この状態において、チェックボックス２１６にチェックを入れることにより、該当の安全出力条件を選択して、「ＯＫ」ボタンを押下するユーザアクションが確認されると（ステップ１０７４）、こうして選択された安全出力条件の記憶が行われ（ステップ１０７５）、これが必要回数繰り返されることにより（ステップ１０７６ＹＥＳ）、図１２に示される出力条件設定テーブルが完成するのである。
【０１３４】
このようにして、端子モードＦＢ、出力条件ＦＢ、及び溶着チェックＦＢがそれぞれ配置された出力側テンプレートの状態が図１８に示されている。同図から明らかなように、上述の選択設定処理によって、各指定されたブロック配置可能位置には、選択されたファンクションブロック（ＦＢ６２，ＦＢ６５，ＦＢ５２，ＦＢ４１）がそれぞれ配置されていることが理解されるであろう。
【０１３５】
最後に、入力側テンプレートにおけるＦＢ配置完了時の確認用画面の説明図が図２４に、また出力側テンプレートにおけるＦＢ配置完了時の確認用画面の説明図が図２５にそれぞれ示されている。
【０１３６】
それらの図から明らかなように、以上の各ファンクションブロック選択並びに設定操作を繰り返すことによって、入力側テンプレート並びに出力側テンプレート上には必要なファンクションブロックが必要な位置に適切に配置されるのである。
【０１３７】
このように、図６のフローチャートに示される出力側回路図データ生成処理（ステップ１０７）においては、予め定義した「配置列」にしたがってＦＢを配置しているか否かの判断が行われ、予め定義した「配置列」にしたがってＦＢが配置されていると判定された場合に限り、その配置が希望されるＦＢの配置内容が記憶（登録）されて、図１３に示されるロジック回路データ（１０ｂ）が生成される。
【０１３８】
図６に戻って、このようにして、出力側テンプレート２１０上に必要なファンクションブロックの配置が完了したならば、「次へ」ボタンＤ３の操作に相当するユーザアクションを待って（ステップ１０７ｄ）、以上のファンクションブロック配置操作で生成された図１３に示されるロジック回路データ（１０ｂ）は、全ファンクションブロックに関して、安全コントローラが解読可能なデータ形式に変換され（ステップ１０８〜１１０）、それら変換されたデータを集合することによって、ダウンロードパラメータ（安全コントローラ用制御プログラム）が生成される（ステップ１１１）。
【０１３９】
こうして生成されたダウンロードパラメータは、従来と同様、通信を介して又は可搬型記録媒体を介して、目的とする安全コントローラへとインストールされることとなる。
【０１４０】
以上、図５〜図７を参照して説明したソフトウェア構成によれば、ファンクションブロック配置用のテンプレートの全体は、入力側テンプレート２０２と出力側テンプレート２１０とに分離されているため、各テンプレート２０２，２１０内の信号経路は、入力信号経路又は出力信号経路に統一されるため、入力信号経路に出力信号対応のファンクションブロックを配置したり、逆に出力信号経路に入力信号対応のファンクションブロックを配置するといったファンクションブロック配置誤りを生じ難い。
【０１４１】
また、入力側テンプレート２０２並びに出力側テンプレート２１０の何れにおいても、各行には同一の入力信号又は出力信号の経路が存在することとなるため、同一の入力信号又は出力信号に関するファンクションブロックについては各ファンクションテーブル内において同一の行に配置しておきさえすれば、ある信号経路に配置されるべきファンクションブロックを誤って別の信号経路に配置するといったプログラミングミスを生じ難いという利点もある。
【０１４２】
また、プログラミングフィールド２０１上には、入力側テンプレート２０２と出力側テンプレート２１０とが択一的に表示されるため、それらを分離しつつも１画面に同時に表示する場合に比べて、上述のプログラミングミスを一層生じ難い。
【０１４３】
また、プログラミングフィールド２０１上に入力側テンプレート２０２と出力側テンプレート２１０とを択一的に表示するに際しては、入力側テンプレート２０２の表示が先でかつ出力側テンプレート２１０の表示が後となるようにしているため、そのような表示手順に従うだけで、ユーザは、入力側テンプレート２０２上のファンクションブロックの配置を完了してから、出力側テンプレート２１０上のファンクションブロックの配置を行うこととなり、一般に出力側テンプレート上のファンクションブロックの配置並びにパラメータ設定には、それよりも先に入力側テンプレート上のファンクションブロックの配置並びにパラメータの設定が必要であることを考慮すると、これによってもプログラミングミスを生じ難いという利点もある。
【０１４４】
また、ファンクションブロックを何れかのブロック配置可能位置に配置するに際しては、そのファンクションブロックをその種別に応じて予め定義された「配置列」へと誘導するセーフティロジックウィザードの仕組みが組み込まれているため、このセーフティロジックウィザードの作用によって、１の信号経路内において、複数のファンクションブロックが誤った並びで配列されるといったプログラミングミスは生ずる余地がない。
【０１４５】
一方、そのようなセーフティロジックウィザードの作用によって、同一種別のファンクションブロックは必ず同一列に配置されることとなるため、何れかの行においてファンクションブロックを誤って配置し忘れたような場合には、列単位でファンクションブロックの抜けている箇所を探すだけで、この種の安全プログラムの検証を容易に行うことができる。
【０１４６】
さらに、出力条件の設定は、図２３に示されるように、チェックボックス形式の入力信号一覧表に基づいて行えるため、従前の配線図形式のプログラム開発支援装置とは異なり、安全入出力機器対象表との直接的な照合が可能となるため、プログラミング作業並びにプログラム検証作業の簡素化に資するものである。
【０１４７】
このように、以上説明した各実施形態のプログラム開発支援装置によれば、テンプレートの全体は入力側テンプレートと出力側テンプレートとに分離されることから、各テンプレート内においては、同一信号に関する信号経路は同一行に存在することとなる。
【０１４８】
また、各テンプレート内の各列（Ｃ１〜Ｃ６）のそれぞれには、同一種別のファンクションブロックがセーフティロジックウィザードの作用によって配置されるように導かれることとなる。しかも、そのようなセーフティロジックウィザードの作用によって、同種別のファンクションブロックについては、同一列にひとりでに配列されるため、何れかのファンクションブロックを配置し忘れたような場合にも、プログラム完成後においては、各列ごとにファンクションブロックの有無をチェックし、何れかの行にファンクションブロックが存在しなければ、その部分を集中的にチェックすることによって、この種の安全コントローラ用制御プログラムのデバッグを簡単に行うことが可能となる。
【０１４９】
そのため、このような入力側テンプレート又は出力側テンプレートの構造によれば、同一信号に関するファンクションブロックについては同一行に配置するといった習慣づけを行うだけで、同一信号経路に配置されるべきファンクションブロックを別の信号経路に誤って配置したり、入力信号経路に配置すべきファンクションブロックを出力信号経路に配置するといったプログラミングミスを確実に防止することができる。
【０１５０】
また、単に２つに分離するのみならず、出力側テンプレートに先立って入力側テンプレートをユーザに提示することにより、出力側テンプレート上のファンクションブロックを配置する段においては、既に入力側テンプレート上のファンクションブロックの配置が完了していることとなるから、これによってもユーザによるプログラミングミスを未然に防止することができる。
【０１５１】
さらに、出力条件の設定は、図２３に示されるように、チェックボックス形式の入力信号一覧表に基づいて行えるため、従前の配線図形式のプログラム開発支援装置とは異なり、安全入出力機器対象表との直接的な照合が可能となるため、プログラミング作業並びにプログラム検証作業の簡素化に資するものである。
【０１５２】
なお、以上の実施形態においては、出力条件設定のための入力信号の選択を容易とするためのメニュー表示態様として、入力信号名の一覧とチェックボックスによる選択確認方法との組み合わせを採用したが、これに代えて、入力信号の一覧と反転表示やその他のアクティブ表示による選択確認方法との組み合わせを採用する等々、メニュー表示態様には公知の様々な態様が採用可能であることは言うまでもない。
【０１５３】
さらに、入力端子の個数が、１６点、３２点、６４点と言ったように増大する場合には、メニュー表示させる入力信号個数については、所定個数ずつ何回かに分けて表示させたり、あるいは、出力条件候補となり得る入力信号の範囲がある程度論理的に推定でるのであれば、そのように推定される入力信号群を優先的に表示させたり、過去の来歴により出力条件候補となり得る入力信号の範囲がある程度推定でるのであれば、そのように推定される入力信号群を優先的に表示させたりする等々、入力信号名の提示の仕方にも様々な態様が存在することは言うまでもない。
【産業上の利用可能性】
【０１５４】
本発明によれば、ファンクションブロックを誤った位置に配置したり、誤った順序で配置すると言ったプログラミングミスが生じ難く、かつそのようなプログラミングミスが生じた場合には、そのことを容易に発見することができ、しかも完成後のプログラムにおける出力条件ファンクションブロックのパラメータ検証も容易な安全コントローラのプログラム開発支援装置を提供することができる。
【符号の説明】
【０１５５】
１      安全コントローラ
１ａ    設定パラメータ
２ａ    バス型ネットワーク
２ｂ    直結型ネットワーク
３      入力機器
４      出力機器
５      安全Ｉ／Ｏターミナル
６      ユーザ
１０    プログラム開発支援装置
１０ａ  セーフティロジックウィザードデータベース（ＤＢ）
１０ｂ  ロジック回路図データ
１０ｃ  コンパイラ
１０ｄ  設定パラメータ
１１    ＣＰＵ
１２    入力操作部
１３    画像表示部
１４    ワークＲＡＭ
１５    記憶装置
１５ａ  出力イメージメモリ
１５ｂ  システムメモリ
１５ｃ  プログラムメモリ
１６    通信部
１７    システムバス
１０１  通信インタフェース部
１０２  中央演算部
１０３ａ  入力側の端子異常診断部
１０３ｂ  出力側の端子異常診断部
１０４ａ  入力端子部
１０４ｂ  出力端子部
２００  ウィンドウ
２０１  プログラミングフィールド
２０２  入力側テンプレート
２０３−１〜２０３−６  インデックス
２０４  メニューウィンドウ
２０５  メニューウィンドウ
２０６  メニューウィンドウ
２０７  チェックボックス
２０８  チェックボックス
２０９  メニューウィンドウ
２１０  出力側テンプレート
２１１  メニューウィンドウ
２１３  メニューウィンドウ
２１４  メニューウィンドウ
２１５  メニューウィンドウ（出力条件設定用）
２１６  チェックボックス（出力条件選択用）
２１７  警告ウィンドウ
Ｃ１〜Ｃ６  列
Ｄ１    スクロールバー
Ｄ２    「戻る」ボタン
Ｄ３    「次へ」ボタン
Ｄ４    キャンセルボタン
Ｄ５    ＯＫボタン
Ｄ６    キャンセルボタン
Ｄ７    プルダウンボタン
Ｄ８    ＯＫボタン
Ｄ９    キャンセルボタン
Ｄ１０  プルダウンボタン
Ｄ１１  ＯＫボタン
Ｄ１２  キャンセルボタン
Ｄ１３  ＯＫボタン
Ｄ１４  キャンセルボタン
Ｄ１５  ＯＫボタン
ＦＢ０１  入出力導通ファンクションブロック
ＦＢ１１  セーフティ非常停止スイッチファンクションブロック
ＦＢ１２  二重化対応のセーフティライトカーテンファンクションブロック
ＦＢ１３  二重化非対応のセーフティライトカーテン
ＦＢ２１  論理和演算ファンクションブロック
ＦＢ２２  論理積及び論理和演算ファンクションブロック
ＦＢ３１  セット／リセットファンクションブロック
ＦＢ５２  溶着チェック（ＥＤＭ）ファンクションブロック
ＦＢ６１  二重化対応のリモートＩ／Ｏファンクションブロック
ＦＢ６２  二重化対応のロジックファンクションブロック
ＦＢ６３  二重化非対応のリモートＩ／Ｏファンクションブロック
ＦＢ６４  二重化非対応のロジックファンクションブロック
ＦＢ６５  補助出力ファンクションブロック
ＰＢ２，ＰＢ３  プルダウンボタン
Ｒ１，Ｒ２，Ｒ３，Ｒ４  行
【図１】
2010055652.tif 000003
【図２】
2010055652.tif 000004
【図３】
2010055652.tif 000005
【図４】
2010055652.tif 000006
【図５】
2010055652.tif 000007
【図６】
2010055652.tif 000008
【図７】
2010055652.tif 000009
【図８】
2010055652.tif 000010
【図９】
2010055652.tif 000011
【図１０】
2010055652.tif 000012
【図１１】
2010055652.tif 000013
【図１２】
2010055652.tif 000014
【図１３】
2010055652.tif 000015
【図１４】
2010055652.tif 000016
【図１５】
2010055652.tif 000017
【図１６】
2010055652.tif 000018
【図１７】
2010055652.tif 000019
【図１８】
2010055652.tif 000020
【図１９】
2010055652.tif 000021
【図２０】
2010055652.tif 000022
【図２１】
2010055652.tif 000023
【図２２】
2010055652.tif 000024
【図２３】
2010055652.tif 000025
【図２４】
2010055652.tif 000026
【図２５】
2010055652.tif 000027
【図２６】
2010055652.tif 000028
【図２７】
2010055652.tif 000029
【図２８】
2010055652.tif 000030