(57)【要約】      （修正有）【課題】ＰＬＣの実行速度を向上させる方法を提供する。【解決手段】プログラム可能な論理制御装置（ＰＬＣ）用のマシーンコード・プログラムのコンパイリング法は、ラダーダイヤグラム・プログラムのようなＰＬＣプログラムを読む。ＰＬＣプログラムのムネモニックコードをＰＬＣ論理ルールに関する文法の正しさを検索し、チェックする。ムネモニックコードが全て文法的に正しい場合、ＰＬＣプログラムをＣ言語プログラムへ変換し、次にＣ言語プログラムはＣ言語オブジェクトプログラムへ変換される。Ｃ言語オブジェクトプログラムをライブラリファイルとリンクする。リンクが成功すると、リンクプログラムを外部入力／出力点（ＥＸＩＯ）へアクセスするため、ＰＬＣ動作のための機械言語プログラムへ変換される。【選択図】図１
2009086898.tif 000002
【特許請求の範囲】
【請求項１】
ａ）ＰＬＣプログラムの入力
ｂ）ＰＬＣプログラム中のムネモニックコードの検索
ｃ）ムネモニックコードが全て正しいＰＬＣ論理を有する場合、ＰＬＣプログラムのＣ言語プログラムへの変換
ｄ）Ｃ言語プログラムのＣ言語オブジェクトプログラムへの変換
ｅ）Ｃ言語オブジェクトプログラムとライブラリファイルとのリンク；及び
ｆ）もしＣ言語オブジェクトプログラムがライブラリファイルと成功的にリンクされるならば、Ｃ言語オブジェクトプログラムに対応するマシーンコード・プログラムの生成
【請求項２】
請求項１に記載の方法であって、更に
いずれかのムネモニックコードがステップ（ｃ）で不正なＰＬＣ論理を有するならば、エラーメッセージを指示する、方法。
【請求項３】
請求項１に記載の方法であって、更に
リンクステップがステップ（ｆ）で成功的でない場合、エラーメッセージ指示する、方法。
【請求項４】
マシーンコード・プログラムを使用して、ＰＬＣ用外部入力／出力点（ＥＸＩＯ）を制御する、請求項１に記載の方法。
【請求項５】
ＰＬＣプログラムはラダーダイヤグラム・プログラムである、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はプログラム可能な論理制御装置（ＰＬＣ）制御プログラムの編集法、特に現在のＰＬＣプログラムに基づくＰＬＣ用マシーンコード・プログラムをコンパイルする方法に関する。
【背景技術】
【０００２】
プログラム可能な論理制御装置（ＰＬＣ）制御プログラム用に開発されたソフトウェアは主にラダーダイヤグラム（ＬＤ）に集中する。ＬＤ言語は簡単な文法を有し、ＰＬＣ制御プログラムに広く使用される。しかし、ＬＤ言語は可変データ構造、算術計算、オブジェクト指向設計、及びプログラム制御のような高級言語特性を欠く。更に、ＬＤ言語の文法もＰＬＣハードウェアプラットフォームに依存する。従って、国際電気技術協会（ＩＥＣ）はＰＬＣ制御プログラムのプログラム開発ツールへ高級言語特性を組み込むため、ＩＥＣ６１１３‐３標準言語を規定している。
【０００３】
ＩＥＣ６１１３‐３は以下の５つの標準言語を規定している。
【０００４】
１．ＬＤ
ＬＤ言語のプログラミングは機械作動シーケンスの情報を必要とし、最初に制御ループを描かなければならない。その後、リレー制御での接点ａと接点ｂ、直列と並列接続及びコイルを記号化する。
【０００５】
２．機能ブロック図、ＦＢＤ
ＦＢＤは適切な接続を備える所定機能ブロックから構成される。従って、ＦＢＤは制御要素のデータフローに特に適する。
【０００６】
３．インストラクションリスト（ＩＬ）又はステートメントリスト（ＳＬ）
ＩＬはブール代数及び基本論理操作から構成される低級言語である。ＩＬは主にＡＮＤ、ＯＲ及びＮＯＴのようなムネモニックを含む。
【０００７】
４．構造テキスト（ＳＴ）
ＳＴは、算術演算、サブルーチン、ループ及び条件判断のような高級言語機能を備えるＰＬＣ用である。従って、高級言語機能を備えるＰＬＣを通信回線によりＰＣとリンクできる。
【０００８】
５．順次機能チャート（ＳＦＣ）
ＳＦＣは機械操作を順次機能フローへ分解し、次に全体の機械操作を実現するため順次機能をリンクする。
【０００９】
ＩＥＣ６１１３１‐３プログラムはＰＬＣ用プログラムエントリ装置により、又はＰＬＣへリンクされるコンピュータ中のコンピュータソフトウェアにより入力される。前者はコマンドコードを入力するのに適する一方、後者は全ての種類のＰＬＣ言語を入力することができる。
【００１０】
ＨＭＩとＰＬＣによりアクセスされる外部入力／出力（ＥＸＩＯ）はそれらの機能を実行するため対応するソフトウェアにより編集されるムネモニックコードを必要し、ムネモニックコードはマシーンコードへ変換する必要がある。しかし、ムネモニックコードの識別と変換は時間遅れを起こし、ＰＬＣプログラムの実行速度に影響を与える。
【００１１】
例えば、デルタ電子（この出願の指定代理人）、三菱及び他のブランドのＰＬＣはユーザに特有のスクリーンエディタを提供する。ＰＬＣプログラムはムネモニックコードへ変換され、次にムネモニックコードはその中で実行するため、ＨＭＩへダウンロードされる。しかし、従来方式は以下の２つの欠点を有する。
【００１２】
ムネモニックコードは全て時間のかかる識別を必要とする。
【００１３】
変数と定数は全て実行速度に影響する変換を必要とする。
【発明の開示】
【００１４】
この発明の目的は現在のＰＬＣプログラムに基づくＰＬＣ用マシーンコード・プログラムをコンパイルし、これによりＰＬＣの実行速度を向上させる方法を提供することである。
【００１５】
従って、この発明は以下を含むプログラム可能な論理制御装置（ＰＬＣ）用マシーンコード・プログラムをコンパイルする方法を提供する；
（ａ）ＰＬＣプログラムの入力
（ｂ）ＰＬＣプログラムのムネモニックコードの検索
（ｃ）ムネモニックコードは全て正しいＰＬＣ論理を有する場合、ＰＬＣプログラムをＣ言語プログラムへ変換する。
（ｄ）Ｃ言語プログラムをＣ言語オブジェクトプログラムへ変換する。
（ｅ）Ｃ言語オブジェクトプログラムをライブラリファイルとリンクさせる。
（ｆ）Ｃ言語オブジェクトプログラムがライブラリファイルと成功的にリンクするならば、Ｃ言語オブジェクトプログラムに対応するマシーンコード・プログラムを生成させる。
【００１６】
更に、ステップ（ｃ）で、いずれかのムネモニックコードが不正なＰＬＣ論理を有する場合、エラーメッセージを指示する。
【００１７】
更に、リンクステップが、ステップ（ｆ）で成功的でない場合、エラーメッセージを指示する。
【発明を実施するための最良の形態】
【００１８】
図１はこの発明の好適実施形態によるＰＬＣ用マシーンコード・プログラムをコンパイルする方法のフローチャートを示す。この発明によるＰＬＣ用マシーンコード・プログラムをコンパイルする方法は、ＰＬＣプログラムをマシーンコード・プログラムへ変換するため、コンピュータソフトウェアにより実施され、そしてコンピュータにより実行される。
【００１９】
この発明によるＰＬＣ用マシーンコード・プログラムのコンパイル方法は以下のステップからなる。
【００２０】
既編集ＰＬＣプログラムはステップＳ１０で開かれ、例えばＰＬＣプログラムはデルタＷＰＬ・ＨＭＩにより編集されるラダーダイヤグラムである。ムネモニックコードの位置をステップＳ１２でＰＬＣプログラム中を検索し、ここでムネモニックコードはＬＤ、ＡＮＤ、ＡＮＩコードである。検索したムネモニックコードは、それがステップＳ２０でＰＬＣ論理ルールを満足するかどうかについて判断される。もし検索したムネモニックコードのいずれか１つがＰＬＣ論理ルールを満足しない（即ち、ＰＬＣ文法を満足しない）ならば、コンパイル処理を中断し、エラーコードを有するエラーメッセージをステップＳ２２で指示し、これによりユーザはエラーをデバッグできる。
【００２１】
もし検索したムネモニックコードが全てＰＬＣ論理ルールを満足するならば、ＰＬＣプログラムは、ステップＳ２４でＣ言語プログラムラダーｃへ変換される。次にＣ言語プログラムラダーｃは、Ｃ言語オブジェクトコードラダーＣ．ｏを生成するため、ステップＳ２６で、ＧＣＣコンパイルソフトウェアによりコンパイルされる。次にＣ言語オブジェクトコード・ラダーＣ．ｏは、ステップＳ２８でライブラリファイル・ラダーｈ．ｏとリンクされる。
【００２２】
リンク処理は、それがステップＳ３０で成功したか、即ちＣ言語オブジェクトコード・ラダーＣ．ｏがライブラリファイル・ラダーｈ．ｏと成功的にリンクされたかどうかを評価する。もし成功的でないならば、コンパイル処理を中断し、エラーメッセージがステップＳ３２で指示される。もし成功的であれば、マシーンコード・プログラム・ラダーｏがステップＳ３４で生成される。
【００２３】
図２はＰＬＣ用マシーンコード生成方法を示す概略図を示す。図３はＰＬＣ用マシーンコード生成方法を示す別の概略図を示す。ステップＳ１０で読み取られるＰＬＣプログラムは図２で示すラダーダイヤグラムである。もしラダーダイヤグラムのムネモニックコードが全てＰＬＣ論理を満足するならば、入力されるＰＬＣプログラムは図３に示すようにＣ言語プログラムラダーｃへ変換される。Ｃ言語プログラムは従来の処理によりマシーンコード言語に容易に変換できる。従って、Ｃ言語プログラムラダーｃは、Ｃ言語オブジェクトコード・ラダーＣ．ｏがライブラリファイル・ラダーｈ．ｏと成功的にリンクされた後、機械語カウンタパートへ変換される。機械語カウンタパートはＰＬＣにより容易に、かつ効率的に実行される。
【００２４】
上記説明から分かるように、入力されるＰＬＣプログラムはＨＭＩエンドで読み取られる。入力されるＰＬＣプログラムは、入力されるプログラムにＰＬＣ論理エラーがない（即ちＰＬＣ文法エラーがない）場合、マシーンコード・カウンタパートへコンパイルされる。より詳しくは、入力されるＰＬＣプログラムはＣ言語プログラムへ変換され、そしてＣ言語プログラムは（オブジェクトファイルへ変換された後）マシーンコード・プログラムを生成するためライブラリファイルとリンクされる。マシーンコード・プログラムは、更なる識別と変換作業なしに、ＰＬＣにより直接実行される。プログラム実行効率を向上させることができる。
【００２５】
この発明はその好適実施形態に関し述べてきたが、本発明はその詳細に限定されないことは理解されるだろう。色々な置換と変形を先の記述で示唆してきたが、他にも当業者に思いつくだろう。従って、この種の置換と変形は、全て付属の特許請求の範囲に規定されるような本発明の範囲に包含されることを意図する。
【図面の簡単な説明】
【００２６】
新規性があると考えられる本発明の特徴は、以下の付属図面に関して本発明のいくつかの典型的実施形態を記述する付属の特許請求の範囲の特異性により説明される。しかし本発明自身は本発明の以下の詳細説明に関して最もよく理解され、。
【図１】この発明の好適実施形態によるＰＬＣ用マシーンコード・プログラムをコンパイルする方法のフローチャートを示す。
【図２】ＰＬＣ用マシーンコードを生成する方法を示す概略図を示す。
【図３】ＰＬＣ用マシーンコードを生成する方法を示す別の概略図を示す。
【図１】
2009086898.tif 000003
【図２】
2009086898.tif 000004
【図３】
2009086898.tif 000005