以下に、本発明の実施の形態にかかるパラメータ調整システム、パラメータ調整方法、および入出力装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、本発明の実施の形態にかかるパラメータ調整システムの構成を示す図である。パラメータ調整システム100は、制御装置であるPLC6〜8と、PLC6に接続されたリモートI/O20Xと、PLC6に接続されたPC(Personal Computer)9とを備えている。また、パラメータ調整システム100は、リモートI/O20Xに接続された、出力機器51Xおよび入力機器52Xを備えている。また、パラメータ調整システム100は、PLC6〜8よりも上位側のコンピュータである、エッジコンピュータ2、上位コンピュータ3およびサーバ1を備えている。なお、リモートI/O20Xは、複数のユニットを示しており、リモートI/O20Xの例は、後述の図5に示すリモートI/O20A、または後述の図7に示すリモートI/O20Bなどである。
エッジコンピュータ2、上位コンピュータ3およびサーバ1は、イーサネット(登録商標)といった通信規格を用いた通信網4に接続されている。また、エッジコンピュータ2およびPLC6〜8は、PLC間ネットワーク5に接続されている。
PLC6〜8は、機械制御に特化したラダー言語によって種々の機器を制御するFA用コントローラである。ここでのPLC6は、CPUユニットといった制御ユニット10を備えている。マスタ局である制御ユニット10は、出力機器51Xおよび入力機器52Xを制御するための指示を生成して、リモート局であるリモートI/O20Xに送信する。また、制御ユニット10は、リモートI/O20Xから種々の情報を受信する。
なお、PLC6は、制御ユニット10以外のユニットを備えていてもよい。PLC6は、情報の入出力を実行するI/Oユニットまたは他の装置と通信を行なうネットワークユニットを備えていてもよいし、制御ユニット10がI/Oユニットまたはネットワークユニットの機能を有していてもよい。PLC6がネットワークユニットを備えている場合、ネットワークユニットがリモートI/O20Xに接続される。また、制御ユニット10がネットワークユニットの機能を有している場合、制御ユニット10がリモートI/O20Xに接続される。
制御ユニット10は、入出力装置の一例であるリモートI/O20Xにパラメータの設定指示を送る。実施の形態の制御ユニット10は、複数のパラメータを一括で設定する指示である一括設定指示または特定のパラメータを設定する指示である特定設定指示をリモートI/O20Xに送ることができる。
一括設定指示は、制御ユニット10がパラメータを調整させることが可能な装置の全てへのパラメータ設定指示である。なお、制御ユニット10は、一部装置をパラメータ設定から除外した一括設定指示を出力してもよい。特定設定指示は、制御ユニット10がパラメータを調整させることが可能な装置のうち、ユーザによって指定された特定の装置へのパラメータ設定指示である。なお、パラメータの調整は、設定済みのパラメータの値を変更することに加え、未設定のパラメータの値を設定することも含んでいる。
以下の説明ではパラメータの一括設定指示または特定設定指示を、パラメータ設定指示という場合がある。制御ユニット10が、パラメータ設定指示をリモートI/O20Xに送ると、リモートI/O20Xは、パラメータのオートチューニングを実行する。リモートI/O20Xがオートチューニングするパラメータは、通信パラメータおよび入出力パラメータである。通信パラメータは、制御ユニット10との間で通信を実行する際に用いられるパラメータであり、入出力パラメータは、出力機器51Xおよび入力機器52Xとの間で信号の入出力を行う際に用いられるパラメータである。リモートI/O20Xは、通信処理および信号の入出力処理の確実性を向上させることができるよう、パラメータをオートチューニングする。換言すると、リモートI/O20Xは、通信処理および信号の入出力処理の成功確率が基準値よりも高くなるよう、パラメータをオートチューニングする。なお、リモートI/O20Xは、通信処理および信号の入出力処理の確実性とは関係の無いパラメータをオートチューニングしてもよい。
リモート入出力装置であるリモートI/O20Xは、通信パラメータを設定する際には、PLC6と協働して通信パラメータのオートチューニングを実行する。また、リモートI/O20Xは、入出力パラメータを設定する際には、出力機器51Xまたは入力機器52Xを用いて入出力パラメータのオートチューニングを実行する。実施の形態にかかる入出力パラメータは、リモートI/O20Xが、入力機器52Xからの信号を入力する際に用いる入力パラメータ、またはリモートI/O20Xが、出力機器51Xへ信号を出力する際に用いる出力パラメータである。
リモートI/O20Xは、PLC6との間でフィールドネットワーク11を介して通信を行なう。このとき、リモートI/O20Xは、調整可能なパラメータ値である通信パラメータを用いてPLC6との間の通信を実行する。
リモートI/O20Xは、PLC6から送られてくる指示に従って動作する。リモートI/O20Xは、PLC6からの指示に従って出力機器51Xに信号を出力する。このとき、リモートI/O20Xは、調整可能なパラメータ値である入出力パラメータを用いて出力機器51Xに信号を出力する。出力機器51Xは、リモートI/O20Xが出力する信号を受付ける装置であり、出力機器51Xの例は、コンダクタ、電磁石、バルブまたはモニタである。
また、リモートI/O20Xは、入力機器52Xによって入力される信号を受付ける。このとき、リモートI/O20Xは、入出力パラメータを用いて入力機器52Xからの信号を受付ける。入力機器52Xは、リモートI/O20Xに信号を入力する装置であり、入力機器52Xの例は、センサまたはボタンである。なお、以下の説明では、PLC6と、リモートI/O20Xと、出力機器51Xと、入力機器52Xとを含んだシステムをPLCシステムという場合がある。
PC9は、PLC6への種々の設定を行うためのパラメータ調整装置30を備えている。パラメータ調整装置30は、パラメータ設定指示をリモートI/O20Xに送る装置である。パラメータ調整装置30がパラメータ設定指示をPLC6に送った場合、PLC6は、パラメータ調整装置30からの指示に従ってリモートI/O20Xにパラメータ設定指示を送る。
実施の形態のパラメータ調整装置30は、PLC6に一括設定指示および特定設定指示の何れも送ることができる。PLC6の制御ユニット10は、パラメータ調整装置30から一括設定指示を受信すると、一括設定指示をリモートI/O20Xに送る。また、制御ユニット10は、パラメータ調整装置30から特定設定指示を受信すると、特定設定指示をリモートI/O20Xに送る。パラメータ調整装置30は、後述するエンジニアリングツール90によって実現される。
PLC7,8は、PLC6と同様の構成を有した装置である。図1では、PLC7,8が備える制御ユニットの図示を省略している。また、図1では、PLC7,8に接続されたリモートI/O、このリモートI/Oに接続された出力機器および入力機器の図示を省略している。
なお、制御ユニット10は、パラメータ設定指示を、リモートI/O20X以外の装置に送ってもよい。制御ユニット10は、PLC間ネットワーク5に接続された他のPLC7,8にパラメータ設定指示を送ってもよいし、PLC間ネットワーク5に接続された特定のユニットにパラメータ設定指示を送ってもよい。また、制御ユニット10は、リモートI/O20Xの接続先の装置が用いるパラメータを設定する設定指示を、リモートI/O20Xに送ってもよい。換言すると、制御ユニット10は、オートチューング可能な装置のパラメータであれば何れの装置をオートチューングの対象にしてもよい。
このように、制御ユニット10がパラメータ設定指示を送る対象は、PLC間ネットワーク5に接続された装置と、リモートI/O20Xと、リモートI/O20Xに接続された装置との何れであってもよい。また、パラメータ調整装置30がパラメータ設定指示を送る対象は、パラメータ調整システム100内の何れの装置であってもよい。
エッジコンピュータ2は、PLC6〜8が配置された生産ラインからデータの収集を行う。エッジコンピュータ2は、PLC間ネットワーク5を介してPLC6〜8からリアルタイムでデータを収集する。また、エッジコンピュータ2は、収集したデータを用いてPLC6〜8が配置された生産ラインを管理する。また、エッジコンピュータ2は、収集したデータおよび管理しているデータを、通信網4を介して上位コンピュータ3およびサーバ1に送る。また、エッジコンピュータ2は、上位コンピュータ3およびサーバ1から指示情報および生産ライン管理するための管理情報を受信する。また、エッジコンピュータ2は、PLC6〜8に指示情報および管理情報を送信する。エッジコンピュータ2がPLC6〜8に送信する指示情報および管理情報は、エッジコンピュータ2が生成したものであってもよいし、上位コンピュータ3またはサーバ1が生成したものであってもよい。
上位コンピュータ3は、エッジコンピュータ2を管理するコンピュータである。上位コンピュータ3は、1から複数のエッジコンピュータ2からデータを収集し、1から複数のエッジコンピュータ2が配置された生産ライン群を管理する。
サーバ1は、生産ラインを有した工場内に配置されて、データを収集するコンピュータである。サーバ1は、1から複数の上位コンピュータ3からデータを収集し、1から複数の上位コンピュータ3が配置された工場を管理する。
上位コンピュータ3またはサーバ1は、スキャダ(SCADA:Supervisory Control And Data Acquisition)であってもよいし、基幹系情報システムのERP(Enterprise Resource Planning)に適用されるコンピュータであってもよい。SCADAは、産業制御システムであり、コンピュータによってシステム監視およびプロセス制御を行う。SCADAは、データ収集および監視制御システムとも呼ばれる。
なお、サーバ1は、インターネットといった通信ネットワークを介して、サーバ1よりも上位側のコンピュータである上位情報処理装置に接続されてもよい。この場合のパラメータ調整システム100は、クラウドコンピューティングシステムを用いて、生産ラインを管理する。
また、パラメータ調整システム100内の何れかの装置がPLC6にパラメータ設定指示を送ってもよいし、パラメータ調整装置30以外の装置が、PLC6にパラメータ設定指示を送ってもよい。また、サーバ1に接続されている上位情報処理装置がPLC6にパラメータ設定指示を送ってもよい。
サーバ1に接続されている上位情報処理装置、上位コンピュータ3、エッジコンピュータ2、サーバ1、PLC6〜8およびPC9のうち、PLC6にパラメータ設定指示を送る装置が、後述するパラメータ調整装置30を備えている。パラメータ調整装置30は、リモートI/O20Xにパラメータ設定指示を送るとともに、リモートI/O20Xによるパラメータの調整処理を管理する装置である。なお、上位情報処理装置、サーバ1、上位コンピュータ3、エッジコンピュータ2、PLC6〜8およびPC9のうち、PLC6にパラメータ設定指示を送る装置が、パラメータ調整装置30の代わりに、パラメータ調整装置30の機能を実現するプログラムであるパラメータ調整プログラムを用いてもよい。
図2は、実施の形態にかかるパラメータ調整装置の構成を示す図である。パラメータ調整装置30は、パラメータ調整システム100内の上位情報処理装置、上位コンピュータ3、エッジコンピュータ2、サーバ1、PLC6〜8およびPC9の何れかに配置される。パラメータ調整装置30は、パラメータを調整する際に用いられる後述の設定値を管理するパラメータ管理部320Xと、パラメータの調整可能な範囲であるチューニング範囲を設定する調整設定部330とを備えている。また、パラメータ調整装置30は、調整が完了したパラメータの設定データを記憶する調整履歴記憶部340と、エラーの発生を予測するエラー発生予測部350とを備えている。また、パラメータ調整装置30は、パラメータ管理部320Xで記憶している情報に基づいて制御ユニット10にオートチューニングの指示を送る指示部310を備えている。
パラメータ管理部320Xは、メモリといった記憶手段を有しており、この記憶手段によってパラメータ調整の設定値を記憶する。パラメータ調整の設定値は、パラメータを調整する際に用いられる設定値と、調整されることによって実際に設定されたパラメータ値とを含んでいる。パラメータ管理部320Xが管理するパラメータ調整の設定値の例は、パラメータの初期値、パラメータのチューニング範囲、実際に設定されたパラメータ値である。パラメータの初期値およびパラメータのチューニング範囲は、リモートI/O20Xがパラメータをオートチューニングする際に用いられる。リモートI/O20Xは、パラメータをオートチューニングする際に、パラメータの初期値からパラメータを変化させて、適切なパラメータを探し出す。この場合において、リモートI/O20Xは、パラメータのチューニング範囲内でパラメータを変化させることによって、適切なパラメータを探し出す。パラメータは、リモートI/O20Xがパラメータのオートチューニングによって実際に設定したパラメータ設定値である。
実施の形態では、パラメータ調整装置30の指示部310が、パラメータ管理部320Xによって管理されている、パラメータの初期値およびチューニング範囲を用いてパラメータ設定指示を生成し、生成したパラメータ設定指示をリモートI/O20Xに送る。
調整設定部330は、ユーザからの指示に従って、パラメータのチューニング範囲を設定する。調整設定部330は、設定したチューニング範囲をパラメータ管理部320Xに格納する。
調整履歴記憶部340は、リモートI/O20Xがパラメータのオートチューニングによって設定したパラメータ値の履歴を記憶する。調整履歴記憶部340は、これまでに設定されたパラメータ値を記憶しておく。調整履歴記憶部340が記憶するパラメータ値の履歴は、パラメータの設定値そのものの履歴であってもよいし、パラメータの調整に用いた補正値の履歴であってもよい。
エラー発生予測部350は、調整履歴記憶部340が記憶するパラメータ値に基づいて、リモートI/O20Xといったオートチューニングの対象装置で発生するエラーを予測する。エラー発生予測部350は、これまでに収集した後述の収集情報に基づいて、通信処理の傾向、入力信号のチャタリングの傾向、二重化された信号の不一致の傾向、および入出力処理に用いられる信号のパルス幅の傾向を分析し、エラーを予測する。
指示部310は、パラメータ管理部320Xで記憶している情報に基づいて、制御ユニット10にオートチューニングの指示を送る。また、指示部310は、エラー発生予測部350による予測結果に基づいて、エラー通知の表示指示を表示装置といった外部装置に送信する。表示装置の一例は、プログラマブル表示器である。
つぎに、リモートI/O20Xの構成について説明する。図3は、実施の形態にかかるリモートI/Oの構成を示す図である。リモートI/O20Xは、制御ユニット10と通信を行なう通信インタフェース(IF:InterFace)21と、パラメータのオートチューニングを実行するマイクロコンピュータ22とを備えている。また、リモートI/O20Xは、マイクロコンピュータ22からの指示に従って出力機器51Xに信号を出力する出力回路23Xと、入力機器52Xによって入力される信号を受付けてマイクロコンピュータ22に送る入力回路25Xとを備えている。また、リモートI/O20Xは、出力回路23Xおよび出力機器51Xから送られてくる出力信号のパルスを検出するパルス検出回路24Xと、テスト用の信号を送出して入力機器52Xに送るテスト出力回路26とを備えている。
通信IF21は、制御ユニット10およびマイクロコンピュータ22に接続されている。通信IF21は、マイクロコンピュータ22がオートチューニングした通信パラメータを用いて制御ユニット10との間の通信を実行する。通信IF21は、制御ユニット10からの指示をマイクロコンピュータ22に送り、マイクロコンピュータ22からの信号を制御ユニット10に送る。制御ユニット10からリモートI/O20Xへの指示の例は、パラメータ設定指示である。このパラメータ設定指示は、パラメータの初期値およびパラメータのチューニング範囲を含んでいる。
マイクロコンピュータ22から制御ユニット10への情報は、マイクロコンピュータ22が収集した情報である。マイクロコンピュータ22が収集した情報の例は、入力回路25Xが入力機器52Xから取得した情報、またはマイクロコンピュータ22がオートチューニングによって取得した通信パラメータおよび入出力パラメータである。
マイクロコンピュータ22は、パラメータ設定指示に基づいて、パラメータのオートチューニングとパラメータの管理とを実行する。マイクロコンピュータ22は、リモートI/O20Xが用いる通信パラメータのオートチューニングを行うオートチューニング部31Yと、リモートI/O20Xが用いる入出力パラメータのオートチューニングを行うオートチューニング部31Xとを備えている。また、マイクロコンピュータ22は、オートチューニング部31X,31Yがオートチューニングによって取得した通信パラメータおよび入出力パラメータを管理するパラメータ管理部32Aを備えている。
オートチューニング部31Yは、通信IF21を介して制御ユニット10との間で通信を行なうことによって通信パラメータのオートチューニングを行う。また、オートチューニング部31Xは、出力回路23X、パルス検出回路24X、入力回路25Xおよびテスト出力回路26を用いて入出力パラメータのオートチューニングを行う。
オートチューニング部31Xは、入出力パラメータのうちの出力パラメータをオートチューニングする際に、出力回路23Xに出力信号を出力させる。これにより、出力回路23Xは出力信号を出力機器51Xに出力する。オートチューニング部31Xは、出力パラメータをオートチューニングする際に、パルス検出回路24Xが検出した出力信号を受け取り、この出力信号と、出力回路23Xに出力させた出力信号とに基づいて出力パラメータをオートチューニングする。
また、オートチューニング部31Xは、入出力パラメータのうちの入力パラメータをオートチューニングする際に、テスト出力回路26に出力信号を出力させる。これにより、テスト出力回路26は、テスト用の出力信号を入力機器52Xに出力する。オートチューニング部31Xは、入力パラメータをオートチューニングする際に、入力回路25Xに入力された入力信号を受け取り、この入力信号に基づいて入力パラメータをオートチューニングする。
パラメータ管理部32Aは、パラメータ調整装置30のパラメータ管理部320Xと同様の機能を有している。パラメータ管理部32Aは、パラメータの初期値、チューニング範囲、および設定されたパラメータ値を記憶する。
マイクロコンピュータ22は、リモートI/O20Xの起動時にパラメータのオートチューニングを実行してもよいし、リモートI/O20Xの動作中にパラメータのオートチューニングを実行してもよい。
なお、オートチューニング部31X,31Yは、パラメータ管理部32Aからの指示に基づいて、オートチューニングを実行してもよい。この場合、オートチューニング部31X,31Yは、パラメータ管理部32Aから送られてくる出力信号または入力信号といった信号を用いてオートチューニングを実行する。
また、オートチューニング部31X,31Yは、パラメータ調整装置30からの指示に基づいて、オートチューニングを実行してもよい。この場合、オートチューニング部31X,31Yは、パラメータ調整装置30から送られてくる後述のチューニング範囲といった信号を用いてオートチューニングを実行する。また、オートチューニング部31X,31Yは、パラメータ調整装置30で指定された項目のパラメータ値をオートチューニングしてもよい。
通信IF21は、オートチューニングが完了した後に通常動作を実行する際には、オートチューニングされた通信パラメータを用いて制御ユニット10との間で通信を実行する。
出力回路23Xは、オートチューニングが完了した後に通常動作を実行する際には、オートチューニングされた入出力パラメータを用いて出力機器51Xに信号を出力する。入出力パラメータが出力信号のパルス幅を調整するパラメータである場合、出力回路23Xは、入出力パラメータを用いて、出力信号のパルス幅を調整したうえで出力機器51Xに出力信号を出力する。
また、入力回路25Xは、オートチューニングが完了した後の通常動作を実行する際には、オートチューニングされた入出力パラメータを用いて入力機器52Xからの信号を取り込む。入出力パラメータがフィルタ時間である場合、入力回路25Xは、入出力パラメータを用いて入力信号にフィルタをかけたうえで、入力信号を取り込む。
制御ユニット10は、制御ユニット10が用いる通信パラメータのオートチューニングを行うオートチューニング部31Zと、オートチューニング部31Zがオートチューニングによって取得した通信パラメータを管理するパラメータ管理部32Bとを備えている。オートチューニング部31Zは、オートチューニングを行う際には、リモートI/O20Xにチューニングの開始命令を送り、その後、リモートI/O20Xから、リモートI/O20Xが設定したパラメータを受信する。
つぎに、オートチューニング処理について説明する。まず、通信パラメータのオートチューニング処理について説明し、その後、入出力パラメータのオートチューニング処理について説明する。オートチューニング部31Y,31Zがオートチューニングする通信パラメータの例は、フィールドネットワーク11を介した通信の際のタイムアウト時間である。
(通信のタイムアウト時間)
マスタ局である制御ユニット10およびリモート局であるリモートI/O20Xは、お互いに応答時間の監視を実施する。制御ユニット10、リモートI/O20Xおよび通信経路であるフィールドネットワーク11の何れかに故障が発生した場合、リモートI/O20Xは、出力を初期状態にする。初期状態の例は、出力をオフにした状態である。リモートI/O20Xが動作させる動力源の中には、故障が発生した際に、すぐに停止させたい動力源がある。リモートI/O20Xは、すぐに停止させたい動力源を動作させている際に、故障を検出すると、動力源を停止させることによって、安全な状態を確保する。このため、オートチューニング部31Yは、応答時間を監視するためのタイムアウト時間を、通信パラメータに設定する。オートチューニング部31Yが設定するタイムアウト時間は、所望の通信が可能となる安全通信を実現するために、通信処理を監視しておく時間である。
図4は、実施の形態にかかる、タイムアウト時間の設定方法を説明するための図である。図4に示すグラフの横軸はタイムアウト時間であり、縦軸はエラーパケット数である。リモートI/O20Xのオートチューニング部31Yは、通信パラメータのオートチューニングを行う際に、制御ユニット10のオートチューニング部31Zとの間でパケットの送受信を行う。この場合において、オートチューニング部31Y,31Zは、パケットの抜け、パケット到着の順番のずれ又はパケットの破壊といったエラーパケットを検出する場合がある。このような場合、オートチューニング部31Y,31Zは、エラーパケットがなくなるよう、パケットの再送受信を行う。このときの再送受信を終了させるまでのタイムアウト時間と、エラーパケット数との関係が図4に示されている。
図4に示すように、タイムアウト時間が長く設定されると、送受信の回数が増えるので、エラーパケット数は減少する。オートチューニング部31Y,31Zは、エラーパケット数が、基準数よりも少なくなると通信処理を合格と判定して、この時のタイムアウト時間T1を通信パラメータに設定する。なお、オートチューニング部31Y,31Zは、送信された全パケット数に対するエラーパケット数の割合が、基準値よりも少なくなると通信処理を合格と判定して、この時のタイムアウト時間を通信パラメータに設定してもよい。
このように、オートチューニング部31Y,31Zは、実環境に応じて通信パラメータをオートチューニングする。パラメータ調整システム100では、エラーパケット数は、フィールドネットワーク11に接続される装置の数によって変動する。このため、実施の形態のオートチューニング部31Y,31Zは、エラーパケット数に基づいてタイムアウト時間T1を決定し、このタイムアウト時間T1を通信パラメータに設定する。これにより、オートチューニング部31Y,31Zは、実環境に合わせたオートチューニングが可能となる。この結果、ユーザは、フィールドネットワーク11に接続される他の装置のパラメータ値を参照しながら、タイムアウト時間T1といったタイムアウト時間を通信パラメータに設定する必要がなくなる。パラメータ管理部32Aは、オートチューニング部31Yがオートチューニングした通信パラメータを格納し、パラメータ管理部32Bは、オートチューニング部31Zがオートチューニングした通信パラメータを格納する。
また、パラメータ管理部32A,32Bは、図4に示したような、タイムアウト時間とエラーパケット数との関係を記憶しておく。なお、タイムアウト時間とエラーパケット数との関係は、パラメータ管理部32Aが取得した関係と、パラメータ管理部32Bが取得した関係とで異なる。これは、パラメータ管理部32Aからパラメータ管理部32Bへ送られるパケットと、パラメータ管理部32Bからパラメータ管理部32Aへ送られるパケットと、でパケットの送信方向が異なるからである。
パラメータ管理部32A,32Bは、通信パラメータをオートチューニングする際に収集した収集情報をパラメータ調整装置30に送る。パラメータ管理部32A,32Bがパラメータ調整装置30に送る収集情報の一例は、タイムアウト時間とエラーパケット数との関係である。パラメータ調整装置30は、PLC6〜8、PC9、リモートI/O20X、エッジコンピュータ2、上位コンピュータ3またはサーバ1に配置されている。
パラメータ調整装置30のエラー発生予測部350は、収集情報に基づいて、制御ユニット10とリモートI/O20Xとの間の通信処理の傾向を分析する。収集情報がタイムアウト時間とエラーパケット数との関係である場合、エラー発生予測部350は、制御ユニット10とリモートI/O20Xとの間の通信の応答時間がタイムアウト時間T1を超えてしまうタイミングを予測する。このとき、エラー発生予測部350は、これまでの通信処理の劣化具合、劣化の進行度合い、これまでの収集情報といった種々の情報に基づいて、タイムアウト時間T1を超えるタイミングを予測する。そして、パラメータ調整装置30の指示部310は、予測結果を示すガイダンスをユーザに通知する。このとき、指示部310は、液晶モニタといった表示装置に、タイムアウト時間T1を超えるタイミングを表示することによって、予測結果をユーザに通知する。これにより、パラメータ調整装置30は、パラメータ値の再チューニングをユーザに促す。
なお、制御ユニット10およびリモートI/O20Xは、2つ以上の通信パラメータを用いてフィールドネットワーク11間で通信を実行する場合がある。このような場合であっても、オートチューニング部31Y,31Zは、種々の条件で通信処理を実行することによって2つ以上の通信パラメータのオートチューニングを実行する。
具体的には、オートチューニング部31Y,31Zは、2つの通信パラメータのオートチューニングを実行する場合、2つの通信パラメータの各パラメータ値が何れの組合せの場合に、所望の通信処理に近づくかを判定する。そして、オートチューニング部31Y,31Zは、所望の通信処理を実行することができる通信パラメータの組合せを、パラメータ管理部32A,32Bに記憶させる。なお、オートチューニング部31Xは、オートチューニング部31Y,31Zと同様に、2つ以上の入出力パラメータのオートチューニングを実行してもよい。
つぎに、入出力パラメータのオートチューニング処理について説明する。オートチューニング部31Xがオートチューニングする入出力パラメータの例は、以下の(1)から(4)である。
(1)入力信号にチャタリングが発生する場合の入力信号へのフィルタ時間
(2)二重化された入力信号が不一致な場合の入力信号へのフィルタ時間
(3)入力のダークテスト機能で用いる出力パルスのパルス幅
(4)出力のダークテスト機能で用いる出力パルスのパルス幅
(入力信号にチャタリングが発生する場合のフィルタ時間)
まず、オートチューニング部31Xが、チャタリングが発生した入力信号のフィルタ時間をオートチューニングする場合の処理について説明する。入力機器52Xがボタンといった機械接点である場合、リモートI/O20Xは、チャタリングが発生した入力信号を受信する。リモートI/O20Xが、このチャタリングした入力信号を受けて、そのまま入力信号を制御ユニット10へ送信すると、制御ユニット10は、チャタリングした状態の入力信号を用いてロジック演算を実行してしまう。このような場合、PLCシステムが意図した動作とならない場合がある。このため、実施の形態では、リモートI/O20Xの入力回路25Xが、チャタリング信号が発生している時間だけ、チャタリング信号をフィルタリングする処理であるチャタリングフィルタ処理を実行する。換言すると、リモートI/O20Xは、チャタリング信号をフィルタリングするフィルタ時間を設け、このフィルタ時間を入出力パラメータに設定する。
図5は、実施の形態にかかるチャタリングフィルタ処理を説明するための図である。図5では、リモートI/O20Xの一例であるリモートI/O20Aと、入力機器52Xの一例である入力機器52Aとを図示している。リモートI/O20Aは、入力回路25Xの一例である入力回路25Aと、オートチューニング部31Xの一例であるオートチューニング部31Aとを備えている。なお、図5では、リモートI/O20Aが備える構成要素のうち、入力回路25Aおよびオートチューニング部31A以外の構成要素を図示省略している。
入力機器52Aの例は、ボタンである。入力機器52Aは、信号源71Aに接続されており、信号源71Aからの信号が入力される。入力機器52Aは、ボタンがユーザによって押下されると、信号源71Aと入力回路25Aとを接続し、信号源71Aからの入力信号101Aを入力回路25Aに入力する。
これにより、入力回路25Aは、入力機器52Aからの入力信号101Aをオートチューニング部31Aに送る。そして、オートチューニング部31Aは、チャタリングの発生している時間であるチャタリング時間を検出する。
図6は、実施の形態にかかる、チャタリング時間とフィルタ時間との関係を説明するための図である。オートチューニング部31Aは、入力信号101Aの入力が開始されてから一定時間の間、入力信号101Aに発生するチャタリングを検出する。このチャタリングの発生している時間がチャタリング時間である。
オートチューニング部31Aは、チャタリング時間よりも長い時間をフィルタ時間に設定する。具体的には、オートチューニング部31Aは、チャタリング時間よりも特定の時間だけ長い時間をフィルタ時間に設定する。
オートチューニング部31Aが設定するフィルタ時間は、入力回路25Aが入力信号101Aを受付けない時間である。オートチューニング部31Aは、設定したフィルタ時間を入力回路25Aに送る。そして、入力回路25Aがフィルタ時間を設定する。これにより、入力回路25Aは、入力機器52Aから入力信号101Aが入力された場合に、フィルタ時間だけ、入力信号101Aを受付けず、フィルタ時間の経過後に入力信号101Aの受付けを開始する。
このように、入力信号101Aにチャタリングが発生する場合、オートチューニング部31Aがチャタリングのフィルタ時間を入出力パラメータの1つに設定する。そして、リモートI/O20Aの入力回路25Aが、フィルタ時間だけ入力信号101Aをフィルタリングする。入力信号101Aがフィルタ時間だけフィルタリングされた信号が、フィルタ後信号である。パラメータ調整システム100では、チャタリング時間は、入力機器52Aなどの経年劣化によって変動する。このため、オートチューニング部31Aは、チャタリング時間に基づいてフィルタ時間を決定し、このフィルタ時間を入出力パラメータの1つに設定する。これにより、オートチューニング部31Aは、実環境に合わせたオートチューニングが可能となる。この結果、ユーザは、チャタリング時間に対するフィルタ時間を入出力パラメータに設定する必要がなくなる。
このように、オートチューニング部31Aは、チャタリングのフィルタ時間を実環境に応じてオートチューニングする。そして、パラメータ管理部32Aは、オートチューニング部31Aがオートチューニングした入出力パラメータを管理する。
パラメータ管理部32Aは、これまでに検出されたチャタリング時間と、最新のフィルタ時間とを記憶しておく。そして、パラメータ管理部32Aは、これまでに記憶しておいたチャタリング時間およびフィルタ時間をパラメータ調整装置30に送る。これにより、パラメータ調整装置30のエラー発生予測部350は、チャタリング時間の履歴に基づいて、入力機器52Aのチャタリングの傾向を分析する。そして、エラー発生予測部350は、この後のチャタリング時間の推移と、チャタリング時間がフィルタ時間を超えてしまう時期とを予測する。そして、パラメータ調整装置30は、予測結果を示すガイダンスをユーザに通知する。このとき、パラメータ調整装置30は、液晶モニタといった表示装置に、チャタリング時間の推移予測を表示することによって、予測結果をユーザに通知する。これにより、パラメータ調整装置30は、パラメータ値の再チューニングをユーザに促す。
なお、マイクロコンピュータ22が、チャタリングフィルタ処理を実行してもよい。この場合、オートチューニング部31Aは、オートチューニングしたフィルタ時間をマイクロコンピュータ22に送り、マイクロコンピュータ22がフィルタ時間を設定する。マイクロコンピュータ22は、フィルタ時間の間、入力信号101Aをフィルタリングし、フィルタリングした入力信号101Aを通信IF21を介して制御ユニット10に送る。
(二重化された入力信号が不一致な場合のフィルタ時間)
つぎに、オートチューニング部31Xが、不一致な2つの入力信号をフィルタリングするためのフィルタ時間をオートチューニングする場合の処理について説明する。PLCシステムは、入力機器52Xからの入力信号を二重化し、二重化された入力信号の値の不一致を検出することで、入力機器52Xまたは入力機器52Xに接続された入力配線の故障を検出する。
入力機器52Xが、ドアの開閉を検出する2つのセンサである場合、2つのセンサは、ドアの開閉を検出すると、検出したことを示す入力信号を入力回路25Xに入力する。このようなドアが、経年劣化によって歪みを生じると、2つのセンサがドアの開閉を検出するタイミングにずれが生じる場合がある。このような場合、入力回路25Xは、2つのセンサから異なるタイミングで入力信号を受信することとなる。
また、二重化された入力信号が変化する際には、入力機器52Xが正常な状態であっても、入力機器52Xの動作ばらつきによって瞬間的に2つの入力信号が異なる値となる場合がある。このとき、リモートI/O20Xが、二重化入力の不一致を検出してしまうと、リモートI/O20Xは入力機器52Xが故障したと誤検出してしまう。
このため、実施の形態では、リモートI/O20Xの入力回路25Xが、二重化された入力信号が不一致な時間だけ入力信号をフィルタリングする処理である不一致信号フィルタ処理を実行する。換言すると、リモートI/O20Xは、二重化入力の不一致状態をフィルタするフィルタ時間を設け、このフィルタ時間を入出力パラメータに設定する。
図7は、実施の形態にかかる不一致信号フィルタ処理を説明するための図である。図7では、リモートI/O20Xの一例であるリモートI/O20Bと、入力機器52Xの一例である入力機器52Bとを図示している。リモートI/O20Bは、入力回路25Xの例である入力回路25a,25bと、オートチューニング部31Xの一例であるオートチューニング部31Bと、を備えている。なお、図7では、リモートI/O20Bが備える構成要素のうち、入力回路25a,25bおよびオートチューニング部31B以外の構成要素を図示省略している。また、図7では、入力機器52Bがボタンである場合を図示しているが、入力機器52Bは、何れの機器であってもよい。
入力機器52Bは、信号源71a,71bに接続されており、信号源71a,71bからの信号が入力される。入力機器52Bは、ボタンがユーザによって押下されると、信号源71aと入力回路25aとを接続し、信号源71bと入力回路25bとを接続する。これにより、入力機器52Bは、信号源71aからの入力信号101aを入力回路25aに入力し、信号源71bからの入力信号101bを入力回路25bに入力する。
入力回路25aは、入力機器52Bからの入力信号101aをオートチューニング部31Bに送り、入力回路25bは、入力機器52Bからの入力信号101bをオートチューニング部31Bに送る。そして、オートチューニング部31Bは、入力信号101a,101bとで信号の不一致が生じている時間である二重化不一致時間を検出する。オートチューニング部31Bは、二重化不一致時間の間、入力信号101a,101bを無視させるためのフィルタ時間を入力回路25a,25bに設定する。この後、入力回路25a,25bは、入力機器52Bから入力回路25a,25bが送られてくると、フィルタ時間の間、入力信号101a,101bを無視した信号であるフィルタ後信号102をオートチューニング部31Bに送る。そして、オートチューニング部31Bは、フィルタ後信号102を出力する。
図8は、実施の形態にかかる、二重化不一致時間とフィルタ時間との関係を説明するための図である。オートチューニング部31Bは、入力信号101a,101bの入力が開始されてから一定時間の間、入力信号101a,101bの間に発生する信号の不一致を検出する。この不一致の発生している時間が二重化不一致時間である。
オートチューニング部31Bは、二重化不一致時間よりも長い時間をフィルタ時間に設定する。具体的には、オートチューニング部31Bは、二重化不一致時間よりも特定の時間だけ長い時間をフィルタ時間に設定する。
オートチューニング部31Bが設定するフィルタ時間は、入力回路25a,25bが入力信号101a,101bを受付けない時間である。オートチューニング部31Bは、設定したフィルタ時間を入力回路25a,25bに送る。そして、入力回路25a,25bがフィルタ時間を設定する。これにより、入力回路25aは、入力機器52Bから入力信号101aが入力された場合に、フィルタ時間だけ入力信号101aを受付けず、入力回路25bは、入力機器52Bから入力信号101bが入力された場合に、フィルタ時間だけ入力信号101bを受付けない。そして、入力回路25a,25bは、フィルタ時間の経過後に入力信号101a,101bの受付けを開始する。
このように、入力信号101a,101bに不一致が発生する場合、オートチューニング部31Bが二重化不一致時間よりも長いフィルタ時間を入出力パラメータの1つに設定する。そして、リモートI/O20Bの入力回路25a,25bが、入力信号101a,101bの入力を開始した後、フィルタ時間だけ入力信号101a,101bをフィルタリングする。これにより、入力回路25a,25bは、入力信号101a,101bをフィルタリングしたフィルタ後信号102を、オートチューニング部31Bに送り、オートチューニング部31Bがフィルタ後信号102を出力する。フィルタ後信号102は、入力信号101a,101bのうち、入力開始からフィルタ時間だけ信号が無視された信号である。パラメータ調整システム100では、二重化不一致時間は、入力機器52Bなどの経年劣化によって変動する。このため、オートチューニング部31Bは、二重化不一致時間に基づいてフィルタ時間を決定し、このフィルタ時間を入出力パラメータの1つに設定する。これにより、オートチューニング部31Bは、実環境に合わせたオートチューニングが可能となる。この結果、ユーザは、二重化不一致時間に対するフィルタ時間を入出力パラメータに設定する必要がなくなる。
このように、オートチューニング部31Bは、二重化された信号のフィルタ時間を実環境に応じてオートチューニングする。そして、パラメータ管理部32Aは、オートチューニング部31Bがオートチューニングした入出力パラメータを管理する。
また、パラメータ管理部32Aは、これまでに検出された二重化不一致時間と、最新のフィルタ時間とを記憶しておく。そして、パラメータ管理部32Bは、これまでに記憶しておいた二重化不一致時間およびフィルタ時間をパラメータ調整装置30に送る。これにより、パラメータ調整装置30のエラー発生予測部350は、二重化不一致時間の履歴に基づいて、二重化された入力信号の不一致の傾向を分析する。そして、エラー発生予測部350は、この後の二重化不一致時間の推移と、二重化不一致時間がフィルタ時間を超えてしまう時期とを予測する。そして、パラメータ調整装置30は、予測結果を示すガイダンスをユーザに通知する。このとき、パラメータ調整装置30は、液晶モニタといった表示装置に、二重化不一致時間の推移予測を表示することによって、予測結果をユーザに通知する。これにより、パラメータ調整装置30は、パラメータ値の再チューニングをユーザに促す。
なお、マイクロコンピュータ22が、不一致信号フィルタ処理を実行してもよい。この場合、オートチューニング部31Bは、オートチューニングしたフィルタ時間をマイクロコンピュータ22に送り、マイクロコンピュータ22がフィルタ時間を設定する。マイクロコンピュータ22は、フィルタ時間の間、入力信号101a,101bをフィルタリングし、フィルタリングした入力信号101a,101bを通信IF21を介して制御ユニット10に送る。
(入力のダークテスト機能で用いる出力パルスのパルス幅)
つぎに、オートチューニング部31Xが、入力のダークテスト機能で用いる出力パルスのパルス幅をオートチューニングする処理について説明する。オートチューニング部31Xは、入力のダークテスト処理を実行するダークテスト機能を有している。入力のダークテスト機能は、入力機器52Xまたは入力配線の故障を検出する機能である。入力のダークテスト機能は、入力機器52Xへパルス信号を出力し、このパルス信号が入力機器52Xから正しくリモートI/O20Xに入力されるか否かをテストする機能である。
リモートI/O20Xが、入力機器52Xに出力するパルスのパルス幅を短くすると、入力機器52Xまたは入力配線の電気的特性が原因で、入力機器52Xに入力されるパルスの波形が劣化する場合がある。このような場合、入力機器52Xにパルスが正しく入力されず、リモートI/O20Xが故障を誤検出する可能性がある。しかし、リモートI/O20Xは、出力するパルスのパルス幅を長くすると、入力機器52Xからの入力信号を受けられない時間が長くなるので、PLCシステムの応答速度が低下する。このため、実施の形態では、リモートI/O20Xが、入力のダークテスト機能で用いる出力パルスのパルス幅を適切な時間に調整し、この調整後のパルス幅を入出力パラメータに設定する。
図9は、実施の形態にかかる入力のダークテスト処理を説明するための図である。図9では、リモートI/O20Xの一例であるリモートI/O20Cと、入力機器52Xの一例である入力機器52Cとを図示している。リモートI/O20Cは、入力回路25Xの一例である入力回路25Cと、オートチューニング部31Xの一例であるオートチューニング部31Cと、テスト出力回路26とを備えている。なお、図9では、リモートI/O20Cが備える構成要素のうち、入力回路25C、テスト出力回路26およびオートチューニング部31C以外の構成要素を図示省略している。また、図9では、入力機器52Cがボタンである場合を図示しているが、入力機器52Cは、何れの機器であってもよい。
テスト出力回路26は、信号源である電源73Cを備えており、電源73Cがテスト信号71Cを出力する。テスト出力回路26は、オートチューニング部31Cに接続されており、オートチューニング部31Cから出力されるパルスに従って、入力機器52Cにテスト信号71Cを出力する。
入力機器52Cは、テスト出力回路26に接続されており、テスト出力回路26からのテスト信号71Cが入力される。入力機器52Cは、ボタンがユーザによって押下されると、テスト出力回路26と入力回路25Cとを接続し、テスト信号71Cである入力信号101Cを入力回路25Cに入力する。
これにより、入力回路25Cは、入力機器52Cからの入力信号101Cをオートチューニング部31Cに送る。そして、オートチューニング部31Cは、入力信号101Cを検出する。このとき、オートチューニング部31Cは、テスト出力回路26に出力するパルスのパルス幅を掃引し、パルスが正しく入力回路25Cに入力されるパルス幅を記録する。オートチューニング部31Cは、パルスを正しく入力回路25Cに入力することができるパルス幅のパルスをテスト出力回路26への出力パルスに設定する。この後、入力回路25Cは、パルスを正しく検出することができる入力信号101Cを受信すると、この入力信号101Cをオートチューニング部31Cに送る。そして、オートチューニング部31Cは、入力信号101Cを出力する。
図10は、実施の形態にかかる、出力パルスと入力信号との関係を説明するための図である。図10では、オートチューニング部31Cが出力した出力パルスと、入力回路25Cに入力された入力信号101Cとを示している。
テスト出力回路26は、テスト信号71Cの出力をオンにしておき、これにより、入力機器52Cにテスト信号71Cを入力する。そして、テスト出力回路26は、オートチューニング部31Cから出力パルスが出力された時間だけテスト信号71Cをオフにする。これにより、オートチューニング部31Cは、テスト信号71Cがオンの間は、オンの入力信号101Cを検出し、オートチューニング部31Cが出力パルスを出力したタイミングでオフの入力信号101Cを検出する。
オートチューニング部31Cは、テスト出力回路26に出力した出力パルスと、入力回路25Cに入力された入力信号101Cのオフのパルスとを比較する。具体的には、オートチューニング部31Cは、テスト出力回路26に出力したパルスのパルス幅と、入力信号101Cのパルス幅とを比較する。
そして、オートチューニング部31Cは、テスト出力回路26に出力した複数のパルスのパルス幅の中から、入力信号101Cのパルス幅がリモートI/O20Cで誤検出されないパルス幅を決定する。この場合において、オートチューニング部31Cは、リモートI/O20Cで誤検出されないパルスの中から最も短いパルス幅のパルスを選択する。オートチューニング部31Cは、選択したパルスのパルス幅を入出力パラメータに設定する。パラメータ調整システム100では、リモートI/O20Cが入力信号101Cを誤検出しないテスト信号71Cのパルス幅は、リモートI/O20Cに接続される周辺機器の影響などで変動する。このため、実施の形態のオートチューニング部31Cは、テスト信号71Cおよび入力信号101Cに基づいて、入力のダークテスト機能で用いる出力パルスのパルス幅を決定し、このパルス幅を入出力パラメータの1つに設定する。これにより、オートチューニング部31Cは、実環境に合わせたオートチューニングが可能となる。この結果、ユーザは、入力のダークテスト機能で用いる出力パルスのパルス幅を入出力パラメータに設定する必要がなくなる。
このように、オートチューニング部31Cは、入力のダークテスト機能で用いる出力パルスのパルス幅を実環境に応じてオートチューニングする。そして、パラメータ管理部32Aは、オートチューニング部31Cがオートチューニングした入出力パラメータを管理する。
また、パラメータ管理部32Aは、入力のダークテスト処理で、これまでに設定した出力パルスのパルス幅を記憶しておく。そして、パラメータ管理部32Aは、これまでに記憶しておいたパルス幅をパラメータ調整装置30に送る。これにより、パラメータ調整装置30のエラー発生予測部350は、パルス幅の履歴に基づいて、入力機器52CからリモートI/O20Cに入力されるパルスのパルス幅の傾向を分析する。そして、パラメータ調整装置30は、この後、検出パルスのパルス幅が基準値を満たさなくなる時期を予測する。さらに、パラメータ調整装置30は、予測結果を示すガイダンスをユーザに通知する。このとき、パラメータ調整装置30は、液晶モニタといった表示装置に、パルス幅の推移予測を表示することによって、予測結果をユーザに通知する。これにより、パラメータ調整装置30は、パラメータ値の再チューニングをユーザに促す。
なお、オートチューニング部31Cは、テスト出力回路26に出力したパルスの出力タイミングと、入力信号101Cの検出タイミングとのタイミングのずれに基づいて、入力のダークテスト機能で用いる出力パルスの出力タイミングをオートチューニングしてもよい。
(出力のダークテスト機能で用いる出力パルスのパルス幅)
つぎに、オートチューニング部31Xが、出力のダークテスト機能で用いる出力パルスのパルス幅をオートチューニングする処理について説明する。オートチューニング部31Xは、出力のダークテスト処理を実行するダークテスト機能を有している。出力のダークテスト機能は、出力機器51Xまたは出力配線の故障を検出する機能である。出力のダークテスト機能は、出力機器51Xへパルス信号を出力し、このパルス信号が後述のパルス検出回路24Dに正しく入力されるか否かをテストする機能である。
リモートI/O20Xが、出力機器51Xに出力するパルスのパルス幅を短くすると、出力機器51Xまたは出力配線の電気的特性が原因で、出力機器51Xに入力されるパルスの波形が劣化する場合がある。このような場合、パルス検出回路24Xがパルスを正しく検出できず、リモートI/O20Xが故障を誤検出する可能性がある。しかし、リモートI/O20Xは、出力するパルスのパルス幅を長くすると、出力機器51Xがパルスの影響を受けて誤作動する場合がある。このため、実施の形態では、リモートI/O20Xが、出力のダークテスト機能で用いる出力パルスのパルス幅を適切な時間に調整し、この調整後のパルス幅を入出力パラメータに設定する。
図11は、実施の形態にかかる出力のダークテスト処理の第1の処理例を説明するための図である。図11では、リモートI/O20Xの一例であるリモートI/O20Dと、出力機器51Xの一例である出力機器51Dとを図示している。リモートI/O20Dは、出力回路23Xの一例である出力回路23Dと、オートチューニング部31Xの一例であるオートチューニング部31Dと、パルス検出回路24Xの一例であるパルス検出回路24Dとを備えている。なお、図11では、リモートI/O20Dが備える構成要素のうち、パルス検出回路24D、出力回路23Dおよびオートチューニング部31D以外の構成要素を図示省略している。
リモートI/O20Dと出力機器51Dとが接続される場合、出力機器51Dは、出力機器51Dが出力する信号をパルス検出回路24Dに送る必要がない。このため、出力機器51Dの出力側の配線は、パルス検出回路24Dに接続しない。
出力回路23Dは、信号源である電源73Dを備えており、電源73Dが出力信号76Dを出力する。出力回路23Dは、オートチューニング部31Dに接続されており、オートチューニング部31Dから出力される出力信号76Dのパルスに従って、出力機器51Dに出力信号76Dを出力する。このとき、オートチューニング部31Dは、パラメータ管理部32Aから送られてくる出力信号76Dを、出力回路23Dに送る。
出力機器51Dは、負荷75Dを有している。出力機器51Dは、出力回路23Dに接続されており、出力回路23Dからの出力信号76Dが負荷75Dに印加される。出力機器51Dは、一方が出力回路23Dに接続され、他方が0Vに接続されている。また、出力回路23Dは、パルス検出回路24Dに接続されている。この構成により、パルス検出回路24Dは、出力回路23Dと出力機器51Dとの間に不具合がなければ、出力信号76Dを検出する。
パルス検出回路24Dは、出力回路23Dからの出力信号76Dをオートチューニング部31Dに送る。そして、オートチューニング部31Dは、出力信号76Dを取得する。このとき、オートチューニング部31Dは、出力回路23Dに出力するパルスのパルス幅を掃引し、パルスがパルス検出回路24Dで正しく検出できるパルス幅を記録する。
図12は、実施の形態にかかる、出力パルスと検出パルスとの第1の関係を説明するための図である。図12では、オートチューニング部31Dが出力した出力パルスと、パルス検出回路24Dが検出した検出パルスとを示している。
出力回路23Dは、出力信号76Dの出力をオンにしておき、これにより、出力機器51Dに出力信号76Dを入力する。そして、出力回路23Dは、オートチューニング部31Dから出力パルスが出力された時間だけ出力信号76Dをオフにする。これにより、パルス検出回路24Dは、出力信号76Dがオンの間は、オンの信号を検出し、オートチューニング部31Dが出力パルスを出力したタイミングでオフの信号を検出する。
オートチューニング部31Dは、出力回路23Dに出力した出力パルスと、パルス検出回路24Dで検出された検出パルスとを比較する。具体的には、オートチューニング部31Dは、出力回路23Dに出力した出力パルスのパルス幅と、パルス検出回路24Dで検出された出力信号76Dの検出パルスのパルス幅とを比較する。
そして、オートチューニング部31Dは、出力回路23Dに出力した複数のパルスのパルス幅の中から、パルス検出回路24Dで検出パルスが誤検出されないパルスのパルス幅を決定する。この場合において、オートチューニング部31Dは、パルス検出回路24Dで誤検出されないパルス幅の中から最も短いパルス幅を選択する。オートチューニング部31Dは、選択したパルス幅を入出力パラメータに設定する。パラメータ調整システム100では、リモートI/O20Dが出力信号76Dを誤検出しない出力信号76Dのパルス幅は、リモートI/O20Dに接続される周辺機器の影響などで変動する。このため、実施の形態のオートチューニング部31Dは、出力回路23Dに出力した出力パルスのパルス幅、およびパルス検出回路24Dで検出された出力信号76Dの検出パルスのパルス幅に基づいて、出力のダークテスト機能で用いる出力パルスのパルス幅を決定し、このパルス幅を入出力パラメータの1つに設定する。これにより、オートチューニング部31Dは、実環境に合わせたオートチューニングが可能となる。この結果、ユーザは、出力のダークテスト機能で用いる出力パルスのパルス幅を入出力パラメータに設定する必要がなくなる。
このように、オートチューニング部31Dは、出力のダークテスト機能で用いる出力パルスのパルス幅を実環境に応じてオートチューニングする。そして、パラメータ管理部32Aは、オートチューニング部31Dがオートチューニングした入出力パラメータを管理する。
また、パラメータ管理部32Aは、出力のダークテスト処理でこれまでに設定したパルス幅を記憶しておく。そして、パラメータ管理部32Aは、これまでに記憶しておいたパルス幅をパラメータ調整装置30に送る。これにより、パラメータ調整装置30のエラー発生予測部350は、パルス幅の履歴に基づいて、出力回路23Dから出力機器51Dに出力されるパルスのパルス幅の傾向を分析する。そして、パラメータ調整装置30は、この後、検出パルスのパルス幅が基準値を満たさなくなる時期を予測する。さらに、パラメータ調整装置30は、予測結果を示すガイダンスをユーザに通知する。このとき、パラメータ調整装置30は、液晶モニタといった表示装置に、パルス幅の推移予測を表示することによって、予測結果をユーザに通知する。これにより、パラメータ調整装置30は、パラメータ値の再チューニングをユーザに促す。
なお、オートチューニング部31Dは、出力回路23Dに出力したパルスの出力タイミングと、検出パルスの検出タイミングとのタイミングのずれに基づいて、出力のダークテスト機能で用いる出力パルスの出力タイミングをオートチューニングしてもよい。
リモートI/O20Xに適用される出力回路には種々のタイプがある。リモートI/O20Xは、電源73D側に出力回路23Xが配置されてもよいし、電源73D側と0V側との両方に出力回路23Xが配置されてもよい。電源73D側に出力回路23Xが配置される場合のリモートI/O20Xが、リモートI/O20Dである。電源73D側と0V側との両方に出力回路23Xが配置されたリモートI/O20Xも、電源73D側に出力回路23Xが配置される場合のリモートI/O20Dと同様のオートチューニングを実行する。
図13は、実施の形態にかかる出力のダークテスト処理の第2の処理例を説明するための図である。図13では、リモートI/O20Xの一例であるリモートI/O20Eと、出力機器51Xの一例である出力機器51Eとを図示している。リモートI/O20Eは、出力回路23Xの一例である出力回路23E,23Fと、オートチューニング部31Xの一例であるオートチューニング部31Eと、パルス検出回路24Xの一例であるパルス検出回路24E,24Fとを備えている。なお、図13では、リモートI/O20Eが備える構成要素のうち、パルス検出回路24E,24F、出力回路23E,23Fおよびオートチューニング部31E以外の構成要素を図示省略している。
出力回路23Eは、信号源である電源73Eを備えており、電源73Eが出力信号76Eを出力する。出力回路23Eは、オートチューニング部31Eに接続されており、オートチューニング部31Eから出力される出力信号105のパルスに従って、出力機器51Eに出力信号76Eを出力する。このとき、オートチューニング部31Eは、パラメータ管理部32Aから送られてくる出力信号105を、出力回路23Eに送る。
出力回路23Fは、0Vに接続されており、0Vの出力信号を出力する。出力回路23Fは、オートチューニング部31Eに接続されており、オートチューニング部31Eから出力されるパルスに従って、出力機器51Eに0Vの出力信号を出力する。このとき、オートチューニング部31Eは、パラメータ管理部32Aから送られてくる出力信号106を、出力回路23Fに送る。
出力機器51Eは、負荷75Eを有している。出力機器51Eは、出力回路23Eに接続されており、出力回路23Eからの出力信号76Eが負荷75Eに印加される。出力機器51Eは、一方が出力回路23Eに接続され、他方が出力回路23Fに接続されている。
また、出力回路23Eは、パルス検出回路24Eに接続されている。この構成により、パルス検出回路24Eは、出力回路23Eと出力機器51Eとの間に不具合がなければ、出力信号76Eを検出する。
また、出力回路23Fは、パルス検出回路24Fに接続されている。この構成により、パルス検出回路24Fは、出力回路23Fと出力機器51Eとの間に不具合がなければ、0Vの信号を検出する。
パルス検出回路24Eは、出力回路23Eからの出力信号76Eをオートチューニング部31Eに送る。そして、オートチューニング部31Eは、出力信号76Eを取得する。このとき、オートチューニング部31Eは、出力回路23Eに出力するパルスのパルス幅を掃引し、パルスがパルス検出回路24Eで正しく検出できるパルス幅を記録する。
また、パルス検出回路24Fは、出力回路23Fからの0Vの信号をオートチューニング部31Eに送る。そして、オートチューニング部31Eは、0Vの信号を取得する。このとき、オートチューニング部31Eは、出力回路23Fに出力するパルスのパルス幅を掃引し、パルスがパルス検出回路24Fで正しく検出できるパルス幅を記録する。
図14は、実施の形態にかかる、出力パルスと検出パルスとの第2の関係を説明するための図である。図14では、オートチューニング部31Eが出力回路23Eに出力した出力パルスと、パルス検出回路24E,24Fが検出した検出パルスとを示している。
ここでの出力回路23Eは、出力信号76Eの出力をオンにしておき、これにより、出力機器51Eに出力信号76Eを入力する。さらに、出力回路23Fは、出力信号76Eをオフにしておく。そして、出力回路23Eは、オートチューニング部31Eから出力パルスが出力された時間だけ出力信号76Eをオフにする。これにより、パルス検出回路24E,24Fは、出力信号76Eがオンの間は、オンの信号を検出し、オートチューニング部31Eが出力パルスを出力したタイミングでオフの信号を検出する。
オートチューニング部31Eは、出力回路23Eに出力した出力パルスと、パルス検出回路24E,24Fで検出された検出パルスとを比較する。具体的には、オートチューニング部31Eは、出力回路23Eに出力した出力パルスのパルス幅と、パルス検出回路24E,24Fで検出された検出パルスのパルス幅とを比較する。
そして、オートチューニング部31Eは、出力回路23Eに出力した複数のパルスのパルス幅の中から、パルス検出回路24E,24Fで検出パルスが誤検出されないパルスのパルス幅を決定する。この場合において、オートチューニング部31Eは、パルス検出回路24E,24Fで誤検出されないパルス幅の中から最も短いパルス幅を選択する。オートチューニング部31Eは、選択したパルス幅を入出力パラメータに設定する。
このように、オートチューニング部31Eは、オートチューニング部31Dと同様のオートチューニングを実行する。そして、パラメータ管理部32Aは、オートチューニング部31Eがオートチューニングした入出力パラメータを管理する。
また、パラメータ管理部32Aは、出力のダークテスト処理でこれまでに設定したパルス幅を記憶しておく。そして、パラメータ管理部32Aは、これまでに記憶しておいたパルス幅をパラメータ調整装置30に送る。これにより、パラメータ調整装置30は、上述したパラメータ値の管理と、パルス幅の傾向の分析と、パルス幅が基準値を満たさなくなる時期の予測と、ユーザへの予測結果の通知とを実行する。
なお、オートチューニング部31Eは、出力回路23Eに出力したパルスの出力タイミングと、検出パルスの検出タイミングとのタイミングのずれに基づいて、出力のダークテスト機能で用いる出力パルスの出力タイミングをオートチューニングしてもよい。
電源73D側に出力回路23DがあるリモートI/O20Dは、電源73D側の出力配線の、電源固着および0V固着の故障を検出できる。一方、電源73E側に出力回路23Eが配置され、0V側に出力回路23Fが配置されているリモートI/O20Eは、電源73E側と0V側の両方の、電源固着および0V固着を検出できる。また、リモートI/O20Eは、出力機器51E内の断線故障、および出力機器51Eに接続された配線の断線故障を検出できる。
パラメータ調整システム100は、パラメータ調整装置30の機能を有した、図示しないエンジニアリングツール90が制御ユニット10を介して、上述したリモートI/O20A〜20Eに、オートチューニングの実行を指示してもよい。ここで、制御ユニット10が、エンジニアリングツール90からの指示に基づいて、オートチューニングの実行をリモートI/O20A〜20Eに指示する場合の処理について説明する。
図15は、実施の形態にかかるエンジニアリングツールの第1の画面例を示す図である。ここでは、パラメータ調整装置30の機能を有したエンジニアリングツール90がオートチューニングの対象となる装置を表示した画面150を示している。
エンジニアリングツール90の画面150は、PC9に接続された表示装置に表示される。エンジニアリングツール90は、オートチューニングの対象にすることができる装置の名称を、画面150内の画面領域94に一覧表示する。また、エンジニアリングツール90は、画面領域94に一覧表示された装置を、一括してオートチューニングするためのボタン95を表示する。このボタン95が、ユーザによって選択されると、エンジニアリングツール90は、一覧表示された装置にオートチューニングの指示を送る。ここでの一覧表示には、リモートI/O20Xの名称が含まれているので、エンジニアリングツール90は、リモートI/O20Xを制御する制御ユニット10にオートチューニングの指示を送る。これにより、制御ユニット10がリモートI/O20Xにオートチューニングの指示を送り、リモートI/O20Xがオートチューニングを実行する。
なお、エンジニアリングツール90は、画面150に一覧表示された装置の中からユーザによって選択された装置にオートチューニングの指示を一括で送ってもよい。画面150に複数のリモートI/O20Xが表示され、ユーザによって複数のリモートI/O20Xが選択された場合には、エンジニアリングツール90は、選択されたリモートI/O20Xにオートチューニングの指示を一括で送る。
また、画面150は、制御ユニット10、リモートI/O20Xといった局ごとの装置名を表示している。この装置名の何れかがユーザによって選択されると、エンジニアリングツール90は、後述の画面151を表示する。
図16は、実施の形態にかかるエンジニアリングツールの第2の画面例を示す図である。画面150において、リモートI/O20Xがユーザによって選択されると、エンジニアリングツール90は、画面151を表示する。画面151は、リモートI/O20Xに通信パラメータおよび入出力パラメータを設定するための画面である。
エンジニアリングツール90は、リモートI/O20Xにオートチューニングさせることができる項目の一覧を画面151に表示する。また、エンジニアリングツール90は、オートチューニングを実行させるためのボタン96を画面151に表示する。画面151において、オートチューニングさせることができる項目の1から複数がユーザによって選択されたうえで、ボタン96がユーザによって押下されると、エンジニアリングツール90は、選択された項目のオートチューニングを実行させる指示を制御ユニット10に出力する。
ここで、パラメータのチューニング範囲の設定処理について説明する。図17は、実施の形態にかかる、パラメータのチューニング範囲の設定処理を説明するための図である。図17では、パラメータ調整装置30が表示装置に表示する画面160を示している。画面160は、パラメータのチューニング範囲を設定するための画面である。画面160は、設定対象とするパラメータのパラメータ名と、チューニング範囲とを表示する。チューニング範囲は、ユーザによる数値入力操作によって設定されるものである。チューニング範囲は、パラメータの許容範囲であり、チューニングを許可する下限値と上限値とによって規定される。
調整設定部330は、ユーザからの指示に従って、パラメータのチューニング範囲を設定する。そして、調整設定部330は、設定したチューニング範囲をパラメータ管理部320Xに格納させる。パラメータ調整装置30は、パラメータ管理部320Xに格納したチューニング範囲を制御ユニット10のパラメータ管理部32Bに格納させてもよいし、リモートI/O20Xのパラメータ管理部32Aに格納させてもよい。このように、パラメータのチューニング範囲が設定されることによって、オートチューングによって予期せぬ設定がされることを防止することができる。
つぎに、オートチューニングの設定処理手順について説明する。図18は、実施の形態にかかるオートチューニングの設定処理手順を示すフローチャートである。ここでは、パラメータ調整装置30からの指示に従って、制御ユニット10とリモートI/O20Xとがオートチューニングを実行する場合について説明する。ここでの制御ユニット10は、種々の情報をプログラマブル表示器に表示させながら、オートチューニングを実行する。
パラメータ調整装置30のパラメータ管理部320Xは、パラメータの調整に用いられる設定値を格納しておく。この設定値の例は、パラメータの初期値およびパラメータのチューニング範囲である。このパラメータの初期値およびチューニング範囲は、ユーザによって制御ユニット10から設定されてもよいし、ユーザによってパラメータ調整装置30から設定されてもよい。また、パラメータ管理部320Xは、チューニング範囲がユーザによって入力されると、このチューニング範囲を受け付けて格納する。パラメータ調整装置30の指示部310は、パラメータ管理部320Xで記憶している情報に基づいて、制御ユニット10にオートチューニングの指示を送る。指示部310がパラメータ管理部320Xに送る指示には、オートチューニングの対象となる設定範囲が含まれている。オートチューニングの対象となる設定範囲は、何れの装置の何れのパラメータ値をオートチューニングの対象とするかを示す情報である。
ステップS10において、制御ユニット10は、オートチューニングの対象となる設定範囲を受付けて、オートチューニング部31Zに入力する。ステップS20において、制御ユニット10は、オートチューニングを開始する。そして、ステップS30において、制御ユニット10は、設定範囲データおよびチューニング開始命令を、リモートI/O20Xのオートチューニング部31X,31Yに送信する。設定範囲データは、オートチューニングの対象となるパラメータの種類を指定した情報であり、チューニング開始命令は、オートチューニングの開始を指示する情報である。
ステップS40において、リモートI/O20Xのオートチューニング部31X,31Yは、制御ユニット10からの設定範囲データおよびチューニング開始命令を受信する。これにより、ステップS50において、オートチューニング部31X,31Yは、オートチューニングを開始する。そして、ステップS60において、オートチューニング部31X,31Yは、パラメータ値を掃引しながらオートチューニングを実行する。パラメータ値の掃引の例は、通信のタイムアウト時間T1の掃引、またはパルス幅の掃引である。
ステップS70において、オートチューニング部31X,31Yは、何れのパラメータを用いた処理が合格であるかの検出チェックを実行する。オートチューニング部31X,31Yが実行する検出チェックの例は、入力回路25Cに入力される入力信号101Cのパルス幅が基準値よりも大きいか否か、またはパルス検出回路24D〜24Fが検出する検出パルスのパルス幅が基準値よりも大きいか否かである。
検出チェックが不合格である場合、すなわち、ステップS70においてNoの場合、オートチューニング部31X,31Yは、ステップS60,S70の処理を実行する。オートチューニング部31X,31Yは、検出チェックが合格となるまで、ステップS60,S70の処理を繰り返す。
検出チェックが合格である場合、すなわち、ステップS70においてYesの場合、オートチューニング部31X,31Yは、ステップS80において、合格と判定したパラメータ値を制御ユニット10に送信する。
ステップS90において、制御ユニット10のオートチューニング部31Zは、オートチューニング部31X,31Yからのパラメータ値を受信する。ステップS100において、オートチューニング部31Zは、チューニング結果であるパラメータ値をプログラマブル表示器に表示させる。これにより、制御ユニット10は、ユーザにパラメータ値を提示する。プログラマブル表示器は、表示しているパラメータ値を承認するための承認ボタンを有している。この承認ボタンは、プログラマブル表示器が備えるタッチパネルに表示されてもよいし、他の箇所に配置されてもよい。承認ボタンがユーザによって押下されると、プログラマブル表示器は、承認されたことを示す情報を制御ユニット10に送信する。これにより、制御ユニット10は、パラメータ値が承認されたと判断し、ステップS110において、リモートI/O20Xにパラメータ値設定命令を送信する。パラメータ値設定命令は、リモートI/O20Xから送られてきた最新のパラメータ値を、リモートI/O20Xが用いるパラメータ値に設定させるための命令である。
ステップS120において、パラメータ管理部32Aは、制御ユニット10からのパラメータ値設定命令を受信する。そして、ステップS130において、オートチューニング部31X,31Yは、パラメータ値設定命令に対応するパラメータ値をリモートI/O20X内のパラメータ管理部32Aに書き込む。パラメータ値設定命令に対応するパラメータ値は、ステップS80の処理でリモートI/O20Xが制御ユニット10に送信したパラメータ値である。
これにより、パラメータ管理部32Aは、パラメータの初期値およびチューニング範囲に加えて、パラメータ値設定命令に対応するパラメータ値を記憶する。パラメータ管理部32Aが記憶するパラメータ値がパラメータ設定値である。なお、オートチューニング部31X,31Yは、パラメータ値設定命令に対応するパラメータ値をリモートI/O20X以外の装置内に書き込んでもよい。
ステップS140において、オートチューニング部31X,31Yは、パラメータ値の設定が完了すると、設定が正常に行われたことを示す設定結果を制御ユニット10に送信する。そして、ステップS150において、制御ユニット10は、設定が正常に行われたことを示す設定結果を受信する。
制御ユニット10は、オートチューニング部31X,31Yが設定したパラメータ値をパラメータ調整装置30に送る。オートチューニング部31X,31Yが設定したパラメータ値は、ステップS130の処理でオートチューニング部31X,31Yがパラメータ管理部32Aに書き込んだパラメータ値である。このパラメータ値は、ステップS90の処理で制御ユニット10が受信したパラメータ値である。
なお、オートチューニング部31X,31Yは、何れが先にオートチューニングを実行してもよい。また、オートチューニング部31X,31Yは、同時にオートチューニングを実行してもよい。
ここで、実施の形態で説明したパラメータ調整装置30のハードウェア構成について説明する。図19は、実施の形態にかかるマイクロコンピュータのハードウェア構成例を示す図である。パラメータ調整装置30は、図19に示した制御回路300、すなわちプロセッサ301およびメモリ302により実現することができる。プロセッサ301は、CPU(中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)、システムLSI(Large Scale Integration)などである。メモリ302は、RAM(Random Access Memory)、ROM(Read Only Memory)といった不揮発性または揮発性の半導体メモリであってもよいし、磁気ディスクまたはフレキシブルディスクであってもよい。
パラメータ調整装置30は、プロセッサ301が、メモリ302で記憶されている、パラメータ調整装置30として動作するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、指示部310、パラメータ管理部320X、調整設定部330、調整履歴記憶部340およびエラー発生予測部350の手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリとしても使用される。
このように、プロセッサ301が実行するプログラムは、コンピュータで実行可能な、部品温度を判定するための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトである。プロセッサ301が実行するプログラムは、複数の命令が温度判定を行うことをコンピュータに実行させる。
なお、パラメータ調整装置30の機能を専用のハードウェアで実現してもよい。また、パラメータ調整装置30の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
パラメータ調整システム100は、機能の拡張によって、制御ユニット10、PLC間ネットワーク5またはフィールドネットワーク11の負荷が増大する。このような場合、PLCシステムは、初期に設定した通信パラメータでは所望の処理を実行できなくなる場合がある。この結果、PLCシステムの停止が頻繁に発生することがあった。実施の形態では、パラメータ調整装置30が、通信の応答時間がタイムアウト時間T1を超えるタイミングを予測してユーザに通知するので、PLC6およびリモートI/O20Xは、PLCシステムが停止する前に、通信パラメータのオートチューニングを実行することが可能となる。
また、パラメータ調整システム100は、入力機器52Xまたは出力機器51Xの機械的な経年劣化が発生すると、入力信号の時間的ばらつき又は信号波形の劣化が起こる。このような場合、PLCシステムは、初期に設定した入出力パラメータでは所望の処理を実行できなくなる場合がある。この結果、PLCシステムの停止が頻繁に発生することがあった。実施の形態では、パラメータ調整装置30が、通信処理の傾向、入力信号のチャタリングの傾向、二重化された信号の不一致の傾向および信号の入出力に用いられる信号のパルス幅の傾向を分析して分析結果をユーザに通知するので、リモートI/O20Xは、PLCシステムが停止する前に、入出力パラメータのオートチューニングを実行することが可能となる。
このように、パラメータ調整システム100は、実システムに合わせたパラメータ値を一括で設定することができるので、作業時間の短縮と、応答性能の低下防止を実現することができる。
なお、制御ユニット10は、PLC6が備える入出力ユニットであるI/Oユニットにオートチューニングの実行指示を送ってもよい。この場合、I/Oユニットが入出力装置であり、I/Oユニットは、リモートI/O20Xと同様の処理によってオートチューニングを実行する。
このように、実施の形態によれば、パラメータ調整装置30が、リモートI/O20Xを含む複数の装置にパラメータの調整を一括して指示し、リモートI/O20Xが、パラメータ調整装置30からの指示に従ってパラメータの調整を行うので、パラメータ値を複数の装置に容易に設定することが可能となる。
また、パラメータ調整装置30は、PLC6〜8、PC9、リモートI/O20X、エッジコンピュータ2、上位コンピュータ3またはサーバ1に配置されているので、種々の位置からオートチューニングの指示を一括で送ることができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
上述した課題を解決し、目的を達成するために、本発明は、パラメータ調整システムにおいて、被制御機器を制御する制御装置からの指示に従ってパラメータを用いた信号の入出力を行う入出力装置と、複数の入出力装置にパラメータの調整を指示するパラメータ調整装置と、を備える。また、本発明のパラメータ調整システムにおいて、パラメータは、入出力装置が制御装置との間の通信で用いる通信パラメータ、または入出力装置が被制御機器との間の信号の入出力で用いる入出力パラメータである。また、本発明のパラメータ調整システムにおいて、入出力装置は、パラメータ調整装置からの指示に従い、実環境に応じてパラメータの調整を行う。
上述した課題を解決し、目的を達成するために、本発明は、パラメータ調整システムにおいて、被制御機器を制御する制御装置からの指示に従ってパラメータを用いた信号の入出力を行う入出力装置と、複数の入出力装置にパラメータの調整を指示するパラメータ調整装置と、を備える。また、本発明のパラメータ調整システムにおいて、パラメータは、入出力装置が制御装置との間の通信で用いる通信パラメータ、または入出力装置が被制御機器との間の信号の入出力で用いる入出力パラメータである。また、本発明のパラメータ調整システムにおいて、入出力装置は、パラメータ調整装置からの指示に従い、実環境に応じてパラメータの調整を行う。パラメータ調整装置は、複数の入出力装置にパラメータの調整を一括して指示する。