(57)【特許請求の範囲】
【請求項１】
電源部とパワー変換部を有するパワー部と、該パワー部を制御する制御部と、通信機能を有した通信インタフェース部とを備え、
前記制御部は、ＣＰＵと該ＣＰＵで実行される実行コードを記憶している実行コード部を有し、
前記実行コード部は、あらかじめ固有の端子番号に対応した実行コード・モジュールを実行コード・モジュール・テーブルとして組み込み、
前記ＣＰＵは、実行順序を表す一連の定数に前記固有の端子番号が指定された接続情報テーブル及び前記実行コード・モジュール・テーブルに基づき、対応付けされた実行コード・モジュールを実行し、
前記接続情報テーブルは、前記通信インタフェース部を介してダウンロードされることを特徴とするインバータ。
【請求項２】
前記実行コード部は、アプリケーションに応じてカスタマイズされるアプリケーション部を有し、
前記アプリケーション部は、前記接続情報テーブルをＪＵＭＰテーブルとして設定していることを特徴とする請求項１に記載のインバータ。
【請求項３】
前記端子番号に対応する実行コード・モジュールは、前記アプリケーション部にあらかじめ組み込まれていることを特徴とする請求項２に記載のインバータ。
【請求項４】
前記アプリケーション部は、前記ＪＵＭＰテーブルに設定された端子番号に対応した実行コード・モジュールを実行コード・モジュール・テーブルから検索して選択し、前記選択された実行コード・モジュールは選択されたときのみ実行されることを特徴とする請求項２または３に記載のインバータ。
【請求項５】
前記ＪＵＭＰテーブルの処理におけるデータの引渡しは、ワークラムを介して行われることを特徴とする請求項２乃至４のいずれか１項に記載のインバータ。
【請求項６】
前記端子番号に対応したあらかじめ組み込まれている実行コード・モジュールは、十分テストされたものであり、前記端子番号によってその種類が決められ、該種類によって組合せの実行に制約があることを特徴とする請求項３乃至５のいずれか１項に記載のインバータ。
【請求項７】
前記接続情報テーブルは、外部のプログラミング装置によりファンクション・ブロック、インストラクション・リスト、ストラクチャード・テキスト、ラダー・ダイアグラム、シーケンシャル・ファンクションチャートのいずれかを用いて作成されたソースコードを変換して生成されることを特徴とする請求項１乃至６のいずれか１項に記載のインバータ。
【請求項８】
前記ソースコードは、前記作成されたソースコードの組み合せにより新たに作成されたソースコードを含むことを特徴とする請求項７に記載のインバータ。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、アプリケーション部が容易にかつ高品質にカスタマイズ可能なインバータに関する。
【背景技術】
【０００２】  図１１にインバータの一般的構成を示す。
インバータ（１１００）は商用の交流電源（１１０９）を入力して電動機（１１１０）を駆動するための電力を供給するパワー部（１１０６）、そのパワー部（１１０６）を制御する制御部（１１０１）、および外部との通信インタフェース（１１１１）から構成される。
そして、パワー部（１１０６）は商用の交流電源（１１０９）を入力してパワー変換部（１１０８）に直流電力を供給する電源部（１１０７）と電源部（１１０７）から供給された直流電力を制御して電動機（１１１０）を運転仕様通りに駆動するための電力を供給するパワー変換部（１１０８）とから構成されている。
制御部（１１０１）は、ＣＰＵ（１１０２）とその上で実行される実行コードを記憶している実行コード部（１１０３）から構成され、さらに、実行コード部（１１０３）はアプリケーションに応じてカスタマイズされるアプリケーション部（１１０４）とアプリケーションから独立したモータ制御部（１１０５）から構成される。
また、アプリケーション（１１０４）を開発するためのプログラミング装置（１１２０）とは、必要な時に通信インタフェース部（１１１１）を介して接続される。
アプリケーション部（１１０４）は、パソコン等の上で実現されているプログラミング装置（１１２０）で開発され、実行可能なコードに変換されてインバータ（１１００）へダウンロードされる。【０００３】  アプリケーション部（１１０４）は、インバータ（１１００）のアプリケーションを実現するためのものであるが、その開発は、以下のような方法で行われていた。
従来、標準的使い方とは異なるアプリケーションを実現するためには、安定した品質を保つため、開発規定に従って、各ステップごとに開発を進め、ソース・コードを変更し、デバッグし、設計審査の後に認定して製品化するという手法をとる必要があった。この、ソース・コードを変更し、コンパイルし、実行コードをインバータ（１１００）へダウンロードしてデバッグするという工程をバグがなくなるまで繰り返す必要があり、時間がかかりすぎフレキシブルな対応が出来ないという問題があった。【０００４】  これを改善するために以下のように幾つかの手法がある。
一つには、プログラミング装置（１１２０）上でさまざまな機能としてモジュール化されたソース・コードを多数持ち、また、それらのさまざまなモジュール化されたソース・コードに対応したファンクション・ブロックをプログラミング装置（１１２０）に多数持ち、それらを画面上に表示し、その接続によってアプリケーションに対応したソース・コードを作成する。そしてプログラミング装置（１１２０）上でコンパイルして実行コードを生成し、インバータ（１１００）上にダウンロードするという方法である（非特許文献１）。【０００５】  もう一つには、図１２、図１３に示すような機種ごと、用途、機能ごとのモジュール化されたソース・コードを、あらかじめインバータ（１１００）内部に、接続情報で接続可能な形態で組み込んでおき、一方、プログラミング装置（１１２０）上には、インバータ（１１００）内部に組み込んだモジュール化されたソース・コードに対応したファンクション・ブロックを用意する。そして、その接続によってアプリケーションのソース・コードを作成し、その接続情報を接続定数の組み合わせに変換してインバータ（１１００）に設定する手法もある（非特許文献２）。
なお、「接続定数」とはファンクション・ブロックの接続を表す定数であり、単に「定数」という各ファンクション・ブロックがその計算のために使用する定数とは別のものである。
【非特許文献１】Ｃｏｎｔｒｏｌ  Ｔｅｃｈｎｉｑｕｅｓ  Ｄｒｉｖｅｓ，Ｌｔｄ．Ｕｓｅｒ  Ｇｕｉｄｅ  ＵＤ７０  Ｌａｒｇｅ  Ｏｐｔｉｏｎ  Ｍｏｄｕｌｅ  ａｎｄ  ｓｏｆｔｗａｒｅ  ｆｏｒ  Ｕｎｉｄｒｉｖｅ，Ｐａｒｔ  Ｎｕｍｂｅｒ：０４４７−００１７，Ｉｓｓｕｅ  Ｎｕｍｂｅｒ：２
【非特許文献２】ＳＳＤ  Ｄｒｉｖｅｓ，Ｉｎｃ．Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍａｎｕａｌ  ＲＧ３５２７４７  Ｉｓｓｕｅ  ６．１
【発明の開示】
【発明が解決しようとする課題】
【０００６】  しかし、前者の方法ではプログラミング装置（１１２０）上でファンクション・ブロックのソース・コードを管理しているため、誤って改版したり、改版したあとのテストが不十分で計算結果のオーバーフローが生じたり、ダウンロードしたときにメモリーのオーバーラップが発生する等の恐れがあり、信頼性に欠けるという問題がある。
また、アプリケーションに対応した実行コード全体を生成しているため、コンパイル及びダウンロードに時間がかかり開発が効率的でないという問題もある。【０００７】  その点、後者の方法は、各ファンクション・ブロックの実行コードはあらかじめインバータ（１１００）に組み込んであり、先に述べた信頼性の問題は大幅に低減されている。また、ダウンロードするのは、ファンクション・ブロックの接続情報等のみで、ファンクション・ブロック自体の実行コードそのものはコンパイルやダウンロードの対象となっていない。従って、コンパイルやダウンロードに時間がかかるという問題も回避されているが、まだ、以下のような問題を抱えている。【０００８】  インバータ（１１００）に組み込まれているすべてのファンクション・ブロックがいつも動く状況にあり、アプリケーションに関係のない処理にもＣＰＵ時間が浪費されて有効に使える処理時間が少なくなるので、アプリケーション部（１１０４）を用途別の専用ソフトとして分けて運用する必要がある。また、機種、用途ごとのファンクション・ブロックは大きくて処理も重たく、汎用性がないという問題がある。
つまり、用意された機種ごとのアプリケーション図面で端子の接続と、定数の設定変更が可能であるが、他機種で使用されたファンクション・ブロック図を使用したり、組み合わせて新しいファンクション・ブロックを作ることができない。またファンクション・ブロックのそれぞれは多くの固定した処理を含み汎用性が低いという問題がある。【０００９】  たとえば、図１２に示すアプリケーション図面１ではワインダー用途のためのアプリケーションのファンクション・ブロック図を示しているが、これは機種Ａ用として用意された図面であり、図３に示す機種Ｂに使用することもしくは応用することは出来ない。また図３に示すアプリケーション図面２も同じように機種Ａに使用することはできない。このように、大幅な変更及び、一度作成した特定アプリケーションの他機種への展開や、実行コードの再利用が不可能である。また用意されたファンクション・ブロックは接続線で接続されているか否かにかかわらず、常時動いており、多機能であるほど処理時間の無駄が大きくなっている。【００１０】  以上に述べたように、従来技術にはカスタマイズ可能な範囲が狭い、機種展開できないという自由度の低さ、また、多機能であるほどＣＰＵ（１１０２）での実行コードの処理が重くなるなどの問題がある。
本発明では、インバータ（１１００）の多種多様な用途に対応するために、制御部（１１０１）の実行コード部（１１０３）のうちアプリケーション部（１１０４）を標準より変更し、簡単かつ安定した品質で専用対応することが可能なインバータ（１１００）およびそのプログラミング装置（１１２０）を提供する。
【課題を解決するための手段】
【００１１】
請求項１に記載の発明は、電源部とパワー変換部を有するパワー部と、該パワー部を制御する制御部と、通信機能を有した通信インタフェース部とを備え、前記制御部は、ＣＰＵと該ＣＰＵで実行される実行コードを記憶している実行コード部を有し、前記実行コード部は、あらかじめ固有の端子番号に対応した実行コード・モジュールを実行コード・モジュール・テーブルとして組み込み、前記ＣＰＵは、実行順序を表す一連の定数に前記固有の端子番号が指定された接続情報テーブル及び前記実行コード・モジュール・テーブルに基づき、対応付けされた実行コード・モジュールを実行し、前記接続情報テーブルは、前記通信インタフェース部を介してダウンロードされることを特徴とするものである。
請求項２に記載の発明は、請求項１に記載のインバータにおいて、前記実行コード部は、アプリケーションに応じてカスタマイズされるアプリケーション部を有し、前記アプリケーション部は、前記接続情報テーブルをＪＵＭＰテーブルとして設定していることを特徴とするものである。
請求項３に記載の発明は、請求項２に記載のインバータにおいて、前記端子番号に対応する実行コード・モジュールは、前記アプリケーション部にあらかじめ組み込まれていることを特徴とするものである。
請求項４に記載の発明は、請求項２または３に記載のインバータにおいて、前記アプリケーション部は、前記ＪＵＭＰテーブルに設定された端子番号に対応した実行コード・モジュールを実行コード・モジュール・テーブルから検索して選択し、前記選択された実行コード・モジュールは選択されたときのみ実行されることを特徴とするものである。
請求項５に記載の発明は、請求項２乃至４のいずれか１項に記載のインバータにおいて、前記ＪＵＭＰテーブルの処理におけるデータの引渡しは、ワークラムを介して行われることを特徴とするものである。
請求項６に記載の発明は、請求項３乃至５のいずれか１項に記載のインバータにおいて、前記端子番号に対応したあらかじめ組み込まれている実行コード・モジュールは、十分テストされたものであり、前記端子番号によってその種類が決められ、該種類によって組合せの実行に制約があることを特徴とするものである。
請求項７に記載の発明は、請求項１乃至６のいずれか１項に記載のインバータにおいて、記接続情報テーブルは、外部のプログラミング装置によりファンクション・ブロック、インストラクション・リスト、ストラクチャード・テキスト、ラダー・ダイアグラム、シーケンシャル・ファンクションチャートのいずれかを用いて作成されたソースコードを変換して生成されることを特徴とするものである。
請求項８に記載の発明は、請求項７に記載のインバータにおいて、前記ソースコードは、前記作成されたソースコードの組み合せにより新たに作成されたソースコードを含むことを特徴とするものである。
【発明の効果】
【００１２】
本願の開示するインバータの一つの態様によれば、自由度の高いカスタム対応を簡単にかつ、安定した品質で実現することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の第一実施例のファンクション・ブロック図及び処理の流れ
【図２】本発明の第二実施例のタイムチャート
【図３】本発明の第二実施例のファンクション・ブロック図
【図４】ファンクション・ブロックのタブ画面構成
【図５】本発明の第二実施例におけるプログラミング装置の画面例
【図６】第二実施例における、コンパイル・エラー画面表示
【図７】ＩＬ（インストラクション・リスト）
【図８】ＳＴ（ストラクチャード・テキスト）
【図９】ＬＤ（ラダー・ダイアグラム）
【図１０】ＳＦＣ（シーケンシャル・ファンクション・チャート）
【図１１】インバータの一般的構成
【図１２】アプリケーション図面例１
【図１３】アプリケーション図面例２
【符号の説明】
【００１４】１０１  アナログ入力１ファンクション・ブロック
１０２  アナログ入力２ファンクション・ブロック
１０３  アナログ入力１出力端子番号
１０４  アナログ入力２出力端子番号
１０５  接続線１
１０６  接続線２
１０７  加算器入力１端子番号
１０８  加算器入力２端子番号
１０９  加算器ファンクション・ブロック
１１０  加算器出力端子番号
１１１  接続線３
１１２  周波数指令入力端子番号
１１３  周波数指令ファンクション・ブロック
１１４  接続情報テーブル
１１５  ＪＵＭＰテーブル
１１６  端子番号０１処理フローチャート
１１７  端子番号０３処理フローチャート
１１８  端子番号０２処理フローチャート
１１９  端子番号０４処理フローチャート
１２０  端子番号０５処理フローチャート
１２１  端子番号０６処理フローチャート
１２２  コンパイル
１２３  通信
１２４  実行コード・モジュール・テーブル
３００  ディジタル入力端子１ファンクション・ブロック
３０１  ロジック・インターバル・タイマー・ファンクション・ブロック
３０２  ロジックＮＯＴ演算ファンクション・ブロック
３０３、３０４  ロジックＡＮＤ演算ファンクション・ブロック
３０５  正転運転指令ファンクション・ブロック
３０６  逆転運転指令ファンクション・ブロック
３０７  定数入力ファンクション・ブロック１
３０８  定数入力ファンクション・ブロック２
３０９  ２入力数値選択ファンクション・ブロック
３１０  周波数指令ファンクション・ブロック
３１１  ロジック出力状態モニター
３１２  数値出力モニター
３１３  ロジック出力端子
３１４  ロジック入力端子
３１５  数値出力端子
３１６  数値入力端子
４００  ファンクション・ブロック・タブ・ウィンドウ
４０１  ロジックＡＮＤ演算ファンクション・ブロック
４０２  ロジックＯＲ演算ファンクション・ブロック
４０３  ロジックＮＯＴ演算ファンクション・ブロック
４０４  ロジックフリップフロップ回路ファンクション・ブロック
４０５  ロジックディレイタイマー回路ファンクション・ブロック
４０６  ロジックインターバルタイマー回路ファンクション・ブロック
４０７  定数出力ファンクション・ブロック・タブ
４０８  ロジック演算ファンクション・ブロック・タブ
４０９  数値演算ファンクション・ブロック・タブ
４１０  複合機能ファンクション・ブロック・タブ
４１１  固定値ファンクション・ブロック・タブ
４１２  サブルーチン・ファンクション・ブロック・タブ
５００  プログラミング装置の編集画面
５０１  メニューバー
５０２  ファンクション・ブロック図編集ページ
５０３  プロジェクト・ウィンドウ
５０４  プロパティ・ウィンドウ
５０５  ファンクション・ブロック・タブ・ウィンドウ
５０６  ページ・アイコン
５０７  サブルーチン・フォルダ
５０８  サブルーチン・アイコン
５０９  メモリ使用率表示
５１０  接続／未接続状態表示
５１１  処理時間占有率モニタ
５１２  ファンクション・ブロック選択カーソル
５１３  ファンクション・ブロック・ラベル
５１４  ファンクション・ブロックＩＤ番号
６０１  ディジタル入力端子２ファンクション・ブロック
６０２  コンパイル結果出力ウィンドウ
１１００  インバータ
１１０１  制御部
１１０２  ＣＰＵ
１１０３  実行コード部
１１０４  アプリケーション部
１１０５  モータ制御部
１１０６  パワー部
１１０７  電源部
１１０８  パワー変換部
１１０９  交流電源
１１１０  電動機
１１１１  通信インタフェース部（Ｉ／Ｆ部）
１２００  編集画面
１２０１  アナログ入力１ファンクション・ブロック
１２０２  アナログ入力２ファンクション・ブロック
１２０３  ディジタル入力１ファンクション・ブロック
１２０４  ディジタル入力２ファンクション・ブロック
１２０５  径演算ファンクション・ブロック
１２０６  シーケンス／ロジック指令ファンクション・ブロック
１２０７  アナログ出力ファンクション・ブロック
１２０８  周波数指令ファンクション・ブロック
１２０９  インバータ本体
１３００  編集画面
１３０１  アナログ入力１ファンクション・ブロック
１３０２  アナログ入力２ファンクション・ブロック
１３０３  アナログ入力３ファンクション・ブロック
１３０４  ディジタル入力１ファンクション・ブロック
１３０５  ディジタル入力２ファンクション・ブロック
１３０６  ディジタル入力３ファンクション・ブロック
１３０７  加算器
１３０８  シーケンス／ロジック指令ファンクション・ブロック
１３０９  ＰＩＤファンクション・ブロック
１３１０  周波数指令ファンクション・ブロック
１３１１  インバータ本体
【発明を実施するための最良の形態】
【００１５】  以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１６】  本発明の第１の実施例を図１に示すが、分かり易くするため、アナログ入力１（１０１）とアナログ入力２（１０２）を加算器（１０９）で加算して周波数指令（１１３）を作成するというアプリケーションを例にとって説明する。
まず、図１の上側に示すように、アプリケーションのソース・コードをプログラミング装置（１１２０）を使って作成する。すなわち、アナログ入力１（１０１）、アナログ入力２（１０２）、加算器（１０９）、周波数指令（１１３）の各ファンクション・ブロックをプログラミング装置（１１２０）の画面上に配置し、それらを接続線で接続することによってソースコードが作成される。【００１７】  このソースコードはコンパイル（１２２）されて、実行されるべき実行コード・モジュールとその実行順序に関する情報が、接続情報テーブル（１１４）として生成される。
つまり、この接続情報テーブル（１１４）の接続定数Ｎｏ．の欄の定数番号は実行順序を表しており、その定数の設定値としての端子番号の欄には、各ファンクション・ブロックが持っている固有の端子番号が設定される。
インバータ内において、この端子番号とそれに対応するファンクション・ブロックの実行コード・モジュールは、実行コード・モジュール・テーブル（１２４）で対応付けられているので、端子番号から実行コード・モジュールが決定されることになる。
なお、各ファンクション・ブロックの実行コードはあらかじめインバータ内部に組み込まれているので、あらためてダウンロードされる必要はない。【００１８】  本実施例の接続情報テーブル（１１４）について具体的に説明する。
接続線１（１０５）の入力情報の接続定数１にはアナログ入力１（１０１）の出力端子番号０１（１０３）が設定され、同じく接続線１（１０５）の出力情報の接続定数２には加算器（１０９）の入力１端子番号０３（１０７）が設定される。次に接続線２（１０６）の入力情報の接続定数３にはアナログ入力Ａ２（１０２）の出力端子番号０２（１０４）が設定され、同じく接続線２（１０６）の出力情報の接続定数４には加算器（１０９）の入力端子２端子番号０４（１０８）が設定される。最後に接続線３（１１１）の入力情報の接続定数５には加算器（１０９）の出力端子番号０５（１１０）が設定され、同じく接続線３（１１１）の出力情報の接続定数６に周波数指令（１１３）の入力端子番号０６（１１２）が設定される。【００１９】  これら接続情報はＲＳ２３２Ｃ等の通信（１２３）を経由してインバータ（１１００）に、ダウンロードされ、アプリケーション部（１１０４）に存在するＪＵＭＰテーブル（１１５）に設定される。なお、アナログ入力１（１０１）、アナログ入力２（１０２）、加算器（１０９）、周波数指令（１１３）の実際の処理を行うための実行コードは、それらの端子番号に対応した形で、インバータ（１１００）のアプリケーション部（１１０４）にあらかじめ組み込まれているので、新たにダウンロードする必要はない。
また、接続情報テーブル（１１４）とＪＵＭＰテーブル（１１５）はそれぞれプログラミング装置（１１２０）、インバータ（１１００）における呼称であり、お互いに異なっているが内容は同じである。【００２０】  次に、インバータ（１１００）でのアプリケーション部（１１０４）の実行について説明する。
インバータ（１１００）のアプリケーション部（１１０４）の実行は、このＪＵＭＰテーブル（１１５）に基いて行われるが、図１の下側に示すように、ＪＵＭＰテーブル（１１５）の接続定数Ｎｏ．の順番で実行される。
すなわち、ＪＵＭＰテーブル（１１５）の接続定数Ｎｏ．に設定された端子番号に対応した実行コード・モジュールが、実行コード・モジュール・テーブル（１２４）を検索して選択され、実行に移される。【００２１】  ＪＵＭＰテーブル（１１５）の端子番号に対応した処理を、上から順に説明する。
Ａ１（１１６）：本処理では、引渡し用のワーク・ラムにアナログ入力１ファンクション・ブロック（１０１）のデータを格納する。
＋入力１（１１７）：先に格納されたワーク・ラムの内容を接続先の加算器ファンクション・ブロック（１０９）の入力１のワーク・ラムに格納する。
Ａ２（１１８）：本処理では、引渡し用のワーク・ラムにアナログ入力２ファンクション・ブロック（１０２）のデータを格納する。
＋入力２（１１９）：先に格納されたワーク・ラムの内容を接続先の加算器ファンクション・ブロック（１０９）の入力２のワーク・ラムに格納する。
Ａｄｄ（１２０）：本処理では、引渡し用のワーク・ラムに加算器ファンクション・ブロック（１０９）の入力１と入力２のワーク・ラムの内容を加算した値を格納する。
周波数指令（１２１）：先に格納されたワークラムの内容を周波数指令ファンクション・ブロック（１１３）に格納する。この周波数指令（１１３）の出力は図１のモータ制御部（１１０５）に入力される。
このようにして、本発明によれば、自由度の高いカスタム対応を簡単にかつ、安定した品質で実現することが可能になる。
【実施例２】
【００２２】  次に、第２の実施例について説明するが、図２のような、簡単なパターン運転アプリケーションの作成を例にとって説明する。
図２のタイムチャートにおいて実線で示す運転周波数通りのパターン運転を行わせるためには、同図において破線で示す周波数指令をモータ制御部（１１０５）に与える必要がある。そのような周波数指令を生成するには、まずは、アプリケーションのソース・コードとして図３に示すようなファンクション・ブロック図を、プログラミング装置（１１２０）を使用して作成する。【００２３】  Ｓ１（３００）はインバータ（１１００）のディジタル入力端子１ファンクション・ブロック、ＩＮＴＶＬ  ＴＭＲ（３０１）はロジック・インターバル・タイマー・ファンクション・ブロック、ＮＯＴ（３０２）はロジックＮＯＴ演算ファンクション・ブロック、ＡＮＤ（３０３，３０４）はロジックＡＮＤ演算ファンクション・ブロック、ＦｗｄＣＭＤ（３０５）はモータ制御部（１１０５）に対する正転運転指令を出力する正転運転指令ファンクション・ブロック、ＲｅｖＣＭＤ（３０６）はモータ制御部（１１０５）に対する逆転運転指令を出力する逆転運転指令ファンクション・ブロック、Ｑ１−０１（３０７）は定数による設定値を入力する定数入力ファンクション・ブロック１、Ｑ１−０２（３０８）は定数による設定値を入力する定数入力ファンクション・ブロック２、ＮＵＭＳ（３０９）は２つの数値入力を選択する２入力数値選択ファンクション・ブロック、ＦｒｅｑＣＭＤ（３１０）はモータ制御部（１１０５）に対する周波数指令を出力する周波数指令ファンクション・ブロックとなっている。【００２４】  これらのファンクション・ブロックは図４に示すようにＴａｂ（４０７〜４１１）内部に、いろんな機種・用途に使用できる、標準的なかつ視覚的に機能を理解できるファンクション・ブロックとして用意されている。かつ、各ファンクション・ブロックに対応した実行コードは、十分にテストされた上で、あらかじめインバータ（１１００）内のアプリケーション部（１１０４）に組み込まれている。【００２５】  ソース・コード作成時は、ファンクション・ブロックはプログラミング装置（１１２０）において、前述のＴＡＢ上よりドラッグして、画面のプログラムページの任意位置にドロップし配置できる。
ファンクション・ブロックを画面上に配置した後、端子部分をクリックし他のファンクション・ブロックに接続することが出来る。端子は記号でロジックか、実数値かその種類を判別できるようになっており、異なる種類の端子同士を接続しようとしても接続できない。
また、機能的に不可能な接続もあるがそれも、コンパイル時にエラーとして表示される。例えば、図６のように、既存のページに端子入力Ｓ２（６０１）なるディジタル入力端子２ファンクション・ブロックを追加し、他のファンクション・ブロックのいずれとも接続せずにコンパイルを行うと、コンパイル結果出力ウィンドウ（６０２）に、エラーの内容とエラーの数を示し、コンパイルを終了する。なお、コンパイル結果出力ウィンドウ（６０２）はコンパイル開始時に画面上に現れる。【００２６】  それぞれのファンクション・ブロックの情報（定数、名称、等）はクリックして選択された状態で図５のプロパティ（５０４）内に表示され、編集が可能となる。図５の例では、正転周波数指令ファンクション・ブロック（５１２）のプロパティ（５０４）内に表示されており、ＩＤ番号が「８」、ラベルが「正転周波数指令」、ユーザー定数２が「５０．０」に設定されている。【００２７】  また、このページのアプリケーションのソース・コードはプロジェクトとして、図５のようにプロジェクト・ウィンドウ（５０３）に表示されるフォルダーに格納できる。
同じように図５プロジェクト・ウィンドウ（５０３）のサブルーチン・フォルダ（５０７）において新規ページを作成して、新たなサブルーチンを作成することができる。ここで作成したファンクション・ブロック図は一つのサブルーチン・ファンクション・ブロックとして、図４のファンクション・ブロック・タブ・ウィンドウのサブルーチン・タブ（４１２）から選択し、使用することが出来る。【００２８】  プログラムの容量制限としては、接続情報の個数すなわち接続情報テーブル（１１４）の行数の上限があるが、その使用状況を知らせるために、この上限を１００％として現在の接続情報の使用率を％で、図５の画面下部のメモリ使用率表示（５０９）に表示する。この表示は、使用している接続情報の数を直接表示しても構わないし、さらに使用することができる接続情報の数を％表示又はその数を直接表示しても構わない。【００２９】  プログラミング装置（１１２０）とインバータ（１１００）が通信可能かどうかを示すべく、図５の画面右下に、例えば、青／赤でプログラミング装置（１１２０）とインバータ（１１００）本体との接続／未接続状態（５１０）を表示する。【００３０】  アプリケーション部（１１０４）の処理時間が、ＣＰＵ（１１０２）が利用可能な処理時間全体のどれくらいを占めるのかについては、図５の画面中央下に処理時間占有率モニタ（５１１）を表示する。インバータ（１１００）本体と未接続（オフライン）の場合、選択されたファンクション・ブロックの処理時間予想の総和をＣＰＵ（１１０２）が利用可能な処理時間全体で除したものを表示し、接続されている（オンライン）場合、インバータ（１１００）の持つ実績値を読み込んで表示する。【００３１】  図３のＳ１ファンクション・ブロック（３００）の出力端子はロジック出力端子（３１３）でありのように表示される。これはインターバルタイマ（３０１）の入力として、ロジック入力端子（３１４）であると接続可能であるが数値入力端子には接続不可能となる。
同じようにＱ１−０２（３０８）の出力は数値出力端子（３１５）であり、数値入力端子である２数値入力選択器（３０９）の入力端子（３１６）に接続可能であり、ロジック入力端子には接続不可能となる。【００３２】  次に、図３の実施例の動作を説明する。
Ｓ１（３００）はインバータ（１１００）の入力端子１であり、これをパターン運転の開始指令とする。入力端子指令を閉とするとＳ１（３００）の出力はＴｒｕｅ“１”となり、図２に示すように運転指令が立ち上がる。
この出力信号はＡＮＤ（３０３，３０４）、ＩＮＴＶＬ  ＴＭＲ（３０１）に入力され、ＩＮＴＶＬ  ＴＭＲ（３０１）は入力されるとタイマーが作動し、に従ってＯＮ／ＯＦＦを繰り返す。この出力信号がＳ１（３００）の出力信号と一緒にＡＮＤ回路（３０３，３０４）に入り、それぞれが正転指令（３０５）、逆転指令（３０６）に入力される。なお、ＯＮ時間定数ならびにＯＦＦ時間定数は図５の画面右のプロパティ（５０４）にて設定又は参照可能である。【００３３】  また、ＩＮＴＶＬ  ＴＭＲ（３０１）からの出力と、定数（３０７，３０８）のそれぞれを正転指令／逆転指令としてＮＵＭＳ（３０９）に入力し、ＩＮＴＶＬ  ＴＭＲ（３０１）の出力のＯＮ／ＯＦＦによりＮＵＭＳ（３０９）の出力が正転時周波数指令（３０７）／逆転時周波数指令（３０８）として切り替わり、周波数指令（３１０）に最終的な周波数指令として入力される。
これらの正転指令（３０５）、逆転指令（３０６）、周波数指令（３１０）の出力は、図１のモータ制御部（１１０５）に入力され、図２の運転周波数に示すような運転が実現される。【００３４】  上記のように、アプリケーションのソース・コードはプログラミング装置（１１２０）上で接続情報に変換され、インバータ（１１００）に通信インタフェース（１１１１）を介してダウンロードされる。インバータ（１１００）では実施例１で述べたしくみにより、接続情報により選択されたファンクション・ブロックに対応する実行コードのみが実行され、プログラミング装置（１１２０）の画面上にファンクション・ブロック図で表現されているアプリケーションが実行される。このように、アプリケーション部の実行コードは選択された時のみ実行されるので、ＣＰＵ（１１０２）での処理時間の無駄が低減される。【００３５】  また、アプリケーションのソース・コードの作成については、上記のようなファンクション・ブロック図（ＦＢＤ：ファンクション・ブロック・ダイアグラム）だけでなく、図７のようなＩＬ：インストラクション・リスト、図８のようなＳＴ：ストラクチャード・テキスト、図９のようなＬＤ：ラダー・ダイアグラム、図１０のようなＳＦＣ：シーケンシャル・ファンクション・チャート等も使用することができる。
図７の場合、ＩＬをテキストエディタで作成し、ＩＬを接続情報に変換するコンパイラで処理して、図１に示すような接続情報テーブル（１１４）を生成する。
図８の場合、ＳＴをテキストエディタで作成し、ＳＴを接続情報に変換するコンパイラで処理して、図１に示すような接続情報テーブル（１１４）を生成する。
図９の場合、ＬＤをラダーエディタで作成し、ＬＤを接続情報に変換するコンパイラで処理して、図１に示すような接続情報テーブル（１１４）を生成する。
図１０の場合、ＳＦＣをＳＦＣエディタで作成し、ＳＦＣを接続情報に変換するコンパイラで処理して、図１に示すような接続情報テーブル（１１４）を生成する。
接続情報テーブル（１１４）が生成されたあと、それがインバータへダウンロードされて実行されるしくみは、ＦＢＤの場合と同様である。
このように、従来は不可能であった、高品質のアプリケーションを手軽に開発することが、本発明により実現できるのである。
【産業上の利用可能性】
【００３６】  本発明は、インバータの産業上の多種多様なアプリケーションに、容易かつ高品質に対応可能なインバータおよびそのプログラミング装置を提供するものである。
【図１】
0005018477.tif 000002
【図２】
0005018477.tif 000003
【図３】
0005018477.tif 000004
【図４】
0005018477.tif 000005
【図５】
0005018477.tif 000006
【図６】
0005018477.tif 000007
【図７】
0005018477.tif 000008
【図８】
0005018477.tif 000009
【図９】
0005018477.tif 000010
【図１０】
0005018477.tif 000011
【図１１】
0005018477.tif 000012
【図１２】
0005018477.tif 000013
【図１３】
0005018477.tif 000014