(57)【要約】      （修正有）【課題】ＨＤＬで記述した制御論理を、ＰＬＣでも容易に実行可能とする。【解決手段】ハードウェア記述を取得するためのハードウェア記述取得手段１０と、ハードウェア記述取得手段１０で取得されたハードウェア記述から、論理合成によってネットリストを取得するためのネットリスト取得手段１２と、ネットリスト取得手段１２で取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段１４と、置換手段１４で置き換えられた組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段１５と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段１６とを備える。【選択図】図１
2013206438.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、
ハードウェア記述を取得するためのハードウェア記述取得手段と、
前記ハードウェア記述取得手段で取得されたハードウェア記述から、論理合成によってネットリストを取得するためのネットリスト取得手段と、
前記ネットリスト取得手段で取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、
前記置換手段で置き換えられた組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段と、
セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段と、
を備えることを特徴とするシーケンス制御プログラム変換装置。
【請求項２】
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、
ネットリストを取得するためのネットリスト取得手段と、
取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、
前記置換手段で置き換えられた組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替えるためのソート手段と、
セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段と、
を備えることを特徴とするシーケンス制御プログラム変換装置。
【請求項３】
請求項１又は２に記載のシーケンス制御プログラム変換装置であって、
前記置換手段が、取得されたハードウェア記述又はネットリストにフリップフロップが含まれる場合、これを切り出し、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換え、
前記ニーモニック変換手段が、フリップフロップをシーケンス制御のニーモニックに変換することを特徴とするシーケンス制御プログラム変換装置。
【請求項４】
請求項１から３のいずれか一に記載のシーケンス制御プログラム変換装置であって、
前記置換手段が、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出し、前記演算器の信号名をプログラマブルコントロール装置のデバイス名に置き換え、
前記ニーモニック変換手段が、演算器をシーケンス制御のニーモニックに変換することを特徴とするシーケンス制御プログラム変換装置。
【請求項５】
請求項１から４のいずれか一に記載のシーケンス制御プログラム変換装置であって、
前記置換手段が、取得されたハードウェア記述又はネットリストから、セル、ａｓｓｉｇｎ文の信号名を抽出することを特徴とするシーケンス制御プログラム変換装置。
【請求項６】
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、
ハードウェア記述を取得する工程と、
取得されたハードウェア記述から、論理合成によってネットリストを取得する工程と、
取得されたネットリストから、組み合わせ回路を抽出する工程と、
抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路に対して、必要に応じてセルを実行可能な順に並び替える工程と、
セルを、シーケンス制御のニーモニックに変換する工程と、
を含むことを特徴とするシーケンス制御プログラム変換方法。
【請求項７】
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、
ネットリストを取得する工程と、
取得されたネットリストから、組み合わせ回路を抽出する工程と、
抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路のネットリストに対して、必要に応じてセルを実行可能な順に並び替える工程と、
セルを、シーケンス制御のニーモニックに変換する工程と、
を含むことを特徴とするシーケンス制御プログラム変換方法。
【請求項８】
請求項６又は７に記載のシーケンス制御プログラム変換方法であって、さらに、
取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す工程と、
前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える工程と、
を含むことを特徴とするシーケンス制御プログラム変換方法。
【請求項９】
請求項６から８のいずれか一に記載のシーケンス制御プログラム変換方法であって、さらに、
取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す工程と、
前記演算器をシーケンス制御のニーモニックに置き換える工程と、
を含むことを特徴とするシーケンス制御プログラム変換方法。
【請求項１０】
請求項６から９のいずれか一に記載のシーケンス制御プログラム変換方法であって、さらに、
取得されたハードウェア記述又はネットリストから、セル、ａｓｓｉｇｎ文の信号名を抽出する工程を含むことを特徴とするシーケンス制御プログラム変換方法。
【請求項１１】
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、
ハードウェア記述を取得する機能と、
取得されたハードウェア記述から、論理合成によってネットリストを取得する機能と、
取得されたネットリストから、組み合わせ回路を抽出する機能と、
抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、
組み合わせ回路に対して、セルを実行可能な順に並び替える機能と、
セルを、シーケンス制御のニーモニックに変換する機能と、
をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
【請求項１２】
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、
ネットリストを取得する機能と、
取得されたネットリストから、組み合わせ回路を抽出する機能と、
抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、
組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替える機能と、
セルを、シーケンス制御のニーモニックに変換する機能と、
をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
【請求項１３】
請求項１１又は１２に記載のシーケンス制御プログラム変換プログラムであって、さらに、
取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す機能と、
前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える機能と、
をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
【請求項１４】
請求項１１から１３のいずれか一に記載のシーケンス制御プログラム変換プログラムであって、さらに、
取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す機能と、
前記演算器をシーケンス制御のニーモニックに置き換える機能と、
をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
【請求項１５】
請求項１１から１４のいずれか一に記載のシーケンス制御プログラム変換プログラムであって、さらに、
取得されたハードウェア記述又はネットリストから、セル、ａｓｓｉｇｎ文の信号名を抽出する機能をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
【請求項１６】
請求項１１から１５のいずれか一に記載されるプログラムを格納したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア記述言語で書かれたプログラムを、シーケンス制御プログラムに変換可能なシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体に関する。
【背景技術】
【０００２】
生産設備等の制御には、一般的にシーケンス制御が用いられている。シーケンス制御においては、プログラマブルコントロール装置（シーケンサー、あるいはプログラマブルロジックコントローラ（Programmable Logic Controller：ＰＬＣ）等とも呼ばれ、以下「ＰＬＣ」という。）上で動作するラダープログラム（ラダー回路図）により制御を行うことが一般的である。ラダープログラムは、比較的単純な制御の場合には、初心者でも容易に作成可能であるものの、構造化、モジュール化がなされていないため、制御の論理が複雑になると、プログラミング、デバッグが極めて困難となる。また、可読性が低く、他人が書いたプログラムの理解も困難である。
【０００３】
そこで、可読性に優れたハードウェア記述言語（Hardware Description Language：以下「ＨＤＬ」という。）であるVerilog−ＨＤＬ、ＶＨＤＬ等を用いて記述することが考えられる。しかしながら、一般のＰＬＣではこのようなハードウェア記述を読み込ませることができないため、汎用のＰＬＣを利用せずに、専用のＦＰＧＡボードを設計して、ハードウェア記述を論理合成して得た論理回路を実装する必要が生じ、コストや時間が嵩むばかりか、ＦＰＧＡボードとＭＥＳインターフェース等との接続が容易に行えなくなるという問題が生じる。このため従来は、専用ボードでなく汎用のＰＬＣを用いる現場においては、ＰＬＣで読み込み可能な言語であるラダー図を用いてプログラムを作成していたが、この場合は上述の通り、制御の論理が複雑になると可読性が低下してプログラミング、デバッグが困難になるという問題が生じていた。
【０００４】
一方、ラダー回路図をＨＤＬのプログラムに変換する方法は提案されている（例えば特許文献１）。この方法によれば、ラダー回路図から、ＶＨＤＬ等のＨＤＬプログラムを得て、このＨＤＬプログラムに基づきＣＰＬＤやＦＰＧＡ等のハードウェア的プログラム可能な集積回路に対するプログラミングを行うことができる。しかしながら、この方法は専用のＦＰＧＡボードを起こして回路設計を行う方法には有効であるが、ＰＬＣを用いた汎用設計には適用できない。また該特許文献に記載されるのは、高度なＨＤＬを用いることなく、ラダー回路図でもって容易にハードウェア的プログラム可能な集積回路に対するプログラミングが行えるようにすることを目的としており、ＨＤＬを積極的に用いたプログラミングとは対極に位置するものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−５０６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、従来のこのような問題点を解決するためになされたものである。本発明の主な目的は、ＨＤＬで記述した制御論理を、ＰＬＣで実行可能としたシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体を提供することにある。
【課題を解決するための手段及び発明の効果】
【０００７】
上記目的を達成するために、本発明の第１の側面に係るシーケンス制御プログラム変換装置によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、ハードウェア記述を取得するためのハードウェア記述取得手段と、前記ハードウェア記述取得手段で取得されたハードウェア記述から、論理合成によってネットリストを取得するためのネットリスト取得手段と、前記ネットリスト取得手段で取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、前記置換手段で置き換えられた組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段と、を備えることができる。上記構成により、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置等で読み込み可能なニーモニックに変換することができ、シーケンス制御プログラムとして利用できる。
【０００８】
また、第２の側面に係るシーケンス制御プログラム変換装置によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、ネットリストを取得するためのネットリスト取得手段と、取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、前記置換手段で置き換えられた組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替えるためのソート手段と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段とを備えることができる。
【０００９】
さらに、第３の側面に係るシーケンス制御プログラム変換方法によれば、前記置換手段が、取得されたハードウェア記述又はネットリストにフリップフロップが含まれる場合、これを切り出し、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換え、前記ニーモニック変換手段が、フリップフロップをシーケンス制御のニーモニックに変換することができる。
【００１０】
さらにまた、第４の側面に係るシーケンス制御プログラム変換装置によれば、前記置換手段が、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出し、前記演算器の信号名をプログラマブルコントロール装置のデバイス名に置き換え、前記ニーモニック変換手段が、演算器をシーケンス制御のニーモニックに変換することができる。
【００１１】
さらにまた、第５の側面に係るシーケンス制御プログラム変換装置によれば、前記置換手段が、取得されたハードウェア記述又はネットリストから、セル、ａｓｓｉｇｎ文の信号名を抽出することができる。
【００１２】
さらにまた、第６の側面に係るシーケンス制御プログラム変換方法によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、ハードウェア記述を取得する工程と、取得されたハードウェア記述から、論理合成によってネットリストを取得する工程と、取得されたネットリストから、組み合わせ回路を抽出する工程と、抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路に対して、必要に応じてセルを実行可能な順に並び替える工程と、セルを、シーケンス制御のニーモニックに変換する工程と、を含むことができる。これにより、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置等で読み込み可能なニーモニックに変換することができ、シーケンス制御プログラムとして利用できる。
【００１３】
さらにまた、第７の側面に係るシーケンス制御プログラム変換方法によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、ネットリストを取得する工程と、取得されたネットリストから、組み合わせ回路を抽出する工程と、抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路のネットリストに対して、必要に応じてセルを実行可能な順に並び替える工程と、セルを、シーケンス制御のニーモニックに変換する工程と、を含むことができる。
【００１４】
さらにまた、第８の側面に係るシーケンス制御プログラム変換方法によれば、さらに取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す工程と、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える工程と、を含むことができる。
【００１５】
さらにまた、第９の側面に係るシーケンス制御プログラム変換方法によれば、さらに取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す工程と、前記演算器をシーケンス制御のニーモニックに置き換える工程と、を含むことができる。これにより、プログラマブルコントロール装置が有する演算器を有効活用でき、効率よくシーケンス制御を実行できる利点が得られる。
【００１６】
さらにまた、第１０の側面に係るシーケンス制御プログラム変換方法によれば、さらに取得されたハードウェア記述又はネットリストから、セル、ａｓｓｉｇｎ文の信号名を抽出する工程を含むことができる。
【００１７】
さらにまた、第１１の側面に係るシーケンス制御プログラム変換プログラムによれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、ハードウェア記述を取得する機能と、取得されたハードウェア記述から、論理合成によってネットリストを取得する機能と、取得されたネットリストから、組み合わせ回路を抽出する機能と、抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、組み合わせ回路に対して、セルを実行可能な順に並び替える機能と、セルを、シーケンス制御のニーモニックに変換する機能と、をコンピュータに実現させることができる。上記構成により、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置等で読み込み可能なニーモニックに変換することができ、シーケンス制御プログラムとして利用できる。
【００１８】
さらにまた、第１２の側面に係るシーケンス制御プログラム変換プログラムによれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、ネットリストを取得する機能と、取得されたネットリストから、組み合わせ回路を抽出する機能と、抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替える機能と、セルを、シーケンス制御のニーモニックに変換する機能と、をコンピュータに実現させることができる。
【００１９】
さらにまた、第１３の側面に係るシーケンス制御プログラム変換プログラムによれば、さらに取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す機能と、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える機能と、をコンピュータに実現させることができる。
【００２０】
さらにまた、第１４の側面に係るシーケンス制御プログラム変換プログラムによれば、さらに取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す機能と、前記演算器をシーケンス制御のニーモニックに置き換える機能と、をコンピュータに実現させることができる。これにより、プログラマブルコントロール装置が有する演算器を有効活用でき、効率よくシーケンス制御を実行できる利点が得られる。
【００２１】
さらにまた、第１５の側面に係るシーケンス制御プログラム変換プログラムによれば、さらに、取得されたハードウェア記述又はネットリストから、セル、ａｓｓｉｇｎ文の信号名を抽出する機能をコンピュータに実現させることができる。
【００２２】
さらにまた第１６の側面に係るコンピュータで読み取り可能な記録媒体は、上記プログラムを格納したものである。記録媒体には、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷやフレキシブルディスク、磁気テープ、ＭＯ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ＋Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、Ｂｌｕ−ｒａｙ、ＨＤ  ＤＶＤ（ＡＯＤ）等の磁気ディスク、光ディスク、光磁気ディスク、半導体メモリその他のプログラムを格納可能な媒体が含まれる。またプログラムには、上記記録媒体に格納されて配布されるものの他、インターネット等のネットワーク回線を通じてダウンロードによって配布される形態のものも含まれる。さらに記録媒体にはプログラムを記録可能な機器、例えば上記プログラムがソフトウェアやファームウェア等の形態で実行可能な状態に実装された汎用もしくは専用機器を含む。さらにまたプログラムに含まれる各処理や機能は、コンピュータで実行可能なプログラムソフトウェアにより実行してもよいし、各部の処理を所定のゲートアレイ（ＦＰＧＡ、ＡＳＩＣ）等のハードウェア、又はプログラムソフトウェアとハードウェアの一部の要素を実現する部分的ハードウェアモジュールとが混在する形式で実現してもよい。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施の形態に係るシーケンス制御プログラム変換装置を示すブロック図である。
【図２】実施例１に係る、ハードウェア記述からシーケンス制御プログラムへの変換手順の詳細を示すフローチャートである。
【図３】ハードウェア記述例を示す図である。
【図４】ネットリストの例を示す図である。
【図５】回路図の例を示す図である。
【図６】セル、ａｓｓｉｇｎ文の切り出し結果を示す図である。
【図７】ネットリストのセル、ａｓｓｉｇｎ文における信号名からプログラマブルコントロール装置のデバイス名への置き換え対応関係を示す表である。
【図８】ネットリストのセル、ａｓｓｉｇｎ文における信号名からデバイス名への置き換え結果を示す図である。
【図９】セル、ａｓｓｉｇｎ文の並び替え結果を示す図である。
【図１０】セル、またはａｓｓｉｇｎ文からニーモニックへの変換規則を示す表である。
【図１１】セル、またはａｓｓｉｇｎ文の回路図とラダー図の対応関係を示す表である。
【図１２】セル、ａｓｓｉｇｎ文からニーモニックへの変換結果を示す図である。
【図１３】セル、ａｓｓｉｇｎ文のラダー図を示す図である。
【図１４】フリップフロップの切り出し結果を示す図である。
【図１５】ネットリストのフリップフロップにおける信号名からデバイス名への置き換え結果を示す図である。
【図１６】フリップフロップからニーモニックへの置き換え結果を示す図である。
【図１７】フリップフロップのラダー図を示す図である。
【図１８】プログラム終了命令のニーモニックを示す図である。
【図１９】ニーモニックの統合結果を示す図である。
【図２０】全体のラダー図を示す図である。
【図２１】実施例２に係る、演算器を有するハードウェア記述からシーケンス制御プログラムへの変換手順の詳細を示すフローチャートである。
【図２２】加算器を使用するハードウェア記述の例を示す図である。
【図２３】ネットリストの一例を示す図である。
【図２４】ネットリストの一例を示す図である。
【図２５】ネットリストの一例を示す図である。
【図２６】全体の回路図の一例を示す図である。
【図２７】立上り検出回路の一例を示す回路図である。
【図２８】選択回路の一例を示す回路図である。
【図２９】リセット回路の一例を示す回路図である。
【図３０】累積加算レジスタの一例を示す回路図である。
【図３１】セレクタとして機能する複合ゲートを示す回路図である。
【図３２】セル、演算器、ａｓｓｉｇｎ文の切り出し結果を示す図である。
【図３３】ネットリストのセル、演算器、ａｓｓｉｇｎ文における信号名からプログラマブルコントロール装置のデバイス名への置き換えの対応関係を示す表である。
【図３４】ネットリストのセル、演算器、ａｓｓｉｇｎ文における信号名からデバイス名への置き換え結果を示す図である。
【図３５】セル、演算器、ａｓｓｉｇｎ文の並び替え結果を示す図である。
【図３６】加算器からニーモニックへの変換結果を示す図である。
【図３７】加算器からニーモニックへの変換結果を示す図である。
【図３８】加算器からニーモニックへの変換結果を示す図である。
【図３９】加算器のラダー図である。
【図４０】加算器のラダー図である。
【図４１】加算器のラダー図である。
【図４２】加算器のラダー図である。
【図４３】セルからニーモニックへの変換結果を示す図である。
【図４４】セルからニーモニックへの変換結果を示す図である。
【図４５】セルからニーモニックへの変換結果を示す図である。
【図４６】フリップフロップ切り出し結果を示す図である。
【図４７】ネットリストのフリップフロップにおける信号名からデバイス名への置き換え結果を示す図である。
【図４８】フリップフロップからニーモニックへの置き換え結果を示す図である。
【図４９】プログラム終了命令のニーモニックを示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態を図面に基づいて説明する。ただし、以下に示す実施の形態は、本発明の技術思想を具体化するためのシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体を例示するものであって、本発明はシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体を以下のものに特定しない。また実施の形態に記載されている構成部材の寸法、材質、形状、その相対的配置等は、特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一もしくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。また、一部の実施例、実施形態において説明された内容は、他の実施例、実施形態等に利用可能なものもある。
（実施の形態１）
【００２５】
以下、本発明の一実施の形態に係るシーケンス制御プログラム変換装置１００を、図１のブロック図に基づいて説明する。この図に示すシーケンス制御プログラム変換装置１００は、ハードウェア記述言語で記述された制御論理を、シーケンス制御プログラムに自動的に変換するシーケンス制御プログラム変換装置１００である。具体的には、ハードウェア記述を取得するためのハードウェア記述取得手段１０と、ハードウェア記述から論理合成によって、あるいは直接ネットリストを取得するためのネットリスト取得手段１２と、組み合わせ回路を抽出し、抽出された組み合わせ回路の内、入力信号をＰＬＣの入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段１４と、組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段１５と、セル等を、シーケンス制御のニーモニックに変換するためのニーモニック変換手段１６とを備える。このシーケンス制御プログラム変換装置１００を用いて、ハードウェア記述言語で記述された制御論理を、ＰＬＣ等で読み込み可能なニーモニックに変換することで、シーケンス制御プログラムとして利用できる。また置換手段１４が、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出し、演算器の信号名をプログラマブルコントロール装置のデバイス名に置き換え、ニーモニック変換手段１６が、演算器をシーケンス制御のニーモニックに変換してもよい。これによって、ＰＬＣが有する演算器を有効活用でき、効率よくシーケンス制御を実行できる利点が得られる。特に変換後のラダープログラムが長大になることを避け、演算器を利用してＰＬＣが有する機能を効率よく発揮できる。さらに置換手段は、ネットリスト取得手段１２で取得されたネットリストから、組み合わせ回路を抽出するための組み合わせ回路抽出手段を含むこともできる。
（実施例１：演算器を使用しない変換手順の詳細）
【００２６】
次に実施例１として、以上のハードウェア記述からシーケンス制御プログラムへの変換手順の詳細を、図２のフローチャートに示す。以下、この変換手順の詳細を、図２〜図２０に基づいて説明する。なお、以下の例ではハードウェア記述言語としてVerilog−ＨＤＬを用いているが、本発明はこれに限らず、例えばＶＨＤＬやＥＤＩＦ等を利用することもできる。まず図２のステップＳ１３０１において、ハードウェア記述を作成する。ここで用いるハードウェア記述例を、図３に示す。図３のハードウェア記述は、入力ＩＮ０が０の場合には、２ビットのレジスタＣＲＥＧの値を前値保持し、ＩＮ０が１の場合には、ＣＲＥＧをカウントアップするものである。
【００２７】
次にステップＳ１３０２において、ハードウェア記述を論理合成し、シングルビット化したネットリストを得る。ここで得られるネットリストの例を、図４に示す。ここではシングルビット化しているため、ハードウェア記述における２ビットの出力Ｙは、ネットリストにおいて、１ビットずつのＹ＿１＿、Ｙ＿０＿に置き換わっている。セルＯＲ３は３入力論理和、セルＩＮＶ１は論理否定、セルＡＮＤ２は２入力論理積、セルＡＮＤ３は３入力論理積、セルＸＯＲ２は２入力排他的論理和、セルＤＦＦはＤフリップフロップである。参考までに、図４のネットリストに対応する回路図を、図５に示す。
【００２８】
さらにステップＳ１３０３において、ステップＳ１３０２で得たネットリストから、セル、及びａｓｓｉｇｎ文を切り出す。ここで図４のネットリストから、セル、及びａｓｓｉｇｎ文を切り出した結果を、図６に示す。
【００２９】
さらにステップＳ１３０４において、ステップＳ１３０３の結果において、セル、及びａｓｓｉｇｎ文の信号名をデバイス名に置き換える。ここでは、図６で得られた結果において、ネットリストのセル、及びａｓｓｉｇｎ文の信号名を、ＰＬＣのデバイス名に置き換える。具体的には、ネットリストのリセット信号をＰＬＣの入力デバイスに、ネットリストのクロック、リセット以外の入力をＰＬＣの入力デバイスに、ネットリストの出力をＰＬＣの出力デバイスに、ネットリストのフリップフロップの出力のうち、直接、回路全体の出力になっていないものをＰＬＣのビットデバイスに、ネットリストにおける上記以外の内部ノードをＰＬＣのビットデバイスに、それぞれ置き換える。具体的な置き換えの対応関係を、図７の表に示す。また、この置き換え結果を図８に示す。
【００３０】
さらにステップＳ１３０５において、ステップＳ１３０４の結果を、実行可能な順に並び替える。ここでは、図８の結果を、ＰＬＣで実行可能な順に並び替える。具体的には、ネットリストの入力のうち、クロック信号、リセット信号以外から変換されたデバイス、及びネットリストのフリップフロップの出力から変換されたデバイスについては、値が確定しているものとして、セル、及びａｓｓｉｇｎ文の入力（ａｓｓｉｇｎ文の場合は右辺を入力と見なす）がすべて確定しているものから順に選択して並べ、選択されたセル、及びａｓｓｉｇｎ文の出力（ａｓｓｉｇｎ文の場合は左辺を出力と見なす）は確定したものとし、同様に順に選択、並び替えを繰り返す。この並び替えの結果を、図９に示す。
【００３１】
さらにステップＳ１３０６において、ステップＳ１３０５の結果のセル、及びａｓｓｉｇｎ文を、ニーモニックに置き換える。ここでは、図９の結果のセル、ａｓｓｉｇｎ文をニーモニックに置き換えていく。ここの置き換えの変換規則を、図１０の表に示す。ここで、ＬＤは格納命令、ＬＤＩは論理反転の格納命令、ＡＮＤは論理積命令、ＡＮＩは論理積否定命令、ＯＲは論理和命令、ＯＵＴは出力命令、ＯＲＢは並列接続命令である。また参考までに、回路図とラダー図の関係を図１１に示す。変換規則は、ネットリストに現れ得るすべてのセルに対して、予め用意しておく。このようにして得られたニーモニックへの変換結果を、図１２に示す。また図１２のニーモニックのリストに対応するラダー図を、図１３に示す。
【００３２】
次にステップＳ１３０７において、ステップＳ１３０２で得たネットリストから、フリップフロップを切り出す。ここでは、図４のネットリストからフリップフロップを切り出した結果を、図１４に示す。
【００３３】
さらにステップＳ１３０８において、ステップＳ１３０７で得た結果において、信号名をデバイス名に置き換える。ここでは、図１４で得られた結果の信号名を、ビットデバイスに置き換えていく。この置き換えにおいても、上述した図７の対応関係を用いる。このようにして得られた置き換え結果を、図１５に示す。
【００３４】
さらにまたステップＳ１３０９において、ステップＳ１３０８の結果を、ニーモニックに置き換える。ここでは、図１５の結果をニーモニックに置き換えていき、得られた置き換え結果を図１６に示す。ここで、図１６のニーモニックのリストに対応するラダー図を、図１７に示す。
【００３５】
最後にステップＳ１３１０において、ステップＳ１３０６の結果、ステップＳ１３０９の結果を順に連接し、最後にプログラム終了命令を付加する。ここでは、最終的にニーモニックのリスト全体を得る。具体的には、図１２、図１６、及びプログラム終了命令のニーモニックである図１８を順に連接したものが、図１９のニーモニックのリスト全体となる。また、図１９のニーモニックのリストに対応するラダー図を、図２０に示す。
【００３６】
このようにして、ハードウェア記述言語で記述された制御論理を、ラダープログラムに変換することができる。この結果、シーケンス制御プログラムをハードウェア記述やシステムレベル記述で行い、抽象度の高いレベルでの設計を生かしつつ、ＰＬＣ等の汎用性の高いシステムが構築でき、生産性を高めることができる。また可読性の高いプログラム記述を利用できる結果、設計ミスを低減させることも期待できる。
【００３７】
以上の手順では、先に置換を行った後に並び替えを行っているが、この順序を入れ替えても同様の効果が得られることはいうまでもない。また、以上の手順ではネットリストからステップＳ１３０３で先にセル及びａｓｓｉｇｎ文を切り出し、置換やソートを行った上で、ステップＳ１３０７以降でフリップフロップの切り出し等を行い、これらを合成しているが、例えば先にフリップフロップの切り出し等を行い、次いでセル等の切り出し等を行ってもよいし、あるいはこれらの処理を並列的にあるいは同時に行うこともできる。さらに、上記の例ではフリップフロップを含む例について説明したが、フリップフロップを含まない組み合わせ回路のみのハードウェア記述やネットリストに対しても、同様の処理を行えることはいうまでもない。
（実施例２：演算器を使用する変換手順の詳細）
【００３８】
さらに本発明は、演算器を使用したハードウェア記述に対しても、シーケンス制御プログラムへの変換を行うことができる。このような例を実施例２として、図２１のフローチャートに示す。以下、この変換手順の詳細を、図２１〜図４９に基づいて説明する。
【００３９】
まず図２１のステップＳ３６０１において、演算器をブラックボックスのサブモジュールとして配置したハードウェア記述を作成する。ここでハードウェア記述の一例を、図２２に示す。図２２において、ＡＤＤＥＲ１６は１６ビット加算器であり、ハードウェア記述においてサブモジュールとして配置している。ただし、サブモジュールの実体の記述はしておらず、ブラックボックスである。ＡＤＤＥＲ１６は、１６ビットの入力ＩＮ０とＩＮ１、及び１６ビットの出力Ｙを有する。
【００４０】
次にステップＳ３６０２において、ハードウェア記述を論理合成し、シングルビット化したネットリストを得る。このステップＳ３６０２で得られるネットリストの例を図２３〜図２５に示す。ここではシングルビット化しているため、ハードウェア記述における１６ビットの入力ＡＤＤＤＡＴＡは、ネットリストにおいて１ビットずつのＡＤＤＤＡＴＡ＿１５＿からＡＤＤＤＡＴＡ＿０＿に置き換わっている。また出力ＡＣＣＤＡＴＡも同様である。さらにサブモジュールとして配置した１６ビット加算器についても、ハードウェア記述における１６ビットの入力ＩＮ０が、ネットリストにおいて、１ビットずつのＩＮ０＿１５＿からＩＮ０＿０＿に置き換わっている。なお入力ＩＮ１、出力Ｙも同様である。参考のため、図２３〜図２５のネットリストに対応する回路図を、図２６〜図３０に示す。図２６は回路図全体を示している。また図２６の回路図中における、立上り検出回路、選択回路、リセット回路、及び累積加算レジスタを、それぞれ図２７、図２８、図２９、図３０に示す。図２８に示す選択回路の各セルは、セレクタであり、図３１に示すような複合ゲートの機能を有する。
【００４１】
さらにステップＳ３６０３において、ステップＳ３６０２で得たネットリストから、セル、演算器、及びａｓｓｉｇｎ文を切り出す。この結果を、図３２に示す。なおこの例では、ネットリストにａｓｓｉｇｎ文が含まれていないため、セルと演算器のみが切り出されている。
【００４２】
さらにステップＳ３６０４において、ステップＳ３６０３の結果のセル、演算器、及びａｓｓｉｇｎ文の信号名をデバイス名に置き換える。ここでは、図３２で得られた結果において、ネットリストのセル、演算器、及びａｓｓｉｇｎ文の信号名を、それぞれＰＬＣのデバイス名に置き換えていく。具体的には、ネットリストのリセット信号をＰＬＣの入力デバイスに、ネットリストのクロック、リセット以外の入力をＰＬＣの入力デバイスに、ネットリストの出力をＰＬＣの出力デバイスに、ネットリストのフリップフロップの出力のうち、直接、回路全体の出力になっていないものをＰＬＣのビットデバイスに、またネットリストにおける上記以外の内部ノードをＰＬＣのビットデバイスに、それぞれ置き換える。具体的な置き換えの対応関係を、図３３の表に示す。また、置き換えた結果を図３４に示す。
【００４３】
ステップＳ３６０５において、ステップＳ３６０４の結果を、実行可能な順に並び替える。ここでは、図３４の結果を、ＰＬＣで実行可能な順に並び替えていく。具体的には、ネットリストの入力のうち、クロック信号、リセット信号以外から変換されたデバイス、及びネットリストのフリップフロップの出力から変換されたデバイスについては、値が確定しているものとして、セル、演算器、及びａｓｓｉｇｎ文の入力（ａｓｓｉｇｎ文の場合は右辺を入力と見なす）がすべて確定しているものから順に選択して並べ、選択されたセル、演算器、及びａｓｓｉｇｎ文の出力（ａｓｓｉｇｎ文の場合は左辺を出力と見なす）は確定したものとし、同様に順に選択、並び替えを繰り返す。このようにして並び替えた結果を、図３５に示す。
【００４４】
ステップＳ３６０６において、ステップＳ３６０５の結果のセル、演算器、及びａｓｓｉｇｎ文を、ニーモニックに置き換える。ここでは、図３５の結果において、セル、演算器、ａｓｓｉｇｎ文を、それぞれニーモニックに置き換えていく。まず、演算器である１６ビット加算器ＡＤＤＥＲ１６について説明する。１６ビットの入力ＩＮ０＿１５＿からＩＮ０＿０＿に接続されている各ビットデバイスを、１６ビットの連続するビットデバイスに転送する。これを行うためのニーモニックのリストを、図３６に示す。１６ビットの入力ＩＮ１＿１５＿からＩＮ１＿０＿についても同様であり、図３７に示す。また図３８のＫ４Ｍ９００は、ビットデバイスＭ９００より、１６進数で４桁分、すなわち１６ビット分を表し、具体的にはビットデバイスＭ９１５からＭ９００である。さらに図３８の最初のニーモニックにより、図３６で転送先となっていたビットデバイスＭ９１５からＭ９００までの１６ビットを、ワードデバイスＤ９００に転送する。図３８の２つ目のニーモニックにより、ビットデバイスＭ９３１からＭ９１６までの１６ビットを、ワードデバイスＤ９０１に転送する。図３８の３つ目のニーモニックにより、Ｄ９００とＤ９０１の加算を行い、結果をＤ９００に格納する。図３８の４つ目のニーモニックにより、ワードデバイスＤ９００を、ビットデバイスＭ９１５からＭ９００までの１６ビットに転送する。図３８の５つ目のニーモニック以降で、ビットデバイスＭ９１５からＭ９００までの１６ビットを、ＡＤＤＥＲ１６の１６ビットの出力Ｙ＿１５＿からＹ＿０＿に接続されている各ビットデバイスに転送する。参考までに、図３６〜図３８のニーモニックのリストに対応するラダー図を、図３９〜図４２に示す。
【００４５】
次に、セル及びａｓｓｉｇｎ文の置き換えについて説明する。セル及びａｓｓｉｇｎ文の置き換えは、演算器を使用しない実施例１と同様である。具体的には、図２のステップＳ１３０６と同様であり、ネットリストに現れ得るすべてのセルに対して予め変換規則を用意しておき、セル及びａｓｓｉｇｎ文をニーモニックに置き換える。本実施例では、ネットリストにａｓｓｉｇｎ文が含まれないため、セルのみが置き換えられる。セルからニーモニックへの変換結果を、図４３〜図４５に示す。以上、図３６〜図３８と図４３〜図４５を順に連接したものがステップＳ３６０６の結果となる。
【００４６】
ステップＳ３６０７において、ステップＳ３６０２で得たネットリストから、フリップフロップを切り出す。ここで、図２３〜図２５のネットリストからフリップフロップを切り出した結果を、図４６に示す。
【００４７】
ステップＳ３６０８において、ステップＳ３６０７で得た結果において、信号名をデバイス名に置き換える。ここでは、図４６で得られた結果の信号名を、ビットデバイスに置き換える。この置き換えでも、上述した図３３の対応関係を用いる。この置き換えの結果を、図４７に示す。
【００４８】
ステップＳ３６０９において、ステップＳ３６０８の結果を、ニーモニックに置き換える。ここでは、図４７の結果をニーモニックに置き換えていき、このようにして得られた置き換え結果を図４８に示す。
【００４９】
最後に、ステップＳ３６１０において、ステップＳ３６０６の結果、ステップＳ３６０９の結果を順に連接し、最後にプログラム終了命令を付加する。このステップＳ３６１０で、最終的にニーモニックのリスト全体を得る。具体的には、図３６〜図３８、図４３〜図４５、図４８、及びプログラム終了命令のニーモニックである図４９を順に連接したものが、ニーモニックのリスト全体となる。このようにして、演算器を用いる場合でもハードウェア記述からシーケンス制御プログラムへの変換を行える。
【００５０】
以上のようにして、設計対象システムの論理が複雑になっても、制御論理をハードウェア記述言語で記述することにより、直接ラダープログラムを作成する従来手法に比べて論理の可読性が高くなり、設計上のミスを防止することが可能となる。また仕様変更が発生した場合には、可読性の高いハードウェア記述に戻って修正すればよく、作業効率が高い。さらに、ハードウェア記述言語による設計パラダイムで確立されている各種の検証手法が適用可能となる。例えば、ハードウェア記述に対するアサーション手法を適用することにより、制御論理において満足させたい仕様の検証を行うことが可能となる。また、制御装置として、生産設備等で汎用的に使用されているＰＬＣをそのまま使用することができ、ＦＰＧＡボード等へ置き換える必要がないため、ＰＬＣと組み合わせて使用される他のユニット（ＭＥＳインターフェース等）との接続が困難となることがない。
【産業上の利用可能性】
【００５１】
本発明に係るシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体は、ＦＡ等の自動制御の分野において使用される、ＰＬＣ用のプログラム開発装置や、ラダープログラム作成ソフトウェアなどに好適に利用できる。
【符号の説明】
【００５２】
１００…シーケンス制御プログラム変換装置
１０…ハードウェア記述取得手段
１２…ネットリスト取得手段
１４…置換手段
１５…ソート手段
１６…ニーモニック変換手段
【図１】
2013206438.tif 000003
【図２】
2013206438.tif 000004
【図３】
2013206438.tif 000005
【図４】
2013206438.tif 000006
【図５】
2013206438.tif 000007
【図６】
2013206438.tif 000008
【図７】
2013206438.tif 000009
【図８】
2013206438.tif 000010
【図９】
2013206438.tif 000011
【図１０】
2013206438.tif 000012
【図１１】
2013206438.tif 000013
【図１２】
2013206438.tif 000014
【図１３】
2013206438.tif 000015
【図１４】
2013206438.tif 000016
【図１５】
2013206438.tif 000017
【図１６】
2013206438.tif 000018
【図１７】
2013206438.tif 000019
【図１８】
2013206438.tif 000020
【図１９】
2013206438.tif 000021
【図２０】
2013206438.tif 000022
【図２１】
2013206438.tif 000023
【図２２】
2013206438.tif 000024
【図２３】
2013206438.tif 000025
【図２４】
2013206438.tif 000026
【図２５】
2013206438.tif 000027
【図２６】
2013206438.tif 000028
【図２７】
2013206438.tif 000029
【図２８】
2013206438.tif 000030
【図２９】
2013206438.tif 000031
【図３０】
2013206438.tif 000032
【図３１】
2013206438.tif 000033
【図３２】
2013206438.tif 000034
【図３３】
2013206438.tif 000035
【図３４】
2013206438.tif 000036
【図３５】
2013206438.tif 000037
【図３６】
2013206438.tif 000038
【図３７】
2013206438.tif 000039
【図３８】
2013206438.tif 000040
【図３９】
2013206438.tif 000041
【図４０】
2013206438.tif 000042
【図４１】
2013206438.tif 000043
【図４２】
2013206438.tif 000044
【図４３】
2013206438.tif 000045
【図４４】
2013206438.tif 000046
【図４５】
2013206438.tif 000047
【図４６】
2013206438.tif 000048
【図４７】
2013206438.tif 000049
【図４８】
2013206438.tif 000050
【図４９】
2013206438.tif 000051