説明

プログラマブルコントローラの周辺装置

【課題】通信ユニットの受信データ領域とシーケンス・プログラムの命令が出力するデータ領域との間で重複状態を検出することができるプログラムチェック機能を備えたプログラマブルコントローラの周辺装置を提供する。
【解決手段】シーケンス・プログラム14aおよび通信ユニット・パラメータ14bの読み出し手段と、シーケンス・プログラム14aの命令の情報テーブル14eと、命令が出力する第1データ領域と、通信ユニット・パラメータ14bの受信データ領域取得手段と、受信データ領域である第2データ領域と、第1データ領域および第2データ領域の重複状態を判定する使用状況登録手段と、使用状況テーブル14cおよび重複リスト14dと、重複リスト14dにより、シーケンス・プログラム14aと通信ユニット・パラメータ14bのデータ領域の重複状態の確認をおこなうプログラムチェック手段26dを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はプログラマブルコントローラの周辺装置に関する。
【背景技術】
【0002】
生産設備には、複数のプログラマブルコントローラにより構成され、各プログラマブルコントローラがネットワークに接続されてデータ交換しているシステムがある。このようなデータ交換には、コモンメモリ方式を使用した通信が一般に使用されている。コモンメモリ方式では、各プログラマブルコントローラに備えた通信ユニットのそれぞれに共通のメモリ(コモンメモリ)を有している。また、各プログラマブルコントローラは、シーケンス・プログラムからアクセス可能な内部メモリを有している。他のプログラマブルコントローラへのデータの送信は、プログラマブルコントローラ自身の内部メモリに設定した送信データ領域のデータを、通信ユニットのコモンメモリ上の所定の領域に書き込むことによりおこなわれる。そして、コモンメモリ上の所定の領域にデータが書き込まれると、他のプログラマブルコントローラの通信ユニットのコモンメモリ上の所定の領域に、自身のプログラマブルコントローラが書き込んだデータが反映される。データの受信は、プログラマブルコントローラが、自身に備えた通信ユニットのコモンメモリ上の所定の領域から、他のプログラマブルコントローラが書き込んだデータを読み出し、内部メモリに設定した受信データ領域に書き込むことによりおこなわれる。このように、プログラマブルコントローラ自身の内部メモリに設定した送信データ領域および受信データ領域に対し、シーケンス・プログラムからアクセスすることにより、他のプログラマブルコントローラとのデータ交換を可能としている。この内部メモリの送信データ領域および受信データ領域は、通信ユニットのパラメータによって設定される。
【0003】
シーケンス・プログラムは、シーケンス・プログラム編集機能を備えたプログラマブルコントローラの周辺装置により作成され、周辺装置から作成したシーケンス・プログラムをプログラマブルコントローラに書き込むことで、このシーケンス・プログラムを実装することができる。また、周辺装置は各種のパラメータ設定機能を備えており、例えば、通信ユニットのパラメータ設定として、通信ユニットのリンク構成や送受信のデータ領域を設定している。このパラメータをプログラマブルコントローラに書き込むことで、通信ユニットは、設定された通信処理をおこなう。
【0004】
ところで、シーケンス・プログラムを構成する命令において、各命令が出力するデータ領域の間で重複状態が発生すると、シーケンス・プログラムの動作不良となる場合がある。このため、周辺装置からシーケンス・プログラムをプログラマブルコントローラに書き込む前に、周辺装置に備えたプログラムチェック機能により、データ領域の重複状態をチェックして、シーケンス・プログラムの動作不良を未然に防いでいる。このプログラムチェック機能は、シーケンス・プログラムの各命令が出力するデータ領域の間で発生する重複状態を検出している。(特許文献1)
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−122409号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、データ領域の重複状態は、シーケンス・プログラムの各命令が出力するデータ領域の間で発生するだけではない。プログラマブルコントローラが通信ユニットを介してネットワークに接続され、シーケンス・プログラムが他のプログラマブルコントローラとデータ交換をおこなっている場合、通信ユニットの受信データ領域とシーケンス・プログラムの命令が出力するデータ領域との間でも重複状態が発生することが想定される。従来のプログラムチェック機能は、この重複状態を検出することができないという問題があった。
【0007】
本発明はかかる問題点を解決するためになされたもので、他のプログラマブルコントローラとのデータ交換をおこなうシーケンス・プログラムに対し、通信ユニットの受信データ領域とシーケンス・プログラムの命令が出力するデータ領域との間で重複状態を検出することができるプログラムチェック機能を備えたプログラマブルコントローラの周辺装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
請求項1に係わる発明は、上記の課題を解決するため、シーケンス・プログラムおよび通信ユニット・パラメータを格納する記憶手段と、前記記憶手段から前記シーケンス・プログラムを読み出すシーケンス・プログラム読み出し手段と、前記記憶手段から前記通信ユニット・パラメータを読み出す通信ユニット・パラメータ読み出し手段と、前記シーケンス・プログラムを構成する命令と前記命令が出力するデータサイズとが格納された情報テーブルと、前記シーケンス・プログラムの前記命令が出力する第1データ領域と、前記通信ユニット・パラメータに設定された受信データ領域を取得する受信データ領域取得手段と、前記受信データ領域取得手段により取得された第2データ領域と、前記第1データ領域および前記第2データ領域の使用状況を登録する使用状況テーブルと、前記第1データ領域および前記第2データ領域の使用状況を前記使用状況テーブル登録するとともに、領域間の重複状態を判定する使用状況登録手段と、前記重複状態にあるデータ領域を登録する重複リストと、前記重複リストにより、前記シーケンス・プログラムと前記通信ユニット・パラメータの重複状態の確認をおこなうプログラムチェック手段と、を備えることである。
【0009】
請求項2に係わる発明は、請求項1に記載のプログラマブルコントローラの周辺装置であって、前記受信データ領域取得手段は、前記通信ユニット・パラメータの通信方式を判別する通信方式判別手段と、前記通信方式ごとに定義されたパラメータ情報と、前記通信ユニット・パラメータの設定値を取得するパラメータ設定値取得手段と、前記パラメータの設定値から受信データを格納するデータ領域の先頭アドレスおよびデータサイズを計算するアドレス計算手段と、を備えることである。
【0010】
請求項3に係わる発明は、請求項1または2に記載のプログラマブルコントローラの周辺装置であって、前記データ領域の前記使用状況と重複状態を識別可能に画面に表示する使用状況表示手段を備えることである。
【0011】
請求項4に係わる発明は、請求項1または2に記載のプログラマブルコントローラの周辺装置であって、重複状態にある前記データ領域のアドレスが割り付けられた前記シーケンス・プログラムの前記命令コードを他の前記命令コードと識別可能に画面に表示するシーケンス・プログラム表示手段を備えることである。
【発明の効果】
【0012】
上記のように構成した請求項1の発明によれば、プログラマブルコントローラの周辺装置は、使用状況登録手段を呼び出すことにより、使用状況テーブルを生成し、シーケンス・プログラムと通信ユニット・パラメータの使用するデータ領域の重複状態の確認をおこなうことができる。このシーケンス・プログラムと通信ユニット・パラメータは、シーケンス・プログラム読み出し手段および通信ユニット・パラメータ読み出し手段により、読み出される。使用状況登録手段は、シーケンス・プログラムの命令と情報テーブルとを参照して、命令が出力する先頭アドレスとデータサイズにより示されるデータ領域を求める。このシーケンス・プログラムの命令が出力するデータ領域を第1データ領域とする。また、使用状況登録手段は、受信データ領域取得手段により、通信ユニット・パラメータに設定された受信データ領域である第2データ領域を取得する。そして、使用状況登録手段は、前記第1データ領域および前記第2データ領域の使用状況を使用状況テーブルに登録するとともに、データ領域の重複状態を判定する。重複状態と判定されたデータ領域は、重複リストに登録する。
【0013】
この重複リストにデータ領域が登録されていない場合、シーケンス・プログラムの命令が出力する第1データ領域どうしの間、およびシーケンス・プログラムの命令が出力する第1データ領域と通信ユニットの受信データ領域である第2データ領域との間において、重複状態にあるデータ領域が存在しないことを示している。
【0014】
また、重複リストにデータ領域が登録されている場合、シーケンス・プログラムの命令が出力する第1データ領域どうしの間、および、シーケンス・プログラムの命令が出力する第1データ領域と通信ユニットの受信データ領域である第2データ領域との間において、重複状態にあるデータ領域が存在することを示している。
【0015】
このように、使用状況登録手段は、通信ユニットの受信データ領域を含め、重複状態を自動的に検出することができるので、シーケンス・プログラムをプログラマブルコントローラに書き込む前に、使用状況登録手段により重複リストを生成することで、シーケンス・プログラム実行前に重複状態を含めたプログラム・チェックを確実におこなうことができる。さらに、重複状態の要因となったシーケンス・プログラムの命令および通信ユニット・パラメータを特定することができるので、重複状態の解消も容易におこなうことができる。
【0016】
請求項2に係わる発明によれば、通信ユニット・パラメータが通信方式毎に異なるパラメータであっても、通信方式判別手段により、通信方式を判別し、パラメータ設定値取得手段が、通信方式ごとに定義されたパラメータ情報を参照することにより、パラメータの設定値を取得することができる。そして、アドレス計算手段により、パラメータの設定値から受信データを格納するデータ領域の先頭アドレスおよびデータサイズを計算することができるので、使用状況登録手段は、各種の通信方式の通信ユニットに対応して、重複状態を判定することができる。
【0017】
請求項3に係わる発明によれば、プログラマブルコントローラの周辺装置は、使用状況表示手段により、データ領域の使用状況の表示において、重複状態を識別可能に画面に表示するので、シーケンス・プログラムおよび通信ユニット・パラメータが使用するデータ領域の重複状態を一覧で見ることができる。
【0018】
請求項4に係わる発明によれば、プログラマブルコントローラの周辺装置は、シーケンス・プログラム表示手段により、シーケンス・プログラムの表示において、重複状態にあるデータ領域のアドレスが割り付けられた命令コードを、他の命令と識別可能に画面に表示することができる。これにより、重複状態の要因となったシーケンス・プログラムの命令をシーケンス・プログラムの表示上で容易に特定することができるので、重複状態の解消も容易におこなうことができる。
【図面の簡単な説明】
【0019】
【図1】本発明の第1の実施形態を示す周辺装置のシステム構成図。
【図2】本発明の第1の実施形態を示すプログラマブルコントローラの構成図。
【図3】図2のCPUユニットおよび通信ユニットの説明図。
【図4】本発明の第1の実施形態を示す周辺装置の通信ユニット・パラメータ設定画面。
【図5】図4のパラメータ設定のメモリ構成を示す説明図。
【図6】本発明の第1の実施形態を示す周辺装置の情報テーブルの説明図。
【図7】本発明の第1の実施形態を示す周辺装置の使用状況テーブルの説明図。
【図8】本発明の第1の実施形態を示す周辺装置のシーケンス・プログラムの説明図。
【図9】本発明の第1の実施形態を示す周辺装置のプログラムチェック処理のフローチャート。
【図10】本発明の第1の実施形態を示す周辺装置の使用状況登録処理のフローチャート。
【図11】本発明の第2の実施形態を示す周辺装置の使用状況表示例。
【図12】本発明の第3の実施形態を示す周辺装置のシーケンス・プログラム表示例。
【発明を実施するための形態】
【0020】
[第1の実施形態]
プログラマブルコントローラの周辺装置には、専用のハードウェアにより構成されるものや、汎用のパーソナルコンピュータ(以下、PCと記す)で構成されるもの等、種々のタイプが存在する。図1は、本実施形態の周辺装置ソフトウェアをインストールしたPCを周辺装置10として使用した場合のシステム構成図である。
以下、本発明の実施形態の周辺装置10のシステム構成を図面に従って説明する。
【0021】
図1に示すように、周辺装置10は、CPU(central processing unit)11のシステム・バス12を介して、システムメモリ28、HDD(hard disk drive)24、通信インタフェース27、キーボード22、マウス23、ディスプレイ21が接続されている。HDD24には、周辺装置ソフトウェア26がインストールされている。
【0022】
システムメモリ28は、RAM(random access memory)14及びROM(read only memory)13等から構成される記憶手段である。RAM14は、CPU11によりHDD24から各プログラムを読み出して実行するのに使用される。また、RAM14は、各プログラムの実行に要するデータを一時記憶するデータ領域、各種情報を生成するワークエリアとして使用される。ROM13には、BIOS(basic input/output system)プログラム13aが記憶されており、周辺装置10の起動時において、初期設定をするとともに、HDD24にインストールされているOS(operating system)25の起動をおこなう。通信インータフェース27は、通信ケーブル(図示せず)を介して、プログラマブルコントローラとの通信をおこなう。ディスプレイ21は、出力デバイスであり、周辺装置ソフトウェア26により、シーケンス・プログラムの編集等をおこなう場合の画面表示の出力に使用される。キーボード22およびマウス23は、それぞれ入力デバイスであり、周辺装置ソフトウェア26により、シーケンス・プログラムの編集をおこなう場合等の情報の入力に使用される。HDD24は、ハードディスクにて構成される記憶装置であり、周辺装置ソフトウェア26およびOS25等がインストールされている。
【0023】
周辺装置ソフトウェア26は、シーケンス・プログラム編集プログラム26a、変換プログラム26b、通信ユニット・パラメータ設定プログラム26c、プログラムチェック・プログラム26d等が含まれている。周辺装置10は、周辺装置ソフトウェア26の各プログラムにより、各機能が実装されている。OS25は、例えば、Windows(登録商標)7等が適用される。
【0024】
シーケンス・プログラム編集プログラム26aは、シーケンス・プログラム(ソースコード)14aを、対応するラダー図の形式にて編集する。シーケンス・プログラム(ソースコード)14aは、シーケンス・プログラム(バイナリコード)(図示せず)を読み出し、変換プログラム26bによりに変換したものである。編集後のシーケンス・プログラム(ソースコード)14aは、変換プログラム26bにより、シーケンス・プログラム(バイナリコード)に変換される。
【0025】
通信ユニット・パラメータ設定プログラム26cは、シーケンス・プログラム(ソースコード)14aにて、通信ユニットを使用する場合に、通信ユニット・パラメータ14bを設定する。
【0026】
プログラムチェック・プログラム26dは、シーケンスプログラム(ソースコード)14aの整合性のチェックおよび使用状況のチェックをおこなう。この使用状況のチェックにおいて、データ領域の使用状況を示す使用状況テーブル14cと重複リスト14dが生成される。
【0027】
作成したシーケンス・プログラムは、通信インータフェース27を介して、プログラマブルコントローラとの通信をおこない、シーケンス・プログラムおよびパラメータをプログラマブルコントローラへ書き込む。この時、シーケンス・プログラムの動作不良を未然に防ぐため、この書き込み前において、プログラムチェック処理をおこなっている。
【0028】
図2は、FL−netのネットワークに接続された複数のプログラマブルコントローラにより構成された生産設備の中のプログラマブルコントローラ100の構成図である。このプログラマブルコントローラは、FL−netのネットワークを介して、他のプログラマブルコントローラとデータ交換をおこなっている。図2に示すように、プログラマブルコントローラ100は、CPUユニット110と通信ユニット120とから構成されている。CPUユニット110と通信ユニット120は、ユニット間を接続する内部バス112を介して接続されている。この通信ユニット120は、FL−net規格に対応したものである。
【0029】
FL−netとは、FA制御システムに組み込まれる様々な機器(プログラマブルコントローラ、ロボットコントローラ、数値制御装置、パーソナルコンピュータ等)を相互に接続するネットワークの規格である。FL−netは、JEMA(日本電機工業会)により提唱された規格であり、コモンメモリ方式が採用されている。プログラマブルコントローラ100は、このFL−net規格に対応した通信機器である通信ユニット120を備えることで、FL−netのネットワークに組み込むことが可能となる。FL−netでは、機器間をイーサネット(登録商標)(Ethernet(登録商標))により接続し、通信プロトコルにはUDP/IP(User Datagram Protocol/Internet Protocol)が用いられている。
【0030】
CPUユニット110は、CPU111の内部バス112を介して、ROM115、RAM114、プログラムメモリ113、I/O制御回路118、通信インターフェース119が接続されている。通信インータフェース119は、通信ケーブル(図示せず)を介して、周辺装置10との通信をおこなう。周辺装置10により、通信インータフェース119を介して、書き込まれたシーケンス・プログラムおよびパラメータは、プログラムメモリ113に格納される。ROM115には、システムプログラム115aが、RAM114には、内部メモリ114aが記憶されている。システムプログラム115aは、CPUユニット110を制御するとともに、シーケンス・プログラム113aを実行することにより、シーケンス制御をおこなっている。
【0031】
通信ユニット120は、CPU121の内部バスを介して、ROM125、RAM124、コモンメモリ124a、通信インターフェース129が接続され、この通信インターフェース129を介して、FL−netのネットワークと接続されている。FL−netのネットワークとの接続には、イーサネット(登録商標)ケーブルが用いられる。制御プログラム125aは、通信ユニット120の制御をしている。通信ユニット120は、複数台備えることも可能である。
【0032】
図3は、CPUユニット110の内部メモリ114aと通信ユニット120のコモンメモリ124aの説明図である。シーケンス・プログラム113aからアクセス可能な内部メモリ114aには、受信データ領域と送信データ領域が設定されている。ネットワークを介して受信したコモンメモリ124aの他装置データを、内部メモリ114aの受信データ領域に読み出す。また、送信データ領域のデータをコモンメモリ124aに書き込むことにより、自装置データをネットワークを介して送信している。このネットワークを介して、各プログラマブルコントローラ間でサイクリック通信をおこなうことによって、各プログラマブルコントローラはコモンメモリを共有している。
【0033】
図4は、通信ユニット・パラメータ設定プログラム26cによる、FL−net通信ユニット・パラメータ設定300である。このFL−net通信ユニット・パラメータ設定300により、パラメータ値を設定した後、このパラメータをプログラマブルコントローラに書き込むことで、通信ユニットは設定の通信処理をおこなう。
【0034】
図4に示すように、FL−net通信ユニット・パラメータ設定300は、リレーリンク310とレジスタリンク410の設定を有している。リレーリンク310は、主にビット単位でのアクセスが可能な内部メモリのデータ領域のアドレス設定であり、レジスタリンク410には、主にワード単位でのアクセスが可能な内部メモリのデータ領域のアドレス設定である。それぞれ、リンク領域先頭アドレス311,411、リンク領域ワード数313,413、送信領域先頭アドレス314,414、送信領域ワード数316,416のパラメータが設定可能となっている。なお、リンク領域末尾アドレス322,422、送信領域末尾アドレス325,425は、設定されたパラメータから自動的に計算される。
【0035】
ここで、通信ユニット・パラメータは、通信ユニットごとに番号付けされ、通信方式等の付帯情報も有している。プログラマブルコントローラが複数台の通信ユニットを備える場合、台数分の通信ユニット・パラメータの設定を、それぞれにおこなう必要がある。また、FL−netの通信ユニットの場合、別途ノード番号等の設定も必要である。
【0036】
図5は、図4のレジスタリンク410のパラメータ設定のメモリ構成を示す説明図である。レジスタリンク410の受信データ領域は、リンク領域の範囲から送信領域の範囲を除いたR0000〜R02FFと、R0500〜R05FFの領域となる。なお、図示していないが、リレーリンク310の受信データ領域は、L000〜L0FFと、L200〜L3FFの領域となる。
【0037】
ここで、R0000、L000等は、シーケンス・プログラムが認識可能なアドレス形式であり、先頭の識別文字に16進のアドレスを付加したものである。先頭の識別文字がRのアドレスは、リンクレジスタと呼ばれるワード単位のアドレスであり、先頭の識別文字がLのアドレスは、リンクリレーと呼ばれるビット単位のアドレスである。また、アドレスL000〜L00Fの16ビットをL00Wと表記することにより、ワード単位で指定することができる。なお、本実施形態においては、2バイト(16ビット)を1ワードとするシステムを想定している。
【0038】
以上のように構成された本実施形態の周辺装置10において、データ領域の重複状態を検出する処理について説明する。
【0039】
図6は、情報テーブル14eの説明図である。図6に示すように、情報テーブル14eは、命令600が出力するデータ領域のアドレス601を有するオペランド番号と、データサイズ602を有するオペランド番号を有している。例えば、WBMOVの場合、出力するデータ領域のアドレスは第2オペランドに記述され、データサイズは第3オペランドに記述されていることを示している。
【0040】
図7は、使用状況テーブル14cの説明図である。図7に示すように、使用状況テーブル14cは、プログラマブルコントローラの内部メモリの各アドレスに対応する使用状況のフラグ情報で構成されている。アドレス順の10H毎のレコードに区切って、各アドレスの使用状況のフラグ情報をアドレス昇順にテーブル表記している。
【0041】
使用状況テーブル14c中、フラグ情報がオン状態の部位は、そのアドレスの内部メモリのデータ領域が使用されていることを表している。例えば、図7において、アドレスR0300〜R04FFのフラグ情報はオフ状態であり、このデータ領域426が使用されていないことを示している。
【0042】
次に、本実施形態のプログラムチェック処理を図9のフローチャートにより説明する。
図9に示すように、プログラムチェック処理は、データ領域の重複状態のチェックと整合性のチェックをおこなっている。
【0043】
整合性チェックは、シーケンス・プログラム14aが所定の形式であるか、命令が使用するアドレスが正しいか、ジャンプ先ラベルが存在するか、等についてチェックする。(ステップS101)
【0044】
そして、チェック結果を判定し、問題があればチェック結果を記憶し、問題がなければスキップする。(ステップS102)(ステップS103)
【0045】
次に、シーケンス・プログラム14aに対し、使用状況登録処理により、データ領域の重複状態のチェックをおこなう。使用状況テーブルと重複リストが出力される。(ステップS104)
【0046】
出力された重複リストを読み出し、重複リストが空でなければ内容を記憶し、重複リストが空ならばスキップする。(ステップS105)(ステップS106)(ステップS107)
【0047】
記憶された整合性チェックの結果および重複リストの内容を表示形式にして、ディスプレイに表示する。(ステップS108)
【0048】
次に、本実施形態の使用状況登録処理を図10のフローチャートにより説明する。
【0049】
図10に示すように、使用状況登録処理は、最初に初期化と先頭の通信ユニット・パラメータの取得をおこなう。初期化は、使用状況テーブルと重複リストを生成し、使用状況テーブルのすべてのアドレスのフラグ情報をオフ状態にする。また、重複リストは空の状態にする。(ステップS001)
【0050】
次に、受信データ格納領域取得処理により、通信ユニット・パラメータに設定された受信データを格納するアドレスとデータサイズを取得する。(ステップS002)
【0051】
例えば、図4のFL−net通信ユニット・パラメータ設定300により設定されたパラメータを取得した場合について説明する。受信データ格納領域取得処理は、通信方式判別手段により、パラメータの通信方式がFL−netであると判別する。そして、FL−netのパラメータ情報を参照して、リンク領域先頭アドレス、リンク領域ワード数、送信領域先頭アドレス、送信領域ワード数の設定値を取得する。これにより、リンク領域先頭アドレスL00W、リンク領域ワード数64、送信領域先頭アドレスL10W、送信領域ワード数16が取得される。
【0052】
そして、アドレス計算手段により、リレーリンクの受信データ領域は、リンク領域の範囲から送信領域の範囲を除いたアドレスL00WからデータサイズFHワード分と、アドレスL20Wからデータサイズ1FHワード分と計算される。また、レジスタリンクの受信データ領域は、リンク領域の範囲から送信領域の範囲を除いたアドレスR0000からデータサイズ2FFワード分と、アドレスR0500からデータサイズFFHワード分と計算される。
【0053】
使用状況テーブルを参照して、このアドレスとデータサイズにより示されるデータ領域に対応するフラグ情報を取得し、使用状況を判定する。(ステップS003)
【0054】
そして、フラグ情報がデータ領域が使用されていないことを示すオフ状態ならば、データ領域が使用されていることを示すオン状態に変更する。(ステップS004)
【0055】
すでに、データ領域が使用されているならば、この通信ユニット・パラメータを示す番号とアドレスを重複リストに登録する。(ステップS005)
【0056】
例えば、上述の通信ユニット・パラメータを読み出した場合にあって、使用状況テーブルを参照すると、アドレスR0000〜R02FF、R0500〜R05FF、L000〜L0FF、L200〜L3FFに対応するフラグ情報がオフ状態であったとする。
【0057】
通信ユニット・パラメータの受信データ領域は、アドレスR0000〜R02FF、R0500〜R05FF、L000〜L0FF、L200〜L3FFであり、これらは、使用されていないので、アドレスR0000〜R02FF、R0500〜R05FF、L000〜L0FF、L200〜L3FFに対応するフラグ情報をオン状態として、使用状況テーブルに登録する。
【0058】
ここで、使用状況テーブルにおいて、アドレスR0000〜R02FF、R0500〜R05FF、L000〜L0FF、L200〜L3FFに対応するフラグ情報の中に、すでにオン状態であるアドレスが存在した場合、そのアドレスは重複状態にあると判定する。
【0059】
そして、その通信ユニット・パラメータを示す番号とアドレスを重複リストに登録する。なお、重複状態アドレス以外のアドレスのフラグ情報はオン状態として、使用状況テーブルに登録する。
【0060】
そして、パラメータから次の通信ユニット・パラメータを取得する。(ステップS006)
【0061】
すべての通信ユニット・パラメータについて、パラメータを取得したかを判定し、取得していなければ、ステップS002〜ステップS006を繰り返し、取得していれば、次のステップへ進む。(ステップS007)
【0062】
次に、シーケンス・プログラム(ソースコード)から、先頭ステップの1命令を取得する。(ステップS008)
【0063】
情報テーブルを参照して、ステップの命令が出力するデータのアドレスとデータサイズを取得する。(ステップS009)
【0064】
例えば、図8(b)のシーケンスプログラム(ソースコード)は、図8(a)のラダー図に対応するものである。図8(b)の、ステップ0105を読み出した場合、ニーモニック700のFUNCと、オペランド710のWBMOVを得る。これは、ステップ0105は、命令が関数タイプFUNCであり、その種別がWBMOVであることを示している。
【0065】
WBMOVはワード単位のブロック転送の命令(関数)であり、3個のオペランドを引数として、第1オペランド721のアドレスから第2オペランド722のアドレスへ、第3オペランド723のデータサイズ分(ワード数)を転送する仕様である。そして、図6の情報テーブル14eを参照することにより、命令600がWBMOVの場合、データ領域のアドレス601が第2オペランドに記述され、データサイズ602が第3オペランドに記述されていることが把握できる。
【0066】
ここで、図8(b)から第1オペランド721のD0100と、第2オペランド722のR04FCと、第3オペランド723の8dが取得される。従って、図8(c)に示すように、ステップ0105のWBMOVが出力するデータ領域は、アドレスR04FCからデータサイズ8ワード分である。ここでdは10進の値を示している。
【0067】
使用状況テーブルにおいて、このアドレスとデータサイズにより示されるデータ領域と対応するフラグ情報を取得し、使用状況を判定する。(ステップS010)
【0068】
そして、フラグ情報がデータ領域が使用されていないことを示すオフ状態ならば、データ領域が使用されていることを示すオン状態に変更する。(ステップS011)
【0069】
また、フラグ情報がデータ領域がすでに使用されていることを示すオン状態ならば、この命令のステップ番号とアドレスを重複リストに登録する。(ステップS012)
【0070】
例えば、図8(b)ステップ0105のWBMOVを読み出した場合にあって、使用状況テーブルを参照すると、アドレスR04FC〜R0503と対応するフラグ情報がオフ状態、であったとする。
【0071】
ステップ0105のWBMOVが出力するデータ領域は、アドレスR04FCからデータサイズ8ワード分であり、アドレスR04FC〜R0503は使用されていないので、アドレスR04FC〜R0503に対応するフラグ情報をオン状態として、使用状況テーブルに登録する。
【0072】
そして、図7に示すように、使用状況テーブルが、アドレスR04FC〜R04FFと対応するフラグ情報がオフ状態、アドレスR0500〜R0503と対応するフラグ情報がオン状態、であったとする。
【0073】
ステップ0105のWBMOVが出力するデータ領域は、アドレスR04FCからデータサイズ8ワード分であるので、アドレスR04FC〜R0503が使用されているかを、使用状況テーブルをチェックして判定する。
【0074】
この場合、使用状況テーブルにおいて、アドレスR04FC〜R04FFのフラグ情報はオフ状態であるが、アドレスR0500〜R0503のフラグ情報はすでにオン状態であるため、アドレスR0500〜R0503のデータ領域は、重複状態と判定される。
【0075】
そして、アドレスR0500〜R0503とステップ番号0105の情報を重複リストに登録する。なお、アドレスR04FC〜R04FFのフラグ情報はオン状態として、使用状況テーブルに登録する。
【0076】
次に、シーケンス・プログラム(ソースコード)から、次ステップの1命令を取得する。(ステップS013)
【0077】
シーケンス・プログラム(ソースコード)の末尾のステップまで、命令を取得したか判定し、取得していなければ、ステップS009〜ステップS013を繰り返し、取得していれば、処理を終了する。(ステップS014)
【0078】
このように、使用状況登録処理は、通信ユニットの受信データ領域とシーケンス・プログラムの命令が出力するデータ領域の使用状況をチェックし、その結果を使用状況テーブルおよび重複リストに出力する。
【0079】
本発明のプログラムチェック機能は、使用状況登録処理により、通信ユニットの受信データ領域とシーケンス・プログラムの命令が出力するデータ領域との間で、重複状態を検出することができるので、シーケンス・プログラムが他のプログラマブルコントローラとのデータ交換をおこなっている場合においても、確実なプログラムチェックをおこなうことができる。さらに、重複状態の要因となったシーケンス・プログラムの命令および通信ユニット・パラメータを特定することができるので、重複状態の解消も容易におこなうことができる。
【0080】
[第2の実施形態]
図11は、本発明の第2の実施形態を示す使用状況表示例である。
本実施形態では、シーケンス・プログラム14aの使用状況を周辺装置10のディスプレイに表示する。
【0081】
図11に示すように、使用状況表示800は、指定されたアドレスの使用状況を表示する。使用状況表示800は、使用状況登録処理により生成された使用状況テーブルと重複リストの情報をアドレス順に一覧表形式にして表示したものである。表示アドレス801に、表示したいアドレスの識別文字を入力すると、アドレス順の10H毎の行に区切って、各アドレスの使用状況のフラグ情報をアドレス昇順に一覧802表示する。一覧802の横に備えたスクロールバー803を操作することにより、表示するアドレス範囲を変更することができる。使用状況表示800において、シーケンス・プログラムの命令が使用しているデータ領域は、アドレスの識別文字811で示され、使用されていないデータ領域810は、中点(・)で示される。また、通信ユニット・パラメータに設定された受信データ領域820は、背景色を他と識別可能に表示される。そして、重複リストの情報にあるアドレスは、重複状態にあるデータ領域として、アドレスの識別文字821を強調表示する。従って、図11において、アドレスR04EC〜R04F3およびR04FC〜R0503は、シーケンス・プログラムの命令が使用しており、R0500〜R05FFは、受信データ領域に設定されているので、R0500〜R0503は重複状態にあることが把握できる。
【0082】
このように、任意のタイミングで使用状況を表示できるので、例えば、シーケンス・プログラムの編集中に使用状況表示をおこなうことにより、どこのデータ領域を使用すれば重複状態を発生させずに、領域を確保できるか、容易に把握することができる。また、使用状況表示において、重複状態にあるデータ領域を識別することができるので、このデータ領域を確認するとともに、重複状態を解消するには、どこのデータ領域を使用すればよいか、容易に把握することができる。
【0083】
[第3の実施形態]
図12は、本発明の第3の実施形態を示すシーケンス・プログラム表示例である。
本実施形態では、周辺装置10によるシーケンス・プログラムの表示において、重複状態にあるデータ領域を使用している命令およびアドレスを識別可能に表示する。
【0084】
図12に示すように、シーケンス・プログラム表示900は、シーケンス・プログラム上において、重複状態にあるデータ領域を使用している命令を識別可能に表示することができる。シーケンス・プログラム表示900は、使用状況登録処理により生成された使用状況テーブルと重複リストの情報を参照して、重複状態にあるデータ領域を使用している命令およびアドレスを強調表示する。従って、図12において、コイル911のアドレスL220と、命令(関数)912は重複状態にあることが把握できる。
【0085】
このように、周辺装置10は、シーケンス・プログラムの表示において、重複状態にあるデータ領域を使用している命令およびアドレスを強調表示できるので、係わる命令およびアドレスを容易に見つけることができる。
【0086】
なお、本実施形態では、使用状況表示において、命令の出力データ領域および受信データ領域を表示しているが、命令の入力データ領域および送信データ領域を識別可能にして、双方のデータ領域を表示してもよい。シーケンス・プログラムにおいて使用される、すべてのデータ領域を視覚的に把握することができる。
【符号の説明】
【0087】
10:周辺装置、 11:CPU、 12:内部バス、
13:ROM、 13a:BIOS、 14:RAM、
14a:シーケンス・プログラム(ソースコード)、
14b:通信ユニット・パラメータ、 14c:使用状況テーブル、
14d:重複リスト、 14e:情報テーブル、 21:ディスプレイ、
22:キーボード、 23:マウス、 24:HDD、 25:OS、
26:周辺装置ソフトウェア、 26a:シーケンス・プログラム編集プログラム、
26b:変換プログラム、 26c:通信ユニット・パラメータ設定プログラム、
26d:プログラムチェック・プログラム、 27:通信インターフェース、
28:システムメモリ、
100:プログラマブルコントローラ、
110:CPUユニット、 111:CPU、 112:内部バス、
113:プログラムメモリ、 113a:シーケンス・プログラム、
114:RAM、 114a:内部メモリ、
115:ROM、 115a:システムプログラム、
118:I/O制御回路、 119:通信インターフェース、
120:通信ユニット、 121:CPU、
124:RAM、 124a:コモンメモリ、
125:ROM、 125a:制御プログラム、
129:通信インターフェース、
300:FL−net通信パラメータ設定、
310:リレーリンク、
311:リンク先頭アドレス、 313:リンク領域ワード数、
314:送信領域先頭アドレス、 316:送信領域ワード数、
321:リンク先頭アドレス(設定値)、 321:リンク末尾アドレス、
323:リンク領域ワード数(設定値)、 324:送信領域先頭アドレス(設定値)、
325:送信領域末尾アドレス、 326:送信領域ワード数(設定値)、
410:レジスタリンク、
411:リンク先頭アドレス、 413:リンク領域ワード数、
414:送信領域先頭アドレス、 416:送信領域ワード数、
421:リンク先頭アドレス(設定値)、 421:リンク末尾アドレス、
423:リンク領域ワード数(設定値)、 424:送信領域先頭アドレス(設定値)、
425:送信領域末尾アドレス、 426:送信領域ワード数(設定値)、
600:命令、 601:アドレス、 602:データサイズ、
700:ニモニック、 710:オペランド、 720:命令(関数)、
721:第1オペランド、 722:第2オペランド、 723:第3オペランド、
800:使用状況表示、 801:表示アドレス、 802:一覧、
803:スクロールバー、
810:データ領域、 811:識別文字、
820:受信データ領域、 821:識別文字(強調表示)、
900:シーケンス・プログラム表示、 901:コイル、 902:命令(関数)

