(57)【要約】【課題】プロセス入出力装置（ＰＩ／Ｏ）を接続しなくても効率よく模擬試験が実施できるプログラマブルコントローラを提供する。【解決手段】プログラマブルコントローラ１は、プロセス入力装置２ａからの入力信号（例えば、入力データ、ステータスデータ）に基づきプロセス出力装置２ｂに出力信号（例えば、出力データ）を出力する制御プロセッサ１ａと、プロセス入力装置２ａの模擬信号を発生させる汎用プロセッサ１ｂと、を有し、制御プロセッサ１ａは、プロセス入力装置２ａが未接続の場合に、汎用プロセッサ１ｂが発生させた模擬信号を入力信号として使用する。汎用プロセッサ１ｂは、保守端末４からの指示に従い、制御プロセッサ１ａの制御演算処理に合わせて連続して未接続のプロセス入力装置２ａの模擬信号を発生させる。【選択図】図１
2018097700.tif 000002
【特許請求の範囲】
【請求項１】
入力装置からの入力信号に基づき出力装置に出力信号を出力する制御プロセッサと、
前記入力装置の模擬信号を発生させる汎用プロセッサと、を有し、
前記制御プロセッサは、前記入力装置が未接続の場合に、前記汎用プロセッサが発生させた前記模擬信号を入力信号として使用する
ことを特徴とするプログラマブルコントローラ。
【請求項２】
前記汎用プロセッサは、外部端末からの指示に従い、前記制御プロセッサの制御演算処理に合わせて連続して前記未接続の入力装置の模擬信号を発生させる
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記汎用プロセッサは、外部端末からの指示に従い、前記未接続の入力装置の異常信号を発生させる
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項４】
前記制御プロセッサは、前記未接続の入力装置が接続された場合、前記入力信号を前記模擬信号から前記接続された入力装置からの入力信号を使用する
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項５】
前記入力装置は、プラント機器からの信号を取り込むために設けられたプロセス入力装置であり、前記入力信号は、前記入力装置内の入力データと異常であるか否かのステータスデータである
ことを特徴とする請求項１から請求項４のいずれか１項に記載のプログラマブルコントローラ。
【請求項６】
プラント機器からの信号を入出力するためのプロセス入出力装置を介して前記プラント機器を制御する制御プロセッサと、前記制御プロセッサとは異なる汎用的な用途のプロセッサである汎用プロセッサとを備え、
外部端末からの前記プロセス入出力装置の模擬動作指示に従い、
前記汎用プロセッサは、前記プロセス入出力装置の異常を発生させるステータスデータおよび前記プロセス入出力装置の入出力データを模擬データとして出力し、
前記制御プロセッサは、前記出力された模擬データを使用して、前記プロセス入出力装置の模擬試験を実行する
ことを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス入出力装置（以降はＰＩ／Ｏと呼称する）を接続してプラント制御システムを構成するプログラマブルコントローラに関する。
【背景技術】
【０００２】
プラント制御システムのプログラマブルコントローラは、プロセス入力装置のプロセスデータを入力して演算し、その結果のプロセスデータをプロセス出力装置に出力する処理を行う。この一連の処理でプラントを監視・制御しているため、高速な演算能力が求められている。
【０００３】
一方、演算処理を実行するアプリケーションプログラムの試験では、通常、監視・制御対象と接続することが困難であるため、ＰＩ／Ｏにプロセスデータを模擬する機能を有する装置を接続して試験するのが一般的である。また、ＰＩ／Ｏは種類や接続する数が多いため、試験開始時に必要なＰＩ／Ｏを全て用意できない場合も多い。
【０００４】
従来のプロセスデータの模擬を行う技術には以下のようなものがある。
特許文献１では、専用のシミュレータ装置を接続し、シミュレータ装置内のソフトウェアにて、プロセスデータを模擬する技術が開示されている。この技術では、シミュレータ装置内にプラントのプロセスデータの変化を登録しておき、それを呼び出すことによってプロセスデータの模擬を行うことを特徴としている。
【０００５】
特許文献２では、コントローラ内で起動するアプリケーションプログラムの属性を判定し、模擬モード処理、または、実モード処理を行う。アプリケーションプログラムの属性が模擬モード用ならば、模擬動作をすることを特徴としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭５９−１２３０５７号公報
【特許文献２】特開昭５９−２１６２１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述した特許文献１では、プロセスデータの模擬機能を専用のシミュレータ装置内のソフトウェアで実現しており、専用のシミュレータ装置を用意することが必要となってしまう。
【０００８】
一方、前述した特許文献２では、アプリケーションプログラムの属性が模擬モード用のものである場合模擬モード処理を行うが、実モード処理に切り替えるためには、アプリケーションプログラムの入替えが必要となってしまう。
【０００９】
また、ＰＩ／Ｏの異常は、ＰＩ／Ｏの故障だけでなく、プログラマブルコントローラにＰＩ／Ｏが接続されていない場合も異常状態と報告されるため、必要なＰＩ／Ｏが用意できていない場合は試験が開始できない。
【００１０】
本発明は、前記の課題を解決するための発明であって、プロセス入出力装置（ＰＩ／Ｏ）を接続しなくても効率よく模擬試験が実施できるプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１１】
前記目的を達成するため、本発明のプログラマブルコントローラは、入力装置（例えば、プロセス入力装置２ａ）からの入力信号（例えば、入力データ１２、ステータスデータ１３）に基づき出力装置（例えば、プロセス出力装置２ｂ）に出力信号（例えば、出力データ１２ｂ）を出力する制御プロセッサと、入力装置の模擬信号を発生させる汎用プロセッサと、を有し、制御プロセッサは、入力装置が未接続の場合に、汎用プロセッサが発生させた模擬信号を入力信号として使用することを特徴とする。本発明のその他の態様については、後記する実施形態において説明する。
【発明の効果】
【００１２】
本発明によれば、プロセス入出力装置（ＰＩ／Ｏ）を接続しなくても効率よく模擬試験が実施できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るプログラマブルコントローラのハードウェア構成を示すブロック図である。
【図２】プログラマブルコントローラの運転動作時の入力処理を示すブロック図である。
【図３】プログラマブルコントローラの運転動作時における入力の変換と診断を示す説明図である。
【図４】プログラマブルコントローラの模擬動作時の入力処理を示すブロック図である。
【図５】プログラマブルコントローラの模擬動作時における入力の変換と診断を示す説明図である。
【図６】プログラマブルコントローラの運転動作時の出力処理を示すブロック図である。
【図７】プログラマブルコントローラの運転動作時における出力の変換と診断を示す説明図である。
【図８】プログラマブルコントローラの模擬動作時の出力処理を示すブロック図である。
【図９】プログラマブルコントローラの模擬動作時における出力の変換を示す説明図である。
【図１０】シミュレーション処理プログラムの動作を示すフローチャートである。
【図１１】プロセス入出力処理プログラムの入出力処理判定処理と動作判定処理を示すフローチャートである。
【図１２】プロセス入出力処理プログラムの入力処理を示すフローチャートであり、（ａ）は入力運転動作処理を示し、（ｂ）は入力模擬動作処理を示す。
【図１３】プロセス入出力処理プログラムの出力処理を示すフローチャートであり、（ａ）は出力運転動作処理を示し、（ｂ）は出力模擬動作処理を示す。
【図１４】プログラマブルコントローラがＰＩ／Ｏ未接続状態で起動し、模擬動作開始後にＰＩ／Ｏ未接続状態から接続した場合を示すタイムチャートである。
【図１５】プログラマブルコントローラの模擬動作での模擬入力データの時間による変化を示すタイムチャートである。
【発明を実施するための形態】
【００１４】
本発明を実施するための実施形態について、適宜図面を参照しながら詳細に説明する。
図１は、本発明の実施形態に係るプログラマブルコントローラ１のハードウェア構成を示すブロック図である。プログラマブルコントローラ１は、プラントの監視・制御を実行する制御プロセッサ（ＣＰＵ：Central Processing Unit）１ａ、模擬処理を実行する汎用プロセッサ（ＣＰＵ：Central Processing Unit）１ｂ、プログラムメモリとして使用されるＲＯＭ（Read Only Memory）１ｃ、ＰＩ／Ｏ（プロセス入出力装置）２を制御するＰＩ／Ｏ制御部１ｄ、制御プロセッサ１ａと汎用プロセッサ１ｂのそれぞれ個別ワークメモリとして使用されるＲＡＭ（Random Access Memory）１ｅ、制御プロセッサ１ａと汎用プロセッサ１ｂの共有メモリとして使用されるＲＡＭ（Random Access Memory）１ｆ、ネットワーク５とのデータ送受信を制御するネットワーク制御部１ｇから構成されている。
【００１５】
プログラマブルコントローラ１は、ＰＩ／Ｏ２を介して、プラント３の監視・制御を実行する機能とプロセスデータやステータスデータの模擬を実行する機能を有する。また、ネットワーク５を介して、他のプログラマブルコントローラと接続し、互いにデータをやり取りする機能も有する。
【００１６】
プログラムメモリ１ｃは、制御プロセッサ１ａ用に使用するエリアと汎用プロセッサ１ｂ用に使用するエリアとが分かれており、それぞれのプロセッサ１ａ，１ｂで動作するプログラムが格納される。
【００１７】
ワークメモリ１ｅも、制御プロセッサ１ａ用に使用するエリアと汎用プロセッサ１ｂ用に使用するエリアとが分かれており、それぞれのプロセッサ１ａ，１ｂで使用するデータ、情報などが記憶される。具体的には、制御プロセッサ１ａ用のワークメモリ１ｅにプロセスデータ６（図２参照）、ＰＩ／Ｏ異常情報７（図２参照）などが記憶されている。汎用プロセッサ１ｂ用のワークメモリ１ｅに模擬データ時間変化情報１１（図２参照）などが記憶されている。
【００１８】
共有メモリ１ｆは、制御プロセッサ１ａと汎用プロセッサ１ｂが共用に使用するデータ、情報などが記憶されている。具体的には、図２に示す模擬入力データ１４、模擬ステータスデータ１５、運転動作または模擬動作を指示する情報である動作指定情報１６、ＰＩ／Ｏ接続情報１７などが共有メモリ１ｆに記憶されている。
【００１９】
保守端末４は、プログラマブルコントローラ１と同じネットワーク５に接続し、プログラマブルコントローラ１内のデータのモニタや、プログラマブルコントローラ１に対して模擬動作の実行を指示する機能を有する。
【００２０】
プラント３およびＰＩ／Ｏ２がプログラマブルコントローラ１に接続されていない場合、プログラマブルコントローラ１の内部で模擬動作が行われる。図１において、破線でＰＩ／Ｏ２およびプラント３を示しているのは、接続されていないことを示すものである。
【００２１】
図２は、プログラマブルコントローラ１で運転動作時の入力処理を示すブロック図である。動作指定情報１６に運転動作を指示する情報が格納されている場合、アプリケーションプログラム８とプロセス入出力処理プログラム９は、制御プロセッサ１ａで動作し、シミュレーションプログラム１０は、汎用プロセッサ１ｂで動作する。
【００２２】
実際にプロセス入力装置２ａが接続されている運転動作の入力処理では、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、プロセス入力装置２ａ内の入力データ１２を読み込み、プロセスデータに変換してワークメモリ（制御プロセッサ用）１ｅ内のプロセスデータ６へ転送する。また、制御プロセッサ１ａは、ＰＩ／Ｏ２内のステータスデータ１３を読み込み、診断することでプロセス入力装置２ａの異常を検出し、その結果をワークメモリ（制御プロセッサ用）１ｅ内にＰＩ／Ｏ異常情報７として格納する。なお、前記したように、ワークメモリ１ｅは、制御プロセッサ１ａ用と汎用プロセッサ１ｂ用に使用するエリアが分かれている。
【００２３】
制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内のプロセスデータ６を参照することでプラントの状態を監視し、ＰＩ／Ｏ異常情報７を参照することで、プロセス入力装置２ａの異常を検知することができる。
【００２４】
図３は、プログラマブルコントローラ１の運転動作時における入力の変換と診断を示す説明図である。プラント３の流量計などのセンサからプロセス入力装置２ａに入力された０〜５Ｖの電圧信号は、プロセス入力装置２ａ内でデジタル変換されて０〜４０００の入力データとなる。制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、入力データを読み込み、０〜１００％の単精度浮動小数点数のプロセスデータに変換して、ワークメモリ（制御プロセッサ用）１ｅに格納する。
【００２５】
また、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、プロセス入力装置２ａ内のステータスデータ１３を読み込み、ステータスデータ１３内の異常検出ｂｉｔをワークメモリ（制御プロセッサ用）１ｅ内のＰＩ／Ｏ異常情報７に格納する。
【００２６】
図４は、プログラマブルコントローラ１で模擬動作時の入力処理を示すブロック図である。動作指定情報１６に模擬動作を指示する情報が格納されている場合、汎用プロセッサ１ｂは、シミュレーションプログラム１０に基づいて、ワークメモリ（汎用プロセッサ用）１ｅ内のあらかじめ登録された模擬データ時間変化情報１１を読み込み、読み込んだ模擬データ時間変化情報にしたがって、共有メモリ１ｆ内の模擬入力データ１４と模擬ステータスデータ１５を逐次書き換える。
【００２７】
制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、共有メモリ１ｆ内の模擬入力データ１４を読み込み、プロセスデータに変換してワークメモリ（制御プロセッサ用）１ｅ内のプロセスデータ６へ転送する。また、制御プロセッサ１ａは、共有メモリ１ｆ内の模擬ステータスデータ１５を読み込み、診断することでプロセス入力装置２ａの異常を模擬し、その結果をワークメモリ（制御プロセッサ用）１ｅ内にＰＩ／Ｏ異常情報７として格納する。
【００２８】
制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内のプロセスデータ６を参照することでプラントの連続した状態変化を模擬し、さらにＰＩ／Ｏ異常情報７を参照することで、プロセス入力装置２ａの異常を模擬する。これにより、プロセス入力装置２ｃそのものを模擬することが可能となる。
【００２９】
図５は、プログラマブルコントローラ１の模擬動作時における入力の変換と診断を示す説明図である。汎用プロセッサ１ｂは、シミュレーションプログラム１０に基づいて、一定周期で模擬動作時の入力処理を実行する。汎用プロセッサ１ｂは、ワークメモリ（汎用プロセッサ用）１ｅ内に格納されている模擬データ時間変化情報の模擬入力データ目標値と、現在の模擬入力データを比較し、一致した場合は何もしないが、不一致の場合は、共有メモリ１ｆに格納されている模擬入力データに模擬データ時間変化情報の加算値を加算する。一方、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、模擬入力データ１４を読み込み、０〜１００％の単精度浮動小数点数のプロセスデータに変換して、ワークメモリ（制御プロセッサ用）１ｅに格納する。
【００３０】
また、汎用プロセッサ１ｂは、シミュレーションプログラム１０に基づいて、模擬データ時間変化情報のタイマー時間をシミュレーションプログラム１０の実行周期の値で減算し、タイマー時間が０となった場合に模擬データ時間変化情報の異常検出ｂｉｔ模擬値を共有メモリ１ｆに格納されている模擬ステータスデータの異常検出ｂｉｔに書き込む。一方、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、共有メモリ１ｆに格納されている模擬ステータスデータ１５を読み込み、模擬ステータスデータ１５内の異常検出ｂｉｔをワークメモリ（制御プロセッサ用）１ｅ内のＰＩ／Ｏ異常情報７に格納する。このようにすることで連続したプロセスデータの変化と時間経過によるＰＩ／Ｏ異常の模擬が可能となる。
【００３１】
図６は、プログラマブルコントローラ１で運転動作時の出力処理を示すブロック図である。動作指定情報１６に運転動作を指示する情報が格納されている場合、制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内にプロセスデータ６を書き込む。また、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内のプロセスデータ６を出力データに変換し、プロセス出力装置２ｂ内の出力データ１２ｂに書き込む。制御プロセッサ１ａは、その後、ステータスデータ１３を読み込み、診断することでプロセス出力装置２ｂの異常を検出し、その結果をワークメモリ（制御プロセッサ用）１ｅ内にＰＩ／Ｏ異常情報７として格納する。
【００３２】
制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内のＰＩ／Ｏ異常情報７を参照することで、プロセス出力装置２ｂの異常を検知することができる。
【００３３】
図７は、プログラマブルコントローラ１の運転動作時における出力の変換と診断を示す説明図である。制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内の０〜１００％の単精度浮動小数点数のプロセスデータを読み込み、０〜４０００の出力データに変換してプロセス出力装置２ｂ内の出力データに書き込む。出力データはプロセス出力装置２ｂ内で０〜５Ｖの電圧信号にアナログ変換され、プロセス出力装置２ｂに接続されているプラント３の調節弁に出力される。
【００３４】
また、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、プロセス出力装置２ｂ内のステータスデータ１３を読み込み、ステータスデータ１３内の異常検出ｂｉｔをワークメモリ（制御プロセッサ用）１ｅ内のＰＩ／Ｏ異常情報７に格納する。
【００３５】
図８は、プログラマブルコントローラ１で模擬動作時の出力処理を示すブロック図である。汎用プロセッサ１ｂは、シミュレーションプログラム１０に基づいて、動作指定情報１６に模擬動作を指示する情報が格納されている場合、ワークメモリ（汎用プロセッサ用）１ｅ内のあらかじめ登録された模擬データ時間変化情報１１を読み込み、読み込んだ模擬データ時間変化情報１１にしたがって、共有メモリ１ｆ内の模擬出力データ１４ｂと模擬ステータスデータ１５を逐次書き換える。
【００３６】
一方、制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内にプロセスデータ６を書き込むが、プロセス入出力処理プログラム９に基づいて、このプロセスデータを使用せず、模擬出力データ１４ｂがプロセス出力装置２ｂ内の出力データ１２ｂに出力される。これにより、プラントへの連続した制御を模擬することができる。
【００３７】
また、制御プロセッサ１ａは、模擬ステータスデータ１５を読み込み後に診断し、その結果をワークメモリ（制御プロセッサ用）１ｅ内にＰＩ／Ｏ異常情報７として格納する。
【００３８】
制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ（制御プロセッサ用）１ｅ内のＰＩ／Ｏ異常情報７を参照することで、プロセス出力装置２ｂの異常を模擬することができる。
【００３９】
図９は、プログラマブルコントローラ１の模擬動作時における出力の変換を示す説明図である。汎用プロセッサ１ｂは、シミュレーションプログラム１０に基づいて、模擬動作時の出力処理を一定周期で実行する。汎用プロセッサ１ｂは、ワークメモリ（汎用プロセッサ用）１ｅ内に格納されている模擬データ時間変化情報の模擬出力データ目標値と、現在の模擬出力データを比較し、一致した場合は何もしないが、不一致の場合は、共有メモリ１ｆに格納されている模擬出力データ１４ｂに模擬データ時間変化情報の加算値を加算する。一方、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、模擬出力データ１４ｂを読み込み、プロセス出力装置２ｂ内の出力データ１２ｂに書き込む。出力データ１２ｂはプロセス出力装置２ｂ内で０〜５Ｖの電圧信号にアナログ変換され、プロセス出力装置２ｂに接続されている調節弁に出力される。診断については、図５と同様であるため、ここでの説明は割愛する。
【００４０】
図１０は、シミュレーション処理プログラムの動作を示すフローチャートである。シミュレーション処理プログラムは、汎用プロセッサ１ｂで、一定周期で起動されるため、制御プロセッサ１ａの負荷を上げるなどの悪影響を与えずに動作する。なお、適宜、図２、図４、図６、図８を参照して説明する。
【００４１】
汎用プロセッサ１ｂは、シミュレーション処理プログラムに基づいて、ＰＩ／Ｏ毎に全てのＰＩ／Ｏ分の下記の処理を繰り返し実行する（ステップＳ１）。
【００４２】
汎用プロセッサ１ｂは、共有メモリ１ｆに格納されている動作指定情報１６を判定し（ステップＳ２）、運転動作の場合（ステップＳ２，運転動作）、今回のＰＩ／Ｏ接続状態をＰＩ／Ｏ接続情報１７に保存する（ステップＳ９）。汎用プロセッサ１ｂは、模擬動作の場合（ステップＳ２，模擬動作）、共有メモリ１ｆに保存されているＰＩ／Ｏ接続情報１７を判定し（ステップＳ３）、接続状態ならば（ステップＳ３，接続）、ステップＳ５に進む。汎用プロセッサ１ｂは、未接続状態の場合（ステップＳ３，未接続）、さらに現在のＰＩ／Ｏ接続状態を判定し（ステップＳ４）、未接続状態ならば（ステップＳ４，未接続）、ステップＳ５に進む。汎用プロセッサ１ｂは、接続状態の場合（ステップＳ４，接続）、該当のＰＩ／Ｏの模擬動作から運転動作に変更し（ステップＳ６）、今回のＰＩ／Ｏ接続状態をＰＩ／Ｏ接続情報１７に保存する（ステップＳ９）。
【００４３】
前記の処理により、接続していなかったＰＩ／Ｏの模擬動作時に、該当のＰＩ／Ｏが接続された場合は、該当のＰＩ／Ｏの模擬を自動で運転動作に切り替えることが可能となる。参考として図１４のＰＩ／Ｏ未接続状態から接続した場合を示すタイムチャートについて説明する。
【００４４】
図１４は、プログラマブルコントローラ１がＰＩ／Ｏ未接続状態で起動し、模擬動作開始後にＰＩ／Ｏ未接続状態から接続した場合を示すタイムチャートである。適宜図１、図４、図５を参照して説明する。横軸は時間である。
【００４５】
時刻ｔ１において、ＰＩ／Ｏ２を接続しないでプログラマブルコントローラ１を起動すると、初期設定として動作指定情報は「運転動作」、ＰＩ／Ｏ異常情報７は「異常」、ＰＩ／Ｏ接続情報１７は「未接続」として開始する。なお、運転動作時は、ＰＩ／Ｏ２が接続されていない場合、ステータスデータはＰＩ／Ｏの異常を示すため、ＰＩ／Ｏ接続情報１７は、ＰＩ／Ｏの異常状態を示す。
【００４６】
時刻ｔ２において、保守端末４から模擬動作を指定し、模擬ステータスデータ１５の異常検出ｂｉｔをＯＦＦに指定する。すると、時刻ｔ３において、制御プロセッサ１ａは、模擬動作を開始する。
【００４７】
模擬動作中に、時刻ｔ４において、該当のＰＩ／Ｏ２が実装（接続）されたならは、汎用プロセッサ１ｂは、時刻ｔ５において、模擬動作中にＰＩ／Ｏ接続情報が未接続から接続状態に変化したため、該当のＰＩ／Ｏ２の動作指定情報１６を自動で運転動作に変更する。すると、制御プロセッサ１ａは、運転動作に移行する。
【００４８】
図１０に戻り、ステップＳ５（模擬動作を継続した場合）において、汎用プロセッサ１ｂは、ワークメモリ１ｅから模擬データ時間変化情報１１を読み込む。汎用プロセッサ１ｂは、読み込んだ模擬データ時間変化情報１１により、模擬データ変更タイミングかどうかを判断し（ステップＳ７）、変更タイミングの場合（ステップＳ７，変更タイミング）、共有メモリ１ｆ内の模擬入力データ１４と模擬ステータスデータ１５を書き換え（ステップＳ８）、今回のＰＩ／Ｏ接続状態をＰＩ／Ｏ接続情報１７に保存する（ステップＳ９）。変更タイミングではない場合（ステップＳ７，変更タイミングではない）、ステップＳ９に進む。
【００４９】
このように、前記の処理により、模擬データの時間による変化が可能となる。参考として、模擬入力動作での模擬入力データの時間による変化の一例を示すタイムチャートを、図１５を参照して説明する。
【００５０】
図１５は、プログラマブルコントローラ１の模擬動作での模擬入力データの時間による変化を示すタイムチャートである。横軸は時間である。時刻ｔ１１において、保守端末４から模擬動作を指定し、模擬入力データの目標値を４０００、変化率を５００／１００ミリ秒と設定された場合について、適宜図１、図４、図５を参照して説明する。なお、共有メモリ１ｆ内に格納されている現在の模擬入力データを２０００とする。
【００５１】
時刻ｔ１２において、制御プロセッサ１ａは、該当のＰＩ／Ｏ２の模擬動作を開始する。汎用プロセッサ１ｂは、ワークメモリ（汎用プロセッサ用）１ｅ内に格納されている模擬データ時間変化情報１１の模擬入力データ目標値である「４０００」と、現在の模擬入力データである「２０００」を比較し、不一致であるので、共有メモリ１ｆに格納されている模擬入力データである「２０００」に模擬データ時間変化情報の加算値である「５００」を加算する。
【００５２】
時刻ｔ１３において、汎用プロセッサ１ｂは、ワークメモリ（汎用プロセッサ用）１ｅ内に格納されている模擬データ時間変化情報１１の模擬入力データ目標値である「４０００」と、現在の模擬入力データである「２５００」を比較し、不一致であるので、共有メモリ１ｆに格納されている模擬入力データである「２５００」に模擬データ時間変化情報の加算値である「５００」を加算する。
【００５３】
時刻ｔ１４において、汎用プロセッサ１ｂは、ワークメモリ（汎用プロセッサ用）１ｅ内に格納されている模擬データ時間変化情報１１の模擬入力データ目標値である「４０００」と、現在の模擬入力データである「３０００」を比較し、不一致であるので、共有メモリ１ｆに格納されている模擬入力データである「３０００」に模擬データ時間変化情報の加算値である「５００」を加算する。
【００５４】
時刻ｔ１５において、汎用プロセッサ１ｂは、ワークメモリ（汎用プロセッサ用）１ｅ内に格納されている模擬データ時間変化情報１１の模擬入力データ目標値である「４０００」と、現在の模擬入力データである「３５００」を比較し、不一致であるので、共有メモリ１ｆに格納されている模擬入力データである「３５００」に模擬データ時間変化情報の加算値である「５００」を加算する。これにより、模擬入力データの目標値に到達する。以後、模擬動作が継続される。
【００５５】
図１１は、プロセス入出力処理プログラムの入出力処理判定と動作判定を示すフローチャートである。プロセス入出力処理プログラムは、制御プロセッサ１ａにおいて動作する。制御プロセッサ１ａは、プロセス入出力処理プログラムに基づいて、処理動作が入力処理か出力処理かどうかを判定し（ステップＳ１０）、その後、共有メモリ１ｆに格納されている動作指定情報１６が運転動作か模擬動作かを判定する（ステップＳ１１、Ｓ１２）。前記の判定結果により、制御プロセッサ１ａが実行する処理が異なる。
【００５６】
ステップＳ１０において入力処理の場合、ステップＳ１１において、制御プロセッサ１ａは、運転動作であれば入力運転動作処理（ステップＳ２０）を行い、模擬動作であれば入力模擬動作処理（ステップＳ３０）を行う。また、ステップＳ１０において出力処理の場合、ステップＳ１２において、制御プロセッサ１ａは、運転動作であれば出力運転動作処理（ステップＳ４０）を行い、模擬動作であれば出力模擬動作処理（ステップＳ５０）を行う。詳細については、図１２、図１３を参照して説明する。
【００５７】
図１２は、プロセス入出力処理プログラムの入力処理を示すフローチャートであり、（ａ）は入力運転動作処理を示し、（ｂ）は入力模擬動作処理を示す。プロセス入出力処理プログラムは、制御プロセッサ１ａにおいて動作する。適宜、図１、図２、図４を参照して説明する。
【００５８】
図１２（ａ）に示す入力運転動作処理（ステップＳ２０）では、制御プロセッサ１ａは、プロセス入力装置２ａから入力データ１２とステータスデータ１３を読み込み（ステップＳ２１）、ステータスデータ１３からＰＩ／Ｏの異常を診断して、ＰＩ／Ｏ異常情報７を生成する（ステップＳ２２）。制御プロセッサ１ａは、入力データ１２を変換したプロセスデータ６と生成したＰＩ／Ｏ異常情報７をワークメモリ１ｅに書き込む（ステップＳ２３）。
【００５９】
制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ１ｅに書き込まれたプロセスデータ６と生成したＰＩ／Ｏ異常情報７を参照してプラントの監視が可能となる。
【００６０】
図１２（ｂ）に示す入力模擬動作処理（ステップＳ３０）では、汎用プロセッサ１ｂがシミュレーションプログラムに基づいて書き込んだ共有メモリ１ｆの模擬入力データ１４と模擬ステータスデータ１５を、制御プロセッサ１ａが読み込み（ステップＳ３１）、模擬ステータスデータ１５からＰＩ／Ｏの異常を診断して、ＰＩ／Ｏ異常情報７を生成する（ステップＳ３２）。制御プロセッサ１ａは、模擬入力データ１４を変換したプロセスデータ６と生成したＰＩ／Ｏ異常情報７をワークメモリ１ｅに書き込む（ステップＳ３３）。
【００６１】
制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ１ｅに書き込まれたプロセスデータ６とＰＩ／Ｏ異常情報７を参照することにより、プラントの連続した状態変化を模擬し、プロセス入力装置２ａの異常を模擬することが可能となる。
【００６２】
図１３は、プロセス入出力処理プログラムの出力処理を示すフローチャートであり、（ａ）は出力運転動作処理を示し、（ｂ）は出力模擬動作処理を示す。プロセス入出力処理プログラムは、制御プロセッサ１ａにおいて動作する。適宜、図１、図６、図８を参照して説明する。
【００６３】
図１３（ａ）に示す出力運転動作処理（ステップＳ４０）では、制御プロセッサ１ａは、アプリケーションプログラム８に基づいて書き込んだワークメモリ１ｅ内のプロセスデータ６を出力データに変換してプロセス出力装置２ｂに書き込み（ステップＳ４１）、プロセス出力装置２ｂからステータスデータ１３を読み込む（ステップＳ４２）。制御プロセッサ１ａは、ステータスデータ１３からＰＩ／Ｏの異常を診断してＰＩ／Ｏ異常情報７を生成し（ステップＳ４３）、生成したＰＩ／Ｏ異常情報７をワークメモリ１ｅに書き込む（ステップＳ４４）。
【００６４】
制御プロセッサ１ａは、アプリケーションプログラム８に基づいて、ワークメモリ１ｅに書き込まれたＰＩ／Ｏ異常情報７を参照することにより、ＰＩ／Ｏ２の異常を検知することが可能となり、ワークメモリ１ｅ内のプロセスデータ６を書き換えることにより、プラントの制御が可能となる。
【００６５】
図１３（ｂ）に示す出力模擬動作処理（ステップＳ５０）では、汎用プロセッサ１ｂがシミュレーションプログラム１０に基づいて書き込んだ共有メモリ１ｆ内の模擬出力データ１４ｂを、制御プロセッサ１ａはプロセス出力装置２ｂに書き込み（ステップＳ５１）、共有メモリ１ｆから模擬ステータスデータ１５を読み込む（ステップＳ５２）。模擬ステータスデータ１５からＰＩ／Ｏの異常を診断してＰＩ／Ｏ異常情報７を生成し（ステップＳ５３）、生成したＰＩ／Ｏ異常情報７をワークメモリ１ｅに書き込む（ステップＳ５４）。
【００６６】
汎用プロセッサ１ｂがシミュレーションプログラム１０に基づいて、共有メモリ１ｆ内の模擬出力データ１４ｂと模擬ステータスデータ１５を書き換えることにより、アプリケーションプログラム８と関連しない連続したプロセスデータ６でプラント３を制御することが可能となり、ＰＩ／Ｏ２の異常を模擬することが可能となる。このプロセス出力処理の模擬動作は、プログラマブルコントローラ１の試験ではなく、プロセス出力装置２ｂに接続されているほかの機器の動作を確認するための機能である。
【００６７】
次に図１のハードウェア構成にて、ＰＩ／Ｏ２を接続していない状態での模擬について説明する。運転動作時は、ＰＩ／Ｏ２が接続されていない場合、ステータスデータはＰＩ／Ｏ２の異常を示すため、ＰＩ／Ｏ異常情報は、ＰＩ／Ｏ２の異常状態を示す。模擬動作時は、模擬ステータスデータ１５を使用するため、ＰＩ／Ｏ２が接続されていなくても、ＰＩ／Ｏ異常情報７を正常状態に模擬することが可能であり、各種の状態の模擬ができる。
【００６８】
また、汎用プロセッサ１ｂがシミュレーションプログラム１０に基づく処理は、模擬動作時のＰＩ／Ｏ２の接続を監視し、模擬動作中にＰＩ／Ｏ２が接続された場合は該当のＰＩ／Ｏ２の模擬を自動で解除して運転動作とすることができる。
【００６９】
以上説明したように、本実施形態のプログラマブルコントローラ１は、プログラマブルコントローラ１内の制御処理が動作する制御プロセッサ１ａに、実際の稼動においても使用するプロセス入出力処理プログラム９を実装し、制御プロセッサ１ａとは異なる汎用的な用途のプロセッサである汎用プロセッサ１ｂに、プロセスデータやＰＩ／Ｏ（プロセス入出力装置）の異常を模擬するためのシミュレーションプログラム１０を実装している。ＰＩ／Ｏの異常を発生させるステータスデータやＰＩ／Ｏの入出力データを模擬値（模擬データ）として制御プロセッサ１ａと汎用プロセッサ１ｂが共有する共有メモリ１ｆに配置し、保守端末４が共有メモリ１ｆに模擬動作を指示することにより模擬状態を実現する。模擬動作では、汎用プロセッサ１ｂは、シミュレーションプログラム１０に基づいて、あらかじめ定義された入出力データとステータスデータを共有メモリ１ｆに書き込み、制御プロセッサ１ａは、プロセス入出力処理プログラム９に基づいて、ＰＩ／Ｏではなく、共有メモリ１ｆの模擬値を実際のデータとして使用することで、プロセスデータの模擬、およびＰＩ／Ｏの異常を模擬することができる。
【００７０】
本実施形態のプログラマブルコントローラ１は、専用のシミュレータ装置だけではなく、ＰＩ／Ｏ（プロセス入出力装置）を接続しなくても効率よく模擬試験（模擬動作）が実施でき、ＰＩ／Ｏを接続した場合は自動で模擬動作を解除し、模擬動作中でも制御するための演算速度に影響を与えない効果がある。
【００７１】
本実施形態によれば、専用のシミュレータ装置を用意したり、テスト用にアプリケーションプログラムの入替えをすることなく、プロセスデータの模擬が可能となる。また、ＰＩ／Ｏの異常の模擬や、連続したプロセスデータの模擬が可能となる。
【００７２】
本実施形態の特徴をまとめると下記になる。
本実施形態のプログラマブルコントローラ１は、入力装置（例えば、プロセス入力装置２ａ）からの入力信号（例えば、入力データ１２、ステータスデータ１３）に基づき出力装置（例えば、プロセス出力装置２ｂ）に出力信号（例えば、出力データ１２ｂ）を出力する制御プロセッサ１ａと、入力装置の模擬信号を発生させる汎用プロセッサ１ｂと、を有し、制御プロセッサ１ａは、入力装置が未接続の場合に、汎用プロセッサ１ｂが発生させた模擬信号を入力信号として使用する。
【００７３】
汎用プロセッサ１ｂは、外部端末（例えば、保守端末４）からの指示に従い、制御プロセッサ１ａの制御演算処理に合わせて連続して未接続の入力装置の模擬信号を発生させる。
【００７４】
汎用プロセッサ１ｂは、外部端末からの指示に従い、未接続の入力装置の異常信号を発生させる。
【００７５】
制御プロセッサ１ａは、未接続の入力装置が接続された場合、入力信号を模擬信号から接続された入力装置からの入力信号を使用する。
【００７６】
入力装置は、具体的には、プラント機器からの信号を取り込むために設けられたプロセス入力装置であり、入力信号は、入力装置内の入力データと異常であるか否かのステータスデータである。
【００７７】
本実施形態のプログラマブルコントローラ１は、プラント機器からの信号を入出力するためのプロセス入出力装置２を介してプラント機器を制御する制御プロセッサ１ａと、制御プロセッサ１ａとは異なる汎用的な用途のプロセッサである汎用プロセッサ１ｂとを備え、外部端末（例えば、保守端末４）からのプロセス入出力装置２の模擬動作指示に従い、汎用プロセッサ１ｂは、プロセス入出力装置２の異常を発生させるステータスデータおよびプロセス入出力装置２の入出力データを模擬データとして出力し、制御プロセッサ１ａは、出力された模擬データを使用して、プロセス入出力装置２の模擬試験を実行する。
【００７８】
なお、前述した実施形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることはもちろんである。例えば、本実施形態では、汎用プロセッサ１ｂを使用しているが、シミュレーションプログラム１０を実行に特化した専用プロセッサでもよい。
【符号の説明】
【００７９】
１    プログラマブルコントローラ
１ａ    制御プロセッサ
１ｂ    汎用プロセッサ
１ｃ    プログラムメモリ
１ｄ    ＰＩ／Ｏ制御部
１ｅ    ワークメモリ
１ｆ    共有メモリ
２    ＰＩ／Ｏ（プロセス入出力装置）
２ａ    プロセス入力装置（入力装置）
２ｂ    プロセス出力装置（出力装置）
３    プラント
４    保守端末
５    ネットワーク
６    プロセスデータ
７    ＰＩ／Ｏ異常情報
８    アプリケーションプログラム
９    プロセス入出力処理プログラム
１０    シミュレーションプログラム
１１    模擬データ時間変化情報
１２    入力データ
１２ｂ    出力データ
１３    ステータスデータ
１４    模擬入力データ
１４ｂ    模擬出力データ
１５    模擬ステータスデータ
１６    動作指定情報
１７    ＰＩ／Ｏ接続情報
【図１】
2018097700.tif 000003
【図２】
2018097700.tif 000004
【図３】
2018097700.tif 000005
【図４】
2018097700.tif 000006
【図５】
2018097700.tif 000007
【図６】
2018097700.tif 000008
【図７】
2018097700.tif 000009
【図８】
2018097700.tif 000010
【図９】
2018097700.tif 000011
【図１０】
2018097700.tif 000012
【図１１】
2018097700.tif 000013
【図１２】
2018097700.tif 000014
【図１３】
2018097700.tif 000015
【図１４】
2018097700.tif 000016
【図１５】
2018097700.tif 000017