JP2017079069A - Plc命令語コンパイルの最適化方法 - Google Patents

Plc命令語コンパイルの最適化方法 Download PDF

Info

Publication number
JP2017079069A
JP2017079069A JP2016206507A JP2016206507A JP2017079069A JP 2017079069 A JP2017079069 A JP 2017079069A JP 2016206507 A JP2016206507 A JP 2016206507A JP 2016206507 A JP2016206507 A JP 2016206507A JP 2017079069 A JP2017079069 A JP 2017079069A
Authority
JP
Japan
Prior art keywords
instruction word
compilation
plc
processing
processing method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016206507A
Other languages
English (en)
Inventor
チャン‐ウォ・パク
Chang-Woo Park
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LS Electric Co Ltd
Original Assignee
LSIS Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSIS Co Ltd filed Critical LSIS Co Ltd
Publication of JP2017079069A publication Critical patent/JP2017079069A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13004Programming the plc
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13119Compiler

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】PLC(Programmable Logic Controller)命令語コンパイルの最適化方法を提供する。【解決手段】PLC命令語コンパイルの最適化方法は、PLCで実行されるべきプログラム内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断するステップと、選択されたコンパイル処理方式により、速度またはサイズに最適化された命令語コンパイルを行うステップと、を含んでいる。【選択図】図7

Description

