JP5959374B2 - プログラム作成支援装置 - Google Patents

プログラム作成支援装置 Download PDF

Info

Publication number
JP5959374B2
JP5959374B2 JP2012194555A JP2012194555A JP5959374B2 JP 5959374 B2 JP5959374 B2 JP 5959374B2 JP 2012194555 A JP2012194555 A JP 2012194555A JP 2012194555 A JP2012194555 A JP 2012194555A JP 5959374 B2 JP5959374 B2 JP 5959374B2
Authority
JP
Japan
Prior art keywords
unit
communication data
frame structure
information
creation support
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.)
Expired - Fee Related
Application number
JP2012194555A
Other languages
English (en)
Other versions
JP2014052671A (ja
Inventor
祐介 曽根田
祐介 曽根田
真人 藤村
真人 藤村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keyence Corp
Original Assignee
Keyence Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Keyence Corp filed Critical Keyence Corp
Priority to JP2012194555A priority Critical patent/JP5959374B2/ja
Publication of JP2014052671A publication Critical patent/JP2014052671A/ja
Application granted granted Critical
Publication of JP5959374B2 publication Critical patent/JP5959374B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、プログラマブルロジックコントローラが送信または受信する通信データのフレーム構造を表示する技術に関する。
プログラマブルロジックコントローラ(以下、PLCと称す)は、FA(Factory
Automation)制御システムにおいて広く使用されているシーケンス制御装置であり、ラダープログラムと呼ばれる専用プログラムにしたがって動作する。操作者(オペレータ)は、リミットスイッチ、センサ、温度計などの入力機器や、電磁開閉器、ソレノイド、モータ、アクチュエータ、シリンダ、リレー、位置決めシステムなどの出力機器をPLCに接続し、ラダープログラムによってこれらの被制御機器を制御する。
オペレータは、パーソナルコンピュータ(以下、PCと称す)などのプログラム作成支援装置上でラダープログラムを作成し、PCとPLCを接続し、ラダープログラムをPLCの記憶部に記憶させる。PLCの記憶部にはデバイス情報等の各種データも記憶される。デバイス情報とは、入力機器からの入力状態、出力機器への出力状態およびラダープログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイスとは、デバイス情報を格納するために設けられたメモリ上の領域を指す名称である。PLCにプログラム作成支援装置を接続することで、PLCが保持しているデバイス情報(デバイスの値)をプログラム作成支援装置に表示させ、視認することもできる。
ところで、PLCは、Modbusネットワークなどの通信回線を介して他の1つ以上のPLCや被制御機器と通信を行うことがある。特許文献1によれば、複数のPLCがネットワークを介して接続されており、そのうちの1つのPLCがプログラミング装置に接続されており、PLCの動作状態をモニタすることでシステムデバッグを行う発明が記載されている。
特開平5−241619号公報
特許文献1の発明では、各PLCの動作状態をプログラミング装置から確認できるようになるが、ネットワークを介して複数のPLC間でどのような情報が送受信されているかまではわからない。たとえば、ネットワーク上で送信されたデータが誤っているためにPLCが誤動作しているケースなどは、従来の方法では原因の特定が困難である。
そこで、あるPLCと別のPLCとを接続する通信線にプロトコルアナライザを挿入し、送受信されている生の情報をキャプチャすることが考えられる。しかし、通信線にプロトコルアナライザを挿入するには、プロトコルを中継器として配線する必要があり、ネットワーク構成の変更が必要となってしまう。また、通信線に挿入されたプロトコルアナライザ自体が新たなノイズ源となってしまい、本来のノイズ源を特定することが困難になってしまうこともある。また、PLC用として最も普及しているModbusなどのプロトコルでは、通信されている生の信号をそのまま表示したとしても、オペレータはそれを理解することが容易ではない。さらに、Modbusは、1970年代に開発された古典的なプロトコルであるため、フレームの開始位置を示すようなビットがなく、どこからどこまでがフレームであるのかをオペレータが理解することは極めて困難である。
そこで、本発明は、PLC間を接続するネットワークにプロトコルアナライザを割り込ませることなく、かつ、容易にPLC間の通信内容を把握できるようにすることを目的とする。
本発明は、プログラム作成支援装置であって、複数のプログラマブルロジックコントローラが接続されたネットワークにおいて当該複数のプログラマブルロジックコントローラのうち第1のプログラマブルロジックコントローラと接続されたプログラム作成支援装置であって、前記第1のプログラマブルロジックコントローラが第2のプログラマブルロジックコントローラまたは被制御機器との間で送信または受信した通信データをプログラム作成支援装置に転送するよう当該第1のプログラマブルロジックコントローラに要求するための要求信号を送信する通信データ要求部と、前記要求信号を受信した前記第1のプログラマブルロジックコントローラが送信する前記通信データを受信する通信データ受信部と、前記通信データを記憶する通信データ記憶部と、前記通信データ記憶部に記憶されている前記通信データのフレーム構造をパターンマッチングによって解析する解析部と、前記解析部によって得られた前記フレーム構造にしたがって前記通信データを表示する表示部とを備えることを特徴とする。
また、本発明は、ラダープログラムを作成するプログラム作成支援装置と通信する第1の通信部と、他のプログラマブルロジックコントローラまたは被制御機器と通信する第2の通信部と、前記他のプログラマブルロジックコントローラまたは被制御機器との間で送信または受信された通信データを一時的に記憶するバッファ部と、前記第1の通信部を介して前記プログラム作成支援装置から前記バッファ部に記憶されている前記通信データを要求する要求信号を受信すると、前記通信データをコピーして前記プログラム作成支援装置へ送信するよう前記第1の通信部を制御する制御部とを備えることを特徴とするプログラマブルロジックコントローラを提供する。
本発明によれば、PLC間を接続するネットワークにプロトコルアナライザを接続する代わりに、プログラム作成支援装置を1つのプログラマブルロジックコントローラに接続し、プロトコルアナライザまたはデバック装置として動作させる。プログラム作成支援装置は、他のプログラマブルロジックコントローラや被制御機器と監視対象のプログラマブルロジックコントローラとの間で送受信された通信データのフレーム構造をパターンマッチングによって解析して表示する。そのため、PLC間を接続するネットワークにプロトコルアナライザを割り込ませることなく、かつ、容易にPLC間の通信内容を把握できるようになる。
プログラマブルロジックコントローラ(PLC)とプログラム作成支援装置の外観を示す図である。 PLCとプログラム作成支援装置についての機能ブロック図である。 Modbusプロトコルで使用されるフレーム構造の一例を示した図である。 明確な先頭識別子が規定されている通信プロトコルにおけるフレーム構造の先頭を検出する方法を説明する図である。 解析部が実行する探索モードについての各ステップを示すフローチャートである。 解析部が実行するコマンドモードについての各ステップを示すフローチャートである。 解析結果を表示するユーザインタフェースの一例を示す図である。 解析結果を表示するユーザインタフェースの一例を示す図である。 解析結果を表示するユーザインタフェースの一例を示す図である。 解析結果を表示するユーザインタフェースの一例を示す図である。
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
図1は、第1のプログラマブルロジックコントローラ(PLC1a)、第2のプログラマブルロジックコントローラ(PLC1b)およびプログラム作成支援装置100を示している。PLC1aとPLC1bはシリアル通信ケーブルなどの通信線2を介して接続され、PLCネットワーク3を構築している。ここでは一例として、PLC1aとPLC1bとがシリアル通信ケーブルで接続されているものと仮定するが、LANケーブルやUSBケーブルなどの通信線、無線LAN、ブルートゥース(登録商標)、IrDAなどの無線インタフェースを介してこれらが接続されていてもよい。通信ケーブルは金属線や光ファイバであってもよい。
プログラム作成支援装置100は、PLC1aに接続してラダープログラムを転送したり、PLC1aの動作を監視して、デバックなどを実行したりする情報処理装置である。プログラム作成支援装置100は、プログラム作成支援機能を備えたプログラムをインストールされたパーソナルコンピュータ(PC)であってもよい。プログラム作成支援装置100とPLC1aも、上述したような有線または無線のいずれで接続されていてもよい。ただし、プログラム作成支援装置100は、PLCネットワーク3には参加していないため、PLCネットワーク3に対して直接的にノイズを与えることはない。PLC1aには、1つのPLC1bが接続されているが、2つ以上の他のPLCが接続されていてもよいし、被制御機器が接続されていてもよい。被制御機器としては、たとえば、リミットスイッチ、センサなどの入力機器や、電磁開閉器、ソレノイド、モータ、アクチュエータ、シリンダ、リレー、位置決めシステムなどの出力機器がある。
図2は、PLC1aとプログラム作成支援装置100についての機能ブロック図である。プログラム作成支援装置100には、液晶表示装置や自発光型表示装置などの表示部10と、オペレータが各種の指示を入力するための操作部11が設けられている。操作部11には、オペレータの操作を受け付けるためのキーボードやポインティングデバイスが含まれる。
制御部5は、CPUやASIC、論理回路、プログラムによって実現されるコントローラである。制御部5は各種の制御機能を有している。命令作成部51は、PLC1aに対する命令を作成するユニットである。たとえば、命令作成部51は、PLC1aがPLC1bとの間で送信または受信した通信データをプログラム作成支援装置100に転送するようPLC1aに要求する通信データ要求部として機能する。このように、命令作成部51は、通信データの取得要求コマンド(リクエスト)を作成して、PLC1aに送信することができる。PC通信部7は、PLC1aのPC通信部21に接続されており、プログラム作成支援装置100とPLC1aとの間でデータやコマンドを送信したり受信したりするために使用される。たとえば、PC通信部7は、PLC1aとPLC1a1bとの間で送受信された通信データである送信バイト列24や受信バイト列25を取得するための取得要求信号をPLC1aに送信する。また、PC通信部7は、取得要求信号を受信したPLC1aが送信する通信データを受信し、受信した通信データを記憶部6に記憶させる通信データ受信部として機能する。記憶部6は、たとえば、RAM、SSD、HDDなどの記憶装置により構成されている。
解析部52は、たとえば、記憶部6に記憶されている通信データのフレーム構造をパターンマッチングによって解析する。記憶部6は、パターンマッチングに使用するためのマッチングデータ61や、通信データに含まれているバイト列がどのような意味づけをもった情報なのかを示した解説情報62、解析結果の履歴であるログデータ63などを記憶してもよい。1970年代に策定されたModbusプロトコルは、古典的なプロトコルであるため、フレームの先頭を示す特別な先頭識別子が存在しないプロトコルである。そのため、生の通信データだけではどこからどこまでがフレームであるかを簡単には識別できない。ただし、フレームの先頭に入り得る情報は一定の限られた範囲内の情報である。つまり、論理的にとりうるすべての値のうち一部の値のみがフレームの先頭付近に搭載されている。そこで、フレームの先頭として実際に搭載されうる値をマッチングデータ61として記憶部6に記憶させておき、解析部52がマッチングデータ61と一致する部分を通信データの中に発見したときにフレームの先頭の可能性があると判定してもよい。このように、記憶部6の一部は、フレーム構造の先頭に配置される可能性があるマッチングデータ61を記憶したマッチングデータ記憶部として機能する。また、解析部52は、記憶部6に記憶されているマッチングデータ61と通信データとを比較して、フレーム構造の先頭を特定する先頭特定部として機能する。解説情報62は、フレーム構造を構成している情報要素についての名称や略称などのラベル(意味づけ情報)や、簡潔な説明文章などである。解説情報62は、解析結果をオペレータにとっても理解しやすくするために表示情報作成部53によって利用される。記憶部6の一部は、フレーム構造を構成している複数の情報要素のそれぞれの意味を示す解説情報62を記憶した解説情報記憶部として機能する。
表示情報作成部53は、解析部52によって得られたフレーム構造にしたがって通信データを表示部10に表示するための表示情報を作成する。たとえば、表示情報作成部53は、解析部52によって取得されたフレーム構造にしたがって、通信データに含まれている情報要素と、記憶部6から読み出した当該情報要素の意味を示す解説情報62とを関連付けて表示するための表示情報を作成してもよい。表示部10は、表示情報作成部53が作成した表示情報にしたがって解析結果を表示する。なお、解析部52がパターンマッチングに失敗すると、表示部10は、通信データを生のデータのまま表示してもよい。また、解析部52が、通信データに含まれている情報要素のエラーを検出したときには、表示部10は、エラーを検出された情報要素を強調表示してもよい。なお、パターンマッチングに失敗するケースは、フレーム構造の先頭が見つからないケース、先頭らしい部分は見つかったもののそれ以降のバイト列が既知のフレーム構造のものとは異なるケースなどがある。フレーム構造を構成する情報要素の数、各情報要素のサイズ、および、各情報要素の中身としてとり得る値(16進数)は既知である。したがって、通信誤りがなく、PLCや被制御機器に誤動作がなければ、フレーム構造を構成する情報要素の中身は既定の範囲内となる。しかし、通信誤りや誤動作などが発生すると、ビットレベルで誤りが発生するため、フレーム構造自体が規定の構造でなくなったり、情報要素の中身が規定外の情報に化けてしまったりすることがある。よって、通信プロトコルによって規定された複数種類のフレーム構造の情報をマッチングデータ61として記憶部6に記憶しておけば、フレーム構造を特定できるだけでなく、どの情報要素に誤りが発生しているかも解析部52は発見できるようになる。
PLC1aは、プログラム作成支援装置100と接続する第1の通信部として機能するPC通信部21と、PLC1bや被制御機器と接続する第2の通信部として機能するPLC通信部22とを備えている。制御部20は、ラダープログラムを実行して被制御機器を制御したり、PLC1bや被制御機器との通信を制御したりする。PLC通信部22を通過する送信バイト列24や受信バイト列25はバッファ部23に記憶される。バイト列取得部26は、プログラム作成支援装置100から通信データを要求する取得要求信号を受信すると、バッファ部23に一時的に記憶されている送信バイト列24や受信バイト列25をコピーし、PC通信部21を介してプログラム作成支援装置100へ送信する。なお、バッファ部23は、数バイト程度の通信データを一時的に記憶可能な小さなメモリであり、PLC通信部22に内蔵されていてもよい。バッファ部23のサイズが小さいため、プログラム作成支援装置100は、比較的に頻繁に取得要求信号を送信することで、送信バイト列24や受信バイト列25をPLC1aから取得できるようになる。PLC1aから取得した送信バイト列24や受信バイト列25は、通信データ記憶部として機能する記憶部6に記憶され、解析部52によって解析される。
<パターンマッチングによるフレーム構造の解析>
Modbusなど、一部の通信プロトコルではフレーム構造の先頭を定義する先頭識別子を規定していない。先頭識別子が規定されている通信プロトコルが使用されていれば、その先頭識別子を見つけることで、その先頭識別子からフレームが始まっていることを容易に認識できる。しかし、先頭識別子を規定していない通信プロトコルでは、フレーム構造の先頭を見つけることすら容易ではない。とりわけ、16進数表記の生の通信データを表示部10に表示したとしても通常の技術レベルにあるオペレータにとっては、フレームがどこから始まっているかだけでなく、その通信データが何を意味しているかもまったく理解できないであろう。
図3(A)ないし図3(C)は、Modbusプロトコルで使用されるフレーム構造の一例を示している。図3(A)は、コイルの状態を読み出すために使用されるリクエスト側のフレーム構造と、レスポンス側のフレーム構造を示している。局は、サーバーアドレスなど送信元を示す識別情報である。ファンクションコードは、そのフレーム構造に付与された機能(コマンド種別)を識別するための識別情報である。アドレスは、スターティングアドレスを示している。点数は、コイルの数を示している。CRCは、送信側で算出した誤り検査符号である。サイズは、データ部のサイズを示している。データは、コイルの状態を示す情報が格納されている。図3(B)は、エラー状態の読み出しに使用されるフレーム構造である。ファンクションコードには、エラー状態の読み出しを意味するコードが設定される。データには、エラー状態を示す情報が格納される。図3(C)は、通信路を調査するためのエコーバック用のフレーム構造である。エコーバックによって、通信路を検査するために、リクエストとレスポンスとは同一のフレーム構造をなしている。
図3(A)〜図3(C)を見てわかるように、どのフレーム構造も、局データとファンクションコードが先頭を占めている。もちろん、先頭識別子とは違って、局データとファンクションコードは常に変化するバイト列であるものの、一定の範囲内の値だけが搭載される性質を有している。たとえば、局データが2バイトのデータである場合に、局データは、10進数表記で0〜65535までの値をとり得る。しかし、局データは、実際にはこのすべての値をとることはなく、0〜数十までの範囲となることが多い。ファンクションコードも同様で、論理的にとり得る範囲(例:10進数表記で0〜65535まで)のうち一部の範囲だけをとり得る。よって、解析部52が先頭を見つけるための検索ターゲットを、先頭識別子のように1つには絞れないものの、フレーム構造の先頭としてとり得るいくつかの候補には絞れることになる。そこで、本発明では、フレーム構造の先頭としてとり得るいくつかの候補をマッチングデータ61として記憶部6に記憶しておき、マッチングデータ61との比較によってフレーム構造を特定できるようになる。
図4は、明確な先頭識別子が規定されている通信プロトコルにおけるフレーム構造の先頭を検出する方法を説明する図である。この例で、局データ401は、0x01から0x2Aまでの値をとり、ファンクションコード402は0x00から0x6Eまでの値をとる。よって、フレーム構造の先頭となり得る範囲403は、0x01から0x2Aと、0x00から0x6Eとの組み合わせとなる。よって、マッチングデータ61には、この組み合わせのすべてが含まれていればよい。
<探索モード>
本実施形態では、解析部52は、フレーム構造の先頭付近に配置されることになっているコマンド種別に関する情報を探索する探索モードと、コマンドの内容を解析して表示するコマンドモードとを遷移しながら、通信データのフレーム構造を解析する。図4では、マッチングデータの一例として、局データとファンクションコードとの組み合わせについて説明したが、ここではより説明を簡潔化するために、コマンド種別の一例としてファンクションコードを使用する。
図5は、解析部52が実行する探索モードについての各ステップを示すフローチャートである。図6は、解析部52が実行するコマンドモードについての各ステップを示すフローチャートである。図7ないし図10は、ユーザインタフェースの一例を示す図である。たとえば、図7に示したユーザインタフェースにおいて操作部11の操作に連動して移動するポインタ701によって開始ボタン702が押し下げられると、解析部52は探索モードを開始する。なお、図7において終了ボタン703がポインタ701によって押し下げられると、解析部52は、解析処理を終了する。保存ボタン704が押されたときは解析結果をログデータとして記憶部6に保存する。印刷ボタン705が押されると、解析結果をプリンタ12によって印刷する。以下で、受信バイト列25を取得するケースについて説明する。
図5のS501で、命令作成部51は、受信バイト列25をPLC1aから取得するための取得要求コマンドを作成し、PC通信部7を介してPLC1aから1aに送信する。PLC1aのバイト列取得部26は、バッファ部23に記憶されている受信バイト列25をコピーしてPC通信部21を介してプログラム作成支援装置100へ送信する。
S502で、解析部52は、PC通信部7を介して受信バイト列25を受信し、記憶部6に記憶させる。なお、受信バイト列25だけでなく、送信バイト列24も取得するケースでは、それぞれを区別して記憶部6に記憶させることになる。
S503で、解析部52は、受信バイト列25にバイト終端が含まれているかどうかを判定する。バイト終端はフレーム構造の終わりを示す情報である。たとえば、Modbusプロトコルでは、フレーム構造の終端にはCRCが付与されることが規定されている。よって、解析部52は、CRCと思しきバイト列を見つけると、フレーム構造の終端を発見したと判定してもよい。たとえば、フレーム構造についてCRCを計算し、それがフレーム構造の終端に付与されていたCRCと一致するかどうかを判定することで、フレーム構造の終端を判定してもよい。あるいは、0が所定数以上にわたって連続したときにその部分はすでに有効な部分ではないと判定することで、フレーム構造の終端を判別してもよい。受信バイト列25にバイト終端が含まれていれば、解析部52は、探索モードを終了する。一方で、受信バイト列25にバイト終端が含まれていなければ、S504に進む。
S504で、解析部52は、バイト列にコマンド種別を示す情報が含まれているかどうかを判定する。ここで、コマンド種別とは、コマンドがどのようなものかを示すものであり、図4を用いて説明したように、ファンクションコード402に相当する。ここでは、コマンド種別として、ファンクションコード402を検出することで、フレーム構造の先頭を検出するものとする。もちろん、局データ401とのファンクションコード402とを組み合わせてフレーム構造の先頭を特定してもよい。コマンド種別を検出したときはコマンドモードへ遷移し、コマンド種別を検出できないときはS505へ進む。
S505で、解析部52は、コマンド種別を発見できなかったこと(つまり、解析に失敗したこと)を表示情報作成部53に通知し、表示情報作成部53は、生の通信データのままバイト列を表示部10に表示させるための表示情報を作成する。表示部10は、この表示情報にしたがって生の通信データのままバイト列を表示する。
<コマンドモード>
コマンドモードは、通信データを詳細に解析し、詳細なフレーム構造を視覚的にわかりやすく表示するモードである。なお、探索モードからコマンドモードに遷移してきたときは、解析部52は、S604のステップからコマンドモードを開始する。なお、S601ないしS603は、上述したS501ないしS503と同内容の処理であるため、説明を省略する。
S604で、解析部52は、通信データをフレーム構造の先頭から解析して、ファンクションコードによって特定されたコマンドのフレーム構造に合致しているかどうかを調査する。なお、Modbusプロトコルでは、40種類のコマンドが存在し、これらのフレーム構造は既知である。また、各コマンドのフレーム構造を構成する情報要素も、局データやファンクションコードと同様に実際にとり得る値は既知である。よって、ファンクションコードによって特定されたコマンドのフレーム構造に含まれる情報要素がとり得る値と、受信したバイト列から得られた値とが一致しなければ、ファンクションコードのビットに誤りがあるか、または、情報要素それ自体に誤りがあるといえる。また、解析部52は、受信したバイト列が、プロトコルによって規定された長さのバイト列に一致しているかどうかを判定してもよい。また、解析部52は、受信したバイト列がCRCなどの誤り検出符号を有しているかどうかを判定してもよい。また、受信したバイト列がプロトコルによって規定されたフォーマット(フレーム構造)を有しているかどうかを判定してもよい。ただし、コイルの状態を示すデータ部分など、フレーム構造を特定するうえで支障のないビットが誤っているときは、解析部52が解析に成功したと判定してもよい。ただし、エラーが発生していることを明示的にオペレータに示すために、誤りのあるバイトを強調表示するように、表示情報を表示情報作成部53に作成させてもよい。このように、解析部52は、通信データに含まれている情報要素のエラーを検出するエラー検出部として機能してもよい。
S605で、解析部52は通信データ(受信バイト列25)の解析に成功したかどうかを判定する。たとえば、解析部52は受信バイト列25から既知のフレーム構造を復元できたときは解析に成功したと判定し、既知のフレーム構造を復元できないときは解析に失敗したと判定する。解析に失敗したときは、S608に進み、表示部10は、受信バイト列25を生のデータのまま(16進数表記で)表示する。このときの表示情報も表示情報作成部53が作成する。一方で、コマンド解析に成功したときはS606に進む。
S606で、解析部52は、受信バイト列25からコマンドの終端を検出したかどうかを判定する。コマンドの終端を検出したときは、フレーム構造の最後まで受信バイト列25の解析が終了したことを意味するため、S607に進む。一方で、コマンドの終端を検出していないときは、フレーム構造の最後まで受信バイト列25の解析が終了していないことを意味するため、S601に進み、命令作成部51が再び取得要求コマンドをPLC1aに送信する。このように、S601からS606を繰り返し実行することで、1つのフレーム構造について解析が達成される。
S607で、解析部52は、解析が終了したことを表示情報作成部53に通知し、表示情報作成部53は解析が終了して判明したフレーム構造とその情報要素を表示するための表示情報を作成し、表示部10にフレーム構造を表示する。その後、探索モードに戻り、次のコマンドを探す。
図7は、受信バイト列25から判明したFIFOキュー読み出しコマンドのレスポンスを表示した例を示している。ユーザインタフェース700には上述した各種の操作ボタンに加え、解析結果が含まれている。
ユーザインタフェース700には、何バイト目かを示すバイトスケール711と、受信バイト列から復元されたフレーム構造の階層が何を意味しているかを示す階層情報710と、解析によって得られたコマンドのフレーム構造712が表示されている。このように、フレーム構造を、コマンド名、情報要素(フォーマット)、バイト列の生のデータ(16進数表記)といったように、階層的に表示することで、オペレータは、通信データの意味内容と実際のデータを容易に把握できるようになる。なお、コマンド名や情報要素(フォーマット)は記憶部6にコマンドごとに記憶されている解説情報62から表示情報作成部53が読み出して、表示情報に含めている。
図8は、エラーデータの強調表示801を示している。解析部52は、ファンクションコード(FC)からフレーム構造を特定することで、フレーム構造を構成している複数の情報要素が既知のとり得る範囲内の値になっているかどうかを判定する。なお、コマンドごとのフレーム構造を構成している複数の情報要素のそれぞれがとり得る範囲の値については、各コマンドごとに記憶部6に記憶されているものとする。たとえば、図8によれば、コマンドのデータ部の長さを示すサイズ情報にエラーが発生し、本来のとり得る範囲からは外れた値がサイズ情報として格納されている。よって、解析部52は、サイズ情報が誤っていることを表示情報作成部53に通知する。表示情報作成部53は、解析部52によってエラーが発生していることを指摘されたサイズ情報を強調表示するよう表示情報を作成する。強調表示の方法としては、エラーが発生していない他の情報要素の文字色とは異なる文字色でエラーが発生している情報要素を表示したり、点滅表示したり、背景色を変更したりするなど、種々の方法が考えられる。オペレータがエラーの発生を視覚的に認識できる方法であれば、どのような強調表示手法が採用されてもよい。
図9は、解析結果の他の表示例を示している。フレーム構造の全体を一度に表示すると、各情報要素は、表示スペースの関係上、略称などで簡易表示されることもある。簡易表示だけではそれが何を意味するかを理解することは簡単ではない。そこで、表示情報作成部53は、ポインタ701の座標と、各情報要素の表示座標とが一致すると、その情報要素の詳細な解説情報62を記憶部6から読み出して、詳細な解説情報62を含む表示情報を作成してもよい。図9によれば、略称「データ」と表記されている情報要素について詳細な説明901が表示されることを示している。これにより、オペレータは、各情報要素が具体的に何であるかを容易に把握できるようになるだろう。
図10は、オペレータにとって受信データと送信データを比較しやすくするために、送信データ1001と受信データ1002とを1つの画面内に同時に表示している。図10では、エコーバックコマンドについてのリクエストとレスポンスとを示しており、オペレータは両者を比較することで、PLC1aとPLC1bとの間の通信状態が良好なのかどうかを容易に判断できるようになる。
ところで、解析部52は、解析結果をログデータ63として記憶部6に記憶してもよい。操作部11から検索の実行を指示されると、制御部5は操作部11から入力された検索キーワードにしたがって検索を実行し、ヒットしたコマンド(受信バイト列や送信バイト列から復元したフレーム構造)を表示部10に表示させてもよい。この際に、表示情報作成部53は、図7ないし図10に示したユーザインタフェース700を表示するように表示情報を作成してもよい。検索キーワードとしては、たとえば、情報要素の名称(例:サイズ、局、FCなど)だけであってもよいし、実際のデータ(例:00、06、2Aなど)も追加されてもよい。FCはファンクションコードの略称である。
また、操作部11を通じて印刷ボタン705が操作されると、制御部5は、ユーザインタフェース700に示したフレーム構造と同様の印刷形式にてプリンタ12に印刷を実行させてもよい。
以上説明したように、本実施形態によれば、PLC1aとPLC1bとを接続するネットワークにプロトコルアナライザを接続する代わりに、プログラム作成支援装置100をPLC1aに接続し、プロトコルアナライザまたはデバック装置として動作させる。プログラム作成支援装置100は、PLC1aとPLC1bとの間、または、PLC1aと被制御機器との間で送受信された通信データのフレーム構造をパターンマッチングによって解析して表示する。そのため、PLC間を接続するネットワークにプロトコルアナライザを割り込ませることなく、かつ、容易にPLC−PLC間やPLC−被制御機器間の通信内容を把握できるようになる。つまり、PLCネットワーク間にプログラム作成支援装置100を接続してしまうと、PLC間の通信にプログラム作成支援装置100がノイズ源として働く可能性がある。本実施形態であれば、プログラム作成支援装置100は、PLCネットワークから分離されて、PLC1aにだけ接続している。そのため、プログラム作成支援装置100がPLCネットワークに対するノイズ源になりにくくなっている。
本実施形態では、フレーム構造の先頭に配置される可能性があるマッチングデータ61を記憶部6に記憶させておき、解析部52は、マッチングデータ61と通信データとを比較して、フレーム構造の先頭を特定する。よって、フレーム構造の先頭を明示的に示す先頭識別子を規定していない通信プロトコルであっても、解析部52は、フレーム構造の先頭を容易に特定できるようになる。なお、先頭識別子を有する通信プロトコルでは、解析部52は、先頭識別子を検索することで、フレーム構造の先頭を通信データの中から特定できるようになる。
表示部10は、フレーム構造を構成している複数の情報要素のそれぞれの意味を示す解説情報を、通信データに含まれている情報要素とともに表示するため、どの情報要素が何を意味しているのかをオペレータは容易に把握できるようになる。
解析部52がパターンマッチングに失敗(すなわちフレーム構造の解析に失敗)すると、表示部10は、通信データを生のデータのまま表示する。これにより、オペレータは何らかのエラーが発生していることを把握できるようになる。また、習熟したオペレータであれば、生のデータからエラーの原因を理解できることもあるため、生のデータをそのまま表示してもよい。
また、表示部10は、通信データのうちエラーが検出された情報要素については強調表示801を実行するため、どの情報要素にエラーが発生したかをオペレータが把握しやすくなる。たとえば、被制御機器の動作状態を示す情報要素にエラーが発生しておらず、他の情報要素にエラーが発生したときは、被制御機器は故障しておらず、通信部分に何らかのエラーが発生していることをオペレータは理解できるであろう。
さらに、表示部10は、解析結果を階層構造として表示するため、オペレータは視覚的にコマンドの構成やフレーム構造を把握しやすくなろう。さらに、表示部10は、フレーム構造を構成している複数の情報要素のうちいずれかが操作部11によって指定されると、指定された情報要素の意味を示す説明901を表示してもよい。通常の階層構造にしたがってフレーム構造を表示すると、一部の情報要素を略称で表示するなど、オペレータにとっては情報要素の内容を一目では把握しにくくなることがある。そこで、ポインタ701によって指定された情報要素については、表示部10がその情報要素の詳細な説明901を表示してもよい。また、制御部5は、操作部11を通じてオペレータによって入力されたキーワードにしたがって解析結果を検索する検索部として機能してもよい。この場合、表示部10は、検索によってヒットして解析結果を表示してもよい。たとえば、オペレータは特定の情報要素について検索を実行することで、その情報要素について傾向を把握することが可能となろう。また、プリンタ12は、解析結果を印刷してもよい。これにより複数のオペレータによって解析結果を共有しやすくなり、エラーの原因を早期に発見できるようになろう。

Claims (9)

  1. 複数のプログラマブルロジックコントローラが接続されたネットワークにおいて当該複数のプログラマブルロジックコントローラのうち第1のプログラマブルロジックコントローラと接続されたプログラム作成支援装置であって、
    前記第1のプログラマブルロジックコントローラが第2のプログラマブルロジックコントローラまたは被制御機器との間で送信または受信した通信データをプログラム作成支援装置に転送するよう当該第1のプログラマブルロジックコントローラに要求するための要求信号を送信する通信データ要求部と、
    前記要求信号を受信した前記第1のプログラマブルロジックコントローラが送信する前記通信データを受信する通信データ受信部と、
    前記通信データを記憶する通信データ記憶部と、
    前記通信データ記憶部に記憶されている前記通信データのフレーム構造をパターンマッチングによって解析する解析部と、
    前記解析部によって得られた前記フレーム構造にしたがって前記通信データを表示する表示部と
    を備えることを特徴とするプログラム作成支援装置。
  2. 前記フレーム構造の先頭に配置される可能性があるマッチングデータを記憶したマッチングデータ記憶部をさらに備え、
    前記解析部は、前記マッチングデータ記憶部に記憶されているマッチングデータと前記通信データとを比較して、前記フレーム構造の先頭を特定することを特徴とする請求項1に記載のプログラム作成支援装置。
  3. 前記フレーム構造を構成している複数の情報要素のそれぞれの意味を示す解説情報を記憶した解説情報記憶部と、
    前記解析部によって取得された前記フレーム構造にしたがって、前記通信データに含まれている情報要素と、前記解説情報記憶部から読み出した当該情報要素の意味を示す解説情報とを関連付けて表示するための表示情報を作成する表示情報作成部と
    をさらに備えることを特徴とする請求項1または2に記載のプログラム作成支援装置。
  4. 前記解析部が前記パターンマッチングに失敗すると、前記表示部は、前記通信データを生のデータのまま表示することを特徴とする請求項1ないし3のいずれか1項に記載のプログラム作成支援装置。
  5. 前記解析部は、前記通信データに含まれている情報要素のエラーを検出するエラー検出部を備え、
    前記表示部は、前記エラーを検出された情報要素を強調表示することを特徴とする請求項1ないし4のいずれか1項に記載のプログラム作成支援装置。
  6. 前記表示部は、前記通信データの解析結果を階層構造として表示することを特徴とする請求項1ないし5のいずれか1項に記載のプログラム作成支援装置。
  7. オペレータの操作を受け付ける操作部をさらに備え、
    前記表示部は、前記フレーム構造を構成している複数の情報要素のうちいずれかが前記操作部によって指定されると、指定された情報要素の意味を示す説明を表示することを特徴とする請求項1ないし6のいずれか1項に記載のプログラム作成支援装置。
  8. オペレータによって入力されたキーワードにしたがって解析結果を検索する検索部をさらに備え、 前記表示部は、前記検索部によってヒットして解析結果を表示することを特徴とする請求項1ないし7のいずれか1項に記載のプログラム作成支援装置。
  9. 前記通信データの解析結果を印刷するプリンタをさらに備えることを特徴とする請求項1ないし8のいずれか1項に記載のプログラム作成支援装置。
JP2012194555A 2012-09-04 2012-09-04 プログラム作成支援装置 Expired - Fee Related JP5959374B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012194555A JP5959374B2 (ja) 2012-09-04 2012-09-04 プログラム作成支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012194555A JP5959374B2 (ja) 2012-09-04 2012-09-04 プログラム作成支援装置

Publications (2)

Publication Number Publication Date
JP2014052671A JP2014052671A (ja) 2014-03-20
JP5959374B2 true JP5959374B2 (ja) 2016-08-02

Family

ID=50611144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012194555A Expired - Fee Related JP5959374B2 (ja) 2012-09-04 2012-09-04 プログラム作成支援装置

Country Status (1)

Country Link
JP (1) JP5959374B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101662299B1 (ko) * 2016-06-17 2016-10-05 주식회사 그린인프라테크 Plc 전력제어 중계장치
JP7230989B2 (ja) * 2019-02-28 2023-03-01 株式会社安川電機 通信システム、通信方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3067414B2 (ja) * 1992-09-10 2000-07-17 横河電機株式会社 通信ラインモニタ装置
JPH09319411A (ja) * 1996-05-27 1997-12-12 Omron Corp 通信方法および装置
JPH1139008A (ja) * 1997-07-15 1999-02-12 Matsushita Electric Works Ltd プログラマブルコントローラ用のプログラム作成装置
JP2000057109A (ja) * 1998-08-11 2000-02-25 Hitachi Ltd 分散システム及びその運用管理方法
JP3792527B2 (ja) * 2001-03-30 2006-07-05 株式会社デジタル 通信プログラム作成装置、通信プログラムの作成プログラム、およびこれを記録したコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
JP2014052671A (ja) 2014-03-20

Similar Documents

Publication Publication Date Title
US11089090B2 (en) Data capture on a serial device
US20240236174A1 (en) Data Capture on a Serial Device
US8130393B2 (en) Printing apparatus, control method therefor, and data processing apparatus using the printing apparatus
JP5959374B2 (ja) プログラム作成支援装置
US20130055067A1 (en) Image processing apparatus, control method therefor and storage medium
CN109581965A (zh) 运转管理装置
CN110515842B (zh) 一种程序调试方法、装置及电子设备和存储介质
CN111065979A (zh) 成套设备监视装置以及分散控制***
JP5490307B2 (ja) 通信装置
JP7409887B2 (ja) データ中継装置および表示装置
JP6813077B1 (ja) 生産システム、復旧システム、生産方法、及びプログラム
US11177828B2 (en) Data collection apparatus, method, and program
JP2009201060A (ja) 画像形成装置及び画像処理システム
JP6493119B2 (ja) 画像形成システム及び操作装置
JP7224570B1 (ja) ログデータ分析支援システム、ログデータ分析支援方法、プログラム及び支援装置
JP6089837B2 (ja) 制御用計算システムにおける制御用計算機の更新方法
US11803376B2 (en) Programming support apparatus for developing a user program to be executed by a programmable logic controller
JP7224571B1 (ja) プログラマブルコントローラのトリガ中継ユニット、トリガ伝送システム、トリガ伝送方法及びプログラム
JP7267519B1 (ja) ロギング装置、ログデータ分析支援システム、情報提供方法及びプログラム
JP6011214B2 (ja) 画像処理システムおよび画像処理方法
US20220206453A1 (en) Program creation device, program creation method, and program
JP2009176191A (ja) 画像形成システム,画像形成装置,端末装置,画像形成装置の特定方法及びプログラム
EP3214540B1 (en) Print output control device and control method therefor
JP6901574B2 (ja) 電子マニュアル表示装置、電子マニュアル表示システム、電子マニュアル表示方法および電子マニュアル表示プログラム
JP2023019529A (ja) 制御システム、端末、管理装置、端末アプリ、管理ツール、及び、エラー情報生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150311

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160621

R150 Certificate of patent or registration of utility model

Ref document number: 5959374

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees