図面 (/)
課題
解決手段
ハードウェア記述を取得するためのハードウェア記述取得手段10と、ハードウェア記述取得手段10で取得されたハードウェア記述から、論理合成によってネットリストを取得するためのネットリスト取得手段12と、ネットリスト取得手段12で取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段14と、置換手段14で置き換えられた組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段15と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段16とを備える。
概要
背景
生産設備等の制御には、一般的にシーケンス制御が用いられている。シーケンス制御においては、プログラマブルコントロール装置(シーケンサー、あるいはプログラマブルロジックコントローラ(Programmable Logic Controller:PLC)等とも呼ばれ、以下「PLC」という。)上で動作するラダープログラム(ラダー回路図)により制御を行うことが一般的である。ラダープログラムは、比較的単純な制御の場合には、初心者でも容易に作成可能であるものの、構造化、モジュール化がなされていないため、制御の論理が複雑になると、プログラミング、デバッグが極めて困難となる。また、可読性が低く、他人が書いたプログラムの理解も困難である。
そこで、可読性に優れたハードウェア記述言語(Hardware Description Language:以下「HDL」という。)であるVerilog−HDL、VHDL等を用いて記述することが考えられる。しかしながら、一般のPLCではこのようなハードウェア記述を読み込ませることができないため、汎用のPLCを利用せずに、専用のFPGAボードを設計して、ハードウェア記述を論理合成して得た論理回路を実装する必要が生じ、コストや時間が嵩むばかりか、FPGAボードとMESインターフェース等との接続が容易に行えなくなるという問題が生じる。このため従来は、専用ボードでなく汎用のPLCを用いる現場においては、PLCで読み込み可能な言語であるラダー図を用いてプログラムを作成していたが、この場合は上述の通り、制御の論理が複雑になると可読性が低下してプログラミング、デバッグが困難になるという問題が生じていた。
一方、ラダー回路図をHDLのプログラムに変換する方法は提案されている(例えば特許文献1)。この方法によれば、ラダー回路図から、VHDL等のHDLプログラムを得て、このHDLプログラムに基づきCPLDやFPGA等のハードウェア的プログラム可能な集積回路に対するプログラミングを行うことができる。しかしながら、この方法は専用のFPGAボードを起こして回路設計を行う方法には有効であるが、PLCを用いた汎用設計には適用できない。また該特許文献に記載されるのは、高度なHDLを用いることなく、ラダー回路図でもって容易にハードウェア的プログラム可能な集積回路に対するプログラミングが行えるようにすることを目的としており、HDLを積極的に用いたプログラミングとは対極に位置するものである。
概要
HDLで記述した制御論理を、PLCでも容易に実行可能とする。ハードウェア記述を取得するためのハードウェア記述取得手段10と、ハードウェア記述取得手段10で取得されたハードウェア記述から、論理合成によってネットリストを取得するためのネットリスト取得手段12と、ネットリスト取得手段12で取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段14と、置換手段14で置き換えられた組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段15と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段16とを備える。
目的
本発明の主な目的は、HDLで記述した制御論理を、PLCで実行可能としたシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体を提供する
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、ハードウェア記述を取得するためのハードウェア記述取得手段と、前記ハードウェア記述取得手段で取得されたハードウェア記述から、論理合成によってネットリストを取得するためのネットリスト取得手段と、前記ネットリスト取得手段で取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、前記置換手段で置き換えられた組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段と、を備えることを特徴とするシーケンス制御プログラム変換装置。
請求項2
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、ネットリストを取得するためのネットリスト取得手段と、取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、前記置換手段で置き換えられた組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替えるためのソート手段と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段と、を備えることを特徴とするシーケンス制御プログラム変換装置。
請求項3
請求項1又は2に記載のシーケンス制御プログラム変換装置であって、前記置換手段が、取得されたハードウェア記述又はネットリストにフリップフロップが含まれる場合、これを切り出し、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換え、前記ニーモニック変換手段が、フリップフロップをシーケンス制御のニーモニックに変換することを特徴とするシーケンス制御プログラム変換装置。
請求項4
請求項1から3のいずれか一に記載のシーケンス制御プログラム変換装置であって、前記置換手段が、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出し、前記演算器の信号名をプログラマブルコントロール装置のデバイス名に置き換え、前記ニーモニック変換手段が、演算器をシーケンス制御のニーモニックに変換することを特徴とするシーケンス制御プログラム変換装置。
請求項5
請求項1から4のいずれか一に記載のシーケンス制御プログラム変換装置であって、前記置換手段が、取得されたハードウェア記述又はネットリストから、セル、assign文の信号名を抽出することを特徴とするシーケンス制御プログラム変換装置。
請求項6
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、ハードウェア記述を取得する工程と、取得されたハードウェア記述から、論理合成によってネットリストを取得する工程と、取得されたネットリストから、組み合わせ回路を抽出する工程と、抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路に対して、必要に応じてセルを実行可能な順に並び替える工程と、セルを、シーケンス制御のニーモニックに変換する工程と、を含むことを特徴とするシーケンス制御プログラム変換方法。
請求項7
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、ネットリストを取得する工程と、取得されたネットリストから、組み合わせ回路を抽出する工程と、抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路のネットリストに対して、必要に応じてセルを実行可能な順に並び替える工程と、セルを、シーケンス制御のニーモニックに変換する工程と、を含むことを特徴とするシーケンス制御プログラム変換方法。
請求項8
請求項6又は7に記載のシーケンス制御プログラム変換方法であって、さらに、取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す工程と、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える工程と、を含むことを特徴とするシーケンス制御プログラム変換方法。
請求項9
請求項6から8のいずれか一に記載のシーケンス制御プログラム変換方法であって、さらに、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す工程と、前記演算器をシーケンス制御のニーモニックに置き換える工程と、を含むことを特徴とするシーケンス制御プログラム変換方法。
請求項10
請求項6から9のいずれか一に記載のシーケンス制御プログラム変換方法であって、さらに、取得されたハードウェア記述又はネットリストから、セル、assign文の信号名を抽出する工程を含むことを特徴とするシーケンス制御プログラム変換方法。
請求項11
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、ハードウェア記述を取得する機能と、取得されたハードウェア記述から、論理合成によってネットリストを取得する機能と、取得されたネットリストから、組み合わせ回路を抽出する機能と、抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、組み合わせ回路に対して、セルを実行可能な順に並び替える機能と、セルを、シーケンス制御のニーモニックに変換する機能と、をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
請求項12
ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、ネットリストを取得する機能と、取得されたネットリストから、組み合わせ回路を抽出する機能と、抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替える機能と、セルを、シーケンス制御のニーモニックに変換する機能と、をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
請求項13
請求項11又は12に記載のシーケンス制御プログラム変換プログラムであって、さらに、取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す機能と、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える機能と、をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
請求項14
請求項11から13のいずれか一に記載のシーケンス制御プログラム変換プログラムであって、さらに、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す機能と、前記演算器をシーケンス制御のニーモニックに置き換える機能と、をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
請求項15
請求項11から14のいずれか一に記載のシーケンス制御プログラム変換プログラムであって、さらに、取得されたハードウェア記述又はネットリストから、セル、assign文の信号名を抽出する機能をコンピュータに実現させることを特徴とするシーケンス制御プログラム変換プログラム。
請求項16
技術分野
0001
本発明は、ハードウェア記述言語で書かれたプログラムを、シーケンス制御プログラムに変換可能なシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体に関する。
背景技術
0002
生産設備等の制御には、一般的にシーケンス制御が用いられている。シーケンス制御においては、プログラマブルコントロール装置(シーケンサー、あるいはプログラマブルロジックコントローラ(Programmable Logic Controller:PLC)等とも呼ばれ、以下「PLC」という。)上で動作するラダープログラム(ラダー回路図)により制御を行うことが一般的である。ラダープログラムは、比較的単純な制御の場合には、初心者でも容易に作成可能であるものの、構造化、モジュール化がなされていないため、制御の論理が複雑になると、プログラミング、デバッグが極めて困難となる。また、可読性が低く、他人が書いたプログラムの理解も困難である。
0003
そこで、可読性に優れたハードウェア記述言語(Hardware Description Language:以下「HDL」という。)であるVerilog−HDL、VHDL等を用いて記述することが考えられる。しかしながら、一般のPLCではこのようなハードウェア記述を読み込ませることができないため、汎用のPLCを利用せずに、専用のFPGAボードを設計して、ハードウェア記述を論理合成して得た論理回路を実装する必要が生じ、コストや時間が嵩むばかりか、FPGAボードとMESインターフェース等との接続が容易に行えなくなるという問題が生じる。このため従来は、専用ボードでなく汎用のPLCを用いる現場においては、PLCで読み込み可能な言語であるラダー図を用いてプログラムを作成していたが、この場合は上述の通り、制御の論理が複雑になると可読性が低下してプログラミング、デバッグが困難になるという問題が生じていた。
0004
一方、ラダー回路図をHDLのプログラムに変換する方法は提案されている(例えば特許文献1)。この方法によれば、ラダー回路図から、VHDL等のHDLプログラムを得て、このHDLプログラムに基づきCPLDやFPGA等のハードウェア的プログラム可能な集積回路に対するプログラミングを行うことができる。しかしながら、この方法は専用のFPGAボードを起こして回路設計を行う方法には有効であるが、PLCを用いた汎用設計には適用できない。また該特許文献に記載されるのは、高度なHDLを用いることなく、ラダー回路図でもって容易にハードウェア的プログラム可能な集積回路に対するプログラミングが行えるようにすることを目的としており、HDLを積極的に用いたプログラミングとは対極に位置するものである。
先行技術
0005
特開2003−50609号公報
発明が解決しようとする課題
0006
本発明は、従来のこのような問題点を解決するためになされたものである。本発明の主な目的は、HDLで記述した制御論理を、PLCで実行可能としたシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体を提供することにある。
課題を解決するための手段及び発明の効果
0007
上記目的を達成するために、本発明の第1の側面に係るシーケンス制御プログラム変換装置によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、ハードウェア記述を取得するためのハードウェア記述取得手段と、前記ハードウェア記述取得手段で取得されたハードウェア記述から、論理合成によってネットリストを取得するためのネットリスト取得手段と、前記ネットリスト取得手段で取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、前記置換手段で置き換えられた組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段と、を備えることができる。上記構成により、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置等で読み込み可能なニーモニックに変換することができ、シーケンス制御プログラムとして利用できる。
0008
また、第2の側面に係るシーケンス制御プログラム変換装置によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するためのシーケンス制御プログラム変換装置であって、ネットリストを取得するためのネットリスト取得手段と、取得されたネットリストから、組み合わせ回路を抽出し、該抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段と、前記置換手段で置き換えられた組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替えるためのソート手段と、セルを、シーケンス制御のニーモニックに変換するためのニーモニック変換手段とを備えることができる。
0009
さらに、第3の側面に係るシーケンス制御プログラム変換方法によれば、前記置換手段が、取得されたハードウェア記述又はネットリストにフリップフロップが含まれる場合、これを切り出し、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換え、前記ニーモニック変換手段が、フリップフロップをシーケンス制御のニーモニックに変換することができる。
0010
さらにまた、第4の側面に係るシーケンス制御プログラム変換装置によれば、前記置換手段が、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出し、前記演算器の信号名をプログラマブルコントロール装置のデバイス名に置き換え、前記ニーモニック変換手段が、演算器をシーケンス制御のニーモニックに変換することができる。
0011
さらにまた、第5の側面に係るシーケンス制御プログラム変換装置によれば、前記置換手段が、取得されたハードウェア記述又はネットリストから、セル、assign文の信号名を抽出することができる。
0012
さらにまた、第6の側面に係るシーケンス制御プログラム変換方法によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、ハードウェア記述を取得する工程と、取得されたハードウェア記述から、論理合成によってネットリストを取得する工程と、取得されたネットリストから、組み合わせ回路を抽出する工程と、抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路に対して、必要に応じてセルを実行可能な順に並び替える工程と、セルを、シーケンス制御のニーモニックに変換する工程と、を含むことができる。これにより、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置等で読み込み可能なニーモニックに変換することができ、シーケンス制御プログラムとして利用できる。
0013
さらにまた、第7の側面に係るシーケンス制御プログラム変換方法によれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換方法であって、ネットリストを取得する工程と、取得されたネットリストから、組み合わせ回路を抽出する工程と、抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えると共に、組み合わせ回路のネットリストに対して、必要に応じてセルを実行可能な順に並び替える工程と、セルを、シーケンス制御のニーモニックに変換する工程と、を含むことができる。
0014
さらにまた、第8の側面に係るシーケンス制御プログラム変換方法によれば、さらに取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す工程と、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える工程と、を含むことができる。
0015
さらにまた、第9の側面に係るシーケンス制御プログラム変換方法によれば、さらに取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す工程と、前記演算器をシーケンス制御のニーモニックに置き換える工程と、を含むことができる。これにより、プログラマブルコントロール装置が有する演算器を有効活用でき、効率よくシーケンス制御を実行できる利点が得られる。
0016
さらにまた、第10の側面に係るシーケンス制御プログラム変換方法によれば、さらに取得されたハードウェア記述又はネットリストから、セル、assign文の信号名を抽出する工程を含むことができる。
0017
さらにまた、第11の側面に係るシーケンス制御プログラム変換プログラムによれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、ハードウェア記述を取得する機能と、取得されたハードウェア記述から、論理合成によってネットリストを取得する機能と、取得されたネットリストから、組み合わせ回路を抽出する機能と、抽出された組み合わせ回路の内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、組み合わせ回路に対して、セルを実行可能な順に並び替える機能と、セルを、シーケンス制御のニーモニックに変換する機能と、をコンピュータに実現させることができる。上記構成により、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置等で読み込み可能なニーモニックに変換することができ、シーケンス制御プログラムとして利用できる。
0018
さらにまた、第12の側面に係るシーケンス制御プログラム変換プログラムによれば、ハードウェア記述言語で記述された制御論理を、プログラマブルコントロール装置で実行可能なシーケンス制御プログラムに変換するシーケンス制御プログラム変換プログラムであって、ネットリストを取得する機能と、取得されたネットリストから、組み合わせ回路を抽出する機能と、抽出された組み合わせ回路のネットリストの内、入力信号をプログラマブルコントロール装置の入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換える機能と、組み合わせ回路のネットリストに対して、セルを実行可能な順に並び替える機能と、セルを、シーケンス制御のニーモニックに変換する機能と、をコンピュータに実現させることができる。
0019
さらにまた、第13の側面に係るシーケンス制御プログラム変換プログラムによれば、さらに取得されたハードウェア記述又はネットリストに、フリップフロップが含まれる場合、これを切り出す機能と、前記フリップフロップの信号名をプログラマブルコントロール装置のデバイス名に置き換える機能と、をコンピュータに実現させることができる。
0020
さらにまた、第14の側面に係るシーケンス制御プログラム変換プログラムによれば、さらに取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出す機能と、前記演算器をシーケンス制御のニーモニックに置き換える機能と、をコンピュータに実現させることができる。これにより、プログラマブルコントロール装置が有する演算器を有効活用でき、効率よくシーケンス制御を実行できる利点が得られる。
0021
さらにまた、第15の側面に係るシーケンス制御プログラム変換プログラムによれば、さらに、取得されたハードウェア記述又はネットリストから、セル、assign文の信号名を抽出する機能をコンピュータに実現させることができる。
0022
さらにまた第16の側面に係るコンピュータで読み取り可能な記録媒体は、上記プログラムを格納したものである。記録媒体には、CD−ROM、CD−R、CD−RWやフレキシブルディスク、磁気テープ、MO、DVD−ROM、DVD−RAM、DVD−R、DVD+R、DVD−RW、DVD+RW、Blu−ray、HD DVD(AOD)等の磁気ディスク、光ディスク、光磁気ディスク、半導体メモリその他のプログラムを格納可能な媒体が含まれる。またプログラムには、上記記録媒体に格納されて配布されるものの他、インターネット等のネットワーク回線を通じてダウンロードによって配布される形態のものも含まれる。さらに記録媒体にはプログラムを記録可能な機器、例えば上記プログラムがソフトウェアやファームウェア等の形態で実行可能な状態に実装された汎用もしくは専用機器を含む。さらにまたプログラムに含まれる各処理や機能は、コンピュータで実行可能なプログラムソフトウェアにより実行してもよいし、各部の処理を所定のゲートアレイ(FPGA、ASIC)等のハードウェア、又はプログラムソフトウェアとハードウェアの一部の要素を実現する部分的ハードウェアモジュールとが混在する形式で実現してもよい。
図面の簡単な説明
0023
本発明の一実施の形態に係るシーケンス制御プログラム変換装置を示すブロック図である。
実施例1に係る、ハードウェア記述からシーケンス制御プログラムへの変換手順の詳細を示すフローチャートである。
ハードウェア記述例を示す図である。
ネットリストの例を示す図である。
回路図の例を示す図である。
セル、assign文の切り出し結果を示す図である。
ネットリストのセル、assign文における信号名からプログラマブルコントロール装置のデバイス名への置き換え対応関係を示す表である。
ネットリストのセル、assign文における信号名からデバイス名への置き換え結果を示す図である。
セル、assign文の並び替え結果を示す図である。
セル、またはassign文からニーモニックへの変換規則を示す表である。
セル、またはassign文の回路図とラダー図の対応関係を示す表である。
セル、assign文からニーモニックへの変換結果を示す図である。
セル、assign文のラダー図を示す図である。
フリップフロップの切り出し結果を示す図である。
ネットリストのフリップフロップにおける信号名からデバイス名への置き換え結果を示す図である。
フリップフロップからニーモニックへの置き換え結果を示す図である。
フリップフロップのラダー図を示す図である。
プログラム終了命令のニーモニックを示す図である。
ニーモニックの統合結果を示す図である。
全体のラダー図を示す図である。
実施例2に係る、演算器を有するハードウェア記述からシーケンス制御プログラムへの変換手順の詳細を示すフローチャートである。
加算器を使用するハードウェア記述の例を示す図である。
ネットリストの一例を示す図である。
ネットリストの一例を示す図である。
ネットリストの一例を示す図である。
全体の回路図の一例を示す図である。
立上り検出回路の一例を示す回路図である。
選択回路の一例を示す回路図である。
リセット回路の一例を示す回路図である。
累積加算レジスタの一例を示す回路図である。
セレクタとして機能する複合ゲートを示す回路図である。
セル、演算器、assign文の切り出し結果を示す図である。
ネットリストのセル、演算器、assign文における信号名からプログラマブルコントロール装置のデバイス名への置き換えの対応関係を示す表である。
ネットリストのセル、演算器、assign文における信号名からデバイス名への置き換え結果を示す図である。
セル、演算器、assign文の並び替え結果を示す図である。
加算器からニーモニックへの変換結果を示す図である。
加算器からニーモニックへの変換結果を示す図である。
加算器からニーモニックへの変換結果を示す図である。
加算器のラダー図である。
加算器のラダー図である。
加算器のラダー図である。
加算器のラダー図である。
セルからニーモニックへの変換結果を示す図である。
セルからニーモニックへの変換結果を示す図である。
セルからニーモニックへの変換結果を示す図である。
フリップフロップ切り出し結果を示す図である。
ネットリストのフリップフロップにおける信号名からデバイス名への置き換え結果を示す図である。
フリップフロップからニーモニックへの置き換え結果を示す図である。
プログラム終了命令のニーモニックを示す図である。
実施例
0024
以下、本発明の実施の形態を図面に基づいて説明する。ただし、以下に示す実施の形態は、本発明の技術思想を具体化するためのシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体を例示するものであって、本発明はシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体を以下のものに特定しない。また実施の形態に記載されている構成部材の寸法、材質、形状、その相対的配置等は、特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一もしくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。また、一部の実施例、実施形態において説明された内容は、他の実施例、実施形態等に利用可能なものもある。
(実施の形態1)
0025
以下、本発明の一実施の形態に係るシーケンス制御プログラム変換装置100を、図1のブロック図に基づいて説明する。この図に示すシーケンス制御プログラム変換装置100は、ハードウェア記述言語で記述された制御論理を、シーケンス制御プログラムに自動的に変換するシーケンス制御プログラム変換装置100である。具体的には、ハードウェア記述を取得するためのハードウェア記述取得手段10と、ハードウェア記述から論理合成によって、あるいは直接ネットリストを取得するためのネットリスト取得手段12と、組み合わせ回路を抽出し、抽出された組み合わせ回路の内、入力信号をPLCの入力信号名に、内部ノードをビットデバイス名に、それぞれ置き換えるための置換手段14と、組み合わせ回路に対して、セルを実行可能な順に並び替えるためのソート手段15と、セル等を、シーケンス制御のニーモニックに変換するためのニーモニック変換手段16とを備える。このシーケンス制御プログラム変換装置100を用いて、ハードウェア記述言語で記述された制御論理を、PLC等で読み込み可能なニーモニックに変換することで、シーケンス制御プログラムとして利用できる。また置換手段14が、取得されたハードウェア記述又はネットリストに演算器が含まれる場合、これを切り出し、演算器の信号名をプログラマブルコントロール装置のデバイス名に置き換え、ニーモニック変換手段16が、演算器をシーケンス制御のニーモニックに変換してもよい。これによって、PLCが有する演算器を有効活用でき、効率よくシーケンス制御を実行できる利点が得られる。特に変換後のラダープログラムが長大になることを避け、演算器を利用してPLCが有する機能を効率よく発揮できる。さらに置換手段は、ネットリスト取得手段12で取得されたネットリストから、組み合わせ回路を抽出するための組み合わせ回路抽出手段を含むこともできる。
(実施例1:演算器を使用しない変換手順の詳細)
0026
次に実施例1として、以上のハードウェア記述からシーケンス制御プログラムへの変換手順の詳細を、図2のフローチャートに示す。以下、この変換手順の詳細を、図2〜図20に基づいて説明する。なお、以下の例ではハードウェア記述言語としてVerilog−HDLを用いているが、本発明はこれに限らず、例えばVHDLやEDIF等を利用することもできる。まず図2のステップS1301において、ハードウェア記述を作成する。ここで用いるハードウェア記述例を、図3に示す。図3のハードウェア記述は、入力IN0が0の場合には、2ビットのレジスタCREGの値を前値保持し、IN0が1の場合には、CREGをカウントアップするものである。
0027
次にステップS1302において、ハードウェア記述を論理合成し、シングルビット化したネットリストを得る。ここで得られるネットリストの例を、図4に示す。ここではシングルビット化しているため、ハードウェア記述における2ビットの出力Yは、ネットリストにおいて、1ビットずつのY_1_、Y_0_に置き換わっている。セルOR3は3入力論理和、セルINV1は論理否定、セルAND2は2入力論理積、セルAND3は3入力論理積、セルXOR2は2入力排他的論理和、セルDFFはDフリップフロップである。参考までに、図4のネットリストに対応する回路図を、図5に示す。
0028
さらにステップS1303において、ステップS1302で得たネットリストから、セル、及びassign文を切り出す。ここで図4のネットリストから、セル、及びassign文を切り出した結果を、図6に示す。
0029
さらにステップS1304において、ステップS1303の結果において、セル、及びassign文の信号名をデバイス名に置き換える。ここでは、図6で得られた結果において、ネットリストのセル、及びassign文の信号名を、PLCのデバイス名に置き換える。具体的には、ネットリストのリセット信号をPLCの入力デバイスに、ネットリストのクロック、リセット以外の入力をPLCの入力デバイスに、ネットリストの出力をPLCの出力デバイスに、ネットリストのフリップフロップの出力のうち、直接、回路全体の出力になっていないものをPLCのビットデバイスに、ネットリストにおける上記以外の内部ノードをPLCのビットデバイスに、それぞれ置き換える。具体的な置き換えの対応関係を、図7の表に示す。また、この置き換え結果を図8に示す。
0030
さらにステップS1305において、ステップS1304の結果を、実行可能な順に並び替える。ここでは、図8の結果を、PLCで実行可能な順に並び替える。具体的には、ネットリストの入力のうち、クロック信号、リセット信号以外から変換されたデバイス、及びネットリストのフリップフロップの出力から変換されたデバイスについては、値が確定しているものとして、セル、及びassign文の入力(assign文の場合は右辺を入力と見なす)がすべて確定しているものから順に選択して並べ、選択されたセル、及びassign文の出力(assign文の場合は左辺を出力と見なす)は確定したものとし、同様に順に選択、並び替えを繰り返す。この並び替えの結果を、図9に示す。
0031
さらにステップS1306において、ステップS1305の結果のセル、及びassign文を、ニーモニックに置き換える。ここでは、図9の結果のセル、assign文をニーモニックに置き換えていく。ここの置き換えの変換規則を、図10の表に示す。ここで、LDは格納命令、LDIは論理反転の格納命令、ANDは論理積命令、ANIは論理積否定命令、ORは論理和命令、OUTは出力命令、ORBは並列接続命令である。また参考までに、回路図とラダー図の関係を図11に示す。変換規則は、ネットリストに現れ得るすべてのセルに対して、予め用意しておく。このようにして得られたニーモニックへの変換結果を、図12に示す。また図12のニーモニックのリストに対応するラダー図を、図13に示す。
0033
さらにステップS1308において、ステップS1307で得た結果において、信号名をデバイス名に置き換える。ここでは、図14で得られた結果の信号名を、ビットデバイスに置き換えていく。この置き換えにおいても、上述した図7の対応関係を用いる。このようにして得られた置き換え結果を、図15に示す。
0034
さらにまたステップS1309において、ステップS1308の結果を、ニーモニックに置き換える。ここでは、図15の結果をニーモニックに置き換えていき、得られた置き換え結果を図16に示す。ここで、図16のニーモニックのリストに対応するラダー図を、図17に示す。
0035
最後にステップS1310において、ステップS1306の結果、ステップS1309の結果を順に連接し、最後にプログラム終了命令を付加する。ここでは、最終的にニーモニックのリスト全体を得る。具体的には、図12、図16、及びプログラム終了命令のニーモニックである図18を順に連接したものが、図19のニーモニックのリスト全体となる。また、図19のニーモニックのリストに対応するラダー図を、図20に示す。
0036
このようにして、ハードウェア記述言語で記述された制御論理を、ラダープログラムに変換することができる。この結果、シーケンス制御プログラムをハードウェア記述やシステムレベル記述で行い、抽象度の高いレベルでの設計を生かしつつ、PLC等の汎用性の高いシステムが構築でき、生産性を高めることができる。また可読性の高いプログラム記述を利用できる結果、設計ミスを低減させることも期待できる。
0037
以上の手順では、先に置換を行った後に並び替えを行っているが、この順序を入れ替えても同様の効果が得られることはいうまでもない。また、以上の手順ではネットリストからステップS1303で先にセル及びassign文を切り出し、置換やソートを行った上で、ステップS1307以降でフリップフロップの切り出し等を行い、これらを合成しているが、例えば先にフリップフロップの切り出し等を行い、次いでセル等の切り出し等を行ってもよいし、あるいはこれらの処理を並列的にあるいは同時に行うこともできる。さらに、上記の例ではフリップフロップを含む例について説明したが、フリップフロップを含まない組み合わせ回路のみのハードウェア記述やネットリストに対しても、同様の処理を行えることはいうまでもない。
(実施例2:演算器を使用する変換手順の詳細)
0038
さらに本発明は、演算器を使用したハードウェア記述に対しても、シーケンス制御プログラムへの変換を行うことができる。このような例を実施例2として、図21のフローチャートに示す。以下、この変換手順の詳細を、図21〜図49に基づいて説明する。
0039
まず図21のステップS3601において、演算器をブラックボックスのサブモジュールとして配置したハードウェア記述を作成する。ここでハードウェア記述の一例を、図22に示す。図22において、ADDER16は16ビット加算器であり、ハードウェア記述においてサブモジュールとして配置している。ただし、サブモジュールの実体の記述はしておらず、ブラックボックスである。ADDER16は、16ビットの入力IN0とIN1、及び16ビットの出力Yを有する。
0040
次にステップS3602において、ハードウェア記述を論理合成し、シングルビット化したネットリストを得る。このステップS3602で得られるネットリストの例を図23〜図25に示す。ここではシングルビット化しているため、ハードウェア記述における16ビットの入力ADDDATAは、ネットリストにおいて1ビットずつのADDDATA_15_からADDDATA_0_に置き換わっている。また出力ACCDATAも同様である。さらにサブモジュールとして配置した16ビット加算器についても、ハードウェア記述における16ビットの入力IN0が、ネットリストにおいて、1ビットずつのIN0_15_からIN0_0_に置き換わっている。なお入力IN1、出力Yも同様である。参考のため、図23〜図25のネットリストに対応する回路図を、図26〜図30に示す。図26は回路図全体を示している。また図26の回路図中における、立上り検出回路、選択回路、リセット回路、及び累積加算レジスタを、それぞれ図27、図28、図29、図30に示す。図28に示す選択回路の各セルは、セレクタであり、図31に示すような複合ゲートの機能を有する。
0041
さらにステップS3603において、ステップS3602で得たネットリストから、セル、演算器、及びassign文を切り出す。この結果を、図32に示す。なおこの例では、ネットリストにassign文が含まれていないため、セルと演算器のみが切り出されている。
0042
さらにステップS3604において、ステップS3603の結果のセル、演算器、及びassign文の信号名をデバイス名に置き換える。ここでは、図32で得られた結果において、ネットリストのセル、演算器、及びassign文の信号名を、それぞれPLCのデバイス名に置き換えていく。具体的には、ネットリストのリセット信号をPLCの入力デバイスに、ネットリストのクロック、リセット以外の入力をPLCの入力デバイスに、ネットリストの出力をPLCの出力デバイスに、ネットリストのフリップフロップの出力のうち、直接、回路全体の出力になっていないものをPLCのビットデバイスに、またネットリストにおける上記以外の内部ノードをPLCのビットデバイスに、それぞれ置き換える。具体的な置き換えの対応関係を、図33の表に示す。また、置き換えた結果を図34に示す。
0043
ステップS3605において、ステップS3604の結果を、実行可能な順に並び替える。ここでは、図34の結果を、PLCで実行可能な順に並び替えていく。具体的には、ネットリストの入力のうち、クロック信号、リセット信号以外から変換されたデバイス、及びネットリストのフリップフロップの出力から変換されたデバイスについては、値が確定しているものとして、セル、演算器、及びassign文の入力(assign文の場合は右辺を入力と見なす)がすべて確定しているものから順に選択して並べ、選択されたセル、演算器、及びassign文の出力(assign文の場合は左辺を出力と見なす)は確定したものとし、同様に順に選択、並び替えを繰り返す。このようにして並び替えた結果を、図35に示す。
0044
ステップS3606において、ステップS3605の結果のセル、演算器、及びassign文を、ニーモニックに置き換える。ここでは、図35の結果において、セル、演算器、assign文を、それぞれニーモニックに置き換えていく。まず、演算器である16ビット加算器ADDER16について説明する。16ビットの入力IN0_15_からIN0_0_に接続されている各ビットデバイスを、16ビットの連続するビットデバイスに転送する。これを行うためのニーモニックのリストを、図36に示す。16ビットの入力IN1_15_からIN1_0_についても同様であり、図37に示す。また図38のK4M900は、ビットデバイスM900より、16進数で4桁分、すなわち16ビット分を表し、具体的にはビットデバイスM915からM900である。さらに図38の最初のニーモニックにより、図36で転送先となっていたビットデバイスM915からM900までの16ビットを、ワードデバイスD900に転送する。図38の2つ目のニーモニックにより、ビットデバイスM931からM916までの16ビットを、ワードデバイスD901に転送する。図38の3つ目のニーモニックにより、D900とD901の加算を行い、結果をD900に格納する。図38の4つ目のニーモニックにより、ワードデバイスD900を、ビットデバイスM915からM900までの16ビットに転送する。図38の5つ目のニーモニック以降で、ビットデバイスM915からM900までの16ビットを、ADDER16の16ビットの出力Y_15_からY_0_に接続されている各ビットデバイスに転送する。参考までに、図36〜図38のニーモニックのリストに対応するラダー図を、図39〜図42に示す。
0045
次に、セル及びassign文の置き換えについて説明する。セル及びassign文の置き換えは、演算器を使用しない実施例1と同様である。具体的には、図2のステップS1306と同様であり、ネットリストに現れ得るすべてのセルに対して予め変換規則を用意しておき、セル及びassign文をニーモニックに置き換える。本実施例では、ネットリストにassign文が含まれないため、セルのみが置き換えられる。セルからニーモニックへの変換結果を、図43〜図45に示す。以上、図36〜図38と図43〜図45を順に連接したものがステップS3606の結果となる。
0047
ステップS3608において、ステップS3607で得た結果において、信号名をデバイス名に置き換える。ここでは、図46で得られた結果の信号名を、ビットデバイスに置き換える。この置き換えでも、上述した図33の対応関係を用いる。この置き換えの結果を、図47に示す。
0049
最後に、ステップS3610において、ステップS3606の結果、ステップS3609の結果を順に連接し、最後にプログラム終了命令を付加する。このステップS3610で、最終的にニーモニックのリスト全体を得る。具体的には、図36〜図38、図43〜図45、図48、及びプログラム終了命令のニーモニックである図49を順に連接したものが、ニーモニックのリスト全体となる。このようにして、演算器を用いる場合でもハードウェア記述からシーケンス制御プログラムへの変換を行える。
0050
以上のようにして、設計対象システムの論理が複雑になっても、制御論理をハードウェア記述言語で記述することにより、直接ラダープログラムを作成する従来手法に比べて論理の可読性が高くなり、設計上のミスを防止することが可能となる。また仕様変更が発生した場合には、可読性の高いハードウェア記述に戻って修正すればよく、作業効率が高い。さらに、ハードウェア記述言語による設計パラダイムで確立されている各種の検証手法が適用可能となる。例えば、ハードウェア記述に対するアサーション手法を適用することにより、制御論理において満足させたい仕様の検証を行うことが可能となる。また、制御装置として、生産設備等で汎用的に使用されているPLCをそのまま使用することができ、FPGAボード等へ置き換える必要がないため、PLCと組み合わせて使用される他のユニット(MESインターフェース等)との接続が困難となることがない。
0051
本発明に係るシーケンス制御プログラム変換装置、シーケンス制御プログラム変換方法、シーケンス制御プログラム変換プログラム及びコンピュータで読取可能な記録媒体は、FA等の自動制御の分野において使用される、PLC用のプログラム開発装置や、ラダープログラム作成ソフトウェアなどに好適に利用できる。
0052
100…シーケンス制御プログラム変換装置
10…ハードウェア記述取得手段
12…ネットリスト取得手段
14…置換手段
15…ソート手段
16…ニーモニック変換手段