本発明は、PLC(Programmable Logic Controller)命令語コンパイルの最適化方法に関し、より詳細には、PADT(Programming And Debugging Tool)コンパイラーで行われるPLC命令語コンパイルの処理方式を改善するために、ユーザプログラムを最適化するPLC命令語コンパイルの最適化方法に関する。
産業現場のファクトリーオートメーションシステムなどでは、PLC(Programmable Logic Controller)のような統合制御装置が用いられる。PLCには、基本ユニットの汎用MPU(Main Processing Unit)が搭載されており、汎用MPUは、ユーザがPADT(Programming And Debugging Tool)を用いて作成したプログラムを、PLCが認識できるコードに変換する、コンパイル過程を実行する。
したがって、PLCを駆動するためには、ユーザがPADTを活用して作成したプログラムをコンパイルすることで、MPUが認識できるように変換しなければならない。
PADTは、プログラムの作成、編集及びデバッグ機能を行うソフトウェアである。PADTは、ユーザが作成したプログラムの命令語をPLCが理解できるようにコンパイルしてから、PLCにダウンロードする機能を担う。
PADTは様々な方法により命令語をコンパイルするが、この処理方法によって、実行速度や修正容易性などの様々な違いが生じる。
一方、命令語の処理速度やプログラム容量はPLC性能の最も重要なファクタである。処理速度が速いと、生産性を高めることができ、プログラム容量が大きいと、より多くの入出力を制御することができる。
しかしながら、従来技術のPLCは、固定された命令語の処理速度とプログラム容量を支援するため、システムの特性に応じて処理速度とプログラム容量を柔軟に変更することができなかった。
このため、使用中に命令語の処理速度が遅い場合やプログラムサイズが不足する場合、PLCを上位機種に変更したりシステムを変更したりしなければならないという問題点がある。
本発明が解決しようとする課題は、PADT(Programming And Debugging Tool)コンパイラーで行われるPLC命令語コンパイルの処理方式を改善するためにユーザプログラムを最適化するPLC命令語コンパイルの最適化方法を提供することにある。
本発明が解決しようとする課題は上述の課題に制限されず、言及されていない他の課題は、以下の記載により提案される実施形態が属する技術分野において通常の知識を有する者であれば明確に理解される。
本発明の一側面によると、PLC(Programmable Logic Controller)命令語コンパイル方法であって、前記PLCで実行されるべきプログラム内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断するステップと、選択された前記コンパイル処理方式により、速度またはサイズに最適化された命令語コンパイルを行うステップと、を含むPLC命令語コンパイルの最適化方法が提供される。
前記命令語コンパイルを行うステップは、前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記速度である場合、所定基準の簡単な命令語処理であるかを判断するステップと、前記簡単な命令語処理であるかを判断するステップで判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式によりアセンブラ言語で命令語コンパイルを行うステップと、簡単な命令語処理ではない場合には、前記速度に最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記PLCの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含むことができる。
前記命令語コンパイルを行うステップは、前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記サイズである場合、前記サイズに最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記PLCの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップを含むことができる。
前記命令語コンパイルを行うステップは、前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式がデフォルトである場合、所定基準の簡単な命令語処理であるかを判断するステップと、前記簡単な命令語処理であるかを判断するステップで判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式により命令語コンパイルを行うステップと、簡単な命令語処理ではない場合には、前記デフォルトと設定された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記PLCの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含むことができる。
前記一つのコンパイル処理方式を判断するステップは、前記速度に相応する第1の選択ボックス、及び前記サイズに相応する第2の選択ボックスを提供するステップと、前記第1の選択ボックスへの入力があると前記速度が選択されたと判断し、前記第2の選択ボックスへの入力があると前記サイズが選択されたと判断し、前記第1の選択ボックス及び前記第2の選択ボックスの何れの入力もないとデフォルトが選択されたと判断するステップと、を含むことができる。
前記PLC命令語コンパイルの最適化方法は、プログラムサイズまたは前記PLC内の残余データ格納容量に基づいて、命令語に対する複数のコンパイル処理方式のうち一つのコンパイル処理方式を自動で選択して設定することができる。
前記一つのコンパイル処理方式を自動で選択して設定するステップでは、正常状況では前記速度をコンパイル処理方式として選択し、プログラムサイズが基準サイズを超えると前記サイズをコンパイル処理方式として選択して設定することができる。
前記一つのコンパイル処理方式を自動で選択して設定するステップでは、正常状況では前記速度をコンパイル処理方式として選択し、前記PLC内の残余データ格納容量が基準容量以下になると前記サイズをコンパイル処理方式として選択して設定することができる。
本発明によると、PADT(Programming And Debugging Tool)コンパイラーで行われる命令語コンパイルの処理方式を改善して、ユーザの状況に応じて速度オプションまたはサイズオプションを選択し、速度最適化されたコンパイル処理方式により命令語をコンパイルしたり、サイズ最適化されたコンパイル処理方式により命令語をコンパイルしたりすることで、ユーザプログラムを最適化することができる。
また、本発明によると、PLCプログラムの最適化コンパイル方法によりユーザがコンパイル方式を選択するようにすることで、様々なシステムに柔軟に対応することができる。
例えば、速度オプションを選択した場合、速度に最適化されたコンパイル処理方式を提供して様々な方法により速度を高めることができる。反対にサイズオプションを選択した場合、プログラム格納容量効率を高めるようにサイズを最適化し、何れも選択されていない場合には、基本オブジェクトコードを用いてコンパイルすることができる。
本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、ユーザコードを説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、開発者コードを説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、命令語処理を説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルの最適化方法を説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルを最適化するためにコンパイル処理方式を設定することを説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、オブジェクトファイルを生成することを説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルの最適化方法を説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、直接コンパイルを説明するための図である。 本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、間接コンパイルを説明するための図である。 本発明の他の一実施形態によるPLC命令語コンパイルの最適化方法を説明するための図である。
本発明は、様々な変更が可能であって、様々な実施形態を有することができるため、特定実施形態を図面に例示するとともに、詳細な説明に詳細に説明する。しかし、本発明を特定の実施形態に限定するためのものではなく、本発明の技術思想及び技術範囲に含まれる全ての変更、均等物乃至代替物を含むと理解されるべきである。
以下、添付図面を参照して、本発明による好ましい一実施形態を詳細に説明する。
図1は、本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、ユーザコードを説明するための図である。
図1を参照すると、ユーザがPADT(Programming and Debugging Tool)を活用してプログラム(例えば、MOVE命令語6)を作成する。
図2は、本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、開発者コードを説明するための図である。
図2を参照すると、開発者は、ソース編集ツールを用いて命令語処理関数コード2を作成する。命令語処理関数コード2は、例えば、void move(void)であることができる。開発者により作成された命令語処理関数コード2は、MPU専用コンパイラー3によってバイナリ形式のオブジェクトコード4として作られる。MPU専用コンパイラー3は、C言語またはC++コンパイラーであることができる。
コンパイルされたバイナリ形式のオブジェクトコード4は、命令語処理関数を格納している。このオブジェクトコード4を用いて命令語毎に先頭アドレスと大きさを抽出し、命令語マップテーブル9を作る(図3参照)。
図3は、本発明の一実施形態によるPLC命令語コンパイルの最適化方法において、命令語処理を説明するための図である。
図3を参照すると、ユーザがPADTでMOVE命令語6を使用する場合における処理過程が示される。PADTコンパイラー5は、基本的に、ユーザが作成したプログラム7を、PLCが動作するための形式に変換することができる。命令語を実行するためには、命令に応じて処理関数を作成しなければならない。
ユーザによりPADTでMOVE命令語6が作成されると、プログラム7の処理中にMOVE命令語6が呼び出される(8)。
MOVE命令語6が呼び出されると、命令語マップテーブル9でバイナリファイル10に格納されたMOVE命令語6のアドレスを確認し(11)、該当する命令語処理関数コード2が格納されているバイナリファイル10に移動する(12)。そして、MOVE命令語処理関数コード2をコンパイル領域に挿入する(13)。このようにコンパイル処理が終わると、PLC駆動ファイル14が生成される。
図4は、本発明の一実施形態によるPLC命令語コンパイルの最適化方法を説明するための図である。図5は、本発明の一実施形態によるPLC命令語コンパイルを最適化するためにコンパイル処理方式を設定することを説明するための図である。
図4を参照すると、PADTのラダープログラムを用いて、PLCで実行されるべきプログラムコードを作成する(S100)。
その後、PLCで実行されるべきプログラム7内に含まれた命令語に対する複数のコンパイル処理方式のうち、一つのコンパイル処理方式を設定する(S200)。
例えば、ユーザが、速度オプション及びサイズオプションをチェックまたは解除できるようにして、コンパイル最適化方式を設定することができる。この際、別のオプションが選択されない場合(デフォルトオプション)には、基本オブジェクトコードを用いたコンパイルを行うように設定することができる。サイズオプションが選択された場合は、サイズに最適化された命令語コンパイルを行うように設定することができる。
図5を参照すると、速度オプションまたはサイズオプションを選択するための選択ボックス15が示されている。選択ボックス15には、速度オプションに相応する第1の選択ボックス16、サイズオプションに相応する第2の選択ボックス17が提供されることができる。
第1の選択ボックス16への入力があると、速度オプションが選択されたと判断する。これと異なり、第2の選択ボックス17への入力があると、サイズオプションが選択されたと判断する。しかし、第1の選択ボックス16及び第2の選択ボックス17の何れの入力もないと、デフォルトオプションが選択されたと判断する。
図4を参照すると、PLCで実行されるべきプログラム7内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式により命令語コンパイルを行って、PLC駆動ファイル14を生成する(S300)。
そのために、PLCで実行されるべきプログラム7内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断する。
図6を参照すると、選択されたコンパイル処理方式が速度である場合には、MPU専用コンパイラー3は、速度に最適化されたバイナリファイル形式のオブジェクトコード4を生成する。
判断した結果、選択されたコンパイル処理方式がサイズである場合には、MPU専用コンパイラー3は、サイズ最適化されたバイナリ形式のオブジェクトコード4を生成する。
判断した結果、選択されたコンパイル処理方式がデフォルトである場合には、MPU専用コンパイラー3は、デフォルトと設定されたバイナリ形式のオブジェクトコード4を生成する。
その後、命令語を処理する時に、PADTコンパイラー5は、ユーザが作成したプログラム7をPLCが動作するための形式に変換することができる。
図3〜4を参照すると、PADTコンパイラー5は、選択されたコンパイル処理方式が速度である場合には、速度に最適化されたオブジェクトコード4を用いて、速度に最適化された命令語コンパイルを行ってPLC駆動ファイル14を作る。一方、選択されたコンパイル処理方式がサイズである場合には、サイズに最適化されたオブジェクトコード4を用いて、サイズに最適化された命令語コンパイルを行ってPLC駆動ファイル14を作る。
さらに、選択されたコンパイル処理方式がデフォルトである場合には、デフォルトと設定されたオブジェクトコード4を用いて、命令語コンパイルを行ってPLC駆動ファイル14を作る。
このように生成されたPLC駆動ファイル14がPLCにダウンロードされる(S400)。
図7は、本発明の一実施形態によるPLC命令語コンパイルの最適化方法を説明するための図である。
図7を参照すると、PLCで実行されるべきプログラム7内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断する(S301)。
S301で判断した結果、選択されたコンパイル処理方式が速度である場合には、所定基準の簡単な命令語処理であるかを判断する(S302)。ここで、簡単な命令語処理であるかを判断する基準は、直接コンパイルが可能な命令語に該当するか否かである。直接コンパイルが可能であると、簡単な命令語に該当する。
このように、速度オプションが選択された場合、PADTコンパイラー5では使用中の命令語を確認し、該当する命令語が直接コンパイル方式または間接コンパイル方式のうち直接コンパイルが可能な命令語であるかを判断する。
例えば、一つの命令語コードが極めて大きく且つ複雑な場合には、CPU内にCコードで作成されているため、直接コンパイルが不可能である。したがって、直接コンパイルが可能な命令語であるかを判断した結果、直接コンパイルが可能な命令語である場合には、速度に最適化されたアセンブラ言語で直接コンパイルを行う。一方、判断した結果、直接コンパイルが不可能な命令語である場合には、Cコードで作成された命令語実行ルーチンを速度オプションとしてコンパイルを行う。
ここで、直接コンパイルは、図8に示されたように、PADTで命令語を処理及び格納するコンパイル処理方式である。ユーザが任意の命令語を作成すると、コンパイル時に該当する命令語処理に関する全てのコードをPLCコンパイル領域に書き込む。そして、プログラム処理中に用いた命令語がある場合、コンパイル領域には該当する実行コードが格納されているため、別の関数を呼び出すことなく該当する命令語を処理することができる。
一方、間接コンパイルは、図9に示されたように、ユーザがラダープログラムを用いて任意の命令語を作成すると、PADTでコンパイルを行いながら命令語を確認する。PADTに格納された命令語マップテーブル9でバイナリファイル10に格納された命令語のアドレスを確認し、命令語処理関数に移動する。そして、該当する命令語の処理に必要な命令語処理関数をPLCのコンパイル領域の終わり部分にコピーする。したがって、PLCの駆動時に命令語アドレスを確認し、格納された関数を呼び出すこどで、命令語処理を行うことができる。
図7を参照すると、S302で判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式によりアセンブラ言語で命令語コンパイルを行う(S303)。
一方、S302で判断した結果、簡単な命令語処理ではない場合には、速度に最適化された命令語マップテーブル9でバイナリファイル10に格納された命令語のアドレスを確認する(S304)。命令語のアドレスに基づいて命令語処理関数に移動し(S305)、該当する命令語の処理に必要な命令語処理関数をコンパイル領域にコピーして、間接コンパイル処理方式により命令語コンパイルを行う(S306)。これにより、PLCの駆動時に命令語アドレスを確認し、格納された関数を呼び出して命令語を処理することができることになる。
一方、S301で判断した結果、選択されたコンパイル処理方式がサイズである場合、サイズに最適化された命令語マップテーブル9でバイナリファイル10に格納された命令語のアドレスを確認する(S307)。命令語のアドレスに基づいて命令語処理関数に移動し(S308)、該当する命令語の処理に必要な関数をコンパイル領域にコピーして、間接コンパイル処理方式により命令語コンパイルを行う(S309)。これにより、PLCの駆動時に命令語アドレスを確認し、格納された関数を呼び出して命令語を処理することができることになる。
このように、選択されたコンパイル処理方式がサイズである場合、PADTコンパイラー5では、使用中の命令語に対して間接コンパイルを行う。間接コンパイル処理方式は、同一の命令語に対して最初の一回だけ実行ルーチンをコピーするため、全体的なプログラム容量を容易に減らすことができる。また、間接コンパイルを行う時に、Cコードで作成された命令語実行ルーチンをサイズオプションとしてコンパイルして、プログラム容量を減らすことができる。
一方、S301で判断した結果、選択されたコンパイル処理方式がデフォルトである場合、所定基準の簡単な命令語処理であるかを判断する(S310)。
S310で判断した結果、簡単な命令語処理である場合には、直接コンパイル処理方式により命令語コンパイルを行う(S311)。
一方、S310で判断した結果、簡単な命令語処理ではない場合には、デフォルトと設定された命令語マップテーブル9でバイナリファイル10に格納された命令語のアドレスを確認する(S312)。命令語アドレスに基づいて命令語処理関数に移動し(S313)、該当する命令語の処理に必要な関数をコンパイル領域にコピーして、間接コンパイル処理方式により命令語コンパイルを行う(S314)。これにより、PLCの駆動時に命令語アドレスを確認し、格納された関数を呼び出して命令語を処理することができることになる。
このように、ユーザは、システム環境に応じて命令語のコンパイル方式を選択することができる。速度オプションを選択した場合、PLCプログラムは、処理速度を最適化するようにコンパイルすることで、従来技術に比べて約30%向上した速度で制御可能となる。また、サイズオプションを選択した場合、既存のプログラム容量に比べてプログラム容量を約30%増加させて使用することができる。したがって、この技術を適用したPLCを用いる場合、カバーできる処理速度とプログラム容量が柔軟であるため、様々なシステム対応が可能である。
本実施形態によると、PLCプログラムの最適化コンパイル方法により、ユーザがコンパイル方法を選択するようにすることで、様々なシステムに柔軟に対応することができる。
図10は、本発明の他の一実施形態によるPLC命令語コンパイルの最適化方法を説明するための図である。
図10を参照すると、PADTのラダープログラムを用いて、PLCで実行されるべきプログラムコードを作成する(S510)。
プログラムサイズまたはPLC内の残余データ格納容量に基づいて、PLCで実行されるべきプログラム7内に含まれた命令語に対する複数のコンパイル処理方式のうち、一つのコンパイル処理方式を自動で選択するように設定する(S520)。
例えば、一つのコンパイル処理方式を自動で選択して設定するために、正常状況では速度をコンパイル処理方式として選択し、プログラムサイズが基準サイズを超えるとサイズをコンパイル処理方式として選択して設定することができる。
さらに他の例として、一つのコンパイル処理方式を自動で選択して設定するために、正常状況では速度をコンパイル処理方式として選択し、PLC内の残余データ格納容量が基準容量以下になるとサイズをコンパイル処理方式として選択して設定することができる。
PLCで実行されるべきプログラム7内に含まれた命令語に対する複数のコンパイル処理方式のうち、自動で設定されて選択された一つのコンパイル処理方式により命令語コンパイルを行って、PLC駆動ファイル14を生成する(S530)。
そのために、PLCで実行されるべきプログラム7内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断する。
判断した結果、選択されたコンパイル処理方式が速度である場合、速度に最適化された命令語コンパイルを行う。判断した結果、選択されたコンパイル処理方式がサイズである場合、サイズに最適化された命令語コンパイルを行う。
判断した結果、選択されたコンパイル処理方式がデフォルトである場合、デフォルトと設定された命令語コンパイルを行ってオブジェクトコード4を生成して、PLC駆動ファイル14が作られる。生成されたPLC駆動ファイル14がPLCにダウンロードされる(S540)
以上、本発明による実施形態を説明したが、これは例示に過ぎず、当該分野において通常の知識を有する者であれば、これらから多様な変形及び均等な範囲の実施形態が可能であるということを理解できるであろう。したがって、本発明の技術的保護の範囲は、添付の特許請求の範囲によって決められるべきである。
7 プログラム
9 命令語マップテーブル
10 バイナリファイル
16 第1の選択ボックス
17 第2の選択ボックス