【特許請求の範囲】
【請求項1】
シーケンス・プログラムおよび通信ユニット・パラメータを格納する記憶手段と、
前記記憶手段から前記シーケンス・プログラムを読み出すシーケンス・プログラム読み出し手段と、
前記記憶手段から前記通信ユニット・パラメータを読み出す通信ユニット・パラメータ読み出し手段と、
前記シーケンス・プログラムを構成する命令と前記命令が出力するデータサイズとが格納された情報テーブルと、
前記シーケンス・プログラムの前記命令が出力する第1データ領域と、
前記通信ユニット・パラメータに設定された受信データ領域を取得する受信データ領域取得手段と、
前記受信データ領域取得手段により取得された第2データ領域と、
前記第1データ領域および前記第2データ領域の使用状況を登録する使用状況テーブルと、
前記第1データ領域および前記第2データ領域の使用状況を前記使用状況テーブル登録するとともに、領域間の重複状態を判定する使用状況登録手段と、
前記重複状態にあるデータ領域を登録する重複リストと、
前記重複リストにより、前記シーケンス・プログラムと前記通信ユニット・パラメータの重複状態の確認をおこなうプログラムチェック手段と、
を備えることを特徴とするプログラマブルコントローラの周辺装置。
【請求項2】
請求項1に記載のプログラマブルコントローラの周辺装置であって、
前記受信データ領域取得手段は、
前記通信ユニット・パラメータの通信方式を判別する通信方式判別手段と、
前記通信方式ごとに定義されたパラメータ情報と、
前記通信ユニット・パラメータの設定値を取得するパラメータ設定値取得手段と、
前記パラメータの設定値から受信データを格納するデータ領域の先頭アドレスおよびデータサイズを計算するアドレス計算手段と、
を備えることを特徴とするプログラマブルコントローラの周辺装置。
【請求項3】
請求項1または2に記載のプログラマブルコントローラの周辺装置であって、
前記データ領域の前記使用状況と重複状態を識別可能に画面に表示する使用状況表示手段を備えることを特徴とするプログラマブルコントローラの周辺装置。
【請求項4】
請求項1または2に記載のプログラマブルコントローラの周辺装置であって、
重複状態にある前記データ領域のアドレスが割り付けられた前記シーケンス・プログラムの前記命令コードを他の前記命令コードと識別可能に画面に表示するシーケンス・プログラム表示手段を備えることを特徴とするプログラマブルコントローラの周辺装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−97460(P2013−97460A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−237792(P2011−237792)
【出願日】平成23年10月28日(2011.10.28)
【出願人】(000001247)株式会社ジェイテクト (7,053)
【Fターム(参考)】