(57)【要約】【課題】ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）命令語コンパイルの最適化方法を提供する。【解決手段】ＰＬＣ命令語コンパイルの最適化方法は、ＰＬＣで実行されるべきプログラム内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断するステップと、選択されたコンパイル処理方式により、速度またはサイズに最適化された命令語コンパイルを行うステップと、を含んでいる。【選択図】図７
2017079069.tif 000002
【特許請求の範囲】
【請求項１】
ＰＬＣで実行されるべきプログラム内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断するステップと、
選択された前記コンパイル処理方式により、速度またはサイズに最適化された命令語コンパイルを行うステップと、を含む、ＰＬＣ命令語コンパイルの最適化方法。
【請求項２】
前記命令語コンパイルを行うステップは、
前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記速度である場合、所定基準の簡単な命令語処理であるかを判断するステップと、
前記簡単な命令語処理であるかを判断するステップで判断した結果、
簡単な命令語処理である場合には、直接コンパイル処理方式によりアセンブラ言語で命令語コンパイルを行うステップと、
簡単な命令語処理ではない場合には、前記速度に最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記ＰＬＣの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含む、請求項１に記載のＰＬＣ命令語コンパイルの最適化方法。
【請求項３】
前記命令語コンパイルを行うステップは、
前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記サイズである場合、前記サイズに最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記ＰＬＣの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップを含む、請求項１に記載のＰＬＣ命令語コンパイルの最適化方法。
【請求項４】
前記命令語コンパイルを行うステップは、
前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式がデフォルトである場合、所定基準の簡単な命令語処理であるかを判断するステップと、
前記簡単な命令語処理であるかを判断するステップで判断した結果、
簡単な命令語処理である場合には、直接コンパイル処理方式により命令語コンパイルを行うステップと、
簡単な命令語処理ではない場合には、前記デフォルトと設定された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記ＰＬＣの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含む、請求項１に記載のＰＬＣ命令語コンパイルの最適化方法。
【請求項５】
前記一つのコンパイル処理方式を判断するステップは、
前記速度に相応する第１の選択ボックス、及び前記サイズに相応する第２の選択ボックスを提供するステップと、
前記第１の選択ボックスへの入力があると前記速度が選択されたと判断し、前記第２の選択ボックスへの入力があると前記サイズが選択されたと判断し、前記第１の選択ボックス及び前記第２の選択ボックスの何れの入力もないとデフォルトが選択されたと判断するステップと、を含む、請求項１に記載のＰＬＣ命令語コンパイルの最適化方法。
【請求項６】
プログラムサイズまたは前記ＰＬＣ内の残余データ格納容量に基づいて、命令語に対する複数のコンパイル処理方式のうち一つのコンパイル処理方式を自動で選択して設定するステップをさらに含む、請求項１に記載のＰＬＣ命令語コンパイルの最適化方法。
【請求項７】
前記一つのコンパイル処理方式を自動で選択して設定するステップでは、
正常状況では前記速度をコンパイル処理方式として選択し、プログラムサイズが基準サイズを超えると前記サイズをコンパイル処理方式として選択して設定する、請求項６に記載のＰＬＣ命令語コンパイルの最適化方法。
【請求項８】
前記一つのコンパイル処理方式を自動で選択して設定するステップでは、
正常状況では前記速度をコンパイル処理方式として選択し、前記ＰＬＣ内の残余データ格納容量が基準容量以下になると前記サイズをコンパイル処理方式として選択して設定する、請求項６に記載のＰＬＣ命令語コンパイルの最適化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）命令語コンパイルの最適化方法に関し、より詳細には、ＰＡＤＴ（Ｐｒｏｇｒａｍｍｉｎｇ  Ａｎｄ  Ｄｅｂｕｇｇｉｎｇ  Ｔｏｏｌ）コンパイラーで行われるＰＬＣ命令語コンパイルの処理方式を改善するために、ユーザプログラムを最適化するＰＬＣ命令語コンパイルの最適化方法に関する。
【背景技術】
【０００２】
産業現場のファクトリーオートメーションシステムなどでは、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）のような統合制御装置が用いられる。ＰＬＣには、基本ユニットの汎用ＭＰＵ（Ｍａｉｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が搭載されており、汎用ＭＰＵは、ユーザがＰＡＤＴ（Ｐｒｏｇｒａｍｍｉｎｇ  Ａｎｄ  Ｄｅｂｕｇｇｉｎｇ  Ｔｏｏｌ）を用いて作成したプログラムを、ＰＬＣが認識できるコードに変換する、コンパイル過程を実行する。
【０００３】
したがって、ＰＬＣを駆動するためには、ユーザがＰＡＤＴを活用して作成したプログラムをコンパイルすることで、ＭＰＵが認識できるように変換しなければならない。
【０００４】
ＰＡＤＴは、プログラムの作成、編集及びデバッグ機能を行うソフトウェアである。ＰＡＤＴは、ユーザが作成したプログラムの命令語をＰＬＣが理解できるようにコンパイルしてから、ＰＬＣにダウンロードする機能を担う。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＰＡＤＴは様々な方法により命令語をコンパイルするが、この処理方法によって、実行速度や修正容易性などの様々な違いが生じる。
【０００６】
一方、命令語の処理速度やプログラム容量はＰＬＣ性能の最も重要なファクタである。処理速度が速いと、生産性を高めることができ、プログラム容量が大きいと、より多くの入出力を制御することができる。
【０００７】
しかしながら、従来技術のＰＬＣは、固定された命令語の処理速度とプログラム容量を支援するため、システムの特性に応じて処理速度とプログラム容量を柔軟に変更することができなかった。
【０００８】
このため、使用中に命令語の処理速度が遅い場合やプログラムサイズが不足する場合、ＰＬＣを上位機種に変更したりシステムを変更したりしなければならないという問題点がある。
【０００９】
本発明が解決しようとする課題は、ＰＡＤＴ（Ｐｒｏｇｒａｍｍｉｎｇ  Ａｎｄ  Ｄｅｂｕｇｇｉｎｇ  Ｔｏｏｌ）コンパイラーで行われるＰＬＣ命令語コンパイルの処理方式を改善するためにユーザプログラムを最適化するＰＬＣ命令語コンパイルの最適化方法を提供することにある。
【００１０】
本発明が解決しようとする課題は上述の課題に制限されず、言及されていない他の課題は、以下の記載により提案される実施形態が属する技術分野において通常の知識を有する者であれば明確に理解される。
【課題を解決するための手段】
【００１１】
本発明の一側面によると、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）命令語コンパイル方法であって、前記ＰＬＣで実行されるべきプログラム内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断するステップと、選択された前記コンパイル処理方式により、速度またはサイズに最適化された命令語コンパイルを行うステップと、を含むＰＬＣ命令語コンパイルの最適化方法が提供される。
【００１２】
前記命令語コンパイルを行うステップは、前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記速度である場合、所定基準の簡単な命令語処理であるかを判断するステップと、前記簡単な命令語処理であるかを判断するステップで判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式によりアセンブラ言語で命令語コンパイルを行うステップと、簡単な命令語処理ではない場合には、前記速度に最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記ＰＬＣの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含むことができる。
【００１３】
前記命令語コンパイルを行うステップは、前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記サイズである場合、前記サイズに最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記ＰＬＣの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップを含むことができる。
【００１４】
前記命令語コンパイルを行うステップは、前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式がデフォルトである場合、所定基準の簡単な命令語処理であるかを判断するステップと、前記簡単な命令語処理であるかを判断するステップで判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式により命令語コンパイルを行うステップと、簡単な命令語処理ではない場合には、前記デフォルトと設定された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記ＰＬＣの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含むことができる。
【００１５】
前記一つのコンパイル処理方式を判断するステップは、前記速度に相応する第１の選択ボックス、及び前記サイズに相応する第２の選択ボックスを提供するステップと、前記第１の選択ボックスへの入力があると前記速度が選択されたと判断し、前記第２の選択ボックスへの入力があると前記サイズが選択されたと判断し、前記第１の選択ボックス及び前記第２の選択ボックスの何れの入力もないとデフォルトが選択されたと判断するステップと、を含むことができる。
【００１６】
前記ＰＬＣ命令語コンパイルの最適化方法は、プログラムサイズまたは前記ＰＬＣ内の残余データ格納容量に基づいて、命令語に対する複数のコンパイル処理方式のうち一つのコンパイル処理方式を自動で選択して設定することができる。
【００１７】
前記一つのコンパイル処理方式を自動で選択して設定するステップでは、正常状況では前記速度をコンパイル処理方式として選択し、プログラムサイズが基準サイズを超えると前記サイズをコンパイル処理方式として選択して設定することができる。
【００１８】
前記一つのコンパイル処理方式を自動で選択して設定するステップでは、正常状況では前記速度をコンパイル処理方式として選択し、前記ＰＬＣ内の残余データ格納容量が基準容量以下になると前記サイズをコンパイル処理方式として選択して設定することができる。
【発明の効果】
【００１９】
本発明によると、ＰＡＤＴ（Ｐｒｏｇｒａｍｍｉｎｇ  Ａｎｄ  Ｄｅｂｕｇｇｉｎｇ  Ｔｏｏｌ）コンパイラーで行われる命令語コンパイルの処理方式を改善して、ユーザの状況に応じて速度オプションまたはサイズオプションを選択し、速度最適化されたコンパイル処理方式により命令語をコンパイルしたり、サイズ最適化されたコンパイル処理方式により命令語をコンパイルしたりすることで、ユーザプログラムを最適化することができる。
【００２０】
また、本発明によると、ＰＬＣプログラムの最適化コンパイル方法によりユーザがコンパイル方式を選択するようにすることで、様々なシステムに柔軟に対応することができる。
【００２１】
例えば、速度オプションを選択した場合、速度に最適化されたコンパイル処理方式を提供して様々な方法により速度を高めることができる。反対にサイズオプションを選択した場合、プログラム格納容量効率を高めるようにサイズを最適化し、何れも選択されていない場合には、基本オブジェクトコードを用いてコンパイルすることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、ユーザコードを説明するための図である。
【図２】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、開発者コードを説明するための図である。
【図３】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、命令語処理を説明するための図である。
【図４】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法を説明するための図である。
【図５】本発明の一実施形態によるＰＬＣ命令語コンパイルを最適化するためにコンパイル処理方式を設定することを説明するための図である。
【図６】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、オブジェクトファイルを生成することを説明するための図である。
【図７】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法を説明するための図である。
【図８】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、直接コンパイルを説明するための図である。
【図９】本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、間接コンパイルを説明するための図である。
【図１０】本発明の他の一実施形態によるＰＬＣ命令語コンパイルの最適化方法を説明するための図である。
【発明を実施するための形態】
【００２３】
本発明は、様々な変更が可能であって、様々な実施形態を有することができるため、特定実施形態を図面に例示するとともに、詳細な説明に詳細に説明する。しかし、本発明を特定の実施形態に限定するためのものではなく、本発明の技術思想及び技術範囲に含まれる全ての変更、均等物乃至代替物を含むと理解されるべきである。
【００２４】
以下、添付図面を参照して、本発明による好ましい一実施形態を詳細に説明する。
【００２５】
図１は、本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、ユーザコードを説明するための図である。
【００２６】
図１を参照すると、ユーザがＰＡＤＴ（Ｐｒｏｇｒａｍｍｉｎｇ  ａｎｄ  Ｄｅｂｕｇｇｉｎｇ  Ｔｏｏｌ）を活用してプログラム（例えば、ＭＯＶＥ命令語６）を作成する。
【００２７】
図２は、本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、開発者コードを説明するための図である。
【００２８】
図２を参照すると、開発者は、ソース編集ツールを用いて命令語処理関数コード２を作成する。命令語処理関数コード２は、例えば、ｖｏｉｄ  ｍｏｖｅ（ｖｏｉｄ）であることができる。開発者により作成された命令語処理関数コード２は、ＭＰＵ専用コンパイラー３によってバイナリ形式のオブジェクトコード４として作られる。ＭＰＵ専用コンパイラー３は、Ｃ言語またはＣ＋＋コンパイラーであることができる。
【００２９】
コンパイルされたバイナリ形式のオブジェクトコード４は、命令語処理関数を格納している。このオブジェクトコード４を用いて命令語毎に先頭アドレスと大きさを抽出し、命令語マップテーブル９を作る（図３参照）。
【００３０】
図３は、本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法において、命令語処理を説明するための図である。
【００３１】
図３を参照すると、ユーザがＰＡＤＴでＭＯＶＥ命令語６を使用する場合における処理過程が示される。ＰＡＤＴコンパイラー５は、基本的に、ユーザが作成したプログラム７を、ＰＬＣが動作するための形式に変換することができる。命令語を実行するためには、命令に応じて処理関数を作成しなければならない。
【００３２】
ユーザによりＰＡＤＴでＭＯＶＥ命令語６が作成されると、プログラム７の処理中にＭＯＶＥ命令語６が呼び出される（８）。
【００３３】
ＭＯＶＥ命令語６が呼び出されると、命令語マップテーブル９でバイナリファイル１０に格納されたＭＯＶＥ命令語６のアドレスを確認し（１１）、該当する命令語処理関数コード２が格納されているバイナリファイル１０に移動する（１２）。そして、ＭＯＶＥ命令語処理関数コード２をコンパイル領域に挿入する（１３）。このようにコンパイル処理が終わると、ＰＬＣ駆動ファイル１４が生成される。
【００３４】
図４は、本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法を説明するための図である。図５は、本発明の一実施形態によるＰＬＣ命令語コンパイルを最適化するためにコンパイル処理方式を設定することを説明するための図である。
【００３５】
図４を参照すると、ＰＡＤＴのラダープログラムを用いて、ＰＬＣで実行されるべきプログラムコードを作成する（Ｓ１００）。
【００３６】
その後、ＰＬＣで実行されるべきプログラム７内に含まれた命令語に対する複数のコンパイル処理方式のうち、一つのコンパイル処理方式を設定する（Ｓ２００）。
【００３７】
例えば、ユーザが、速度オプション及びサイズオプションをチェックまたは解除できるようにして、コンパイル最適化方式を設定することができる。この際、別のオプションが選択されない場合（デフォルトオプション）には、基本オブジェクトコードを用いたコンパイルを行うように設定することができる。サイズオプションが選択された場合は、サイズに最適化された命令語コンパイルを行うように設定することができる。
【００３８】
図５を参照すると、速度オプションまたはサイズオプションを選択するための選択ボックス１５が示されている。選択ボックス１５には、速度オプションに相応する第１の選択ボックス１６、サイズオプションに相応する第２の選択ボックス１７が提供されることができる。
【００３９】
第１の選択ボックス１６への入力があると、速度オプションが選択されたと判断する。これと異なり、第２の選択ボックス１７への入力があると、サイズオプションが選択されたと判断する。しかし、第１の選択ボックス１６及び第２の選択ボックス１７の何れの入力もないと、デフォルトオプションが選択されたと判断する。
【００４０】
図４を参照すると、ＰＬＣで実行されるべきプログラム７内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式により命令語コンパイルを行って、ＰＬＣ駆動ファイル１４を生成する（Ｓ３００）。
【００４１】
そのために、ＰＬＣで実行されるべきプログラム７内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断する。
【００４２】
図６を参照すると、選択されたコンパイル処理方式が速度である場合には、ＭＰＵ専用コンパイラー３は、速度に最適化されたバイナリファイル形式のオブジェクトコード４を生成する。
【００４３】
判断した結果、選択されたコンパイル処理方式がサイズである場合には、ＭＰＵ専用コンパイラー３は、サイズ最適化されたバイナリ形式のオブジェクトコード４を生成する。
【００４４】
判断した結果、選択されたコンパイル処理方式がデフォルトである場合には、ＭＰＵ専用コンパイラー３は、デフォルトと設定されたバイナリ形式のオブジェクトコード４を生成する。
【００４５】
その後、命令語を処理する時に、ＰＡＤＴコンパイラー５は、ユーザが作成したプログラム７をＰＬＣが動作するための形式に変換することができる。
【００４６】
図３〜４を参照すると、ＰＡＤＴコンパイラー５は、選択されたコンパイル処理方式が速度である場合には、速度に最適化されたオブジェクトコード４を用いて、速度に最適化された命令語コンパイルを行ってＰＬＣ駆動ファイル１４を作る。一方、選択されたコンパイル処理方式がサイズである場合には、サイズに最適化されたオブジェクトコード４を用いて、サイズに最適化された命令語コンパイルを行ってＰＬＣ駆動ファイル１４を作る。
【００４７】
さらに、選択されたコンパイル処理方式がデフォルトである場合には、デフォルトと設定されたオブジェクトコード４を用いて、命令語コンパイルを行ってＰＬＣ駆動ファイル１４を作る。
【００４８】
このように生成されたＰＬＣ駆動ファイル１４がＰＬＣにダウンロードされる（Ｓ４００）。
【００４９】
図７は、本発明の一実施形態によるＰＬＣ命令語コンパイルの最適化方法を説明するための図である。
【００５０】
図７を参照すると、ＰＬＣで実行されるべきプログラム７内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断する（Ｓ３０１）。
【００５１】
Ｓ３０１で判断した結果、選択されたコンパイル処理方式が速度である場合には、所定基準の簡単な命令語処理であるかを判断する（Ｓ３０２）。ここで、簡単な命令語処理であるかを判断する基準は、直接コンパイルが可能な命令語に該当するか否かである。直接コンパイルが可能であると、簡単な命令語に該当する。
【００５２】
このように、速度オプションが選択された場合、ＰＡＤＴコンパイラー５では使用中の命令語を確認し、該当する命令語が直接コンパイル方式または間接コンパイル方式のうち直接コンパイルが可能な命令語であるかを判断する。
【００５３】
例えば、一つの命令語コードが極めて大きく且つ複雑な場合には、ＣＰＵ内にＣコードで作成されているため、直接コンパイルが不可能である。したがって、直接コンパイルが可能な命令語であるかを判断した結果、直接コンパイルが可能な命令語である場合には、速度に最適化されたアセンブラ言語で直接コンパイルを行う。一方、判断した結果、直接コンパイルが不可能な命令語である場合には、Ｃコードで作成された命令語実行ルーチンを速度オプションとしてコンパイルを行う。
【００５４】
ここで、直接コンパイルは、図８に示されたように、ＰＡＤＴで命令語を処理及び格納するコンパイル処理方式である。ユーザが任意の命令語を作成すると、コンパイル時に該当する命令語処理に関する全てのコードをＰＬＣコンパイル領域に書き込む。そして、プログラム処理中に用いた命令語がある場合、コンパイル領域には該当する実行コードが格納されているため、別の関数を呼び出すことなく該当する命令語を処理することができる。
【００５５】
一方、間接コンパイルは、図９に示されたように、ユーザがラダープログラムを用いて任意の命令語を作成すると、ＰＡＤＴでコンパイルを行いながら命令語を確認する。ＰＡＤＴに格納された命令語マップテーブル９でバイナリファイル１０に格納された命令語のアドレスを確認し、命令語処理関数に移動する。そして、該当する命令語の処理に必要な命令語処理関数をＰＬＣのコンパイル領域の終わり部分にコピーする。したがって、ＰＬＣの駆動時に命令語アドレスを確認し、格納された関数を呼び出すこどで、命令語処理を行うことができる。
【００５６】
図７を参照すると、Ｓ３０２で判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式によりアセンブラ言語で命令語コンパイルを行う（Ｓ３０３）。
【００５７】
一方、Ｓ３０２で判断した結果、簡単な命令語処理ではない場合には、速度に最適化された命令語マップテーブル９でバイナリファイル１０に格納された命令語のアドレスを確認する（Ｓ３０４）。命令語のアドレスに基づいて命令語処理関数に移動し（Ｓ３０５）、該当する命令語の処理に必要な命令語処理関数をコンパイル領域にコピーして、間接コンパイル処理方式により命令語コンパイルを行う（Ｓ３０６）。これにより、ＰＬＣの駆動時に命令語アドレスを確認し、格納された関数を呼び出して命令語を処理することができることになる。
【００５８】
一方、Ｓ３０１で判断した結果、選択されたコンパイル処理方式がサイズである場合、サイズに最適化された命令語マップテーブル９でバイナリファイル１０に格納された命令語のアドレスを確認する（Ｓ３０７）。命令語のアドレスに基づいて命令語処理関数に移動し（Ｓ３０８）、該当する命令語の処理に必要な関数をコンパイル領域にコピーして、間接コンパイル処理方式により命令語コンパイルを行う（Ｓ３０９）。これにより、ＰＬＣの駆動時に命令語アドレスを確認し、格納された関数を呼び出して命令語を処理することができることになる。
【００５９】
このように、選択されたコンパイル処理方式がサイズである場合、ＰＡＤＴコンパイラー５では、使用中の命令語に対して間接コンパイルを行う。間接コンパイル処理方式は、同一の命令語に対して最初の一回だけ実行ルーチンをコピーするため、全体的なプログラム容量を容易に減らすことができる。また、間接コンパイルを行う時に、Ｃコードで作成された命令語実行ルーチンをサイズオプションとしてコンパイルして、プログラム容量を減らすことができる。
【００６０】
一方、Ｓ３０１で判断した結果、選択されたコンパイル処理方式がデフォルトである場合、所定基準の簡単な命令語処理であるかを判断する（Ｓ３１０）。
【００６１】
Ｓ３１０で判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式により命令語コンパイルを行う（Ｓ３１１）。
【００６２】
一方、Ｓ３１０で判断した結果、簡単な命令語処理ではない場合には、デフォルトと設定された命令語マップテーブル９でバイナリファイル１０に格納された命令語のアドレスを確認する（Ｓ３１２）。命令語アドレスに基づいて命令語処理関数に移動し（Ｓ３１３）、該当する命令語の処理に必要な関数をコンパイル領域にコピーして、間接コンパイル処理方式により命令語コンパイルを行う（Ｓ３１４）。これにより、ＰＬＣの駆動時に命令語アドレスを確認し、格納された関数を呼び出して命令語を処理することができることになる。
【００６３】
このように、ユーザは、システム環境に応じて命令語のコンパイル方式を選択することができる。速度オプションを選択した場合、ＰＬＣプログラムは、処理速度を最適化するようにコンパイルすることで、従来技術に比べて約３０％向上した速度で制御可能となる。また、サイズオプションを選択した場合、既存のプログラム容量に比べてプログラム容量を約３０％増加させて使用することができる。したがって、この技術を適用したＰＬＣを用いる場合、カバーできる処理速度とプログラム容量が柔軟であるため、様々なシステム対応が可能である。
【００６４】
本実施形態によると、ＰＬＣプログラムの最適化コンパイル方法により、ユーザがコンパイル方法を選択するようにすることで、様々なシステムに柔軟に対応することができる。
【００６５】
図１０は、本発明の他の一実施形態によるＰＬＣ命令語コンパイルの最適化方法を説明するための図である。
【００６６】
図１０を参照すると、ＰＡＤＴのラダープログラムを用いて、ＰＬＣで実行されるべきプログラムコードを作成する（Ｓ５１０）。
【００６７】
プログラムサイズまたはＰＬＣ内の残余データ格納容量に基づいて、ＰＬＣで実行されるべきプログラム７内に含まれた命令語に対する複数のコンパイル処理方式のうち、一つのコンパイル処理方式を自動で選択するように設定する（Ｓ５２０）。
【００６８】
例えば、一つのコンパイル処理方式を自動で選択して設定するために、正常状況では速度をコンパイル処理方式として選択し、プログラムサイズが基準サイズを超えるとサイズをコンパイル処理方式として選択して設定することができる。
【００６９】
さらに他の例として、一つのコンパイル処理方式を自動で選択して設定するために、正常状況では速度をコンパイル処理方式として選択し、ＰＬＣ内の残余データ格納容量が基準容量以下になるとサイズをコンパイル処理方式として選択して設定することができる。
【００７０】
ＰＬＣで実行されるべきプログラム７内に含まれた命令語に対する複数のコンパイル処理方式のうち、自動で設定されて選択された一つのコンパイル処理方式により命令語コンパイルを行って、ＰＬＣ駆動ファイル１４を生成する（Ｓ５３０）。
【００７１】
そのために、ＰＬＣで実行されるべきプログラム７内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断する。
【００７２】
判断した結果、選択されたコンパイル処理方式が速度である場合、速度に最適化された命令語コンパイルを行う。判断した結果、選択されたコンパイル処理方式がサイズである場合、サイズに最適化された命令語コンパイルを行う。
【００７３】
判断した結果、選択されたコンパイル処理方式がデフォルトである場合、デフォルトと設定された命令語コンパイルを行ってオブジェクトコード４を生成して、ＰＬＣ駆動ファイル１４が作られる。生成されたＰＬＣ駆動ファイル１４がＰＬＣにダウンロードされる（Ｓ５４０）
【００７４】
以上、本発明による実施形態を説明したが、これは例示に過ぎず、当該分野において通常の知識を有する者であれば、これらから多様な変形及び均等な範囲の実施形態が可能であるということを理解できるであろう。したがって、本発明の技術的保護の範囲は、添付の特許請求の範囲によって決められるべきである。
【符号の説明】
【００７５】
７    プログラム
９    命令語マップテーブル
１０  バイナリファイル
１６  第１の選択ボックス
１７  第２の選択ボックス
【図１】
2017079069.tif 000003
【図２】
2017079069.tif 000004
【図３】
2017079069.tif 000005
【図４】
2017079069.tif 000006
【図５】
2017079069.tif 000007
【図６】
2017079069.tif 000008
【図７】
2017079069.tif 000009
【図８】
2017079069.tif 000010
【図９】
2017079069.tif 000011
【図１０】
2017079069.tif 000012