Claims (8)

  1. PLCで実行されるべきプログラム内に含まれた命令語に対する複数のコンパイル処理方式のうち選択された一つのコンパイル処理方式を判断するステップと、
    選択された前記コンパイル処理方式により、速度またはサイズに最適化された命令語コンパイルを行うステップと、を含む、PLC命令語コンパイルの最適化方法。
  2. 前記命令語コンパイルを行うステップは、
    前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記速度である場合、所定基準の簡単な命令語処理であるかを判断するステップと、
    前記簡単な命令語処理であるかを判断するステップで判断した結果、
    簡単な命令語処理である場合には、直接コンパイル処理方式によりアセンブラ言語で命令語コンパイルを行うステップと、
    簡単な命令語処理ではない場合には、前記速度に最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記PLCの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含む、請求項1に記載のPLC命令語コンパイルの最適化方法。
  3. 前記命令語コンパイルを行うステップは、
    前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式が前記サイズである場合、前記サイズに最適化された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記PLCの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップを含む、請求項1に記載のPLC命令語コンパイルの最適化方法。
  4. 前記命令語コンパイルを行うステップは、
    前記一つのコンパイル処理方式を判断するステップで判断した結果、選択された前記コンパイル処理方式がデフォルトである場合、所定基準の簡単な命令語処理であるかを判断するステップと、
    前記簡単な命令語処理であるかを判断するステップで判断した結果、
    簡単な命令語処理である場合には、直接コンパイル処理方式により命令語コンパイルを行うステップと、
    簡単な命令語処理ではない場合には、前記デフォルトと設定された命令語マップテーブルでバイナリファイルに格納された命令語のアドレスを確認して命令語処理関数に移動し、該当する命令語の処理に必要な関数をコンパイル領域にコピーし、前記PLCの駆動時に命令語アドレスを確認して、格納された関数を呼び出して命令語を処理するように、間接コンパイル処理方式により命令語コンパイルを行うステップと、を含む、請求項1に記載のPLC命令語コンパイルの最適化方法。
  5. 前記一つのコンパイル処理方式を判断するステップは、
    前記速度に相応する第1の選択ボックス、及び前記サイズに相応する第2の選択ボックスを提供するステップと、
    前記第1の選択ボックスへの入力があると前記速度が選択されたと判断し、前記第2の選択ボックスへの入力があると前記サイズが選択されたと判断し、前記第1の選択ボックス及び前記第2の選択ボックスの何れの入力もないとデフォルトが選択されたと判断するステップと、を含む、請求項1に記載のPLC命令語コンパイルの最適化方法。
  6. プログラムサイズまたは前記PLC内の残余データ格納容量に基づいて、命令語に対する複数のコンパイル処理方式のうち一つのコンパイル処理方式を自動で選択して設定するステップをさらに含む、請求項1に記載のPLC命令語コンパイルの最適化方法。
  7. 前記一つのコンパイル処理方式を自動で選択して設定するステップでは、
    正常状況では前記速度をコンパイル処理方式として選択し、プログラムサイズが基準サイズを超えると前記サイズをコンパイル処理方式として選択して設定する、請求項6に記載のPLC命令語コンパイルの最適化方法。
  8. 前記一つのコンパイル処理方式を自動で選択して設定するステップでは、
    正常状況では前記速度をコンパイル処理方式として選択し、前記PLC内の残余データ格納容量が基準容量以下になると前記サイズをコンパイル処理方式として選択して設定する、請求項6に記載のPLC命令語コンパイルの最適化方法。
