JP2017017505A - クライアント装置 - Google Patents
クライアント装置 Download PDFInfo
- Publication number
- JP2017017505A JP2017017505A JP2015131850A JP2015131850A JP2017017505A JP 2017017505 A JP2017017505 A JP 2017017505A JP 2015131850 A JP2015131850 A JP 2015131850A JP 2015131850 A JP2015131850 A JP 2015131850A JP 2017017505 A JP2017017505 A JP 2017017505A
- Authority
- JP
- Japan
- Prior art keywords
- data
- command
- address
- read
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
【課題】通信の安定性を確保できるクライアント装置を提供すること。【解決手段】クライアント装置20は、要求するデータ数を示す要求データ数を含む要求コマンドを生成して送信するコマンド生成部24と、受信したデータが要求コマンドに対して返信されたデータであるか否かを判定する判定部28と、を備える。要求コマンドは、前回要求したデータ数とは異なる要求データ数を含む。【選択図】図2
Description
本発明は、通信の安定性を確保できるクライアント装置に関する。
従来、化学製造プラント、石油精製プラント、その他製造プラント等の処理プラント内において使用されるプロセス管理システムが知られている。
例えば、プロセス管理システムとして、特開2012−208706号公報には、ユニバーサルバス1の系統とローカルバス2の系統との間で情報を受け渡すためのゲートウェイとして機能する冗長コントローラ10と、プログラマブルロジックコントローラ(PLC)42と、を備え、PLC42は、プロセスデータをローカルバス2に供給し、冗長コントローラ10は、ローカルバス2を介して、PLC42から供給されたプロセスデータを受信する、プロセス管理システムが開示されている(特許文献1)。
ここで、データを特定するための識別子が定義されている通信プロトコルを利用する場合、クライアント装置は、サーバ装置からクライアント装置に返信される応答データが、クライアント装置からサーバ装置に送信される要求コマンドに対する応答データであるか否かを、要求コマンド、応答データのそれぞれに含まれる識別子を比較することにより判断することができる。
しかしながら、古い規格の通信プロトコルには識別子が定義されていないものがあり、多くのプラントには、識別子が定義されていない時代の通信プロトコルにしか準拠していない装置が多数残っている。このため多くの装置と通信を可能とするためには、最新の装置であっても、識別子が定義されていない通信プロトコルを用いざるを得ない。ところが、このような識別子が定義されていない通信プロトコルを用いたデータの送受信では、次のような不都合が生じる可能性があった。
すなわち、クライアント装置はデータを要求する場合に要求コマンドをサーバ装置に送信し、サーバ装置は要求コマンドを受信したら自らのデータをクライアント装置に返信する。しかし、サーバ装置では、他の装置との通信処理を実行中であるなどの理由でクライアント装置から送信された要求コマンドに対し即時にデータを返信できない場合が頻繁に生じる。要求コマンド(第1の要求コマンド)をサーバ装置へ送信した後に一定期間経過してもサーバ装置からのデータを受信しない場合、クライアント装置はサーバ装置が第1の要求コマンドを受信できなかったものとして新たな要求コマンド(第2の要求コマンド)を送信する。このような場合において、サーバ装置が他の処理を終了させるまでに時間がかかると、サーバ装置が第1の要求コマンドに対してデータを返信するタイミングがクライアント装置による第2の要求コマンドの送信後になってしまう。クライアント装置では第2の要求コマンドを送信した後に先に送信していた第1の要求コマンドに対して返信されたデータを受信した場合、第1の要求コマンドに対して返信されたデータを第2の要求コマンドに対して返信されたデータとして処理してしまう。クライアント装置も複数のデータを取り扱うため、第2の要求コマンドは第1の要求コマンドとは異なるデータを要求するものであることが多く、第1の要求コマンドに対する返信データを第2の要求コマンドに対するものとして取り扱うというデータの取り違えは、時として致命的な判断ミスや制御不良をもたらす可能性がある。クライアント装置とサーバ装置との間の通信が正常に行われないことにより、通信の安定性を損なうおそれがあるのである。
そこで、本発明は、このような問題に鑑みて、通信の安定性を確保できるクライアント装置を提供することを目的の一つとしている。
上記課題を解決するために、本発明の一側面に係るクライアント装置は、要求するデータ数を示す要求データ数を含む要求コマンドを生成して送信するコマンド生成部と、受信したデータが前記要求コマンドに対して返信されたデータであるか否かを判定する判定部と、を備え、前記要求コマンドは、前回要求したデータ数とは異なる要求データ数を含む。
本発明によれば、前回要求したデータ数とは異なる要求データ数を含む要求コマンドが送信されるので、クライアント装置は返信されたデータが要求コマンドに対して返信されたデータであるか否かを正しく判定することができる。よって、要求コマンドに対して返信されたデータ以外のデータを要求コマンドに対して返信されたデータとして処理してしまうことを防止できるため、通信の安定性を確保できる。
以下、図面を参照して本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。
<定義>
「プロセスデータ」:プロセス管理システムにおける装置・機器(主にフィールド機器)から送信される測定値、または、当該装置・機器に対する設定値・制御値等のデータをいう。
「要求データ数」:クライアント装置が要求するデータの数をいう。例えば、クライアント装置が、他装置に記録されているプロセスデータの読み出しを実行する場合において、要求データ数は、読み出されるデータの数をいう。「データ」は1バイト、2バイトといった単位でもよく、所定のバイト数で構成されるパケットといった単位でもよい。
「前回要求したデータ数」:クライアント装置が一つ前の回に(最後に)要求したデータの数をいう。
「アドレス範囲の指定情報」:一以上のデータのアドレスで規定される範囲を指定する情報をいう。例えば、要求するデータとしてアドレスXXX0から連続する5つのデータ要求する場合、アドレス範囲の指定情報として、開始アドレスXXX0と終了アドレスXXX4とを指定する。なお、データ数が一つの場合も含んでよい。例えば、アドレスXXX1のデータのみを要求する場合、アドレス範囲の指定情報は、開始アドレスおよび終了アドレスともにアドレスXXX1と指定する。
「プロセスデータ」:プロセス管理システムにおける装置・機器(主にフィールド機器)から送信される測定値、または、当該装置・機器に対する設定値・制御値等のデータをいう。
「要求データ数」:クライアント装置が要求するデータの数をいう。例えば、クライアント装置が、他装置に記録されているプロセスデータの読み出しを実行する場合において、要求データ数は、読み出されるデータの数をいう。「データ」は1バイト、2バイトといった単位でもよく、所定のバイト数で構成されるパケットといった単位でもよい。
「前回要求したデータ数」:クライアント装置が一つ前の回に(最後に)要求したデータの数をいう。
「アドレス範囲の指定情報」:一以上のデータのアドレスで規定される範囲を指定する情報をいう。例えば、要求するデータとしてアドレスXXX0から連続する5つのデータ要求する場合、アドレス範囲の指定情報として、開始アドレスXXX0と終了アドレスXXX4とを指定する。なお、データ数が一つの場合も含んでよい。例えば、アドレスXXX1のデータのみを要求する場合、アドレス範囲の指定情報は、開始アドレスおよび終了アドレスともにアドレスXXX1と指定する。
<システム構成>
図1に、本実施形態に係るプロセス管理システムの構成図を示す。図1に示すように、本実施形態のプロセス管理システム100は、例示的に、スーパーバイザリステーション10と、プロセスコントローラ20と、プログラマブルロジックコントローラ(PLC:Programable Logic Control)30と、フィールド機器40と、を備えて構成されている。ユニバーサルバス1は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)(Ethernet)により装置間を相互に接続するバスである。また、ローカルバス2は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)により装置間を相互に接続するバスである。ローカルバス2は、例えば工場内のコンピュータ機器を相互に接続する工場LAN(Local Area Network)に相当する。
図1に、本実施形態に係るプロセス管理システムの構成図を示す。図1に示すように、本実施形態のプロセス管理システム100は、例示的に、スーパーバイザリステーション10と、プロセスコントローラ20と、プログラマブルロジックコントローラ(PLC:Programable Logic Control)30と、フィールド機器40と、を備えて構成されている。ユニバーサルバス1は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)(Ethernet)により装置間を相互に接続するバスである。また、ローカルバス2は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)により装置間を相互に接続するバスである。ローカルバス2は、例えば工場内のコンピュータ機器を相互に接続する工場LAN(Local Area Network)に相当する。
スーパーバイザリステーション10は、ユニバーサルバス1に接続するプロセスコントローラ10が管理する外部機器(フィールド機器40など)等から供給される測定信号等に基づいて、プロセス管理システム100全体の運転内容を監視し、各機器に対する制御信号を送信する管理装置である。スーパーバイザリステーション10は、例えば、ユニバーサルバス1に接続されるプロセスコントローラ10や、ローカルバス2に接続されるPLC30、フィールド機器40の運転内容をモニタに表示可能に構成されている。運用者は、表示内容を見ることにより、プロセス管理システム100全体の運転内容を把握することが可能である。
プロセスコントローラ20は、ローカルバス2に接続された各種機器を管理する管理装置であり、ユニバーサルバス1の系統とローカルバス2の系統との間で情報を受け渡すためのゲートウェイとして機能する。また、プロセスコントローラ20は、プロセス管理システム100における通信プロトコルにおいてクライアント装置として機能し、例えば、後述するPLC30(サーバ装置として機能)に対して、PLC30が記録するプロセスデータの読み出し要求(要求コマンド)を送信し、PLC30から返信される応答(プロセスデータ)を受信する。プロセスコントローラ20の詳細な構成については、図2を参照して後述する。
PLC30は、プロセス管理システム100における通信プロトコルにおいてサーバ装置として機能する装置である。PLC30は、例えば、プロセスコントローラ20から送信される、PLC30が記録するプロセスデータの読み出し要求(要求コマンド)に対して、応答(プロセスデータ)を返信する。また、PLC30は、後述するフィールド機器40などを統合して制御するコントローラとして機能し、フィールド機器40から、任意のタイミングでプロセスデータを受信し、記録する。PLC30の詳細な構成については、図2を参照して後述する。
フィールド機器40は、流量、圧力、温度等の所定の物理量を測定する測定ポイント又は制御する制御ポイントとして機能可能に構成されている。フィールド機器40は、例えば、流量センサや圧力センサ、温度センサ等の各種センサ、温度調節器や圧力・流量・開閉制御弁等の各種弁装置、ポンプやブロア、ファン等のモータ、アクチュエータ機器類である。
なお、図1において、プロセス管理システム100は、フィールド機器40を一台のみ備えているが、その数に制限はなく、二台以上を備えていてもよい。また、図1においては、PLC30とフィールド機器40とは直接接続されているが、間接的に接続されてもよく、PLC30とフィールド機器40との間にI/Oサーバ等のサーバ機能を有する機器が接続されてもよい。
図2に、本実施形態におけるプロセスコントローラ20およびPLC30のブロック図を示す。図2に示すように、プロセスコントローラ20(クライアント装置)は、例示的に、コマンド生成部24と、データ記録部27と、判定部28と、を備えて構成される。プロセスコントローラ20の上記機能ブロックは、例えば、データ記録部27又は不図示の記憶領域に格納されているソフトウェアプログラムを図示しないプロセッサが実行することにより機能的に実現される。また、図2に示すように、PLC30は、例示的に、データ記録部32と、データ読み出し部36と、を備えて構成される。PLC30の上記機能ブロックは、例えば、データ記録部32又は不図示の記憶領域に格納されているソフトウェアプログラムをプロセッサが実行することにより機能的に実現される。
特に本実施形態では、プロセスコントローラ20(クライアント装置)は、要求するデータ数を示す要求データ数を含む要求コマンドを生成して送信するコマンド生成部24と、受信したデータが前記要求コマンドに対して返信されたデータであるか否かを判定する判定部28と、を備え、要求コマンドは、前回要求したデータ数とは異なる要求データ数を含む点に特徴がある。要求コマンドの送信先は、PLC30(サーバ装置)であり、要求コマンドを受信してデータを返信するように構成されている。
プロセスコントローラ20のコマンド生成部24は、プロセスデータを要求するためのコマンド(要求コマンド)を生成し、送信するブロックである。要求コマンドには、例えば、読み出しコマンドが含まれており、読み出しコマンドとは、例えば、プロセスコントローラ20がPLC30に記録されているプロセスデータを読み出すことを要求するためのコマンドである。コマンド生成部24は、例えば、要求データ数を含む読み出しコマンド(要求コマンド)を生成する。コマンド生成部24は、例えば、読み出す(要求する)データ数を示す読み出しデータ数(要求データ数)を決定する。具体的には、PLC30に記録されているデータがアドレス0〜200(以下数値は10進数とする)に格納されている場合、コマンド生成部24は、例えば、連続する読み出しデータとして、アドレス10〜25を指定する。そして、コマンド生成部24は、読み出しデータのデータ数として、連続するアドレス10〜25のデータ数を16と決定する。そして、コマンド生成部24は、要求データ数16を含む読み出しコマンド(要求コマンド)を生成し、送信する。
また、コマンド生成部24は、例えば、PLC30に記録されているデータのうち、読み出しデータとして最初のデータのアドレスを示す先頭アドレス又は最後のデータのアドレスを示す終了アドレスと、読み出しデータ数と、を含む読み出しコマンドを生成し、送信する。具体的には、コマンド生成部24は、例えば、連続する読み出しデータとして、アドレス10〜25を指定する。コマンド生成部24は、読み出しデータのデータ数として、連続するアドレス10〜25のデータ数を16と決定する。また、コマンド生成部24は、PLC30のデータ記録部32における、読み出しデータ10のアドレス10を先頭アドレスとして決定し、又は、読み出しデータ25のアドレス25を終了アドレスとして決定する。コマンド生成部24は、先頭アドレス(アドレス10)又は終了アドレス(アドレス25)と、読み出しデータ数16と、を含む読み出しコマンドを生成し送信する。
なお、コマンド生成部24が指定するアドレスは、必ずしも、最初のデータのアドレスまたは最後のデータのアドレスである必要はなく、読み出しデータの中途のデータのアドレスであってもよい。具体的には、読み出しデータがアドレス10〜25である場合、中間に位置するデータのアドレス20を決定するように構成されてもよい。一つのアドレスとデータ数とを指定する場合、指定したアドレスに対してどのような範囲のデータを読み出すかは予め定めておく。例えば、先頭アドレスを指定すると規定されていれば、指定されたアドレスのデータから数えてデータ数分のデータを読み取る。終了アドレスを指定すると規定されていれば、指定されたアドレスのデータからさかのぼって数えてデータ数分のデータを読み取る。中間アドレスを指定すると規定されていれば、指定されたアドレスのデータを中心に前後同数で合計がデータ数分のデータを読み取る。
さらに、コマンド生成部24は、アドレス範囲の指定情報を含む読み出しコマンド(要求コマンド)を生成し、送信する。コマンド生成部24は、例えば、PLC30に記録されているデータの最初のデータの先頭アドレスから最後のデータの終了アドレスまでを示すアドレス範囲を決定する。具体的には、コマンド生成部24は、例えば、連続する読み出しデータとして、アドレス10〜25を指定する。そして、コマンド生成部24は、後述するデータ記録部32における、最初のデータでの先頭アドレス10から最後のデータの終了アドレス25までを示すアドレス範囲10−25を決定する。そして、コマンド生成部24は、アドレス範囲10−25の指定情報を含む読み出しコマンドを生成し、送信する。
なお、読み出しデータは、一以上でありその数に制限はない。例えば、データ記録部32に記録されている一のデータ(例えばデータ10)のみを読み出す場合においては、コマンド生成部24は、例えば、データ10のアドレス10のみ決定し、読み出しデータ数は、1と決定してもよい。また、データ記録部32に記録されている一のデータ(例えばデータ10)のみを読み出す場合においては、コマンド生成部24は、アドレス範囲として、最初のデータであるデータ10のアドレス10から最後のデータであるデータ10のアドレス10までを示すアドレス範囲10を決定してもよい。
コマンド生成部24は、前回要求したデータ数とは異なるデータ数を含む読み出しコマンド(要求コマンド)を生成し送信するブロックである。コマンド生成部24は、例えば、前回要求したデータ数としてアドレス10〜25のデータ数16を含む読み出しコマンドを生成していた場合、今回は、要求データ数としてアドレス10〜26のデータ数17を含む新たな読み出しコマンドを生成する。
また、コマンド生成部24は、例えば、前回要求したデータ数として、アドレス10〜アドレス29のデータ数20と、アドレス10(先頭アドレス)又はアドレス29(最後アドレス)と、を含む読み出しコマンドを生成していた場合、今回は、アドレス10〜データ30のデータ数21と、アドレス10(先頭アドレス)又はアドレス30と、を含む新たな読み出しコマンドを生成する。
さらに、コマンド生成部24は、例えば、前回要求したデータ、つまり、アドレス10〜アドレス29のアドレス10(先頭アドレス)からアドレス29までのアドレス範囲10−29(データ数20)の指定情報を含む読み出しコマンドを生成していた場合、今回は、アドレス10〜アドレス30のアドレス10(先頭アドレス)からアドレス30までのアドレス範囲10−30(データ数21)の指定情報を含む新たな読み出しコマンドを生成する。
なお、上記の説明では、コマンド生成部24は、前回要求したデータ数と一つ異なるデータ数を含む新たな読み出しコマンドを生成しているが、これに限られず、一以上異なるデータ数を含む新たな読み出しコマンドを生成するように構成される。例えば、コマンド生成部24は、前回要求したデータ数20の場合に、データ数55の新たな読み出しコマンドを生成するように構成されてもよい。
また、コマンド生成部24は、少なくとも、前回要求したデータ数と異なるデータ数の新たな読み出しコマンドを生成すればよく、前々回と同一の要求データ数を含む読み出しコマンドを生成してもよい。具体的には、第1回目に要求データ数10の読み出しコマンドを生成し、第2回目に要求データ数35の読み出しコマンドを生成し、第3回目に要求データ10の読み出しコマンドを生成するように構成されてもよい。
さらに、コマンド生成部24は、通信速度や通信状況等に鑑みて、複数回にわたり異なる要求データ数を含む読み出しコマンドを生成してもよい。コマンド生成部24は、例えば、第1回目に要求データ数10の読み出しコマンドを生成し、第2回目に要求データ数21の読み出しコマンドを生成し、第3回目に要求データ35の読み出しコマンドを生成し、第4回目に要求データ47の読み出しコマンドを生成するように構成されてもよい。
さらにまた、プロセスコントローラ20の起動直後であったり何らかの事情でリセットされたりした場合のように、前回要求したデータ数が存在しない場合は、コマンド生成部24は、例えば、所定の設定値(例えば、要求データ数10)を含む要求コマンドを生成するように構成されてもよいし、通信の開始を知らせるために、要求データ数0を含む要求コマンドを生成するように構成されてもよい。
データ記録部27は、各種データ・情報を記録する記録媒体である。データ記録部27は、例えば、コマンド生成部24が決定した読み出し条件、コマンド等を記録する。また、データ記録部27は、例えば、後述するとおり、PLC30から返信されたプロセスデータを記録する。データ記録部27に記録されたデータは、図示しないディスプレイに表示されたり、図示しない制御部が各種の制御に用いたりする。
判定部28は、プロセスコントローラ20(クライアント装置)が受信したデータが要求コマンドに対して返信されたデータであるか否かを判定するブロックである。判定部28は、例えば、要求データ数とプロセスコントローラ20が受信したプロセスデータの数とを比較することにより、プロセスコントローラ20が受信したプロセスデータが、要求コマンドに対して返信されたプロセスデータであるか否かを判定する。
具体的に、要求データ数が16の場合に、プロセスコントローラ20が受信したデータの数が16である場合は、要求データ数と、プロセスコントローラ20が受信したデータの数と、が一致するので、判定部28は、プロセスコントローラ20(クライアント装置)が受信したプロセスデータは、要求データ数16を含む要求コマンドに対して返信されたプロセスデータであると判定する。一方で、要求データ数が16の場合に、プロセスコントローラ20が受信したデータの数が20である場合は、要求データ数と、プロセスコントローラ20が受信したデータの数と、が一致しないので、判定部28は、プロセスコントローラ20が受信したプロセスデータは、要求データ数16を含む要求コマンドに対して返信されたプロセスデータではないと判定する。
PLC30のデータ記録部32は、プロセスデータを記録する記録媒体である。データ記録部32は、例えば、フィールド機器40が送信したプロセスデータを、例えばアドレス0〜アドレス200に格納する。また、データ記録部32は、各プロセスデータを、各プロセスデータが記録されているデータ記録部32における各アドレスを示すアドレス情報と関連づけて記録する。データ記録部32は、例えば、データ10を、データ10のアドレス10と関連づけて記録する。
データ読み出し部36は、プロセスコントローラ20(クライアント装置)からの読み出しコマンド(要求コマンド)に基づいて、プロセスデータをデータ記録部32から読み出すブロックである。データ読み出し部36は、例えば、要求データ数16を含む読み出しコマンドに基づいて、データ記録部32から16個のデータを読み出す。
データ読み出し部36は、例えば、読み出しデータとして最初のデータのアドレスを示す先頭アドレス又は最後のデータのアドレスを示す最後アドレスと、読み出しデータ数(要求データ数)と、を含む読み出しコマンド(要求コマンド)に基づいて、データ記録部32からプロセスデータを読み出す。具体的には、データ読み出し部36は、例えば、読み出しデータ数16と、読み出しデータ10のアドレス10(先頭アドレス)と、に基づいて、データ記録部32に記録されている、アドレス10〜25の16個のデータを読み出す。また、データ読み出し部36は、例えば、読み出しデータ数16と、読み出しデータ10のアドレス25と、に基づいて、データ記録部32に記録されている、アドレス10〜25の16個のデータを読み出す。上記のとおり、データ読み出し部36は、先頭アドレスを基準として、先頭アドレスより後ろのアドレスに対応するプロセスデータ(アドレス10、11、12、…、25)をデータ記録部32から読み出し、又は、最後アドレスを基準として、最後アドレスより前のアドレスに対応するプロセスデータ(アドレス25、24、23、…、10)をデータ記録部32から読み出す。
データ読み出し部36は、読み出しデータとして最初のデータの先頭アドレスから最後のデータの最後アドレスまでを示すアドレス範囲の指定情報を含む読み出しコマンド(要求コマンド)に基づいて、データ記録部32からプロセスデータを読み出す。具体的には、データ読み出し部36は、例えば、最初のデータであるデータ10の先頭アドレス10から最後のデータであるデータ25の最後アドレス25までを示すアドレス範囲10−25の指定情報に基づいて、データ記録部32に記録されている、アドレス範囲10−25に対応するプロセスデータ10〜25の16個のデータを読み出す。
<動作の説明>
以下、図3の処理シーケンス図を参照しながら、プロセス管理システム100のプロセスデータの読み出し動作を説明する。図3は、本発明の実施形態に係るプロセス管理システムにおける、プロセスデータの読み出し処理シーケンス図である。
以下、図3の処理シーケンス図を参照しながら、プロセス管理システム100のプロセスデータの読み出し動作を説明する。図3は、本発明の実施形態に係るプロセス管理システムにおける、プロセスデータの読み出し処理シーケンス図である。
前提として、図2に示すPLC30のデータ記録部32は、外部機器(フィールド機器40等)から送信された一以上のプロセスデータを記録している。図2の例では、データ記録部32は、データ0〜200を記録しているが、これに限られないのは、上記したとおりである。また、プロセスコントローラ20(クライアント装置)は、PLC30のデータ記録部32に記録されているプロセスデータおよび当該プロセスデータに対応するアドレスに関する情報を事前に把握している。
まず、図3のステップS1において、プロセスコントローラ20(クライアント装置)のコマンド生成部24は、プロセスデータの読み出し条件を決定する。コマンド生成部24は、例えば、読み出しデータとして、連続するアドレス10〜25を指定する。そして、コマンド生成部24は、読み出すデータ数(要求するデータ数)として、連続するアドレス10〜25のデータ数(要求データ数)を16と決定する。
ステップS2において、コマンド生成部24は、コマンドを生成し、生成したコマンドをPLC30(サーバ)に送信する。コマンド生成部24は、例えば、要求データ数16を含む読み出しコマンド(要求コマンド)を生成し送信する。
ステップS3において、プロセスコントローラ20は、PLC30から返信されるプロセスデータを受信するために所定期間、例えば、3〜5秒間待機する。
一方で、ステップS11において、PLC30は、プロセスコントローラ20が送信した読み出しコマンドを受信する。
ステップS12において、PLC30のデータ読み出し部36は、読み出しコマンドに基づいて、データ記録部32からプロセスデータを読み出す。データ読み出し部36は、例えば、要求データ数16を含む読み出しコマンドに基づいて、データ記録部32から16個のデータを読み出す。
ステップS13において、PLC30は、データ読み出し部36が読み出したプロセスデータをプロセスコントローラ20に送信する。PLC30は、例えば、データ読み出し部36がデータ記録部32から読み出した16個のプロセスデータをプロセスコントローラ20に返信する。
ステップS4において、プロセスコントローラ20は、プロセスデータを所定期間内に受信したか否かを判断する。プロセスコントローラ20が、PLC30が送信したプロセスデータを受信した場合、すなわち、ステップS3において、プロセスコントローラ20が、読み出しデータを受信するための待機時間内にプロセスデータを受信した場合(ステップS4においてYesの場合)は、ステップS5に進む。
ステップS5において、プロセスコントローラ20の判定部28は、プロセスコントローラ20が受信したプロセスデータ(読み出しデータ)のデータ数を計算する。
ステップS6において、プロセスコントローラ20の判定部28は、プロセスコントローラ20が受信したプロセスデータが、要求コマンドに対して返信されたプロセスデータであるか否かを判定する。判定部28は、具体的には、読み出しデータ数と要求データ数とが一致するか否かを判定する。判定部28は、例えば、PLC30から返信され、プロセスコントローラ20が受信したデータの数が16である場合は、要求データ数16と、プロセスコントローラ20が受信したデータの数16と、が一致するので、プロセスコントローラ20が受信したプロセスデータが、要求データ数16を含む要求コマンドに対して返信されたプロセスデータであると判定する(ステップS6においてYES)。この場合は、例えば、プロセスコントローラ20は、PLC30から返信され、自らが受信したデータをデータ記録部27に記録する(ステップS7)。
しかしながら、PLC30から返信され、プロセスコントローラ20が受信したデータの数が17である場合は、要求データ数16と、プロセスコントローラ20が受信したデータの数17と、が一致しないので、プロセスコントローラ20が受信したプロセスデータは、要求データ数16を含む要求コマンドに対して返信されたプロセスデータでないと判定する(ステップS6においてNO)。この場合は、プロセスコントローラ20は、例えば、PLC30から返信され、自らが受信したデータを記録せず、削除する等の処理を実行する(ステップS8)。また、過去に要求した要求コマンドに対してデータが返信されていない返信未受領の要求コマンドが存在する場合、過去に送信した要求コマンドに対応するデータとして処理してもよい。具体的には、プロセスコントローラ20は、今回返信されてきたデータのデータ数と返信未受領の要求コマンドの要求データ数とを比較し、一致するものが存在したら、今回返信されてきたデータを要求データ数が一致している要求コマンドに対応するものとして処理する。
ステップS4に戻り、プロセスコントローラ20が、PLC30が送信したプロセスデータを受信しない場合、例えば、ステップS3において、読み出しデータを受信するための待機時間(たとえば、3〜5秒)を過ぎたにも関わらず、プロセスコントローラ20がプロセスデータを受信しなかった場合(ステップS4においてNoの場合)は、ステップS1に戻る。そして、プロセス管理システム100は、ステップS1から再度、ステップS1〜S5、S11〜S13に示すプロセスデータ読み出し処理を実行する。以下に説明する再度の読み出し処理において、前回の読み出し処理と同一内容のステップについては、説明を省略する。
(再度の読み出し処理)
ステップS1において、コマンド生成部24は、前回要求したデータ数としてアドレス10〜25のデータ数16と決定しているので、今回は、例えば、要求データ数としてアドレス10〜26のデータ数17と決定する。
ステップS1において、コマンド生成部24は、前回要求したデータ数としてアドレス10〜25のデータ数16と決定しているので、今回は、例えば、要求データ数としてアドレス10〜26のデータ数17と決定する。
ステップS2において、コマンド生成部24は、前回要求したデータ数としてアドレス10〜25のデータ数16を含む読み出しコマンドを生成したので、今回は、例えば、要求データ数としてアドレス10〜26のデータ数17を含む新たな読み出しコマンドを生成し、送信する。
ステップS12において、データ読み出し部36は、読み出しコマンドに基づいて、データ記録部32からプロセスデータを読み出す。データ読み出し部36は、例えば、要求データ数17を含む読み出しコマンドに基づいて、データ記録部32から17個のデータを読み出す。
ステップS13において、PLC30は、データ読み出し部36がデータ記録部32から読み出した17個のプロセスデータをプロセスコントローラ20に返信する。
ステップS4において、プロセスコントローラ20が、PLC30が返信したプロセスデータを受信した場合、すなわち、ステップS3において、プロセスコントローラ20が、読み出しデータを受信するための待機時間内にプロセスデータを受信した場合(ステップS4においてYesの場合)は、ステップS5に進む。一方、ステップS4において、プロセスコントローラ20が、PLC30が送信したプロセスデータを受信しない場合、例えば、ステップS3において、読み出しデータを受信するための待機時間(たとえば、3〜5秒)を過ぎたにも関わらず、プロセスコントローラ20がプロセスデータを受信しなかった場合(ステップS4においてNoの場合)は、ステップS1に戻る。そして、プロセス管理システム100は、ステップS1から再度、ステップS1〜S5、S11〜S13に示すプロセスデータ読み出し処理を実行する。
ステップS5において、プロセスコントローラ20の判定部28は、プロセスコントローラ20が受信したプロセスデータ(読み出しデータ)のデータ数を計算する。
ステップS6において、判定部28は、例えば、PLC30から返信され、プロセスコントローラ20が受信したデータの数が17である場合は、要求データ数17と、プロセスコントローラ20が受信したデータの数17と、が一致するので、プロセスコントローラ20が受信したプロセスデータは、要求データ数17を含む要求コマンドに対して返信されたプロセスデータであると判定する(ステップS6においてYES)。この場合は、例えば、プロセスコントローラ20は、PLC30から返信され、自らが受信したデータをデータ記録部27に記録する(ステップS7)。
しかしながら、PLC30から返信され、プロセスコントローラ20が受信したデータの数が16である場合は、要求データ数17と、プロセスコントローラ20が受信したデータの数16と、が一致しないので、プロセスコントローラ20がPLC30から受信するプロセスデータは、要求データ数17を含む要求コマンドに対して返信されたプロセスデータでないと判定する(ステップS6においてNO)。この場合は、例えば、プロセスコントローラ20は、PLC30から返信され、自らが受信したデータを記録せず、削除する等の処理を実行する(ステップS8)。
(効果)
以上のとおり、本実施形態においては、要求データ数を含む要求コマンドが、前回要求したデータ数とは異なる要求データ数を含むので、データの取り違えを防止できるため、通信の安定性を確保できる。
以上のとおり、本実施形態においては、要求データ数を含む要求コマンドが、前回要求したデータ数とは異なる要求データ数を含むので、データの取り違えを防止できるため、通信の安定性を確保できる。
(その他の実施形態)
本発明における上記実施形態は、あくまでも例示であり、上記に明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形(各実施例を組み合わせる等)して実施することができる。例えば、上記実施形態においては、読み出しコマンドに基づくプロセスデータの読み出し処理に関して説明したが、データを要求する他のコマンド、例えば、読み込みコマンド、読み取りコマンド等に関しても適用可能である。
本発明における上記実施形態は、あくまでも例示であり、上記に明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形(各実施例を組み合わせる等)して実施することができる。例えば、上記実施形態においては、読み出しコマンドに基づくプロセスデータの読み出し処理に関して説明したが、データを要求する他のコマンド、例えば、読み込みコマンド、読み取りコマンド等に関しても適用可能である。
1…ユニバーサルバス
2…ローカルバス
10…スーパーバイザリステーション
20…プロセスコントローラ
24…コマンド生成部
27…データ記録部
28…判定部
30…PLC
32…データ記録部
36…データ読み出し部
40…フィールド機器
2…ローカルバス
10…スーパーバイザリステーション
20…プロセスコントローラ
24…コマンド生成部
27…データ記録部
28…判定部
30…PLC
32…データ記録部
36…データ読み出し部
40…フィールド機器
Claims (4)
- 要求するデータ数を示す要求データ数を含む要求コマンドを生成して送信するコマンド生成部と、
受信したデータが前記要求コマンドに対して返信されたデータであるか否かを判定する判定部と、を備え、
前記要求コマンドは、前回要求したデータ数とは異なる要求データ数を含む、
クライアント装置。 - 前記判定部は、返信された前記データの数と前記要求データ数とを比較する、
請求項1に記載のクライアント装置。 - 前記要求コマンドは、要求する前記データの先頭アドレスをさらに含む、
請求項1又は請求項2に記載のクライアント装置。 - 前記要求コマンドは、要求する前記データのアドレス範囲の指定情報を含む、
請求項1又は請求項2に記載のクライアント装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015131850A JP2017017505A (ja) | 2015-06-30 | 2015-06-30 | クライアント装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015131850A JP2017017505A (ja) | 2015-06-30 | 2015-06-30 | クライアント装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017017505A true JP2017017505A (ja) | 2017-01-19 |
Family
ID=57831164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015131850A Pending JP2017017505A (ja) | 2015-06-30 | 2015-06-30 | クライアント装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017017505A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019029930A (ja) * | 2017-08-02 | 2019-02-21 | 富士通株式会社 | 通信装置,及び通信装置の通信制御方法 |
-
2015
- 2015-06-30 JP JP2015131850A patent/JP2017017505A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019029930A (ja) * | 2017-08-02 | 2019-02-21 | 富士通株式会社 | 通信装置,及び通信装置の通信制御方法 |
JP7077543B2 (ja) | 2017-08-02 | 2022-05-31 | 富士通株式会社 | 通信装置,及び通信装置の通信制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715639B2 (en) | Data processing method and apparatus for performing protocol parsing in a cloud | |
US10002526B1 (en) | Internet-of-things systems and methods | |
JP6073287B2 (ja) | デバイス記述ファイルをホストに送信する方法および装置 | |
EP3739826A1 (en) | Communication method, system and apparatus | |
WO2006058090A2 (en) | Message management facility for an industrial process control environment | |
JP2004505373A (ja) | 装置の状態をリモート・コンピュータに報告する方法 | |
US20120089239A1 (en) | Intelligent interface for a distributed control system | |
JP2009271933A (ja) | 統合化ウェブ・サーバによって実行するplc | |
US11516229B2 (en) | Control device and control system | |
JP2011193307A (ja) | フィールド通信システムおよびフィールド通信方法 | |
EP2804361B1 (en) | Integrated interface system for power-system monitoring and control system | |
EP3122077B1 (en) | Resource notification method, local common service entity (cse) and resource notification system | |
EP3489777B1 (en) | Control device, control method, and program | |
KR100671026B1 (ko) | Tcp/ip 기반의 모드버스 통신 모듈 및 그 구현 방법 | |
CN107430391B (zh) | 管理系统 | |
JP2017017505A (ja) | クライアント装置 | |
US7870251B2 (en) | Devices, methods, and computer program products for real-time resource capacity management | |
JP2006318102A (ja) | フィールド機器管理装置およびフィールド機器管理方法 | |
JP2009284119A (ja) | フィールドバス通信システム及びデータ管理装置 | |
JP2016224480A (ja) | 情報収集システムおよび方法 | |
CN107171915B (zh) | 一种通信协议的变更方法及装置 | |
KR102425919B1 (ko) | 서비스 기능의 지연 시간 측정 시스템, 장치 및 방법 | |
US9973428B2 (en) | Method for checking IP address collision of ethernet communication module of PLC | |
JP2005258632A (ja) | ネットワークストレージ装置の導通確認方法およびホスト計算機 | |
KR101723561B1 (ko) | 사물웹 플러그인 시스템 |