(57)【特許請求の範囲】
【請求項１】
複数のコントローラ相互間でデータの送受信を行ってデータを共有してプロセスの制御を行うプロセス制御装置用のプログラムの作成支援を行う制御装置用プログラミングツールにおいて、
プログラムの作成支援を行う対象となるプロセス制御装置は、ネットワークを介して他のコントローラとの間で送受信するデータを保持する転写メモリと、他のコントローラから周期的に送信されてくるデータを受信して前記転写メモリの受信エリア上のデータを逐次更新し、前記転写メモリの送信エリア上の送信データを周期的に他の複数のコントローラへ送信する通信プロセッサと、他のコントローラへ送信する送信データを、前記転写メモリの送信エリアへ書き込むＣＰＵとを備えたコントローラをネットワークを介して複数接続して構成されてプロセス制御を行うプロセス制御装置であり、
前記制御装置用プログラミングツールは、前記複数のコントローラのそれぞれがプロセスを制御するためのプログラムを編集するエディタと、編集された前記プログラムを各コントローラで実行可能な実行モジュールに変換するコンパイラと、前記コントローラが前記実行モジュールをダウンロードして実行した際、コントローラ相互間でデータの送受信を行う処理が発生し、送信側で転写メモリにデータを書き込む周期と受信側で転写メモリからデータを読み出す周期との相違により生じる非同期によりデータが正しく伝送されていないことを検出する手段と、データが正しく伝送されていなかった場合に、その旨を警告する手段とを備えることを特徴とする制御装置用プログラミングツール。
【請求項２】
前記送信側で転写メモリにデータを書き込む周期と受信側で転写メモリからデータを読み出す周期との相違により生じる非同期によりデータが正しく伝送されていないことを検出する手段は、一定の周期で送信データがサンプリングされて送信側の転写メモリの送信エリアに書き込まれ、前記サンプリング周期とは異なる周期で送信されて受信側の転写メモリの受信エリアに受信格納され、その受信データを、データが送信されてくる周期とは異なる周期で周期的に読み出し、今回の受信データと前回の受信データとを照合する照合手段により構成されることを特徴とする請求項１記載の制御装置用プログラミングツール。
【請求項３】
プログラムの作成支援を行う対象となるプロセス制御装置が、制御装置用プログラミングツール内にソフトウェア的に形成されていることを特徴とする請求項１記載の制御装置用プログラミングツール。
【請求項４】
プログラムの作成支援を行う対象となるプロセス制御装置が、実際のプロセス制御装置であり、制御装置用プログラミングツールは、前記実際のプロセス制御装置でのプログラム実行段階において、期待するデータの挙動をチェックする手段を備えることを特徴とする請求項１記載の制御装置用プログラミングツール。
【請求項５】
複数のコントローラ相互間でデータの送受信を行ってデータを共有してプロセスの制御を行うプロセス制御装置用のプログラムの作成支援を行う制御装置用プログラミングツールにおける制御装置用のプログラムの作成支援方法において、
プログラムの作成支援を行う対象となるプロセス制御装置は、ネットワークを介して他のコントローラとの間で送受信するデータを保持する転写メモリと、他のコントローラから周期的に送信されてくるデータを受信して前記転写メモリの受信エリア上のデータを逐次更新し、前記転写メモリの送信エリア上の送信データを周期的に他の複数のコントローラへ送信する通信プロセッサと、他のコントローラへ送信する送信データを、前記転写メモリの送信エリアへ書き込むＣＰＵとを備えたコントローラをネットワークを介して複数接続して構成されてプロセス制御を行うプロセス制御装置であり、
前記制御装置用プログラミングツールは、前記複数のコントローラのそれぞれがプロセスを制御するためのプログラムを編集し、編集された前記プログラムを各コントローラで実行可能な実行モジュールに変換し、前記コントローラが前記実行モジュールをダウンロードして実行した際、コントローラ相互間でデータの送受信を行う処理が発生し、送信側で転写メモリにデータを書き込む周期と受信側で転写メモリからデータを読み出す周期との相違により生じる非同期によりデータが正しく伝送されていないことを検出し、データが正しく伝送されていなかった場合に、その旨を警告することを特徴とする制御装置用のプログラムの作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置用プログラミングツール及び制御装置用プログラムの作成支援方法に係り、特に、ＩＥＣ（International Electrotechnical Commission：国際電気標準会議）により制定された機能安全規格（ＩＥＣ６１５０８）に準拠し、ネットワークに接続された転写メモリを用いて複数のコントローラ間で通信を行ってプラントシステムの制御を行うプロセス制御装置用のプログラムの作成支援を行う制御装置用プログラミングツール及び制御装置用プログラムの作成支援方法に関する。
【背景技術】
【０００２】
一般に、各種プラントシステムにおけるプロセス制御は、複数のコントローラがネットワークにより接続され、複数のコントローラが各コントローラ間で相互にデータを共有して行われている。このように、複数のコントローラ相互間でデータを共有することを可能とする従来技術として、例えば、特許文献１等に記載された技術が知られている。
【０００３】
この従来技術は、転写メモリを用いたサイクリック転写通信技術に関するもので、複数のコントローラのそれぞれに転写メモリとローカルプロセッサとが設けられ、ローカルプロセッサによってコントローラ間の通信を制御するというものである。そして、各ローカルプロセッサは、転写メモリ上の自コントローラに割り当てられたデータを他の計算機に向けて周期的にブロードキャストすることにより、各コントローラ内の転写メモリのデータの一致化を図っている。
【０００４】
一方、プラントシステムは、そのリスク軽減のため、コントローラ間の通信に機能安全が求められている。機能安全とは、故障が発生してもシステムや機器の安全性を確保することができるように機能を実装しておくという考え方であり、機能安全の通信には、１対１の機器間での要求−応答というパケット通信を利用して行われるのが一般的である。
【０００５】
そして、前述したような機能安全の考え方とプラントシステムの制御とを両立させるような、転写メモリを用いた複数のコントローラ間の通信として、データの送受信を確認しながら通信を行うハンドシェイク通信の技術を利用することも可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２１９９０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
各種プラントシステムにおけるプロセス制御におけるアプリケーションプログラムの実行において、コントローラ間の通信に乗せる変数のデータ転送処理が通信処理と非同期である場合、受信側へ変数データが期待するように正確に伝送されない場合がある。
【０００８】
従来技術によるプロセス制御装置用のプログラムの作成支援を行う制御装置用プログラミングツールは、アプリケーションプログラム実行テストによって非同期となるデータの変数を見つけなければならないものであり、テストにかかるコスト増とテスト効率の低下とを招いてしまうという問題点を有している。
【０００９】
また、通信に乗せる全データを同期させることができるように、通信を行わせることも可能であるが、同期させるためには、複数のコントローラ間において、全伝送データの送受信を確認しながら通信を行う通信プロトコル（送信要求／受信応答）が必要となり、プラントシステムのプロセス制御を行うコントローラの通信負荷を増大させてしまうという問題点を生じさせてしまうことになる。
【００１０】
また、コントローラ間で通信される伝送データの中には、同期を取らないとプラント運用の継続を実現することができないようなデータもあり、プログラミングツールにより、プログラミング時に非同期となる伝送データの変数を抽出し、同期的に自動でプログラミングすることも可能ではあるが、実現手法として非現実的である。
【００１１】
本発明の目的は、前述したような従来技術の制御装置用プログラミングツールの問題点を解消し、複数のコントローラ相互間でデータの送受信を行ってデータを共有してプロセスの制御を行うプロセス制御装置用のプログラムの作成支援を行い、プログラミングの段階で複数のコントローラ相互間でのデータの送受信が非同期となる伝送データの変数を見つけることができる制御装置用プログラミングツール及び制御装置用プログラムの作成支援方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明によれば前記目的は、複数のコントローラ相互間でデータの送受信を行ってデータを共有してプロセスの制御を行うプロセス制御装置用のプログラムの作成支援を行う制御装置用プログラミングツールにおいて、プログラムの作成支援を行う対象となるプロセス制御装置は、ネットワークを介して他のコントローラとの間で送受信するデータを保持する転写メモリと、他のコントローラから周期的に送信されてくるデータを受信して前記転写メモリの受信エリア上のデータを逐次更新し、前記転写メモリの送信エリア上の送信データを周期的に他の複数のコントローラへ送信する通信プロセッサと、他のコントローラへ送信する送信データを、前記転写メモリの送信エリアへ書き込むＣＰＵとを備えたコントローラをネットワークを介して複数接続して構成されてプロセス制御を行うプロセス制御装置であり、前記制御装置用プログラミングツールは、前記複数のコントローラのそれぞれがプロセスを制御するためのプログラムを編集するエディタと、編集された前記プログラムを各コントローラで実行可能な実行モジュールに変換するコンパイラと、前記コントローラが前記実行モジュールをダウンロードして実行した際、コントローラ相互間でデータの送受信を行う処理が発生し、送信側で転写メモリにデータを書き込む周期と受信側で転写メモリからデータを読み出す周期との相違により生じる非同期によりデータが正しく伝送されていないことを検出する手段と、データが正しく伝送されていなかった場合に、その旨を警告する手段とを備えることにより達成される。
【発明の効果】
【００１３】
本発明によれば、プログラミングの段階で同期すべき伝送データ（変数）を抽出し、期待するデータ（変数）が正確に伝送されない場合に警報を出すことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による制御装置用プログラミングツール及び模擬的なプロセス制御装置の構成を示すブロック図である。
【図２】コントローラ相互間でのデータ転送の処理とデータ流れとを示す図である。
【図３】コントローラ相互間での通信を行うためのアプリケーションプログラムを処理するＣＰＵの構成と通信の基本的な動作について説明する図である。
【図４】送信側と受信側とが正しく同期している場合のタイムチャートである。
【図５】送信側と受信側とが正しく同期していない場合で、受信データの読み出し周期が送信データの書き込み周期より長い場合のタイムチャートである。
【図６】送信側と受信側とが正しく同期していない場合で、送信データの書き込み周期が受信データの読み出し周期より長い場合のタイムチャートである。
【図７】プログラミングツールで作業者に警告を行う画面の構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明による制御装置用プログラミングツール及び制御装置用プログラムの作成支援方法の実施形態を図面により詳細に説明する。
【００１６】
図１は本発明の一実施形態による制御装置用プログラミングツール及び模擬的なプロセス制御装置の構成を示すブロック図である。
【００１７】
図１に示す模擬的なプロセス制御装置は、本発明の実施形態による制御装置用プログラミングツールが、プログラムの作成支援を行う際に対象となるプロセスを模擬したものであり、制御装置用プログラミングツール内にソフトウェア的に形成されているものであってよい。そして、この疑似的なプロセス制御装置は、制御対象に対する演算・制御を行う複数のコントローラ１０１、２０１と、制御対象の動作状態を検出するセンサ１０７、２０７と、センサ１０７、２０７からの検出信号を受信しコントローラ１０１、２０１へ転送する信号入力装置１０６、２０６と、コントローラ１０１、２０１からの制御信号をアクチュエータ１０９、２０９へ転送する信号出力装置１０８、２０８とにより構成されている。また、本発明の一実施形態による制御装置用プログラミングツール３０１は、パーソナルコンピュータ等の中に構築されており、エディタ３０３とコンパイラ３０４とを備えて構成されている。
【００１８】
前述において、コントローラ１０１と２０１とは、複数のコントローラを接続するネットワーク９０１によって接続されており、各コントローラ１０１、２０１相互間で伝送データの授受を行っている。この伝送データの授受は、ネットワーク９０１を介して接続されている制御装置用プログラミングツール３０１からコントローラ用の実行モジュールを受け取り、受け取った実行モジュールの制御の下で行われる。
【００１９】
また、制御対象を制御するコントローラ１０１、２０１は、アプリケーションプログラムの実行処理を含めたコントローラの情報処理を行う中央処理装置（ＣＰＵ）１０２、２０２と、コントローラ相互間の通信処理を行い、ＣＰＵ１０２、２０２から直接読み書きされる転写メモリ１０４、２０４を備えた通信プロセッサ（ＮＣＰ）１０３、２０３と、
ＣＰＵ１０２、２０２及びＮＣＰ１０３、２０３の相互を接続するシステムバス１０５、２０５とにより構成されている。転写メモリ１０４、２０４は、コントローラ１０１、１０２相互間でのデータの送受信のために使用されるものであるため、送信データを格納する送信エリアと受信データを格納する受信エリアとを備えて構成されている。なお、以下の説明では、送信エリアと受信エリアとを区別することなく単に転写メモリと表記している。
【００２０】
前述したコントローラ１０１、２０１を有して構成されているプロセス制御装置は、すでに制御したように、本発明の実施形態による制御装置用プログラミングツールが、プロセス制御装置用のプログラムの作成支援を行うために使用する疑似的なものであり、プロセスを実際に制御するものではない。
【００２１】
プログラミングツール３０１に備えられるエディタ３０３は、各コントローラ１０１、２０１で実行するためのプログラムであるコントローラ１０１用プログラム３０２Ａ、コントローラ１０２用プログラム３０２Ｂを編集するものである。
【００２２】
なお、前述のプログラム３０２Ａ、３０２Ｂは、いわゆる国際標準であるＩＥＣ６１１３１−３規格のＰＬＣ(Programmable Logic Controller）プログラミング言語を使用してプログラミングされるが、このプログラム言語は、一般に周知なものであるので、ここでの説明を省略する。
【００２３】
プログラミングツール３０１に備えられるコンパイラ３０４は、プログラム３０２Ａ、３０２Ｂをコンパイル処理するものであり、エディタ３０３により編集されたプログラム３０２Ａ、３０２Ｂを各コントローラ１０１、２０１上で実行可能な形式である実行モジュールであるコントローラ１０１用実行モジュール３０５Ａ、コントローラ１０２用実行モジュール３０５Ｂに変換する。実行可能な形式に変換された実行モジュール３０５Ａ、３０５Ｂは、ネットワーク９０１を介して、プロセス制御装置を構成する各コントローラ１０１、２０１へダウンロードされ、プロセスの制御処理を実行する。
【００２４】
前述まての説明では、２つのコントローラ１０１、２０１がネットワーク９０１に接続された例について説明してきたが、ネットワーク９０１に接続されるコントローラの台数は、これに限定されるものではなく、さらに多数のコントローラがネットワーク９０１に接続されていてもよい。
【００２５】
例えば、一般的な発電プラントは、プラント全体の稼働率の向上と信頼性の向上とを目的に、ある負荷側の機器に対して、複数のコントローラ、複数の弁やバルブ等を対応させて設け、多重化したプロセスデータ信号を、複数のコントローラ間でお互いに共有して、各コントローラ内で照合・選択処理等を実施するような多重制御が利用されることが多い。このような多重制御を行うためには、コントローラ相互間でのデータ授受が不可欠である。
【００２６】
図２はコントローラ相互間でのデータ転送の処理とデータ流れとを示す図である。図２に示す例は、コントローラ１０１側のセンサからの検出信号を、コントローラ１０１内のＣＰＵ１０２で受け取って処理を加え、処理後のデータを転写メモリ１０４に出力し、この転写メモリ１０４からネットワーク９０１を介してコントローラ２０１内の転写メモリ２０４へデータを転送し、コントローラ２０１のＣＰＵ２０２で転写メモリ２０４内のデータを受け取って処理を加え、処理後のデータをバルブに出力してバルブを制御している例である。
【００２７】
図２に示す例において、送信データ保持している転写メモリ１０４からデータを送信する際にデータをサンプリング処理する周期及び位相と、送信されてきたデータを受信し、受信データを保持する転写メモリ２０４から処理のためにデータを読み出す周期及び位相とが正しく同期していない場合、データが期待するように正確に伝送されない場合があるという非同期問題が生じてしまう。
【００２８】
図３はコントローラ相互間での通信を行うためのアプリケーションプログラムを処理するＣＰＵ１０２、２０２の構成と通信の基本的な動作について説明する図である。ここで説明する通信は、図２により説明したと同様な内容を持つものである。
【００２９】
図３に示すように、コントローラ１０１内のＣＰＵ１０２は、アプリケーションプログラムとして、カウンタプログラム４０１及び照合プログラム４０４を取り込んでこれらのプログラムの処理を行い、同様に、コントローラ２０１内のＣＰＵ２０２は、アプリケーションプログラムとして、カウンタプログラム５０１及び照合プログラム５０４を取り込んでこれらのプログラムの処理を行っている。
【００３０】
ここでは、通信の動作を、コントローラ１０１のＣＰＵ１０２からコントローラ２０１のＣＰＵ２０２にデータを送信する場合を例として説明するが、コントローラ２０１のＣＰＵ２０２からコントローラ１０１のＣＰＵ１０２にデータを送信する場合も、データ送信の基本的な動作内容については、ＣＰＵ１０２からデータを送信する例と同様であるのでその説明を省略する。
【００３１】
送信プログラムは、コントローラ１０１内のカウンタプログラム４０１によりＣＰＵ１０２が生成している。そして、生成された送信プログラムは、周期的に更新される送信データ４０２を転写メモリ１０４に書き込む。送信データ４０２の転写メモリ１０４への書き込みは、送信プログラムが一定の周期で送信データ４０２をサンプリングして行われる。
【００３２】
転写メモリ１０４内の送信データは、送信プログラムが送信データ４０２をサンプリングする周期とは異なる周期で周期的にネットワーク９０１を介してコントローラ２０１側に送信される。その際、送信データには、送信元と受信元とが設定される。
【００３３】
受信側となるコントローラ２０１の転写メモリ２０４は、送信側のコントローラ１０１の転写メモリ１０４から送信されてきたデータを受信して自転写メモリ２０４内に格納する。コントローラ２０１内のカウンタプログラム５０４によりＣＰＵ２０２で生成された図示しない受信プログラムは、データが送信されてくる周期とは異なる周期で周期的に転写メモリ２０４から受信データ５０２を読み出し、照合プログラム５０１に読み出したデータを渡す。
【００３４】
照合プログラム５０１は、今回受信したデータの値である今回値と前回受信したデータの値である前回値とを照合し、照合の結果に基づいて、送信されるデータが確実に受信されているか否かを判定している。この判定は、照合プログラム５０１が、複数回に渡る照合を行った結果、一定回数以上一致している状態が続いた場合に、送信されるデータが正しく受信されていないと判断することにより行われる。すなわち、照合プログラム５０１は、複数回に渡る照合の結果、照合の結果が一定回数毎に不一致を繰り返す場合に、送信されるデータが正しく受信されていると判断する。
【００３５】
前述したようにＣＰＵ１０２で生成される送信プログラムが送信データ４０２をサンプリングして転写メモリ１０４に書き込む周期と、ＣＰＵ２０２で生成される受信プログラムが転写メモリ２０４から受信データ５０２を読み出して照合プログラム５０１に渡す周期とが同期していれば、送信されるデータが確実に受信側に渡ることになる。
【００３６】
しかし、前述したような同期ができていない場合、送信されるデータが受信側に渡らない場合がある。このような非同期となる伝送データを見つけるため、プログラミングツールは、タイミングを調整する等を行って、何度もテストをする必要がある。
【００３７】
以下、送信側と受信側との同期について、同期、非同期の状況を示すタイムチャートを用いて説明する。
【００３８】
図４は送信側と受信側とが正しく同期している場合のタイムチャート、図５は送信側と受信側とが正しく同期していない場合で、受信データの読み出し周期が送信データの書き込み周期より長い場合のタイムチャート、図６は送信側と受信側とが正しく同期していない場合で、送信データの書き込み周期が受信データの読み出し周期より長い場合のタイムチャートである。
【００３９】
送信側と受信側とが正しく同期しているかどうかは、送信側の転写メモリにデータを書き込むタイミング（周期）と、受信側の転写メモリから受信データを読み出すタイミング（周期）とが一致しているか否かにより決まることになる。
【００４０】
図４に示す例では、送信データを送信側の転写メモリに書き込む周期と受信側における受信側の転写メモリから受信データを読み出す周期が一致している。従って、この図４に示す例の場合、送信側から送信されるデータが正しく受信側で受信されている。
【００４１】
図５に示す例では、受信側における受信側の転写メモリから受信データを読み出す周期が送信データを送信側の転写メモリに書き込む周期より長く、かつ、読み出しデータの１ビットの周期（データの変化の間隔）より長くなっており、この結果、読み出されるデータが、常に、特定の値、図示例では“１”となって意味をなさないものとなっている。また、図６に示す例では、送信データを送信側の転写メモリに書き込む周期が受信側における受信側の転写メモリから受信データを読み出す周期より長く、かつ、送信データの１ビット周期（データの変化の間隔）より長くなっており、この結果、送信側の転写メモリに格納された送信データが常に、特定の値、図示例では“１”となって意味をなさないものとなっている。
【００４２】
前述したような同期の状態を調べるためには、送信側の転写メモリにデータを書き込むプログラムと、受信側の転写メモリからデータを読み出すプログラムを抽出して、動作のタイミングに違いがあるか否かを判断することが有効である。
【００４３】
本発明の実施形態では、プログラミングツール３０１が、プログラムのコンパイル時にコンパイラ３０４が、カウンタプログラム４０１の送信データ４０２と照合プログラム５０１の受信データ５０２とを抽出し、それらを照合することによりタイミングに違いがあるか否かを判別し、タイミングに違いがある場合に、その旨をプログラミングツール３０１の表示画面に表示して作業者に警告するようにしている。
【００４４】
また、本発明の実施形態によるプログラミングツール３０１は、照合プログラム５０１の受信データ５０２の挙動がカウンタプログラム４０１の送信データ４０２と合っているか否かをテストして確認することにより、送信側と受信側との間の同期状態の確認を行うことができる。
【００４５】
また、本発明の実施形態によるプログラミングツール３０１は、実際のプロセス制御装置でのプログラム実行段階において、期待するデータの挙動をチェックするため、カウンタプログラム４０１をＣＰＵ２０２にローディングして実行することができる。これにより、期待するデータと受信データ５０２との挙動を比較することができ、挙動が異なる場合、作業者に警告を発することができる。
【００４６】
また、転写メモリへのデータの転写周期が送信データの変化の間隔よりも遅いことにより、正しく伝送データが伝わらないことは、転写メモリにデータを書き込む周期が長いことや、転写メモリからデータを読み出す周期が長いことによる非同期問題と同様に考えることにより、前述したと同様に解決することができる。
【００４７】
図７はプログラミングツールで作業者に警告を行う画面の構成例を示す図である。
【００４８】
プログラミングツール３０１が作業者に警告を行う画面は、コントローラ１０１及びコントローラ２０１のプログラム構成を示しそれらのプログラムを選択させるプログラム選択画面領域６０３と、プログラム選択画面領域６０３で選択されたプログラムを表示するプログラム表示編集画面領域６０１と、プログラム表示編集画面領域６０１に表示したプログラムでの処理に対する警告のメッセージを表示する警告メッセージ画面領域６０２とにより構成されている。
【００４９】
図７には、コントローラ２０１内のプログラムとして、照合プログラムが選択されてプログラム表示編集画面領域６０１に表示している例を示している。そして、プログラム表示編集画面領域６０１には、入力Ｘとして受信データの今回値が照合処理のためのＦＢ１に入力され、入力Ｙとして自コントローラ内の前回値が照合処理のためのＦＢ１に入力されて、照合の結果として出力Ｚを出力している様子が表示されている。また、警告メッセージ画面領域６０２には、警告メッセージの例として、「Ｘの入力は同期していません。」が表示されている。
【符号の説明】
【００５０】
１０１、２０１  コントローラ
１０２、２０２  中央処理装置（ＣＰＵ）
１０３、２０３  通信プロセッサ（ＮＣＰ）
１０４、２０４  転写メモリ
１０５、２０５  システムバス
１０６、２０６  信号入力装置
１０７、２０７  センサ
１０８、２０８  信号出力装置
１０９、２０９  アクチュエータ
３０１  プログラミングツール
３０２Ａ    １０２用プログラム
３０２Ｂ    ２０２用プログラム
３０３      エディタ
３０４      コンパイラ
３０５Ａ    １０２用実行モジュール
３０５Ｂ    ２０２用実行モジュール
４０１、５０４  カウンタプログラム
４０４、５０１  照合プログラム
９０１      ネットワーク
【図１】
0005377448.tif 000002
【図２】
0005377448.tif 000003
【図３】
0005377448.tif 000004
【図４】
0005377448.tif 000005
【図５】
0005377448.tif 000006
【図６】
0005377448.tif 000007
【図７】
0005377448.tif 000008