JP2016206507A 2015-10-21 2016-10-21 Plc命令語コンパイルの最適化方法 Pending JP2017079069A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150146850A KR102063966B1 (ko) 2015-10-21 2015-10-21 Plc 명령어 컴파일 최적화 방법
KR10-2015-0146850 2015-10-21

Publications (1)

Publication Number Publication Date
JP2017079069A true JP2017079069A (ja) 2017-04-27

Family

ID=57113187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016206507A Pending JP2017079069A (ja) 2015-10-21 2016-10-21 Plc命令語コンパイルの最適化方法

Country Status (6)

Country Link
US (1) US10445074B2 (ja)
EP (1) EP3159792B1 (ja)
JP (1) JP2017079069A (ja)
KR (1) KR102063966B1 (ja)
CN (1) CN107024900B (ja)
ES (1) ES2772675T3 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874470B (zh) * 2017-05-11 2023-04-07 腾讯科技(深圳)有限公司 一种信息处理方法及服务器、计算机存储介质
CN108932125B (zh) * 2018-07-19 2021-06-22 闫伟 可编程逻辑控制器的控制方法
CN111026402B (zh) * 2019-12-09 2023-05-12 贵阳永青仪电科技有限公司 一种编译型plc代码执行效率优选方法
KR20210101770A (ko) * 2020-02-11 2021-08-19 엘에스일렉트릭(주) 복수 프로그래밍 언어 지원을 위한 plc 제어방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02133825A (ja) * 1988-11-15 1990-05-23 Nec Corp コンパイル方式
JPH1195813A (ja) * 1997-09-19 1999-04-09 Fuji Electric Co Ltd プログラマブルコントローラ
JP2003131889A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd オブジェクトプログラム生成方法
JP2009223590A (ja) * 2008-03-15 2009-10-01 Omron Corp プログラム開発支援装置の動作仕様管理方法
JP2009282934A (ja) * 2008-05-26 2009-12-03 Mitsubishi Electric Corp プログラマブルコントローラシステム

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287548A (en) * 1988-02-29 1994-02-15 Allen-Bradley Company, Inc. Programmable controller having a stored program with both machine language instructions and source code data
DE4013960A1 (de) * 1989-05-01 1990-11-08 Honda Motor Co Ltd Verfahren und vorrichtung zum generieren eines steuerprogramms
US5285376A (en) * 1991-10-24 1994-02-08 Allen-Bradley Company, Inc. Fuzzy logic ladder diagram program for a machine or process controller
JP3171363B2 (ja) * 1994-06-14 2001-05-28 富士電機株式会社 プログラミング装置
DE19712946A1 (de) * 1996-05-30 1997-12-04 Ibm Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
US5940622A (en) * 1996-12-11 1999-08-17 Ncr Corporation Systems and methods for code replicating for optimized execution time
JP4027482B2 (ja) * 1997-12-24 2007-12-26 富士通株式会社 暗号復元を行う翻訳装置およびその方法
JP3284956B2 (ja) * 1998-01-26 2002-05-27 日本電気株式会社 プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体
KR19990080902A (ko) 1998-04-23 1999-11-15 박준일 피엘시용 제어코드 프로그래밍 시스템
US6922829B2 (en) * 1999-10-12 2005-07-26 Texas Instruments Incorporated Method of generating profile-optimized code
US20020004804A1 (en) * 2000-03-24 2002-01-10 Georg Muenzel Industrial automation system graphical programming language storage and transmission
US7412369B1 (en) * 2000-06-09 2008-08-12 Stmicroelectronics, Inc. System and method for designing and optimizing the memory of an embedded processing system
US6986130B1 (en) * 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
JP3801545B2 (ja) * 2002-08-02 2006-07-26 松下電器産業株式会社 コンパイラ用プログラム、コンパイラ装置及びコンパイル方法
JP4934267B2 (ja) * 2003-10-17 2012-05-16 パナソニック株式会社 コンパイラ装置
JP4366575B2 (ja) 2003-11-05 2009-11-18 オムロン株式会社 ツール
US7710988B1 (en) * 2005-03-11 2010-05-04 Xambala Corporation Method and system for non-deterministic finite automaton filtering
US20060236310A1 (en) * 2005-04-19 2006-10-19 Domeika Max J Methods and apparatus to iteratively compile software to meet user-defined criteria
JP4528284B2 (ja) 2006-06-13 2010-08-18 株式会社日立産機システム プログラマブルコントローラ
US20080005473A1 (en) * 2006-06-30 2008-01-03 Tong Chen Compiler assisted re-configurable software implemented cache
US8087012B2 (en) * 2007-08-21 2011-12-27 International Business Machines Corporation Eliminating maximum/minimum operations in loop bounds
US20100125838A1 (en) * 2008-11-19 2010-05-20 Nokia Corporation Method and Apparatus for Optimizing a Program
WO2011120123A1 (en) * 2010-03-31 2011-10-06 Irdeto Canada Corporation A system and method for encapsulating and enabling protection through diverse variations in software libraries
US8762964B2 (en) * 2010-12-17 2014-06-24 Cisco Technology, Inc. Optimizing symbol manipulation language-based executable applications for distributed execution
CN102566483A (zh) * 2010-12-21 2012-07-11 鸿富锦精密工业(深圳)有限公司 可编程逻辑控制系统
US8504176B2 (en) * 2011-03-15 2013-08-06 Omron Corporation CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
EP2541348B1 (de) * 2011-06-28 2017-03-22 Siemens Aktiengesellschaft Verfahren und Programmiersystem zur Programmierung einer Automatisierungskomponente
CN102393670A (zh) * 2011-10-24 2012-03-28 杭州电子科技大学 一种梯形图内嵌高级语言进行混合编程的实现方法
US9134980B1 (en) * 2012-05-01 2015-09-15 Amazon Technologies, Inc. Compiler optimization in a computing environment
KR20130132340A (ko) 2012-05-25 2013-12-04 김민규 마이콤용 프로그래밍 장치
CN102750177B (zh) * 2012-06-19 2014-12-31 武汉凌控自动化技术有限公司 一种使用编译器的脚本实现方法
KR101398718B1 (ko) * 2012-06-29 2014-05-27 엘에스산전 주식회사 명령어 처리 장치 및 방법
TWI489232B (zh) * 2012-11-14 2015-06-21 Inst Information Industry 遠端監控系統及方法及其記錄媒體
CN103914018A (zh) 2012-12-31 2014-07-09 施耐德电器工业公司 可编程控制器的编程辅助系统及方法
JP2015125713A (ja) 2013-12-27 2015-07-06 富士電機株式会社 プログラマブルコントローラ・システム、その支援装置、プログラマブルコントローラ、プログラム
US9286089B2 (en) * 2014-01-24 2016-03-15 International Business Machines Corporation Just-in time expensive compilation hints
JP2015194881A (ja) * 2014-03-31 2015-11-05 富士通株式会社 コンパイル装置、コンパイラプログラム、コンパイル方法
JP6572610B2 (ja) * 2015-04-28 2019-09-11 富士通株式会社 情報処理装置、コンパイル方法およびコンパイルプログラム
US9626155B2 (en) * 2015-04-28 2017-04-18 Qualcomm Incorporated Determining recommended optimization strategies for software development
US10409570B2 (en) * 2016-10-19 2019-09-10 Nxp Usa, Inc. Feedback directed program stack optimization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02133825A (ja) * 1988-11-15 1990-05-23 Nec Corp コンパイル方式
JPH1195813A (ja) * 1997-09-19 1999-04-09 Fuji Electric Co Ltd プログラマブルコントローラ
JP2003131889A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd オブジェクトプログラム生成方法
JP2009223590A (ja) * 2008-03-15 2009-10-01 Omron Corp プログラム開発支援装置の動作仕様管理方法
JP2009282934A (ja) * 2008-05-26 2009-12-03 Mitsubishi Electric Corp プログラマブルコントローラシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
矢沢久雄: "Visual Basicの向こうに見えるWindows:第12回(最終回)VBプログラムはなぜ遅いの", 日経ソフトウェア, vol. 第2巻,第6号(通巻12号), JPN6017043673, 24 May 1999 (1999-05-24), JP, pages p.129 *

Also Published As

Publication number Publication date
CN107024900A (zh) 2017-08-08
US20170115972A1 (en) 2017-04-27
KR102063966B1 (ko) 2020-01-09
CN107024900B (zh) 2020-06-19
US10445074B2 (en) 2019-10-15
KR20170046864A (ko) 2017-05-04
ES2772675T3 (es) 2020-07-08
EP3159792B1 (en) 2019-11-27
EP3159792A1 (en) 2017-04-26

Similar Documents

Publication Publication Date Title
JP2017079069A (ja) Plc命令語コンパイルの最適化方法
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
CN109799971B (zh) 一种文件生成装置和方法
US10295985B2 (en) Program processing apparatus and program
US20190196798A1 (en) Executable program creation device, executable program creation method, and executable program creation program
JP2019016037A (ja) プログラム作成装置
KR102091134B1 (ko) Plc의 브랜치 명령어 처리 방법
JP2009157533A (ja) プログラマブルコントローラシステム
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP5619331B1 (ja) プログラミング装置及び実行コード生成方法
JP6541902B1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
JP2008276381A (ja) プログラマブルコントローラのダイアグラムのデバッグシステム、そのプログラミング装置及びそのプログラム
KR101398718B1 (ko) 명령어 처리 장치 및 방법
JP2008198143A (ja) プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法
JP2009223590A (ja) プログラム開発支援装置の動作仕様管理方法
JP2011110687A (ja) ロボットコントロール・システム、ロボットコントロール方法
JP2019159478A (ja) 制御装置、データ作成装置、制御方法及び制御プログラム
JP4877257B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP2009176178A (ja) Plcのグローバル変数定義方式
JP5832368B2 (ja) エンジニアリング装置
JP2009064207A (ja) コンパイル装置
JP7208441B1 (ja) Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
US20160209835A1 (en) Control system having function for optimizing control software of numerical controller in accordance with machining program
JP2009098963A (ja) モジュール自動生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161021

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20161104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181112

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20181119

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181211

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190115

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20190125